From: Razvan Becheriu Date: Mon, 30 Jun 2025 19:22:48 +0000 (+0300) Subject: [#3927] add TLS parameters to pgsql connection X-Git-Tag: Kea-3.1.0~50 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7b961f6b78729d8ce9f6482ee3e913656edcd49f;p=thirdparty%2Fkea.git [#3927] add TLS parameters to pgsql connection --- diff --git a/doc/devel/unit-tests.dox b/doc/devel/unit-tests.dox index 6af570da04..79ad12eb90 100644 --- a/doc/devel/unit-tests.dox +++ b/doc/devel/unit-tests.dox @@ -312,6 +312,8 @@ Type "help" for help. postgres=# CREATE USER keatest_readonly WITH PASSWORD 'keatest'; CREATE ROLE +postgres=# CREATE USER keatest_secure WITH ENCRYPTED PASSWORD 'keatest'; +CREATE ROLE postgres=# \q $ psql -U keatest @@ -321,6 +323,8 @@ Type "help" for help. keatest=> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES to keatest_readonly; ALTER DEFAULT PRIVILEGES +keatest=> ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES to keatest_secure; +ALTER DEFAULT PRIVILEGES keatest=> \q @endverbatim @@ -342,6 +346,8 @@ Type "help" for help. keatest=> GRANT SELECT ON ALL TABLES IN SCHEMA public TO keatest_readonly; GRANT +keatest=> GRANT SELECT ON ALL TABLES IN SCHEMA public TO keatest_secure; +GRANT keatest=> \q @endverbatim @@ -405,6 +411,49 @@ local all postgres trust section in the Kea Administrator Reference Manual). + @subsection pgsqlUnitTestsTLS PostgreSQL Database with SSL/TLS + + PostgreSQL can be configured with SSL/TLS support using OpenSSL. + This is easy to verify using the: + +@verbatim +postgres=# select name, setting from pg_settings where name like 'ssl'; + name | setting +----------------------------------------+----------------------------------------------- + ssl | on +@endverbatim + +The value of this PostgreSQL global variable is reflected by the +KEA_PGSQL_HAVE_SSL environment variable. + +The keatest_secure user requires X509 so a client certificate. Of course +in production a stricter requirement should be used, in particular when +a client certificate should be bound to a particular user. + +PostgreSQL unit tests reuse the asiolink library setup. This postgresql.conf +configuration file works with PostgreSQL 16.9: + +@verbatim +# - SSL - + +ssl = on +ssl_ca_file = '/etc/postgresql/16/main/conf.d/kea-ca.crt' +ssl_cert_file = '/etc/postgresql/16/main/conf.d/kea-server.crt' +ssl_key_file = '/etc/postgresql/16/main/conf.d/kea-server.key' +@endverbatim + + +Files must have right permissions for PostgreSQL the server to start. + +@verbatim +chown postgres:postgres /etc/postgresql/16/main/conf.d/kea-ca.crt +chown postgres:postgres /etc/postgresql/16/main/conf.d/kea-server.crt +chown postgres:postgres /etc/postgresql/16/main/conf.d/kea-server.key +chmod og-rwx /etc/postgresql/16/main/conf.d/kea-ca.crt +chmod og-rwx /etc/postgresql/16/main/conf.d/kea-server.crt +chmod og-rwx /etc/postgresql/16/main/conf.d/kea-server.key +@endverbatim + @section unitTestsKerberos Kerberos Configuration for Unit Tests The GSS-TSIG hook library uses the GSS-API with Kerberos. While there are diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index ad2f451f47..8acbb5823d 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -560,7 +560,19 @@ // TCP user timeout while communicating with the database. // It is specified in seconds. - "tcp-user-timeout": 100 + "tcp-user-timeout": 100, + + // Trust anchor aka certificate authority file or directory. + "trust-anchor": "my-ca", + + // Client certificate file name. + "cert-file": "my-cert", + + // Private key file name. + "key-file": "my-key", + + // Private key password. + "key-password": "my-key-pass" } ], diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index 787f0361c1..85e4145895 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -502,7 +502,19 @@ // TCP user timeout while communicating with the database. // It is specified in seconds. - "tcp-user-timeout": 100 + "tcp-user-timeout": 100, + + // Trust anchor aka certificate authority file or directory. + "trust-anchor": "my-ca", + + // Client certificate file name. + "cert-file": "my-cert", + + // Private key file name. + "key-file": "my-key", + + // Private key password. + "key-password": "my-key-pass" } ], diff --git a/doc/sphinx/arm/database-connectivity.rst b/doc/sphinx/arm/database-connectivity.rst index 0f5f2e2a48..15e008aa13 100644 --- a/doc/sphinx/arm/database-connectivity.rst +++ b/doc/sphinx/arm/database-connectivity.rst @@ -79,6 +79,8 @@ Corresponding database configuration parameters for Kea servers are: - The ``key-file`` specifies the private key file name. +- The ``key-password`` specifies the private key password. + - The ``cipher-list`` specifies the list of TLS ciphers (the syntax of the content of this parameter is described in the OpenSSL ciphers manual). @@ -89,12 +91,13 @@ configurations too. Currently the support for each database is: -- MySQL supports the whole set, additional configuration must be done - in the MySQL local setup, for instance certificate revocation list, - choice of a specific TLS version, mutual authentication, etc. +- MySQL supports the whole set exccept the 'key-password' parameter, + additional configuration must be done in the MySQL local setup, + for instance certificate revocation list, choice of a specific TLS + version, mutual authentication, etc. When a TLS connection was required but the actual connection is in clear text an error log is emitted. -- PostgreSQL only uses the configuration to enable the SSL/TLS support - in the client library (libpq). Anything else must be done in the +- PostgreSQL supports the whole set, additional configuration must be + done in the client library (libpq). Anything else must be done in the PostgreSQL local configuration. diff --git a/src/bin/agent/agent_lexer.cc b/src/bin/agent/agent_lexer.cc index 39e602af57..dba1a6a2e0 100644 --- a/src/bin/agent/agent_lexer.cc +++ b/src/bin/agent/agent_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "agent_lexer.cc" +#line 2 "agent_lexer.cc" -#line 3 "agent_lexer.cc" +#line 4 "agent_lexer.cc" #define YY_INT_ALIGNED short int @@ -1624,7 +1624,7 @@ using isc::agent::AgentParser; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg) -#line 1627 "agent_lexer.cc" +#line 1628 "agent_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 @@ -1650,8 +1650,8 @@ using isc::agent::AgentParser; 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 1653 "agent_lexer.cc" #line 1654 "agent_lexer.cc" +#line 1655 "agent_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1965,7 +1965,7 @@ YY_DECL } -#line 1968 "agent_lexer.cc" +#line 1969 "agent_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2982,7 +2982,7 @@ YY_RULE_SETUP #line 835 "agent_lexer.ll" ECHO; YY_BREAK -#line 2985 "agent_lexer.cc" +#line 2986 "agent_lexer.cc" case YY_END_OF_BUFFER: { diff --git a/src/bin/d2/d2_lexer.cc b/src/bin/d2/d2_lexer.cc index 92e386daa0..1e56767ffb 100644 --- a/src/bin/d2/d2_lexer.cc +++ b/src/bin/d2/d2_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "d2_lexer.cc" +#line 2 "d2_lexer.cc" -#line 3 "d2_lexer.cc" +#line 4 "d2_lexer.cc" #define YY_INT_ALIGNED short int @@ -1214,7 +1214,7 @@ unsigned int comment_start_line = 0; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg) -#line 1217 "d2_lexer.cc" +#line 1218 "d2_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 @@ -1240,8 +1240,8 @@ unsigned int comment_start_line = 0; 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 1243 "d2_lexer.cc" #line 1244 "d2_lexer.cc" +#line 1245 "d2_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1561,7 +1561,7 @@ YY_DECL } -#line 1564 "d2_lexer.cc" +#line 1565 "d2_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2812,7 +2812,7 @@ YY_RULE_SETUP #line 1022 "d2_lexer.ll" ECHO; YY_BREAK -#line 2815 "d2_lexer.cc" +#line 2816 "d2_lexer.cc" case YY_END_OF_BUFFER: { diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index ae27a391ae..84225ffa46 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp4_lexer.cc" +#line 2 "dhcp4_lexer.cc" -#line 3 "dhcp4_lexer.cc" +#line 4 "dhcp4_lexer.cc" #define YY_INT_ALIGNED short int @@ -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 242 -#define YY_END_OF_BUFFER 243 +#define YY_NUM_RULES 243 +#define YY_END_OF_BUFFER 244 /* 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[2377] = +static const flex_int16_t yy_accept[2386] = { 0, - 235, 235, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 241, 10, 11, 241, 1, 235, 232, 235, 235, - 241, 234, 233, 241, 241, 241, 241, 241, 228, 229, - 241, 241, 241, 230, 231, 5, 5, 5, 241, 241, - 241, 10, 11, 0, 0, 223, 0, 0, 0, 0, + 236, 236, 0, 0, 0, 0, 0, 0, 0, 0, + 244, 242, 10, 11, 242, 1, 236, 233, 236, 236, + 242, 235, 234, 242, 242, 242, 242, 242, 229, 230, + 242, 242, 242, 231, 232, 5, 5, 5, 242, 242, + 242, 10, 11, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 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, 235, - 235, 0, 234, 235, 3, 2, 6, 0, 235, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 236, + 236, 0, 235, 236, 3, 2, 6, 0, 236, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,21 +724,21 @@ static const flex_int16_t yy_accept[2377] = 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 240, 238, - 0, 237, 236, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 196, 0, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 241, 239, + 0, 238, 237, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 197, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -751,40 +751,40 @@ static const flex_int16_t yy_accept[2377] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, - 0, 0, 0, 0, 0, 239, 236, 0, 0, 0, - 0, 0, 0, 0, 197, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 0, 240, 237, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 0, 0, 0, 132, 0, + 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 0, 0, 0, 165, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 97, 0, 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, - 127, 0, 0, 35, 164, 0, 0, 36, 0, 0, + 0, 128, 0, 0, 35, 165, 0, 0, 36, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 201, 200, - 0, 0, 0, 0, 0, 142, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 202, + 201, 0, 0, 0, 0, 0, 143, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 95, 0, 0, 0, 0, 172, - 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, + 0, 173, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 179, 0, 7, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 180, 0, 7, + 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -792,177 +792,178 @@ static const flex_int16_t yy_accept[2377] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 174, 99, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 175, 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, 0, 0, 0, 0, 136, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 113, 0, 0, 0, - 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 40, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, + 114, 0, 0, 0, 0, 0, 0, 120, 0, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 40, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 0, 0, 0, 0, 0, 0, 0, 55, + 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, - 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 0, 173, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 188, 0, 0, 0, 186, 0, + 189, 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, + 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, + 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 175, 0, 0, 0, 206, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 0, 0, 0, 0, 0, 0, 0, 139, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, + 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, + 23, 0, 145, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, + 95, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 0, 148, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 110, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 23, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 94, 0, 0, 0, 0, 0, 89, - 0, 0, 0, 0, 147, 0, 0, 182, 0, 0, + 0, 0, 0, 0, 142, 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, 109, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 57, + 0, 0, 0, 0, 0, 211, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 190, 0, 0, + 188, 0, 0, 0, 168, 170, 164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 86, 85, 0, + 0, 0, 0, 0, 0, 157, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, - + 0, 179, 0, 0, 0, 146, 0, 57, 15, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 43, 63, 0, 0, 141, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 54, 0, 99, 0, 0, + 205, 0, 0, 0, 0, 0, 0, 0, 210, 0, + + 113, 0, 0, 178, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, - 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 61, 0, 0, 0, 0, 0, 189, - 0, 0, 187, 0, 0, 0, 167, 169, 163, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, - 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, - - 84, 0, 0, 0, 0, 0, 0, 156, 0, 0, - 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 178, 0, 0, 0, 145, 0, 15, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 62, 0, 0, 140, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 98, 0, - 0, 204, 0, 0, 0, 0, 0, 0, 0, 209, - 0, 112, 0, 0, 177, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 0, 0, 44, 0, 0, 0, + 0, 0, 0, 171, 213, 0, 0, 124, 31, 0, + + 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 0, + 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 0, 0, 0, 28, 0, 0, + 191, 0, 0, 0, 53, 0, 0, 0, 222, 0, + 0, 0, 116, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 59, 0, + 0, 0, 0, 0, 0, 112, 0, 0, 0, 42, + 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 170, 212, 0, 0, 123, 31, - 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, - 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 0, 0, 28, 0, - 0, 190, 0, 0, 0, 53, 0, 0, 0, 221, - 0, 0, 0, 115, 114, 0, 0, 0, 0, 0, + 0, 0, 147, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 209, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 0, 0, 0, 0, 0, 0, 0, 58, - 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, - 42, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 0, 0, 212, 0, 89, 0, 0, + 48, 0, 0, 0, 0, 206, 0, 79, 0, 0, + 204, 0, 32, 0, 0, 0, 0, 0, 0, 0, + 0, 83, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 130, 0, - 0, 0, 0, 146, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 208, 0, 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 21, 0, 0, 211, 0, 88, 0, - 0, 48, 0, 0, 0, 0, 205, 0, 78, 0, - 0, 203, 0, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 0, 0, 0, 0, 17, 0, 0, + 51, 0, 49, 0, 0, 0, 0, 0, 45, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 154, 0, 0, 0, 129, + 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 51, 0, 49, 0, 0, 0, 0, 0, 45, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 154, 0, 61, 60, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 80, 0, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, + 0, 0, 0, 0, 52, 0, 66, 0, 46, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 223, 0, + 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 0, 60, 59, 0, - - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, - 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 52, 0, 65, 0, 46, - 0, 103, 0, 0, 0, 0, 0, 0, 0, 222, - 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 81, 33, 0, 0, 0, - 74, 0, 0, 0, 0, 158, 0, 0, 0, 0, - 0, 0, 0, 214, 217, 0, 0, 124, 104, 0, - 0, 0, 0, 0, 0, 0, 80, 0, 0, 70, + 0, 0, 0, 0, 82, 33, 0, 0, 0, 75, + 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, + 0, 0, 215, 218, 0, 0, 125, 105, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 130, 150, 0, 0, 0, 0, 0, 0, 155, - 0, 0, 72, 0, 63, 0, 0, 0, 0, 0, + 131, 151, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 149, 0, 0, 194, 0, 219, - 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 73, 0, 64, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 150, 0, 0, 195, 0, 220, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 125, 0, 0, 0, 27, 25, 0, - 0, 0, 0, 76, 0, 0, 107, 0, 0, 68, - 0, 77, 0, 0, 218, 0, 0, 0, 0, 0, - 67, 0, 151, 26, 213, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, + 0, 0, 126, 0, 0, 0, 27, 25, 0, 0, + 0, 0, 77, 0, 0, 108, 0, 0, 69, 0, + 78, 0, 0, 219, 0, 0, 0, 0, 0, 68, + 0, 152, 26, 214, 0 } ; static const YY_CHAR yy_ec[256] = @@ -1009,311 +1010,313 @@ static const YY_CHAR yy_meta[77] = 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2385] = +static const flex_int16_t yy_base[2394] = { 0, 0, 75, 21, 28, 39, 47, 53, 61, 95, 103, - 2827, 2828, 31, 2823, 151, 0, 216, 2828, 223, 230, - 13, 237, 2828, 2803, 124, 17, 4, 34, 2828, 2828, - 23, 43, 64, 2828, 2828, 2828, 56, 2811, 2761, 0, - 2801, 106, 2818, 2, 274, 2828, 2757, 85, 90, 2763, + 2836, 2837, 31, 2832, 151, 0, 216, 2837, 223, 230, + 13, 237, 2837, 2812, 124, 17, 4, 34, 2837, 2837, + 23, 43, 64, 2837, 2837, 2837, 56, 2820, 2770, 0, + 2810, 106, 2827, 2, 274, 2837, 2766, 85, 90, 2772, 98, 77, 231, 235, 97, 200, 304, 229, 64, 300, - 218, 313, 219, 63, 257, 2765, 298, 67, 341, 242, - 210, 2748, 21, 333, 362, 343, 2767, 318, 0, 405, - 422, 436, 445, 450, 2828, 0, 2828, 464, 469, 228, - 232, 238, 260, 338, 319, 2828, 2764, 2808, 2828, 276, - - 2828, 442, 2795, 337, 250, 2761, 347, 17, 359, 2800, - 282, 372, 329, 364, 2804, 0, 506, 429, 2743, 2740, - 2740, 2743, 382, 2739, 345, 2747, 364, 2733, 2734, 2739, - 230, 2749, 2733, 2741, 2731, 2740, 425, 2746, 363, 79, - 430, 2726, 2782, 2786, 2729, 2722, 2778, 2715, 381, 2736, - 2736, 2730, 401, 2722, 2723, 2721, 2715, 429, 2726, 225, - 2711, 2710, 451, 2711, 340, 2723, 2704, 502, 433, 473, - 2725, 2722, 2723, 442, 2721, 2759, 2758, 473, 475, 2702, - 475, 2703, 490, 457, 2713, 2705, 2707, 0, 478, 505, - 513, 508, 508, 520, 2703, 2828, 2751, 525, 525, 2697, - - 511, 527, 544, 547, 2754, 550, 2753, 529, 2752, 2828, - 2828, 590, 2694, 560, 2707, 2699, 2697, 2685, 2696, 2700, - 2701, 2681, 2692, 2696, 2693, 2692, 518, 526, 2733, 2694, - 2675, 2672, 2680, 2675, 2685, 2685, 2676, 2672, 2684, 2684, - 2672, 2671, 2673, 2676, 2656, 2660, 2674, 2666, 2656, 2659, - 2673, 2828, 2658, 2667, 535, 2708, 2651, 2660, 2705, 2649, - 2659, 2662, 579, 2701, 2643, 2657, 2698, 558, 2640, 2654, - 2652, 2632, 2647, 531, 2644, 537, 2635, 2633, 2633, 2639, - 2630, 2628, 2690, 2643, 9, 2637, 539, 2644, 2639, 2622, - 2637, 2623, 2635, 2630, 2634, 2615, 2631, 2617, 2623, 2630, - - 439, 461, 2618, 2615, 2614, 581, 2613, 2608, 2622, 566, - 2621, 2667, 2600, 2622, 589, 387, 2602, 583, 2828, 2828, - 585, 2828, 2828, 2600, 563, 577, 592, 2651, 595, 2661, - 586, 597, 2828, 2660, 2828, 2654, 642, 2613, 581, 2590, - 574, 2611, 2650, 2607, 2590, 2607, 2646, 2603, 2586, 2592, - 2647, 2599, 2602, 2593, 2596, 2582, 2593, 2640, 2634, 2589, - 2586, 617, 2591, 2635, 2567, 2628, 2578, 2573, 2567, 2566, - 2568, 2571, 2621, 2575, 2619, 2562, 665, 666, 2576, 2561, - 2560, 2573, 2571, 2569, 2569, 2568, 2563, 2570, 2565, 2561, - 608, 2559, 2562, 2544, 2556, 2606, 581, 595, 2600, 2544, - - 2560, 2597, 2544, 2543, 2536, 2551, 2542, 2549, 2530, 2547, - 2542, 669, 2592, 2544, 2828, 2543, 618, 2534, 2532, 2544, - 617, 2519, 2520, 2533, 2523, 2515, 2576, 2518, 2532, 629, - 2518, 2530, 2529, 2528, 2524, 2522, 2567, 2524, 2523, 2522, - 2521, 2504, 2512, 2565, 2521, 2501, 2562, 2828, 2561, 2500, - 2499, 678, 2512, 2510, 2509, 2828, 2828, 2509, 2498, 2490, - 647, 2547, 2551, 2550, 2828, 2549, 635, 2828, 664, 723, - 2505, 649, 2547, 2490, 2485, 2544, 2495, 2537, 2487, 2489, - 636, 2479, 2487, 2475, 2828, 2480, 2473, 2485, 2488, 2475, - 2474, 2828, 652, 2476, 2473, 645, 2471, 2465, 2828, 2521, - - 2480, 2477, 2462, 2479, 2475, 2473, 2473, 2467, 693, 2457, - 2511, 2828, 2455, 2471, 2508, 2828, 2462, 2511, 2464, 2462, - 2460, 2461, 2445, 2454, 2499, 2447, 2446, 2441, 2440, 2494, - 2435, 648, 2454, 2428, 2435, 2451, 2488, 2828, 2435, 2431, - 702, 2429, 2484, 2437, 2436, 2430, 2422, 2422, 2421, 2435, - 2435, 2423, 2419, 2417, 2828, 2426, 2476, 2828, 2470, 2412, - 2411, 2416, 2471, 2424, 2418, 2412, 2421, 2466, 2460, 2404, - 2399, 2457, 2418, 2393, 2399, 694, 2413, 2406, 2410, 2393, - 2454, 2448, 2391, 2391, 2445, 2387, 2388, 2387, 2385, 2402, - 2828, 2398, 2438, 2828, 2828, 2386, 2384, 2828, 655, 2435, - - 2439, 2433, 2390, 2374, 2391, 2434, 715, 2828, 2828, 2828, - 704, 689, 688, 2371, 724, 2828, 2370, 2380, 2828, 2379, - 695, 2386, 2366, 2376, 2379, 2420, 2362, 711, 2361, 2371, - 2416, 2358, 2365, 2358, 2360, 2369, 2351, 2351, 2366, 2365, - 2349, 667, 2363, 2362, 2362, 2344, 2349, 2393, 2347, 2354, - 2348, 2396, 2337, 2337, 2351, 2351, 2349, 2349, 2828, 2334, - 2346, 2338, 2344, 2335, 2343, 2341, 2828, 2327, 2381, 2342, - 2324, 2336, 2328, 612, 2319, 2318, 2312, 2317, 2332, 2329, - 2330, 2309, 2319, 2325, 2371, 2316, 2307, 2308, 2310, 2305, - 2318, 2310, 2309, 691, 2357, 2305, 753, 2355, 2297, 2353, - - 2297, 2300, 2293, 2308, 2828, 2291, 2305, 2300, 2296, 2828, - 2344, 2293, 2300, 2341, 2828, 2283, 2297, 2300, 2285, 2280, - 2335, 2334, 2278, 2332, 2289, 2273, 2329, 2328, 2828, 2289, - 2269, 2283, 2282, 752, 2283, 2282, 2279, 2263, 2319, 2276, - 58, 246, 285, 324, 364, 2828, 563, 2828, 594, 661, - 2828, 718, 713, 712, 723, 739, 702, 700, 722, 712, - 721, 733, 727, 716, 712, 727, 723, 729, 782, 743, - 789, 790, 747, 751, 787, 788, 743, 744, 745, 755, - 760, 746, 749, 752, 761, 761, 745, 805, 755, 765, - 768, 809, 755, 762, 766, 763, 765, 773, 816, 818, - - 778, 825, 780, 783, 778, 769, 784, 789, 790, 787, - 789, 791, 790, 778, 792, 790, 798, 837, 796, 844, - 845, 792, 784, 794, 845, 801, 853, 2828, 803, 805, - 801, 795, 811, 799, 809, 861, 857, 858, 818, 819, - 2828, 809, 810, 809, 822, 812, 825, 872, 873, 874, - 808, 831, 822, 811, 817, 875, 836, 820, 832, 879, - 823, 830, 882, 843, 838, 843, 841, 888, 827, 839, - 854, 849, 849, 839, 836, 2828, 904, 858, 859, 847, - 861, 851, 855, 867, 852, 859, 863, 867, 868, 860, - 874, 898, 890, 919, 920, 894, 867, 881, 884, 887, - - 884, 866, 873, 887, 935, 889, 874, 887, 888, 886, - 895, 2828, 2828, 891, 886, 901, 898, 884, 886, 905, - 902, 904, 893, 900, 902, 911, 958, 916, 955, 914, - 904, 903, 902, 913, 909, 901, 912, 923, 908, 909, - 915, 931, 970, 928, 923, 973, 2828, 934, 926, 937, - 935, 983, 922, 939, 925, 937, 946, 943, 930, 928, - 993, 947, 933, 939, 937, 2828, 2828, 947, 952, 957, - 945, 955, 957, 2828, 958, 945, 963, 950, 952, 945, - 962, 2828, 951, 969, 970, 1009, 957, 958, 955, 959, - 977, 1021, 2828, 2828, 2828, 964, 961, 977, 1025, 976, - - 966, 967, 963, 976, 987, 982, 1029, 984, 986, 979, - 981, 977, 983, 983, 985, 1000, 983, 1045, 999, 1001, - 1005, 992, 983, 1004, 1007, 993, 992, 2828, 999, 1000, - 1052, 1053, 1002, 1015, 1056, 1011, 1001, 1017, 1017, 1011, - 1019, 1006, 1037, 1047, 1035, 1043, 1055, 1072, 1018, 1032, - 1015, 1073, 1074, 1033, 1076, 2828, 1082, 1032, 1023, 1039, - 1043, 1087, 1034, 1033, 1028, 1029, 1041, 1036, 1032, 1041, - 1036, 1039, 1052, 1061, 1100, 2828, 1051, 1045, 1063, 1056, - 1051, 1112, 1066, 1067, 1058, 1116, 1073, 1062, 1065, 1073, - 1075, 1060, 1080, 1073, 1078, 1075, 1073, 1085, 1069, 1070, - - 2828, 1086, 1089, 1086, 1073, 1090, 1085, 1137, 1077, 1096, - 2828, 1095, 1098, 1084, 1079, 1097, 1140, 1095, 1091, 1088, - 1144, 1145, 1104, 1090, 1108, 1108, 1108, 1109, 1110, 1112, - 1097, 1112, 1110, 1100, 1101, 1117, 1104, 1121, 2828, 1119, - 1121, 1169, 1113, 2828, 1116, 1121, 1168, 1116, 1128, 1122, - 1120, 1117, 1123, 1133, 1181, 1122, 1123, 1123, 1185, 1126, - 1138, 1131, 2828, 1127, 1144, 1136, 1132, 1135, 1138, 1190, - 1129, 1150, 1137, 1138, 1139, 1140, 1146, 1154, 1145, 1150, - 1160, 1208, 1162, 1163, 1168, 1212, 1180, 1209, 1192, 1184, - 1189, 2828, 1172, 1157, 1169, 1165, 1179, 1162, 1162, 2828, - - 1165, 1164, 1227, 1167, 2828, 1178, 1168, 1188, 1187, 1178, - 1189, 1235, 1185, 1194, 1187, 1191, 1195, 1178, 1203, 1200, - 1201, 1192, 1250, 1194, 2828, 1247, 1191, 1195, 2828, 1213, - 1195, 1196, 1196, 1217, 1214, 1216, 1203, 1221, 1209, 1223, - 1216, 1225, 1205, 1220, 1227, 1212, 1273, 1216, 1270, 2828, - 1276, 1277, 1216, 1226, 1236, 1220, 1240, 1228, 1224, 1231, - 1240, 1228, 1235, 1236, 1248, 1292, 1236, 1294, 1235, 1234, - 1238, 1252, 1256, 1300, 1245, 1251, 1252, 1241, 1305, 1253, - 1256, 1308, 2828, 1246, 1263, 1256, 1247, 1266, 1254, 1264, - 1260, 1255, 1274, 1274, 2828, 1258, 1254, 1260, 2828, 1261, - - 1325, 1281, 1262, 1268, 1282, 1268, 1284, 1270, 1287, 1329, - 1279, 1336, 1337, 1287, 1292, 1286, 1284, 1295, 1294, 1278, - 2828, 1283, 1289, 1302, 2828, 1316, 1329, 1317, 1331, 1318, - 1353, 1303, 1291, 1313, 1308, 1308, 1312, 1313, 1361, 2828, - 1301, 1301, 1304, 1321, 1316, 1320, 1315, 2828, 1324, 1308, - 1325, 1305, 1326, 1316, 1310, 1325, 1322, 1378, 1328, 2828, - 1341, 1341, 1382, 1326, 1335, 1385, 1340, 1345, 1331, 1394, - 1349, 1335, 1336, 1350, 1348, 1345, 1341, 1359, 1360, 1361, - 1344, 2828, 1401, 1353, 2828, 1363, 2828, 1348, 1359, 1350, - 1369, 1362, 1360, 1353, 1365, 1412, 1373, 1362, 1369, 1370, - - 1376, 2828, 1369, 2828, 1424, 1374, 1363, 1376, 1428, 2828, - 1367, 1373, 1374, 1385, 2828, 1386, 1380, 2828, 1373, 1376, - 1390, 1395, 1378, 1440, 1394, 1381, 1400, 1387, 1392, 1446, - 1442, 1392, 1449, 2828, 1397, 1394, 1405, 1453, 1454, 1455, - 1451, 1410, 1411, 1413, 2828, 2828, 1405, 1400, 1457, 1403, - 1419, 1465, 1404, 1416, 1405, 1422, 1465, 1448, 1449, 1441, - 1474, 2828, 1418, 1429, 1422, 1431, 1422, 1433, 1435, 2828, - 1482, 1416, 1427, 1442, 1481, 1430, 1441, 1427, 1443, 1444, - 1441, 1488, 1448, 1495, 1496, 1452, 1443, 1453, 1460, 1447, - 1443, 1506, 1502, 1457, 1504, 1510, 1464, 2828, 1461, 1451, - - 1467, 1458, 1461, 1470, 1467, 1457, 1460, 1460, 1522, 1462, - 1473, 1468, 1526, 1470, 1528, 1469, 1474, 1532, 1528, 1466, - 1481, 1474, 1477, 1490, 1491, 1489, 1541, 2828, 1487, 1493, - 1483, 2828, 1499, 1491, 1492, 1544, 1488, 1504, 1552, 1553, - 1494, 1504, 1556, 2828, 1501, 1558, 1499, 1497, 1500, 2828, - 1517, 1522, 2828, 1519, 1507, 1507, 2828, 2828, 2828, 1512, - 1522, 1505, 1525, 1526, 1512, 1514, 1576, 1523, 2828, 1578, - 1524, 1518, 1581, 1546, 1564, 1579, 1566, 2828, 1529, 1588, - 1542, 1590, 1537, 1587, 1593, 2828, 1533, 1595, 1542, 1536, - 1533, 1536, 1538, 1596, 1556, 1598, 1548, 1560, 1563, 2828, - - 2828, 1560, 1554, 1558, 1552, 1559, 1549, 2828, 1557, 1572, - 1557, 2828, 1559, 1559, 1617, 1562, 1619, 1578, 1580, 1580, - 1577, 1624, 1583, 2828, 1584, 1576, 1577, 2828, 1578, 2828, - 1588, 1581, 2828, 1587, 1592, 1593, 1590, 1637, 1582, 1597, - 1598, 1590, 2828, 1600, 1588, 1598, 1590, 1590, 1591, 1592, - 1649, 1655, 2828, 2828, 1651, 1595, 2828, 1596, 2828, 1610, - 1598, 1606, 1663, 1608, 1600, 1613, 1607, 1617, 1610, 1614, - 1630, 1623, 1629, 1619, 1677, 1627, 2828, 1636, 2828, 1633, - 1681, 2828, 1631, 1659, 1660, 1666, 1651, 1659, 1688, 2828, - 1689, 2828, 1644, 1629, 2828, 1692, 2828, 1693, 1647, 1652, - - 1634, 1697, 1638, 1694, 1657, 1651, 1647, 1641, 1648, 1700, - 1655, 1656, 1646, 1651, 1669, 1717, 1668, 1719, 1669, 1667, - 1717, 1678, 1678, 1720, 1665, 1670, 1668, 1730, 1671, 1679, - 1685, 1673, 1735, 1731, 1691, 1738, 1696, 1685, 1679, 1742, - 1681, 1682, 1696, 1746, 1700, 1691, 1701, 1750, 1751, 1701, - 1699, 2828, 1689, 1750, 1751, 1703, 1703, 1703, 1698, 1699, - 1717, 2828, 1708, 1714, 1719, 1706, 1707, 1769, 1708, 1708, - 1710, 1768, 1711, 2828, 1707, 1725, 1777, 2828, 1732, 1746, - 1760, 1759, 1748, 1750, 2828, 2828, 1784, 1734, 2828, 2828, - 1725, 1736, 1788, 2828, 1789, 1743, 1734, 1739, 1737, 1790, - - 1745, 1750, 1736, 1739, 1755, 1744, 1742, 1756, 1743, 2828, - 1745, 2828, 1750, 1768, 1755, 1764, 1810, 1754, 1817, 1762, - 1772, 1773, 2828, 1821, 1758, 1818, 1773, 1820, 2828, 1768, - 1827, 2828, 1767, 1782, 1770, 2828, 1780, 1781, 1833, 2828, - 1788, 1779, 1793, 2828, 2828, 1769, 1787, 1796, 1778, 1796, - 1785, 1838, 1787, 1783, 1788, 1847, 1786, 1787, 1850, 1846, - 1852, 2828, 1802, 1800, 1855, 1805, 1795, 1811, 1804, 2828, - 1860, 1838, 1862, 1844, 1859, 1865, 2828, 1811, 1867, 1806, - 2828, 2828, 1808, 1810, 1820, 1867, 1812, 1827, 1814, 1876, - 1830, 1816, 1823, 1823, 1881, 1835, 1836, 1828, 1824, 1826, - - 1840, 1828, 1840, 2828, 1887, 1835, 1832, 2828, 1848, 1835, - 1848, 1835, 1856, 2828, 1853, 1901, 1851, 1848, 1849, 2828, - 1905, 1863, 1862, 1861, 1854, 1859, 1860, 1858, 1869, 1853, - 1862, 1911, 1917, 2828, 1867, 1919, 2828, 1865, 2828, 1864, - 1860, 2828, 1867, 1924, 1926, 1922, 2828, 1923, 2828, 1905, - 1911, 2828, 1883, 2828, 1927, 1876, 1887, 1888, 1873, 1874, - 1882, 1939, 2828, 1884, 1936, 1937, 1889, 2828, 1884, 1902, - 1903, 1885, 1891, 1904, 1899, 1896, 1901, 1899, 1954, 1895, - 1911, 1959, 1904, 1901, 1901, 2828, 1916, 1917, 1918, 2828, - 1912, 1920, 1968, 1918, 1908, 1916, 1929, 1930, 1911, 1912, - - 1919, 2828, 1921, 2828, 1935, 1932, 1924, 1976, 1934, 2828, - 2828, 1938, 1964, 1965, 1963, 1926, 1926, 1935, 1942, 1935, - 1934, 1945, 1932, 2828, 1948, 1936, 1939, 1998, 1935, 1954, - 1947, 1997, 1958, 1951, 1950, 1959, 1961, 1965, 2828, 2004, - 1958, 2828, 1963, 1954, 2016, 1956, 2018, 2019, 2015, 2021, - 2828, 1960, 2018, 1977, 1964, 1972, 1983, 1970, 1981, 1967, - 1965, 1973, 1972, 1973, 1979, 1970, 2015, 2039, 2021, 2041, - 1991, 1980, 1993, 1983, 2000, 1999, 2043, 1984, 2003, 2004, - 2828, 2009, 2002, 2049, 2045, 2009, 1996, 2011, 2059, 2013, - 2016, 2011, 2016, 2005, 2016, 2828, 2068, 2828, 2828, 2015, - - 2828, 2070, 2009, 2072, 2012, 2074, 2019, 2071, 2072, 2031, - 2074, 2017, 2021, 2082, 2040, 2084, 2040, 2067, 2828, 2063, - 2828, 2033, 2027, 2024, 2086, 2049, 2042, 2038, 2095, 2035, - 2037, 2036, 2043, 2055, 2090, 2041, 2103, 2044, 2828, 2049, - 2059, 2061, 2063, 2046, 2054, 2828, 2060, 2828, 2062, 2828, - 2068, 2828, 2069, 2069, 2060, 2119, 2060, 2070, 2055, 2828, - 2068, 2828, 2070, 2101, 2107, 2079, 2077, 2129, 2067, 2069, - 2066, 2090, 2828, 2077, 2084, 2085, 2088, 2084, 2139, 2079, - 2828, 2136, 2080, 2088, 2097, 2083, 2099, 2098, 2087, 2094, - 2089, 2089, 2103, 2098, 2828, 2109, 2097, 2153, 2101, 2113, - - 2141, 2162, 2163, 2107, 2828, 2107, 2119, 2167, 2113, 2115, - 2113, 2114, 2172, 2130, 2828, 2123, 2110, 2125, 2130, 2122, - 2128, 2180, 2181, 2120, 2136, 2184, 2185, 2126, 2131, 2127, - 2143, 2126, 2138, 2132, 2194, 2828, 2828, 2139, 2150, 2197, - 2828, 2151, 2136, 2154, 2145, 2828, 2141, 2147, 2161, 2157, - 2150, 2145, 2151, 2828, 2828, 2209, 2210, 2828, 2828, 2150, - 2158, 2153, 2209, 2172, 2169, 2217, 2828, 2213, 2176, 2828, - 2220, 2159, 2222, 2162, 2163, 2176, 2175, 2176, 2166, 2178, - 2174, 2828, 2828, 2169, 2232, 2182, 2191, 2184, 2231, 2828, - 2182, 2176, 2828, 2188, 2828, 2235, 2194, 2242, 2181, 2197, - - 2245, 2198, 2247, 2248, 2828, 2202, 2196, 2189, 2209, 2196, - 2208, 2199, 2203, 2197, 2828, 2254, 2200, 2828, 2210, 2828, - 2828, 2201, 2209, 2259, 2216, 2209, 2221, 2268, 2213, 2213, - 2271, 2210, 2212, 2227, 2275, 2276, 2215, 2231, 2216, 2233, - 2828, 2281, 2225, 2828, 2232, 2284, 2225, 2828, 2828, 2235, - 2287, 2232, 2289, 2828, 2237, 2236, 2828, 2292, 2238, 2828, - 2232, 2828, 2232, 2249, 2828, 2250, 2298, 2241, 2300, 2301, - 2828, 2302, 2828, 2828, 2828, 2828, 2308, 2311, 2314, 2315, - 2317, 2320, 2323, 2326 + 218, 313, 219, 63, 257, 2774, 298, 67, 341, 242, + 210, 2757, 21, 333, 362, 343, 2776, 318, 0, 405, + 422, 436, 445, 450, 2837, 0, 2837, 464, 469, 228, + 232, 238, 260, 338, 319, 2837, 2773, 2817, 2837, 276, + + 2837, 442, 2804, 337, 250, 2770, 347, 17, 359, 2809, + 282, 372, 329, 364, 2813, 0, 506, 429, 2752, 2749, + 2749, 2752, 382, 2748, 345, 2756, 364, 2742, 2743, 2748, + 230, 2758, 2742, 2750, 2740, 2749, 425, 2755, 363, 79, + 430, 2735, 2791, 2795, 2738, 2731, 2787, 2724, 381, 2745, + 2745, 2739, 401, 2731, 2732, 2730, 2724, 429, 2735, 225, + 2720, 2719, 451, 2720, 340, 2732, 2713, 502, 433, 473, + 2734, 2731, 2732, 442, 2730, 2768, 2767, 473, 475, 2711, + 475, 2712, 490, 457, 2722, 2714, 2716, 0, 478, 505, + 513, 508, 508, 520, 2712, 2837, 2760, 525, 525, 2706, + + 511, 527, 544, 547, 2763, 550, 2762, 529, 2761, 2837, + 2837, 590, 2703, 560, 2716, 2708, 2706, 2694, 2705, 2709, + 2710, 2690, 2701, 2705, 2702, 2701, 518, 526, 2742, 2703, + 2684, 2681, 2689, 2684, 2694, 2694, 2685, 2681, 2693, 2693, + 2681, 2680, 2682, 2685, 2665, 2669, 2683, 2675, 2665, 2668, + 2682, 2837, 2667, 2676, 535, 2717, 2660, 2669, 2714, 2658, + 2668, 2671, 579, 2710, 2652, 2666, 2707, 558, 2649, 2663, + 2661, 2641, 2656, 531, 2653, 537, 2644, 2642, 2642, 2648, + 2639, 2637, 2699, 2652, 9, 2646, 539, 2653, 2648, 2631, + 2646, 2632, 2644, 2639, 2643, 2624, 2640, 2626, 2632, 2639, + + 439, 461, 2627, 2624, 2623, 581, 2622, 2617, 2631, 566, + 2630, 2676, 2609, 2631, 589, 387, 2611, 583, 2837, 2837, + 585, 2837, 2837, 2609, 563, 577, 592, 2660, 595, 2670, + 586, 597, 2837, 2669, 2837, 2663, 642, 2622, 581, 2599, + 574, 2620, 2659, 2616, 2599, 2616, 2655, 2612, 2595, 2601, + 2656, 2608, 2611, 2602, 2605, 2591, 2602, 2649, 2643, 2598, + 2595, 617, 2600, 2644, 2576, 2637, 2587, 2582, 2576, 2575, + 2577, 2580, 2630, 2584, 2628, 2571, 665, 666, 2585, 2570, + 2569, 2582, 2580, 581, 2579, 2578, 2573, 2580, 2575, 2571, + 608, 2569, 2572, 2554, 2566, 2616, 621, 595, 2610, 2554, + + 2570, 2607, 2554, 2553, 2546, 2561, 2552, 2559, 2540, 2557, + 2552, 673, 2602, 2554, 2837, 2553, 618, 2544, 2542, 2554, + 620, 2529, 2530, 2543, 2533, 2525, 2586, 2528, 2542, 630, + 2528, 2540, 2539, 2538, 2534, 2532, 2577, 2534, 2533, 2532, + 2531, 2514, 2522, 2575, 2531, 2511, 2572, 2837, 2571, 2510, + 2509, 691, 2522, 2520, 2519, 2837, 2837, 2519, 2508, 2500, + 642, 2557, 2561, 2560, 2837, 2559, 635, 2837, 664, 727, + 2515, 651, 2557, 2500, 2495, 2554, 2505, 2547, 2497, 2499, + 645, 2489, 2497, 2485, 2837, 2490, 2483, 2495, 2498, 2485, + 2484, 2837, 705, 2486, 2483, 638, 2481, 2475, 2837, 2531, + + 2490, 2487, 2472, 2489, 2485, 2483, 2483, 2477, 695, 2467, + 2521, 2837, 2465, 2481, 2518, 2837, 2472, 2521, 2474, 2472, + 2470, 2471, 2455, 2464, 2471, 2508, 2456, 2455, 2450, 2449, + 2503, 2444, 651, 2463, 2437, 2444, 2460, 2497, 2837, 2444, + 2440, 701, 2438, 2493, 2446, 2445, 2439, 2431, 2431, 2430, + 2444, 2444, 2432, 2428, 2426, 2837, 2435, 2485, 2837, 2479, + 2421, 2420, 2425, 2480, 2433, 2427, 2421, 2430, 2475, 2469, + 2413, 2408, 2466, 2427, 2402, 2408, 653, 2422, 2415, 2419, + 2402, 2463, 2457, 2400, 2400, 2454, 2396, 2397, 2396, 2394, + 2411, 2837, 2407, 2447, 2837, 2837, 2395, 2393, 2837, 659, + + 2444, 2448, 2442, 2399, 2383, 2400, 2443, 693, 2837, 2837, + 2837, 683, 686, 692, 2380, 711, 2837, 2379, 2389, 2837, + 2388, 655, 2395, 2375, 2385, 2388, 2429, 2371, 719, 2370, + 2380, 2425, 2367, 2374, 2367, 2369, 2378, 2360, 2360, 2375, + 2374, 2358, 672, 2372, 2371, 2371, 2353, 2358, 2402, 2356, + 2363, 2357, 2405, 2346, 2346, 2360, 2360, 2358, 2358, 2837, + 2343, 2355, 2347, 2353, 2344, 2352, 2350, 2837, 2336, 2390, + 2351, 2333, 2345, 2337, 2329, 673, 2327, 2326, 2320, 2325, + 2340, 2337, 2338, 2317, 2327, 2333, 2379, 2324, 2315, 2316, + 2318, 2313, 2326, 2318, 2317, 703, 2365, 2313, 755, 2363, + + 2305, 2361, 2305, 2308, 2301, 2316, 2837, 2299, 2313, 2308, + 2304, 2837, 2352, 2301, 2308, 2349, 2837, 2291, 2305, 2308, + 2293, 2288, 2343, 2342, 2286, 2340, 2297, 2281, 2337, 2336, + 2837, 2297, 2277, 2291, 2290, 731, 2291, 2290, 2287, 2271, + 2323, 62, 262, 279, 318, 367, 571, 2837, 579, 2837, + 610, 653, 2837, 695, 732, 731, 720, 742, 668, 680, + 718, 714, 723, 735, 729, 719, 718, 732, 728, 734, + 785, 747, 791, 793, 750, 754, 790, 791, 746, 747, + 748, 758, 763, 749, 752, 755, 764, 764, 748, 808, + 758, 768, 771, 812, 758, 765, 769, 766, 768, 776, + + 819, 821, 781, 828, 783, 786, 781, 772, 787, 792, + 793, 790, 792, 794, 793, 781, 795, 782, 794, 802, + 841, 800, 848, 849, 796, 788, 799, 849, 804, 857, + 2837, 807, 809, 805, 799, 815, 803, 813, 865, 861, + 862, 822, 823, 2837, 813, 814, 813, 826, 816, 829, + 876, 877, 878, 812, 835, 826, 815, 821, 879, 840, + 824, 836, 883, 827, 834, 886, 847, 842, 847, 845, + 892, 831, 843, 858, 853, 853, 843, 840, 2837, 908, + 862, 863, 851, 865, 855, 859, 871, 856, 863, 867, + 871, 872, 864, 878, 902, 894, 923, 924, 898, 871, + + 885, 888, 891, 888, 870, 877, 891, 939, 893, 878, + 891, 892, 890, 899, 2837, 2837, 895, 890, 905, 902, + 888, 890, 909, 906, 908, 897, 904, 906, 915, 962, + 920, 959, 918, 908, 907, 906, 917, 913, 905, 916, + 927, 912, 913, 919, 935, 974, 932, 927, 977, 2837, + 938, 930, 941, 939, 987, 926, 943, 929, 941, 950, + 947, 934, 932, 997, 933, 952, 938, 944, 942, 2837, + 2837, 952, 957, 962, 950, 960, 962, 2837, 963, 950, + 968, 955, 957, 950, 967, 2837, 956, 974, 975, 1014, + 962, 963, 960, 964, 982, 1026, 2837, 2837, 2837, 969, + + 966, 982, 1030, 981, 971, 972, 968, 981, 992, 987, + 1034, 989, 991, 984, 986, 982, 988, 988, 990, 1005, + 988, 1050, 1004, 1006, 1010, 997, 988, 1009, 1012, 998, + 997, 2837, 1004, 1005, 1057, 1058, 1007, 1020, 1061, 1016, + 1006, 1022, 1022, 1016, 1024, 1011, 1042, 1052, 1040, 1048, + 1060, 1077, 1023, 1037, 1020, 1078, 1079, 1038, 1081, 2837, + 1087, 1037, 1028, 1044, 1048, 1092, 1039, 1038, 1033, 1034, + 1046, 1041, 1037, 1046, 1041, 1044, 1057, 1066, 1105, 2837, + 1056, 1050, 1068, 1061, 1056, 1117, 1071, 1072, 1063, 1121, + 1078, 1067, 1070, 1078, 1080, 1065, 1085, 1078, 1083, 1080, + + 1078, 1090, 1074, 1075, 2837, 1091, 1094, 1091, 1078, 1095, + 1090, 1142, 1082, 1101, 2837, 1088, 1101, 1104, 1090, 1085, + 1103, 1146, 1101, 1097, 1094, 1150, 1151, 1110, 1096, 1114, + 1114, 1114, 1115, 1116, 1118, 1103, 1118, 1116, 1106, 1107, + 1123, 1110, 1127, 2837, 1125, 1127, 1175, 1119, 2837, 1122, + 1127, 1174, 1122, 1134, 1128, 1126, 1123, 1129, 1139, 1187, + 1128, 1129, 1129, 1191, 1132, 1144, 1137, 2837, 1133, 1150, + 1142, 1138, 1141, 1144, 1196, 1135, 1157, 1143, 1144, 1145, + 1146, 1152, 1160, 1151, 1156, 1166, 1214, 1168, 1169, 1174, + 1218, 1186, 1215, 1198, 1190, 1195, 2837, 1178, 1163, 1175, + + 1171, 1185, 1168, 1168, 2837, 1171, 1170, 1233, 1173, 2837, + 1184, 1174, 1194, 1193, 1184, 1195, 1241, 1191, 1200, 1193, + 1197, 1201, 1184, 1209, 1206, 1207, 1198, 1256, 1200, 2837, + 1253, 1197, 1201, 2837, 1219, 1201, 1202, 1202, 1223, 1220, + 1222, 1209, 1227, 1215, 1229, 1222, 1231, 1211, 1226, 1233, + 1218, 1279, 1222, 1276, 2837, 1282, 1283, 1222, 1225, 1233, + 1244, 1227, 1247, 1235, 1231, 1238, 1247, 1235, 1242, 1243, + 1255, 1299, 1243, 1301, 1242, 1241, 1245, 1259, 1263, 1307, + 1252, 1258, 1259, 1248, 1312, 1260, 1263, 1315, 2837, 1253, + 1270, 1263, 1254, 1273, 1261, 1271, 1267, 1262, 1281, 1281, + + 2837, 1265, 1261, 1267, 2837, 1269, 1332, 1288, 1269, 1275, + 1289, 1275, 1291, 1277, 1294, 1336, 1286, 1343, 1344, 1294, + 1299, 1293, 1291, 1302, 1301, 1285, 2837, 1290, 1296, 1309, + 2837, 1323, 1336, 1324, 1338, 1325, 1360, 1310, 1298, 1320, + 1315, 1315, 1319, 1320, 1368, 2837, 1308, 1308, 1311, 1328, + 1323, 1327, 1322, 2837, 1331, 1315, 1332, 1312, 1333, 1323, + 1317, 1332, 1329, 1385, 1335, 2837, 1348, 1348, 1389, 1333, + 1342, 1392, 1347, 1352, 1338, 1401, 1356, 1342, 1343, 1357, + 1355, 1352, 1348, 1366, 1367, 1368, 1351, 2837, 1408, 1360, + 2837, 1370, 2837, 1355, 1366, 1372, 1358, 1377, 1370, 1368, + + 1361, 1373, 1420, 1381, 1370, 1377, 1378, 1384, 2837, 1377, + 2837, 1432, 1382, 1371, 1384, 1436, 2837, 1375, 1381, 1382, + 1393, 2837, 1394, 1388, 2837, 1381, 1384, 1398, 1403, 1386, + 1448, 1402, 1389, 1408, 1395, 1400, 1454, 1450, 1400, 1457, + 2837, 1405, 1402, 1413, 1461, 1462, 1463, 1459, 1418, 1419, + 1421, 2837, 2837, 1413, 1408, 1465, 1411, 1427, 1473, 1412, + 1424, 1413, 1430, 1473, 1456, 1457, 1449, 1482, 2837, 1426, + 1437, 1430, 1439, 1430, 1441, 1443, 2837, 1490, 1424, 1435, + 1450, 1489, 1438, 1449, 1435, 1451, 1452, 1449, 1496, 1456, + 1503, 1504, 1460, 1451, 1461, 1468, 1455, 1451, 1514, 1510, + + 1465, 1512, 1518, 1472, 2837, 1469, 1459, 1475, 1466, 1469, + 1478, 1475, 1465, 1468, 1468, 1530, 1470, 1481, 1476, 1534, + 1478, 1536, 1538, 1478, 1483, 1541, 1537, 1475, 1490, 1483, + 1486, 1499, 1500, 1498, 1550, 2837, 1496, 1502, 1492, 2837, + 1508, 1500, 1501, 1553, 1497, 1513, 1561, 1562, 1503, 1513, + 1565, 2837, 1510, 1567, 1508, 1506, 1509, 2837, 1526, 1531, + 2837, 1528, 1516, 1516, 2837, 2837, 2837, 1521, 1531, 1514, + 1534, 1535, 1521, 1523, 1585, 1532, 2837, 1587, 1533, 1527, + 1590, 1555, 1573, 1588, 1575, 2837, 1538, 1597, 1551, 1599, + 1546, 1596, 1602, 2837, 1542, 1604, 1551, 1545, 1542, 1545, + + 1547, 1605, 1565, 1607, 1557, 1569, 1572, 2837, 2837, 1569, + 1563, 1567, 1561, 1568, 1558, 2837, 1566, 1581, 1566, 2837, + 1568, 1568, 1626, 1571, 1628, 1587, 1589, 1589, 1586, 1633, + 1592, 2837, 1593, 1585, 1586, 2837, 1587, 2837, 2837, 1597, + 1590, 2837, 1596, 1601, 1602, 1599, 1646, 1591, 1606, 1607, + 1599, 2837, 1609, 1597, 1607, 1599, 1599, 1600, 1601, 1658, + 1664, 2837, 2837, 1660, 1604, 2837, 1605, 2837, 1619, 1607, + 1615, 1672, 1617, 1609, 1622, 1616, 1626, 1619, 1623, 1639, + 1632, 1638, 1628, 1686, 1636, 2837, 1645, 2837, 1642, 1690, + 2837, 1640, 1668, 1669, 1675, 1660, 1668, 1697, 2837, 1698, + + 2837, 1653, 1638, 2837, 1701, 2837, 1702, 1656, 1661, 1643, + 1706, 1647, 1703, 1666, 1660, 1656, 1650, 1657, 1709, 1664, + 1665, 1655, 1660, 1678, 1726, 1677, 1728, 1678, 1676, 1726, + 1687, 1687, 1729, 1674, 1679, 1677, 1739, 1680, 1688, 1694, + 1682, 1744, 1740, 1700, 1747, 1705, 1694, 1688, 1751, 1690, + 1691, 1705, 1755, 1709, 1700, 1710, 1759, 1760, 1710, 1708, + 2837, 1698, 1759, 1760, 1712, 1712, 1712, 1707, 1708, 1726, + 2837, 1717, 1723, 1728, 1715, 1716, 1778, 1717, 1717, 1719, + 1777, 1720, 2837, 1716, 1734, 1786, 2837, 1741, 1755, 1769, + 1768, 1757, 1759, 2837, 2837, 1793, 1743, 2837, 2837, 1734, + + 1745, 1797, 2837, 1798, 1752, 1743, 1748, 1746, 1799, 1754, + 1759, 1745, 1748, 1764, 1753, 1751, 1765, 1752, 2837, 1754, + 2837, 1759, 1777, 1764, 1773, 1819, 1763, 1826, 1771, 1781, + 1782, 2837, 1830, 1767, 1827, 1782, 1829, 2837, 1777, 1836, + 2837, 1776, 1791, 1779, 2837, 1789, 1790, 1842, 2837, 1797, + 1788, 1802, 2837, 2837, 1778, 1796, 1805, 1787, 1805, 1794, + 1847, 1796, 1792, 1797, 1856, 1795, 1796, 1859, 1855, 1861, + 2837, 1811, 1809, 1864, 1814, 1804, 1820, 1813, 2837, 1869, + 1847, 1871, 1853, 1868, 1874, 2837, 1820, 1876, 1815, 2837, + 2837, 1817, 1819, 1829, 1876, 1821, 1836, 1823, 1885, 1839, + + 1825, 1832, 1832, 1890, 1844, 1845, 1837, 1833, 1835, 1849, + 1837, 1849, 2837, 1896, 1844, 1841, 2837, 1857, 1844, 1857, + 1844, 1865, 2837, 1862, 1910, 1860, 1857, 1858, 2837, 1914, + 1872, 1871, 1870, 1863, 1868, 1869, 1867, 1878, 1862, 1871, + 1920, 1926, 2837, 1876, 1928, 2837, 1874, 2837, 1873, 1869, + 2837, 1876, 1933, 1935, 1931, 2837, 1932, 2837, 1914, 1920, + 2837, 1892, 2837, 1936, 1885, 1896, 1897, 1882, 1883, 1891, + 1948, 2837, 1893, 1945, 1946, 1898, 2837, 1893, 1911, 1912, + 1894, 1900, 1913, 1908, 1905, 1910, 1908, 1963, 1904, 1920, + 1968, 1913, 1910, 1910, 2837, 1925, 1926, 1927, 2837, 1921, + + 1929, 1977, 1927, 1917, 1925, 1938, 1939, 1920, 1921, 1928, + 2837, 1930, 2837, 1944, 1941, 1933, 1985, 1943, 2837, 2837, + 1947, 1973, 1974, 1972, 1935, 1935, 1944, 1951, 1944, 1943, + 1954, 1941, 2837, 1957, 1945, 1948, 2007, 1944, 1963, 1956, + 2006, 1967, 1960, 1959, 1968, 1970, 1974, 2837, 2013, 1967, + 2837, 1972, 1963, 2025, 1965, 2027, 2028, 2024, 2030, 2837, + 1969, 2027, 1986, 1973, 1981, 1992, 1979, 1990, 1976, 1974, + 1982, 1981, 1982, 1988, 1979, 2024, 2048, 2030, 2050, 2000, + 1989, 2002, 1992, 2009, 2008, 2052, 1993, 2012, 2013, 2837, + 2018, 2011, 2058, 2054, 2018, 2005, 2020, 2068, 2022, 2025, + + 2020, 2025, 2014, 2025, 2837, 2077, 2837, 2837, 2024, 2837, + 2079, 2018, 2081, 2021, 2083, 2028, 2080, 2081, 2040, 2083, + 2026, 2030, 2091, 2049, 2093, 2049, 2076, 2837, 2072, 2837, + 2042, 2036, 2033, 2095, 2058, 2051, 2047, 2104, 2044, 2046, + 2045, 2052, 2064, 2099, 2050, 2112, 2053, 2837, 2058, 2068, + 2070, 2072, 2055, 2063, 2837, 2069, 2837, 2071, 2837, 2077, + 2837, 2078, 2078, 2069, 2128, 2069, 2079, 2064, 2837, 2077, + 2837, 2079, 2110, 2116, 2088, 2086, 2138, 2076, 2078, 2075, + 2099, 2837, 2086, 2093, 2094, 2097, 2093, 2148, 2088, 2837, + 2145, 2089, 2097, 2106, 2092, 2108, 2107, 2096, 2103, 2098, + + 2098, 2112, 2107, 2837, 2118, 2106, 2162, 2110, 2122, 2150, + 2171, 2172, 2116, 2837, 2116, 2128, 2176, 2122, 2124, 2122, + 2123, 2181, 2139, 2837, 2132, 2119, 2134, 2139, 2131, 2137, + 2189, 2190, 2129, 2145, 2193, 2194, 2135, 2140, 2136, 2152, + 2135, 2147, 2141, 2203, 2837, 2837, 2148, 2159, 2206, 2837, + 2160, 2145, 2163, 2154, 2837, 2150, 2156, 2170, 2166, 2159, + 2154, 2160, 2837, 2837, 2218, 2219, 2837, 2837, 2159, 2167, + 2162, 2218, 2181, 2178, 2226, 2837, 2222, 2185, 2837, 2229, + 2168, 2231, 2171, 2172, 2185, 2184, 2185, 2175, 2187, 2183, + 2837, 2837, 2178, 2241, 2191, 2200, 2193, 2240, 2837, 2191, + + 2185, 2837, 2197, 2837, 2244, 2203, 2251, 2190, 2206, 2254, + 2207, 2256, 2257, 2837, 2211, 2205, 2198, 2218, 2205, 2217, + 2208, 2212, 2206, 2837, 2263, 2209, 2837, 2219, 2837, 2837, + 2210, 2218, 2268, 2225, 2218, 2230, 2277, 2222, 2222, 2280, + 2219, 2221, 2236, 2284, 2285, 2224, 2240, 2225, 2242, 2837, + 2290, 2234, 2837, 2241, 2293, 2234, 2837, 2837, 2244, 2296, + 2241, 2298, 2837, 2246, 2245, 2837, 2301, 2247, 2837, 2241, + 2837, 2241, 2258, 2837, 2259, 2307, 2250, 2309, 2310, 2837, + 2311, 2837, 2837, 2837, 2837, 2317, 2320, 2323, 2324, 2326, + 2329, 2332, 2335 + } ; -static const flex_int16_t yy_def[2385] = +static const flex_int16_t yy_def[2394] = { 0, - 2377, 2377, 2378, 2378, 2377, 2377, 2377, 2377, 2377, 2377, - 2376, 2376, 2376, 2376, 2376, 2379, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2380, - 2376, 2376, 2376, 2381, 15, 2376, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2382, 45, 45, 45, + 2386, 2386, 2387, 2387, 2386, 2386, 2386, 2386, 2386, 2386, + 2385, 2385, 2385, 2385, 2385, 2388, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2389, + 2385, 2385, 2385, 2390, 15, 2385, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2391, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2379, 2376, - 2376, 2376, 2376, 2376, 2376, 2383, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2380, 2376, 2381, + 45, 45, 45, 45, 45, 45, 45, 45, 2388, 2385, + 2385, 2385, 2385, 2385, 2385, 2392, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2389, 2385, 2390, - 2376, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2384, 45, 2382, 45, 45, 45, + 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2393, 45, 2391, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2383, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2392, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2384, 2376, - 2376, 117, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2393, 2385, + 2385, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 2376, 45, 117, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 2385, 45, 2385, 45, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1322,44 +1325,44 @@ static const flex_int16_t yy_def[2385] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - 45, 45, 45, 45, 45, 2376, 2376, 2376, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 2376, 45, 117, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, + 45, 45, 45, 45, 45, 2385, 2385, 2385, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 2385, 45, 117, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 2376, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 2376, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 2376, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 2376, 2376, 45, 45, 2376, 45, 45, + 45, 2385, 45, 45, 2385, 2385, 45, 45, 2385, 45, - 45, 45, 2376, 45, 45, 45, 45, 2376, 2376, 2376, - 45, 45, 45, 45, 45, 2376, 45, 45, 2376, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 2385, 2385, + 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 45, 45, 45, 45, 45, 45, 2376, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 2376, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, + 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 2376, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 2385, + 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1367,186 +1370,188 @@ static const flex_int16_t yy_def[2385] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 2376, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2376, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 2376, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 2376, 2376, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 2385, 45, 45, 45, 45, 45, 45, 2385, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2385, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 2376, + 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 2376, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2376, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 2376, 45, + 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2376, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2376, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, + 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 45, 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 2376, 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 2376, 45, 45, 45, 45, 45, 2376, - 45, 45, 45, 45, 2376, 45, 45, 2376, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 2376, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, + 2385, 45, 45, 45, 2385, 2385, 2385, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2385, 2385, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - + 45, 2385, 45, 45, 45, 2385, 45, 2385, 2385, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 2385, 45, 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + + 2385, 45, 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 2376, - 45, 45, 2376, 45, 45, 45, 2376, 2376, 2376, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 45, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2376, - - 2376, 45, 45, 45, 45, 45, 45, 2376, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 2376, 45, 2376, - 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 2376, 45, 45, 2376, 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2376, 45, 2376, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 2376, - 45, 2376, 45, 45, 2376, 45, 2376, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, + 45, 45, 45, 2385, 2385, 45, 45, 2385, 2385, 45, + + 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, + 2385, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, + 45, 45, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 45, 2385, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 2376, 45, 45, - 45, 45, 45, 45, 2376, 2376, 45, 45, 2376, 2376, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2376, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 45, 2376, 45, - 45, 2376, 45, 45, 45, 2376, 45, 45, 45, 2376, - 45, 45, 45, 2376, 2376, 45, 45, 45, 45, 45, + 45, 45, 2385, 45, 45, 45, 2385, 45, 45, 45, + 45, 45, 2385, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 2376, - 45, 45, 45, 45, 45, 45, 2376, 45, 45, 45, - 2376, 2376, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2385, 45, 45, 2385, 45, 2385, 45, 45, + 2385, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, + 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 45, 45, 2385, 45, - 45, 45, 45, 2376, 45, 45, 45, 2376, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 2376, 45, 2376, 45, - 45, 2376, 45, 45, 45, 45, 2376, 45, 2376, 45, - 45, 2376, 45, 2376, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 2376, 45, 45, + 2385, 45, 2385, 45, 45, 45, 45, 45, 2385, 2385, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 45, 45, 2376, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 45, 2376, 45, 45, 45, 45, 45, 2376, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2376, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 45, 2385, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 45, 2376, 2376, 45, - - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2376, 45, - 45, 45, 45, 45, 45, 2376, 45, 2376, 45, 2376, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 2376, - 45, 2376, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2376, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, + 45, 45, 45, 45, 2385, 45, 2385, 45, 2385, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, + 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 45, 45, 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2376, 2376, 45, 45, 45, - 2376, 45, 45, 45, 45, 2376, 45, 45, 45, 45, - 45, 45, 45, 2376, 2376, 45, 45, 2376, 2376, 45, - 45, 45, 45, 45, 45, 45, 2376, 45, 45, 2376, + + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2385, 2385, 45, 45, 45, 2385, + 45, 45, 45, 45, 2385, 45, 45, 45, 45, 45, + 45, 45, 2385, 2385, 45, 45, 2385, 2385, 45, 45, + 45, 45, 45, 45, 45, 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2376, 2376, 45, 45, 45, 45, 45, 45, 2376, - 45, 45, 2376, 45, 2376, 45, 45, 45, 45, 45, + 2385, 2385, 45, 45, 45, 45, 45, 45, 2385, 45, - 45, 45, 45, 45, 2376, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2376, 45, 45, 2376, 45, 2376, - 2376, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2385, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2385, 45, 45, 2385, 45, 2385, 2385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2376, 45, 45, 2376, 45, 45, 45, 2376, 2376, 45, - 45, 45, 45, 2376, 45, 45, 2376, 45, 45, 2376, - 45, 2376, 45, 45, 2376, 45, 45, 45, 45, 45, - 2376, 45, 2376, 2376, 2376, 0, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376 + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2385, + 45, 45, 2385, 45, 45, 45, 2385, 2385, 45, 45, + 45, 45, 2385, 45, 45, 2385, 45, 45, 2385, 45, + 2385, 45, 45, 2385, 45, 45, 45, 45, 45, 2385, + 45, 2385, 2385, 2385, 0, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385 + } ; -static const flex_int16_t yy_nxt[2905] = +static const flex_int16_t yy_nxt[2914] = { 0, - 2376, 13, 14, 13, 2376, 15, 16, 101, 17, 18, + 2385, 13, 14, 13, 2385, 15, 16, 101, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 85, 2376, 37, 14, 37, 86, 25, 26, 38, 37, - 14, 37, 42, 27, 42, 38, 2376, 2376, 28, 90, + 85, 2385, 37, 14, 37, 86, 25, 26, 38, 37, + 14, 37, 42, 27, 42, 38, 2385, 2385, 28, 90, 13, 14, 13, 91, 29, 90, 30, 102, 13, 14, 13, 202, 25, 31, 13, 14, 13, 42, 40, 42, 417, 32, 13, 14, 13, 90, 40, 33, 418, 167, @@ -1555,7 +1560,7 @@ static const flex_int16_t yy_nxt[2905] = 22, 22, 22, 23, 24, 39, 13, 14, 13, 92, 92, 25, 26, 39, 13, 14, 13, 42, 27, 42, - 884, 94, 121, 28, 108, 153, 41, 104, 105, 29, + 886, 94, 121, 28, 108, 153, 41, 104, 105, 29, 107, 30, 113, 154, 41, 141, 122, 25, 31, 95, 142, 245, 88, 143, 88, 155, 32, 89, 89, 89, 89, 89, 33, 108, 104, 105, 107, 246, 113, 34, @@ -1577,19 +1582,19 @@ static const flex_int16_t yy_nxt[2905] = 45, 190, 189, 110, 119, 159, 45, 120, 45, 45, 112, 45, 199, 160, 45, 161, 191, 45, 144, 116, - 162, 145, 45, 45, 885, 45, 45, 205, 146, 192, + 162, 145, 45, 45, 887, 45, 45, 205, 146, 192, 147, 102, 45, 45, 45, 45, 45, 45, 105, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 205, 114, 886, 123, 45, + 45, 45, 45, 45, 45, 205, 114, 888, 123, 45, 149, 150, 124, 45, 151, 105, 125, 45, 191, 126, 152, 135, 127, 136, 207, 45, 128, 109, 113, 45, 190, 45, 117, 114, 137, 110, 176, 177, 198, 201, - 887, 169, 138, 187, 139, 170, 111, 194, 171, 156, + 889, 169, 138, 187, 139, 170, 111, 194, 171, 156, 208, 157, 207, 158, 183, 172, 173, 193, 112, 203, 174, 175, 280, 110, 184, 281, 201, 198, 223, 185, 224, 206, 178, 242, 179, 226, 208, 180, 84, 84, - 84, 84, 84, 888, 227, 228, 243, 181, 203, 257, + 84, 84, 84, 890, 227, 228, 243, 181, 203, 257, 244, 82, 219, 80, 182, 81, 81, 81, 81, 81, 206, 220, 258, 453, 88, 221, 88, 100, 82, 89, 89, 89, 89, 89, 100, 454, 80, 82, 83, 83, @@ -1611,91 +1616,91 @@ static const flex_int16_t yy_nxt[2905] = 383, 421, 334, 337, 337, 337, 337, 337, 339, 456, 398, 456, 337, 337, 337, 337, 337, 337, 334, 459, - 461, 464, 466, 462, 461, 467, 474, 496, 561, 460, - 889, 466, 446, 497, 539, 456, 475, 457, 337, 337, - 337, 337, 337, 337, 540, 392, 890, 464, 393, 461, + 461, 464, 466, 462, 461, 467, 474, 496, 562, 460, + 891, 466, 446, 497, 524, 456, 475, 457, 337, 337, + 337, 337, 337, 337, 525, 392, 892, 464, 393, 461, 462, 466, 467, 472, 452, 470, 470, 470, 470, 470, - 541, 611, 816, 817, 470, 470, 470, 470, 470, 470, - 512, 516, 531, 532, 555, 513, 517, 533, 566, 556, - 562, 576, 567, 598, 606, 577, 606, 611, 599, 624, - 470, 470, 470, 470, 470, 470, 645, 612, 659, 613, - - 681, 625, 635, 660, 723, 743, 636, 610, 744, 646, - 682, 647, 690, 606, 637, 615, 638, 639, 640, 641, - 642, 770, 891, 755, 756, 612, 514, 613, 754, 751, - 785, 515, 518, 786, 758, 557, 45, 45, 45, 45, - 45, 752, 893, 894, 837, 45, 45, 45, 45, 45, - 45, 755, 838, 756, 754, 762, 753, 876, 841, 724, - 892, 895, 763, 842, 897, 896, 898, 752, 877, 893, - 894, 45, 45, 45, 45, 45, 45, 771, 899, 900, - 901, 902, 903, 904, 905, 753, 906, 907, 908, 892, - 895, 896, 909, 910, 912, 913, 914, 918, 919, 911, - - 843, 915, 916, 920, 917, 921, 922, 923, 924, 925, + 542, 612, 893, 725, 470, 470, 470, 470, 470, 470, + 512, 516, 532, 533, 540, 513, 517, 534, 556, 607, + 563, 567, 577, 557, 541, 568, 578, 612, 607, 646, + 470, 470, 470, 470, 470, 470, 599, 613, 625, 614, + + 660, 600, 647, 683, 648, 661, 611, 756, 607, 745, + 626, 692, 746, 684, 894, 764, 753, 616, 726, 754, + 757, 760, 765, 819, 820, 613, 514, 614, 758, 772, + 900, 515, 518, 756, 755, 787, 879, 895, 788, 558, + 45, 45, 45, 45, 45, 754, 901, 880, 757, 45, + 45, 45, 45, 45, 45, 636, 840, 758, 898, 637, + 844, 896, 897, 755, 841, 845, 895, 638, 899, 639, + 640, 641, 642, 643, 902, 45, 45, 45, 45, 45, + 45, 903, 904, 905, 906, 773, 907, 898, 896, 897, + 908, 909, 910, 911, 899, 912, 915, 913, 916, 917, + + 921, 922, 846, 914, 918, 919, 923, 920, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, - 936, 937, 938, 939, 942, 943, 944, 940, 945, 946, - 947, 941, 948, 949, 950, 951, 952, 953, 954, 955, - 956, 958, 959, 960, 961, 962, 963, 964, 965, 966, - 967, 968, 969, 970, 957, 972, 971, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, + 936, 937, 938, 939, 940, 941, 942, 945, 946, 947, + 943, 948, 949, 950, 944, 951, 952, 953, 954, 955, + 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, + 967, 968, 969, 970, 971, 972, 973, 960, 974, 976, + 977, 975, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 1009, 1010, 1012, 1013, 1014, 1017, 1018, + 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, - 1019, 1011, 1020, 1024, 1015, 1025, 1026, 1027, 1016, 1028, - 1029, 1030, 1031, 1032, 1033, 1021, 1034, 1022, 1035, 1036, - 1037, 1023, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1017, 1018, 1021, 1022, 1023, 1015, 1024, 1028, 1019, 1029, + 1030, 1031, 1020, 1032, 1033, 1034, 1035, 1036, 1037, 1025, + 1038, 1026, 1039, 1040, 1041, 1027, 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, 1067, 1068, 1069, 1043, 1070, 1071, 1044, 1072, 1073, - 1047, 1074, 1075, 1076, 1078, 1079, 1080, 1081, 1077, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1103, - 1104, 1105, 1106, 1102, 1107, 1108, 1109, 1110, 1111, 1112, + 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1047, 1074, + 1075, 1048, 1076, 1077, 1051, 1078, 1079, 1080, 1082, 1083, + 1084, 1085, 1081, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1103, 1104, 1105, 1107, 1108, 1109, 1110, 1106, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1133, - 1134, 1135, 1132, 1136, 1137, 1138, 1139, 1141, 1142, 1143, - 1144, 1140, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1136, 1138, 1139, 1140, 1137, 1141, 1142, + 1143, 1144, 1146, 1147, 1148, 1149, 1145, 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, 1182, - 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1192, 1190, 1193, - 1194, 1191, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, + 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, + 1193, 1194, 1197, 1195, 1198, 1199, 1196, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, - 1213, 1214, 1188, 1187, 1215, 1189, 1190, 1191, 1216, 1217, - 1218, 1219, 1221, 1222, 1220, 1223, 1224, 1225, 1226, 1227, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1193, 1192, 1220, + 1194, 1195, 1196, 1221, 1222, 1223, 1224, 1226, 1227, 1225, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258, 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, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1311, 1251, 1312, 1313, 1314, 1315, 1316, 1317, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1256, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1329, 1328, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1328, 1329, 1330, 1331, 1332, 1333, 1335, 1334, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1326, 1328, 1329, - 1330, 1355, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1356, - 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1358, 1359, 1360, 1332, 1334, 1335, 1336, 1361, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1362, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, - 1384, 1385, 1387, 1389, 1390, 1391, 1386, 1392, 1393, 1394, - 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1393, 1395, + 1396, 1397, 1392, 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, 1388, - 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, + 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, + 1435, 1436, 1437, 1438, 1439, 1394, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1461, 1460, 1462, 1463, - 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, + 1464, 1465, 1466, 1468, 1467, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - 1458, 1484, 1457, 1460, 1459, 1461, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, + 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1465, 1491, 1464, + 1467, 1466, 1468, 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, @@ -1705,167 +1710,168 @@ static const flex_int16_t yy_nxt[2905] = 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, 1588, 1589, - 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, + 1589, 1590, 1591, 1592, 1593, 1594, 1596, 1597, 1598, 1599, - 1600, 1601, 1602, 1575, 1576, 1603, 1604, 1577, 1605, 1606, - 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, + 1610, 1583, 1584, 1611, 1612, 1585, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, - 1627, 1628, 1629, 1630, 1587, 1631, 1632, 1633, 1634, 1635, - 1636, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1637, 1645, - 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, - 1656, 1657, 1658, 1659, 1661, 1662, 1663, 1664, 1660, 1665, - 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1684, 1685, 1686, - 1689, 1683, 1688, 1690, 1691, 1692, 1693, 1694, 1695, 1696, - - 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, - 1707, 1708, 1709, 1687, 1685, 1710, 1684, 1711, 1688, 1712, - 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, + 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1595, 1639, 1640, 1641, 1642, 1643, 1644, 1645, + 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1646, 1654, 1655, + 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, + 1666, 1667, 1668, 1670, 1671, 1672, 1673, 1669, 1674, 1675, + 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, + 1686, 1687, 1688, 1689, 1690, 1691, 1693, 1694, 1695, 1698, + + 1692, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, + 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, + 1717, 1718, 1696, 1694, 1719, 1693, 1720, 1697, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1687, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, - 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, - 1752, 1753, 1754, 1755, 1756, 1760, 1757, 1761, 1762, 1758, - 1763, 1764, 1759, 1765, 1766, 1767, 1768, 1769, 1770, 1771, - 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, - 1783, 1782, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, - - 1792, 1793, 1794, 1796, 1797, 1800, 1801, 1798, 1802, 1803, - 1804, 1805, 1806, 1807, 1808, 1780, 1781, 1782, 1799, 1783, - 1784, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, - 1818, 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827, 1828, - 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, + 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, + 1696, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, + 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, + 1762, 1763, 1764, 1765, 1769, 1766, 1770, 1771, 1767, 1772, + 1773, 1768, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, + 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1792, + + 1791, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, + 1802, 1803, 1805, 1806, 1809, 1810, 1807, 1811, 1812, 1813, + 1814, 1815, 1816, 1817, 1789, 1790, 1791, 1808, 1792, 1793, + 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, + 1828, 1829, 1830, 1831, 1832, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, - 1849, 1850, 1851, 1795, 1852, 1853, 1854, 1855, 1856, 1857, - 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, - 1868, 1869, 1870, 1871, 1872, 1873, 1875, 1874, 1876, 1877, - 1878, 1879, 1880, 1881, 1882, 1883, 1824, 1884, 1885, 1886, - - 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, - 1897, 1873, 1898, 1872, 1874, 1875, 1899, 1876, 1900, 1901, - 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, + 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, + 1859, 1860, 1804, 1861, 1862, 1863, 1864, 1865, 1866, 1867, + 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, + 1878, 1879, 1880, 1881, 1882, 1884, 1883, 1885, 1886, 1887, + + 1888, 1889, 1890, 1891, 1892, 1833, 1893, 1894, 1895, 1896, + 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, + 1882, 1907, 1881, 1883, 1884, 1908, 1885, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, - 1972, 1973, 1974, 1948, 1950, 1975, 1976, 1977, 1978, 1979, + 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, - 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, + 1982, 1983, 1957, 1959, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, - 2006, 2011, 2012, 2013, 2014, 2016, 2015, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2011, 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2015, + 2020, 2021, 2022, 2023, 2025, 2024, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, - 2040, 2014, 2015, 2041, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, + 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, + 2023, 2024, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, - 2088, 2089, 2090, 2091, 2092, 2067, 2068, 2093, 2069, 2094, - 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, - 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2114, 2115, - 2113, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, + 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, + 2098, 2099, 2100, 2101, 2076, 2077, 2102, 2078, 2103, 2104, + 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, + 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2123, 2124, 2122, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, - 2118, 2120, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, - 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, + 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2127, + 2129, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, - 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2164, 2190, 2165, - 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, - 2201, 2203, 2202, 2204, 2205, 2206, 2207, 2208, 2209, 2210, - 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, - 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2201, 2202, 2228, - 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, + 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, + 2193, 2194, 2195, 2196, 2197, 2198, 2173, 2199, 2174, 2200, + 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, + 2212, 2211, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, + 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, + 2231, 2232, 2233, 2234, 2235, 2236, 2210, 2211, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, - 2259, 2260, 2235, 2261, 2262, 2263, 2264, 2265, 2266, 2267, + 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, - 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, + 2269, 2244, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, - 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2327, 2326, - 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, + 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, + 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2336, 2335, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, - 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 12, 12, - 12, 36, 36, 36, 79, 98, 79, 100, 100, 100, - 115, 115, 115, 188, 883, 188, 209, 209, 209, 882, - 881, 880, 879, 878, 875, 874, 873, 872, 871, 870, - 869, 868, 867, 866, 865, 864, 863, 862, 861, 860, - 859, 858, 857, 856, 855, 854, 853, 852, 851, 850, - 849, 848, 847, 846, 845, 844, 840, 839, 836, 835, - 834, 833, 832, 831, 830, 829, 828, 827, 826, 825, - 824, 823, 822, 821, 820, 819, 818, 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, 784, 783, 782, 781, - 780, 779, 778, 777, 776, 775, 774, 773, 772, 769, - 768, 767, 766, 765, 764, 761, 760, 759, 757, 751, - 750, 749, 748, 747, 746, 745, 742, 741, 740, 739, - 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, - 728, 727, 726, 725, 722, 721, 720, 719, 718, 717, - 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, - 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, - 696, 695, 694, 693, 692, 691, 689, 688, 687, 686, - - 685, 684, 683, 680, 679, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, - 663, 662, 661, 658, 657, 656, 655, 654, 653, 652, - 651, 650, 649, 648, 644, 643, 634, 633, 632, 631, - 630, 629, 628, 627, 626, 623, 622, 621, 620, 619, - 618, 617, 616, 614, 610, 609, 608, 607, 605, 604, - 603, 602, 601, 600, 597, 596, 595, 594, 593, 592, - 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, - 581, 580, 579, 578, 575, 574, 573, 572, 571, 570, - 569, 568, 565, 564, 563, 560, 559, 558, 554, 553, - - 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 542, 538, 537, 536, 535, 534, 530, 529, 528, 527, - 526, 525, 524, 523, 522, 521, 520, 519, 511, 510, - 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, - 499, 498, 495, 494, 493, 492, 491, 490, 489, 488, - 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, - 477, 476, 473, 471, 469, 468, 465, 463, 458, 455, - 450, 449, 448, 447, 445, 444, 443, 441, 440, 439, - 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, - 424, 423, 422, 419, 416, 415, 414, 413, 412, 411, - - 410, 409, 406, 403, 402, 401, 400, 399, 397, 396, - 395, 394, 390, 389, 388, 387, 386, 385, 384, 381, - 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, - 360, 359, 358, 357, 351, 350, 349, 348, 347, 346, - 345, 344, 343, 342, 341, 340, 338, 210, 335, 333, - 328, 325, 324, 317, 316, 315, 311, 309, 305, 304, - 303, 300, 299, 298, 283, 282, 279, 274, 273, 270, - 267, 266, 265, 264, 261, 260, 259, 256, 255, 254, - 253, 252, 251, 250, 241, 238, 237, 236, 235, 234, - - 231, 230, 229, 225, 222, 218, 217, 216, 215, 210, - 204, 200, 197, 196, 195, 186, 166, 148, 106, 103, - 43, 99, 97, 96, 87, 43, 2376, 11, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - - 2376, 2376, 2376, 2376 + 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, + 2378, 2379, 2380, 2381, 2382, 2383, 2384, 12, 12, 12, + 36, 36, 36, 79, 98, 79, 100, 100, 100, 115, + 115, 115, 188, 885, 188, 209, 209, 209, 884, 883, + 882, 881, 878, 877, 876, 875, 874, 873, 872, 871, + 870, 869, 868, 867, 866, 865, 864, 863, 862, 861, + 860, 859, 858, 857, 856, 855, 854, 853, 852, 851, + 850, 849, 848, 847, 843, 842, 839, 838, 837, 836, + 835, 834, 833, 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, 786, 785, 784, 783, 782, + 781, 780, 779, 778, 777, 776, 775, 774, 771, 770, + 769, 768, 767, 766, 763, 762, 761, 759, 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, 724, 723, 722, 721, 720, 719, 718, + 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, + 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, + + 697, 696, 695, 694, 693, 691, 690, 689, 688, 687, + 686, 685, 682, 681, 680, 679, 678, 677, 676, 675, + 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, + 664, 663, 662, 659, 658, 657, 656, 655, 654, 653, + 652, 651, 650, 649, 645, 644, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 624, 623, 622, 621, 620, + 619, 618, 617, 615, 611, 610, 609, 608, 606, 605, + 604, 603, 602, 601, 598, 597, 596, 595, 594, 593, + 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, + 582, 581, 580, 579, 576, 575, 574, 573, 572, 571, + + 570, 569, 566, 565, 564, 561, 560, 559, 555, 554, + 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, + 543, 539, 538, 537, 536, 535, 531, 530, 529, 528, + 527, 526, 523, 522, 521, 520, 519, 511, 510, 509, + 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, + 498, 495, 494, 493, 492, 491, 490, 489, 488, 487, + 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, + 476, 473, 471, 469, 468, 465, 463, 458, 455, 450, + 449, 448, 447, 445, 444, 443, 441, 440, 439, 434, + 433, 432, 431, 430, 429, 428, 427, 426, 425, 424, + + 423, 422, 419, 416, 415, 414, 413, 412, 411, 410, + 409, 406, 403, 402, 401, 400, 399, 397, 396, 395, + 394, 390, 389, 388, 387, 386, 385, 384, 381, 380, + 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, + 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, + 359, 358, 357, 351, 350, 349, 348, 347, 346, 345, + 344, 343, 342, 341, 340, 338, 210, 335, 333, 328, + 325, 324, 317, 316, 315, 311, 309, 305, 304, 303, + 300, 299, 298, 283, 282, 279, 274, 273, 270, 267, + 266, 265, 264, 261, 260, 259, 256, 255, 254, 253, + + 252, 251, 250, 241, 238, 237, 236, 235, 234, 231, + 230, 229, 225, 222, 218, 217, 216, 215, 210, 204, + 200, 197, 196, 195, 186, 166, 148, 106, 103, 43, + 99, 97, 96, 87, 43, 2385, 11, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385 } ; -static const flex_int16_t yy_chk[2905] = +static const flex_int16_t yy_chk[2914] = { 0, 0, 1, 1, 1, 0, 1, 1, 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1879,7 +1885,7 @@ static const flex_int16_t yy_chk[2905] = 2, 2, 2, 2, 2, 5, 9, 9, 9, 28, 33, 2, 2, 6, 10, 10, 10, 42, 2, 42, - 741, 32, 59, 2, 52, 68, 9, 48, 49, 2, + 742, 32, 59, 2, 52, 68, 9, 48, 49, 2, 51, 2, 55, 68, 10, 64, 59, 2, 2, 33, 64, 140, 25, 64, 25, 68, 2, 25, 25, 25, 25, 25, 2, 52, 48, 49, 51, 140, 55, 2, @@ -1901,19 +1907,19 @@ static const flex_int16_t yy_chk[2905] = 45, 91, 93, 53, 58, 70, 45, 58, 45, 45, 54, 45, 105, 70, 45, 70, 92, 45, 65, 57, - 70, 65, 45, 45, 742, 45, 57, 111, 65, 93, + 70, 65, 45, 45, 743, 45, 57, 111, 65, 93, 65, 100, 45, 45, 45, 45, 45, 45, 60, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 111, 78, 743, 60, 57, + 45, 45, 45, 45, 45, 111, 78, 744, 60, 57, 67, 67, 60, 57, 67, 60, 60, 57, 95, 60, 67, 62, 60, 62, 113, 57, 60, 69, 76, 57, 94, 57, 57, 78, 62, 69, 75, 75, 104, 107, - 744, 74, 62, 78, 62, 74, 75, 95, 74, 69, + 745, 74, 62, 78, 62, 74, 75, 95, 74, 69, 114, 69, 113, 69, 76, 74, 74, 94, 75, 109, 74, 74, 165, 69, 76, 165, 107, 104, 125, 76, 125, 112, 75, 139, 75, 127, 114, 75, 80, 80, - 80, 80, 80, 745, 127, 127, 139, 75, 109, 149, + 80, 80, 80, 746, 127, 127, 139, 75, 109, 149, 139, 80, 123, 81, 75, 81, 81, 81, 81, 81, 112, 123, 149, 316, 82, 123, 82, 102, 81, 82, 82, 82, 82, 82, 102, 316, 83, 80, 83, 83, @@ -1936,213 +1942,214 @@ static const flex_int16_t yy_chk[2905] = 255, 287, 206, 212, 212, 212, 212, 212, 214, 318, 268, 321, 212, 212, 212, 212, 212, 212, 310, 325, 326, 329, 331, 327, 339, 332, 341, 362, 417, 325, - 747, 398, 310, 362, 397, 318, 341, 321, 212, 212, - 212, 212, 212, 212, 397, 263, 749, 329, 263, 326, + 747, 398, 310, 362, 384, 318, 341, 321, 212, 212, + 212, 212, 212, 212, 384, 263, 749, 329, 263, 326, 327, 331, 332, 339, 315, 337, 337, 337, 337, 337, - 398, 467, 674, 674, 337, 337, 337, 337, 337, 337, - 377, 378, 391, 391, 412, 377, 378, 391, 421, 412, - 417, 430, 421, 452, 461, 430, 472, 467, 452, 481, - 337, 337, 337, 337, 337, 337, 496, 469, 509, 469, - - 532, 481, 493, 509, 576, 599, 493, 541, 599, 496, - 532, 496, 541, 461, 493, 472, 493, 493, 493, 493, - 493, 628, 750, 612, 613, 469, 377, 469, 611, 615, - 642, 377, 378, 642, 615, 412, 470, 470, 470, 470, - 470, 607, 753, 754, 694, 470, 470, 470, 470, 470, - 470, 612, 694, 613, 611, 621, 607, 734, 697, 576, - 752, 755, 621, 697, 757, 756, 758, 607, 734, 753, - 754, 470, 470, 470, 470, 470, 470, 628, 759, 760, - 761, 762, 763, 764, 765, 607, 766, 767, 768, 752, - 755, 756, 769, 770, 771, 772, 773, 775, 776, 770, - - 697, 774, 774, 777, 774, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 795, 796, 797, 798, 799, 796, 800, 801, - 802, 796, 803, 804, 805, 806, 807, 808, 809, 810, - 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 823, 824, 811, 825, 824, 826, 827, 829, - 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, - 840, 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, 867, 868, 869, - - 870, 865, 871, 872, 867, 873, 874, 875, 867, 877, - 878, 879, 880, 881, 882, 871, 883, 871, 884, 885, - 886, 871, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, - 905, 906, 907, 908, 909, 910, 911, 914, 915, 916, - 917, 918, 919, 920, 892, 921, 922, 893, 923, 924, - 896, 925, 926, 927, 928, 929, 930, 931, 927, 932, - 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 943, 944, 945, 946, 948, 949, 950, 951, 952, 953, - 954, 955, 956, 952, 957, 958, 959, 960, 961, 962, - - 963, 964, 965, 968, 969, 970, 971, 972, 973, 975, - 976, 977, 978, 979, 980, 981, 983, 984, 985, 986, - 987, 988, 985, 989, 990, 991, 992, 996, 997, 998, - 999, 992, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 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, 1040, 1041, 1042, 1043, 1044, 1045, 1048, 1046, 1049, - 1050, 1047, 1051, 1052, 1053, 1054, 1055, 1057, 1058, 1059, - 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, - - 1070, 1071, 1044, 1043, 1072, 1045, 1046, 1047, 1073, 1074, - 1075, 1077, 1078, 1079, 1077, 1080, 1081, 1082, 1083, 1084, - 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, - 1095, 1096, 1097, 1098, 1099, 1100, 1102, 1103, 1104, 1105, - 1106, 1107, 1108, 1109, 1110, 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, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, - 1159, 1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1169, - - 1170, 1171, 1172, 1108, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1190, 1189, 1191, 1193, 1194, 1195, 1196, 1197, 1198, 1199, - 1201, 1202, 1203, 1204, 1206, 1207, 1208, 1209, 1210, 1211, - 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1187, 1189, 1190, - 1191, 1219, 1220, 1221, 1222, 1223, 1224, 1226, 1227, 1219, - 1228, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, - 1249, 1251, 1252, 1253, 1254, 1255, 1251, 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, 1281, 1282, 1284, 1285, 1286, 1287, 1288, 1289, - 1290, 1291, 1292, 1293, 1294, 1296, 1297, 1298, 1300, 1252, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1322, 1323, 1324, 1326, 1327, 1328, 1330, 1329, 1331, 1332, - 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1341, 1342, 1343, - 1344, 1345, 1346, 1347, 1349, 1350, 1351, 1352, 1353, 1354, - 1327, 1355, 1326, 1329, 1328, 1330, 1356, 1357, 1358, 1359, - 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, - - 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, - 1381, 1383, 1384, 1386, 1388, 1389, 1390, 1391, 1392, 1393, - 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1403, 1405, - 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1416, 1417, - 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, - 1429, 1430, 1431, 1432, 1433, 1435, 1436, 1437, 1438, 1439, - 1440, 1441, 1442, 1443, 1444, 1447, 1448, 1449, 1450, 1451, - 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, - 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1472, 1473, - 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - - 1484, 1485, 1486, 1458, 1459, 1487, 1488, 1460, 1489, 1490, - 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1499, 1500, 1501, - 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, - 1512, 1513, 1514, 1515, 1471, 1516, 1517, 1518, 1519, 1520, - 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1529, 1521, 1530, - 1531, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, - 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1551, 1546, 1551, - 1552, 1554, 1555, 1556, 1560, 1561, 1562, 1563, 1564, 1565, - 1566, 1567, 1568, 1570, 1571, 1572, 1573, 1574, 1575, 1576, - 1579, 1573, 1577, 1580, 1581, 1582, 1583, 1584, 1585, 1587, - - 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, - 1598, 1599, 1602, 1576, 1575, 1603, 1574, 1604, 1577, 1605, - 1606, 1607, 1609, 1610, 1611, 1613, 1614, 1615, 1616, 1617, - 1618, 1619, 1620, 1621, 1622, 1623, 1625, 1626, 1627, 1629, - 1631, 1576, 1632, 1634, 1635, 1636, 1637, 1638, 1639, 1640, - 1641, 1642, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, - 1652, 1655, 1656, 1658, 1660, 1661, 1660, 1662, 1663, 1660, - 1664, 1665, 1660, 1666, 1667, 1668, 1669, 1670, 1671, 1672, - 1673, 1674, 1675, 1676, 1678, 1680, 1681, 1683, 1684, 1685, - 1687, 1686, 1688, 1689, 1691, 1693, 1694, 1696, 1698, 1699, - - 1700, 1701, 1702, 1703, 1704, 1706, 1707, 1705, 1708, 1709, - 1710, 1711, 1712, 1713, 1714, 1684, 1685, 1686, 1705, 1687, - 1688, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, - 1724, 1725, 1726, 1727, 1727, 1728, 1729, 1730, 1731, 1732, - 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, - 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1753, - 1754, 1755, 1756, 1702, 1757, 1758, 1759, 1760, 1761, 1763, - 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, - 1775, 1776, 1777, 1779, 1780, 1781, 1783, 1782, 1784, 1787, - 1788, 1791, 1792, 1793, 1795, 1796, 1728, 1797, 1798, 1799, - - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1811, 1781, 1813, 1780, 1782, 1783, 1814, 1784, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, - 1828, 1830, 1831, 1833, 1834, 1835, 1837, 1838, 1839, 1841, - 1842, 1843, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, - 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1863, 1864, - 1865, 1866, 1867, 1868, 1869, 1871, 1872, 1873, 1874, 1875, - 1876, 1878, 1879, 1880, 1883, 1884, 1885, 1886, 1887, 1888, - 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, - 1899, 1900, 1901, 1872, 1874, 1902, 1903, 1905, 1906, 1907, - - 1909, 1910, 1911, 1912, 1913, 1915, 1916, 1917, 1918, 1919, - 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, - 1931, 1932, 1933, 1935, 1936, 1938, 1940, 1941, 1943, 1944, - 1938, 1945, 1946, 1948, 1950, 1953, 1951, 1955, 1956, 1957, - 1958, 1959, 1960, 1961, 1962, 1964, 1965, 1966, 1967, 1969, - 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, - 1980, 1950, 1951, 1981, 1982, 1983, 1984, 1985, 1987, 1988, - 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2003, 2005, 2006, 2007, 2008, 2009, 2012, 2013, - 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, - - 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, - 2035, 2036, 2037, 2038, 2040, 2013, 2014, 2041, 2015, 2043, - 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2052, 2053, 2054, - 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, - 2062, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, - 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2082, 2083, 2084, - 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, - 2067, 2069, 2095, 2097, 2100, 2102, 2103, 2104, 2105, 2106, - 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, - 2117, 2118, 2120, 2122, 2123, 2124, 2125, 2126, 2127, 2128, - - 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, - 2140, 2141, 2142, 2143, 2144, 2145, 2147, 2118, 2149, 2120, - 2151, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2161, 2163, - 2164, 2166, 2165, 2167, 2168, 2169, 2170, 2171, 2172, 2174, - 2175, 2176, 2177, 2178, 2179, 2180, 2182, 2183, 2184, 2185, - 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2164, 2165, 2193, - 2194, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, - 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2216, - 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, - 2227, 2228, 2201, 2229, 2230, 2231, 2232, 2233, 2234, 2235, - - 2238, 2239, 2240, 2242, 2243, 2244, 2245, 2247, 2248, 2249, - 2250, 2251, 2252, 2253, 2256, 2257, 2260, 2261, 2262, 2263, - 2264, 2265, 2266, 2268, 2269, 2271, 2272, 2273, 2274, 2275, - 2276, 2277, 2278, 2279, 2280, 2281, 2284, 2285, 2286, 2287, - 2288, 2289, 2291, 2292, 2294, 2296, 2297, 2298, 2299, 2300, - 2301, 2302, 2303, 2304, 2306, 2307, 2308, 2309, 2310, 2309, - 2311, 2312, 2313, 2314, 2316, 2317, 2319, 2322, 2323, 2324, - 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, - 2335, 2336, 2337, 2338, 2339, 2340, 2342, 2343, 2345, 2346, - 2347, 2350, 2351, 2352, 2353, 2355, 2356, 2358, 2359, 2361, - - 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2372, 2377, 2377, - 2377, 2378, 2378, 2378, 2379, 2380, 2379, 2381, 2381, 2381, - 2382, 2382, 2382, 2383, 740, 2383, 2384, 2384, 2384, 739, - 738, 737, 736, 735, 733, 732, 731, 730, 728, 727, - 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, - 716, 714, 713, 712, 711, 709, 708, 707, 706, 704, - 703, 702, 701, 700, 699, 698, 696, 695, 693, 692, + 398, 467, 751, 577, 337, 337, 337, 337, 337, 337, + 377, 378, 391, 391, 397, 377, 378, 391, 412, 461, + 417, 421, 430, 412, 397, 421, 430, 467, 472, 496, + 337, 337, 337, 337, 337, 337, 452, 469, 481, 469, + + 509, 452, 496, 533, 496, 509, 542, 612, 461, 600, + 481, 542, 600, 533, 752, 622, 616, 472, 577, 608, + 613, 616, 622, 676, 676, 469, 377, 469, 614, 629, + 759, 377, 378, 612, 608, 643, 736, 754, 643, 412, + 470, 470, 470, 470, 470, 608, 760, 736, 613, 470, + 470, 470, 470, 470, 470, 493, 696, 614, 757, 493, + 699, 755, 756, 608, 696, 699, 754, 493, 758, 493, + 493, 493, 493, 493, 761, 470, 470, 470, 470, 470, + 470, 762, 763, 764, 765, 629, 766, 757, 755, 756, + 767, 768, 769, 770, 758, 771, 773, 772, 774, 775, + + 777, 778, 699, 772, 776, 776, 779, 776, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + 798, 802, 803, 804, 798, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 823, 824, 825, 826, 813, 827, 828, + 829, 827, 830, 832, 833, 834, 835, 836, 837, 838, + 839, 840, 841, 842, 843, 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, 870, 871, 872, 873, 868, 874, 875, 870, 876, + 877, 878, 870, 880, 881, 882, 883, 884, 885, 874, + 886, 874, 887, 888, 889, 874, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, + 914, 917, 918, 919, 920, 921, 922, 923, 895, 924, + 925, 896, 926, 927, 899, 928, 929, 930, 931, 932, + 933, 934, 930, 935, 936, 937, 938, 939, 940, 941, + 942, 943, 944, 945, 946, 947, 948, 949, 951, 952, + 953, 954, 955, 956, 957, 958, 959, 955, 960, 961, + + 962, 963, 964, 965, 966, 967, 968, 969, 972, 973, + 974, 975, 976, 977, 979, 980, 981, 982, 983, 984, + 985, 987, 988, 989, 990, 991, 992, 989, 993, 994, + 995, 996, 1000, 1001, 1002, 1003, 996, 1004, 1005, 1006, + 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, + 1027, 1028, 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, + 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, + 1048, 1049, 1052, 1050, 1053, 1054, 1051, 1055, 1056, 1057, + 1058, 1059, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1048, 1047, 1076, + 1049, 1050, 1051, 1077, 1078, 1079, 1081, 1082, 1083, 1081, + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1104, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, + 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, 1145, 1146, + 1147, 1148, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + + 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1112, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1195, 1194, 1196, 1198, + 1199, 1200, 1201, 1202, 1203, 1204, 1206, 1207, 1208, 1209, + 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1192, 1194, 1195, 1196, 1224, 1225, 1226, + 1227, 1228, 1229, 1231, 1232, 1224, 1233, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1256, 1257, 1258, + 1259, 1260, 1256, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, + 1299, 1300, 1302, 1303, 1304, 1257, 1306, 1307, 1308, 1309, + 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, + 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1328, 1329, 1330, + 1332, 1333, 1334, 1336, 1335, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1344, 1345, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1355, 1356, 1357, 1358, 1359, 1360, 1333, 1361, 1332, + 1335, 1334, 1336, 1362, 1363, 1364, 1365, 1367, 1368, 1369, + + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, + 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1389, 1390, + 1392, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1404, 1405, 1406, 1407, 1408, 1410, 1412, 1413, 1414, + 1415, 1416, 1418, 1419, 1420, 1421, 1423, 1424, 1426, 1427, + 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, + 1438, 1439, 1440, 1442, 1443, 1444, 1445, 1446, 1447, 1448, + 1449, 1450, 1451, 1454, 1455, 1456, 1457, 1458, 1459, 1460, + 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1470, 1471, + 1472, 1473, 1474, 1475, 1476, 1478, 1479, 1480, 1481, 1482, + + 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, + 1493, 1465, 1466, 1494, 1495, 1467, 1496, 1497, 1498, 1499, + 1500, 1501, 1502, 1503, 1504, 1506, 1507, 1508, 1509, 1510, + 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, + 1521, 1522, 1478, 1523, 1524, 1525, 1526, 1527, 1528, 1529, + 1530, 1531, 1532, 1533, 1534, 1535, 1537, 1529, 1538, 1539, + 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, + 1551, 1553, 1554, 1555, 1556, 1557, 1559, 1554, 1559, 1560, + 1562, 1563, 1564, 1568, 1569, 1570, 1571, 1572, 1573, 1574, + 1575, 1576, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1587, + + 1581, 1585, 1588, 1589, 1590, 1591, 1592, 1593, 1595, 1596, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, + 1607, 1610, 1584, 1583, 1611, 1582, 1612, 1585, 1613, 1614, + 1615, 1617, 1618, 1619, 1621, 1622, 1623, 1624, 1625, 1626, + 1627, 1628, 1629, 1630, 1631, 1633, 1634, 1635, 1637, 1640, + 1584, 1641, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, + 1651, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, + 1664, 1665, 1667, 1669, 1670, 1669, 1671, 1672, 1669, 1673, + 1674, 1669, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, + 1683, 1684, 1685, 1687, 1689, 1690, 1692, 1693, 1694, 1696, + + 1695, 1697, 1698, 1700, 1702, 1703, 1705, 1707, 1708, 1709, + 1710, 1711, 1712, 1713, 1715, 1716, 1714, 1717, 1718, 1719, + 1720, 1721, 1722, 1723, 1693, 1694, 1695, 1714, 1696, 1697, + 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, + 1734, 1735, 1736, 1736, 1737, 1738, 1739, 1740, 1741, 1742, + 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762, 1763, + 1764, 1765, 1711, 1766, 1767, 1768, 1769, 1770, 1772, 1773, + 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1784, + 1785, 1786, 1788, 1789, 1790, 1792, 1791, 1793, 1796, 1797, + + 1800, 1801, 1802, 1804, 1805, 1737, 1806, 1807, 1808, 1809, + 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1820, + 1790, 1822, 1789, 1791, 1792, 1823, 1793, 1824, 1825, 1826, + 1827, 1828, 1829, 1830, 1831, 1833, 1834, 1835, 1836, 1837, + 1839, 1840, 1842, 1843, 1844, 1846, 1847, 1848, 1850, 1851, + 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, + 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1872, 1873, 1874, + 1875, 1876, 1877, 1878, 1880, 1881, 1882, 1883, 1884, 1885, + 1887, 1888, 1889, 1892, 1893, 1894, 1895, 1896, 1897, 1898, + 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + + 1909, 1910, 1881, 1883, 1911, 1912, 1914, 1915, 1916, 1918, + 1919, 1920, 1921, 1922, 1924, 1925, 1926, 1927, 1928, 1930, + 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, + 1941, 1942, 1944, 1945, 1947, 1949, 1950, 1952, 1953, 1947, + 1954, 1955, 1957, 1959, 1962, 1960, 1964, 1965, 1966, 1967, + 1968, 1969, 1970, 1971, 1973, 1974, 1975, 1976, 1978, 1979, + 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, + 1959, 1960, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998, + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2012, 2014, 2015, 2016, 2017, 2018, 2021, 2022, 2023, + + 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2034, + 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, + 2045, 2046, 2047, 2049, 2022, 2023, 2050, 2024, 2052, 2053, + 2054, 2055, 2056, 2057, 2058, 2059, 2061, 2062, 2063, 2064, + 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2071, + 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, + 2084, 2085, 2086, 2087, 2088, 2089, 2091, 2092, 2093, 2094, + 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2076, + 2078, 2104, 2106, 2109, 2111, 2112, 2113, 2114, 2115, 2116, + 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, + + 2127, 2129, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, + 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2149, + 2150, 2151, 2152, 2153, 2154, 2156, 2127, 2158, 2129, 2160, + 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2170, 2172, 2173, + 2175, 2174, 2176, 2177, 2178, 2179, 2180, 2181, 2183, 2184, + 2185, 2186, 2187, 2188, 2189, 2191, 2192, 2193, 2194, 2195, + 2196, 2197, 2198, 2199, 2200, 2201, 2173, 2174, 2202, 2203, + 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2215, + 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, + 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, + + 2237, 2210, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2247, + 2248, 2249, 2251, 2252, 2253, 2254, 2256, 2257, 2258, 2259, + 2260, 2261, 2262, 2265, 2266, 2269, 2270, 2271, 2272, 2273, + 2274, 2275, 2277, 2278, 2280, 2281, 2282, 2283, 2284, 2285, + 2286, 2287, 2288, 2289, 2290, 2293, 2294, 2295, 2296, 2297, + 2298, 2300, 2301, 2303, 2305, 2306, 2307, 2308, 2309, 2310, + 2311, 2312, 2313, 2315, 2316, 2317, 2318, 2319, 2318, 2320, + 2321, 2322, 2323, 2325, 2326, 2328, 2331, 2332, 2333, 2334, + 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, + 2345, 2346, 2347, 2348, 2349, 2351, 2352, 2354, 2355, 2356, + + 2359, 2360, 2361, 2362, 2364, 2365, 2367, 2368, 2370, 2372, + 2373, 2375, 2376, 2377, 2378, 2379, 2381, 2386, 2386, 2386, + 2387, 2387, 2387, 2388, 2389, 2388, 2390, 2390, 2390, 2391, + 2391, 2391, 2392, 741, 2392, 2393, 2393, 2393, 740, 739, + 738, 737, 735, 734, 733, 732, 730, 729, 728, 727, + 726, 725, 724, 723, 722, 721, 720, 719, 718, 716, + 715, 714, 713, 711, 710, 709, 708, 706, 705, 704, + 703, 702, 701, 700, 698, 697, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, - 681, 680, 679, 678, 677, 676, 675, 673, 672, 671, - 670, 669, 668, 666, 665, 664, 663, 662, 661, 660, + 681, 680, 679, 678, 677, 675, 674, 673, 672, 671, + 670, 669, 667, 666, 665, 664, 663, 662, 661, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, - 648, 647, 646, 645, 644, 643, 641, 640, 639, 638, - 637, 636, 635, 634, 633, 632, 631, 630, 629, 627, - 626, 625, 624, 623, 622, 620, 618, 617, 614, 606, - 605, 604, 603, 602, 601, 600, 597, 596, 593, 592, + 648, 647, 646, 645, 644, 642, 641, 640, 639, 638, + 637, 636, 635, 634, 633, 632, 631, 630, 628, 627, + 626, 625, 624, 623, 621, 619, 618, 615, 607, 606, + 605, 604, 603, 602, 601, 598, 597, 594, 593, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 575, 574, 573, 572, 571, 570, + 580, 579, 578, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 559, 557, 556, 554, 553, 552, 551, 550, 549, 548, - 547, 546, 545, 544, 543, 542, 540, 539, 537, 536, + 558, 557, 555, 554, 553, 552, 551, 550, 549, 548, - 535, 534, 533, 531, 530, 529, 528, 527, 526, 525, + 547, 546, 545, 544, 543, 541, 540, 538, 537, 536, + 535, 534, 532, 531, 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 515, 514, 513, 511, 510, 508, 507, 506, 505, 504, 503, 502, 501, 500, 498, 497, 495, 494, 491, 490, 489, 488, @@ -2151,42 +2158,42 @@ static const flex_int16_t yy_chk[2905] = 458, 455, 454, 453, 451, 450, 449, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 424, - 423, 422, 420, 419, 418, 416, 414, 413, 411, 410, + 423, 422, 420, 419, 418, 416, 414, 413, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 399, 396, 395, 394, 393, 392, 390, 389, 388, 387, - 386, 385, 384, 383, 382, 381, 380, 379, 376, 375, - 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, - 364, 363, 361, 360, 359, 358, 357, 356, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, - 343, 342, 340, 338, 336, 334, 330, 328, 324, 317, - 314, 313, 312, 311, 309, 308, 307, 305, 304, 303, - 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, - 290, 289, 288, 286, 284, 283, 282, 281, 280, 279, - - 278, 277, 275, 273, 272, 271, 270, 269, 267, 266, - 265, 264, 262, 261, 260, 259, 258, 257, 256, 254, - 253, 251, 250, 249, 248, 247, 246, 245, 244, 243, - 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, - 232, 231, 230, 229, 226, 225, 224, 223, 222, 221, - 220, 219, 218, 217, 216, 215, 213, 209, 207, 205, - 200, 197, 195, 187, 186, 185, 182, 180, 177, 176, - 175, 173, 172, 171, 167, 166, 164, 162, 161, 159, - 157, 156, 155, 154, 152, 151, 150, 148, 147, 146, - 145, 144, 143, 142, 138, 136, 135, 134, 133, 132, - - 130, 129, 128, 126, 124, 122, 121, 120, 119, 115, - 110, 106, 103, 98, 97, 77, 72, 66, 50, 47, - 43, 41, 39, 38, 24, 14, 11, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, - - 2376, 2376, 2376, 2376 + 386, 385, 383, 382, 381, 380, 379, 376, 375, 374, + 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, + 363, 361, 360, 359, 358, 357, 356, 355, 354, 353, + 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, + 342, 340, 338, 336, 334, 330, 328, 324, 317, 314, + 313, 312, 311, 309, 308, 307, 305, 304, 303, 300, + 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, + + 289, 288, 286, 284, 283, 282, 281, 280, 279, 278, + 277, 275, 273, 272, 271, 270, 269, 267, 266, 265, + 264, 262, 261, 260, 259, 258, 257, 256, 254, 253, + 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, + 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, + 231, 230, 229, 226, 225, 224, 223, 222, 221, 220, + 219, 218, 217, 216, 215, 213, 209, 207, 205, 200, + 197, 195, 187, 186, 185, 182, 180, 177, 176, 175, + 173, 172, 171, 167, 166, 164, 162, 161, 159, 157, + 156, 155, 154, 152, 151, 150, 148, 147, 146, 145, + + 144, 143, 142, 138, 136, 135, 134, 133, 132, 130, + 129, 128, 126, 124, 122, 121, 120, 119, 115, 110, + 106, 103, 98, 97, 77, 72, 66, 50, 47, 43, + 41, 39, 38, 24, 14, 11, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + + 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, 2385, + 2385, 2385, 2385 } ; static yy_state_type yy_last_accepting_state; @@ -2195,35 +2202,35 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[242] = +static const flex_int16_t yy_rule_linenum[243] = { 0, 147, 149, 151, 156, 157, 162, 163, 164, 176, 178, 183, 189, 198, 207, 216, 225, 234, 243, 252, 262, 271, 280, 289, 298, 307, 316, 325, 334, 343, 352, 361, 370, 379, 388, 397, 410, 422, 434, 445, 456, 467, 478, 489, 500, 511, 522, 533, 544, 553, 562, - 571, 582, 593, 602, 614, 626, 638, 649, 661, 673, - 685, 696, 707, 716, 725, 734, 745, 754, 763, 775, - 787, 799, 811, 823, 835, 847, 858, 870, 879, 888, - 897, 906, 918, 930, 942, 954, 964, 975, 984, 994, - 1008, 1025, 1034, 1043, 1052, 1061, 1070, 1079, 1104, 1129, - - 1138, 1148, 1157, 1168, 1179, 1190, 1200, 1209, 1220, 1231, - 1242, 1253, 1264, 1273, 1282, 1291, 1300, 1309, 1318, 1327, - 1336, 1345, 1354, 1368, 1379, 1390, 1402, 1411, 1420, 1429, - 1438, 1448, 1458, 1468, 1478, 1488, 1498, 1507, 1517, 1526, - 1535, 1544, 1553, 1563, 1572, 1581, 1590, 1599, 1608, 1617, - 1626, 1635, 1644, 1653, 1662, 1671, 1680, 1689, 1698, 1707, - 1716, 1725, 1734, 1743, 1752, 1761, 1770, 1779, 1788, 1797, - 1806, 1815, 1824, 1833, 1842, 1851, 1860, 1869, 1878, 1887, - 1896, 1905, 1914, 1923, 1932, 1941, 1950, 1959, 1968, 1977, - 1986, 1995, 2004, 2016, 2028, 2038, 2048, 2058, 2068, 2078, - - 2088, 2098, 2108, 2118, 2127, 2136, 2145, 2154, 2165, 2176, - 2189, 2202, 2215, 2224, 2233, 2242, 2251, 2260, 2269, 2278, - 2287, 2299, 2308, 2409, 2425, 2474, 2482, 2497, 2498, 2499, - 2500, 2501, 2502, 2504, 2522, 2535, 2540, 2544, 2546, 2548, - 2550 + 571, 582, 593, 602, 614, 626, 638, 650, 661, 673, + 685, 697, 708, 719, 728, 737, 746, 757, 766, 775, + 787, 799, 811, 823, 835, 847, 859, 870, 882, 891, + 900, 909, 918, 930, 942, 954, 966, 976, 987, 996, + 1006, 1020, 1037, 1046, 1055, 1064, 1073, 1082, 1091, 1116, + + 1141, 1150, 1160, 1169, 1180, 1191, 1202, 1212, 1221, 1232, + 1243, 1254, 1265, 1276, 1285, 1294, 1303, 1312, 1321, 1330, + 1339, 1348, 1357, 1366, 1380, 1391, 1402, 1414, 1423, 1432, + 1441, 1450, 1460, 1470, 1480, 1490, 1500, 1510, 1519, 1529, + 1538, 1547, 1556, 1565, 1575, 1584, 1593, 1602, 1611, 1620, + 1629, 1638, 1647, 1656, 1665, 1674, 1683, 1692, 1701, 1710, + 1719, 1728, 1737, 1746, 1755, 1764, 1773, 1782, 1791, 1800, + 1809, 1818, 1827, 1836, 1845, 1854, 1863, 1872, 1881, 1890, + 1899, 1908, 1917, 1926, 1935, 1944, 1953, 1962, 1971, 1980, + 1989, 1998, 2007, 2016, 2028, 2040, 2050, 2060, 2070, 2080, + + 2090, 2100, 2110, 2120, 2130, 2139, 2148, 2157, 2166, 2177, + 2188, 2201, 2214, 2227, 2236, 2245, 2254, 2263, 2272, 2281, + 2290, 2299, 2311, 2320, 2421, 2437, 2486, 2494, 2509, 2510, + 2511, 2512, 2513, 2514, 2516, 2534, 2547, 2552, 2556, 2558, + 2560, 2562 } ; /* The intent behind this definition is that it'll catch @@ -2278,7 +2285,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2281 "dhcp4_lexer.cc" +#line 2289 "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 @@ -2304,8 +2311,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 2307 "dhcp4_lexer.cc" -#line 2308 "dhcp4_lexer.cc" +#line 2315 "dhcp4_lexer.cc" +#line 2316 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2633,7 +2640,7 @@ YY_DECL } -#line 2636 "dhcp4_lexer.cc" +#line 2644 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2662,13 +2669,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 >= 2377 ) + if ( yy_current_state >= 2386 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2376 ); + while ( yy_current_state != 2385 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2687,13 +2694,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 < 242 ) + else if ( yy_act < 243 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 242 ) + else if ( yy_act == 243 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 243 ) + else if ( yy_act == 244 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3384,6 +3391,21 @@ YY_RULE_SETUP case 57: YY_RULE_SETUP #line 638 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::dhcp::Dhcp4Parser::make_KEY_PASSWORD(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("key-password", driver.loc_); + } +} + YY_BREAK +case 58: +YY_RULE_SETUP +#line 650 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3395,9 +3417,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 59: YY_RULE_SETUP -#line 649 "dhcp4_lexer.ll" +#line 661 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3410,9 +3432,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 60: YY_RULE_SETUP -#line 661 "dhcp4_lexer.ll" +#line 673 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3425,9 +3447,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 61: YY_RULE_SETUP -#line 673 "dhcp4_lexer.ll" +#line 685 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3440,9 +3462,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 685 "dhcp4_lexer.ll" +#line 697 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3454,9 +3476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 696 "dhcp4_lexer.ll" +#line 708 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3468,9 +3490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 707 "dhcp4_lexer.ll" +#line 719 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3480,9 +3502,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 716 "dhcp4_lexer.ll" +#line 728 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3492,9 +3514,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 66: YY_RULE_SETUP -#line 725 "dhcp4_lexer.ll" +#line 737 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3504,9 +3526,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 67: YY_RULE_SETUP -#line 734 "dhcp4_lexer.ll" +#line 746 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3518,9 +3540,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 68: YY_RULE_SETUP -#line 745 "dhcp4_lexer.ll" +#line 757 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3530,9 +3552,9 @@ YY_RULE_SETUP } } YY_BREAK -case 68: +case 69: YY_RULE_SETUP -#line 754 "dhcp4_lexer.ll" +#line 766 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3542,9 +3564,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 70: YY_RULE_SETUP -#line 763 "dhcp4_lexer.ll" +#line 775 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3557,9 +3579,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 71: YY_RULE_SETUP -#line 775 "dhcp4_lexer.ll" +#line 787 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3572,9 +3594,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 72: YY_RULE_SETUP -#line 787 "dhcp4_lexer.ll" +#line 799 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3587,9 +3609,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 799 "dhcp4_lexer.ll" +#line 811 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3602,9 +3624,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 811 "dhcp4_lexer.ll" +#line 823 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3617,9 +3639,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 823 "dhcp4_lexer.ll" +#line 835 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3632,9 +3654,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 835 "dhcp4_lexer.ll" +#line 847 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3647,9 +3669,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 847 "dhcp4_lexer.ll" +#line 859 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3661,9 +3683,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 858 "dhcp4_lexer.ll" +#line 870 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3676,9 +3698,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 870 "dhcp4_lexer.ll" +#line 882 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_CHECK_WITH_DHCID(driver.loc_); @@ -3688,9 +3710,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 879 "dhcp4_lexer.ll" +#line 891 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_NO_CHECK_WITH_DHCID(driver.loc_); @@ -3700,9 +3722,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 888 "dhcp4_lexer.ll" +#line 900 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_CHECK_EXISTS_WITH_DHCID(driver.loc_); @@ -3712,9 +3734,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 897 "dhcp4_lexer.ll" +#line 909 "dhcp4_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser4Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp4Parser::make_NO_CHECK_WITHOUT_DHCID(driver.loc_); @@ -3724,9 +3746,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 906 "dhcp4_lexer.ll" +#line 918 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3739,9 +3761,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 918 "dhcp4_lexer.ll" +#line 930 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3754,9 +3776,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 930 "dhcp4_lexer.ll" +#line 942 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3769,9 +3791,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 942 "dhcp4_lexer.ll" +#line 954 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3784,9 +3806,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 954 "dhcp4_lexer.ll" +#line 966 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3797,9 +3819,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 964 "dhcp4_lexer.ll" +#line 976 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3811,9 +3833,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 975 "dhcp4_lexer.ll" +#line 987 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3823,9 +3845,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 984 "dhcp4_lexer.ll" +#line 996 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3836,9 +3858,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 994 "dhcp4_lexer.ll" +#line 1006 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3853,9 +3875,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 1008 "dhcp4_lexer.ll" +#line 1020 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3873,9 +3895,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 1025 "dhcp4_lexer.ll" +#line 1037 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3885,9 +3907,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1034 "dhcp4_lexer.ll" +#line 1046 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3897,9 +3919,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1043 "dhcp4_lexer.ll" +#line 1055 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3909,9 +3931,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1052 "dhcp4_lexer.ll" +#line 1064 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3921,9 +3943,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1061 "dhcp4_lexer.ll" +#line 1073 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3933,9 +3955,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1070 "dhcp4_lexer.ll" +#line 1082 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3945,9 +3967,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1079 "dhcp4_lexer.ll" +#line 1091 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3973,9 +3995,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1104 "dhcp4_lexer.ll" +#line 1116 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4001,9 +4023,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1129 "dhcp4_lexer.ll" +#line 1141 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4013,9 +4035,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1138 "dhcp4_lexer.ll" +#line 1150 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4026,9 +4048,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1148 "dhcp4_lexer.ll" +#line 1160 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4038,9 +4060,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1157 "dhcp4_lexer.ll" +#line 1169 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4052,9 +4074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1168 "dhcp4_lexer.ll" +#line 1180 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4066,9 +4088,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1179 "dhcp4_lexer.ll" +#line 1191 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4080,9 +4102,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1190 "dhcp4_lexer.ll" +#line 1202 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4093,9 +4115,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1200 "dhcp4_lexer.ll" +#line 1212 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4105,9 +4127,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1209 "dhcp4_lexer.ll" +#line 1221 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4119,9 +4141,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1220 "dhcp4_lexer.ll" +#line 1232 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4133,9 +4155,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1231 "dhcp4_lexer.ll" +#line 1243 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4147,9 +4169,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1242 "dhcp4_lexer.ll" +#line 1254 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4161,9 +4183,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1253 "dhcp4_lexer.ll" +#line 1265 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4175,9 +4197,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1264 "dhcp4_lexer.ll" +#line 1276 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4187,9 +4209,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1273 "dhcp4_lexer.ll" +#line 1285 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4199,9 +4221,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1282 "dhcp4_lexer.ll" +#line 1294 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4211,9 +4233,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1291 "dhcp4_lexer.ll" +#line 1303 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4223,9 +4245,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1300 "dhcp4_lexer.ll" +#line 1312 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4235,9 +4257,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1309 "dhcp4_lexer.ll" +#line 1321 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4247,9 +4269,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1318 "dhcp4_lexer.ll" +#line 1330 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4259,9 +4281,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1327 "dhcp4_lexer.ll" +#line 1339 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4271,9 +4293,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1336 "dhcp4_lexer.ll" +#line 1348 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4283,9 +4305,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1345 "dhcp4_lexer.ll" +#line 1357 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4295,9 +4317,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1354 "dhcp4_lexer.ll" +#line 1366 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4312,9 +4334,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1368 "dhcp4_lexer.ll" +#line 1380 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4326,9 +4348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1379 "dhcp4_lexer.ll" +#line 1391 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4340,9 +4362,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1390 "dhcp4_lexer.ll" +#line 1402 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4355,9 +4377,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1402 "dhcp4_lexer.ll" +#line 1414 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4367,9 +4389,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1411 "dhcp4_lexer.ll" +#line 1423 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4379,9 +4401,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1420 "dhcp4_lexer.ll" +#line 1432 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4391,9 +4413,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1429 "dhcp4_lexer.ll" +#line 1441 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4403,9 +4425,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1438 "dhcp4_lexer.ll" +#line 1450 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4416,9 +4438,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1448 "dhcp4_lexer.ll" +#line 1460 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4429,9 +4451,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1458 "dhcp4_lexer.ll" +#line 1470 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4442,9 +4464,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1468 "dhcp4_lexer.ll" +#line 1480 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4455,9 +4477,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1478 "dhcp4_lexer.ll" +#line 1490 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4468,9 +4490,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1488 "dhcp4_lexer.ll" +#line 1500 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4481,9 +4503,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1498 "dhcp4_lexer.ll" +#line 1510 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4493,9 +4515,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1507 "dhcp4_lexer.ll" +#line 1519 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4506,9 +4528,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1517 "dhcp4_lexer.ll" +#line 1529 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4518,9 +4540,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1526 "dhcp4_lexer.ll" +#line 1538 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4530,9 +4552,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1535 "dhcp4_lexer.ll" +#line 1547 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4542,9 +4564,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1544 "dhcp4_lexer.ll" +#line 1556 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4554,9 +4576,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1553 "dhcp4_lexer.ll" +#line 1565 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4567,9 +4589,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1563 "dhcp4_lexer.ll" +#line 1575 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4579,9 +4601,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1572 "dhcp4_lexer.ll" +#line 1584 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4591,9 +4613,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1581 "dhcp4_lexer.ll" +#line 1593 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4603,9 +4625,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1590 "dhcp4_lexer.ll" +#line 1602 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4615,9 +4637,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1599 "dhcp4_lexer.ll" +#line 1611 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4627,9 +4649,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1608 "dhcp4_lexer.ll" +#line 1620 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4639,9 +4661,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1617 "dhcp4_lexer.ll" +#line 1629 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4651,9 +4673,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1626 "dhcp4_lexer.ll" +#line 1638 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4663,9 +4685,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1635 "dhcp4_lexer.ll" +#line 1647 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4675,9 +4697,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1644 "dhcp4_lexer.ll" +#line 1656 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4687,9 +4709,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1653 "dhcp4_lexer.ll" +#line 1665 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4699,9 +4721,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1662 "dhcp4_lexer.ll" +#line 1674 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4711,9 +4733,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1671 "dhcp4_lexer.ll" +#line 1683 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4723,9 +4745,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1680 "dhcp4_lexer.ll" +#line 1692 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4735,9 +4757,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1689 "dhcp4_lexer.ll" +#line 1701 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4747,9 +4769,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1698 "dhcp4_lexer.ll" +#line 1710 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4759,9 +4781,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1707 "dhcp4_lexer.ll" +#line 1719 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4771,9 +4793,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1716 "dhcp4_lexer.ll" +#line 1728 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4783,9 +4805,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1725 "dhcp4_lexer.ll" +#line 1737 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4795,9 +4817,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1734 "dhcp4_lexer.ll" +#line 1746 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4807,9 +4829,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1743 "dhcp4_lexer.ll" +#line 1755 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4819,9 +4841,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1752 "dhcp4_lexer.ll" +#line 1764 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4831,9 +4853,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1761 "dhcp4_lexer.ll" +#line 1773 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4843,9 +4865,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1770 "dhcp4_lexer.ll" +#line 1782 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4855,9 +4877,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1779 "dhcp4_lexer.ll" +#line 1791 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4867,9 +4889,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1788 "dhcp4_lexer.ll" +#line 1800 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4879,9 +4901,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1797 "dhcp4_lexer.ll" +#line 1809 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4891,9 +4913,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1806 "dhcp4_lexer.ll" +#line 1818 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTH_TYPE: @@ -4903,9 +4925,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1815 "dhcp4_lexer.ll" +#line 1827 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4915,9 +4937,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1824 "dhcp4_lexer.ll" +#line 1836 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4927,9 +4949,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1833 "dhcp4_lexer.ll" +#line 1845 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4939,9 +4961,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1842 "dhcp4_lexer.ll" +#line 1854 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4951,9 +4973,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1851 "dhcp4_lexer.ll" +#line 1863 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4963,9 +4985,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1860 "dhcp4_lexer.ll" +#line 1872 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4975,9 +4997,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1869 "dhcp4_lexer.ll" +#line 1881 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4987,9 +5009,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1878 "dhcp4_lexer.ll" +#line 1890 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HTTP_HEADERS: @@ -4999,9 +5021,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1887 "dhcp4_lexer.ll" +#line 1899 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5011,9 +5033,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1896 "dhcp4_lexer.ll" +#line 1908 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5023,9 +5045,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1905 "dhcp4_lexer.ll" +#line 1917 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5035,9 +5057,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1914 "dhcp4_lexer.ll" +#line 1926 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -5047,9 +5069,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1923 "dhcp4_lexer.ll" +#line 1935 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5059,9 +5081,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1932 "dhcp4_lexer.ll" +#line 1944 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5071,9 +5093,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1941 "dhcp4_lexer.ll" +#line 1953 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5083,9 +5105,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1950 "dhcp4_lexer.ll" +#line 1962 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5095,9 +5117,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1959 "dhcp4_lexer.ll" +#line 1971 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5107,9 +5129,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 1968 "dhcp4_lexer.ll" +#line 1980 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5119,9 +5141,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 1977 "dhcp4_lexer.ll" +#line 1989 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5131,9 +5153,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 1986 "dhcp4_lexer.ll" +#line 1998 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5143,9 +5165,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 1995 "dhcp4_lexer.ll" +#line 2007 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5155,9 +5177,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 2004 "dhcp4_lexer.ll" +#line 2016 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5170,9 +5192,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 2016 "dhcp4_lexer.ll" +#line 2028 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5185,9 +5207,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2028 "dhcp4_lexer.ll" +#line 2040 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5198,9 +5220,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2038 "dhcp4_lexer.ll" +#line 2050 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5211,9 +5233,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2048 "dhcp4_lexer.ll" +#line 2060 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -5224,9 +5246,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2058 "dhcp4_lexer.ll" +#line 2070 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5237,9 +5259,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2068 "dhcp4_lexer.ll" +#line 2080 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5250,9 +5272,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2078 "dhcp4_lexer.ll" +#line 2090 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5263,9 +5285,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2088 "dhcp4_lexer.ll" +#line 2100 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5276,9 +5298,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2098 "dhcp4_lexer.ll" +#line 2110 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5289,9 +5311,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2108 "dhcp4_lexer.ll" +#line 2120 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5302,9 +5324,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2118 "dhcp4_lexer.ll" +#line 2130 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5314,9 +5336,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2127 "dhcp4_lexer.ll" +#line 2139 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5326,9 +5348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2136 "dhcp4_lexer.ll" +#line 2148 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5338,9 +5360,9 @@ YY_RULE_SETUP } } YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2145 "dhcp4_lexer.ll" +#line 2157 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5350,9 +5372,9 @@ YY_RULE_SETUP } } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2154 "dhcp4_lexer.ll" +#line 2166 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5364,9 +5386,9 @@ YY_RULE_SETUP } } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2165 "dhcp4_lexer.ll" +#line 2177 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5378,9 +5400,9 @@ YY_RULE_SETUP } } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2176 "dhcp4_lexer.ll" +#line 2188 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5394,9 +5416,9 @@ YY_RULE_SETUP } } YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2189 "dhcp4_lexer.ll" +#line 2201 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5410,9 +5432,9 @@ YY_RULE_SETUP } } YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2202 "dhcp4_lexer.ll" +#line 2214 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5426,9 +5448,9 @@ YY_RULE_SETUP } } YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2215 "dhcp4_lexer.ll" +#line 2227 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5438,9 +5460,9 @@ YY_RULE_SETUP } } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2224 "dhcp4_lexer.ll" +#line 2236 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5450,9 +5472,9 @@ YY_RULE_SETUP } } YY_BREAK -case 215: +case 216: YY_RULE_SETUP -#line 2233 "dhcp4_lexer.ll" +#line 2245 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5462,9 +5484,9 @@ YY_RULE_SETUP } } YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 2242 "dhcp4_lexer.ll" +#line 2254 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5474,9 +5496,9 @@ YY_RULE_SETUP } } YY_BREAK -case 217: +case 218: YY_RULE_SETUP -#line 2251 "dhcp4_lexer.ll" +#line 2263 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5486,9 +5508,9 @@ YY_RULE_SETUP } } YY_BREAK -case 218: +case 219: YY_RULE_SETUP -#line 2260 "dhcp4_lexer.ll" +#line 2272 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5498,9 +5520,9 @@ YY_RULE_SETUP } } YY_BREAK -case 219: +case 220: YY_RULE_SETUP -#line 2269 "dhcp4_lexer.ll" +#line 2281 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5510,9 +5532,9 @@ YY_RULE_SETUP } } YY_BREAK -case 220: +case 221: YY_RULE_SETUP -#line 2278 "dhcp4_lexer.ll" +#line 2290 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5522,9 +5544,9 @@ YY_RULE_SETUP } } YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 2287 "dhcp4_lexer.ll" +#line 2299 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5537,9 +5559,9 @@ YY_RULE_SETUP } } YY_BREAK -case 222: +case 223: YY_RULE_SETUP -#line 2299 "dhcp4_lexer.ll" +#line 2311 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5549,9 +5571,9 @@ YY_RULE_SETUP } } YY_BREAK -case 223: +case 224: YY_RULE_SETUP -#line 2308 "dhcp4_lexer.ll" +#line 2320 "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. @@ -5653,10 +5675,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 224: -/* rule 224 can match eol */ +case 225: +/* rule 225 can match eol */ YY_RULE_SETUP -#line 2409 "dhcp4_lexer.ll" +#line 2421 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5673,10 +5695,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 225: -/* rule 225 can match eol */ +case 226: +/* rule 226 can match eol */ YY_RULE_SETUP -#line 2425 "dhcp4_lexer.ll" +#line 2437 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5726,9 +5748,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 226: +case 227: YY_RULE_SETUP -#line 2474 "dhcp4_lexer.ll" +#line 2486 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5737,9 +5759,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 227: +case 228: YY_RULE_SETUP -#line 2482 "dhcp4_lexer.ll" +#line 2494 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5755,39 +5777,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 228: +case 229: YY_RULE_SETUP -#line 2497 "dhcp4_lexer.ll" +#line 2509 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 229: +case 230: YY_RULE_SETUP -#line 2498 "dhcp4_lexer.ll" +#line 2510 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 230: +case 231: YY_RULE_SETUP -#line 2499 "dhcp4_lexer.ll" +#line 2511 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 231: +case 232: YY_RULE_SETUP -#line 2500 "dhcp4_lexer.ll" +#line 2512 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 232: +case 233: YY_RULE_SETUP -#line 2501 "dhcp4_lexer.ll" +#line 2513 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } YY_BREAK -case 233: +case 234: YY_RULE_SETUP -#line 2502 "dhcp4_lexer.ll" +#line 2514 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } YY_BREAK -case 234: +case 235: YY_RULE_SETUP -#line 2504 "dhcp4_lexer.ll" +#line 2516 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5806,9 +5828,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 235: +case 236: YY_RULE_SETUP -#line 2522 "dhcp4_lexer.ll" +#line 2534 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5822,43 +5844,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 236: +case 237: YY_RULE_SETUP -#line 2535 "dhcp4_lexer.ll" +#line 2547 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 237: +case 238: YY_RULE_SETUP -#line 2540 "dhcp4_lexer.ll" +#line 2552 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 238: +case 239: YY_RULE_SETUP -#line 2544 "dhcp4_lexer.ll" +#line 2556 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 239: +case 240: YY_RULE_SETUP -#line 2546 "dhcp4_lexer.ll" +#line 2558 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 240: +case 241: YY_RULE_SETUP -#line 2548 "dhcp4_lexer.ll" +#line 2560 "dhcp4_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 241: +case 242: YY_RULE_SETUP -#line 2550 "dhcp4_lexer.ll" +#line 2562 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2552 "dhcp4_lexer.ll" +#line 2564 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5882,12 +5904,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 242: +case 243: YY_RULE_SETUP -#line 2575 "dhcp4_lexer.ll" +#line 2587 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5890 "dhcp4_lexer.cc" +#line 5913 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -6206,7 +6228,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 >= 2377 ) + if ( yy_current_state >= 2386 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -6239,11 +6261,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 >= 2377 ) + if ( yy_current_state >= 2386 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2376); + yy_is_jam = (yy_current_state == 2385); return yy_is_jam ? 0 : yy_current_state; } @@ -6992,7 +7014,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2575 "dhcp4_lexer.ll" +#line 2587 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index e07adae61f..ba3f3510d0 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -634,6 +634,18 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"key-password\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + case isc::dhcp::Parser4Context::CONTROL_SOCKET: + return isc::dhcp::Dhcp4Parser::make_KEY_PASSWORD(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("key-password", driver.loc_); + } +} + \"cipher-list\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index ab3f3063fb..4749ba2245 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -411,85 +411,85 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 417 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 423 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 429 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 435 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 441 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 447 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 453 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 459 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 465 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 471 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 477 "dhcp4_parser.cc" break; case symbol_kind::S_control_socket_type_value: // control_socket_type_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 483 "dhcp4_parser.cc" break; case symbol_kind::S_auth_type_value: // auth_type_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 489 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 320 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 495 "dhcp4_parser.cc" break; @@ -771,127 +771,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 329 "dhcp4_parser.yy" +#line 330 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 777 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 330 "dhcp4_parser.yy" +#line 331 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 783 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 331 "dhcp4_parser.yy" +#line 332 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 789 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 332 "dhcp4_parser.yy" +#line 333 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 795 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 333 "dhcp4_parser.yy" +#line 334 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 801 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 334 "dhcp4_parser.yy" +#line 335 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 807 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 335 "dhcp4_parser.yy" +#line 336 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 813 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 336 "dhcp4_parser.yy" +#line 337 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 819 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 337 "dhcp4_parser.yy" +#line 338 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 825 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 338 "dhcp4_parser.yy" +#line 339 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 831 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 339 "dhcp4_parser.yy" +#line 340 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 837 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 340 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 843 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 341 "dhcp4_parser.yy" +#line 342 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 849 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 349 "dhcp4_parser.yy" +#line 350 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 855 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 350 "dhcp4_parser.yy" +#line 351 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 861 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 351 "dhcp4_parser.yy" +#line 352 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 867 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 352 "dhcp4_parser.yy" +#line 353 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 873 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 353 "dhcp4_parser.yy" +#line 354 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 879 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 354 "dhcp4_parser.yy" +#line 355 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 885 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 355 "dhcp4_parser.yy" +#line 356 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 891 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 358 "dhcp4_parser.yy" +#line 359 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -900,7 +900,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 363 "dhcp4_parser.yy" +#line 364 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -911,7 +911,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 368 "dhcp4_parser.yy" +#line 369 "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 @@ -921,13 +921,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 374 "dhcp4_parser.yy" +#line 375 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 927 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 381 "dhcp4_parser.yy" +#line 382 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -937,7 +937,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 386 "dhcp4_parser.yy" +#line 387 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -948,7 +948,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 392 "dhcp4_parser.yy" +#line 393 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -956,7 +956,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 397 "dhcp4_parser.yy" +#line 398 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -965,7 +965,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 400 "dhcp4_parser.yy" +#line 401 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -973,7 +973,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 408 "dhcp4_parser.yy" +#line 409 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -982,7 +982,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 412 "dhcp4_parser.yy" +#line 413 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 416 "dhcp4_parser.yy" +#line 417 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -999,7 +999,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 422 "dhcp4_parser.yy" +#line 423 "dhcp4_parser.yy" { // List parsing about to start } @@ -1007,7 +1007,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 424 "dhcp4_parser.yy" +#line 425 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1016,7 +1016,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 433 "dhcp4_parser.yy" +#line 434 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1025,7 +1025,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 437 "dhcp4_parser.yy" +#line 438 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1034,7 +1034,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 441 "dhcp4_parser.yy" +#line 442 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1042,7 +1042,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 451 "dhcp4_parser.yy" +#line 452 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 460 "dhcp4_parser.yy" +#line 461 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1064,7 +1064,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 465 "dhcp4_parser.yy" +#line 466 "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 @@ -1077,7 +1077,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 475 "dhcp4_parser.yy" +#line 476 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1092,7 +1092,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 484 "dhcp4_parser.yy" +#line 485 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1102,7 +1102,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 492 "dhcp4_parser.yy" +#line 493 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1110,7 +1110,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 498 "dhcp4_parser.yy" +#line 499 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1120,7 +1120,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 502 "dhcp4_parser.yy" +#line 503 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1129,7 +1129,7 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 509 "dhcp4_parser.yy" +#line 510 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1137,7 +1137,7 @@ namespace isc { namespace dhcp { break; case 142: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 590 "dhcp4_parser.yy" +#line 591 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1147,7 +1147,7 @@ namespace isc { namespace dhcp { break; case 143: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 596 "dhcp4_parser.yy" +#line 597 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1157,7 +1157,7 @@ namespace isc { namespace dhcp { break; case 144: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 602 "dhcp4_parser.yy" +#line 603 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1167,7 +1167,7 @@ namespace isc { namespace dhcp { break; case 145: // renew_timer: "renew-timer" ":" "integer" -#line 608 "dhcp4_parser.yy" +#line 609 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1177,7 +1177,7 @@ namespace isc { namespace dhcp { break; case 146: // rebind_timer: "rebind-timer" ":" "integer" -#line 614 "dhcp4_parser.yy" +#line 615 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1187,7 +1187,7 @@ namespace isc { namespace dhcp { break; case 147: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 620 "dhcp4_parser.yy" +#line 621 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1197,7 +1197,7 @@ namespace isc { namespace dhcp { break; case 148: // t1_percent: "t1-percent" ":" "floating point" -#line 626 "dhcp4_parser.yy" +#line 627 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1207,7 +1207,7 @@ namespace isc { namespace dhcp { break; case 149: // t2_percent: "t2-percent" ":" "floating point" -#line 632 "dhcp4_parser.yy" +#line 633 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1217,7 +1217,7 @@ namespace isc { namespace dhcp { break; case 150: // cache_threshold: "cache-threshold" ":" "floating point" -#line 638 "dhcp4_parser.yy" +#line 639 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1227,7 +1227,7 @@ namespace isc { namespace dhcp { break; case 151: // cache_max_age: "cache-max-age" ":" "integer" -#line 644 "dhcp4_parser.yy" +#line 645 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1237,7 +1237,7 @@ namespace isc { namespace dhcp { break; case 152: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 650 "dhcp4_parser.yy" +#line 651 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1247,7 +1247,7 @@ namespace isc { namespace dhcp { break; case 153: // $@20: %empty -#line 656 "dhcp4_parser.yy" +#line 657 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1256,7 +1256,7 @@ namespace isc { namespace dhcp { break; case 154: // server_tag: "server-tag" $@20 ":" "constant string" -#line 659 "dhcp4_parser.yy" +#line 660 "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); @@ -1266,7 +1266,7 @@ namespace isc { namespace dhcp { break; case 155: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 665 "dhcp4_parser.yy" +#line 666 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1276,7 +1276,7 @@ namespace isc { namespace dhcp { break; case 156: // $@21: %empty -#line 671 "dhcp4_parser.yy" +#line 672 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1285,7 +1285,7 @@ namespace isc { namespace dhcp { break; case 157: // allocator: "allocator" $@21 ":" "constant string" -#line 674 "dhcp4_parser.yy" +#line 675 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1295,7 +1295,7 @@ namespace isc { namespace dhcp { break; case 158: // echo_client_id: "echo-client-id" ":" "boolean" -#line 680 "dhcp4_parser.yy" +#line 681 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1305,7 +1305,7 @@ namespace isc { namespace dhcp { break; case 159: // match_client_id: "match-client-id" ":" "boolean" -#line 686 "dhcp4_parser.yy" +#line 687 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1315,7 +1315,7 @@ namespace isc { namespace dhcp { break; case 160: // authoritative: "authoritative" ":" "boolean" -#line 692 "dhcp4_parser.yy" +#line 693 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1325,7 +1325,7 @@ namespace isc { namespace dhcp { break; case 161: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 698 "dhcp4_parser.yy" +#line 699 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1335,7 +1335,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 704 "dhcp4_parser.yy" +#line 705 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1345,7 +1345,7 @@ namespace isc { namespace dhcp { break; case 163: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 710 "dhcp4_parser.yy" +#line 711 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1355,7 +1355,7 @@ namespace isc { namespace dhcp { break; case 164: // $@22: %empty -#line 716 "dhcp4_parser.yy" +#line 717 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1364,7 +1364,7 @@ namespace isc { namespace dhcp { break; case 165: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 719 "dhcp4_parser.yy" +#line 720 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1373,7 +1373,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_replace_client_name_value: "when-present" -#line 725 "dhcp4_parser.yy" +#line 726 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1381,7 +1381,7 @@ namespace isc { namespace dhcp { break; case 167: // ddns_replace_client_name_value: "never" -#line 728 "dhcp4_parser.yy" +#line 729 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1389,7 +1389,7 @@ namespace isc { namespace dhcp { break; case 168: // ddns_replace_client_name_value: "always" -#line 731 "dhcp4_parser.yy" +#line 732 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1397,7 +1397,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_replace_client_name_value: "when-not-present" -#line 734 "dhcp4_parser.yy" +#line 735 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1405,7 +1405,7 @@ namespace isc { namespace dhcp { break; case 170: // ddns_replace_client_name_value: "boolean" -#line 737 "dhcp4_parser.yy" +#line 738 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the ddns-replace-client-name are " "no longer supported"); @@ -1414,7 +1414,7 @@ namespace isc { namespace dhcp { break; case 171: // $@23: %empty -#line 743 "dhcp4_parser.yy" +#line 744 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1423,7 +1423,7 @@ namespace isc { namespace dhcp { break; case 172: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 746 "dhcp4_parser.yy" +#line 747 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1433,7 +1433,7 @@ namespace isc { namespace dhcp { break; case 173: // $@24: %empty -#line 752 "dhcp4_parser.yy" +#line 753 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1442,7 +1442,7 @@ namespace isc { namespace dhcp { break; case 174: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 755 "dhcp4_parser.yy" +#line 756 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1452,7 +1452,7 @@ namespace isc { namespace dhcp { break; case 175: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 761 "dhcp4_parser.yy" +#line 762 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1462,7 +1462,7 @@ namespace isc { namespace dhcp { break; case 176: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 770 "dhcp4_parser.yy" +#line 771 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1476,7 +1476,7 @@ namespace isc { namespace dhcp { break; case 177: // $@25: %empty -#line 780 "dhcp4_parser.yy" +#line 781 "dhcp4_parser.yy" { ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE); @@ -1485,7 +1485,7 @@ namespace isc { namespace dhcp { break; case 178: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value -#line 783 "dhcp4_parser.yy" +#line 784 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1494,7 +1494,7 @@ namespace isc { namespace dhcp { break; case 179: // ddns_conflict_resolution_mode_value: "check-with-dhcid" -#line 789 "dhcp4_parser.yy" +#line 790 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1502,7 +1502,7 @@ namespace isc { namespace dhcp { break; case 180: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid" -#line 792 "dhcp4_parser.yy" +#line 793 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1510,7 +1510,7 @@ namespace isc { namespace dhcp { break; case 181: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid" -#line 795 "dhcp4_parser.yy" +#line 796 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1518,7 +1518,7 @@ namespace isc { namespace dhcp { break; case 182: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid" -#line 798 "dhcp4_parser.yy" +#line 799 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1526,7 +1526,7 @@ namespace isc { namespace dhcp { break; case 183: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" -#line 803 "dhcp4_parser.yy" +#line 804 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1536,7 +1536,7 @@ namespace isc { namespace dhcp { break; case 184: // ddns_ttl: "ddns-ttl" ":" "integer" -#line 809 "dhcp4_parser.yy" +#line 810 "dhcp4_parser.yy" { ctx.unique("ddns-ttl", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1546,7 +1546,7 @@ namespace isc { namespace dhcp { break; case 185: // ddns_ttl_min: "ddns-ttl-min" ":" "integer" -#line 815 "dhcp4_parser.yy" +#line 816 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-min", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1556,7 +1556,7 @@ namespace isc { namespace dhcp { break; case 186: // ddns_ttl_max: "ddns-ttl-mix" ":" "integer" -#line 821 "dhcp4_parser.yy" +#line 822 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-max", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1566,7 +1566,7 @@ namespace isc { namespace dhcp { break; case 187: // $@26: %empty -#line 827 "dhcp4_parser.yy" +#line 828 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1575,7 +1575,7 @@ namespace isc { namespace dhcp { break; case 188: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string" -#line 830 "dhcp4_parser.yy" +#line 831 "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); @@ -1585,7 +1585,7 @@ namespace isc { namespace dhcp { break; case 189: // $@27: %empty -#line 836 "dhcp4_parser.yy" +#line 837 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1594,7 +1594,7 @@ namespace isc { namespace dhcp { break; case 190: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string" -#line 839 "dhcp4_parser.yy" +#line 840 "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); @@ -1604,7 +1604,7 @@ namespace isc { namespace dhcp { break; case 191: // store_extended_info: "store-extended-info" ":" "boolean" -#line 845 "dhcp4_parser.yy" +#line 846 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1614,7 +1614,7 @@ namespace isc { namespace dhcp { break; case 192: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 851 "dhcp4_parser.yy" +#line 852 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1624,7 +1624,7 @@ namespace isc { namespace dhcp { break; case 193: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 857 "dhcp4_parser.yy" +#line 858 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp { break; case 194: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 863 "dhcp4_parser.yy" +#line 864 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1644,7 +1644,7 @@ namespace isc { namespace dhcp { break; case 195: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 869 "dhcp4_parser.yy" +#line 870 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1654,7 +1654,7 @@ namespace isc { namespace dhcp { break; case 196: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 875 "dhcp4_parser.yy" +#line 876 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1664,7 +1664,7 @@ namespace isc { namespace dhcp { break; case 197: // offer_lifetime: "offer-lifetime" ":" "integer" -#line 881 "dhcp4_parser.yy" +#line 882 "dhcp4_parser.yy" { ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1674,7 +1674,7 @@ namespace isc { namespace dhcp { break; case 198: // stash_agent_options: "stash-agent-options" ":" "boolean" -#line 887 "dhcp4_parser.yy" +#line 888 "dhcp4_parser.yy" { ctx.unique("stash-agent-options", ctx.loc2pos(yystack_[2].location)); ElementPtr stash(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1684,7 +1684,7 @@ namespace isc { namespace dhcp { break; case 199: // $@28: %empty -#line 893 "dhcp4_parser.yy" +#line 894 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1696,7 +1696,7 @@ namespace isc { namespace dhcp { break; case 200: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 899 "dhcp4_parser.yy" +#line 900 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1706,7 +1706,7 @@ namespace isc { namespace dhcp { break; case 203: // interfaces_config_params: interfaces_config_params "," -#line 907 "dhcp4_parser.yy" +#line 908 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1714,7 +1714,7 @@ namespace isc { namespace dhcp { break; case 214: // $@29: %empty -#line 924 "dhcp4_parser.yy" +#line 925 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1724,7 +1724,7 @@ namespace isc { namespace dhcp { break; case 215: // sub_interfaces4: "{" $@29 interfaces_config_params "}" -#line 928 "dhcp4_parser.yy" +#line 929 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed @@ -1733,7 +1733,7 @@ namespace isc { namespace dhcp { break; case 216: // $@30: %empty -#line 933 "dhcp4_parser.yy" +#line 934 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1745,7 +1745,7 @@ namespace isc { namespace dhcp { break; case 217: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 939 "dhcp4_parser.yy" +#line 940 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1754,7 +1754,7 @@ namespace isc { namespace dhcp { break; case 218: // $@31: %empty -#line 944 "dhcp4_parser.yy" +#line 945 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1763,7 +1763,7 @@ namespace isc { namespace dhcp { break; case 219: // dhcp_socket_type: "dhcp-socket-type" $@31 ":" socket_type -#line 947 "dhcp4_parser.yy" +#line 948 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1772,19 +1772,19 @@ namespace isc { namespace dhcp { break; case 220: // socket_type: "raw" -#line 952 "dhcp4_parser.yy" +#line 953 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1778 "dhcp4_parser.cc" break; case 221: // socket_type: "udp" -#line 953 "dhcp4_parser.yy" +#line 954 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1784 "dhcp4_parser.cc" break; case 222: // $@32: %empty -#line 956 "dhcp4_parser.yy" +#line 957 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1793,7 +1793,7 @@ namespace isc { namespace dhcp { break; case 223: // outbound_interface: "outbound-interface" $@32 ":" outbound_interface_value -#line 959 "dhcp4_parser.yy" +#line 960 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1802,7 +1802,7 @@ namespace isc { namespace dhcp { break; case 224: // outbound_interface_value: "same-as-inbound" -#line 964 "dhcp4_parser.yy" +#line 965 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } @@ -1810,7 +1810,7 @@ namespace isc { namespace dhcp { break; case 225: // outbound_interface_value: "use-routing" -#line 966 "dhcp4_parser.yy" +#line 967 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } @@ -1818,7 +1818,7 @@ namespace isc { namespace dhcp { break; case 226: // re_detect: "re-detect" ":" "boolean" -#line 970 "dhcp4_parser.yy" +#line 971 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1828,7 +1828,7 @@ namespace isc { namespace dhcp { break; case 227: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 976 "dhcp4_parser.yy" +#line 977 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1838,7 +1838,7 @@ namespace isc { namespace dhcp { break; case 228: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 982 "dhcp4_parser.yy" +#line 983 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1848,7 +1848,7 @@ namespace isc { namespace dhcp { break; case 229: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 988 "dhcp4_parser.yy" +#line 989 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1858,7 +1858,7 @@ namespace isc { namespace dhcp { break; case 230: // $@33: %empty -#line 994 "dhcp4_parser.yy" +#line 995 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1870,7 +1870,7 @@ namespace isc { namespace dhcp { break; case 231: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" -#line 1000 "dhcp4_parser.yy" +#line 1001 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1881,7 +1881,7 @@ namespace isc { namespace dhcp { break; case 232: // $@34: %empty -#line 1007 "dhcp4_parser.yy" +#line 1008 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1893,7 +1893,7 @@ namespace isc { namespace dhcp { break; case 233: // sanity_checks: "sanity-checks" $@34 ":" "{" sanity_checks_params "}" -#line 1013 "dhcp4_parser.yy" +#line 1014 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1902,7 +1902,7 @@ namespace isc { namespace dhcp { break; case 236: // sanity_checks_params: sanity_checks_params "," -#line 1020 "dhcp4_parser.yy" +#line 1021 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1910,7 +1910,7 @@ namespace isc { namespace dhcp { break; case 239: // $@35: %empty -#line 1029 "dhcp4_parser.yy" +#line 1030 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1919,7 +1919,7 @@ namespace isc { namespace dhcp { break; case 240: // lease_checks: "lease-checks" $@35 ":" "constant string" -#line 1032 "dhcp4_parser.yy" +#line 1033 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1939,7 +1939,7 @@ namespace isc { namespace dhcp { break; case 241: // $@36: %empty -#line 1048 "dhcp4_parser.yy" +#line 1049 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1948,7 +1948,7 @@ namespace isc { namespace dhcp { break; case 242: // extended_info_checks: "extended-info-checks" $@36 ":" "constant string" -#line 1051 "dhcp4_parser.yy" +#line 1052 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1967,7 +1967,7 @@ namespace isc { namespace dhcp { break; case 243: // $@37: %empty -#line 1066 "dhcp4_parser.yy" +#line 1067 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1979,7 +1979,7 @@ namespace isc { namespace dhcp { break; case 244: // hosts_database: "hosts-database" $@37 ":" "{" database_map_params "}" -#line 1072 "dhcp4_parser.yy" +#line 1073 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1990,7 +1990,7 @@ namespace isc { namespace dhcp { break; case 245: // $@38: %empty -#line 1079 "dhcp4_parser.yy" +#line 1080 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2002,7 +2002,7 @@ namespace isc { namespace dhcp { break; case 246: // hosts_databases: "hosts-databases" $@38 ":" "[" database_list "]" -#line 1085 "dhcp4_parser.yy" +#line 1086 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2011,7 +2011,7 @@ namespace isc { namespace dhcp { break; case 251: // not_empty_database_list: not_empty_database_list "," -#line 1096 "dhcp4_parser.yy" +#line 1097 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2019,7 +2019,7 @@ namespace isc { namespace dhcp { break; case 252: // $@39: %empty -#line 1101 "dhcp4_parser.yy" +#line 1102 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2029,7 +2029,7 @@ namespace isc { namespace dhcp { break; case 253: // database: "{" $@39 database_map_params "}" -#line 1105 "dhcp4_parser.yy" +#line 1106 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2039,15 +2039,15 @@ namespace isc { namespace dhcp { break; case 256: // database_map_params: database_map_params "," -#line 1113 "dhcp4_parser.yy" +#line 1114 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 2047 "dhcp4_parser.cc" break; - case 280: // $@40: %empty -#line 1143 "dhcp4_parser.yy" + case 281: // $@40: %empty +#line 1145 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2055,8 +2055,8 @@ namespace isc { namespace dhcp { #line 2056 "dhcp4_parser.cc" break; - case 281: // database_type: "type" $@40 ":" "constant string" -#line 1146 "dhcp4_parser.yy" + case 282: // database_type: "type" $@40 ":" "constant string" +#line 1148 "dhcp4_parser.yy" { ElementPtr db_type(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", db_type); @@ -2065,8 +2065,8 @@ namespace isc { namespace dhcp { #line 2066 "dhcp4_parser.cc" break; - case 282: // $@41: %empty -#line 1152 "dhcp4_parser.yy" + case 283: // $@41: %empty +#line 1154 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2074,8 +2074,8 @@ namespace isc { namespace dhcp { #line 2075 "dhcp4_parser.cc" break; - case 283: // user: "user" $@41 ":" "constant string" -#line 1155 "dhcp4_parser.yy" + case 284: // user: "user" $@41 ":" "constant string" +#line 1157 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -2084,8 +2084,8 @@ namespace isc { namespace dhcp { #line 2085 "dhcp4_parser.cc" break; - case 284: // $@42: %empty -#line 1161 "dhcp4_parser.yy" + case 285: // $@42: %empty +#line 1163 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2093,8 +2093,8 @@ namespace isc { namespace dhcp { #line 2094 "dhcp4_parser.cc" break; - case 285: // password: "password" $@42 ":" "constant string" -#line 1164 "dhcp4_parser.yy" + case 286: // password: "password" $@42 ":" "constant string" +#line 1166 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -2103,8 +2103,8 @@ namespace isc { namespace dhcp { #line 2104 "dhcp4_parser.cc" break; - case 286: // $@43: %empty -#line 1170 "dhcp4_parser.yy" + case 287: // $@43: %empty +#line 1172 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2112,8 +2112,8 @@ namespace isc { namespace dhcp { #line 2113 "dhcp4_parser.cc" break; - case 287: // host: "host" $@43 ":" "constant string" -#line 1173 "dhcp4_parser.yy" + case 288: // host: "host" $@43 ":" "constant string" +#line 1175 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -2122,8 +2122,8 @@ namespace isc { namespace dhcp { #line 2123 "dhcp4_parser.cc" break; - case 288: // port: "port" ":" "integer" -#line 1179 "dhcp4_parser.yy" + case 289: // port: "port" ":" "integer" +#line 1181 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2132,8 +2132,8 @@ namespace isc { namespace dhcp { #line 2133 "dhcp4_parser.cc" break; - case 289: // $@44: %empty -#line 1185 "dhcp4_parser.yy" + case 290: // $@44: %empty +#line 1187 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2141,8 +2141,8 @@ namespace isc { namespace dhcp { #line 2142 "dhcp4_parser.cc" break; - case 290: // name: "name" $@44 ":" "constant string" -#line 1188 "dhcp4_parser.yy" + case 291: // name: "name" $@44 ":" "constant string" +#line 1190 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -2151,8 +2151,8 @@ namespace isc { namespace dhcp { #line 2152 "dhcp4_parser.cc" break; - case 291: // persist: "persist" ":" "boolean" -#line 1194 "dhcp4_parser.yy" + case 292: // persist: "persist" ":" "boolean" +#line 1196 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2161,8 +2161,8 @@ namespace isc { namespace dhcp { #line 2162 "dhcp4_parser.cc" break; - case 292: // lfc_interval: "lfc-interval" ":" "integer" -#line 1200 "dhcp4_parser.yy" + case 293: // lfc_interval: "lfc-interval" ":" "integer" +#line 1202 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2171,8 +2171,8 @@ namespace isc { namespace dhcp { #line 2172 "dhcp4_parser.cc" break; - case 293: // readonly: "readonly" ":" "boolean" -#line 1206 "dhcp4_parser.yy" + case 294: // readonly: "readonly" ":" "boolean" +#line 1208 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2181,8 +2181,8 @@ namespace isc { namespace dhcp { #line 2182 "dhcp4_parser.cc" break; - case 294: // connect_timeout: "connect-timeout" ":" "integer" -#line 1212 "dhcp4_parser.yy" + case 295: // connect_timeout: "connect-timeout" ":" "integer" +#line 1214 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2191,8 +2191,8 @@ namespace isc { namespace dhcp { #line 2192 "dhcp4_parser.cc" break; - case 295: // read_timeout: "read-timeout" ":" "integer" -#line 1218 "dhcp4_parser.yy" + case 296: // read_timeout: "read-timeout" ":" "integer" +#line 1220 "dhcp4_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2201,8 +2201,8 @@ namespace isc { namespace dhcp { #line 2202 "dhcp4_parser.cc" break; - case 296: // write_timeout: "write-timeout" ":" "integer" -#line 1224 "dhcp4_parser.yy" + case 297: // write_timeout: "write-timeout" ":" "integer" +#line 1226 "dhcp4_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2211,8 +2211,8 @@ namespace isc { namespace dhcp { #line 2212 "dhcp4_parser.cc" break; - case 297: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1230 "dhcp4_parser.yy" + case 298: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1232 "dhcp4_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2221,8 +2221,8 @@ namespace isc { namespace dhcp { #line 2222 "dhcp4_parser.cc" break; - case 298: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1236 "dhcp4_parser.yy" + case 299: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1238 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2231,8 +2231,8 @@ namespace isc { namespace dhcp { #line 2232 "dhcp4_parser.cc" break; - case 299: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1242 "dhcp4_parser.yy" + case 300: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1244 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2241,8 +2241,8 @@ namespace isc { namespace dhcp { #line 2242 "dhcp4_parser.cc" break; - case 300: // $@45: %empty -#line 1248 "dhcp4_parser.yy" + case 301: // $@45: %empty +#line 1250 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); @@ -2250,8 +2250,8 @@ namespace isc { namespace dhcp { #line 2251 "dhcp4_parser.cc" break; - case 301: // on_fail: "on-fail" $@45 ":" on_fail_mode -#line 1251 "dhcp4_parser.yy" + case 302: // on_fail: "on-fail" $@45 ":" on_fail_mode +#line 1253 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2259,26 +2259,26 @@ namespace isc { namespace dhcp { #line 2260 "dhcp4_parser.cc" break; - case 302: // on_fail_mode: "stop-retry-exit" -#line 1256 "dhcp4_parser.yy" + case 303: // on_fail_mode: "stop-retry-exit" +#line 1258 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2266 "dhcp4_parser.cc" break; - case 303: // on_fail_mode: "serve-retry-exit" -#line 1257 "dhcp4_parser.yy" + case 304: // on_fail_mode: "serve-retry-exit" +#line 1259 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2272 "dhcp4_parser.cc" break; - case 304: // on_fail_mode: "serve-retry-continue" -#line 1258 "dhcp4_parser.yy" + case 305: // on_fail_mode: "serve-retry-continue" +#line 1260 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } #line 2278 "dhcp4_parser.cc" break; - case 305: // retry_on_startup: "retry-on-startup" ":" "boolean" -#line 1261 "dhcp4_parser.yy" + case 306: // retry_on_startup: "retry-on-startup" ":" "boolean" +#line 1263 "dhcp4_parser.yy" { ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2287,8 +2287,8 @@ namespace isc { namespace dhcp { #line 2288 "dhcp4_parser.cc" break; - case 306: // max_row_errors: "max-row-errors" ":" "integer" -#line 1267 "dhcp4_parser.yy" + case 307: // max_row_errors: "max-row-errors" ":" "integer" +#line 1269 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2297,8 +2297,8 @@ namespace isc { namespace dhcp { #line 2298 "dhcp4_parser.cc" break; - case 307: // $@46: %empty -#line 1273 "dhcp4_parser.yy" + case 308: // $@46: %empty +#line 1275 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2306,8 +2306,8 @@ namespace isc { namespace dhcp { #line 2307 "dhcp4_parser.cc" break; - case 308: // trust_anchor: "trust-anchor" $@46 ":" "constant string" -#line 1276 "dhcp4_parser.yy" + case 309: // trust_anchor: "trust-anchor" $@46 ":" "constant string" +#line 1278 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); @@ -2316,8 +2316,8 @@ namespace isc { namespace dhcp { #line 2317 "dhcp4_parser.cc" break; - case 309: // $@47: %empty -#line 1282 "dhcp4_parser.yy" + case 310: // $@47: %empty +#line 1284 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2325,8 +2325,8 @@ namespace isc { namespace dhcp { #line 2326 "dhcp4_parser.cc" break; - case 310: // cert_file: "cert-file" $@47 ":" "constant string" -#line 1285 "dhcp4_parser.yy" + case 311: // cert_file: "cert-file" $@47 ":" "constant string" +#line 1287 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); @@ -2335,8 +2335,8 @@ namespace isc { namespace dhcp { #line 2336 "dhcp4_parser.cc" break; - case 311: // $@48: %empty -#line 1291 "dhcp4_parser.yy" + case 312: // $@48: %empty +#line 1293 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2344,8 +2344,8 @@ namespace isc { namespace dhcp { #line 2345 "dhcp4_parser.cc" break; - case 312: // key_file: "key-file" $@48 ":" "constant string" -#line 1294 "dhcp4_parser.yy" + case 313: // key_file: "key-file" $@48 ":" "constant string" +#line 1296 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); @@ -2354,27 +2354,46 @@ namespace isc { namespace dhcp { #line 2355 "dhcp4_parser.cc" break; - case 313: // $@49: %empty -#line 1300 "dhcp4_parser.yy" + case 314: // $@49: %empty +#line 1302 "dhcp4_parser.yy" + { + ctx.unique("key-password", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2364 "dhcp4_parser.cc" + break; + + case 315: // key_password: "key-password" $@49 ":" "constant string" +#line 1305 "dhcp4_parser.yy" + { + ElementPtr key_pass(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("key-password", key_pass); + ctx.leave(); +} +#line 2374 "dhcp4_parser.cc" + break; + + case 316: // $@50: %empty +#line 1311 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2364 "dhcp4_parser.cc" +#line 2383 "dhcp4_parser.cc" break; - case 314: // cipher_list: "cipher-list" $@49 ":" "constant string" -#line 1303 "dhcp4_parser.yy" + case 317: // cipher_list: "cipher-list" $@50 ":" "constant string" +#line 1314 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2374 "dhcp4_parser.cc" +#line 2393 "dhcp4_parser.cc" break; - case 315: // $@50: %empty -#line 1309 "dhcp4_parser.yy" + case 318: // $@51: %empty +#line 1320 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2382,73 +2401,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2386 "dhcp4_parser.cc" +#line 2405 "dhcp4_parser.cc" break; - case 316: // host_reservation_identifiers: "host-reservation-identifiers" $@50 ":" "[" host_reservation_identifiers_list "]" -#line 1315 "dhcp4_parser.yy" + case 319: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" +#line 1326 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2395 "dhcp4_parser.cc" +#line 2414 "dhcp4_parser.cc" break; - case 319: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1322 "dhcp4_parser.yy" + case 322: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1333 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2403 "dhcp4_parser.cc" +#line 2422 "dhcp4_parser.cc" break; - case 325: // duid_id: "duid" -#line 1334 "dhcp4_parser.yy" + case 328: // duid_id: "duid" +#line 1345 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2412 "dhcp4_parser.cc" +#line 2431 "dhcp4_parser.cc" break; - case 326: // hw_address_id: "hw-address" -#line 1339 "dhcp4_parser.yy" + case 329: // hw_address_id: "hw-address" +#line 1350 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2421 "dhcp4_parser.cc" +#line 2440 "dhcp4_parser.cc" break; - case 327: // circuit_id: "circuit-id" -#line 1344 "dhcp4_parser.yy" + case 330: // circuit_id: "circuit-id" +#line 1355 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2430 "dhcp4_parser.cc" +#line 2449 "dhcp4_parser.cc" break; - case 328: // client_id: "client-id" -#line 1349 "dhcp4_parser.yy" + case 331: // client_id: "client-id" +#line 1360 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2439 "dhcp4_parser.cc" +#line 2458 "dhcp4_parser.cc" break; - case 329: // flex_id: "flex-id" -#line 1354 "dhcp4_parser.yy" + case 332: // flex_id: "flex-id" +#line 1365 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2448 "dhcp4_parser.cc" +#line 2467 "dhcp4_parser.cc" break; - case 330: // $@51: %empty -#line 1361 "dhcp4_parser.yy" + case 333: // $@52: %empty +#line 1372 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2456,60 +2475,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2460 "dhcp4_parser.cc" +#line 2479 "dhcp4_parser.cc" break; - case 331: // dhcp_multi_threading: "multi-threading" $@51 ":" "{" multi_threading_params "}" -#line 1367 "dhcp4_parser.yy" + case 334: // dhcp_multi_threading: "multi-threading" $@52 ":" "{" multi_threading_params "}" +#line 1378 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2471 "dhcp4_parser.cc" +#line 2490 "dhcp4_parser.cc" break; - case 334: // multi_threading_params: multi_threading_params "," -#line 1376 "dhcp4_parser.yy" + case 337: // multi_threading_params: multi_threading_params "," +#line 1387 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2479 "dhcp4_parser.cc" +#line 2498 "dhcp4_parser.cc" break; - case 341: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1389 "dhcp4_parser.yy" + case 344: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1400 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2489 "dhcp4_parser.cc" +#line 2508 "dhcp4_parser.cc" break; - case 342: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1395 "dhcp4_parser.yy" + case 345: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1406 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2499 "dhcp4_parser.cc" +#line 2518 "dhcp4_parser.cc" break; - case 343: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1401 "dhcp4_parser.yy" + case 346: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1412 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2509 "dhcp4_parser.cc" +#line 2528 "dhcp4_parser.cc" break; - case 344: // $@52: %empty -#line 1407 "dhcp4_parser.yy" + case 347: // $@53: %empty +#line 1418 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2517,113 +2536,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2521 "dhcp4_parser.cc" +#line 2540 "dhcp4_parser.cc" break; - case 345: // hooks_libraries: "hooks-libraries" $@52 ":" "[" hooks_libraries_list "]" -#line 1413 "dhcp4_parser.yy" + case 348: // hooks_libraries: "hooks-libraries" $@53 ":" "[" hooks_libraries_list "]" +#line 1424 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2530 "dhcp4_parser.cc" +#line 2549 "dhcp4_parser.cc" break; - case 350: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1424 "dhcp4_parser.yy" + case 353: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1435 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2538 "dhcp4_parser.cc" +#line 2557 "dhcp4_parser.cc" break; - case 351: // $@53: %empty -#line 1429 "dhcp4_parser.yy" + case 354: // $@54: %empty +#line 1440 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2548 "dhcp4_parser.cc" +#line 2567 "dhcp4_parser.cc" break; - case 352: // hooks_library: "{" $@53 hooks_params "}" -#line 1433 "dhcp4_parser.yy" + case 355: // hooks_library: "{" $@54 hooks_params "}" +#line 1444 "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 2558 "dhcp4_parser.cc" +#line 2577 "dhcp4_parser.cc" break; - case 353: // $@54: %empty -#line 1439 "dhcp4_parser.yy" + case 356: // $@55: %empty +#line 1450 "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 2568 "dhcp4_parser.cc" +#line 2587 "dhcp4_parser.cc" break; - case 354: // sub_hooks_library: "{" $@54 hooks_params "}" -#line 1443 "dhcp4_parser.yy" + case 357: // sub_hooks_library: "{" $@55 hooks_params "}" +#line 1454 "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 2578 "dhcp4_parser.cc" +#line 2597 "dhcp4_parser.cc" break; - case 357: // hooks_params: hooks_params "," -#line 1451 "dhcp4_parser.yy" + case 360: // hooks_params: hooks_params "," +#line 1462 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2586 "dhcp4_parser.cc" +#line 2605 "dhcp4_parser.cc" break; - case 361: // $@55: %empty -#line 1461 "dhcp4_parser.yy" + case 364: // $@56: %empty +#line 1472 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2595 "dhcp4_parser.cc" +#line 2614 "dhcp4_parser.cc" break; - case 362: // library: "library" $@55 ":" "constant string" -#line 1464 "dhcp4_parser.yy" + case 365: // library: "library" $@56 ":" "constant string" +#line 1475 "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 2605 "dhcp4_parser.cc" +#line 2624 "dhcp4_parser.cc" break; - case 363: // $@56: %empty -#line 1470 "dhcp4_parser.yy" + case 366: // $@57: %empty +#line 1481 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2614 "dhcp4_parser.cc" +#line 2633 "dhcp4_parser.cc" break; - case 364: // parameters: "parameters" $@56 ":" map_value -#line 1473 "dhcp4_parser.yy" + case 367: // parameters: "parameters" $@57 ":" map_value +#line 1484 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2623 "dhcp4_parser.cc" +#line 2642 "dhcp4_parser.cc" break; - case 365: // $@57: %empty -#line 1479 "dhcp4_parser.yy" + case 368: // $@58: %empty +#line 1490 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2631,89 +2650,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2635 "dhcp4_parser.cc" +#line 2654 "dhcp4_parser.cc" break; - case 366: // expired_leases_processing: "expired-leases-processing" $@57 ":" "{" expired_leases_params "}" -#line 1485 "dhcp4_parser.yy" + case 369: // expired_leases_processing: "expired-leases-processing" $@58 ":" "{" expired_leases_params "}" +#line 1496 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2645 "dhcp4_parser.cc" +#line 2664 "dhcp4_parser.cc" break; - case 369: // expired_leases_params: expired_leases_params "," -#line 1493 "dhcp4_parser.yy" + case 372: // expired_leases_params: expired_leases_params "," +#line 1504 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2653 "dhcp4_parser.cc" +#line 2672 "dhcp4_parser.cc" break; - case 376: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1506 "dhcp4_parser.yy" + case 379: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1517 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); 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 2663 "dhcp4_parser.cc" +#line 2682 "dhcp4_parser.cc" break; - case 377: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1512 "dhcp4_parser.yy" + case 380: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1523 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); 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 2673 "dhcp4_parser.cc" +#line 2692 "dhcp4_parser.cc" break; - case 378: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1518 "dhcp4_parser.yy" + case 381: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1529 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2683 "dhcp4_parser.cc" +#line 2702 "dhcp4_parser.cc" break; - case 379: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1524 "dhcp4_parser.yy" + case 382: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1535 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2693 "dhcp4_parser.cc" +#line 2712 "dhcp4_parser.cc" break; - case 380: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1530 "dhcp4_parser.yy" + case 383: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1541 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2703 "dhcp4_parser.cc" +#line 2722 "dhcp4_parser.cc" break; - case 381: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1536 "dhcp4_parser.yy" + case 384: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1547 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2713 "dhcp4_parser.cc" +#line 2732 "dhcp4_parser.cc" break; - case 382: // $@58: %empty -#line 1545 "dhcp4_parser.yy" + case 385: // $@59: %empty +#line 1556 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2721,38 +2740,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2725 "dhcp4_parser.cc" +#line 2744 "dhcp4_parser.cc" break; - case 383: // subnet4_list: "subnet4" $@58 ":" "[" subnet4_list_content "]" -#line 1551 "dhcp4_parser.yy" + case 386: // subnet4_list: "subnet4" $@59 ":" "[" subnet4_list_content "]" +#line 1562 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2734 "dhcp4_parser.cc" +#line 2753 "dhcp4_parser.cc" break; - case 388: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1565 "dhcp4_parser.yy" + case 391: // not_empty_subnet4_list: not_empty_subnet4_list "," +#line 1576 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2742 "dhcp4_parser.cc" +#line 2761 "dhcp4_parser.cc" break; - case 389: // $@59: %empty -#line 1574 "dhcp4_parser.yy" + case 392: // $@60: %empty +#line 1585 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2752 "dhcp4_parser.cc" +#line 2771 "dhcp4_parser.cc" break; - case 390: // subnet4: "{" $@59 subnet4_params "}" -#line 1578 "dhcp4_parser.yy" + case 393: // subnet4: "{" $@60 subnet4_params "}" +#line 1589 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2774,153 +2793,153 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2778 "dhcp4_parser.cc" +#line 2797 "dhcp4_parser.cc" break; - case 391: // $@60: %empty -#line 1600 "dhcp4_parser.yy" + case 394: // $@61: %empty +#line 1611 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2788 "dhcp4_parser.cc" +#line 2807 "dhcp4_parser.cc" break; - case 392: // sub_subnet4: "{" $@60 subnet4_params "}" -#line 1604 "dhcp4_parser.yy" + case 395: // sub_subnet4: "{" $@61 subnet4_params "}" +#line 1615 "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 2798 "dhcp4_parser.cc" +#line 2817 "dhcp4_parser.cc" break; - case 395: // subnet4_params: subnet4_params "," -#line 1613 "dhcp4_parser.yy" + case 398: // subnet4_params: subnet4_params "," +#line 1624 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2806 "dhcp4_parser.cc" +#line 2825 "dhcp4_parser.cc" break; - case 449: // $@61: %empty -#line 1674 "dhcp4_parser.yy" + case 452: // $@62: %empty +#line 1685 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2815 "dhcp4_parser.cc" +#line 2834 "dhcp4_parser.cc" break; - case 450: // subnet: "subnet" $@61 ":" "constant string" -#line 1677 "dhcp4_parser.yy" + case 453: // subnet: "subnet" $@62 ":" "constant string" +#line 1688 "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 2825 "dhcp4_parser.cc" +#line 2844 "dhcp4_parser.cc" break; - case 451: // $@62: %empty -#line 1683 "dhcp4_parser.yy" + case 454: // $@63: %empty +#line 1694 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2834 "dhcp4_parser.cc" +#line 2853 "dhcp4_parser.cc" break; - case 452: // subnet_4o6_interface: "4o6-interface" $@62 ":" "constant string" -#line 1686 "dhcp4_parser.yy" + case 455: // subnet_4o6_interface: "4o6-interface" $@63 ":" "constant string" +#line 1697 "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 2844 "dhcp4_parser.cc" +#line 2863 "dhcp4_parser.cc" break; - case 453: // $@63: %empty -#line 1692 "dhcp4_parser.yy" + case 456: // $@64: %empty +#line 1703 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2853 "dhcp4_parser.cc" +#line 2872 "dhcp4_parser.cc" break; - case 454: // subnet_4o6_interface_id: "4o6-interface-id" $@63 ":" "constant string" -#line 1695 "dhcp4_parser.yy" + case 457: // subnet_4o6_interface_id: "4o6-interface-id" $@64 ":" "constant string" +#line 1706 "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 2863 "dhcp4_parser.cc" +#line 2882 "dhcp4_parser.cc" break; - case 455: // $@64: %empty -#line 1701 "dhcp4_parser.yy" + case 458: // $@65: %empty +#line 1712 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2872 "dhcp4_parser.cc" +#line 2891 "dhcp4_parser.cc" break; - case 456: // subnet_4o6_subnet: "4o6-subnet" $@64 ":" "constant string" -#line 1704 "dhcp4_parser.yy" + case 459: // subnet_4o6_subnet: "4o6-subnet" $@65 ":" "constant string" +#line 1715 "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 2882 "dhcp4_parser.cc" +#line 2901 "dhcp4_parser.cc" break; - case 457: // $@65: %empty -#line 1710 "dhcp4_parser.yy" + case 460: // $@66: %empty +#line 1721 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2891 "dhcp4_parser.cc" +#line 2910 "dhcp4_parser.cc" break; - case 458: // interface: "interface" $@65 ":" "constant string" -#line 1713 "dhcp4_parser.yy" + case 461: // interface: "interface" $@66 ":" "constant string" +#line 1724 "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 2901 "dhcp4_parser.cc" +#line 2920 "dhcp4_parser.cc" break; - case 459: // $@66: %empty -#line 1719 "dhcp4_parser.yy" + case 462: // $@67: %empty +#line 1730 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2910 "dhcp4_parser.cc" +#line 2929 "dhcp4_parser.cc" break; - case 460: // client_class: "client-class" $@66 ":" "constant string" -#line 1722 "dhcp4_parser.yy" + case 463: // client_class: "client-class" $@67 ":" "constant string" +#line 1733 "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 2920 "dhcp4_parser.cc" +#line 2939 "dhcp4_parser.cc" break; - case 461: // $@67: %empty -#line 1729 "dhcp4_parser.yy" + case 464: // $@68: %empty +#line 1740 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2928,20 +2947,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2932 "dhcp4_parser.cc" +#line 2951 "dhcp4_parser.cc" break; - case 462: // network_client_classes: "client-classes" $@67 ":" list_strings -#line 1735 "dhcp4_parser.yy" + case 465: // network_client_classes: "client-classes" $@68 ":" list_strings +#line 1746 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2941 "dhcp4_parser.cc" +#line 2960 "dhcp4_parser.cc" break; - case 463: // $@68: %empty -#line 1741 "dhcp4_parser.yy" + case 466: // $@69: %empty +#line 1752 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2949,20 +2968,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2953 "dhcp4_parser.cc" +#line 2972 "dhcp4_parser.cc" break; - case 464: // require_client_classes: "require-client-classes" $@68 ":" list_strings -#line 1747 "dhcp4_parser.yy" + case 467: // require_client_classes: "require-client-classes" $@69 ":" list_strings +#line 1758 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2962 "dhcp4_parser.cc" +#line 2981 "dhcp4_parser.cc" break; - case 465: // $@69: %empty -#line 1752 "dhcp4_parser.yy" + case 468: // $@70: %empty +#line 1763 "dhcp4_parser.yy" { ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2970,60 +2989,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2974 "dhcp4_parser.cc" +#line 2993 "dhcp4_parser.cc" break; - case 466: // evaluate_additional_classes: "evaluate-additional-classes" $@69 ":" list_strings -#line 1758 "dhcp4_parser.yy" + case 469: // evaluate_additional_classes: "evaluate-additional-classes" $@70 ":" list_strings +#line 1769 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2983 "dhcp4_parser.cc" +#line 3002 "dhcp4_parser.cc" break; - case 467: // reservations_global: "reservations-global" ":" "boolean" -#line 1763 "dhcp4_parser.yy" + case 470: // reservations_global: "reservations-global" ":" "boolean" +#line 1774 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2993 "dhcp4_parser.cc" +#line 3012 "dhcp4_parser.cc" break; - case 468: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1769 "dhcp4_parser.yy" + case 471: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1780 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 3003 "dhcp4_parser.cc" +#line 3022 "dhcp4_parser.cc" break; - case 469: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1775 "dhcp4_parser.yy" + case 472: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1786 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 3013 "dhcp4_parser.cc" +#line 3032 "dhcp4_parser.cc" break; - case 470: // id: "id" ":" "integer" -#line 1781 "dhcp4_parser.yy" + case 473: // id: "id" ":" "integer" +#line 1792 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 3023 "dhcp4_parser.cc" +#line 3042 "dhcp4_parser.cc" break; - case 471: // $@70: %empty -#line 1789 "dhcp4_parser.yy" + case 474: // $@71: %empty +#line 1800 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3031,54 +3050,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 3035 "dhcp4_parser.cc" +#line 3054 "dhcp4_parser.cc" break; - case 472: // shared_networks: "shared-networks" $@70 ":" "[" shared_networks_content "]" -#line 1795 "dhcp4_parser.yy" + case 475: // shared_networks: "shared-networks" $@71 ":" "[" shared_networks_content "]" +#line 1806 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3044 "dhcp4_parser.cc" +#line 3063 "dhcp4_parser.cc" break; - case 477: // shared_networks_list: shared_networks_list "," -#line 1808 "dhcp4_parser.yy" + case 480: // shared_networks_list: shared_networks_list "," +#line 1819 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3052 "dhcp4_parser.cc" +#line 3071 "dhcp4_parser.cc" break; - case 478: // $@71: %empty -#line 1813 "dhcp4_parser.yy" + case 481: // $@72: %empty +#line 1824 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3062 "dhcp4_parser.cc" +#line 3081 "dhcp4_parser.cc" break; - case 479: // shared_network: "{" $@71 shared_network_params "}" -#line 1817 "dhcp4_parser.yy" + case 482: // shared_network: "{" $@72 shared_network_params "}" +#line 1828 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 3070 "dhcp4_parser.cc" +#line 3089 "dhcp4_parser.cc" break; - case 482: // shared_network_params: shared_network_params "," -#line 1823 "dhcp4_parser.yy" + case 485: // shared_network_params: shared_network_params "," +#line 1834 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3078 "dhcp4_parser.cc" +#line 3097 "dhcp4_parser.cc" break; - case 531: // $@72: %empty -#line 1882 "dhcp4_parser.yy" + case 534: // $@73: %empty +#line 1893 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3086,55 +3105,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 3090 "dhcp4_parser.cc" +#line 3109 "dhcp4_parser.cc" break; - case 532: // option_def_list: "option-def" $@72 ":" "[" option_def_list_content "]" -#line 1888 "dhcp4_parser.yy" + case 535: // option_def_list: "option-def" $@73 ":" "[" option_def_list_content "]" +#line 1899 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3099 "dhcp4_parser.cc" +#line 3118 "dhcp4_parser.cc" break; - case 533: // $@73: %empty -#line 1896 "dhcp4_parser.yy" + case 536: // $@74: %empty +#line 1907 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3108 "dhcp4_parser.cc" +#line 3127 "dhcp4_parser.cc" break; - case 534: // sub_option_def_list: "{" $@73 option_def_list "}" -#line 1899 "dhcp4_parser.yy" + case 537: // sub_option_def_list: "{" $@74 option_def_list "}" +#line 1910 "dhcp4_parser.yy" { // parsing completed } -#line 3116 "dhcp4_parser.cc" +#line 3135 "dhcp4_parser.cc" break; - case 539: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1911 "dhcp4_parser.yy" + case 542: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1922 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3124 "dhcp4_parser.cc" +#line 3143 "dhcp4_parser.cc" break; - case 540: // $@74: %empty -#line 1918 "dhcp4_parser.yy" + case 543: // $@75: %empty +#line 1929 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3134 "dhcp4_parser.cc" +#line 3153 "dhcp4_parser.cc" break; - case 541: // option_def_entry: "{" $@74 option_def_params "}" -#line 1922 "dhcp4_parser.yy" + case 544: // option_def_entry: "{" $@75 option_def_params "}" +#line 1933 "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)); @@ -3142,21 +3161,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3146 "dhcp4_parser.cc" +#line 3165 "dhcp4_parser.cc" break; - case 542: // $@75: %empty -#line 1933 "dhcp4_parser.yy" + case 545: // $@76: %empty +#line 1944 "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 3156 "dhcp4_parser.cc" +#line 3175 "dhcp4_parser.cc" break; - case 543: // sub_option_def: "{" $@75 option_def_params "}" -#line 1937 "dhcp4_parser.yy" + case 546: // sub_option_def: "{" $@76 option_def_params "}" +#line 1948 "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)); @@ -3164,115 +3183,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3168 "dhcp4_parser.cc" +#line 3187 "dhcp4_parser.cc" break; - case 548: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1953 "dhcp4_parser.yy" + case 551: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1964 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3176 "dhcp4_parser.cc" +#line 3195 "dhcp4_parser.cc" break; - case 560: // code: "code" ":" "integer" -#line 1972 "dhcp4_parser.yy" + case 563: // code: "code" ":" "integer" +#line 1983 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3186 "dhcp4_parser.cc" +#line 3205 "dhcp4_parser.cc" break; - case 562: // $@76: %empty -#line 1980 "dhcp4_parser.yy" + case 565: // $@77: %empty +#line 1991 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3195 "dhcp4_parser.cc" +#line 3214 "dhcp4_parser.cc" break; - case 563: // option_def_type: "type" $@76 ":" "constant string" -#line 1983 "dhcp4_parser.yy" + case 566: // option_def_type: "type" $@77 ":" "constant string" +#line 1994 "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 3205 "dhcp4_parser.cc" +#line 3224 "dhcp4_parser.cc" break; - case 564: // $@77: %empty -#line 1989 "dhcp4_parser.yy" + case 567: // $@78: %empty +#line 2000 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3214 "dhcp4_parser.cc" +#line 3233 "dhcp4_parser.cc" break; - case 565: // option_def_record_types: "record-types" $@77 ":" "constant string" -#line 1992 "dhcp4_parser.yy" + case 568: // option_def_record_types: "record-types" $@78 ":" "constant string" +#line 2003 "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 3224 "dhcp4_parser.cc" +#line 3243 "dhcp4_parser.cc" break; - case 566: // $@78: %empty -#line 1998 "dhcp4_parser.yy" + case 569: // $@79: %empty +#line 2009 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3233 "dhcp4_parser.cc" +#line 3252 "dhcp4_parser.cc" break; - case 567: // space: "space" $@78 ":" "constant string" -#line 2001 "dhcp4_parser.yy" + case 570: // space: "space" $@79 ":" "constant string" +#line 2012 "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 3243 "dhcp4_parser.cc" +#line 3262 "dhcp4_parser.cc" break; - case 569: // $@79: %empty -#line 2009 "dhcp4_parser.yy" + case 572: // $@80: %empty +#line 2020 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3252 "dhcp4_parser.cc" +#line 3271 "dhcp4_parser.cc" break; - case 570: // option_def_encapsulate: "encapsulate" $@79 ":" "constant string" -#line 2012 "dhcp4_parser.yy" + case 573: // option_def_encapsulate: "encapsulate" $@80 ":" "constant string" +#line 2023 "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 3262 "dhcp4_parser.cc" +#line 3281 "dhcp4_parser.cc" break; - case 571: // option_def_array: "array" ":" "boolean" -#line 2018 "dhcp4_parser.yy" + case 574: // option_def_array: "array" ":" "boolean" +#line 2029 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3272 "dhcp4_parser.cc" +#line 3291 "dhcp4_parser.cc" break; - case 572: // $@80: %empty -#line 2028 "dhcp4_parser.yy" + case 575: // $@81: %empty +#line 2039 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3280,123 +3299,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3284 "dhcp4_parser.cc" +#line 3303 "dhcp4_parser.cc" break; - case 573: // option_data_list: "option-data" $@80 ":" "[" option_data_list_content "]" -#line 2034 "dhcp4_parser.yy" + case 576: // option_data_list: "option-data" $@81 ":" "[" option_data_list_content "]" +#line 2045 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3293 "dhcp4_parser.cc" +#line 3312 "dhcp4_parser.cc" break; - case 578: // not_empty_option_data_list: not_empty_option_data_list "," -#line 2049 "dhcp4_parser.yy" + case 581: // not_empty_option_data_list: not_empty_option_data_list "," +#line 2060 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3301 "dhcp4_parser.cc" +#line 3320 "dhcp4_parser.cc" break; - case 579: // $@81: %empty -#line 2056 "dhcp4_parser.yy" + case 582: // $@82: %empty +#line 2067 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3311 "dhcp4_parser.cc" +#line 3330 "dhcp4_parser.cc" break; - case 580: // option_data_entry: "{" $@81 option_data_params "}" -#line 2060 "dhcp4_parser.yy" + case 583: // option_data_entry: "{" $@82 option_data_params "}" +#line 2071 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3320 "dhcp4_parser.cc" +#line 3339 "dhcp4_parser.cc" break; - case 581: // $@82: %empty -#line 2068 "dhcp4_parser.yy" + case 584: // $@83: %empty +#line 2079 "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 3330 "dhcp4_parser.cc" +#line 3349 "dhcp4_parser.cc" break; - case 582: // sub_option_data: "{" $@82 option_data_params "}" -#line 2072 "dhcp4_parser.yy" + case 585: // sub_option_data: "{" $@83 option_data_params "}" +#line 2083 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3339 "dhcp4_parser.cc" +#line 3358 "dhcp4_parser.cc" break; - case 587: // not_empty_option_data_params: not_empty_option_data_params "," -#line 2088 "dhcp4_parser.yy" + case 590: // not_empty_option_data_params: not_empty_option_data_params "," +#line 2099 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3347 "dhcp4_parser.cc" +#line 3366 "dhcp4_parser.cc" break; - case 600: // $@83: %empty -#line 2110 "dhcp4_parser.yy" + case 603: // $@84: %empty +#line 2121 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3356 "dhcp4_parser.cc" +#line 3375 "dhcp4_parser.cc" break; - case 601: // option_data_data: "data" $@83 ":" "constant string" -#line 2113 "dhcp4_parser.yy" + case 604: // option_data_data: "data" $@84 ":" "constant string" +#line 2124 "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 3366 "dhcp4_parser.cc" +#line 3385 "dhcp4_parser.cc" break; - case 604: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2123 "dhcp4_parser.yy" + case 607: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2134 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3376 "dhcp4_parser.cc" +#line 3395 "dhcp4_parser.cc" break; - case 605: // option_data_always_send: "always-send" ":" "boolean" -#line 2129 "dhcp4_parser.yy" + case 608: // option_data_always_send: "always-send" ":" "boolean" +#line 2140 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3386 "dhcp4_parser.cc" +#line 3405 "dhcp4_parser.cc" break; - case 606: // option_data_never_send: "never-send" ":" "boolean" -#line 2135 "dhcp4_parser.yy" + case 609: // option_data_never_send: "never-send" ":" "boolean" +#line 2146 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3396 "dhcp4_parser.cc" +#line 3415 "dhcp4_parser.cc" break; - case 607: // $@84: %empty -#line 2141 "dhcp4_parser.yy" + case 610: // $@85: %empty +#line 2152 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3404,20 +3423,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3408 "dhcp4_parser.cc" +#line 3427 "dhcp4_parser.cc" break; - case 608: // option_data_client_classes: "client-classes" $@84 ":" list_strings -#line 2147 "dhcp4_parser.yy" + case 611: // option_data_client_classes: "client-classes" $@85 ":" list_strings +#line 2158 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3417 "dhcp4_parser.cc" +#line 3436 "dhcp4_parser.cc" break; - case 609: // $@85: %empty -#line 2155 "dhcp4_parser.yy" + case 612: // $@86: %empty +#line 2166 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3425,113 +3444,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3429 "dhcp4_parser.cc" +#line 3448 "dhcp4_parser.cc" break; - case 610: // pools_list: "pools" $@85 ":" "[" pools_list_content "]" -#line 2161 "dhcp4_parser.yy" + case 613: // pools_list: "pools" $@86 ":" "[" pools_list_content "]" +#line 2172 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3438 "dhcp4_parser.cc" +#line 3457 "dhcp4_parser.cc" break; - case 615: // not_empty_pools_list: not_empty_pools_list "," -#line 2174 "dhcp4_parser.yy" + case 618: // not_empty_pools_list: not_empty_pools_list "," +#line 2185 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3446 "dhcp4_parser.cc" +#line 3465 "dhcp4_parser.cc" break; - case 616: // $@86: %empty -#line 2179 "dhcp4_parser.yy" + case 619: // $@87: %empty +#line 2190 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3456 "dhcp4_parser.cc" +#line 3475 "dhcp4_parser.cc" break; - case 617: // pool_list_entry: "{" $@86 pool_params "}" -#line 2183 "dhcp4_parser.yy" + case 620: // pool_list_entry: "{" $@87 pool_params "}" +#line 2194 "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 3466 "dhcp4_parser.cc" +#line 3485 "dhcp4_parser.cc" break; - case 618: // $@87: %empty -#line 2189 "dhcp4_parser.yy" + case 621: // $@88: %empty +#line 2200 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3476 "dhcp4_parser.cc" +#line 3495 "dhcp4_parser.cc" break; - case 619: // sub_pool4: "{" $@87 pool_params "}" -#line 2193 "dhcp4_parser.yy" + case 622: // sub_pool4: "{" $@88 pool_params "}" +#line 2204 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3486 "dhcp4_parser.cc" +#line 3505 "dhcp4_parser.cc" break; - case 622: // pool_params: pool_params "," -#line 2201 "dhcp4_parser.yy" + case 625: // pool_params: pool_params "," +#line 2212 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3494 "dhcp4_parser.cc" +#line 3513 "dhcp4_parser.cc" break; - case 647: // $@88: %empty -#line 2232 "dhcp4_parser.yy" + case 650: // $@89: %empty +#line 2243 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3503 "dhcp4_parser.cc" +#line 3522 "dhcp4_parser.cc" break; - case 648: // pool_entry: "pool" $@88 ":" "constant string" -#line 2235 "dhcp4_parser.yy" + case 651: // pool_entry: "pool" $@89 ":" "constant string" +#line 2246 "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 3513 "dhcp4_parser.cc" +#line 3532 "dhcp4_parser.cc" break; - case 649: // pool_id: "pool-id" ":" "integer" -#line 2241 "dhcp4_parser.yy" + case 652: // pool_id: "pool-id" ":" "integer" +#line 2252 "dhcp4_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3523 "dhcp4_parser.cc" +#line 3542 "dhcp4_parser.cc" break; - case 650: // $@89: %empty -#line 2247 "dhcp4_parser.yy" + case 653: // $@90: %empty +#line 2258 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3531 "dhcp4_parser.cc" +#line 3550 "dhcp4_parser.cc" break; - case 651: // user_context: "user-context" $@89 ":" map_value -#line 2249 "dhcp4_parser.yy" + case 654: // user_context: "user-context" $@90 ":" map_value +#line 2260 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3554,19 +3573,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3558 "dhcp4_parser.cc" +#line 3577 "dhcp4_parser.cc" break; - case 652: // $@90: %empty -#line 2272 "dhcp4_parser.yy" + case 655: // $@91: %empty +#line 2283 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3566 "dhcp4_parser.cc" +#line 3585 "dhcp4_parser.cc" break; - case 653: // comment: "comment" $@90 ":" "constant string" -#line 2274 "dhcp4_parser.yy" + case 656: // comment: "comment" $@91 ":" "constant string" +#line 2285 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3591,11 +3610,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3595 "dhcp4_parser.cc" +#line 3614 "dhcp4_parser.cc" break; - case 654: // $@91: %empty -#line 2302 "dhcp4_parser.yy" + case 657: // $@92: %empty +#line 2313 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3603,264 +3622,264 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3607 "dhcp4_parser.cc" +#line 3626 "dhcp4_parser.cc" break; - case 655: // reservations: "reservations" $@91 ":" "[" reservations_list "]" -#line 2308 "dhcp4_parser.yy" + case 658: // reservations: "reservations" $@92 ":" "[" reservations_list "]" +#line 2319 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3616 "dhcp4_parser.cc" +#line 3635 "dhcp4_parser.cc" break; - case 660: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2319 "dhcp4_parser.yy" + case 663: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2330 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3624 "dhcp4_parser.cc" +#line 3643 "dhcp4_parser.cc" break; - case 661: // $@92: %empty -#line 2324 "dhcp4_parser.yy" + case 664: // $@93: %empty +#line 2335 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3634 "dhcp4_parser.cc" +#line 3653 "dhcp4_parser.cc" break; - case 662: // reservation: "{" $@92 reservation_params "}" -#line 2328 "dhcp4_parser.yy" + case 665: // reservation: "{" $@93 reservation_params "}" +#line 2339 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3643 "dhcp4_parser.cc" +#line 3662 "dhcp4_parser.cc" break; - case 663: // $@93: %empty -#line 2333 "dhcp4_parser.yy" + case 666: // $@94: %empty +#line 2344 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3653 "dhcp4_parser.cc" +#line 3672 "dhcp4_parser.cc" break; - case 664: // sub_reservation: "{" $@93 reservation_params "}" -#line 2337 "dhcp4_parser.yy" + case 667: // sub_reservation: "{" $@94 reservation_params "}" +#line 2348 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3662 "dhcp4_parser.cc" +#line 3681 "dhcp4_parser.cc" break; - case 669: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2348 "dhcp4_parser.yy" + case 672: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2359 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3670 "dhcp4_parser.cc" +#line 3689 "dhcp4_parser.cc" break; - case 685: // $@94: %empty -#line 2371 "dhcp4_parser.yy" + case 688: // $@95: %empty +#line 2382 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3679 "dhcp4_parser.cc" +#line 3698 "dhcp4_parser.cc" break; - case 686: // next_server: "next-server" $@94 ":" "constant string" -#line 2374 "dhcp4_parser.yy" + case 689: // next_server: "next-server" $@95 ":" "constant string" +#line 2385 "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 3689 "dhcp4_parser.cc" +#line 3708 "dhcp4_parser.cc" break; - case 687: // $@95: %empty -#line 2380 "dhcp4_parser.yy" + case 690: // $@96: %empty +#line 2391 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3698 "dhcp4_parser.cc" +#line 3717 "dhcp4_parser.cc" break; - case 688: // server_hostname: "server-hostname" $@95 ":" "constant string" -#line 2383 "dhcp4_parser.yy" + case 691: // server_hostname: "server-hostname" $@96 ":" "constant string" +#line 2394 "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 3708 "dhcp4_parser.cc" +#line 3727 "dhcp4_parser.cc" break; - case 689: // $@96: %empty -#line 2389 "dhcp4_parser.yy" + case 692: // $@97: %empty +#line 2400 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3717 "dhcp4_parser.cc" +#line 3736 "dhcp4_parser.cc" break; - case 690: // boot_file_name: "boot-file-name" $@96 ":" "constant string" -#line 2392 "dhcp4_parser.yy" + case 693: // boot_file_name: "boot-file-name" $@97 ":" "constant string" +#line 2403 "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 3727 "dhcp4_parser.cc" +#line 3746 "dhcp4_parser.cc" break; - case 691: // $@97: %empty -#line 2398 "dhcp4_parser.yy" + case 694: // $@98: %empty +#line 2409 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3736 "dhcp4_parser.cc" +#line 3755 "dhcp4_parser.cc" break; - case 692: // ip_address: "ip-address" $@97 ":" "constant string" -#line 2401 "dhcp4_parser.yy" + case 695: // ip_address: "ip-address" $@98 ":" "constant string" +#line 2412 "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 3746 "dhcp4_parser.cc" +#line 3765 "dhcp4_parser.cc" break; - case 693: // $@98: %empty -#line 2407 "dhcp4_parser.yy" + case 696: // $@99: %empty +#line 2418 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3755 "dhcp4_parser.cc" +#line 3774 "dhcp4_parser.cc" break; - case 694: // duid: "duid" $@98 ":" "constant string" -#line 2410 "dhcp4_parser.yy" + case 697: // duid: "duid" $@99 ":" "constant string" +#line 2421 "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 3765 "dhcp4_parser.cc" +#line 3784 "dhcp4_parser.cc" break; - case 695: // $@99: %empty -#line 2416 "dhcp4_parser.yy" + case 698: // $@100: %empty +#line 2427 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3774 "dhcp4_parser.cc" +#line 3793 "dhcp4_parser.cc" break; - case 696: // hw_address: "hw-address" $@99 ":" "constant string" -#line 2419 "dhcp4_parser.yy" + case 699: // hw_address: "hw-address" $@100 ":" "constant string" +#line 2430 "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 3784 "dhcp4_parser.cc" +#line 3803 "dhcp4_parser.cc" break; - case 697: // $@100: %empty -#line 2425 "dhcp4_parser.yy" + case 700: // $@101: %empty +#line 2436 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3793 "dhcp4_parser.cc" +#line 3812 "dhcp4_parser.cc" break; - case 698: // client_id_value: "client-id" $@100 ":" "constant string" -#line 2428 "dhcp4_parser.yy" + case 701: // client_id_value: "client-id" $@101 ":" "constant string" +#line 2439 "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 3803 "dhcp4_parser.cc" +#line 3822 "dhcp4_parser.cc" break; - case 699: // $@101: %empty -#line 2434 "dhcp4_parser.yy" + case 702: // $@102: %empty +#line 2445 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3812 "dhcp4_parser.cc" +#line 3831 "dhcp4_parser.cc" break; - case 700: // circuit_id_value: "circuit-id" $@101 ":" "constant string" -#line 2437 "dhcp4_parser.yy" + case 703: // circuit_id_value: "circuit-id" $@102 ":" "constant string" +#line 2448 "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 3822 "dhcp4_parser.cc" +#line 3841 "dhcp4_parser.cc" break; - case 701: // $@102: %empty -#line 2443 "dhcp4_parser.yy" + case 704: // $@103: %empty +#line 2454 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3831 "dhcp4_parser.cc" +#line 3850 "dhcp4_parser.cc" break; - case 702: // flex_id_value: "flex-id" $@102 ":" "constant string" -#line 2446 "dhcp4_parser.yy" + case 705: // flex_id_value: "flex-id" $@103 ":" "constant string" +#line 2457 "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 3841 "dhcp4_parser.cc" +#line 3860 "dhcp4_parser.cc" break; - case 703: // $@103: %empty -#line 2452 "dhcp4_parser.yy" + case 706: // $@104: %empty +#line 2463 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3850 "dhcp4_parser.cc" +#line 3869 "dhcp4_parser.cc" break; - case 704: // hostname: "hostname" $@103 ":" "constant string" -#line 2455 "dhcp4_parser.yy" + case 707: // hostname: "hostname" $@104 ":" "constant string" +#line 2466 "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 3860 "dhcp4_parser.cc" +#line 3879 "dhcp4_parser.cc" break; - case 705: // $@104: %empty -#line 2461 "dhcp4_parser.yy" + case 708: // $@105: %empty +#line 2472 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3868,20 +3887,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3872 "dhcp4_parser.cc" +#line 3891 "dhcp4_parser.cc" break; - case 706: // reservation_client_classes: "client-classes" $@104 ":" list_strings -#line 2467 "dhcp4_parser.yy" + case 709: // reservation_client_classes: "client-classes" $@105 ":" list_strings +#line 2478 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3881 "dhcp4_parser.cc" +#line 3900 "dhcp4_parser.cc" break; - case 707: // $@105: %empty -#line 2475 "dhcp4_parser.yy" + case 710: // $@106: %empty +#line 2486 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3889,20 +3908,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3893 "dhcp4_parser.cc" +#line 3912 "dhcp4_parser.cc" break; - case 708: // relay: "relay" $@105 ":" "{" relay_map "}" -#line 2481 "dhcp4_parser.yy" + case 711: // relay: "relay" $@106 ":" "{" relay_map "}" +#line 2492 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3902 "dhcp4_parser.cc" +#line 3921 "dhcp4_parser.cc" break; - case 710: // $@106: %empty -#line 2489 "dhcp4_parser.yy" + case 713: // $@107: %empty +#line 2500 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3910,20 +3929,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3914 "dhcp4_parser.cc" +#line 3933 "dhcp4_parser.cc" break; - case 711: // ip_addresses: "ip-addresses" $@106 ":" list_strings -#line 2495 "dhcp4_parser.yy" + case 714: // ip_addresses: "ip-addresses" $@107 ":" list_strings +#line 2506 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3923 "dhcp4_parser.cc" +#line 3942 "dhcp4_parser.cc" break; - case 712: // $@107: %empty -#line 2503 "dhcp4_parser.yy" + case 715: // $@108: %empty +#line 2514 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3931,124 +3950,124 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3935 "dhcp4_parser.cc" +#line 3954 "dhcp4_parser.cc" break; - case 713: // client_classes: "client-classes" $@107 ":" "[" client_classes_list "]" -#line 2509 "dhcp4_parser.yy" + case 716: // client_classes: "client-classes" $@108 ":" "[" client_classes_list "]" +#line 2520 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3944 "dhcp4_parser.cc" +#line 3963 "dhcp4_parser.cc" break; - case 716: // client_classes_list: client_classes_list "," -#line 2516 "dhcp4_parser.yy" + case 719: // client_classes_list: client_classes_list "," +#line 2527 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3952 "dhcp4_parser.cc" +#line 3971 "dhcp4_parser.cc" break; - case 717: // $@108: %empty -#line 2521 "dhcp4_parser.yy" + case 720: // $@109: %empty +#line 2532 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3962 "dhcp4_parser.cc" +#line 3981 "dhcp4_parser.cc" break; - case 718: // client_class_entry: "{" $@108 client_class_params "}" -#line 2525 "dhcp4_parser.yy" + case 721: // client_class_entry: "{" $@109 client_class_params "}" +#line 2536 "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 3972 "dhcp4_parser.cc" +#line 3991 "dhcp4_parser.cc" break; - case 723: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2537 "dhcp4_parser.yy" + case 726: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2548 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3980 "dhcp4_parser.cc" +#line 3999 "dhcp4_parser.cc" break; - case 742: // $@109: %empty -#line 2563 "dhcp4_parser.yy" + case 745: // $@110: %empty +#line 2574 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3989 "dhcp4_parser.cc" +#line 4008 "dhcp4_parser.cc" break; - case 743: // client_class_test: "test" $@109 ":" "constant string" -#line 2566 "dhcp4_parser.yy" + case 746: // client_class_test: "test" $@110 ":" "constant string" +#line 2577 "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 3999 "dhcp4_parser.cc" +#line 4018 "dhcp4_parser.cc" break; - case 744: // $@110: %empty -#line 2572 "dhcp4_parser.yy" + case 747: // $@111: %empty +#line 2583 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4008 "dhcp4_parser.cc" +#line 4027 "dhcp4_parser.cc" break; - case 745: // client_class_template_test: "template-test" $@110 ":" "constant string" -#line 2575 "dhcp4_parser.yy" + case 748: // client_class_template_test: "template-test" $@111 ":" "constant string" +#line 2586 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 4018 "dhcp4_parser.cc" +#line 4037 "dhcp4_parser.cc" break; - case 746: // only_if_required: "only-if-required" ":" "boolean" -#line 2582 "dhcp4_parser.yy" + case 749: // only_if_required: "only-if-required" ":" "boolean" +#line 2593 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 4028 "dhcp4_parser.cc" +#line 4047 "dhcp4_parser.cc" break; - case 747: // only_in_additional_list: "only-in-additional-list" ":" "boolean" -#line 2588 "dhcp4_parser.yy" + case 750: // only_in_additional_list: "only-in-additional-list" ":" "boolean" +#line 2599 "dhcp4_parser.yy" { ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-in-additional-list", b); } -#line 4038 "dhcp4_parser.cc" +#line 4057 "dhcp4_parser.cc" break; - case 748: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2596 "dhcp4_parser.yy" + case 751: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2607 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4048 "dhcp4_parser.cc" +#line 4067 "dhcp4_parser.cc" break; - case 749: // $@111: %empty -#line 2604 "dhcp4_parser.yy" + case 752: // $@112: %empty +#line 2615 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -4057,20 +4076,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4061 "dhcp4_parser.cc" +#line 4080 "dhcp4_parser.cc" break; - case 750: // control_socket: "control-socket" $@111 ":" "{" control_socket_params "}" -#line 2611 "dhcp4_parser.yy" + case 753: // control_socket: "control-socket" $@112 ":" "{" control_socket_params "}" +#line 2622 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4070 "dhcp4_parser.cc" +#line 4089 "dhcp4_parser.cc" break; - case 751: // $@112: %empty -#line 2616 "dhcp4_parser.yy" + case 754: // $@113: %empty +#line 2627 "dhcp4_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -4079,150 +4098,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4083 "dhcp4_parser.cc" +#line 4102 "dhcp4_parser.cc" break; - case 752: // control_sockets: "control-sockets" $@112 ":" "[" control_socket_list "]" -#line 2623 "dhcp4_parser.yy" + case 755: // control_sockets: "control-sockets" $@113 ":" "[" control_socket_list "]" +#line 2634 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4092 "dhcp4_parser.cc" +#line 4111 "dhcp4_parser.cc" break; - case 757: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2634 "dhcp4_parser.yy" + case 760: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2645 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4100 "dhcp4_parser.cc" +#line 4119 "dhcp4_parser.cc" break; - case 758: // $@113: %empty -#line 2639 "dhcp4_parser.yy" + case 761: // $@114: %empty +#line 2650 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4110 "dhcp4_parser.cc" +#line 4129 "dhcp4_parser.cc" break; - case 759: // control_socket_entry: "{" $@113 control_socket_params "}" -#line 2643 "dhcp4_parser.yy" + case 762: // control_socket_entry: "{" $@114 control_socket_params "}" +#line 2654 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4118 "dhcp4_parser.cc" +#line 4137 "dhcp4_parser.cc" break; - case 762: // control_socket_params: control_socket_params "," -#line 2649 "dhcp4_parser.yy" + case 765: // control_socket_params: control_socket_params "," +#line 2660 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4126 "dhcp4_parser.cc" +#line 4145 "dhcp4_parser.cc" break; - case 776: // $@114: %empty -#line 2669 "dhcp4_parser.yy" + case 779: // $@115: %empty +#line 2680 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4135 "dhcp4_parser.cc" +#line 4154 "dhcp4_parser.cc" break; - case 777: // control_socket_type: "socket-type" $@114 ":" control_socket_type_value -#line 2672 "dhcp4_parser.yy" + case 780: // control_socket_type: "socket-type" $@115 ":" control_socket_type_value +#line 2683 "dhcp4_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4144 "dhcp4_parser.cc" +#line 4163 "dhcp4_parser.cc" break; - case 778: // control_socket_type_value: "unix" -#line 2678 "dhcp4_parser.yy" + case 781: // control_socket_type_value: "unix" +#line 2689 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4150 "dhcp4_parser.cc" +#line 4169 "dhcp4_parser.cc" break; - case 779: // control_socket_type_value: "http" -#line 2679 "dhcp4_parser.yy" + case 782: // control_socket_type_value: "http" +#line 2690 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4156 "dhcp4_parser.cc" +#line 4175 "dhcp4_parser.cc" break; - case 780: // control_socket_type_value: "https" -#line 2680 "dhcp4_parser.yy" + case 783: // control_socket_type_value: "https" +#line 2691 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4162 "dhcp4_parser.cc" +#line 4181 "dhcp4_parser.cc" break; - case 781: // $@115: %empty -#line 2683 "dhcp4_parser.yy" + case 784: // $@116: %empty +#line 2694 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4172 "dhcp4_parser.cc" +#line 4191 "dhcp4_parser.cc" break; - case 782: // control_socket_name: "socket-name" $@115 ":" "constant string" -#line 2687 "dhcp4_parser.yy" + case 785: // control_socket_name: "socket-name" $@116 ":" "constant string" +#line 2698 "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 4182 "dhcp4_parser.cc" +#line 4201 "dhcp4_parser.cc" break; - case 783: // $@116: %empty -#line 2693 "dhcp4_parser.yy" + case 786: // $@117: %empty +#line 2704 "dhcp4_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4192 "dhcp4_parser.cc" +#line 4211 "dhcp4_parser.cc" break; - case 784: // control_socket_address: "socket-address" $@116 ":" "constant string" -#line 2697 "dhcp4_parser.yy" + case 787: // control_socket_address: "socket-address" $@117 ":" "constant string" +#line 2708 "dhcp4_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4202 "dhcp4_parser.cc" +#line 4221 "dhcp4_parser.cc" break; - case 785: // control_socket_port: "socket-port" ":" "integer" -#line 2703 "dhcp4_parser.yy" + case 788: // control_socket_port: "socket-port" ":" "integer" +#line 2714 "dhcp4_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4212 "dhcp4_parser.cc" +#line 4231 "dhcp4_parser.cc" break; - case 786: // cert_required: "cert-required" ":" "boolean" -#line 2709 "dhcp4_parser.yy" + case 789: // cert_required: "cert-required" ":" "boolean" +#line 2720 "dhcp4_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4222 "dhcp4_parser.cc" +#line 4241 "dhcp4_parser.cc" break; - case 787: // $@117: %empty -#line 2715 "dhcp4_parser.yy" + case 790: // $@118: %empty +#line 2726 "dhcp4_parser.yy" { ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4230,73 +4249,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HTTP_HEADERS); } -#line 4234 "dhcp4_parser.cc" +#line 4253 "dhcp4_parser.cc" break; - case 788: // http_headers: "http-headers" $@117 ":" "[" http_header_list "]" -#line 2721 "dhcp4_parser.yy" + case 791: // http_headers: "http-headers" $@118 ":" "[" http_header_list "]" +#line 2732 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4243 "dhcp4_parser.cc" +#line 4262 "dhcp4_parser.cc" break; - case 793: // not_empty_http_header_list: not_empty_http_header_list "," -#line 2732 "dhcp4_parser.yy" + case 796: // not_empty_http_header_list: not_empty_http_header_list "," +#line 2743 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4251 "dhcp4_parser.cc" +#line 4270 "dhcp4_parser.cc" break; - case 794: // $@118: %empty -#line 2737 "dhcp4_parser.yy" + case 797: // $@119: %empty +#line 2748 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4261 "dhcp4_parser.cc" +#line 4280 "dhcp4_parser.cc" break; - case 795: // http_header: "{" $@118 http_header_params "}" -#line 2741 "dhcp4_parser.yy" + case 798: // http_header: "{" $@119 http_header_params "}" +#line 2752 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4269 "dhcp4_parser.cc" +#line 4288 "dhcp4_parser.cc" break; - case 798: // http_header_params: http_header_params "," -#line 2747 "dhcp4_parser.yy" + case 801: // http_header_params: http_header_params "," +#line 2758 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4277 "dhcp4_parser.cc" +#line 4296 "dhcp4_parser.cc" break; - case 804: // $@119: %empty -#line 2759 "dhcp4_parser.yy" + case 807: // $@120: %empty +#line 2770 "dhcp4_parser.yy" { ctx.unique("value", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4286 "dhcp4_parser.cc" +#line 4305 "dhcp4_parser.cc" break; - case 805: // header_value: "value" $@119 ":" "constant string" -#line 2762 "dhcp4_parser.yy" + case 808: // header_value: "value" $@120 ":" "constant string" +#line 2773 "dhcp4_parser.yy" { ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("value", value); ctx.leave(); } -#line 4296 "dhcp4_parser.cc" +#line 4315 "dhcp4_parser.cc" break; - case 806: // $@120: %empty -#line 2770 "dhcp4_parser.yy" + case 809: // $@121: %empty +#line 2781 "dhcp4_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4304,92 +4323,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4308 "dhcp4_parser.cc" +#line 4327 "dhcp4_parser.cc" break; - case 807: // authentication: "authentication" $@120 ":" "{" auth_params "}" -#line 2776 "dhcp4_parser.yy" + case 810: // authentication: "authentication" $@121 ":" "{" auth_params "}" +#line 2787 "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 4319 "dhcp4_parser.cc" +#line 4338 "dhcp4_parser.cc" break; - case 810: // auth_params: auth_params "," -#line 2785 "dhcp4_parser.yy" + case 813: // auth_params: auth_params "," +#line 2796 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4327 "dhcp4_parser.cc" +#line 4346 "dhcp4_parser.cc" break; - case 818: // $@121: %empty -#line 2799 "dhcp4_parser.yy" + case 821: // $@122: %empty +#line 2810 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4336 "dhcp4_parser.cc" +#line 4355 "dhcp4_parser.cc" break; - case 819: // auth_type: "type" $@121 ":" auth_type_value -#line 2802 "dhcp4_parser.yy" + case 822: // auth_type: "type" $@122 ":" auth_type_value +#line 2813 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4345 "dhcp4_parser.cc" +#line 4364 "dhcp4_parser.cc" break; - case 820: // auth_type_value: "basic" -#line 2807 "dhcp4_parser.yy" + case 823: // auth_type_value: "basic" +#line 2818 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4351 "dhcp4_parser.cc" +#line 4370 "dhcp4_parser.cc" break; - case 821: // $@122: %empty -#line 2810 "dhcp4_parser.yy" + case 824: // $@123: %empty +#line 2821 "dhcp4_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4360 "dhcp4_parser.cc" +#line 4379 "dhcp4_parser.cc" break; - case 822: // realm: "realm" $@122 ":" "constant string" -#line 2813 "dhcp4_parser.yy" + case 825: // realm: "realm" $@123 ":" "constant string" +#line 2824 "dhcp4_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4370 "dhcp4_parser.cc" +#line 4389 "dhcp4_parser.cc" break; - case 823: // $@123: %empty -#line 2819 "dhcp4_parser.yy" + case 826: // $@124: %empty +#line 2830 "dhcp4_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4379 "dhcp4_parser.cc" +#line 4398 "dhcp4_parser.cc" break; - case 824: // directory: "directory" $@123 ":" "constant string" -#line 2822 "dhcp4_parser.yy" + case 827: // directory: "directory" $@124 ":" "constant string" +#line 2833 "dhcp4_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4389 "dhcp4_parser.cc" +#line 4408 "dhcp4_parser.cc" break; - case 825: // $@124: %empty -#line 2828 "dhcp4_parser.yy" + case 828: // $@125: %empty +#line 2839 "dhcp4_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4397,92 +4416,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4401 "dhcp4_parser.cc" +#line 4420 "dhcp4_parser.cc" break; - case 826: // clients: "clients" $@124 ":" "[" clients_list "]" -#line 2834 "dhcp4_parser.yy" + case 829: // clients: "clients" $@125 ":" "[" clients_list "]" +#line 2845 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4410 "dhcp4_parser.cc" +#line 4429 "dhcp4_parser.cc" break; - case 831: // not_empty_clients_list: not_empty_clients_list "," -#line 2845 "dhcp4_parser.yy" + case 834: // not_empty_clients_list: not_empty_clients_list "," +#line 2856 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4418 "dhcp4_parser.cc" +#line 4437 "dhcp4_parser.cc" break; - case 832: // $@125: %empty -#line 2850 "dhcp4_parser.yy" + case 835: // $@126: %empty +#line 2861 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4428 "dhcp4_parser.cc" +#line 4447 "dhcp4_parser.cc" break; - case 833: // basic_auth: "{" $@125 clients_params "}" -#line 2854 "dhcp4_parser.yy" + case 836: // basic_auth: "{" $@126 clients_params "}" +#line 2865 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4436 "dhcp4_parser.cc" +#line 4455 "dhcp4_parser.cc" break; - case 836: // clients_params: clients_params "," -#line 2860 "dhcp4_parser.yy" + case 839: // clients_params: clients_params "," +#line 2871 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4444 "dhcp4_parser.cc" +#line 4463 "dhcp4_parser.cc" break; - case 844: // $@126: %empty -#line 2874 "dhcp4_parser.yy" + case 847: // $@127: %empty +#line 2885 "dhcp4_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4453 "dhcp4_parser.cc" +#line 4472 "dhcp4_parser.cc" break; - case 845: // user_file: "user-file" $@126 ":" "constant string" -#line 2877 "dhcp4_parser.yy" + case 848: // user_file: "user-file" $@127 ":" "constant string" +#line 2888 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4463 "dhcp4_parser.cc" +#line 4482 "dhcp4_parser.cc" break; - case 846: // $@127: %empty -#line 2883 "dhcp4_parser.yy" + case 849: // $@128: %empty +#line 2894 "dhcp4_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4472 "dhcp4_parser.cc" +#line 4491 "dhcp4_parser.cc" break; - case 847: // password_file: "password-file" $@127 ":" "constant string" -#line 2886 "dhcp4_parser.yy" + case 850: // password_file: "password-file" $@128 ":" "constant string" +#line 2897 "dhcp4_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4482 "dhcp4_parser.cc" +#line 4501 "dhcp4_parser.cc" break; - case 848: // $@128: %empty -#line 2894 "dhcp4_parser.yy" + case 851: // $@129: %empty +#line 2905 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4490,87 +4509,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4494 "dhcp4_parser.cc" +#line 4513 "dhcp4_parser.cc" break; - case 849: // dhcp_queue_control: "dhcp-queue-control" $@128 ":" "{" queue_control_params "}" -#line 2900 "dhcp4_parser.yy" + case 852: // dhcp_queue_control: "dhcp-queue-control" $@129 ":" "{" queue_control_params "}" +#line 2911 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4505 "dhcp4_parser.cc" +#line 4524 "dhcp4_parser.cc" break; - case 852: // queue_control_params: queue_control_params "," -#line 2909 "dhcp4_parser.yy" + case 855: // queue_control_params: queue_control_params "," +#line 2920 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4513 "dhcp4_parser.cc" +#line 4532 "dhcp4_parser.cc" break; - case 859: // enable_queue: "enable-queue" ":" "boolean" -#line 2922 "dhcp4_parser.yy" + case 862: // enable_queue: "enable-queue" ":" "boolean" +#line 2933 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4523 "dhcp4_parser.cc" +#line 4542 "dhcp4_parser.cc" break; - case 860: // $@129: %empty -#line 2928 "dhcp4_parser.yy" + case 863: // $@130: %empty +#line 2939 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4532 "dhcp4_parser.cc" +#line 4551 "dhcp4_parser.cc" break; - case 861: // queue_type: "queue-type" $@129 ":" "constant string" -#line 2931 "dhcp4_parser.yy" + case 864: // queue_type: "queue-type" $@130 ":" "constant string" +#line 2942 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4542 "dhcp4_parser.cc" +#line 4561 "dhcp4_parser.cc" break; - case 862: // capacity: "capacity" ":" "integer" -#line 2937 "dhcp4_parser.yy" + case 865: // capacity: "capacity" ":" "integer" +#line 2948 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4552 "dhcp4_parser.cc" +#line 4571 "dhcp4_parser.cc" break; - case 863: // $@130: %empty -#line 2943 "dhcp4_parser.yy" + case 866: // $@131: %empty +#line 2954 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4561 "dhcp4_parser.cc" +#line 4580 "dhcp4_parser.cc" break; - case 864: // arbitrary_map_entry: "constant string" $@130 ":" value -#line 2946 "dhcp4_parser.yy" + case 867: // arbitrary_map_entry: "constant string" $@131 ":" value +#line 2957 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4570 "dhcp4_parser.cc" +#line 4589 "dhcp4_parser.cc" break; - case 865: // $@131: %empty -#line 2953 "dhcp4_parser.yy" + case 868: // $@132: %empty +#line 2964 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4578,177 +4597,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4582 "dhcp4_parser.cc" +#line 4601 "dhcp4_parser.cc" break; - case 866: // dhcp_ddns: "dhcp-ddns" $@131 ":" "{" dhcp_ddns_params "}" -#line 2959 "dhcp4_parser.yy" + case 869: // dhcp_ddns: "dhcp-ddns" $@132 ":" "{" dhcp_ddns_params "}" +#line 2970 "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 4593 "dhcp4_parser.cc" +#line 4612 "dhcp4_parser.cc" break; - case 867: // $@132: %empty -#line 2966 "dhcp4_parser.yy" + case 870: // $@133: %empty +#line 2977 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4603 "dhcp4_parser.cc" +#line 4622 "dhcp4_parser.cc" break; - case 868: // sub_dhcp_ddns: "{" $@132 dhcp_ddns_params "}" -#line 2970 "dhcp4_parser.yy" + case 871: // sub_dhcp_ddns: "{" $@133 dhcp_ddns_params "}" +#line 2981 "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 4613 "dhcp4_parser.cc" +#line 4632 "dhcp4_parser.cc" break; - case 871: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2978 "dhcp4_parser.yy" + case 874: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2989 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4621 "dhcp4_parser.cc" +#line 4640 "dhcp4_parser.cc" break; - case 883: // enable_updates: "enable-updates" ":" "boolean" -#line 2996 "dhcp4_parser.yy" + case 886: // enable_updates: "enable-updates" ":" "boolean" +#line 3007 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4631 "dhcp4_parser.cc" +#line 4650 "dhcp4_parser.cc" break; - case 884: // $@133: %empty -#line 3002 "dhcp4_parser.yy" + case 887: // $@134: %empty +#line 3013 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4640 "dhcp4_parser.cc" +#line 4659 "dhcp4_parser.cc" break; - case 885: // server_ip: "server-ip" $@133 ":" "constant string" -#line 3005 "dhcp4_parser.yy" + case 888: // server_ip: "server-ip" $@134 ":" "constant string" +#line 3016 "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 4650 "dhcp4_parser.cc" +#line 4669 "dhcp4_parser.cc" break; - case 886: // server_port: "server-port" ":" "integer" -#line 3011 "dhcp4_parser.yy" + case 889: // server_port: "server-port" ":" "integer" +#line 3022 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4660 "dhcp4_parser.cc" +#line 4679 "dhcp4_parser.cc" break; - case 887: // $@134: %empty -#line 3017 "dhcp4_parser.yy" + case 890: // $@135: %empty +#line 3028 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4669 "dhcp4_parser.cc" +#line 4688 "dhcp4_parser.cc" break; - case 888: // sender_ip: "sender-ip" $@134 ":" "constant string" -#line 3020 "dhcp4_parser.yy" + case 891: // sender_ip: "sender-ip" $@135 ":" "constant string" +#line 3031 "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 4679 "dhcp4_parser.cc" +#line 4698 "dhcp4_parser.cc" break; - case 889: // sender_port: "sender-port" ":" "integer" -#line 3026 "dhcp4_parser.yy" + case 892: // sender_port: "sender-port" ":" "integer" +#line 3037 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4689 "dhcp4_parser.cc" +#line 4708 "dhcp4_parser.cc" break; - case 890: // max_queue_size: "max-queue-size" ":" "integer" -#line 3032 "dhcp4_parser.yy" + case 893: // max_queue_size: "max-queue-size" ":" "integer" +#line 3043 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4699 "dhcp4_parser.cc" +#line 4718 "dhcp4_parser.cc" break; - case 891: // $@135: %empty -#line 3038 "dhcp4_parser.yy" + case 894: // $@136: %empty +#line 3049 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4708 "dhcp4_parser.cc" +#line 4727 "dhcp4_parser.cc" break; - case 892: // ncr_protocol: "ncr-protocol" $@135 ":" ncr_protocol_value -#line 3041 "dhcp4_parser.yy" + case 895: // ncr_protocol: "ncr-protocol" $@136 ":" ncr_protocol_value +#line 3052 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4717 "dhcp4_parser.cc" +#line 4736 "dhcp4_parser.cc" break; - case 893: // ncr_protocol_value: "udp" -#line 3047 "dhcp4_parser.yy" + case 896: // ncr_protocol_value: "udp" +#line 3058 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4723 "dhcp4_parser.cc" +#line 4742 "dhcp4_parser.cc" break; - case 894: // ncr_protocol_value: "tcp" -#line 3048 "dhcp4_parser.yy" + case 897: // ncr_protocol_value: "tcp" +#line 3059 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4729 "dhcp4_parser.cc" +#line 4748 "dhcp4_parser.cc" break; - case 895: // $@136: %empty -#line 3051 "dhcp4_parser.yy" + case 898: // $@137: %empty +#line 3062 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4738 "dhcp4_parser.cc" +#line 4757 "dhcp4_parser.cc" break; - case 896: // ncr_format: "ncr-format" $@136 ":" "JSON" -#line 3054 "dhcp4_parser.yy" + case 899: // ncr_format: "ncr-format" $@137 ":" "JSON" +#line 3065 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4748 "dhcp4_parser.cc" +#line 4767 "dhcp4_parser.cc" break; - case 897: // $@137: %empty -#line 3062 "dhcp4_parser.yy" + case 900: // $@138: %empty +#line 3073 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4756,48 +4775,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4760 "dhcp4_parser.cc" +#line 4779 "dhcp4_parser.cc" break; - case 898: // config_control: "config-control" $@137 ":" "{" config_control_params "}" -#line 3068 "dhcp4_parser.yy" + case 901: // config_control: "config-control" $@138 ":" "{" config_control_params "}" +#line 3079 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4770 "dhcp4_parser.cc" +#line 4789 "dhcp4_parser.cc" break; - case 899: // $@138: %empty -#line 3074 "dhcp4_parser.yy" + case 902: // $@139: %empty +#line 3085 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4780 "dhcp4_parser.cc" +#line 4799 "dhcp4_parser.cc" break; - case 900: // sub_config_control: "{" $@138 config_control_params "}" -#line 3078 "dhcp4_parser.yy" + case 903: // sub_config_control: "{" $@139 config_control_params "}" +#line 3089 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4789 "dhcp4_parser.cc" +#line 4808 "dhcp4_parser.cc" break; - case 903: // config_control_params: config_control_params "," -#line 3086 "dhcp4_parser.yy" + case 906: // config_control_params: config_control_params "," +#line 3097 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4797 "dhcp4_parser.cc" +#line 4816 "dhcp4_parser.cc" break; - case 906: // $@139: %empty -#line 3096 "dhcp4_parser.yy" + case 909: // $@140: %empty +#line 3107 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4805,30 +4824,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4809 "dhcp4_parser.cc" +#line 4828 "dhcp4_parser.cc" break; - case 907: // config_databases: "config-databases" $@139 ":" "[" database_list "]" -#line 3102 "dhcp4_parser.yy" + case 910: // config_databases: "config-databases" $@140 ":" "[" database_list "]" +#line 3113 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4818 "dhcp4_parser.cc" +#line 4837 "dhcp4_parser.cc" break; - case 908: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 3107 "dhcp4_parser.yy" + case 911: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 3118 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); 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 4828 "dhcp4_parser.cc" +#line 4847 "dhcp4_parser.cc" break; - case 909: // $@140: %empty -#line 3115 "dhcp4_parser.yy" + case 912: // $@141: %empty +#line 3126 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4836,83 +4855,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4840 "dhcp4_parser.cc" +#line 4859 "dhcp4_parser.cc" break; - case 910: // loggers: "loggers" $@140 ":" "[" loggers_entries "]" -#line 3121 "dhcp4_parser.yy" + case 913: // loggers: "loggers" $@141 ":" "[" loggers_entries "]" +#line 3132 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4849 "dhcp4_parser.cc" +#line 4868 "dhcp4_parser.cc" break; - case 913: // loggers_entries: loggers_entries "," -#line 3130 "dhcp4_parser.yy" + case 916: // loggers_entries: loggers_entries "," +#line 3141 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4857 "dhcp4_parser.cc" +#line 4876 "dhcp4_parser.cc" break; - case 914: // $@141: %empty -#line 3136 "dhcp4_parser.yy" + case 917: // $@142: %empty +#line 3147 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4867 "dhcp4_parser.cc" +#line 4886 "dhcp4_parser.cc" break; - case 915: // logger_entry: "{" $@141 logger_params "}" -#line 3140 "dhcp4_parser.yy" + case 918: // logger_entry: "{" $@142 logger_params "}" +#line 3151 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4875 "dhcp4_parser.cc" +#line 4894 "dhcp4_parser.cc" break; - case 918: // logger_params: logger_params "," -#line 3146 "dhcp4_parser.yy" + case 921: // logger_params: logger_params "," +#line 3157 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4883 "dhcp4_parser.cc" +#line 4902 "dhcp4_parser.cc" break; - case 926: // debuglevel: "debuglevel" ":" "integer" -#line 3160 "dhcp4_parser.yy" + case 929: // debuglevel: "debuglevel" ":" "integer" +#line 3171 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4893 "dhcp4_parser.cc" +#line 4912 "dhcp4_parser.cc" break; - case 927: // $@142: %empty -#line 3166 "dhcp4_parser.yy" + case 930: // $@143: %empty +#line 3177 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4902 "dhcp4_parser.cc" +#line 4921 "dhcp4_parser.cc" break; - case 928: // severity: "severity" $@142 ":" "constant string" -#line 3169 "dhcp4_parser.yy" + case 931: // severity: "severity" $@143 ":" "constant string" +#line 3180 "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 4912 "dhcp4_parser.cc" +#line 4931 "dhcp4_parser.cc" break; - case 929: // $@143: %empty -#line 3175 "dhcp4_parser.yy" + case 932: // $@144: %empty +#line 3186 "dhcp4_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4920,122 +4939,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4924 "dhcp4_parser.cc" +#line 4943 "dhcp4_parser.cc" break; - case 930: // output_options_list: "output-options" $@143 ":" "[" output_options_list_content "]" -#line 3181 "dhcp4_parser.yy" + case 933: // output_options_list: "output-options" $@144 ":" "[" output_options_list_content "]" +#line 3192 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4933 "dhcp4_parser.cc" +#line 4952 "dhcp4_parser.cc" break; - case 933: // output_options_list_content: output_options_list_content "," -#line 3188 "dhcp4_parser.yy" + case 936: // output_options_list_content: output_options_list_content "," +#line 3199 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4941 "dhcp4_parser.cc" +#line 4960 "dhcp4_parser.cc" break; - case 934: // $@144: %empty -#line 3193 "dhcp4_parser.yy" + case 937: // $@145: %empty +#line 3204 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4951 "dhcp4_parser.cc" +#line 4970 "dhcp4_parser.cc" break; - case 935: // output_entry: "{" $@144 output_params_list "}" -#line 3197 "dhcp4_parser.yy" + case 938: // output_entry: "{" $@145 output_params_list "}" +#line 3208 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4959 "dhcp4_parser.cc" +#line 4978 "dhcp4_parser.cc" break; - case 938: // output_params_list: output_params_list "," -#line 3203 "dhcp4_parser.yy" + case 941: // output_params_list: output_params_list "," +#line 3214 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4967 "dhcp4_parser.cc" +#line 4986 "dhcp4_parser.cc" break; - case 944: // $@145: %empty -#line 3215 "dhcp4_parser.yy" + case 947: // $@146: %empty +#line 3226 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4976 "dhcp4_parser.cc" +#line 4995 "dhcp4_parser.cc" break; - case 945: // output: "output" $@145 ":" "constant string" -#line 3218 "dhcp4_parser.yy" + case 948: // output: "output" $@146 ":" "constant string" +#line 3229 "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 4986 "dhcp4_parser.cc" +#line 5005 "dhcp4_parser.cc" break; - case 946: // flush: "flush" ":" "boolean" -#line 3224 "dhcp4_parser.yy" + case 949: // flush: "flush" ":" "boolean" +#line 3235 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4996 "dhcp4_parser.cc" +#line 5015 "dhcp4_parser.cc" break; - case 947: // maxsize: "maxsize" ":" "integer" -#line 3230 "dhcp4_parser.yy" + case 950: // maxsize: "maxsize" ":" "integer" +#line 3241 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 5006 "dhcp4_parser.cc" +#line 5025 "dhcp4_parser.cc" break; - case 948: // maxver: "maxver" ":" "integer" -#line 3236 "dhcp4_parser.yy" + case 951: // maxver: "maxver" ":" "integer" +#line 3247 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 5016 "dhcp4_parser.cc" +#line 5035 "dhcp4_parser.cc" break; - case 949: // $@146: %empty -#line 3242 "dhcp4_parser.yy" + case 952: // $@147: %empty +#line 3253 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5025 "dhcp4_parser.cc" +#line 5044 "dhcp4_parser.cc" break; - case 950: // pattern: "pattern" $@146 ":" "constant string" -#line 3245 "dhcp4_parser.yy" + case 953: // pattern: "pattern" $@147 ":" "constant string" +#line 3256 "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 5035 "dhcp4_parser.cc" +#line 5054 "dhcp4_parser.cc" break; - case 951: // $@147: %empty -#line 3251 "dhcp4_parser.yy" + case 954: // $@148: %empty +#line 3262 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -5043,68 +5062,68 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 5047 "dhcp4_parser.cc" +#line 5066 "dhcp4_parser.cc" break; - case 952: // compatibility: "compatibility" $@147 ":" "{" compatibility_params "}" -#line 3257 "dhcp4_parser.yy" + case 955: // compatibility: "compatibility" $@148 ":" "{" compatibility_params "}" +#line 3268 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5056 "dhcp4_parser.cc" +#line 5075 "dhcp4_parser.cc" break; - case 955: // compatibility_params: compatibility_params "," -#line 3264 "dhcp4_parser.yy" + case 958: // compatibility_params: compatibility_params "," +#line 3275 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5064 "dhcp4_parser.cc" +#line 5083 "dhcp4_parser.cc" break; - case 961: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3276 "dhcp4_parser.yy" + case 964: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3287 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 5074 "dhcp4_parser.cc" +#line 5093 "dhcp4_parser.cc" break; - case 962: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" -#line 3282 "dhcp4_parser.yy" + case 965: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 3293 "dhcp4_parser.yy" { ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); } -#line 5084 "dhcp4_parser.cc" +#line 5103 "dhcp4_parser.cc" break; - case 963: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" -#line 3288 "dhcp4_parser.yy" + case 966: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 3299 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 5094 "dhcp4_parser.cc" +#line 5113 "dhcp4_parser.cc" break; - case 964: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 3294 "dhcp4_parser.yy" + case 967: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 3305 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 5104 "dhcp4_parser.cc" +#line 5123 "dhcp4_parser.cc" break; -#line 5108 "dhcp4_parser.cc" +#line 5127 "dhcp4_parser.cc" default: break; @@ -5456,160 +5475,161 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -1401; + const short Dhcp4Parser::yypact_ninf_ = -1369; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 508, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 22, 39, 44, 48, 54, 133, - 157, 209, 224, 235, 252, 260, 277, 306, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 39, -181, 184, 727, 72, 168, - 368, 211, 123, 78, 305, -93, 485, 80, -1401, 63, - 114, 293, 304, 318, -1401, 42, -1401, -1401, -1401, -1401, - 350, 351, 364, -1401, -1401, -1401, 365, 380, -1401, -1401, - -1401, 389, 393, 395, 407, 409, 413, 426, 432, 440, - 449, 469, -1401, 470, 472, 474, 479, 483, -1401, -1401, - -1401, 484, 488, 493, 495, 499, 505, 506, -1401, -1401, - -1401, 507, -1401, -1401, -1401, -1401, -1401, 509, 511, 513, - -1401, -1401, -1401, -1401, -1401, 515, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, 516, 522, 525, -1401, -1401, 528, -1401, - 62, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 529, 532, 534, 536, - -1401, 98, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 537, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, 116, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - 542, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, 124, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 378, - 466, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, 540, -1401, -1401, 546, -1401, -1401, -1401, - 547, -1401, -1401, 544, 550, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 551, 554, - 556, -1401, -1401, -1401, -1401, -1401, 560, 559, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 139, -1401, -1401, -1401, 566, -1401, 571, -1401, - 572, 573, -1401, -1401, -1401, -1401, -1401, 151, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 574, 154, - -1401, -1401, -1401, -1401, 39, 39, -1401, 349, 576, -1401, - -1401, 577, 578, 579, 352, 355, 357, 588, 589, 590, - 374, 362, 592, 596, 602, 377, 379, 383, 386, 387, - 388, 391, 399, 401, 396, 415, 634, 420, 423, 411, - 416, 419, 651, 652, 653, 429, 444, 427, 433, 436, - 447, 450, 661, 676, 678, 453, 681, 698, 699, 707, - 708, 480, 481, 486, 714, 717, 718, 719, 741, 517, - 742, 743, 745, 746, 748, 750, 751, 535, 538, 539, - 763, 765, -1401, 727, -1401, 766, 769, 770, 543, 545, - 548, 549, 72, -1401, 771, 773, 777, 778, 779, 780, - 557, 781, 815, 816, 817, 820, 168, -1401, 821, 595, - 368, -1401, 823, 824, 825, 826, 827, 828, 829, 833, - -1401, 211, -1401, 834, 835, 609, 838, 839, 842, 614, - -1401, 78, 844, 621, 622, 623, 853, -1401, 305, 857, - 859, -42, -1401, 631, 861, 635, 863, 637, 638, 866, - 867, 485, -1401, 869, 643, 80, -1401, -1401, -1401, 872, - 871, 873, 874, 877, -1401, -1401, -1401, 649, 655, 656, - -1401, -1401, 882, 883, 886, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 662, -1401, -1401, -1401, - -1401, -1401, -81, 663, 664, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 890, 891, 892, -1401, 668, 369, 894, 893, - 671, -1401, -1401, -1401, 897, 898, 899, 900, 901, -1401, - 902, 904, 907, 906, 910, 677, 684, -1401, -1401, -1401, - 913, 912, -1401, 915, 113, 187, -1401, -1401, -1401, -1401, - -1401, 691, 692, 693, 919, 701, 702, -1401, 915, 915, - 915, 703, 927, -1401, 705, -1401, -1401, 915, 706, 710, - 711, 712, 713, 715, 716, -1401, 720, 721, -1401, 722, - 723, 724, -1401, -1401, 725, -1401, -1401, -1401, 915, -1401, - 726, 893, -1401, -1401, 728, -1401, 729, -1401, -1401, 18, - 744, -1401, 933, -1401, -1401, 39, 727, 80, 72, 247, - -1401, -1401, -1401, 647, 647, 937, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, 940, 941, 942, -1401, -1401, - -1401, -1401, -1401, -1401, 954, -1401, -1401, -1401, 88, 955, - 956, 961, 309, -50, 798, 962, 161, 485, -1401, -1401, - 963, -1, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, 964, -1401, -1401, -1401, -1401, -1401, -1401, - 832, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, 937, -1401, 162, 183, 189, - -1401, -1401, 201, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - 968, 969, 973, 974, 975, 976, 977, 978, 979, 980, - -1401, 981, 982, -1401, -1401, -1401, -1401, -1401, 216, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 265, -1401, 983, 984, -1401, -1401, 985, 989, - -1401, -1401, 988, 992, -1401, -1401, 996, 995, -1401, -1401, - 999, 1003, -1401, -1401, -1401, -1401, -1401, -1401, 166, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 214, -1401, -1401, 1006, - 1011, -1401, -1401, 1009, 1014, -1401, 1016, 1017, 1028, 1034, - 1037, 1039, 290, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - 1042, 1047, 1050, -1401, 296, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 1051, -1401, 1057, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 297, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 1069, 1073, -1401, 1074, -1401, 1079, - -1401, -1401, -1401, 307, -1401, -1401, -1401, -1401, -1401, 332, - -1401, 303, -1401, 1080, 1081, 1087, 1089, -1401, 382, -1401, - -1401, -1401, -1401, -1401, 758, -1401, 1090, 1098, -1401, -1401, - 1110, -1401, 1118, -1401, -1401, -1401, 1124, 1130, 247, -1401, - 1135, 1152, 1162, 1168, 943, 946, 950, 949, 953, 958, - 960, 965, 966, 970, 1181, 959, 971, 1182, 1183, 1190, - 1191, 647, -1401, -1401, 647, -1401, 937, 168, -1401, 940, - 78, -1401, 941, 305, -1401, 942, 292, -1401, 954, 88, - -1401, 1378, 955, -1401, 211, -1401, 956, -93, -1401, 961, - 986, 987, 990, 991, 993, 994, 309, -1401, 997, 998, - 1000, -50, -1401, 1195, 1200, 1202, 1001, 1203, 1002, 1204, - 798, -1401, 798, -1401, 962, 1004, 1205, 1005, 1207, 161, - -1401, -1401, -19, 963, -1401, 1007, 1008, 1010, 1013, -1, - -1401, -1401, 1206, 1210, 368, -1401, 964, 1211, -1401, -1401, - 1012, 1018, -1401, 1020, 1021, 1023, 1024, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, 289, -1401, -1401, - 1025, 1027, 1030, 1032, -1401, 384, -1401, 418, -1401, 1208, - -1401, 1212, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 421, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, 1215, 1219, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 1218, 1224, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, 1220, -1401, 424, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 342, 1033, 1035, -1401, - 1226, -1401, 1209, -1401, 425, -1401, -1401, 1036, -1401, 39, - -1401, -1401, 1230, -1401, -1401, -1401, -1401, -1401, 431, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - 1040, 434, -1401, 915, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 292, -1401, 1234, 1235, 1041, 1043, -1401, 1378, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 50, 1237, - -1401, -1401, -1401, 1243, 1046, 1254, -19, -1401, -1401, -1401, - -1401, -1401, 1048, 1049, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 435, -1401, -1401, -1401, -1401, -1401, - -1401, 1261, 1269, -1401, 1276, -1401, 1052, -1401, -1401, -1401, - 1281, 1284, 1285, 1286, 50, -1401, -37, -1401, 1237, 1288, - -1401, 1121, 1063, 1066, 1292, -1401, -1401, -1401, -1401, -1401, - -1401, 437, -1401, -1401, -1401, -1401, 465, -1401, -1401, -1401, - -1401, -1401, 1291, 1296, -37, -1401, 109, 1288, -1401, -1401, - 1295, 1299, -1401, 1076, -1401, -1401, 1300, 1306, 1307, -1401, - 462, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 164, -1401, - 1291, -1401, 1310, 1070, 1085, 1088, 1314, 109, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 464, -1401, -1401, -1401, - -1401, 1091, -1401, -1401, -1401, 1093, -1401, 1316, 1320, 164, - -1401, -1401, -1401, 1096, 1099, -1401, -1401, -1401 + 507, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, 28, 26, 29, 39, 44, 54, + 80, 90, 111, 140, 179, 183, 193, 262, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, 26, -168, 158, 205, 180, 726, + 784, 315, 34, 272, 321, -79, 484, 68, -1369, 176, + 211, 252, 214, 306, -1369, 45, -1369, -1369, -1369, -1369, + 323, 338, 340, -1369, -1369, -1369, 342, 348, -1369, -1369, + -1369, 367, 371, 372, 376, 399, 406, 409, 413, 422, + 427, 428, -1369, 431, 433, 434, 437, 439, -1369, -1369, + -1369, 440, 445, 446, 447, 455, 456, 457, -1369, -1369, + -1369, 458, -1369, -1369, -1369, -1369, -1369, 459, 460, 461, + -1369, -1369, -1369, -1369, -1369, 465, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 466, 467, 468, -1369, -1369, 469, -1369, + 116, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 470, 472, 473, 474, + -1369, 124, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 479, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, 134, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + 480, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, 151, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 310, + 322, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 477, -1369, -1369, 482, -1369, -1369, -1369, + 483, -1369, -1369, 486, 485, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 487, 488, + 491, -1369, -1369, -1369, -1369, -1369, 489, 493, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, 161, -1369, -1369, -1369, 495, -1369, 497, -1369, + 498, 501, -1369, -1369, -1369, -1369, -1369, 162, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 502, 169, + -1369, -1369, -1369, -1369, 26, 26, -1369, 259, 503, -1369, + -1369, 505, 506, 509, 277, 281, 283, 515, 516, 518, + 294, 295, 528, 529, 531, 309, 319, 326, 328, 330, + 302, 305, 307, 317, 334, 336, 544, 343, 344, 333, + 345, 351, 549, 551, 566, 354, 358, 361, 346, 363, + 364, 359, 573, 577, 578, 368, 579, 586, 594, 601, + 602, 374, 380, 383, 606, 614, 617, 619, 623, 396, + 627, 629, 634, 640, 642, 645, 648, 417, 420, 421, + 652, 655, -1369, 205, -1369, 658, 660, 663, 443, 444, + 448, 450, 180, -1369, 679, 680, 681, 698, 699, 708, + 481, 710, 714, 715, 734, 737, 726, -1369, 740, 514, + 784, -1369, 743, 744, 745, 746, 748, 749, 750, 751, + -1369, 315, -1369, 758, 759, 532, 761, 762, 763, 534, + -1369, 272, 765, 536, 537, 538, 769, -1369, 321, 770, + 771, -43, -1369, 542, 773, 546, 777, 550, 552, 779, + 781, 484, -1369, 797, 556, 68, -1369, -1369, -1369, 798, + 796, 811, 815, 818, -1369, -1369, -1369, 595, 596, 603, + -1369, -1369, 825, 826, 799, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 609, -1369, -1369, -1369, + -1369, -1369, -103, 610, 612, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, 832, 847, 851, -1369, 626, 316, 853, 852, + 630, -1369, -1369, -1369, 870, 871, 872, 874, 873, -1369, + 875, 876, 879, 878, 880, 657, 659, -1369, -1369, -1369, + 881, 882, -1369, 886, 215, 120, -1369, -1369, -1369, -1369, + -1369, 662, 664, 665, 892, 667, 668, -1369, 886, 886, + 886, 669, 897, -1369, 674, -1369, -1369, 886, 675, 676, + 677, 678, 683, 684, 685, -1369, 686, 689, -1369, 690, + 691, 692, -1369, -1369, 693, -1369, -1369, -1369, 886, -1369, + 696, 852, -1369, -1369, 697, -1369, 700, -1369, -1369, 4, + 471, -1369, 905, -1369, -1369, 26, 205, 68, 180, 329, + -1369, -1369, -1369, 647, 647, 922, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, 923, 925, 926, -1369, -1369, + -1369, -1369, -1369, -1369, 927, -1369, -1369, -1369, 123, 928, + 929, 930, 247, -69, 661, 931, -74, 484, -1369, -1369, + 932, -8, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 933, -1369, -1369, -1369, -1369, -1369, -1369, + 800, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, 922, -1369, 172, 175, 181, + -1369, -1369, 207, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + 937, 938, 939, 940, 942, 943, 944, 945, 946, 947, + -1369, 948, 949, -1369, -1369, -1369, -1369, -1369, -1369, 209, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, 210, -1369, 950, 951, -1369, -1369, + 952, 956, -1369, -1369, 954, 958, -1369, -1369, 957, 959, + -1369, -1369, 960, 961, -1369, -1369, -1369, -1369, -1369, -1369, + 100, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 195, -1369, + -1369, 962, 964, -1369, -1369, 963, 967, -1369, 968, 969, + 970, 971, 972, 973, 217, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, 974, 975, 976, -1369, 218, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 977, -1369, 978, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 245, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 965, 982, -1369, 983, + -1369, 984, -1369, -1369, -1369, 246, -1369, -1369, -1369, -1369, + -1369, 297, -1369, 249, -1369, 985, 986, 987, 988, -1369, + 300, -1369, -1369, -1369, -1369, -1369, 724, -1369, 980, 991, + -1369, -1369, 989, -1369, 992, -1369, -1369, -1369, 997, 1001, + 329, -1369, 1004, 1005, 1013, 1014, 733, 786, 791, 790, + 803, 809, 812, 814, 817, 822, 1027, 823, 846, 1054, + 1060, 1075, 1077, 1082, 647, -1369, -1369, 647, -1369, 922, + 726, -1369, 923, 272, -1369, 925, 321, -1369, 926, 1407, + -1369, 927, 123, -1369, 349, 928, -1369, 315, -1369, 929, + -79, -1369, 930, 855, 856, 862, 864, 867, 889, 247, + -1369, 893, 899, 910, -69, -1369, 1100, 1133, 1155, 953, + 1165, 941, 1173, 661, -1369, 661, -1369, 931, 955, 1178, + 966, 1180, -74, -1369, -1369, -20, 932, -1369, 979, 981, + 990, 993, -8, -1369, -1369, 1181, 1185, 784, -1369, 933, + 1186, -1369, -1369, 764, 994, -1369, 995, 998, 999, 1000, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + 331, -1369, -1369, 1002, 1003, 1006, 1007, 1008, -1369, 308, + -1369, 314, -1369, 1184, -1369, 1187, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 318, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, 1190, 1193, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 1191, 1197, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, 1194, -1369, 335, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + 228, 1009, 1010, -1369, 1198, -1369, 1199, -1369, 337, -1369, + -1369, 1011, -1369, 26, -1369, -1369, 1203, -1369, -1369, -1369, + -1369, -1369, 347, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, 1012, 350, -1369, 886, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, 1407, -1369, 1205, + 1206, 1015, 1017, -1369, 349, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 73, 1204, -1369, -1369, -1369, 1208, 996, + 1212, -20, -1369, -1369, -1369, -1369, -1369, 1016, 1021, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 356, + -1369, -1369, -1369, -1369, -1369, -1369, 1211, 1215, -1369, 1214, + -1369, 1022, -1369, -1369, -1369, 1216, 1217, 1218, 1219, 73, + -1369, -64, -1369, 1204, 1225, -1369, 1064, 1024, 1025, 1231, + -1369, -1369, -1369, -1369, -1369, -1369, 357, -1369, -1369, -1369, + -1369, 304, -1369, -1369, -1369, -1369, -1369, 1237, 1241, -64, + -1369, 18, 1225, -1369, -1369, 1240, 1245, -1369, 1028, -1369, + -1369, 1254, 1256, 1258, -1369, 360, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 75, -1369, 1237, -1369, 1259, 1031, 1035, + 1036, 1266, 18, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, 366, -1369, -1369, -1369, -1369, 1040, -1369, -1369, -1369, + 1041, -1369, 1271, 1273, 75, -1369, -1369, -1369, 1048, 1050, + -1369, -1369, -1369 }; const short @@ -5619,18 +5639,18 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 59, 5, 65, 7, 214, 9, 391, 11, 618, 13, - 663, 15, 533, 17, 542, 19, 581, 21, 353, 23, - 867, 25, 899, 27, 46, 39, 0, 0, 0, 0, - 0, 665, 0, 544, 583, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 897, 199, 232, - 0, 0, 0, 685, 687, 689, 0, 0, 230, 243, + 59, 5, 65, 7, 214, 9, 394, 11, 621, 13, + 666, 15, 536, 17, 545, 19, 584, 21, 356, 23, + 870, 25, 902, 27, 46, 39, 0, 0, 0, 0, + 0, 668, 0, 547, 586, 0, 0, 0, 48, 0, + 47, 0, 0, 40, 61, 0, 63, 900, 199, 232, + 0, 0, 0, 688, 690, 692, 0, 0, 230, 243, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 164, 171, - 173, 0, 0, 0, 0, 0, 0, 0, 382, 531, - 572, 0, 156, 177, 471, 650, 652, 0, 0, 0, - 315, 712, 654, 344, 365, 0, 330, 749, 751, 848, - 865, 187, 189, 0, 0, 0, 909, 951, 0, 141, + 173, 0, 0, 0, 0, 0, 0, 0, 385, 534, + 575, 0, 156, 177, 474, 653, 655, 0, 0, 0, + 318, 715, 657, 347, 368, 0, 333, 752, 754, 851, + 868, 187, 189, 0, 0, 0, 912, 954, 0, 141, 0, 67, 70, 71, 72, 73, 74, 108, 109, 110, 111, 112, 75, 104, 137, 138, 93, 94, 95, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, @@ -5640,27 +5660,27 @@ namespace isc { namespace dhcp { 102, 96, 97, 98, 83, 88, 89, 90, 91, 92, 103, 113, 136, 216, 218, 222, 0, 0, 0, 0, 213, 0, 201, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 451, 453, 455, 609, 449, 457, 0, 461, - 463, 465, 459, 707, 448, 396, 397, 398, 399, 400, - 425, 426, 427, 428, 429, 446, 415, 416, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 447, 0, 393, 403, 420, 421, - 422, 404, 406, 407, 408, 409, 411, 412, 413, 405, - 401, 402, 423, 424, 410, 417, 418, 419, 414, 647, - 0, 646, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 626, 627, 628, 629, - 625, 0, 620, 623, 624, 644, 645, 705, 691, 693, - 695, 699, 697, 703, 701, 684, 678, 682, 683, 0, - 666, 667, 679, 680, 681, 675, 670, 676, 672, 673, - 674, 677, 671, 0, 562, 289, 0, 566, 564, 569, - 0, 558, 559, 0, 545, 546, 549, 561, 550, 551, - 552, 568, 553, 554, 555, 556, 557, 600, 0, 0, - 0, 607, 598, 599, 602, 603, 0, 584, 585, 588, - 589, 590, 591, 592, 593, 594, 597, 595, 596, 361, - 363, 358, 0, 355, 359, 360, 0, 884, 0, 887, - 0, 0, 891, 895, 882, 880, 881, 0, 869, 872, - 873, 874, 875, 876, 877, 878, 879, 906, 0, 0, - 901, 904, 905, 45, 50, 0, 37, 43, 0, 64, + 211, 212, 454, 456, 458, 612, 452, 460, 0, 464, + 466, 468, 462, 710, 451, 399, 400, 401, 402, 403, + 428, 429, 430, 431, 432, 449, 418, 419, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 450, 0, 396, 406, 423, 424, + 425, 407, 409, 410, 411, 412, 414, 415, 416, 408, + 404, 405, 426, 427, 413, 420, 421, 422, 417, 650, + 0, 649, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 629, 630, 631, 632, + 628, 0, 623, 626, 627, 647, 648, 708, 694, 696, + 698, 702, 700, 706, 704, 687, 681, 685, 686, 0, + 669, 670, 682, 683, 684, 678, 673, 679, 675, 676, + 677, 680, 674, 0, 565, 290, 0, 569, 567, 572, + 0, 561, 562, 0, 548, 549, 552, 564, 553, 554, + 555, 571, 556, 557, 558, 559, 560, 603, 0, 0, + 0, 610, 601, 602, 605, 606, 0, 587, 588, 591, + 592, 593, 594, 595, 596, 597, 600, 598, 599, 364, + 366, 361, 0, 358, 362, 363, 0, 887, 0, 890, + 0, 0, 894, 898, 885, 883, 884, 0, 872, 875, + 876, 877, 878, 879, 880, 881, 882, 909, 0, 0, + 904, 907, 908, 45, 50, 0, 37, 43, 0, 64, 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, @@ -5670,152 +5690,153 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 69, 66, 0, 0, 0, 0, 0, 0, 0, 203, 215, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 395, 392, 0, 0, - 622, 619, 0, 0, 0, 0, 0, 0, 0, 0, - 664, 669, 534, 0, 0, 0, 0, 0, 0, 0, - 543, 548, 0, 0, 0, 0, 0, 582, 587, 0, - 0, 357, 354, 0, 0, 0, 0, 0, 0, 0, - 0, 871, 868, 0, 0, 903, 900, 49, 41, 0, + 0, 0, 0, 0, 0, 0, 398, 395, 0, 0, + 625, 622, 0, 0, 0, 0, 0, 0, 0, 0, + 667, 672, 537, 0, 0, 0, 0, 0, 0, 0, + 546, 551, 0, 0, 0, 0, 0, 585, 590, 0, + 0, 360, 357, 0, 0, 0, 0, 0, 0, 0, + 0, 874, 871, 0, 0, 906, 903, 49, 41, 0, 0, 0, 0, 0, 158, 159, 160, 0, 0, 0, 197, 198, 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 0, 192, 193, 161, 162, 163, 0, 0, 0, 175, 176, 183, 184, 185, 186, 191, 0, 0, 0, 155, 0, 0, 0, 0, - 0, 467, 468, 469, 0, 0, 0, 0, 0, 748, + 0, 470, 471, 472, 0, 0, 0, 0, 0, 751, 0, 0, 0, 0, 0, 0, 0, 194, 195, 196, 0, 0, 68, 0, 0, 0, 226, 227, 228, 229, - 202, 0, 0, 0, 0, 0, 0, 470, 0, 0, - 0, 0, 0, 394, 0, 649, 621, 0, 0, 0, - 0, 0, 0, 0, 0, 668, 0, 0, 560, 0, - 0, 0, 571, 547, 0, 604, 605, 606, 0, 586, - 0, 0, 356, 883, 0, 886, 0, 889, 890, 0, - 0, 870, 0, 908, 902, 0, 0, 0, 0, 0, - 686, 688, 690, 0, 0, 247, 154, 166, 167, 168, - 169, 170, 165, 172, 174, 384, 535, 574, 157, 179, - 180, 181, 182, 178, 473, 38, 651, 653, 0, 0, - 656, 346, 0, 0, 0, 753, 0, 0, 188, 190, + 202, 0, 0, 0, 0, 0, 0, 473, 0, 0, + 0, 0, 0, 397, 0, 652, 624, 0, 0, 0, + 0, 0, 0, 0, 0, 671, 0, 0, 563, 0, + 0, 0, 574, 550, 0, 607, 608, 609, 0, 589, + 0, 0, 359, 886, 0, 889, 0, 892, 893, 0, + 0, 873, 0, 911, 905, 0, 0, 0, 0, 0, + 689, 691, 693, 0, 0, 247, 154, 166, 167, 168, + 169, 170, 165, 172, 174, 387, 538, 577, 157, 179, + 180, 181, 182, 178, 476, 38, 654, 656, 0, 0, + 659, 349, 0, 0, 0, 756, 0, 0, 188, 190, 0, 0, 51, 217, 220, 221, 219, 224, 225, 223, - 452, 454, 456, 611, 450, 458, 462, 464, 466, 460, - 0, 648, 706, 692, 694, 696, 700, 698, 704, 702, - 563, 290, 567, 565, 570, 601, 608, 362, 364, 885, - 888, 893, 894, 892, 896, 247, 42, 0, 0, 0, - 239, 241, 0, 234, 237, 238, 280, 282, 284, 286, + 455, 457, 459, 614, 453, 461, 465, 467, 469, 463, + 0, 651, 709, 695, 697, 699, 703, 701, 707, 705, + 566, 291, 570, 568, 573, 604, 611, 365, 367, 888, + 891, 896, 897, 895, 899, 247, 42, 0, 0, 0, + 239, 241, 0, 234, 237, 238, 281, 283, 285, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 0, 0, 307, 309, 311, 313, 279, 0, 254, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 252, 0, 248, 249, 389, 0, 385, - 386, 540, 0, 536, 537, 579, 0, 575, 576, 478, - 0, 474, 475, 325, 326, 327, 328, 329, 0, 317, - 320, 321, 322, 323, 324, 717, 0, 714, 661, 0, - 657, 658, 351, 0, 347, 348, 0, 0, 0, 0, - 0, 0, 0, 367, 370, 371, 372, 373, 374, 375, - 0, 0, 0, 340, 0, 332, 335, 336, 337, 338, - 339, 776, 781, 783, 0, 806, 0, 787, 775, 768, - 769, 770, 773, 774, 0, 760, 763, 764, 765, 766, - 771, 772, 767, 758, 0, 754, 755, 0, 860, 0, - 863, 856, 857, 0, 850, 853, 854, 855, 858, 0, - 914, 0, 911, 0, 0, 0, 0, 960, 0, 953, - 956, 957, 958, 959, 53, 616, 0, 612, 613, 710, - 0, 709, 0, 62, 898, 200, 0, 0, 236, 233, + 301, 0, 0, 308, 310, 312, 314, 316, 280, 0, + 254, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 0, 252, 0, 248, 249, 392, + 0, 388, 389, 543, 0, 539, 540, 582, 0, 578, + 579, 481, 0, 477, 478, 328, 329, 330, 331, 332, + 0, 320, 323, 324, 325, 326, 327, 720, 0, 717, + 664, 0, 660, 661, 354, 0, 350, 351, 0, 0, + 0, 0, 0, 0, 0, 370, 373, 374, 375, 376, + 377, 378, 0, 0, 0, 343, 0, 335, 338, 339, + 340, 341, 342, 779, 784, 786, 0, 809, 0, 790, + 778, 771, 772, 773, 776, 777, 0, 763, 766, 767, + 768, 769, 774, 775, 770, 761, 0, 757, 758, 0, + 863, 0, 866, 859, 860, 0, 853, 856, 857, 858, + 861, 0, 917, 0, 914, 0, 0, 0, 0, 963, + 0, 956, 959, 960, 961, 962, 53, 619, 0, 615, + 616, 713, 0, 712, 0, 62, 901, 200, 0, 0, + 236, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 256, 231, 244, 0, 246, 251, 0, 383, 388, - 544, 532, 539, 583, 573, 578, 0, 472, 477, 319, - 316, 719, 716, 713, 665, 655, 660, 0, 345, 350, - 0, 0, 0, 0, 0, 0, 369, 366, 0, 0, - 0, 334, 331, 0, 0, 0, 0, 0, 0, 0, - 762, 750, 0, 752, 757, 0, 0, 0, 0, 852, - 849, 866, 0, 913, 910, 0, 0, 0, 0, 955, - 952, 55, 0, 54, 0, 610, 615, 0, 708, 907, - 0, 0, 235, 0, 0, 0, 0, 288, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 0, 305, 306, - 0, 0, 0, 0, 255, 0, 250, 0, 387, 0, - 538, 0, 577, 530, 502, 503, 504, 486, 487, 507, - 508, 509, 510, 511, 528, 489, 490, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 529, 483, 484, 485, 498, 499, 500, - 501, 495, 496, 497, 0, 480, 488, 505, 506, 491, - 492, 493, 494, 476, 318, 742, 744, 0, 0, 736, - 737, 738, 739, 740, 741, 729, 730, 734, 735, 731, - 732, 733, 0, 720, 721, 724, 725, 726, 727, 728, - 715, 0, 659, 0, 349, 376, 377, 378, 379, 380, - 381, 368, 341, 342, 343, 333, 0, 0, 0, 785, - 0, 786, 0, 761, 0, 756, 859, 0, 862, 0, - 851, 929, 0, 927, 925, 919, 923, 924, 0, 916, - 921, 922, 920, 912, 961, 962, 963, 964, 954, 52, - 57, 0, 614, 0, 240, 242, 281, 283, 285, 287, - 302, 303, 304, 301, 308, 310, 312, 314, 253, 390, - 541, 580, 482, 479, 0, 0, 0, 0, 718, 723, - 662, 352, 778, 779, 780, 777, 782, 784, 0, 789, - 759, 861, 864, 0, 0, 0, 918, 915, 56, 617, - 711, 481, 0, 0, 746, 747, 722, 818, 821, 823, - 825, 817, 816, 815, 0, 808, 811, 812, 813, 814, - 794, 0, 790, 791, 0, 926, 0, 917, 743, 745, - 0, 0, 0, 0, 810, 807, 0, 788, 793, 0, - 928, 0, 0, 0, 0, 809, 804, 803, 799, 801, - 802, 0, 796, 800, 792, 934, 0, 931, 820, 819, - 822, 824, 827, 0, 798, 795, 0, 933, 930, 832, - 0, 828, 829, 0, 797, 944, 0, 0, 0, 949, - 0, 936, 939, 940, 941, 942, 943, 932, 0, 826, - 831, 805, 0, 0, 0, 0, 0, 938, 935, 844, - 846, 843, 837, 839, 841, 842, 0, 834, 838, 840, - 830, 0, 946, 947, 948, 0, 937, 0, 0, 836, - 833, 945, 950, 0, 0, 835, 845, 847 + 0, 0, 0, 0, 256, 231, 244, 0, 246, 251, + 0, 386, 391, 547, 535, 542, 586, 576, 581, 0, + 475, 480, 322, 319, 722, 719, 716, 668, 658, 663, + 0, 348, 353, 0, 0, 0, 0, 0, 0, 372, + 369, 0, 0, 0, 337, 334, 0, 0, 0, 0, + 0, 0, 0, 765, 753, 0, 755, 760, 0, 0, + 0, 0, 855, 852, 869, 0, 916, 913, 0, 0, + 0, 0, 958, 955, 55, 0, 54, 0, 613, 618, + 0, 711, 910, 0, 0, 235, 0, 0, 0, 0, + 289, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 306, 307, 0, 0, 0, 0, 0, 255, 0, + 250, 0, 390, 0, 541, 0, 580, 533, 505, 506, + 507, 489, 490, 510, 511, 512, 513, 514, 531, 492, + 493, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 532, 486, 487, + 488, 501, 502, 503, 504, 498, 499, 500, 0, 483, + 491, 508, 509, 494, 495, 496, 497, 479, 321, 745, + 747, 0, 0, 739, 740, 741, 742, 743, 744, 732, + 733, 737, 738, 734, 735, 736, 0, 723, 724, 727, + 728, 729, 730, 731, 718, 0, 662, 0, 352, 379, + 380, 381, 382, 383, 384, 371, 344, 345, 346, 336, + 0, 0, 0, 788, 0, 789, 0, 764, 0, 759, + 862, 0, 865, 0, 854, 932, 0, 930, 928, 922, + 926, 927, 0, 919, 924, 925, 923, 915, 964, 965, + 966, 967, 957, 52, 57, 0, 617, 0, 240, 242, + 282, 284, 286, 288, 303, 304, 305, 302, 309, 311, + 313, 315, 317, 253, 393, 544, 583, 485, 482, 0, + 0, 0, 0, 721, 726, 665, 355, 781, 782, 783, + 780, 785, 787, 0, 792, 762, 864, 867, 0, 0, + 0, 921, 918, 56, 620, 714, 484, 0, 0, 749, + 750, 725, 821, 824, 826, 828, 820, 819, 818, 0, + 811, 814, 815, 816, 817, 797, 0, 793, 794, 0, + 929, 0, 920, 746, 748, 0, 0, 0, 0, 813, + 810, 0, 791, 796, 0, 931, 0, 0, 0, 0, + 812, 807, 806, 802, 804, 805, 0, 799, 803, 795, + 937, 0, 934, 823, 822, 825, 827, 830, 0, 801, + 798, 0, 936, 933, 835, 0, 831, 832, 0, 800, + 947, 0, 0, 0, 952, 0, 939, 942, 943, 944, + 945, 946, 935, 0, 829, 834, 808, 0, 0, 0, + 0, 0, 941, 938, 847, 849, 846, 840, 842, 844, + 845, 0, 837, 841, 843, 833, 0, 949, 950, 951, + 0, 940, 0, 0, 839, 836, 948, 953, 0, 0, + 838, 848, 850 }; const short Dhcp4Parser::yypgoto_[] = { - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -59, -1401, -628, -1401, 605, - -1401, -1401, -1401, -1401, -1401, -1401, -665, -1401, -1401, -1401, - -67, -1401, -1401, -1401, -1401, -1401, -1401, -1401, 587, 805, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -59, -1369, -617, -1369, 553, + -1369, -1369, -1369, -1369, -1369, -1369, -640, -1369, -1369, -1369, + -67, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 540, 754, 16, 31, 33, -26, 84, 86, 87, 89, 91, 92, - -1401, -1401, -1401, -1401, 94, -1401, -1401, 97, 102, -13, - 13, 41, 51, -1401, -1401, 53, -1401, 56, -1401, 59, - 104, 64, -1401, -1401, 66, 69, 74, 76, 79, -1401, - 81, -1401, 105, -1401, -1401, -1401, -1401, -1401, 43, -1401, - -1401, -1401, 594, 802, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, 312, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 512, -1401, 295, -1401, -738, 298, -1401, -1401, - -1400, -1401, -1370, -1401, -1401, -1401, -1401, -63, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -770, -1401, -769, -1401, -766, -1401, -1401, - -1401, -1401, -1401, -1401, 279, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, 255, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, 275, -1401, -1401, -1401, 280, 767, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 270, -1401, -1401, -1401, -1401, -1401, - -1401, -1049, -1401, -1401, -1401, 300, -1401, -1401, -1401, 310, - 808, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1047, - -1401, -29, -1401, -18, -1401, -4, -1401, 5, -1401, 107, - 110, 112, -1401, -1401, -1401, -1401, -1401, 301, -1401, -1401, - 58, -60, -1401, -1401, -1401, -1401, -1401, 311, -1401, -1401, - -1401, 314, -1401, 785, -1401, -34, -1401, -1401, -1401, -1401, - -1401, -27, -1401, -1401, -1401, -1401, -1401, -32, -1401, -1401, - -1401, 315, -1401, -1401, -1401, 319, -1401, 784, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 249, -1401, -1401, -1401, 259, 830, -1401, -1401, - -1401, -44, -1401, 3, -1401, -56, -1401, -1401, -1401, 313, - -1401, -1401, -1401, 320, -1401, 814, -48, -1401, -7, -1401, - 15, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1046, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 323, -1401, -1401, -1401, - 68, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, 316, -1401, 321, 302, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, 19, -1401, -1401, 1, -1401, -1401, -1401, -1401, - -1401, 26, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -22, -1401, -1401, -41, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 317, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, 640, 831, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, 674, 836, -1401, -1401, -1401, -1401, - -1401, -1401, 322, -1401, -1401, 93, -1401, -1401, -1401, -1401, - -1401, -1401, 21, -1401, -1401, -12, -1401, -1401, -1401, -1401, - -1401, -1401, -1401, -1401, -1401, -1401, 326, -1401, -1401, -1401, - -1401 + -1369, -1369, -1369, -1369, 94, -1369, -1369, 97, 102, -13, + 13, 41, 51, -1369, -1369, 53, -1369, 56, -1369, 59, + 104, 64, -1369, -1369, 66, 69, 74, 76, 79, -1369, + 81, -1369, 105, -1369, -1369, -1369, -1369, -1369, 43, -1369, + -1369, -1369, 535, 752, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 260, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, 463, -1369, 223, -1369, -738, 239, -1369, -1369, + -1368, -1369, -1363, -1369, -1369, -1369, -1369, -63, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -770, -1369, -769, -1369, -766, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 224, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, 201, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, 219, -1369, -1369, -1369, 220, 711, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 216, -1369, -1369, -1369, + -1369, -1369, -1369, -1052, -1369, -1369, -1369, 241, -1369, -1369, + -1369, 248, 753, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1050, -1369, -29, -1369, -18, -1369, -4, -1369, 5, + -1369, 107, 110, 112, -1369, -1369, -1369, -1369, -1369, 235, + -1369, -1369, -10, -60, -1369, -1369, -1369, -1369, -1369, 250, + -1369, -1369, -1369, 253, -1369, 730, -1369, -34, -1369, -1369, + -1369, -1369, -1369, -27, -1369, -1369, -1369, -1369, -1369, -32, + -1369, -1369, -1369, 251, -1369, -1369, -1369, 255, -1369, 735, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, 196, -1369, -1369, -1369, 197, 766, + -1369, -1369, -1369, -44, -1369, 3, -1369, -56, -1369, -1369, + -1369, 264, -1369, -1369, -1369, 254, -1369, 757, -48, -1369, + -7, -1369, 15, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1049, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 263, -1369, + -1369, -1369, 10, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, 222, -1369, 236, + 242, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -36, -1369, -1369, -58, -1369, -1369, + -1369, -1369, -1369, -30, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -83, -1369, -1369, -111, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 244, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, 567, 760, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, 615, 767, -1369, -1369, + -1369, -1369, -1369, -1369, 243, -1369, -1369, 22, -1369, -1369, + -1369, -1369, -1369, -1369, -41, -1369, -1369, -78, -1369, -1369, + -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 256, -1369, + -1369, -1369, -1369 }; const short @@ -5823,8 +5844,8 @@ namespace isc { namespace dhcp { { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 776, - 82, 83, 39, 64, 79, 80, 793, 1014, 1122, 1123, - 867, 41, 66, 85, 458, 86, 43, 67, 160, 161, + 82, 83, 39, 64, 79, 80, 793, 1016, 1125, 1126, + 868, 41, 66, 85, 458, 86, 43, 67, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 486, 174, 175, 506, 176, 177, 178, 179, 180, 181, 182, 492, 762, 183, 493, 184, 494, 185, @@ -5832,207 +5853,210 @@ namespace isc { namespace dhcp { 193, 526, 194, 195, 196, 197, 198, 199, 200, 201, 202, 462, 241, 242, 45, 68, 243, 535, 244, 536, 796, 245, 537, 799, 246, 247, 248, 249, 203, 472, - 204, 463, 842, 843, 844, 1026, 845, 1027, 205, 473, - 206, 474, 894, 895, 896, 1054, 868, 869, 870, 1030, - 871, 1031, 872, 1032, 873, 1033, 874, 875, 574, 876, - 877, 878, 879, 880, 881, 882, 883, 884, 885, 1044, - 1303, 886, 887, 888, 1047, 889, 1048, 890, 1049, 891, - 1050, 207, 514, 918, 919, 920, 921, 922, 923, 924, - 208, 520, 954, 955, 956, 957, 958, 209, 517, 933, - 934, 935, 1077, 59, 75, 422, 423, 424, 589, 425, - 590, 210, 518, 942, 943, 944, 945, 946, 947, 948, - 949, 211, 502, 898, 899, 900, 1057, 47, 69, 295, - 296, 297, 548, 298, 544, 299, 545, 300, 546, 301, - 549, 302, 554, 303, 551, 304, 552, 305, 553, 212, - 213, 214, 309, 215, 508, 910, 911, 912, 1066, 1204, - 1205, 216, 503, 53, 72, 902, 903, 904, 1060, 55, - 73, 383, 384, 385, 386, 387, 388, 389, 573, 390, - 577, 391, 576, 392, 393, 578, 394, 217, 504, 906, - 907, 908, 1063, 57, 74, 406, 407, 408, 409, 410, - 582, 411, 412, 413, 414, 415, 416, 586, 311, 547, - 1016, 1017, 1018, 1124, 49, 70, 341, 342, 343, 558, - 344, 218, 509, 219, 510, 220, 516, 929, 930, 931, - 1074, 51, 71, 359, 360, 361, 221, 467, 222, 468, - 223, 469, 365, 563, 366, 564, 367, 565, 368, 567, - 369, 566, 370, 569, 371, 568, 372, 562, 318, 555, - 1020, 1021, 1127, 224, 515, 926, 927, 1071, 1232, 1233, - 1234, 1235, 1236, 1314, 1237, 1315, 1238, 1239, 225, 226, - 521, 227, 522, 984, 985, 986, 1102, 974, 975, 976, - 1093, 1325, 977, 1094, 978, 1095, 979, 980, 981, 1099, - 1361, 1362, 1363, 1376, 1391, 1392, 1393, 1403, 982, 1097, - 1354, 1355, 1356, 1370, 1399, 1357, 1371, 1358, 1372, 1359, - 1373, 1410, 1411, 1412, 1428, 1446, 1447, 1448, 1457, 1449, - 1458, 228, 523, 993, 994, 995, 996, 1106, 997, 998, - 1108, 229, 524, 61, 76, 437, 438, 439, 440, 594, - 441, 442, 596, 443, 444, 445, 599, 833, 446, 600, - 230, 461, 63, 77, 449, 450, 451, 603, 452, 231, - 530, 1001, 1002, 1112, 1278, 1279, 1280, 1281, 1335, 1282, - 1333, 1396, 1397, 1406, 1420, 1421, 1422, 1432, 1423, 1424, - 1425, 1426, 1436, 232, 531, 1008, 1009, 1010, 1011, 1012, - 1013 + 204, 463, 842, 843, 844, 1028, 845, 1029, 205, 473, + 206, 474, 896, 897, 898, 1057, 869, 870, 871, 1032, + 872, 1033, 873, 1034, 874, 1035, 875, 876, 574, 877, + 878, 879, 880, 881, 882, 883, 884, 885, 886, 1046, + 1307, 887, 888, 889, 1049, 890, 1050, 891, 1051, 892, + 1052, 893, 1053, 207, 514, 920, 921, 922, 923, 924, + 925, 926, 208, 520, 956, 957, 958, 959, 960, 209, + 517, 935, 936, 937, 1080, 59, 75, 422, 423, 424, + 589, 425, 590, 210, 518, 944, 945, 946, 947, 948, + 949, 950, 951, 211, 502, 900, 901, 902, 1060, 47, + 69, 295, 296, 297, 548, 298, 544, 299, 545, 300, + 546, 301, 549, 302, 554, 303, 551, 304, 552, 305, + 553, 212, 213, 214, 309, 215, 508, 912, 913, 914, + 1069, 1208, 1209, 216, 503, 53, 72, 904, 905, 906, + 1063, 55, 73, 383, 384, 385, 386, 387, 388, 389, + 573, 390, 577, 391, 576, 392, 393, 578, 394, 217, + 504, 908, 909, 910, 1066, 57, 74, 406, 407, 408, + 409, 410, 582, 411, 412, 413, 414, 415, 416, 586, + 311, 547, 1018, 1019, 1020, 1127, 49, 70, 341, 342, + 343, 558, 344, 218, 509, 219, 510, 220, 516, 931, + 932, 933, 1077, 51, 71, 359, 360, 361, 221, 467, + 222, 468, 223, 469, 365, 563, 366, 564, 367, 565, + 368, 567, 369, 566, 370, 569, 371, 568, 372, 562, + 318, 555, 1022, 1023, 1130, 224, 515, 928, 929, 1074, + 1236, 1237, 1238, 1239, 1240, 1319, 1241, 1320, 1242, 1243, + 225, 226, 521, 227, 522, 986, 987, 988, 1105, 976, + 977, 978, 1096, 1330, 979, 1097, 980, 1098, 981, 982, + 983, 1102, 1366, 1367, 1368, 1381, 1396, 1397, 1398, 1408, + 984, 1100, 1359, 1360, 1361, 1375, 1404, 1362, 1376, 1363, + 1377, 1364, 1378, 1415, 1416, 1417, 1433, 1451, 1452, 1453, + 1462, 1454, 1463, 228, 523, 995, 996, 997, 998, 1109, + 999, 1000, 1111, 229, 524, 61, 76, 437, 438, 439, + 440, 594, 441, 442, 596, 443, 444, 445, 599, 833, + 446, 600, 230, 461, 63, 77, 449, 450, 451, 603, + 452, 231, 530, 1003, 1004, 1115, 1282, 1283, 1284, 1285, + 1340, 1286, 1338, 1401, 1402, 1411, 1425, 1426, 1427, 1437, + 1428, 1429, 1430, 1431, 1441, 232, 531, 1010, 1011, 1012, + 1013, 1014, 1015 }; const short Dhcp4Parser::yytable_[] = { 159, 240, 264, 321, 355, 78, 381, 402, 421, 434, - 382, 403, 373, 314, 969, 970, 892, 1195, 971, 1196, - 1212, 315, 28, 362, 250, 312, 345, 357, 1442, 395, - 417, 775, 435, 806, 807, 808, 831, 310, 340, 356, - 404, 336, 812, 268, 29, 459, 30, 405, 31, 81, - 460, 40, 337, 419, 420, 42, 278, 322, 1443, 1442, - 375, 44, 316, 826, 363, 533, 338, 135, 136, 453, - 534, 251, 313, 346, 358, 339, 396, 418, 375, 436, - 135, 136, 279, 323, 317, 265, 364, 233, 234, 1443, - 1347, 235, 447, 448, 236, 237, 238, 239, 135, 136, - 266, 542, 267, 775, 419, 420, 543, 950, 951, 952, - 280, 324, 294, 757, 758, 759, 760, 454, 374, 556, - 281, 325, 282, 326, 557, 283, 327, 560, 284, 328, - 794, 795, 561, 286, 329, 287, 330, 158, 288, 331, - 46, 1386, 591, 289, 332, 290, 333, 592, 291, 334, - 292, 335, 761, 269, 601, 270, 271, 605, 272, 602, - 273, 274, 606, 275, 48, 533, 276, 135, 136, 1069, - 1023, 277, 1070, 285, 293, 375, 306, 376, 377, 307, - 158, 308, 378, 379, 380, 1271, 605, 1272, 1273, 135, - 136, 1024, 542, 158, 84, 135, 136, 1025, 91, 92, - 93, 94, 95, 96, 1028, 847, 848, 797, 798, 1029, - 832, 158, 1003, 1004, 1005, 1006, 50, 1072, 129, 1051, - 1073, 1348, 1349, 1350, 1052, 913, 914, 915, 916, 158, - 917, 52, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 54, 93, 94, 95, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 56, - 252, 253, 254, 1195, 130, 1196, 1212, 58, 1051, 32, - 33, 34, 35, 1053, 840, 841, 132, 133, 135, 136, - 158, 135, 136, 255, 60, 135, 136, 256, 257, 258, - 137, 138, 139, 1086, 259, 260, 261, 455, 1087, 1091, - 1100, 262, 158, 142, 1092, 1101, 1113, 130, 158, 1114, - 1109, 263, 456, 62, 1415, 1110, 1155, 1416, 1417, 1418, - 1419, 457, 91, 92, 93, 94, 95, 96, 135, 136, - 969, 970, 969, 970, 971, 601, 971, 347, 1439, 1440, - 1111, 987, 988, 989, 1300, 1301, 1302, 348, 349, 350, - 351, 352, 353, 354, 464, 465, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 151, 152, 466, 470, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 471, 1119, 570, 1051, 130, 375, - 1120, 990, 1308, 475, 158, 607, 608, 476, 158, 477, - 132, 133, 375, 397, 376, 377, 398, 399, 400, 135, - 136, 478, 257, 479, 137, 138, 139, 480, 259, 260, - 261, 556, 135, 136, 1312, 262, 1309, 591, 1100, 1313, - 481, 401, 1321, 1330, 1336, 263, 482, 560, 1374, 1337, - 1404, 158, 1339, 1375, 483, 1405, 115, 116, 117, 118, - 119, 120, 121, 484, 123, 124, 125, 126, 936, 937, - 938, 939, 940, 941, 130, 1437, 159, 1459, 1407, 571, - 1438, 1408, 1460, 485, 487, 240, 488, 133, 489, 769, - 770, 771, 772, 490, 319, 135, 136, 491, 495, 264, - 151, 152, 496, 321, 259, 260, 261, 497, 250, 498, - 314, 262, 320, 499, 355, 1322, 1323, 1324, 315, 500, - 501, 505, 312, 511, 381, 512, 345, 513, 382, 519, - 527, 402, 158, 362, 310, 403, 528, 357, 340, 529, - 268, 336, 532, 538, 434, 158, 539, 395, 540, 356, - 541, 550, 337, 278, 417, 251, 559, 322, 572, 316, - 575, 579, 580, 581, 404, 583, 338, 435, 584, 313, - 585, 405, 588, 346, 363, 339, 151, 152, 587, 279, - 593, 317, 265, 323, 358, 595, 597, 598, 604, 609, - 610, 611, 612, 613, 396, 614, 364, 266, 615, 267, - 616, 418, 617, 618, 619, 621, 622, 280, 158, 294, - 623, 324, 135, 136, 436, 620, 624, 281, 625, 282, - 626, 325, 283, 326, 627, 284, 327, 628, 629, 328, - 286, 630, 287, 631, 329, 288, 330, 634, 1340, 331, - 289, 632, 290, 633, 332, 291, 333, 292, 636, 334, - 269, 335, 270, 271, 639, 272, 635, 273, 274, 640, - 275, 637, 641, 276, 638, 642, 643, 644, 277, 647, - 285, 293, 645, 306, 648, 652, 307, 649, 308, 426, - 427, 428, 429, 430, 431, 432, 433, 646, 650, 159, - 653, 240, 654, 651, 655, 656, 836, 846, 847, 848, + 382, 403, 373, 314, 971, 972, 894, 1199, 973, 1200, + 1216, 315, 831, 362, 250, 312, 345, 357, 28, 395, + 417, 29, 435, 30, 375, 31, 40, 310, 340, 356, + 404, 336, 775, 268, 135, 136, 42, 405, 459, 135, + 136, 44, 337, 460, 135, 136, 278, 322, 806, 807, + 808, 46, 316, 81, 363, 1447, 338, 812, 419, 420, + 1448, 251, 313, 346, 358, 339, 396, 418, 375, 436, + 447, 448, 279, 323, 317, 265, 364, 48, 826, 952, + 953, 954, 757, 758, 759, 760, 1447, 50, 135, 136, + 266, 1448, 267, 1072, 419, 420, 1073, 989, 990, 991, + 280, 324, 294, 1352, 775, 1391, 847, 848, 52, 533, + 281, 325, 282, 326, 534, 283, 327, 542, 284, 328, + 129, 761, 543, 286, 329, 287, 330, 556, 288, 331, + 797, 798, 557, 289, 332, 290, 333, 54, 291, 334, + 292, 335, 158, 269, 560, 270, 271, 992, 272, 561, + 273, 274, 158, 275, 591, 601, 276, 158, 84, 592, + 602, 277, 605, 285, 293, 533, 306, 606, 605, 307, + 1025, 308, 453, 1026, 542, 1275, 56, 1276, 1277, 1027, + 58, 135, 136, 135, 136, 233, 234, 832, 1075, 235, + 60, 1076, 236, 237, 238, 239, 1005, 1006, 1007, 1008, + 1030, 158, 1054, 1054, 454, 1031, 87, 1055, 1056, 88, + 1089, 1094, 456, 158, 1420, 1090, 1095, 1421, 1422, 1423, + 1424, 89, 794, 795, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 1353, 1354, 1355, 1103, 1112, + 1444, 1445, 1116, 1104, 1113, 1117, 455, 32, 33, 34, + 35, 915, 916, 917, 918, 1199, 919, 1200, 1216, 62, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 135, 136, + 601, 129, 130, 1122, 158, 1114, 158, 1412, 1123, 457, + 1413, 1054, 374, 131, 132, 133, 1313, 556, 570, 1159, + 134, 1317, 1314, 135, 136, 571, 1318, 464, 137, 138, + 139, 140, 141, 971, 972, 971, 972, 973, 591, 973, + 1103, 142, 465, 1326, 466, 1335, 470, 93, 94, 95, + 1341, 143, 471, 560, 144, 1342, 840, 841, 1344, 1379, + 1409, 145, 146, 1442, 1380, 1410, 147, 148, 1443, 1464, + 375, 475, 376, 377, 1465, 476, 477, 378, 379, 380, + 478, 93, 94, 95, 96, 149, 1304, 1305, 1306, 150, + 135, 136, 1327, 1328, 1329, 607, 608, 938, 939, 940, + 941, 942, 943, 479, 151, 152, 153, 154, 155, 156, + 480, 158, 130, 481, 101, 102, 103, 482, 157, 375, + 397, 376, 377, 398, 399, 400, 483, 769, 770, 771, + 772, 484, 485, 135, 136, 487, 158, 488, 489, 135, + 136, 490, 347, 491, 495, 129, 130, 375, 401, 496, + 497, 498, 348, 349, 350, 351, 352, 353, 354, 499, + 500, 501, 505, 511, 512, 513, 159, 135, 136, 519, + 527, 528, 529, 532, 538, 240, 539, 540, 541, 1219, + 1220, 1221, 1222, 550, 559, 572, 575, 579, 581, 264, + 609, 583, 584, 321, 580, 585, 588, 587, 250, 593, + 314, 595, 597, 158, 355, 598, 604, 610, 315, 611, + 612, 614, 312, 613, 381, 615, 345, 616, 382, 617, + 618, 402, 619, 362, 310, 403, 620, 357, 340, 621, + 268, 336, 622, 623, 434, 624, 630, 395, 631, 356, + 632, 625, 337, 278, 417, 251, 158, 322, 636, 316, + 633, 626, 158, 642, 404, 643, 338, 435, 627, 313, + 628, 405, 629, 346, 363, 339, 634, 639, 635, 279, + 644, 317, 265, 323, 358, 637, 638, 652, 648, 640, + 158, 653, 654, 656, 396, 641, 364, 266, 645, 267, + 657, 418, 646, 651, 647, 649, 650, 280, 658, 294, + 655, 324, 135, 136, 436, 659, 660, 281, 661, 282, + 664, 325, 283, 326, 662, 284, 327, 663, 665, 328, + 286, 666, 287, 667, 329, 288, 330, 668, 669, 331, + 289, 670, 290, 671, 332, 291, 333, 292, 672, 334, + 269, 335, 270, 271, 673, 272, 674, 273, 274, 675, + 275, 677, 676, 276, 678, 679, 680, 1345, 277, 681, + 285, 293, 683, 306, 684, 834, 307, 685, 308, 426, + 427, 428, 429, 430, 431, 432, 433, 686, 687, 159, + 688, 240, 689, 691, 692, 693, 836, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, - 859, 860, 657, 658, 250, 861, 862, 863, 864, 865, - 866, 659, 660, 661, 662, 158, 953, 968, 664, 663, - 434, 665, 666, 667, 1007, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 87, 959, - 972, 88, 991, 435, 375, 668, 670, 671, 669, 672, - 673, 251, 674, 89, 675, 676, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 680, 677, 681, - 683, 678, 679, 684, 685, 691, 686, 692, 687, 688, - 689, 693, 694, 695, 696, 698, 960, 973, 697, 992, + 859, 860, 694, 695, 250, 861, 862, 863, 864, 865, + 866, 867, 696, 697, 698, 158, 955, 970, 699, 700, + 434, 863, 864, 865, 1009, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 701, 961, + 974, 702, 993, 435, 704, 375, 705, 707, 708, 709, + 710, 251, 711, 712, 713, 714, 91, 92, 93, 94, + 95, 96, 716, 717, 718, 719, 720, 721, 722, 724, + 725, 726, 727, 728, 730, 731, 733, 734, 735, 135, + 136, 736, 737, 739, 738, 740, 962, 975, 743, 994, 436, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 699, - 700, 701, 129, 130, 702, 704, 705, 707, 708, 709, - 710, 711, 712, 713, 131, 132, 133, 714, 716, 717, - 718, 134, 719, 720, 135, 136, 721, 722, 724, 137, - 138, 139, 140, 141, 725, 726, 727, 728, 863, 864, - 865, 730, 142, 731, 733, 734, 735, 736, 737, 738, - 739, 740, 143, 742, 743, 144, 745, 158, 746, 750, - 747, 748, 145, 146, 749, 751, 752, 147, 148, 753, - 754, 755, 756, 763, 764, 765, 766, 767, 768, 774, - 30, 777, 778, 779, 780, 781, 149, 788, 782, 783, - 150, 784, 785, 786, 789, 135, 136, 787, 790, 791, - 792, 800, 801, 802, 803, 151, 152, 153, 154, 155, - 156, 804, 805, 809, 810, 811, 813, 834, 835, 157, - 814, 815, 816, 817, 893, 818, 819, 897, 901, 905, - 820, 821, 822, 823, 824, 825, 827, 158, 829, 830, - 961, 909, 925, 928, 962, 963, 964, 965, 932, 983, - 1000, 1015, 1034, 1035, 966, 967, 1019, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1045, 1046, 1056, 1121, 1055, - 264, 1058, 1059, 381, 1061, 1062, 402, 382, 1065, 1163, - 403, 314, 1064, 1194, 1219, 1067, 1068, 355, 1224, 315, - 421, 1225, 1075, 312, 1076, 1078, 395, 1079, 1209, 417, - 1080, 1081, 1207, 1229, 953, 310, 362, 1227, 158, 404, - 357, 268, 1082, 968, 1206, 968, 405, 1197, 1083, 1226, - 1167, 1084, 356, 1085, 278, 1274, 1088, 959, 1198, 1275, - 316, 1089, 1007, 1177, 1090, 1096, 972, 321, 972, 1210, - 313, 1098, 1199, 396, 1230, 991, 418, 363, 1276, 1208, - 279, 1200, 317, 265, 1228, 1103, 1104, 358, 1105, 1178, - 345, 1211, 1164, 1107, 1115, 1116, 1231, 1220, 266, 364, - 267, 1117, 340, 1118, 960, 336, 1125, 1165, 280, 1166, - 294, 1126, 1221, 973, 1222, 973, 337, 1179, 281, 1193, - 282, 322, 992, 283, 1223, 1277, 284, 1180, 1128, 1181, - 338, 286, 1182, 287, 1129, 1183, 288, 346, 1130, 339, - 1185, 289, 1186, 290, 1131, 1187, 291, 323, 292, 1133, - 1188, 269, 1189, 270, 271, 1190, 272, 1191, 273, 274, - 1168, 275, 1169, 1170, 276, 1171, 1134, 1172, 1173, 277, - 1174, 285, 293, 1175, 306, 324, 1135, 307, 1176, 308, - 1184, 1192, 1136, 1201, 1137, 325, 1202, 326, 1203, 1138, - 327, 1139, 1140, 328, 1141, 1147, 1150, 1151, 329, 1142, - 330, 1143, 1148, 331, 1152, 1153, 1144, 1145, 332, 1256, - 333, 1146, 1149, 334, 1257, 335, 1258, 1260, 1262, 1267, - 1332, 1269, 1289, 1290, 1329, 1293, 1310, 1245, 1246, 1316, - 1311, 1247, 1248, 1317, 1249, 1250, 1318, 1319, 1320, 1253, - 1252, 1254, 1259, 1328, 1334, 1261, 1268, 1266, 1342, 1343, - 1284, 1285, 1294, 1286, 1360, 1163, 1287, 1364, 1295, 1194, - 1296, 1297, 1219, 1298, 1299, 1304, 1224, 1305, 1366, 1225, - 1306, 1351, 1307, 1326, 1209, 1327, 1331, 1377, 1207, 1274, - 1338, 1229, 1378, 1275, 1344, 1227, 1345, 1365, 1368, 1369, - 1206, 1379, 1380, 1197, 1352, 1381, 1167, 1226, 1382, 1383, - 1384, 1398, 1276, 1400, 1198, 1395, 1401, 1402, 1409, 1177, - 1413, 1429, 1430, 1452, 1433, 1210, 1431, 1351, 1199, 1387, - 1434, 1435, 1230, 1388, 1451, 1208, 1453, 1200, 1455, 1454, - 1463, 1461, 1228, 1462, 1464, 1178, 1466, 1211, 1164, 1467, - 1352, 1353, 1389, 837, 1231, 1220, 828, 1387, 682, 1277, - 1132, 1388, 839, 1165, 690, 1166, 1255, 1022, 1214, 1154, - 1221, 1156, 1222, 1179, 1244, 1193, 1251, 1243, 732, 1158, - 1389, 1441, 1223, 1180, 703, 1181, 723, 1157, 1182, 1213, - 1341, 1183, 729, 1160, 1159, 1292, 1185, 1353, 1186, 1390, - 1162, 1187, 1161, 1291, 1444, 715, 1188, 1346, 1189, 1242, - 706, 1190, 1441, 1191, 1241, 1240, 1168, 1394, 1169, 1170, - 1385, 1171, 1263, 1172, 1173, 1414, 1174, 1390, 1450, 1175, - 93, 94, 95, 96, 1176, 1444, 1184, 1192, 1465, 1201, - 1265, 838, 1202, 1264, 1203, 1456, 1270, 999, 1427, 1367, - 0, 1445, 741, 0, 0, 1283, 0, 0, 0, 0, - 0, 744, 101, 102, 103, 1288, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1445, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 130, 375, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 135, 136, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1215, 1216, 1217, - 1218, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 110, 742, 745, 746, 755, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 747, 252, + 253, 254, 748, 130, 963, 749, 750, 751, 964, 965, + 966, 967, 753, 754, 752, 132, 133, 765, 968, 969, + 756, 763, 255, 764, 135, 136, 256, 257, 258, 137, + 138, 139, 766, 259, 260, 261, 767, 768, 774, 30, + 262, 777, 142, 115, 116, 117, 118, 119, 120, 121, + 263, 123, 124, 125, 126, 778, 779, 780, 158, 781, + 782, 130, 783, 784, 785, 786, 790, 787, 788, 791, + 789, 792, 158, 800, 133, 801, 802, 803, 804, 805, + 809, 319, 135, 136, 810, 811, 813, 814, 815, 816, + 835, 259, 260, 261, 817, 818, 819, 820, 262, 320, + 821, 822, 823, 824, 825, 151, 152, 827, 829, 895, + 899, 830, 903, 907, 911, 927, 930, 934, 985, 1002, + 1017, 1036, 1037, 1038, 1039, 1021, 1040, 1041, 1042, 1043, + 1044, 1045, 1047, 1048, 1059, 1124, 1058, 158, 1061, 1062, + 1064, 1065, 1068, 1067, 1071, 1140, 1070, 1079, 1078, 1081, + 1082, 1106, 1083, 1084, 1085, 1086, 1087, 1088, 1091, 1092, + 1093, 1099, 1101, 151, 152, 1107, 1128, 1108, 1110, 1118, + 1119, 1120, 1121, 264, 1129, 1298, 381, 1131, 1132, 402, + 382, 1133, 1167, 403, 314, 1134, 1198, 1223, 1136, 1137, + 355, 1228, 315, 421, 1229, 158, 312, 1138, 1139, 395, + 1141, 1213, 417, 1142, 1143, 1211, 1233, 955, 310, 362, + 1231, 1150, 404, 357, 268, 1144, 970, 1210, 970, 405, + 1201, 1145, 1230, 1171, 1146, 356, 1147, 278, 1278, 1148, + 961, 1202, 1279, 316, 1149, 1009, 1181, 1151, 1153, 974, + 321, 974, 1214, 313, 1154, 1203, 396, 1234, 993, 418, + 363, 1280, 1212, 279, 1204, 317, 265, 1232, 1152, 1155, + 358, 1156, 1182, 345, 1215, 1168, 1157, 1249, 1250, 1235, + 1224, 266, 364, 267, 1251, 340, 1252, 962, 336, 1253, + 1169, 280, 1170, 294, 1260, 1225, 975, 1226, 975, 337, + 1183, 281, 1197, 282, 322, 994, 283, 1227, 1281, 284, + 1184, 1254, 1185, 338, 286, 1186, 287, 1256, 1187, 288, + 346, 1257, 339, 1189, 289, 1190, 290, 1261, 1191, 291, + 323, 292, 1258, 1192, 269, 1193, 270, 271, 1194, 272, + 1195, 273, 274, 1172, 275, 1173, 1174, 276, 1175, 1262, + 1176, 1177, 277, 1178, 285, 293, 1179, 306, 324, 1264, + 307, 1180, 308, 1188, 1196, 1265, 1205, 1266, 325, 1206, + 326, 1207, 1271, 327, 1273, 1263, 328, 1293, 1294, 1270, + 1297, 329, 1315, 330, 1321, 1316, 331, 1322, 1272, 1323, + 1324, 332, 1325, 333, 1334, 1333, 334, 1339, 335, 1347, + 1348, 1365, 1369, 1288, 1337, 1289, 1371, 1382, 1383, 1384, + 1386, 1387, 1388, 1389, 1290, 1299, 1300, 1291, 1370, 1301, + 1302, 1303, 1400, 1308, 1309, 1403, 1407, 1310, 1311, 1312, + 1331, 1332, 1336, 1343, 1414, 1418, 1434, 1373, 1435, 1349, + 1167, 1350, 1374, 1385, 1198, 1405, 1406, 1223, 1438, 1436, + 1439, 1228, 1440, 1456, 1229, 1457, 1356, 1458, 1459, 1213, + 1460, 1466, 1467, 1211, 1278, 1468, 1233, 1469, 1279, 1471, + 1231, 1472, 1160, 839, 828, 1210, 837, 682, 1201, 1357, + 1135, 1171, 1230, 1158, 690, 1259, 1218, 1280, 1024, 1202, + 1247, 1248, 732, 1162, 1181, 1255, 1217, 1346, 1161, 703, + 1214, 723, 1356, 1203, 1392, 1164, 1163, 1234, 1393, 1166, + 1212, 1165, 1204, 729, 1295, 1296, 706, 1232, 715, 1269, + 1182, 1245, 1215, 1168, 1351, 1357, 1358, 1394, 1244, 1235, + 1224, 1268, 1392, 1246, 1281, 1267, 1393, 1399, 1169, 1390, + 1170, 1419, 1455, 1470, 1001, 1225, 1274, 1226, 1183, 1287, + 1197, 741, 838, 1372, 1461, 1394, 1446, 1227, 1184, 0, + 1185, 1432, 744, 1186, 0, 0, 1187, 0, 1292, 0, + 0, 1189, 1358, 1190, 1395, 0, 1191, 0, 0, 1449, + 0, 1192, 0, 1193, 0, 0, 1194, 1446, 1195, 0, + 0, 1172, 0, 1173, 1174, 0, 1175, 0, 1176, 1177, + 0, 1178, 1395, 0, 1179, 0, 0, 0, 0, 1180, + 1449, 1188, 1196, 0, 1205, 0, 0, 1206, 0, 1207, + 0, 0, 0, 0, 0, 0, 1450, 91, 92, 93, + 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1450, 0, 0, + 0, 0, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 0, 0, 0, 0, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 0, 0, 0, 0, 130, 375, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 133, 0, 0, + 0, 0, 0, 0, 0, 135, 136, 0, 257, 0, + 137, 138, 139, 0, 259, 260, 261, 0, 0, 0, + 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158 @@ -6042,420 +6066,424 @@ namespace isc { namespace dhcp { Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 64, 73, 74, 75, 76, - 73, 74, 72, 69, 784, 784, 754, 1066, 784, 1066, - 1066, 69, 0, 71, 68, 69, 70, 71, 1428, 73, - 74, 659, 76, 698, 699, 700, 18, 69, 70, 71, - 74, 70, 707, 69, 5, 3, 7, 74, 9, 230, - 8, 7, 70, 146, 147, 7, 69, 70, 1428, 1459, - 97, 7, 69, 728, 71, 3, 70, 117, 118, 6, - 8, 68, 69, 70, 71, 70, 73, 74, 97, 76, - 117, 118, 69, 70, 69, 69, 71, 15, 16, 1459, - 40, 19, 12, 13, 22, 23, 24, 25, 117, 118, - 69, 3, 69, 731, 146, 147, 8, 157, 158, 159, - 69, 70, 69, 194, 195, 196, 197, 3, 40, 3, + 73, 74, 72, 69, 784, 784, 754, 1069, 784, 1069, + 1069, 69, 18, 71, 68, 69, 70, 71, 0, 73, + 74, 5, 76, 7, 98, 9, 7, 69, 70, 71, + 74, 70, 659, 69, 118, 119, 7, 74, 3, 118, + 119, 7, 70, 8, 118, 119, 69, 70, 698, 699, + 700, 7, 69, 231, 71, 1433, 70, 707, 147, 148, + 1433, 68, 69, 70, 71, 70, 73, 74, 98, 76, + 12, 13, 69, 70, 69, 69, 71, 7, 728, 158, + 159, 160, 195, 196, 197, 198, 1464, 7, 118, 119, + 69, 1464, 69, 3, 147, 148, 6, 181, 182, 183, + 69, 70, 69, 40, 731, 179, 41, 42, 7, 3, 69, 70, 69, 70, 8, 69, 70, 3, 69, 70, - 17, 18, 8, 69, 70, 69, 70, 230, 69, 70, - 7, 178, 3, 69, 70, 69, 70, 8, 69, 70, - 69, 70, 233, 69, 3, 69, 69, 3, 69, 8, - 69, 69, 8, 69, 7, 3, 69, 117, 118, 3, - 8, 69, 6, 69, 69, 97, 69, 99, 100, 69, - 230, 69, 104, 105, 106, 204, 3, 206, 207, 117, - 118, 8, 3, 230, 10, 117, 118, 8, 30, 31, - 32, 33, 34, 35, 3, 41, 42, 20, 21, 8, - 192, 230, 213, 214, 215, 216, 7, 3, 95, 3, - 6, 171, 172, 173, 8, 137, 138, 139, 140, 230, - 142, 7, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 7, 32, 33, 34, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 7, - 92, 93, 94, 1312, 96, 1312, 1312, 7, 3, 230, - 231, 232, 233, 8, 27, 28, 108, 109, 117, 118, - 230, 117, 118, 115, 7, 117, 118, 119, 120, 121, - 122, 123, 124, 3, 126, 127, 128, 4, 8, 3, - 3, 133, 230, 135, 8, 8, 3, 96, 230, 6, - 3, 143, 8, 7, 205, 8, 1054, 208, 209, 210, - 211, 3, 30, 31, 32, 33, 34, 35, 117, 118, - 1100, 1100, 1102, 1102, 1100, 3, 1102, 126, 174, 175, - 8, 180, 181, 182, 55, 56, 57, 136, 137, 138, - 139, 140, 141, 142, 4, 4, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 198, 199, 4, 4, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 4, 3, 8, 3, 96, 97, - 8, 230, 8, 4, 230, 454, 455, 4, 230, 4, - 108, 109, 97, 98, 99, 100, 101, 102, 103, 117, - 118, 4, 120, 4, 122, 123, 124, 4, 126, 127, - 128, 3, 117, 118, 3, 133, 8, 3, 3, 8, - 4, 126, 8, 8, 3, 143, 4, 3, 3, 8, - 3, 230, 8, 8, 4, 8, 78, 79, 80, 81, - 82, 83, 84, 4, 86, 87, 88, 89, 149, 150, - 151, 152, 153, 154, 96, 3, 533, 3, 3, 3, - 8, 6, 8, 4, 4, 542, 4, 109, 4, 110, - 111, 112, 113, 4, 116, 117, 118, 4, 4, 556, - 198, 199, 4, 560, 126, 127, 128, 4, 542, 4, - 556, 133, 134, 4, 571, 163, 164, 165, 556, 4, - 4, 4, 556, 4, 581, 4, 560, 4, 581, 4, - 4, 588, 230, 571, 556, 588, 4, 571, 560, 4, - 556, 560, 4, 4, 601, 230, 4, 581, 4, 571, - 4, 4, 560, 556, 588, 542, 4, 560, 8, 556, - 4, 4, 8, 3, 588, 4, 560, 601, 4, 556, - 4, 588, 3, 560, 571, 560, 198, 199, 8, 556, - 4, 556, 556, 560, 571, 4, 4, 4, 4, 230, - 4, 4, 4, 4, 581, 233, 571, 556, 233, 556, - 233, 588, 4, 4, 4, 233, 4, 556, 230, 556, - 4, 560, 117, 118, 601, 231, 4, 556, 231, 556, - 231, 560, 556, 560, 231, 556, 560, 231, 231, 560, - 556, 233, 556, 232, 560, 556, 560, 231, 1293, 560, - 556, 232, 556, 232, 560, 556, 560, 556, 4, 560, - 556, 560, 556, 556, 233, 556, 231, 556, 556, 233, - 556, 231, 233, 556, 231, 4, 4, 4, 556, 232, - 556, 556, 233, 556, 231, 4, 556, 231, 556, 184, - 185, 186, 187, 188, 189, 190, 191, 233, 231, 746, - 4, 748, 4, 233, 231, 4, 745, 40, 41, 42, + 96, 234, 8, 69, 70, 69, 70, 3, 69, 70, + 20, 21, 8, 69, 70, 69, 70, 7, 69, 70, + 69, 70, 231, 69, 3, 69, 69, 231, 69, 8, + 69, 69, 231, 69, 3, 3, 69, 231, 10, 8, + 8, 69, 3, 69, 69, 3, 69, 8, 3, 69, + 8, 69, 6, 8, 3, 205, 7, 207, 208, 8, + 7, 118, 119, 118, 119, 15, 16, 193, 3, 19, + 7, 6, 22, 23, 24, 25, 214, 215, 216, 217, + 3, 231, 3, 3, 3, 8, 11, 8, 8, 14, + 3, 3, 8, 231, 206, 8, 8, 209, 210, 211, + 212, 26, 17, 18, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 172, 173, 174, 3, 3, + 175, 176, 3, 8, 8, 6, 4, 231, 232, 233, + 234, 138, 139, 140, 141, 1317, 143, 1317, 1317, 7, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 118, 119, + 3, 96, 97, 3, 231, 8, 231, 3, 8, 3, + 6, 3, 40, 108, 109, 110, 8, 3, 8, 1057, + 115, 3, 8, 118, 119, 3, 8, 4, 123, 124, + 125, 126, 127, 1103, 1103, 1105, 1105, 1103, 3, 1105, + 3, 136, 4, 8, 4, 8, 4, 32, 33, 34, + 3, 146, 4, 3, 149, 8, 27, 28, 8, 3, + 3, 156, 157, 3, 8, 8, 161, 162, 8, 3, + 98, 4, 100, 101, 8, 4, 4, 105, 106, 107, + 4, 32, 33, 34, 35, 180, 55, 56, 57, 184, + 118, 119, 164, 165, 166, 454, 455, 150, 151, 152, + 153, 154, 155, 4, 199, 200, 201, 202, 203, 204, + 4, 231, 97, 4, 65, 66, 67, 4, 213, 98, + 99, 100, 101, 102, 103, 104, 4, 111, 112, 113, + 114, 4, 4, 118, 119, 4, 231, 4, 4, 118, + 119, 4, 127, 4, 4, 96, 97, 98, 127, 4, + 4, 4, 137, 138, 139, 140, 141, 142, 143, 4, + 4, 4, 4, 4, 4, 4, 533, 118, 119, 4, + 4, 4, 4, 4, 4, 542, 4, 4, 4, 130, + 131, 132, 133, 4, 4, 8, 4, 4, 3, 556, + 231, 4, 4, 560, 8, 4, 3, 8, 542, 4, + 556, 4, 4, 231, 571, 4, 4, 4, 556, 4, + 4, 234, 556, 4, 581, 234, 560, 234, 581, 4, + 4, 588, 4, 571, 556, 588, 232, 571, 560, 234, + 556, 560, 4, 4, 601, 4, 234, 581, 233, 571, + 233, 232, 560, 556, 588, 542, 231, 560, 4, 556, + 233, 232, 231, 4, 588, 4, 560, 601, 232, 556, + 232, 588, 232, 560, 571, 560, 232, 234, 232, 556, + 4, 556, 556, 560, 571, 232, 232, 4, 232, 234, + 231, 4, 4, 4, 581, 234, 571, 556, 234, 556, + 4, 588, 234, 234, 233, 232, 232, 556, 4, 556, + 232, 560, 118, 119, 601, 4, 4, 556, 234, 556, + 4, 560, 556, 560, 234, 556, 560, 234, 4, 560, + 556, 4, 556, 4, 560, 556, 560, 4, 232, 560, + 556, 4, 556, 4, 560, 556, 560, 556, 4, 560, + 556, 560, 556, 556, 4, 556, 4, 556, 556, 4, + 556, 234, 4, 556, 234, 234, 4, 1297, 556, 4, + 556, 556, 4, 556, 4, 194, 556, 4, 556, 185, + 186, 187, 188, 189, 190, 191, 192, 234, 234, 746, + 232, 748, 232, 4, 4, 4, 745, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 4, 4, 748, 58, 59, 60, 61, 62, - 63, 4, 4, 233, 233, 230, 783, 784, 4, 233, - 787, 4, 4, 4, 791, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 11, 783, - 784, 14, 786, 787, 97, 4, 4, 4, 231, 4, - 4, 748, 4, 26, 4, 4, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 4, 233, 4, - 4, 233, 233, 4, 4, 4, 233, 4, 233, 231, - 231, 4, 4, 4, 4, 4, 783, 784, 231, 786, - 787, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 4, - 4, 4, 95, 96, 4, 4, 231, 4, 4, 4, - 4, 4, 4, 4, 107, 108, 109, 4, 4, 4, - 231, 114, 4, 4, 117, 118, 4, 233, 4, 122, - 123, 124, 125, 126, 233, 233, 233, 4, 60, 61, - 62, 4, 135, 4, 233, 4, 231, 4, 231, 231, - 4, 4, 145, 4, 231, 148, 4, 230, 7, 230, - 7, 7, 155, 156, 7, 230, 230, 160, 161, 7, - 7, 5, 230, 230, 230, 5, 5, 5, 230, 5, - 7, 230, 5, 5, 5, 5, 179, 230, 7, 7, - 183, 7, 5, 7, 230, 117, 118, 7, 5, 7, - 5, 230, 230, 230, 5, 198, 199, 200, 201, 202, - 203, 230, 230, 230, 7, 230, 230, 193, 5, 212, - 230, 230, 230, 230, 7, 230, 230, 7, 7, 7, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 162, 7, 7, 7, 166, 167, 168, 169, 7, 7, - 7, 7, 4, 4, 176, 177, 144, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 3, 230, 6, - 1057, 6, 3, 1060, 6, 3, 1063, 1060, 3, 1066, - 1063, 1057, 6, 1066, 1071, 6, 3, 1074, 1071, 1057, - 1077, 1071, 6, 1057, 3, 6, 1060, 3, 1066, 1063, - 4, 4, 1066, 1071, 1091, 1057, 1074, 1071, 230, 1063, - 1074, 1057, 4, 1100, 1066, 1102, 1063, 1066, 4, 1071, - 1066, 4, 1074, 4, 1057, 1112, 4, 1091, 1066, 1112, - 1057, 4, 1119, 1066, 4, 4, 1100, 1124, 1102, 1066, - 1057, 4, 1066, 1060, 1071, 1109, 1063, 1074, 1112, 1066, - 1057, 1066, 1057, 1057, 1071, 6, 3, 1074, 4, 1066, - 1124, 1066, 1066, 4, 4, 4, 1071, 1071, 1057, 1074, - 1057, 4, 1124, 4, 1091, 1124, 6, 1066, 1057, 1066, - 1057, 3, 1071, 1100, 1071, 1102, 1124, 1066, 1057, 1066, - 1057, 1124, 1109, 1057, 1071, 1112, 1057, 1066, 8, 1066, - 1124, 1057, 1066, 1057, 6, 1066, 1057, 1124, 4, 1124, - 1066, 1057, 1066, 1057, 4, 1066, 1057, 1124, 1057, 4, - 1066, 1057, 1066, 1057, 1057, 1066, 1057, 1066, 1057, 1057, - 1066, 1057, 1066, 1066, 1057, 1066, 4, 1066, 1066, 1057, - 1066, 1057, 1057, 1066, 1057, 1124, 4, 1057, 1066, 1057, - 1066, 1066, 4, 1066, 231, 1124, 1066, 1124, 1066, 233, - 1124, 231, 233, 1124, 231, 4, 4, 4, 1124, 231, - 1124, 231, 233, 1124, 4, 4, 231, 231, 1124, 4, - 1124, 231, 231, 1124, 4, 1124, 4, 4, 4, 4, - 1269, 4, 6, 3, 5, 4, 8, 231, 231, 4, - 8, 231, 231, 4, 231, 231, 8, 3, 8, 231, - 233, 231, 231, 7, 4, 233, 231, 233, 4, 4, - 233, 233, 230, 233, 7, 1312, 233, 4, 230, 1312, - 230, 230, 1319, 230, 230, 230, 1319, 230, 4, 1319, - 230, 1328, 230, 230, 1312, 230, 230, 6, 1312, 1336, - 230, 1319, 3, 1336, 233, 1319, 233, 231, 230, 230, - 1312, 5, 230, 1312, 1328, 4, 1312, 1319, 4, 4, - 4, 170, 1336, 230, 1312, 7, 230, 5, 7, 1312, - 4, 6, 3, 233, 4, 1312, 230, 1374, 1312, 1376, - 4, 4, 1319, 1376, 4, 1312, 231, 1312, 4, 231, - 4, 230, 1319, 230, 4, 1312, 230, 1312, 1312, 230, - 1374, 1328, 1376, 746, 1319, 1319, 731, 1404, 533, 1336, - 1028, 1404, 748, 1312, 542, 1312, 1091, 835, 1069, 1051, - 1319, 1056, 1319, 1312, 1079, 1312, 1086, 1077, 591, 1059, - 1404, 1428, 1319, 1312, 556, 1312, 581, 1057, 1312, 1068, - 1312, 1312, 588, 1062, 1060, 1126, 1312, 1374, 1312, 1376, - 1065, 1312, 1063, 1124, 1428, 571, 1312, 1319, 1312, 1076, - 560, 1312, 1459, 1312, 1074, 1072, 1312, 1378, 1312, 1312, - 1374, 1312, 1100, 1312, 1312, 1404, 1312, 1404, 1430, 1312, - 32, 33, 34, 35, 1312, 1459, 1312, 1312, 1459, 1312, - 1104, 747, 1312, 1102, 1312, 1437, 1109, 787, 1407, 1336, - -1, 1428, 601, -1, -1, 1113, -1, -1, -1, -1, - -1, 605, 64, 65, 66, 1119, -1, -1, -1, -1, + 63, 64, 4, 232, 4, 231, 783, 784, 4, 4, + 787, 60, 61, 62, 791, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 4, 783, + 784, 4, 786, 787, 4, 98, 232, 4, 4, 4, + 4, 748, 4, 4, 4, 4, 30, 31, 32, 33, + 34, 35, 4, 4, 232, 4, 4, 4, 234, 4, + 234, 234, 234, 4, 4, 4, 234, 4, 232, 118, + 119, 4, 232, 4, 232, 4, 783, 784, 232, 786, + 787, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 4, 4, 7, 5, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 7, 93, + 94, 95, 7, 97, 163, 7, 231, 231, 167, 168, + 169, 170, 7, 7, 231, 109, 110, 5, 177, 178, + 231, 231, 116, 231, 118, 119, 120, 121, 122, 123, + 124, 125, 5, 127, 128, 129, 5, 231, 5, 7, + 134, 231, 136, 79, 80, 81, 82, 83, 84, 85, + 144, 87, 88, 89, 90, 5, 5, 5, 231, 5, + 7, 97, 7, 7, 5, 7, 5, 7, 231, 7, + 231, 5, 231, 231, 110, 231, 231, 5, 231, 231, + 231, 117, 118, 119, 7, 231, 231, 231, 231, 231, + 5, 127, 128, 129, 231, 231, 231, 231, 134, 135, + 231, 231, 231, 231, 231, 199, 200, 231, 231, 7, + 7, 231, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 4, 4, 4, 4, 145, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 231, 6, 231, 6, 3, + 6, 3, 3, 6, 3, 232, 6, 3, 6, 6, + 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 199, 200, 3, 6, 4, 4, 4, + 4, 4, 4, 1060, 3, 231, 1063, 8, 6, 1066, + 1063, 4, 1069, 1066, 1060, 4, 1069, 1074, 4, 4, + 1077, 1074, 1060, 1080, 1074, 231, 1060, 4, 4, 1063, + 234, 1069, 1066, 232, 234, 1069, 1074, 1094, 1060, 1077, + 1074, 4, 1066, 1077, 1060, 232, 1103, 1069, 1105, 1066, + 1069, 232, 1074, 1069, 232, 1077, 232, 1060, 1115, 232, + 1094, 1069, 1115, 1060, 232, 1122, 1069, 234, 4, 1103, + 1127, 1105, 1069, 1060, 4, 1069, 1063, 1074, 1112, 1066, + 1077, 1115, 1069, 1060, 1069, 1060, 1060, 1074, 232, 4, + 1077, 4, 1069, 1127, 1069, 1069, 4, 232, 232, 1074, + 1074, 1060, 1077, 1060, 232, 1127, 232, 1094, 1127, 232, + 1069, 1060, 1069, 1060, 4, 1074, 1103, 1074, 1105, 1127, + 1069, 1060, 1069, 1060, 1127, 1112, 1060, 1074, 1115, 1060, + 1069, 232, 1069, 1127, 1060, 1069, 1060, 234, 1069, 1060, + 1127, 232, 1127, 1069, 1060, 1069, 1060, 4, 1069, 1060, + 1127, 1060, 232, 1069, 1060, 1069, 1060, 1060, 1069, 1060, + 1069, 1060, 1060, 1069, 1060, 1069, 1069, 1060, 1069, 4, + 1069, 1069, 1060, 1069, 1060, 1060, 1069, 1060, 1127, 4, + 1060, 1069, 1060, 1069, 1069, 234, 1069, 4, 1127, 1069, + 1127, 1069, 4, 1127, 4, 232, 1127, 6, 3, 234, + 4, 1127, 8, 1127, 4, 8, 1127, 4, 232, 8, + 3, 1127, 8, 1127, 5, 7, 1127, 4, 1127, 4, + 4, 7, 4, 234, 1273, 234, 4, 6, 3, 5, + 4, 4, 4, 4, 234, 231, 231, 234, 232, 231, + 231, 231, 7, 231, 231, 171, 5, 231, 231, 231, + 231, 231, 231, 231, 7, 4, 6, 231, 3, 234, + 1317, 234, 231, 231, 1317, 231, 231, 1324, 4, 231, + 4, 1324, 4, 4, 1324, 234, 1333, 232, 232, 1317, + 4, 231, 231, 1317, 1341, 4, 1324, 4, 1341, 231, + 1324, 231, 1059, 748, 731, 1317, 746, 533, 1317, 1333, + 1030, 1317, 1324, 1054, 542, 1094, 1072, 1341, 835, 1317, + 1080, 1082, 591, 1062, 1317, 1089, 1071, 1317, 1060, 556, + 1317, 581, 1379, 1317, 1381, 1065, 1063, 1324, 1381, 1068, + 1317, 1066, 1317, 588, 1127, 1129, 560, 1324, 571, 1107, + 1317, 1077, 1317, 1317, 1324, 1379, 1333, 1381, 1075, 1324, + 1324, 1105, 1409, 1079, 1341, 1103, 1409, 1383, 1317, 1379, + 1317, 1409, 1435, 1464, 787, 1324, 1112, 1324, 1317, 1116, + 1317, 601, 747, 1341, 1442, 1409, 1433, 1324, 1317, -1, + 1317, 1412, 605, 1317, -1, -1, 1317, -1, 1122, -1, + -1, 1317, 1379, 1317, 1381, -1, 1317, -1, -1, 1433, + -1, 1317, -1, 1317, -1, -1, 1317, 1464, 1317, -1, + -1, 1317, -1, 1317, 1317, -1, 1317, -1, 1317, 1317, + -1, 1317, 1409, -1, 1317, -1, -1, -1, -1, 1317, + 1464, 1317, 1317, -1, 1317, -1, -1, 1317, -1, 1317, + -1, -1, -1, -1, -1, -1, 1433, 30, 31, 32, + 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1459, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 95, 96, 97, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1464, -1, -1, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, -1, -1, -1, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, 118, 119, -1, 121, -1, + 123, 124, 125, -1, 127, 128, 129, -1, -1, -1, + -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 117, 118, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 129, 130, 131, - 132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 230 + -1, -1, -1, -1, -1, -1, -1, -1, 231 }; const short Dhcp4Parser::yystos_[] = { - 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 0, 5, - 7, 9, 230, 231, 232, 233, 249, 250, 251, 256, - 7, 265, 7, 270, 7, 328, 7, 441, 7, 528, - 7, 545, 7, 477, 7, 483, 7, 507, 7, 417, - 7, 657, 7, 676, 257, 252, 266, 271, 329, 442, - 529, 546, 478, 484, 508, 418, 658, 677, 249, 258, - 259, 230, 254, 255, 10, 267, 269, 11, 14, 26, + 0, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 0, 5, + 7, 9, 231, 232, 233, 234, 250, 251, 252, 257, + 7, 266, 7, 271, 7, 329, 7, 444, 7, 531, + 7, 548, 7, 480, 7, 486, 7, 510, 7, 420, + 7, 660, 7, 679, 258, 253, 267, 272, 330, 445, + 532, 549, 481, 487, 511, 421, 661, 680, 250, 259, + 260, 231, 255, 256, 10, 268, 270, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 95, - 96, 107, 108, 109, 114, 117, 118, 122, 123, 124, - 125, 126, 135, 145, 148, 155, 156, 160, 161, 179, - 183, 198, 199, 200, 201, 202, 203, 212, 230, 264, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 287, 288, 290, 291, 292, 293, - 294, 295, 296, 299, 301, 303, 304, 305, 308, 309, - 310, 311, 312, 314, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 342, 344, 352, 354, 395, 404, 411, - 425, 435, 463, 464, 465, 467, 475, 501, 535, 537, - 539, 550, 552, 554, 577, 592, 593, 595, 645, 655, - 674, 683, 707, 15, 16, 19, 22, 23, 24, 25, - 264, 326, 327, 330, 332, 335, 338, 339, 340, 341, - 535, 537, 92, 93, 94, 115, 119, 120, 121, 126, - 127, 128, 133, 143, 264, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 288, 291, 292, 293, 294, - 295, 296, 299, 301, 303, 304, 305, 308, 309, 310, - 311, 312, 314, 316, 322, 443, 444, 445, 447, 449, - 451, 453, 455, 457, 459, 461, 463, 464, 465, 466, - 501, 522, 535, 537, 539, 550, 552, 554, 572, 116, - 134, 264, 293, 294, 295, 296, 299, 301, 303, 305, - 308, 309, 310, 311, 312, 314, 455, 457, 459, 461, - 501, 530, 531, 532, 534, 535, 537, 126, 136, 137, - 138, 139, 140, 141, 142, 264, 501, 535, 537, 547, - 548, 549, 550, 552, 554, 556, 558, 560, 562, 564, - 566, 568, 570, 475, 40, 97, 99, 100, 104, 105, - 106, 264, 371, 485, 486, 487, 488, 489, 490, 491, - 493, 495, 497, 498, 500, 535, 537, 98, 101, 102, - 103, 126, 264, 371, 489, 495, 509, 510, 511, 512, - 513, 515, 516, 517, 518, 519, 520, 535, 537, 146, - 147, 264, 419, 420, 421, 423, 184, 185, 186, 187, - 188, 189, 190, 191, 264, 535, 537, 659, 660, 661, - 662, 664, 665, 667, 668, 669, 672, 12, 13, 678, - 679, 680, 682, 6, 3, 4, 8, 3, 268, 3, - 8, 675, 325, 345, 4, 4, 4, 551, 553, 555, - 4, 4, 343, 353, 355, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 286, 4, 4, 4, - 4, 4, 297, 300, 302, 4, 4, 4, 4, 4, - 4, 4, 436, 476, 502, 4, 289, 306, 468, 536, - 538, 4, 4, 4, 396, 578, 540, 412, 426, 4, - 405, 594, 596, 646, 656, 313, 315, 4, 4, 4, - 684, 708, 4, 3, 8, 331, 333, 336, 4, 4, - 4, 4, 3, 8, 448, 450, 452, 523, 446, 454, - 4, 458, 460, 462, 456, 573, 3, 8, 533, 4, - 3, 8, 571, 557, 559, 561, 565, 563, 569, 567, - 8, 3, 8, 492, 372, 4, 496, 494, 499, 4, - 8, 3, 514, 4, 4, 4, 521, 8, 3, 422, - 424, 3, 8, 4, 663, 4, 666, 4, 4, 670, - 673, 3, 8, 681, 4, 3, 8, 249, 249, 230, - 4, 4, 4, 4, 233, 233, 233, 4, 4, 4, - 231, 233, 4, 4, 4, 231, 231, 231, 231, 231, - 233, 232, 232, 232, 231, 231, 4, 231, 231, 233, - 233, 233, 4, 4, 4, 233, 233, 232, 231, 231, - 231, 233, 4, 4, 4, 231, 4, 4, 4, 4, - 4, 233, 233, 233, 4, 4, 4, 4, 4, 231, - 4, 4, 4, 4, 4, 4, 4, 233, 233, 233, - 4, 4, 273, 4, 4, 4, 233, 233, 231, 231, - 327, 4, 4, 4, 4, 4, 4, 231, 4, 4, - 4, 4, 4, 444, 4, 231, 531, 4, 4, 4, - 4, 4, 4, 4, 4, 549, 4, 4, 231, 4, - 4, 4, 233, 487, 4, 233, 233, 233, 4, 511, - 4, 4, 420, 233, 4, 231, 4, 231, 231, 4, - 4, 660, 4, 231, 679, 4, 7, 7, 7, 7, - 230, 230, 230, 7, 7, 5, 230, 194, 195, 196, - 197, 233, 298, 230, 230, 5, 5, 5, 230, 110, - 111, 112, 113, 307, 5, 251, 253, 230, 5, 5, - 5, 5, 7, 7, 7, 5, 7, 7, 230, 230, - 5, 7, 5, 260, 17, 18, 334, 20, 21, 337, - 230, 230, 230, 5, 230, 230, 260, 260, 260, 230, - 7, 230, 260, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 260, 230, 253, 230, - 230, 18, 192, 671, 193, 5, 249, 272, 678, 326, - 27, 28, 346, 347, 348, 350, 40, 41, 42, 43, + 39, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 96, + 97, 108, 109, 110, 115, 118, 119, 123, 124, 125, + 126, 127, 136, 146, 149, 156, 157, 161, 162, 180, + 184, 199, 200, 201, 202, 203, 204, 213, 231, 265, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 288, 289, 291, 292, 293, 294, + 295, 296, 297, 300, 302, 304, 305, 306, 309, 310, + 311, 312, 313, 315, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 343, 345, 353, 355, 398, 407, 414, + 428, 438, 466, 467, 468, 470, 478, 504, 538, 540, + 542, 553, 555, 557, 580, 595, 596, 598, 648, 658, + 677, 686, 710, 15, 16, 19, 22, 23, 24, 25, + 265, 327, 328, 331, 333, 336, 339, 340, 341, 342, + 538, 540, 93, 94, 95, 116, 120, 121, 122, 127, + 128, 129, 134, 144, 265, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 289, 292, 293, 294, 295, + 296, 297, 300, 302, 304, 305, 306, 309, 310, 311, + 312, 313, 315, 317, 323, 446, 447, 448, 450, 452, + 454, 456, 458, 460, 462, 464, 466, 467, 468, 469, + 504, 525, 538, 540, 542, 553, 555, 557, 575, 117, + 135, 265, 294, 295, 296, 297, 300, 302, 304, 306, + 309, 310, 311, 312, 313, 315, 458, 460, 462, 464, + 504, 533, 534, 535, 537, 538, 540, 127, 137, 138, + 139, 140, 141, 142, 143, 265, 504, 538, 540, 550, + 551, 552, 553, 555, 557, 559, 561, 563, 565, 567, + 569, 571, 573, 478, 40, 98, 100, 101, 105, 106, + 107, 265, 372, 488, 489, 490, 491, 492, 493, 494, + 496, 498, 500, 501, 503, 538, 540, 99, 102, 103, + 104, 127, 265, 372, 492, 498, 512, 513, 514, 515, + 516, 518, 519, 520, 521, 522, 523, 538, 540, 147, + 148, 265, 422, 423, 424, 426, 185, 186, 187, 188, + 189, 190, 191, 192, 265, 538, 540, 662, 663, 664, + 665, 667, 668, 670, 671, 672, 675, 12, 13, 681, + 682, 683, 685, 6, 3, 4, 8, 3, 269, 3, + 8, 678, 326, 346, 4, 4, 4, 554, 556, 558, + 4, 4, 344, 354, 356, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 287, 4, 4, 4, + 4, 4, 298, 301, 303, 4, 4, 4, 4, 4, + 4, 4, 439, 479, 505, 4, 290, 307, 471, 539, + 541, 4, 4, 4, 399, 581, 543, 415, 429, 4, + 408, 597, 599, 649, 659, 314, 316, 4, 4, 4, + 687, 711, 4, 3, 8, 332, 334, 337, 4, 4, + 4, 4, 3, 8, 451, 453, 455, 526, 449, 457, + 4, 461, 463, 465, 459, 576, 3, 8, 536, 4, + 3, 8, 574, 560, 562, 564, 568, 566, 572, 570, + 8, 3, 8, 495, 373, 4, 499, 497, 502, 4, + 8, 3, 517, 4, 4, 4, 524, 8, 3, 425, + 427, 3, 8, 4, 666, 4, 669, 4, 4, 673, + 676, 3, 8, 684, 4, 3, 8, 250, 250, 231, + 4, 4, 4, 4, 234, 234, 234, 4, 4, 4, + 232, 234, 4, 4, 4, 232, 232, 232, 232, 232, + 234, 233, 233, 233, 232, 232, 4, 232, 232, 234, + 234, 234, 4, 4, 4, 234, 234, 233, 232, 232, + 232, 234, 4, 4, 4, 232, 4, 4, 4, 4, + 4, 234, 234, 234, 4, 4, 4, 4, 4, 232, + 4, 4, 4, 4, 4, 4, 4, 234, 234, 234, + 4, 4, 274, 4, 4, 4, 234, 234, 232, 232, + 328, 4, 4, 4, 4, 4, 4, 232, 4, 4, + 4, 4, 4, 447, 4, 232, 534, 4, 4, 4, + 4, 4, 4, 4, 4, 552, 4, 4, 232, 4, + 4, 4, 234, 490, 4, 234, 234, 234, 4, 514, + 4, 4, 423, 234, 4, 232, 4, 232, 232, 4, + 4, 663, 4, 232, 682, 4, 7, 7, 7, 7, + 231, 231, 231, 7, 7, 5, 231, 195, 196, 197, + 198, 234, 299, 231, 231, 5, 5, 5, 231, 111, + 112, 113, 114, 308, 5, 252, 254, 231, 5, 5, + 5, 5, 7, 7, 7, 5, 7, 7, 231, 231, + 5, 7, 5, 261, 17, 18, 335, 20, 21, 338, + 231, 231, 231, 5, 231, 231, 261, 261, 261, 231, + 7, 231, 261, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 261, 231, 254, 231, + 231, 18, 193, 674, 194, 5, 250, 273, 681, 327, + 27, 28, 347, 348, 349, 351, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 58, 59, 60, 61, 62, 63, 264, 360, 361, - 362, 364, 366, 368, 370, 371, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 385, 386, 387, 389, - 391, 393, 360, 7, 356, 357, 358, 7, 437, 438, - 439, 7, 479, 480, 481, 7, 503, 504, 505, 7, - 469, 470, 471, 137, 138, 139, 140, 142, 397, 398, - 399, 400, 401, 402, 403, 7, 579, 580, 7, 541, - 542, 543, 7, 413, 414, 415, 149, 150, 151, 152, - 153, 154, 427, 428, 429, 430, 431, 432, 433, 434, - 157, 158, 159, 264, 406, 407, 408, 409, 410, 535, - 537, 162, 166, 167, 168, 169, 176, 177, 264, 387, - 389, 391, 535, 537, 601, 602, 603, 606, 608, 610, - 611, 612, 622, 7, 597, 598, 599, 180, 181, 182, - 230, 535, 537, 647, 648, 649, 650, 652, 653, 659, - 7, 685, 686, 213, 214, 215, 216, 264, 709, 710, - 711, 712, 713, 714, 261, 7, 524, 525, 526, 144, - 574, 575, 356, 8, 8, 8, 349, 351, 3, 8, - 363, 365, 367, 369, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 383, 4, 4, 388, 390, 392, - 394, 3, 8, 8, 359, 6, 3, 440, 6, 3, - 482, 6, 3, 506, 6, 3, 472, 6, 3, 3, - 6, 581, 3, 6, 544, 6, 3, 416, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 4, 4, - 4, 3, 8, 604, 607, 609, 4, 623, 4, 613, - 3, 8, 600, 6, 3, 4, 651, 4, 654, 3, - 8, 8, 687, 3, 6, 4, 4, 4, 4, 3, - 8, 230, 262, 263, 527, 6, 3, 576, 8, 6, - 4, 4, 347, 4, 4, 4, 4, 231, 233, 231, - 233, 231, 231, 231, 231, 231, 231, 4, 233, 231, - 4, 4, 4, 4, 361, 360, 358, 443, 439, 485, - 481, 509, 505, 264, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 288, 291, 292, 293, 294, 295, - 296, 299, 301, 303, 304, 305, 308, 309, 310, 311, - 312, 314, 316, 322, 371, 435, 453, 455, 457, 459, - 461, 463, 464, 465, 473, 474, 501, 535, 537, 550, - 552, 554, 572, 471, 398, 129, 130, 131, 132, 264, - 274, 275, 276, 322, 371, 475, 501, 535, 537, 550, - 552, 554, 582, 583, 584, 585, 586, 588, 590, 591, - 580, 547, 543, 419, 415, 231, 231, 231, 231, 231, - 231, 428, 233, 231, 231, 407, 4, 4, 4, 231, - 4, 233, 4, 602, 601, 599, 233, 4, 231, 4, - 648, 204, 206, 207, 264, 371, 535, 537, 688, 689, - 690, 691, 693, 686, 233, 233, 233, 233, 710, 6, - 3, 530, 526, 4, 230, 230, 230, 230, 230, 230, - 55, 56, 57, 384, 230, 230, 230, 230, 8, 8, - 8, 8, 3, 8, 587, 589, 4, 4, 8, 3, - 8, 8, 163, 164, 165, 605, 230, 230, 7, 5, - 8, 230, 249, 694, 4, 692, 3, 8, 230, 8, - 260, 474, 4, 4, 233, 233, 584, 40, 171, 172, - 173, 264, 535, 537, 624, 625, 626, 629, 631, 633, - 7, 614, 615, 616, 4, 231, 4, 689, 230, 230, - 627, 630, 632, 634, 3, 8, 617, 6, 3, 5, - 230, 4, 4, 4, 4, 625, 178, 264, 371, 535, - 537, 618, 619, 620, 616, 7, 695, 696, 170, 628, - 230, 230, 5, 621, 3, 8, 697, 3, 6, 7, - 635, 636, 637, 4, 619, 205, 208, 209, 210, 211, - 698, 699, 700, 702, 703, 704, 705, 696, 638, 6, - 3, 230, 701, 4, 4, 4, 706, 3, 8, 174, - 175, 264, 364, 366, 535, 537, 639, 640, 641, 643, - 637, 4, 233, 231, 231, 4, 699, 642, 644, 3, - 8, 230, 230, 4, 4, 640, 230, 230 + 54, 58, 59, 60, 61, 62, 63, 64, 265, 361, + 362, 363, 365, 367, 369, 371, 372, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 386, 387, 388, + 390, 392, 394, 396, 361, 7, 357, 358, 359, 7, + 440, 441, 442, 7, 482, 483, 484, 7, 506, 507, + 508, 7, 472, 473, 474, 138, 139, 140, 141, 143, + 400, 401, 402, 403, 404, 405, 406, 7, 582, 583, + 7, 544, 545, 546, 7, 416, 417, 418, 150, 151, + 152, 153, 154, 155, 430, 431, 432, 433, 434, 435, + 436, 437, 158, 159, 160, 265, 409, 410, 411, 412, + 413, 538, 540, 163, 167, 168, 169, 170, 177, 178, + 265, 388, 390, 392, 538, 540, 604, 605, 606, 609, + 611, 613, 614, 615, 625, 7, 600, 601, 602, 181, + 182, 183, 231, 538, 540, 650, 651, 652, 653, 655, + 656, 662, 7, 688, 689, 214, 215, 216, 217, 265, + 712, 713, 714, 715, 716, 717, 262, 7, 527, 528, + 529, 145, 577, 578, 357, 8, 8, 8, 350, 352, + 3, 8, 364, 366, 368, 370, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 384, 4, 4, 389, + 391, 393, 395, 397, 3, 8, 8, 360, 6, 3, + 443, 6, 3, 485, 6, 3, 509, 6, 3, 475, + 6, 3, 3, 6, 584, 3, 6, 547, 6, 3, + 419, 6, 3, 4, 4, 4, 4, 4, 4, 3, + 8, 4, 4, 4, 3, 8, 607, 610, 612, 4, + 626, 4, 616, 3, 8, 603, 6, 3, 4, 654, + 4, 657, 3, 8, 8, 690, 3, 6, 4, 4, + 4, 4, 3, 8, 231, 263, 264, 530, 6, 3, + 579, 8, 6, 4, 4, 348, 4, 4, 4, 4, + 232, 234, 232, 234, 232, 232, 232, 232, 232, 232, + 4, 234, 232, 4, 4, 4, 4, 4, 362, 361, + 359, 446, 442, 488, 484, 512, 508, 265, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 289, 292, + 293, 294, 295, 296, 297, 300, 302, 304, 305, 306, + 309, 310, 311, 312, 313, 315, 317, 323, 372, 438, + 456, 458, 460, 462, 464, 466, 467, 468, 476, 477, + 504, 538, 540, 553, 555, 557, 575, 474, 401, 130, + 131, 132, 133, 265, 275, 276, 277, 323, 372, 478, + 504, 538, 540, 553, 555, 557, 585, 586, 587, 588, + 589, 591, 593, 594, 583, 550, 546, 422, 418, 232, + 232, 232, 232, 232, 232, 431, 234, 232, 232, 410, + 4, 4, 4, 232, 4, 234, 4, 605, 604, 602, + 234, 4, 232, 4, 651, 205, 207, 208, 265, 372, + 538, 540, 691, 692, 693, 694, 696, 689, 234, 234, + 234, 234, 713, 6, 3, 533, 529, 4, 231, 231, + 231, 231, 231, 231, 55, 56, 57, 385, 231, 231, + 231, 231, 231, 8, 8, 8, 8, 3, 8, 590, + 592, 4, 4, 8, 3, 8, 8, 164, 165, 166, + 608, 231, 231, 7, 5, 8, 231, 250, 697, 4, + 695, 3, 8, 231, 8, 261, 477, 4, 4, 234, + 234, 587, 40, 172, 173, 174, 265, 538, 540, 627, + 628, 629, 632, 634, 636, 7, 617, 618, 619, 4, + 232, 4, 692, 231, 231, 630, 633, 635, 637, 3, + 8, 620, 6, 3, 5, 231, 4, 4, 4, 4, + 628, 179, 265, 372, 538, 540, 621, 622, 623, 619, + 7, 698, 699, 171, 631, 231, 231, 5, 624, 3, + 8, 700, 3, 6, 7, 638, 639, 640, 4, 622, + 206, 209, 210, 211, 212, 701, 702, 703, 705, 706, + 707, 708, 699, 641, 6, 3, 231, 704, 4, 4, + 4, 709, 3, 8, 175, 176, 265, 365, 367, 538, + 540, 642, 643, 644, 646, 640, 4, 234, 232, 232, + 4, 702, 645, 647, 3, 8, 231, 231, 4, 4, + 643, 231, 231 }; const short Dhcp4Parser::yyr1_[] = { - 0, 234, 236, 235, 237, 235, 238, 235, 239, 235, - 240, 235, 241, 235, 242, 235, 243, 235, 244, 235, - 245, 235, 246, 235, 247, 235, 248, 235, 249, 249, - 249, 249, 249, 249, 249, 250, 252, 251, 253, 254, - 254, 255, 255, 255, 257, 256, 258, 258, 259, 259, - 259, 261, 260, 262, 262, 263, 263, 263, 264, 266, - 265, 268, 267, 267, 269, 271, 270, 272, 272, 272, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 286, 285, 287, 289, 288, 290, 291, - 292, 293, 294, 295, 297, 296, 298, 298, 298, 298, - 298, 300, 299, 302, 301, 303, 304, 306, 305, 307, - 307, 307, 307, 308, 309, 310, 311, 313, 312, 315, - 314, 316, 317, 318, 319, 320, 321, 322, 323, 325, - 324, 326, 326, 326, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 329, 328, 331, 330, 333, 332, - 334, 334, 336, 335, 337, 337, 338, 339, 340, 341, - 343, 342, 345, 344, 346, 346, 346, 347, 347, 349, - 348, 351, 350, 353, 352, 355, 354, 356, 356, 357, - 357, 357, 359, 358, 360, 360, 360, 361, 361, 361, - 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, - 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, - 363, 362, 365, 364, 367, 366, 369, 368, 370, 372, - 371, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 383, 382, 384, 384, 384, 385, 386, 388, 387, 390, - 389, 392, 391, 394, 393, 396, 395, 397, 397, 397, - 398, 398, 398, 398, 398, 399, 400, 401, 402, 403, - 405, 404, 406, 406, 406, 407, 407, 407, 407, 407, - 407, 408, 409, 410, 412, 411, 413, 413, 414, 414, - 414, 416, 415, 418, 417, 419, 419, 419, 419, 420, - 420, 422, 421, 424, 423, 426, 425, 427, 427, 427, - 428, 428, 428, 428, 428, 428, 429, 430, 431, 432, - 433, 434, 436, 435, 437, 437, 438, 438, 438, 440, - 439, 442, 441, 443, 443, 443, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 444, 444, 444, 444, 446, - 445, 448, 447, 450, 449, 452, 451, 454, 453, 456, - 455, 458, 457, 460, 459, 462, 461, 463, 464, 465, - 466, 468, 467, 469, 469, 470, 470, 470, 472, 471, - 473, 473, 473, 474, 474, 474, 474, 474, 474, 474, - 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, - 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, - 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, - 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, - 474, 476, 475, 478, 477, 479, 479, 480, 480, 480, - 482, 481, 484, 483, 485, 485, 486, 486, 486, 487, - 487, 487, 487, 487, 487, 487, 487, 487, 487, 488, - 489, 490, 492, 491, 494, 493, 496, 495, 497, 499, - 498, 500, 502, 501, 503, 503, 504, 504, 504, 506, - 505, 508, 507, 509, 509, 510, 510, 510, 511, 511, - 511, 511, 511, 511, 511, 511, 511, 511, 511, 512, - 514, 513, 515, 516, 517, 518, 519, 521, 520, 523, - 522, 524, 524, 525, 525, 525, 527, 526, 529, 528, - 530, 530, 530, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 533, 532, 534, - 536, 535, 538, 537, 540, 539, 541, 541, 542, 542, - 542, 544, 543, 546, 545, 547, 547, 548, 548, 548, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 551, 550, 553, 552, 555, - 554, 557, 556, 559, 558, 561, 560, 563, 562, 565, - 564, 567, 566, 569, 568, 571, 570, 573, 572, 574, - 576, 575, 578, 577, 579, 579, 579, 581, 580, 582, - 582, 583, 583, 583, 584, 584, 584, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, - 584, 585, 587, 586, 589, 588, 590, 591, 592, 594, - 593, 596, 595, 597, 597, 598, 598, 598, 600, 599, - 601, 601, 601, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 602, 602, 602, 604, 603, 605, 605, - 605, 607, 606, 609, 608, 610, 611, 613, 612, 614, - 614, 615, 615, 615, 617, 616, 618, 618, 618, 619, - 619, 619, 619, 619, 621, 620, 623, 622, 624, 624, - 624, 625, 625, 625, 625, 625, 625, 625, 627, 626, - 628, 630, 629, 632, 631, 634, 633, 635, 635, 636, - 636, 636, 638, 637, 639, 639, 639, 640, 640, 640, - 640, 640, 640, 640, 642, 641, 644, 643, 646, 645, - 647, 647, 647, 648, 648, 648, 648, 648, 648, 649, - 651, 650, 652, 654, 653, 656, 655, 658, 657, 659, - 659, 659, 660, 660, 660, 660, 660, 660, 660, 660, - 660, 660, 660, 661, 663, 662, 664, 666, 665, 667, - 668, 670, 669, 671, 671, 673, 672, 675, 674, 677, - 676, 678, 678, 678, 679, 679, 681, 680, 682, 684, - 683, 685, 685, 685, 687, 686, 688, 688, 688, 689, - 689, 689, 689, 689, 689, 689, 690, 692, 691, 694, - 693, 695, 695, 695, 697, 696, 698, 698, 698, 699, - 699, 699, 699, 699, 701, 700, 702, 703, 704, 706, - 705, 708, 707, 709, 709, 709, 710, 710, 710, 710, - 710, 711, 712, 713, 714 + 0, 235, 237, 236, 238, 236, 239, 236, 240, 236, + 241, 236, 242, 236, 243, 236, 244, 236, 245, 236, + 246, 236, 247, 236, 248, 236, 249, 236, 250, 250, + 250, 250, 250, 250, 250, 251, 253, 252, 254, 255, + 255, 256, 256, 256, 258, 257, 259, 259, 260, 260, + 260, 262, 261, 263, 263, 264, 264, 264, 265, 267, + 266, 269, 268, 268, 270, 272, 271, 273, 273, 273, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 287, 286, 288, 290, 289, 291, 292, + 293, 294, 295, 296, 298, 297, 299, 299, 299, 299, + 299, 301, 300, 303, 302, 304, 305, 307, 306, 308, + 308, 308, 308, 309, 310, 311, 312, 314, 313, 316, + 315, 317, 318, 319, 320, 321, 322, 323, 324, 326, + 325, 327, 327, 327, 328, 328, 328, 328, 328, 328, + 328, 328, 328, 328, 330, 329, 332, 331, 334, 333, + 335, 335, 337, 336, 338, 338, 339, 340, 341, 342, + 344, 343, 346, 345, 347, 347, 347, 348, 348, 350, + 349, 352, 351, 354, 353, 356, 355, 357, 357, 358, + 358, 358, 360, 359, 361, 361, 361, 362, 362, 362, + 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 362, 364, 363, 366, 365, 368, 367, 370, 369, 371, + 373, 372, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 384, 383, 385, 385, 385, 386, 387, 389, 388, + 391, 390, 393, 392, 395, 394, 397, 396, 399, 398, + 400, 400, 400, 401, 401, 401, 401, 401, 402, 403, + 404, 405, 406, 408, 407, 409, 409, 409, 410, 410, + 410, 410, 410, 410, 411, 412, 413, 415, 414, 416, + 416, 417, 417, 417, 419, 418, 421, 420, 422, 422, + 422, 422, 423, 423, 425, 424, 427, 426, 429, 428, + 430, 430, 430, 431, 431, 431, 431, 431, 431, 432, + 433, 434, 435, 436, 437, 439, 438, 440, 440, 441, + 441, 441, 443, 442, 445, 444, 446, 446, 446, 447, + 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, + 447, 447, 449, 448, 451, 450, 453, 452, 455, 454, + 457, 456, 459, 458, 461, 460, 463, 462, 465, 464, + 466, 467, 468, 469, 471, 470, 472, 472, 473, 473, + 473, 475, 474, 476, 476, 476, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, + 477, 477, 477, 477, 479, 478, 481, 480, 482, 482, + 483, 483, 483, 485, 484, 487, 486, 488, 488, 489, + 489, 489, 490, 490, 490, 490, 490, 490, 490, 490, + 490, 490, 491, 492, 493, 495, 494, 497, 496, 499, + 498, 500, 502, 501, 503, 505, 504, 506, 506, 507, + 507, 507, 509, 508, 511, 510, 512, 512, 513, 513, + 513, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 515, 517, 516, 518, 519, 520, 521, 522, + 524, 523, 526, 525, 527, 527, 528, 528, 528, 530, + 529, 532, 531, 533, 533, 533, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, + 536, 535, 537, 539, 538, 541, 540, 543, 542, 544, + 544, 545, 545, 545, 547, 546, 549, 548, 550, 550, + 551, 551, 551, 552, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 552, 552, 552, 552, 552, 554, 553, + 556, 555, 558, 557, 560, 559, 562, 561, 564, 563, + 566, 565, 568, 567, 570, 569, 572, 571, 574, 573, + 576, 575, 577, 579, 578, 581, 580, 582, 582, 582, + 584, 583, 585, 585, 586, 586, 586, 587, 587, 587, + 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 588, 590, 589, 592, 591, 593, + 594, 595, 597, 596, 599, 598, 600, 600, 601, 601, + 601, 603, 602, 604, 604, 604, 605, 605, 605, 605, + 605, 605, 605, 605, 605, 605, 605, 605, 605, 607, + 606, 608, 608, 608, 610, 609, 612, 611, 613, 614, + 616, 615, 617, 617, 618, 618, 618, 620, 619, 621, + 621, 621, 622, 622, 622, 622, 622, 624, 623, 626, + 625, 627, 627, 627, 628, 628, 628, 628, 628, 628, + 628, 630, 629, 631, 633, 632, 635, 634, 637, 636, + 638, 638, 639, 639, 639, 641, 640, 642, 642, 642, + 643, 643, 643, 643, 643, 643, 643, 645, 644, 647, + 646, 649, 648, 650, 650, 650, 651, 651, 651, 651, + 651, 651, 652, 654, 653, 655, 657, 656, 659, 658, + 661, 660, 662, 662, 662, 663, 663, 663, 663, 663, + 663, 663, 663, 663, 663, 663, 664, 666, 665, 667, + 669, 668, 670, 671, 673, 672, 674, 674, 676, 675, + 678, 677, 680, 679, 681, 681, 681, 682, 682, 684, + 683, 685, 687, 686, 688, 688, 688, 690, 689, 691, + 691, 691, 692, 692, 692, 692, 692, 692, 692, 693, + 695, 694, 697, 696, 698, 698, 698, 700, 699, 701, + 701, 701, 702, 702, 702, 702, 702, 704, 703, 705, + 706, 707, 709, 708, 711, 710, 712, 712, 712, 713, + 713, 713, 713, 713, 714, 715, 716, 717 }; const signed char @@ -6489,75 +6517,75 @@ namespace isc { namespace dhcp { 3, 2, 0, 4, 1, 3, 2, 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, 3, 0, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 0, 4, 1, 1, 1, 3, 3, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 6, 1, 3, 2, + 1, 0, 4, 0, 4, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 0, 4, 1, 1, 1, 3, 3, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, + 2, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, - 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, - 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 6, 0, 4, 0, 1, 1, 3, 2, - 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 0, 6, 0, 4, 0, 1, + 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, + 3, 2, 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, 2, 0, 4, 0, 4, 0, 1, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 4, 1, 1, 3, 3, 3, + 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 0, 4, 1, 3, 2, 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, 2, 0, - 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 1, 1, 3, 3, 3, 0, 4, 0, - 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, + 0, 4, 3, 0, 4, 0, 4, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 6, 1, 0, 4, 0, 6, 1, 3, 2, + 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, - 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 6, 1, - 0, 4, 0, 6, 1, 3, 2, 0, 4, 0, - 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 3, 3, 0, - 6, 0, 6, 0, 1, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 1, 0, 4, 0, 4, 3, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, - 1, 1, 1, 1, 0, 4, 0, 6, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 1, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 4, 3, 0, 4, 3, - 3, 0, 4, 1, 1, 0, 4, 0, 6, 0, - 4, 1, 3, 2, 1, 1, 0, 6, 3, 0, - 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 3, 0, 4, 0, - 6, 1, 3, 2, 0, 4, 1, 3, 2, 1, - 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, + 3, 3, 0, 6, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 1, 1, 0, 4, 0, 4, 3, 3, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 0, 4, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 3, 3, 3, 3 + 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, + 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 0, 6, 0, 4, 1, 3, 2, 1, 1, 0, + 6, 3, 0, 6, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, + 0, 4, 0, 6, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 0, 4, 3, + 3, 3, 0, 4, 0, 6, 1, 3, 2, 1, + 1, 1, 1, 1, 3, 3, 3, 3 }; @@ -6586,11 +6614,11 @@ namespace isc { namespace dhcp { "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"retry-on-startup\"", "\"max-row-errors\"", "\"trust-anchor\"", - "\"cert-file\"", "\"key-file\"", "\"cipher-list\"", "\"valid-lifetime\"", - "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", "\"renew-timer\"", - "\"rebind-timer\"", "\"calculate-tee-times\"", "\"t1-percent\"", - "\"t2-percent\"", "\"cache-threshold\"", "\"cache-max-age\"", - "\"decline-probation-period\"", "\"server-tag\"", + "\"cert-file\"", "\"key-file\"", "\"key-password\"", "\"cipher-list\"", + "\"valid-lifetime\"", "\"min-valid-lifetime\"", "\"max-valid-lifetime\"", + "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", + "\"t1-percent\"", "\"t2-percent\"", "\"cache-threshold\"", + "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -6682,87 +6710,87 @@ namespace isc { namespace dhcp { "connect_timeout", "read_timeout", "write_timeout", "tcp_user_timeout", "max_reconnect_tries", "reconnect_wait_time", "on_fail", "$@45", "on_fail_mode", "retry_on_startup", "max_row_errors", "trust_anchor", - "$@46", "cert_file", "$@47", "key_file", "$@48", "cipher_list", "$@49", - "host_reservation_identifiers", "$@50", + "$@46", "cert_file", "$@47", "key_file", "$@48", "key_password", "$@49", + "cipher_list", "$@50", "host_reservation_identifiers", "$@51", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id", - "dhcp_multi_threading", "$@51", "multi_threading_params", + "dhcp_multi_threading", "$@52", "multi_threading_params", "multi_threading_param", "enable_multi_threading", "thread_pool_size", - "packet_queue_size", "hooks_libraries", "$@52", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@53", - "sub_hooks_library", "$@54", "hooks_params", "hooks_param", "library", - "$@55", "parameters", "$@56", "expired_leases_processing", "$@57", + "packet_queue_size", "hooks_libraries", "$@53", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@54", + "sub_hooks_library", "$@55", "hooks_params", "hooks_param", "library", + "$@56", "parameters", "$@57", "expired_leases_processing", "$@58", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet4_list", "$@58", - "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@59", - "sub_subnet4", "$@60", "subnet4_params", "subnet4_param", "subnet", - "$@61", "subnet_4o6_interface", "$@62", "subnet_4o6_interface_id", - "$@63", "subnet_4o6_subnet", "$@64", "interface", "$@65", "client_class", - "$@66", "network_client_classes", "$@67", "require_client_classes", - "$@68", "evaluate_additional_classes", "$@69", "reservations_global", + "unwarned_reclaim_cycles", "subnet4_list", "$@59", + "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@60", + "sub_subnet4", "$@61", "subnet4_params", "subnet4_param", "subnet", + "$@62", "subnet_4o6_interface", "$@63", "subnet_4o6_interface_id", + "$@64", "subnet_4o6_subnet", "$@65", "interface", "$@66", "client_class", + "$@67", "network_client_classes", "$@68", "require_client_classes", + "$@69", "evaluate_additional_classes", "$@70", "reservations_global", "reservations_in_subnet", "reservations_out_of_pool", "id", - "shared_networks", "$@70", "shared_networks_content", - "shared_networks_list", "shared_network", "$@71", + "shared_networks", "$@71", "shared_networks_content", + "shared_networks_list", "shared_network", "$@72", "shared_network_params", "shared_network_param", "option_def_list", - "$@72", "sub_option_def_list", "$@73", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@74", - "sub_option_def", "$@75", "option_def_params", + "$@73", "sub_option_def_list", "$@74", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@75", + "sub_option_def", "$@76", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@76", - "option_def_record_types", "$@77", "space", "$@78", "option_def_space", - "option_def_encapsulate", "$@79", "option_def_array", "option_data_list", - "$@80", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@81", "sub_option_data", "$@82", + "code", "option_def_code", "option_def_type", "$@77", + "option_def_record_types", "$@78", "space", "$@79", "option_def_space", + "option_def_encapsulate", "$@80", "option_def_array", "option_data_list", + "$@81", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@82", "sub_option_data", "$@83", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@83", + "option_data_param", "option_data_name", "option_data_data", "$@84", "option_data_code", "option_data_space", "option_data_csv_format", "option_data_always_send", "option_data_never_send", - "option_data_client_classes", "$@84", "pools_list", "$@85", - "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@86", - "sub_pool4", "$@87", "pool_params", "pool_param", "pool_entry", "$@88", - "pool_id", "user_context", "$@89", "comment", "$@90", "reservations", - "$@91", "reservations_list", "not_empty_reservations_list", - "reservation", "$@92", "sub_reservation", "$@93", "reservation_params", + "option_data_client_classes", "$@85", "pools_list", "$@86", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@87", + "sub_pool4", "$@88", "pool_params", "pool_param", "pool_entry", "$@89", + "pool_id", "user_context", "$@90", "comment", "$@91", "reservations", + "$@92", "reservations_list", "not_empty_reservations_list", + "reservation", "$@93", "sub_reservation", "$@94", "reservation_params", "not_empty_reservation_params", "reservation_param", "next_server", - "$@94", "server_hostname", "$@95", "boot_file_name", "$@96", - "ip_address", "$@97", "duid", "$@98", "hw_address", "$@99", - "client_id_value", "$@100", "circuit_id_value", "$@101", "flex_id_value", - "$@102", "hostname", "$@103", "reservation_client_classes", "$@104", - "relay", "$@105", "relay_map", "ip_addresses", "$@106", "client_classes", - "$@107", "client_classes_list", "client_class_entry", "$@108", + "$@95", "server_hostname", "$@96", "boot_file_name", "$@97", + "ip_address", "$@98", "duid", "$@99", "hw_address", "$@100", + "client_id_value", "$@101", "circuit_id_value", "$@102", "flex_id_value", + "$@103", "hostname", "$@104", "reservation_client_classes", "$@105", + "relay", "$@106", "relay_map", "ip_addresses", "$@107", "client_classes", + "$@108", "client_classes_list", "client_class_entry", "$@109", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@109", - "client_class_template_test", "$@110", "only_if_required", - "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@111", - "control_sockets", "$@112", "control_socket_list", - "not_empty_control_socket_list", "control_socket_entry", "$@113", + "client_class_param", "client_class_name", "client_class_test", "$@110", + "client_class_template_test", "$@111", "only_if_required", + "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@112", + "control_sockets", "$@113", "control_socket_list", + "not_empty_control_socket_list", "control_socket_entry", "$@114", "control_socket_params", "control_socket_param", "control_socket_type", - "$@114", "control_socket_type_value", "control_socket_name", "$@115", - "control_socket_address", "$@116", "control_socket_port", - "cert_required", "http_headers", "$@117", "http_header_list", - "not_empty_http_header_list", "http_header", "$@118", - "http_header_params", "http_header_param", "header_value", "$@119", - "authentication", "$@120", "auth_params", "auth_param", "auth_type", - "$@121", "auth_type_value", "realm", "$@122", "directory", "$@123", - "clients", "$@124", "clients_list", "not_empty_clients_list", - "basic_auth", "$@125", "clients_params", "clients_param", "user_file", - "$@126", "password_file", "$@127", "dhcp_queue_control", "$@128", + "$@115", "control_socket_type_value", "control_socket_name", "$@116", + "control_socket_address", "$@117", "control_socket_port", + "cert_required", "http_headers", "$@118", "http_header_list", + "not_empty_http_header_list", "http_header", "$@119", + "http_header_params", "http_header_param", "header_value", "$@120", + "authentication", "$@121", "auth_params", "auth_param", "auth_type", + "$@122", "auth_type_value", "realm", "$@123", "directory", "$@124", + "clients", "$@125", "clients_list", "not_empty_clients_list", + "basic_auth", "$@126", "clients_params", "clients_param", "user_file", + "$@127", "password_file", "$@128", "dhcp_queue_control", "$@129", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@129", "capacity", "arbitrary_map_entry", "$@130", - "dhcp_ddns", "$@131", "sub_dhcp_ddns", "$@132", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@133", "server_port", - "sender_ip", "$@134", "sender_port", "max_queue_size", "ncr_protocol", - "$@135", "ncr_protocol_value", "ncr_format", "$@136", "config_control", - "$@137", "sub_config_control", "$@138", "config_control_params", - "config_control_param", "config_databases", "$@139", - "config_fetch_wait_time", "loggers", "$@140", "loggers_entries", - "logger_entry", "$@141", "logger_params", "logger_param", "debuglevel", - "severity", "$@142", "output_options_list", "$@143", - "output_options_list_content", "output_entry", "$@144", - "output_params_list", "output_params", "output", "$@145", "flush", - "maxsize", "maxver", "pattern", "$@146", "compatibility", "$@147", + "queue_type", "$@130", "capacity", "arbitrary_map_entry", "$@131", + "dhcp_ddns", "$@132", "sub_dhcp_ddns", "$@133", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@134", "server_port", + "sender_ip", "$@135", "sender_port", "max_queue_size", "ncr_protocol", + "$@136", "ncr_protocol_value", "ncr_format", "$@137", "config_control", + "$@138", "sub_config_control", "$@139", "config_control_params", + "config_control_param", "config_databases", "$@140", + "config_fetch_wait_time", "loggers", "$@141", "loggers_entries", + "logger_entry", "$@142", "logger_params", "logger_param", "debuglevel", + "severity", "$@143", "output_options_list", "$@144", + "output_options_list_content", "output_entry", "$@145", + "output_params_list", "output_params", "output", "$@146", "flush", + "maxsize", "maxver", "pattern", "$@147", "compatibility", "$@148", "compatibility_params", "compatibility_param", "lenient_option_parsing", "ignore_dhcp_server_identifier", "ignore_rai_link_selection", "exclude_first_last_24", YY_NULLPTR @@ -6774,103 +6802,103 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 329, 329, 329, 330, 330, 331, 331, 332, 332, - 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, - 338, 338, 339, 339, 340, 340, 341, 341, 349, 350, - 351, 352, 353, 354, 355, 358, 363, 363, 374, 377, - 378, 381, 386, 392, 397, 397, 404, 405, 408, 412, - 416, 422, 422, 429, 430, 433, 437, 441, 451, 460, - 460, 475, 475, 489, 492, 498, 498, 507, 508, 509, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 590, 596, 602, 608, 614, 620, 626, 632, - 638, 644, 650, 656, 656, 665, 671, 671, 680, 686, - 692, 698, 704, 710, 716, 716, 725, 728, 731, 734, - 737, 743, 743, 752, 752, 761, 770, 780, 780, 789, - 792, 795, 798, 803, 809, 815, 821, 827, 827, 836, - 836, 845, 851, 857, 863, 869, 875, 881, 887, 893, - 893, 905, 906, 907, 912, 913, 914, 915, 916, 917, - 918, 919, 920, 921, 924, 924, 933, 933, 944, 944, - 952, 953, 956, 956, 964, 966, 970, 976, 982, 988, - 994, 994, 1007, 1007, 1018, 1019, 1020, 1025, 1026, 1029, - 1029, 1048, 1048, 1066, 1066, 1079, 1079, 1090, 1091, 1094, - 1095, 1096, 1101, 1101, 1111, 1112, 1113, 1118, 1119, 1120, - 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1143, 1143, 1152, 1152, 1161, 1161, 1170, 1170, 1179, 1185, - 1185, 1194, 1200, 1206, 1212, 1218, 1224, 1230, 1236, 1242, - 1248, 1248, 1256, 1257, 1258, 1261, 1267, 1273, 1273, 1282, - 1282, 1291, 1291, 1300, 1300, 1309, 1309, 1320, 1321, 1322, - 1327, 1328, 1329, 1330, 1331, 1334, 1339, 1344, 1349, 1354, - 1361, 1361, 1374, 1375, 1376, 1381, 1382, 1383, 1384, 1385, - 1386, 1389, 1395, 1401, 1407, 1407, 1418, 1419, 1422, 1423, - 1424, 1429, 1429, 1439, 1439, 1449, 1450, 1451, 1454, 1457, - 1458, 1461, 1461, 1470, 1470, 1479, 1479, 1491, 1492, 1493, - 1498, 1499, 1500, 1501, 1502, 1503, 1506, 1512, 1518, 1524, - 1530, 1536, 1545, 1545, 1559, 1560, 1563, 1564, 1565, 1574, - 1574, 1600, 1600, 1611, 1612, 1613, 1619, 1620, 1621, 1622, - 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, - 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, - 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, - 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, - 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1674, - 1674, 1683, 1683, 1692, 1692, 1701, 1701, 1710, 1710, 1719, - 1719, 1729, 1729, 1741, 1741, 1752, 1752, 1763, 1769, 1775, - 1781, 1789, 1789, 1801, 1802, 1806, 1807, 1808, 1813, 1813, - 1821, 1822, 1823, 1828, 1829, 1830, 1831, 1832, 1833, 1834, - 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, - 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, - 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, - 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, - 1875, 1882, 1882, 1896, 1896, 1905, 1906, 1909, 1910, 1911, - 1918, 1918, 1933, 1933, 1947, 1948, 1951, 1952, 1953, 1958, - 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1970, - 1972, 1978, 1980, 1980, 1989, 1989, 1998, 1998, 2007, 2009, - 2009, 2018, 2028, 2028, 2041, 2042, 2047, 2048, 2049, 2056, - 2056, 2068, 2068, 2080, 2081, 2086, 2087, 2088, 2095, 2096, - 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2108, - 2110, 2110, 2119, 2121, 2123, 2129, 2135, 2141, 2141, 2155, - 2155, 2168, 2169, 2172, 2173, 2174, 2179, 2179, 2189, 2189, - 2199, 2200, 2201, 2206, 2207, 2208, 2209, 2210, 2211, 2212, - 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, - 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2232, 2232, 2241, - 2247, 2247, 2272, 2272, 2302, 2302, 2313, 2314, 2317, 2318, - 2319, 2324, 2324, 2333, 2333, 2342, 2343, 2346, 2347, 2348, - 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, - 2364, 2365, 2366, 2367, 2368, 2371, 2371, 2380, 2380, 2389, - 2389, 2398, 2398, 2407, 2407, 2416, 2416, 2425, 2425, 2434, - 2434, 2443, 2443, 2452, 2452, 2461, 2461, 2475, 2475, 2486, - 2489, 2489, 2503, 2503, 2514, 2515, 2516, 2521, 2521, 2531, - 2532, 2535, 2536, 2537, 2542, 2543, 2544, 2545, 2546, 2547, - 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, - 2558, 2561, 2563, 2563, 2572, 2572, 2582, 2588, 2596, 2604, - 2604, 2616, 2616, 2628, 2629, 2632, 2633, 2634, 2639, 2639, - 2647, 2648, 2649, 2654, 2655, 2656, 2657, 2658, 2659, 2660, - 2661, 2662, 2663, 2664, 2665, 2666, 2669, 2669, 2678, 2679, - 2680, 2683, 2683, 2693, 2693, 2703, 2709, 2715, 2715, 2726, - 2727, 2730, 2731, 2732, 2737, 2737, 2745, 2746, 2747, 2752, - 2753, 2754, 2755, 2756, 2759, 2759, 2770, 2770, 2783, 2784, - 2785, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2799, 2799, - 2807, 2810, 2810, 2819, 2819, 2828, 2828, 2839, 2840, 2843, - 2844, 2845, 2850, 2850, 2858, 2859, 2860, 2865, 2866, 2867, - 2868, 2869, 2870, 2871, 2874, 2874, 2883, 2883, 2894, 2894, - 2907, 2908, 2909, 2914, 2915, 2916, 2917, 2918, 2919, 2922, - 2928, 2928, 2937, 2943, 2943, 2953, 2953, 2966, 2966, 2976, - 2977, 2978, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, - 2991, 2992, 2993, 2996, 3002, 3002, 3011, 3017, 3017, 3026, - 3032, 3038, 3038, 3047, 3048, 3051, 3051, 3062, 3062, 3074, - 3074, 3084, 3085, 3086, 3092, 3093, 3096, 3096, 3107, 3115, - 3115, 3128, 3129, 3130, 3136, 3136, 3144, 3145, 3146, 3151, - 3152, 3153, 3154, 3155, 3156, 3157, 3160, 3166, 3166, 3175, - 3175, 3186, 3187, 3188, 3193, 3193, 3201, 3202, 3203, 3208, - 3209, 3210, 3211, 3212, 3215, 3215, 3224, 3230, 3236, 3242, - 3242, 3251, 3251, 3262, 3263, 3264, 3269, 3270, 3271, 3272, - 3273, 3276, 3282, 3288, 3294 + 0, 330, 330, 330, 331, 331, 332, 332, 333, 333, + 334, 334, 335, 335, 336, 336, 337, 337, 338, 338, + 339, 339, 340, 340, 341, 341, 342, 342, 350, 351, + 352, 353, 354, 355, 356, 359, 364, 364, 375, 378, + 379, 382, 387, 393, 398, 398, 405, 406, 409, 413, + 417, 423, 423, 430, 431, 434, 438, 442, 452, 461, + 461, 476, 476, 490, 493, 499, 499, 508, 509, 510, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 591, 597, 603, 609, 615, 621, 627, 633, + 639, 645, 651, 657, 657, 666, 672, 672, 681, 687, + 693, 699, 705, 711, 717, 717, 726, 729, 732, 735, + 738, 744, 744, 753, 753, 762, 771, 781, 781, 790, + 793, 796, 799, 804, 810, 816, 822, 828, 828, 837, + 837, 846, 852, 858, 864, 870, 876, 882, 888, 894, + 894, 906, 907, 908, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 925, 925, 934, 934, 945, 945, + 953, 954, 957, 957, 965, 967, 971, 977, 983, 989, + 995, 995, 1008, 1008, 1019, 1020, 1021, 1026, 1027, 1030, + 1030, 1049, 1049, 1067, 1067, 1080, 1080, 1091, 1092, 1095, + 1096, 1097, 1102, 1102, 1112, 1113, 1114, 1119, 1120, 1121, + 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + 1142, 1145, 1145, 1154, 1154, 1163, 1163, 1172, 1172, 1181, + 1187, 1187, 1196, 1202, 1208, 1214, 1220, 1226, 1232, 1238, + 1244, 1250, 1250, 1258, 1259, 1260, 1263, 1269, 1275, 1275, + 1284, 1284, 1293, 1293, 1302, 1302, 1311, 1311, 1320, 1320, + 1331, 1332, 1333, 1338, 1339, 1340, 1341, 1342, 1345, 1350, + 1355, 1360, 1365, 1372, 1372, 1385, 1386, 1387, 1392, 1393, + 1394, 1395, 1396, 1397, 1400, 1406, 1412, 1418, 1418, 1429, + 1430, 1433, 1434, 1435, 1440, 1440, 1450, 1450, 1460, 1461, + 1462, 1465, 1468, 1469, 1472, 1472, 1481, 1481, 1490, 1490, + 1502, 1503, 1504, 1509, 1510, 1511, 1512, 1513, 1514, 1517, + 1523, 1529, 1535, 1541, 1547, 1556, 1556, 1570, 1571, 1574, + 1575, 1576, 1585, 1585, 1611, 1611, 1622, 1623, 1624, 1630, + 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, + 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, + 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, + 1681, 1682, 1685, 1685, 1694, 1694, 1703, 1703, 1712, 1712, + 1721, 1721, 1730, 1730, 1740, 1740, 1752, 1752, 1763, 1763, + 1774, 1780, 1786, 1792, 1800, 1800, 1812, 1813, 1817, 1818, + 1819, 1824, 1824, 1832, 1833, 1834, 1839, 1840, 1841, 1842, + 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, + 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, + 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, + 1883, 1884, 1885, 1886, 1893, 1893, 1907, 1907, 1916, 1917, + 1920, 1921, 1922, 1929, 1929, 1944, 1944, 1958, 1959, 1962, + 1963, 1964, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, + 1977, 1978, 1981, 1983, 1989, 1991, 1991, 2000, 2000, 2009, + 2009, 2018, 2020, 2020, 2029, 2039, 2039, 2052, 2053, 2058, + 2059, 2060, 2067, 2067, 2079, 2079, 2091, 2092, 2097, 2098, + 2099, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, + 2115, 2116, 2119, 2121, 2121, 2130, 2132, 2134, 2140, 2146, + 2152, 2152, 2166, 2166, 2179, 2180, 2183, 2184, 2185, 2190, + 2190, 2200, 2200, 2210, 2211, 2212, 2217, 2218, 2219, 2220, + 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, + 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, + 2243, 2243, 2252, 2258, 2258, 2283, 2283, 2313, 2313, 2324, + 2325, 2328, 2329, 2330, 2335, 2335, 2344, 2344, 2353, 2354, + 2357, 2358, 2359, 2365, 2366, 2367, 2368, 2369, 2370, 2371, + 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2382, 2382, + 2391, 2391, 2400, 2400, 2409, 2409, 2418, 2418, 2427, 2427, + 2436, 2436, 2445, 2445, 2454, 2454, 2463, 2463, 2472, 2472, + 2486, 2486, 2497, 2500, 2500, 2514, 2514, 2525, 2526, 2527, + 2532, 2532, 2542, 2543, 2546, 2547, 2548, 2553, 2554, 2555, + 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, + 2566, 2567, 2568, 2569, 2572, 2574, 2574, 2583, 2583, 2593, + 2599, 2607, 2615, 2615, 2627, 2627, 2639, 2640, 2643, 2644, + 2645, 2650, 2650, 2658, 2659, 2660, 2665, 2666, 2667, 2668, + 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2680, + 2680, 2689, 2690, 2691, 2694, 2694, 2704, 2704, 2714, 2720, + 2726, 2726, 2737, 2738, 2741, 2742, 2743, 2748, 2748, 2756, + 2757, 2758, 2763, 2764, 2765, 2766, 2767, 2770, 2770, 2781, + 2781, 2794, 2795, 2796, 2801, 2802, 2803, 2804, 2805, 2806, + 2807, 2810, 2810, 2818, 2821, 2821, 2830, 2830, 2839, 2839, + 2850, 2851, 2854, 2855, 2856, 2861, 2861, 2869, 2870, 2871, + 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2885, 2885, 2894, + 2894, 2905, 2905, 2918, 2919, 2920, 2925, 2926, 2927, 2928, + 2929, 2930, 2933, 2939, 2939, 2948, 2954, 2954, 2964, 2964, + 2977, 2977, 2987, 2988, 2989, 2994, 2995, 2996, 2997, 2998, + 2999, 3000, 3001, 3002, 3003, 3004, 3007, 3013, 3013, 3022, + 3028, 3028, 3037, 3043, 3049, 3049, 3058, 3059, 3062, 3062, + 3073, 3073, 3085, 3085, 3095, 3096, 3097, 3103, 3104, 3107, + 3107, 3118, 3126, 3126, 3139, 3140, 3141, 3147, 3147, 3155, + 3156, 3157, 3162, 3163, 3164, 3165, 3166, 3167, 3168, 3171, + 3177, 3177, 3186, 3186, 3197, 3198, 3199, 3204, 3204, 3212, + 3213, 3214, 3219, 3220, 3221, 3222, 3223, 3226, 3226, 3235, + 3241, 3247, 3253, 3253, 3262, 3262, 3273, 3274, 3275, 3280, + 3281, 3282, 3283, 3284, 3287, 3293, 3299, 3305 }; void @@ -6903,9 +6931,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6907 "dhcp4_parser.cc" +#line 6935 "dhcp4_parser.cc" -#line 3300 "dhcp4_parser.yy" +#line 3311 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 45ad5d8869..67253e7948 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -560,177 +560,178 @@ namespace isc { namespace dhcp { TOKEN_TRUST_ANCHOR = 315, // "trust-anchor" TOKEN_CERT_FILE = 316, // "cert-file" TOKEN_KEY_FILE = 317, // "key-file" - TOKEN_CIPHER_LIST = 318, // "cipher-list" - TOKEN_VALID_LIFETIME = 319, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 320, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 321, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 322, // "renew-timer" - TOKEN_REBIND_TIMER = 323, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 324, // "calculate-tee-times" - TOKEN_T1_PERCENT = 325, // "t1-percent" - TOKEN_T2_PERCENT = 326, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 327, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 328, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 329, // "decline-probation-period" - TOKEN_SERVER_TAG = 330, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 331, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 332, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 333, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 334, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 335, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 336, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 337, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 338, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 339, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 340, // "ddns-use-conflict-resolution" - TOKEN_DDNS_TTL_PERCENT = 341, // "ddns-ttl-percent" - TOKEN_DDNS_TTL = 342, // "ddns-ttl" - TOKEN_DDNS_TTL_MIN = 343, // "ddns-ttl-min" - TOKEN_DDNS_TTL_MAX = 344, // "ddns-ttl-mix" - TOKEN_STORE_EXTENDED_INFO = 345, // "store-extended-info" - TOKEN_SUBNET4 = 346, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 347, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 348, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 349, // "4o6-subnet" - TOKEN_OPTION_DEF = 350, // "option-def" - TOKEN_OPTION_DATA = 351, // "option-data" - TOKEN_NAME = 352, // "name" - TOKEN_DATA = 353, // "data" - TOKEN_CODE = 354, // "code" - TOKEN_SPACE = 355, // "space" - TOKEN_CSV_FORMAT = 356, // "csv-format" - TOKEN_ALWAYS_SEND = 357, // "always-send" - TOKEN_NEVER_SEND = 358, // "never-send" - TOKEN_RECORD_TYPES = 359, // "record-types" - TOKEN_ENCAPSULATE = 360, // "encapsulate" - TOKEN_ARRAY = 361, // "array" - TOKEN_PARKED_PACKET_LIMIT = 362, // "parked-packet-limit" - TOKEN_ALLOCATOR = 363, // "allocator" - TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 364, // "ddns-conflict-resolution-mode" - TOKEN_CHECK_WITH_DHCID = 365, // "check-with-dhcid" - TOKEN_NO_CHECK_WITH_DHCID = 366, // "no-check-with-dhcid" - TOKEN_CHECK_EXISTS_WITH_DHCID = 367, // "check-exists-with-dhcid" - TOKEN_NO_CHECK_WITHOUT_DHCID = 368, // "no-check-without-dhcid" - TOKEN_SHARED_NETWORKS = 369, // "shared-networks" - TOKEN_POOLS = 370, // "pools" - TOKEN_POOL = 371, // "pool" - TOKEN_USER_CONTEXT = 372, // "user-context" - TOKEN_COMMENT = 373, // "comment" - TOKEN_SUBNET = 374, // "subnet" - TOKEN_INTERFACE = 375, // "interface" - TOKEN_ID = 376, // "id" - TOKEN_RESERVATIONS_GLOBAL = 377, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 378, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 379, // "reservations-out-of-pool" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 380, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 381, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 382, // "require-client-classes" - TOKEN_EVALUATE_ADDITIONAL_CLASSES = 383, // "evaluate-additional-classes" - TOKEN_TEST = 384, // "test" - TOKEN_TEMPLATE_TEST = 385, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 386, // "only-if-required" - TOKEN_ONLY_IN_ADDITIONAL_LIST = 387, // "only-in-additional-list" - TOKEN_CLIENT_CLASS = 388, // "client-class" - TOKEN_POOL_ID = 389, // "pool-id" - TOKEN_RESERVATIONS = 390, // "reservations" - TOKEN_IP_ADDRESS = 391, // "ip-address" - TOKEN_DUID = 392, // "duid" - TOKEN_HW_ADDRESS = 393, // "hw-address" - TOKEN_CIRCUIT_ID = 394, // "circuit-id" - TOKEN_CLIENT_ID = 395, // "client-id" - TOKEN_HOSTNAME = 396, // "hostname" - TOKEN_FLEX_ID = 397, // "flex-id" - TOKEN_RELAY = 398, // "relay" - TOKEN_IP_ADDRESSES = 399, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 400, // "hooks-libraries" - TOKEN_LIBRARY = 401, // "library" - TOKEN_PARAMETERS = 402, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 403, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 404, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 405, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 406, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 407, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 408, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 409, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 410, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 411, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 412, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 413, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 414, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 415, // "control-socket" - TOKEN_CONTROL_SOCKETS = 416, // "control-sockets" - TOKEN_SOCKET_TYPE = 417, // "socket-type" - TOKEN_UNIX = 418, // "unix" - TOKEN_HTTP = 419, // "http" - TOKEN_HTTPS = 420, // "https" - TOKEN_SOCKET_NAME = 421, // "socket-name" - TOKEN_SOCKET_ADDRESS = 422, // "socket-address" - TOKEN_SOCKET_PORT = 423, // "socket-port" - TOKEN_AUTHENTICATION = 424, // "authentication" - TOKEN_BASIC = 425, // "basic" - TOKEN_REALM = 426, // "realm" - TOKEN_DIRECTORY = 427, // "directory" - TOKEN_CLIENTS = 428, // "clients" - TOKEN_USER_FILE = 429, // "user-file" - TOKEN_PASSWORD_FILE = 430, // "password-file" - TOKEN_CERT_REQUIRED = 431, // "cert-required" - TOKEN_HTTP_HEADERS = 432, // "http-headers" - TOKEN_VALUE = 433, // "value" - TOKEN_DHCP_QUEUE_CONTROL = 434, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 435, // "enable-queue" - TOKEN_QUEUE_TYPE = 436, // "queue-type" - TOKEN_CAPACITY = 437, // "capacity" - TOKEN_DHCP_DDNS = 438, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 439, // "enable-updates" - TOKEN_SERVER_IP = 440, // "server-ip" - TOKEN_SERVER_PORT = 441, // "server-port" - TOKEN_SENDER_IP = 442, // "sender-ip" - TOKEN_SENDER_PORT = 443, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 444, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 445, // "ncr-protocol" - TOKEN_NCR_FORMAT = 446, // "ncr-format" - TOKEN_TCP = 447, // "tcp" - TOKEN_JSON = 448, // "JSON" - TOKEN_WHEN_PRESENT = 449, // "when-present" - TOKEN_NEVER = 450, // "never" - TOKEN_ALWAYS = 451, // "always" - TOKEN_WHEN_NOT_PRESENT = 452, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 453, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 454, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 455, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 456, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 457, // "reservations-lookup-first" - TOKEN_LOGGERS = 458, // "loggers" - TOKEN_OUTPUT_OPTIONS = 459, // "output-options" - TOKEN_OUTPUT = 460, // "output" - TOKEN_DEBUGLEVEL = 461, // "debuglevel" - TOKEN_SEVERITY = 462, // "severity" - TOKEN_FLUSH = 463, // "flush" - TOKEN_MAXSIZE = 464, // "maxsize" - TOKEN_MAXVER = 465, // "maxver" - TOKEN_PATTERN = 466, // "pattern" - TOKEN_COMPATIBILITY = 467, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 468, // "lenient-option-parsing" - TOKEN_IGNORE_DHCP_SERVER_ID = 469, // "ignore-dhcp-server-identifier" - TOKEN_IGNORE_RAI_LINK_SEL = 470, // "ignore-rai-link-selection" - TOKEN_EXCLUDE_FIRST_LAST_24 = 471, // "exclude-first-last-24" - TOKEN_TOPLEVEL_JSON = 472, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 473, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 474, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 475, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 476, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 477, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 478, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 479, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 480, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 481, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 482, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 483, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 484, // SUB_CONFIG_CONTROL - TOKEN_STRING = 485, // "constant string" - TOKEN_INTEGER = 486, // "integer" - TOKEN_FLOAT = 487, // "floating point" - TOKEN_BOOLEAN = 488 // "boolean" + TOKEN_KEY_PASSWORD = 318, // "key-password" + TOKEN_CIPHER_LIST = 319, // "cipher-list" + TOKEN_VALID_LIFETIME = 320, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 321, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 322, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 323, // "renew-timer" + TOKEN_REBIND_TIMER = 324, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 325, // "calculate-tee-times" + TOKEN_T1_PERCENT = 326, // "t1-percent" + TOKEN_T2_PERCENT = 327, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 328, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 329, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 330, // "decline-probation-period" + TOKEN_SERVER_TAG = 331, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 332, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 333, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 334, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 335, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 336, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 337, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 338, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 339, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 340, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 341, // "ddns-use-conflict-resolution" + TOKEN_DDNS_TTL_PERCENT = 342, // "ddns-ttl-percent" + TOKEN_DDNS_TTL = 343, // "ddns-ttl" + TOKEN_DDNS_TTL_MIN = 344, // "ddns-ttl-min" + TOKEN_DDNS_TTL_MAX = 345, // "ddns-ttl-mix" + TOKEN_STORE_EXTENDED_INFO = 346, // "store-extended-info" + TOKEN_SUBNET4 = 347, // "subnet4" + TOKEN_SUBNET_4O6_INTERFACE = 348, // "4o6-interface" + TOKEN_SUBNET_4O6_INTERFACE_ID = 349, // "4o6-interface-id" + TOKEN_SUBNET_4O6_SUBNET = 350, // "4o6-subnet" + TOKEN_OPTION_DEF = 351, // "option-def" + TOKEN_OPTION_DATA = 352, // "option-data" + TOKEN_NAME = 353, // "name" + TOKEN_DATA = 354, // "data" + TOKEN_CODE = 355, // "code" + TOKEN_SPACE = 356, // "space" + TOKEN_CSV_FORMAT = 357, // "csv-format" + TOKEN_ALWAYS_SEND = 358, // "always-send" + TOKEN_NEVER_SEND = 359, // "never-send" + TOKEN_RECORD_TYPES = 360, // "record-types" + TOKEN_ENCAPSULATE = 361, // "encapsulate" + TOKEN_ARRAY = 362, // "array" + TOKEN_PARKED_PACKET_LIMIT = 363, // "parked-packet-limit" + TOKEN_ALLOCATOR = 364, // "allocator" + TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 365, // "ddns-conflict-resolution-mode" + TOKEN_CHECK_WITH_DHCID = 366, // "check-with-dhcid" + TOKEN_NO_CHECK_WITH_DHCID = 367, // "no-check-with-dhcid" + TOKEN_CHECK_EXISTS_WITH_DHCID = 368, // "check-exists-with-dhcid" + TOKEN_NO_CHECK_WITHOUT_DHCID = 369, // "no-check-without-dhcid" + TOKEN_SHARED_NETWORKS = 370, // "shared-networks" + TOKEN_POOLS = 371, // "pools" + TOKEN_POOL = 372, // "pool" + TOKEN_USER_CONTEXT = 373, // "user-context" + TOKEN_COMMENT = 374, // "comment" + TOKEN_SUBNET = 375, // "subnet" + TOKEN_INTERFACE = 376, // "interface" + TOKEN_ID = 377, // "id" + TOKEN_RESERVATIONS_GLOBAL = 378, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 379, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 380, // "reservations-out-of-pool" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 381, // "host-reservation-identifiers" + TOKEN_CLIENT_CLASSES = 382, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 383, // "require-client-classes" + TOKEN_EVALUATE_ADDITIONAL_CLASSES = 384, // "evaluate-additional-classes" + TOKEN_TEST = 385, // "test" + TOKEN_TEMPLATE_TEST = 386, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 387, // "only-if-required" + TOKEN_ONLY_IN_ADDITIONAL_LIST = 388, // "only-in-additional-list" + TOKEN_CLIENT_CLASS = 389, // "client-class" + TOKEN_POOL_ID = 390, // "pool-id" + TOKEN_RESERVATIONS = 391, // "reservations" + TOKEN_IP_ADDRESS = 392, // "ip-address" + TOKEN_DUID = 393, // "duid" + TOKEN_HW_ADDRESS = 394, // "hw-address" + TOKEN_CIRCUIT_ID = 395, // "circuit-id" + TOKEN_CLIENT_ID = 396, // "client-id" + TOKEN_HOSTNAME = 397, // "hostname" + TOKEN_FLEX_ID = 398, // "flex-id" + TOKEN_RELAY = 399, // "relay" + TOKEN_IP_ADDRESSES = 400, // "ip-addresses" + TOKEN_HOOKS_LIBRARIES = 401, // "hooks-libraries" + TOKEN_LIBRARY = 402, // "library" + TOKEN_PARAMETERS = 403, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 404, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 405, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 406, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 407, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 408, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 409, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 410, // "unwarned-reclaim-cycles" + TOKEN_DHCP4O6_PORT = 411, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 412, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 413, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 414, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 415, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 416, // "control-socket" + TOKEN_CONTROL_SOCKETS = 417, // "control-sockets" + TOKEN_SOCKET_TYPE = 418, // "socket-type" + TOKEN_UNIX = 419, // "unix" + TOKEN_HTTP = 420, // "http" + TOKEN_HTTPS = 421, // "https" + TOKEN_SOCKET_NAME = 422, // "socket-name" + TOKEN_SOCKET_ADDRESS = 423, // "socket-address" + TOKEN_SOCKET_PORT = 424, // "socket-port" + TOKEN_AUTHENTICATION = 425, // "authentication" + TOKEN_BASIC = 426, // "basic" + TOKEN_REALM = 427, // "realm" + TOKEN_DIRECTORY = 428, // "directory" + TOKEN_CLIENTS = 429, // "clients" + TOKEN_USER_FILE = 430, // "user-file" + TOKEN_PASSWORD_FILE = 431, // "password-file" + TOKEN_CERT_REQUIRED = 432, // "cert-required" + TOKEN_HTTP_HEADERS = 433, // "http-headers" + TOKEN_VALUE = 434, // "value" + TOKEN_DHCP_QUEUE_CONTROL = 435, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 436, // "enable-queue" + TOKEN_QUEUE_TYPE = 437, // "queue-type" + TOKEN_CAPACITY = 438, // "capacity" + TOKEN_DHCP_DDNS = 439, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 440, // "enable-updates" + TOKEN_SERVER_IP = 441, // "server-ip" + TOKEN_SERVER_PORT = 442, // "server-port" + TOKEN_SENDER_IP = 443, // "sender-ip" + TOKEN_SENDER_PORT = 444, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 445, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 446, // "ncr-protocol" + TOKEN_NCR_FORMAT = 447, // "ncr-format" + TOKEN_TCP = 448, // "tcp" + TOKEN_JSON = 449, // "JSON" + TOKEN_WHEN_PRESENT = 450, // "when-present" + TOKEN_NEVER = 451, // "never" + TOKEN_ALWAYS = 452, // "always" + TOKEN_WHEN_NOT_PRESENT = 453, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 454, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 455, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 456, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 457, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 458, // "reservations-lookup-first" + TOKEN_LOGGERS = 459, // "loggers" + TOKEN_OUTPUT_OPTIONS = 460, // "output-options" + TOKEN_OUTPUT = 461, // "output" + TOKEN_DEBUGLEVEL = 462, // "debuglevel" + TOKEN_SEVERITY = 463, // "severity" + TOKEN_FLUSH = 464, // "flush" + TOKEN_MAXSIZE = 465, // "maxsize" + TOKEN_MAXVER = 466, // "maxver" + TOKEN_PATTERN = 467, // "pattern" + TOKEN_COMPATIBILITY = 468, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 469, // "lenient-option-parsing" + TOKEN_IGNORE_DHCP_SERVER_ID = 470, // "ignore-dhcp-server-identifier" + TOKEN_IGNORE_RAI_LINK_SEL = 471, // "ignore-rai-link-selection" + TOKEN_EXCLUDE_FIRST_LAST_24 = 472, // "exclude-first-last-24" + TOKEN_TOPLEVEL_JSON = 473, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 474, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 475, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 476, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 477, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 478, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 479, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 480, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 481, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 482, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 483, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 484, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 485, // SUB_CONFIG_CONTROL + TOKEN_STRING = 486, // "constant string" + TOKEN_INTEGER = 487, // "integer" + TOKEN_FLOAT = 488, // "floating point" + TOKEN_BOOLEAN = 489 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -747,7 +748,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 234, ///< Number of tokens. + YYNTOKENS = 235, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -812,658 +813,661 @@ namespace isc { namespace dhcp { S_TRUST_ANCHOR = 60, // "trust-anchor" S_CERT_FILE = 61, // "cert-file" S_KEY_FILE = 62, // "key-file" - S_CIPHER_LIST = 63, // "cipher-list" - S_VALID_LIFETIME = 64, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 65, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 66, // "max-valid-lifetime" - S_RENEW_TIMER = 67, // "renew-timer" - S_REBIND_TIMER = 68, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 69, // "calculate-tee-times" - S_T1_PERCENT = 70, // "t1-percent" - S_T2_PERCENT = 71, // "t2-percent" - S_CACHE_THRESHOLD = 72, // "cache-threshold" - S_CACHE_MAX_AGE = 73, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 74, // "decline-probation-period" - S_SERVER_TAG = 75, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 76, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 77, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 78, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 79, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 80, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 81, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 82, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 83, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 84, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 85, // "ddns-use-conflict-resolution" - S_DDNS_TTL_PERCENT = 86, // "ddns-ttl-percent" - S_DDNS_TTL = 87, // "ddns-ttl" - S_DDNS_TTL_MIN = 88, // "ddns-ttl-min" - S_DDNS_TTL_MAX = 89, // "ddns-ttl-mix" - S_STORE_EXTENDED_INFO = 90, // "store-extended-info" - S_SUBNET4 = 91, // "subnet4" - S_SUBNET_4O6_INTERFACE = 92, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 93, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 94, // "4o6-subnet" - S_OPTION_DEF = 95, // "option-def" - S_OPTION_DATA = 96, // "option-data" - S_NAME = 97, // "name" - S_DATA = 98, // "data" - S_CODE = 99, // "code" - S_SPACE = 100, // "space" - S_CSV_FORMAT = 101, // "csv-format" - S_ALWAYS_SEND = 102, // "always-send" - S_NEVER_SEND = 103, // "never-send" - S_RECORD_TYPES = 104, // "record-types" - S_ENCAPSULATE = 105, // "encapsulate" - S_ARRAY = 106, // "array" - S_PARKED_PACKET_LIMIT = 107, // "parked-packet-limit" - S_ALLOCATOR = 108, // "allocator" - S_DDNS_CONFLICT_RESOLUTION_MODE = 109, // "ddns-conflict-resolution-mode" - S_CHECK_WITH_DHCID = 110, // "check-with-dhcid" - S_NO_CHECK_WITH_DHCID = 111, // "no-check-with-dhcid" - S_CHECK_EXISTS_WITH_DHCID = 112, // "check-exists-with-dhcid" - S_NO_CHECK_WITHOUT_DHCID = 113, // "no-check-without-dhcid" - S_SHARED_NETWORKS = 114, // "shared-networks" - S_POOLS = 115, // "pools" - S_POOL = 116, // "pool" - S_USER_CONTEXT = 117, // "user-context" - S_COMMENT = 118, // "comment" - S_SUBNET = 119, // "subnet" - S_INTERFACE = 120, // "interface" - S_ID = 121, // "id" - S_RESERVATIONS_GLOBAL = 122, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 123, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 124, // "reservations-out-of-pool" - S_HOST_RESERVATION_IDENTIFIERS = 125, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 126, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 127, // "require-client-classes" - S_EVALUATE_ADDITIONAL_CLASSES = 128, // "evaluate-additional-classes" - S_TEST = 129, // "test" - S_TEMPLATE_TEST = 130, // "template-test" - S_ONLY_IF_REQUIRED = 131, // "only-if-required" - S_ONLY_IN_ADDITIONAL_LIST = 132, // "only-in-additional-list" - S_CLIENT_CLASS = 133, // "client-class" - S_POOL_ID = 134, // "pool-id" - S_RESERVATIONS = 135, // "reservations" - S_IP_ADDRESS = 136, // "ip-address" - S_DUID = 137, // "duid" - S_HW_ADDRESS = 138, // "hw-address" - S_CIRCUIT_ID = 139, // "circuit-id" - S_CLIENT_ID = 140, // "client-id" - S_HOSTNAME = 141, // "hostname" - S_FLEX_ID = 142, // "flex-id" - S_RELAY = 143, // "relay" - S_IP_ADDRESSES = 144, // "ip-addresses" - S_HOOKS_LIBRARIES = 145, // "hooks-libraries" - S_LIBRARY = 146, // "library" - S_PARAMETERS = 147, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 148, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 149, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 150, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 151, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 152, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 153, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 154, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 155, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 156, // "multi-threading" - S_ENABLE_MULTI_THREADING = 157, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 158, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 159, // "packet-queue-size" - S_CONTROL_SOCKET = 160, // "control-socket" - S_CONTROL_SOCKETS = 161, // "control-sockets" - S_SOCKET_TYPE = 162, // "socket-type" - S_UNIX = 163, // "unix" - S_HTTP = 164, // "http" - S_HTTPS = 165, // "https" - S_SOCKET_NAME = 166, // "socket-name" - S_SOCKET_ADDRESS = 167, // "socket-address" - S_SOCKET_PORT = 168, // "socket-port" - S_AUTHENTICATION = 169, // "authentication" - S_BASIC = 170, // "basic" - S_REALM = 171, // "realm" - S_DIRECTORY = 172, // "directory" - S_CLIENTS = 173, // "clients" - S_USER_FILE = 174, // "user-file" - S_PASSWORD_FILE = 175, // "password-file" - S_CERT_REQUIRED = 176, // "cert-required" - S_HTTP_HEADERS = 177, // "http-headers" - S_VALUE = 178, // "value" - S_DHCP_QUEUE_CONTROL = 179, // "dhcp-queue-control" - S_ENABLE_QUEUE = 180, // "enable-queue" - S_QUEUE_TYPE = 181, // "queue-type" - S_CAPACITY = 182, // "capacity" - S_DHCP_DDNS = 183, // "dhcp-ddns" - S_ENABLE_UPDATES = 184, // "enable-updates" - S_SERVER_IP = 185, // "server-ip" - S_SERVER_PORT = 186, // "server-port" - S_SENDER_IP = 187, // "sender-ip" - S_SENDER_PORT = 188, // "sender-port" - S_MAX_QUEUE_SIZE = 189, // "max-queue-size" - S_NCR_PROTOCOL = 190, // "ncr-protocol" - S_NCR_FORMAT = 191, // "ncr-format" - S_TCP = 192, // "tcp" - S_JSON = 193, // "JSON" - S_WHEN_PRESENT = 194, // "when-present" - S_NEVER = 195, // "never" - S_ALWAYS = 196, // "always" - S_WHEN_NOT_PRESENT = 197, // "when-not-present" - S_HOSTNAME_CHAR_SET = 198, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 199, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 200, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 201, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 202, // "reservations-lookup-first" - S_LOGGERS = 203, // "loggers" - S_OUTPUT_OPTIONS = 204, // "output-options" - S_OUTPUT = 205, // "output" - S_DEBUGLEVEL = 206, // "debuglevel" - S_SEVERITY = 207, // "severity" - S_FLUSH = 208, // "flush" - S_MAXSIZE = 209, // "maxsize" - S_MAXVER = 210, // "maxver" - S_PATTERN = 211, // "pattern" - S_COMPATIBILITY = 212, // "compatibility" - S_LENIENT_OPTION_PARSING = 213, // "lenient-option-parsing" - S_IGNORE_DHCP_SERVER_ID = 214, // "ignore-dhcp-server-identifier" - S_IGNORE_RAI_LINK_SEL = 215, // "ignore-rai-link-selection" - S_EXCLUDE_FIRST_LAST_24 = 216, // "exclude-first-last-24" - S_TOPLEVEL_JSON = 217, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 218, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 219, // SUB_DHCP4 - S_SUB_INTERFACES4 = 220, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 221, // SUB_SUBNET4 - S_SUB_POOL4 = 222, // SUB_POOL4 - S_SUB_RESERVATION = 223, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 224, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 225, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 226, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 227, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 228, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 229, // SUB_CONFIG_CONTROL - S_STRING = 230, // "constant string" - S_INTEGER = 231, // "integer" - S_FLOAT = 232, // "floating point" - S_BOOLEAN = 233, // "boolean" - S_YYACCEPT = 234, // $accept - S_start = 235, // start - S_236_1 = 236, // $@1 - S_237_2 = 237, // $@2 - S_238_3 = 238, // $@3 - S_239_4 = 239, // $@4 - S_240_5 = 240, // $@5 - S_241_6 = 241, // $@6 - S_242_7 = 242, // $@7 - S_243_8 = 243, // $@8 - S_244_9 = 244, // $@9 - S_245_10 = 245, // $@10 - S_246_11 = 246, // $@11 - S_247_12 = 247, // $@12 - S_248_13 = 248, // $@13 - S_value = 249, // value - S_sub_json = 250, // sub_json - S_map2 = 251, // map2 - S_252_14 = 252, // $@14 - S_map_value = 253, // map_value - S_map_content = 254, // map_content - S_not_empty_map = 255, // not_empty_map - S_list_generic = 256, // list_generic - S_257_15 = 257, // $@15 - S_list_content = 258, // list_content - S_not_empty_list = 259, // not_empty_list - S_list_strings = 260, // list_strings - S_261_16 = 261, // $@16 - S_list_strings_content = 262, // list_strings_content - S_not_empty_list_strings = 263, // not_empty_list_strings - S_unknown_map_entry = 264, // unknown_map_entry - S_syntax_map = 265, // syntax_map - S_266_17 = 266, // $@17 - S_global_object = 267, // global_object - S_268_18 = 268, // $@18 - S_global_object_comma = 269, // global_object_comma - S_sub_dhcp4 = 270, // sub_dhcp4 - S_271_19 = 271, // $@19 - S_global_params = 272, // global_params - S_global_param = 273, // global_param - S_valid_lifetime = 274, // valid_lifetime - S_min_valid_lifetime = 275, // min_valid_lifetime - S_max_valid_lifetime = 276, // max_valid_lifetime - S_renew_timer = 277, // renew_timer - S_rebind_timer = 278, // rebind_timer - S_calculate_tee_times = 279, // calculate_tee_times - S_t1_percent = 280, // t1_percent - S_t2_percent = 281, // t2_percent - S_cache_threshold = 282, // cache_threshold - S_cache_max_age = 283, // cache_max_age - S_decline_probation_period = 284, // decline_probation_period - S_server_tag = 285, // server_tag - S_286_20 = 286, // $@20 - S_parked_packet_limit = 287, // parked_packet_limit - S_allocator = 288, // allocator - S_289_21 = 289, // $@21 - S_echo_client_id = 290, // echo_client_id - S_match_client_id = 291, // match_client_id - S_authoritative = 292, // authoritative - S_ddns_send_updates = 293, // ddns_send_updates - S_ddns_override_no_update = 294, // ddns_override_no_update - S_ddns_override_client_update = 295, // ddns_override_client_update - S_ddns_replace_client_name = 296, // ddns_replace_client_name - S_297_22 = 297, // $@22 - S_ddns_replace_client_name_value = 298, // ddns_replace_client_name_value - S_ddns_generated_prefix = 299, // ddns_generated_prefix - S_300_23 = 300, // $@23 - S_ddns_qualifying_suffix = 301, // ddns_qualifying_suffix - S_302_24 = 302, // $@24 - S_ddns_update_on_renew = 303, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 304, // ddns_use_conflict_resolution - S_ddns_conflict_resolution_mode = 305, // ddns_conflict_resolution_mode - S_306_25 = 306, // $@25 - S_ddns_conflict_resolution_mode_value = 307, // ddns_conflict_resolution_mode_value - S_ddns_ttl_percent = 308, // ddns_ttl_percent - S_ddns_ttl = 309, // ddns_ttl - S_ddns_ttl_min = 310, // ddns_ttl_min - S_ddns_ttl_max = 311, // ddns_ttl_max - S_hostname_char_set = 312, // hostname_char_set - S_313_26 = 313, // $@26 - S_hostname_char_replacement = 314, // hostname_char_replacement - S_315_27 = 315, // $@27 - S_store_extended_info = 316, // store_extended_info - S_statistic_default_sample_count = 317, // statistic_default_sample_count - S_statistic_default_sample_age = 318, // statistic_default_sample_age - S_early_global_reservations_lookup = 319, // early_global_reservations_lookup - S_ip_reservations_unique = 320, // ip_reservations_unique - S_reservations_lookup_first = 321, // reservations_lookup_first - S_offer_lifetime = 322, // offer_lifetime - S_stash_agent_options = 323, // stash_agent_options - S_interfaces_config = 324, // interfaces_config - S_325_28 = 325, // $@28 - S_interfaces_config_params = 326, // interfaces_config_params - S_interfaces_config_param = 327, // interfaces_config_param - S_sub_interfaces4 = 328, // sub_interfaces4 - S_329_29 = 329, // $@29 - S_interfaces_list = 330, // interfaces_list - S_331_30 = 331, // $@30 - S_dhcp_socket_type = 332, // dhcp_socket_type - S_333_31 = 333, // $@31 - S_socket_type = 334, // socket_type - S_outbound_interface = 335, // outbound_interface - S_336_32 = 336, // $@32 - S_outbound_interface_value = 337, // outbound_interface_value - S_re_detect = 338, // re_detect - S_service_sockets_require_all = 339, // service_sockets_require_all - S_service_sockets_retry_wait_time = 340, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 341, // service_sockets_max_retries - S_lease_database = 342, // lease_database - S_343_33 = 343, // $@33 - S_sanity_checks = 344, // sanity_checks - S_345_34 = 345, // $@34 - S_sanity_checks_params = 346, // sanity_checks_params - S_sanity_checks_param = 347, // sanity_checks_param - S_lease_checks = 348, // lease_checks - S_349_35 = 349, // $@35 - S_extended_info_checks = 350, // extended_info_checks - S_351_36 = 351, // $@36 - S_hosts_database = 352, // hosts_database - S_353_37 = 353, // $@37 - S_hosts_databases = 354, // hosts_databases - S_355_38 = 355, // $@38 - S_database_list = 356, // database_list - S_not_empty_database_list = 357, // not_empty_database_list - S_database = 358, // database - S_359_39 = 359, // $@39 - S_database_map_params = 360, // database_map_params - S_database_map_param = 361, // database_map_param - S_database_type = 362, // database_type - S_363_40 = 363, // $@40 - S_user = 364, // user - S_365_41 = 365, // $@41 - S_password = 366, // password - S_367_42 = 367, // $@42 - S_host = 368, // host - S_369_43 = 369, // $@43 - S_port = 370, // port - S_name = 371, // name - S_372_44 = 372, // $@44 - S_persist = 373, // persist - S_lfc_interval = 374, // lfc_interval - S_readonly = 375, // readonly - S_connect_timeout = 376, // connect_timeout - S_read_timeout = 377, // read_timeout - S_write_timeout = 378, // write_timeout - S_tcp_user_timeout = 379, // tcp_user_timeout - S_max_reconnect_tries = 380, // max_reconnect_tries - S_reconnect_wait_time = 381, // reconnect_wait_time - S_on_fail = 382, // on_fail - S_383_45 = 383, // $@45 - S_on_fail_mode = 384, // on_fail_mode - S_retry_on_startup = 385, // retry_on_startup - S_max_row_errors = 386, // max_row_errors - S_trust_anchor = 387, // trust_anchor - S_388_46 = 388, // $@46 - S_cert_file = 389, // cert_file - S_390_47 = 390, // $@47 - S_key_file = 391, // key_file - S_392_48 = 392, // $@48 - S_cipher_list = 393, // cipher_list - S_394_49 = 394, // $@49 - S_host_reservation_identifiers = 395, // host_reservation_identifiers - S_396_50 = 396, // $@50 - S_host_reservation_identifiers_list = 397, // host_reservation_identifiers_list - S_host_reservation_identifier = 398, // host_reservation_identifier - S_duid_id = 399, // duid_id - S_hw_address_id = 400, // hw_address_id - S_circuit_id = 401, // circuit_id - S_client_id = 402, // client_id - S_flex_id = 403, // flex_id - S_dhcp_multi_threading = 404, // dhcp_multi_threading - S_405_51 = 405, // $@51 - S_multi_threading_params = 406, // multi_threading_params - S_multi_threading_param = 407, // multi_threading_param - S_enable_multi_threading = 408, // enable_multi_threading - S_thread_pool_size = 409, // thread_pool_size - S_packet_queue_size = 410, // packet_queue_size - S_hooks_libraries = 411, // hooks_libraries - S_412_52 = 412, // $@52 - S_hooks_libraries_list = 413, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 414, // not_empty_hooks_libraries_list - S_hooks_library = 415, // hooks_library - S_416_53 = 416, // $@53 - S_sub_hooks_library = 417, // sub_hooks_library - S_418_54 = 418, // $@54 - S_hooks_params = 419, // hooks_params - S_hooks_param = 420, // hooks_param - S_library = 421, // library - S_422_55 = 422, // $@55 - S_parameters = 423, // parameters - S_424_56 = 424, // $@56 - S_expired_leases_processing = 425, // expired_leases_processing - S_426_57 = 426, // $@57 - S_expired_leases_params = 427, // expired_leases_params - S_expired_leases_param = 428, // expired_leases_param - S_reclaim_timer_wait_time = 429, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 430, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 431, // hold_reclaimed_time - S_max_reclaim_leases = 432, // max_reclaim_leases - S_max_reclaim_time = 433, // max_reclaim_time - S_unwarned_reclaim_cycles = 434, // unwarned_reclaim_cycles - S_subnet4_list = 435, // subnet4_list - S_436_58 = 436, // $@58 - S_subnet4_list_content = 437, // subnet4_list_content - S_not_empty_subnet4_list = 438, // not_empty_subnet4_list - S_subnet4 = 439, // subnet4 - S_440_59 = 440, // $@59 - S_sub_subnet4 = 441, // sub_subnet4 - S_442_60 = 442, // $@60 - S_subnet4_params = 443, // subnet4_params - S_subnet4_param = 444, // subnet4_param - S_subnet = 445, // subnet - S_446_61 = 446, // $@61 - S_subnet_4o6_interface = 447, // subnet_4o6_interface - S_448_62 = 448, // $@62 - S_subnet_4o6_interface_id = 449, // subnet_4o6_interface_id - S_450_63 = 450, // $@63 - S_subnet_4o6_subnet = 451, // subnet_4o6_subnet - S_452_64 = 452, // $@64 - S_interface = 453, // interface - S_454_65 = 454, // $@65 - S_client_class = 455, // client_class - S_456_66 = 456, // $@66 - S_network_client_classes = 457, // network_client_classes - S_458_67 = 458, // $@67 - S_require_client_classes = 459, // require_client_classes - S_460_68 = 460, // $@68 - S_evaluate_additional_classes = 461, // evaluate_additional_classes - S_462_69 = 462, // $@69 - S_reservations_global = 463, // reservations_global - S_reservations_in_subnet = 464, // reservations_in_subnet - S_reservations_out_of_pool = 465, // reservations_out_of_pool - S_id = 466, // id - S_shared_networks = 467, // shared_networks - S_468_70 = 468, // $@70 - S_shared_networks_content = 469, // shared_networks_content - S_shared_networks_list = 470, // shared_networks_list - S_shared_network = 471, // shared_network - S_472_71 = 472, // $@71 - S_shared_network_params = 473, // shared_network_params - S_shared_network_param = 474, // shared_network_param - S_option_def_list = 475, // option_def_list - S_476_72 = 476, // $@72 - S_sub_option_def_list = 477, // sub_option_def_list - S_478_73 = 478, // $@73 - S_option_def_list_content = 479, // option_def_list_content - S_not_empty_option_def_list = 480, // not_empty_option_def_list - S_option_def_entry = 481, // option_def_entry - S_482_74 = 482, // $@74 - S_sub_option_def = 483, // sub_option_def - S_484_75 = 484, // $@75 - S_option_def_params = 485, // option_def_params - S_not_empty_option_def_params = 486, // not_empty_option_def_params - S_option_def_param = 487, // option_def_param - S_option_def_name = 488, // option_def_name - S_code = 489, // code - S_option_def_code = 490, // option_def_code - S_option_def_type = 491, // option_def_type - S_492_76 = 492, // $@76 - S_option_def_record_types = 493, // option_def_record_types - S_494_77 = 494, // $@77 - S_space = 495, // space - S_496_78 = 496, // $@78 - S_option_def_space = 497, // option_def_space - S_option_def_encapsulate = 498, // option_def_encapsulate + S_KEY_PASSWORD = 63, // "key-password" + S_CIPHER_LIST = 64, // "cipher-list" + S_VALID_LIFETIME = 65, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 66, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 67, // "max-valid-lifetime" + S_RENEW_TIMER = 68, // "renew-timer" + S_REBIND_TIMER = 69, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 70, // "calculate-tee-times" + S_T1_PERCENT = 71, // "t1-percent" + S_T2_PERCENT = 72, // "t2-percent" + S_CACHE_THRESHOLD = 73, // "cache-threshold" + S_CACHE_MAX_AGE = 74, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 75, // "decline-probation-period" + S_SERVER_TAG = 76, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 77, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 78, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 79, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 80, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 81, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 82, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 83, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 84, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 85, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 86, // "ddns-use-conflict-resolution" + S_DDNS_TTL_PERCENT = 87, // "ddns-ttl-percent" + S_DDNS_TTL = 88, // "ddns-ttl" + S_DDNS_TTL_MIN = 89, // "ddns-ttl-min" + S_DDNS_TTL_MAX = 90, // "ddns-ttl-mix" + S_STORE_EXTENDED_INFO = 91, // "store-extended-info" + S_SUBNET4 = 92, // "subnet4" + S_SUBNET_4O6_INTERFACE = 93, // "4o6-interface" + S_SUBNET_4O6_INTERFACE_ID = 94, // "4o6-interface-id" + S_SUBNET_4O6_SUBNET = 95, // "4o6-subnet" + S_OPTION_DEF = 96, // "option-def" + S_OPTION_DATA = 97, // "option-data" + S_NAME = 98, // "name" + S_DATA = 99, // "data" + S_CODE = 100, // "code" + S_SPACE = 101, // "space" + S_CSV_FORMAT = 102, // "csv-format" + S_ALWAYS_SEND = 103, // "always-send" + S_NEVER_SEND = 104, // "never-send" + S_RECORD_TYPES = 105, // "record-types" + S_ENCAPSULATE = 106, // "encapsulate" + S_ARRAY = 107, // "array" + S_PARKED_PACKET_LIMIT = 108, // "parked-packet-limit" + S_ALLOCATOR = 109, // "allocator" + S_DDNS_CONFLICT_RESOLUTION_MODE = 110, // "ddns-conflict-resolution-mode" + S_CHECK_WITH_DHCID = 111, // "check-with-dhcid" + S_NO_CHECK_WITH_DHCID = 112, // "no-check-with-dhcid" + S_CHECK_EXISTS_WITH_DHCID = 113, // "check-exists-with-dhcid" + S_NO_CHECK_WITHOUT_DHCID = 114, // "no-check-without-dhcid" + S_SHARED_NETWORKS = 115, // "shared-networks" + S_POOLS = 116, // "pools" + S_POOL = 117, // "pool" + S_USER_CONTEXT = 118, // "user-context" + S_COMMENT = 119, // "comment" + S_SUBNET = 120, // "subnet" + S_INTERFACE = 121, // "interface" + S_ID = 122, // "id" + S_RESERVATIONS_GLOBAL = 123, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 124, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 125, // "reservations-out-of-pool" + S_HOST_RESERVATION_IDENTIFIERS = 126, // "host-reservation-identifiers" + S_CLIENT_CLASSES = 127, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 128, // "require-client-classes" + S_EVALUATE_ADDITIONAL_CLASSES = 129, // "evaluate-additional-classes" + S_TEST = 130, // "test" + S_TEMPLATE_TEST = 131, // "template-test" + S_ONLY_IF_REQUIRED = 132, // "only-if-required" + S_ONLY_IN_ADDITIONAL_LIST = 133, // "only-in-additional-list" + S_CLIENT_CLASS = 134, // "client-class" + S_POOL_ID = 135, // "pool-id" + S_RESERVATIONS = 136, // "reservations" + S_IP_ADDRESS = 137, // "ip-address" + S_DUID = 138, // "duid" + S_HW_ADDRESS = 139, // "hw-address" + S_CIRCUIT_ID = 140, // "circuit-id" + S_CLIENT_ID = 141, // "client-id" + S_HOSTNAME = 142, // "hostname" + S_FLEX_ID = 143, // "flex-id" + S_RELAY = 144, // "relay" + S_IP_ADDRESSES = 145, // "ip-addresses" + S_HOOKS_LIBRARIES = 146, // "hooks-libraries" + S_LIBRARY = 147, // "library" + S_PARAMETERS = 148, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 149, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 150, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 151, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 152, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 153, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 154, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 155, // "unwarned-reclaim-cycles" + S_DHCP4O6_PORT = 156, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 157, // "multi-threading" + S_ENABLE_MULTI_THREADING = 158, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 159, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 160, // "packet-queue-size" + S_CONTROL_SOCKET = 161, // "control-socket" + S_CONTROL_SOCKETS = 162, // "control-sockets" + S_SOCKET_TYPE = 163, // "socket-type" + S_UNIX = 164, // "unix" + S_HTTP = 165, // "http" + S_HTTPS = 166, // "https" + S_SOCKET_NAME = 167, // "socket-name" + S_SOCKET_ADDRESS = 168, // "socket-address" + S_SOCKET_PORT = 169, // "socket-port" + S_AUTHENTICATION = 170, // "authentication" + S_BASIC = 171, // "basic" + S_REALM = 172, // "realm" + S_DIRECTORY = 173, // "directory" + S_CLIENTS = 174, // "clients" + S_USER_FILE = 175, // "user-file" + S_PASSWORD_FILE = 176, // "password-file" + S_CERT_REQUIRED = 177, // "cert-required" + S_HTTP_HEADERS = 178, // "http-headers" + S_VALUE = 179, // "value" + S_DHCP_QUEUE_CONTROL = 180, // "dhcp-queue-control" + S_ENABLE_QUEUE = 181, // "enable-queue" + S_QUEUE_TYPE = 182, // "queue-type" + S_CAPACITY = 183, // "capacity" + S_DHCP_DDNS = 184, // "dhcp-ddns" + S_ENABLE_UPDATES = 185, // "enable-updates" + S_SERVER_IP = 186, // "server-ip" + S_SERVER_PORT = 187, // "server-port" + S_SENDER_IP = 188, // "sender-ip" + S_SENDER_PORT = 189, // "sender-port" + S_MAX_QUEUE_SIZE = 190, // "max-queue-size" + S_NCR_PROTOCOL = 191, // "ncr-protocol" + S_NCR_FORMAT = 192, // "ncr-format" + S_TCP = 193, // "tcp" + S_JSON = 194, // "JSON" + S_WHEN_PRESENT = 195, // "when-present" + S_NEVER = 196, // "never" + S_ALWAYS = 197, // "always" + S_WHEN_NOT_PRESENT = 198, // "when-not-present" + S_HOSTNAME_CHAR_SET = 199, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 200, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 201, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 202, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 203, // "reservations-lookup-first" + S_LOGGERS = 204, // "loggers" + S_OUTPUT_OPTIONS = 205, // "output-options" + S_OUTPUT = 206, // "output" + S_DEBUGLEVEL = 207, // "debuglevel" + S_SEVERITY = 208, // "severity" + S_FLUSH = 209, // "flush" + S_MAXSIZE = 210, // "maxsize" + S_MAXVER = 211, // "maxver" + S_PATTERN = 212, // "pattern" + S_COMPATIBILITY = 213, // "compatibility" + S_LENIENT_OPTION_PARSING = 214, // "lenient-option-parsing" + S_IGNORE_DHCP_SERVER_ID = 215, // "ignore-dhcp-server-identifier" + S_IGNORE_RAI_LINK_SEL = 216, // "ignore-rai-link-selection" + S_EXCLUDE_FIRST_LAST_24 = 217, // "exclude-first-last-24" + S_TOPLEVEL_JSON = 218, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 219, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 220, // SUB_DHCP4 + S_SUB_INTERFACES4 = 221, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 222, // SUB_SUBNET4 + S_SUB_POOL4 = 223, // SUB_POOL4 + S_SUB_RESERVATION = 224, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 225, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 226, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 227, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 228, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 229, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 230, // SUB_CONFIG_CONTROL + S_STRING = 231, // "constant string" + S_INTEGER = 232, // "integer" + S_FLOAT = 233, // "floating point" + S_BOOLEAN = 234, // "boolean" + S_YYACCEPT = 235, // $accept + S_start = 236, // start + S_237_1 = 237, // $@1 + S_238_2 = 238, // $@2 + S_239_3 = 239, // $@3 + S_240_4 = 240, // $@4 + S_241_5 = 241, // $@5 + S_242_6 = 242, // $@6 + S_243_7 = 243, // $@7 + S_244_8 = 244, // $@8 + S_245_9 = 245, // $@9 + S_246_10 = 246, // $@10 + S_247_11 = 247, // $@11 + S_248_12 = 248, // $@12 + S_249_13 = 249, // $@13 + S_value = 250, // value + S_sub_json = 251, // sub_json + S_map2 = 252, // map2 + S_253_14 = 253, // $@14 + S_map_value = 254, // map_value + S_map_content = 255, // map_content + S_not_empty_map = 256, // not_empty_map + S_list_generic = 257, // list_generic + S_258_15 = 258, // $@15 + S_list_content = 259, // list_content + S_not_empty_list = 260, // not_empty_list + S_list_strings = 261, // list_strings + S_262_16 = 262, // $@16 + S_list_strings_content = 263, // list_strings_content + S_not_empty_list_strings = 264, // not_empty_list_strings + S_unknown_map_entry = 265, // unknown_map_entry + S_syntax_map = 266, // syntax_map + S_267_17 = 267, // $@17 + S_global_object = 268, // global_object + S_269_18 = 269, // $@18 + S_global_object_comma = 270, // global_object_comma + S_sub_dhcp4 = 271, // sub_dhcp4 + S_272_19 = 272, // $@19 + S_global_params = 273, // global_params + S_global_param = 274, // global_param + S_valid_lifetime = 275, // valid_lifetime + S_min_valid_lifetime = 276, // min_valid_lifetime + S_max_valid_lifetime = 277, // max_valid_lifetime + S_renew_timer = 278, // renew_timer + S_rebind_timer = 279, // rebind_timer + S_calculate_tee_times = 280, // calculate_tee_times + S_t1_percent = 281, // t1_percent + S_t2_percent = 282, // t2_percent + S_cache_threshold = 283, // cache_threshold + S_cache_max_age = 284, // cache_max_age + S_decline_probation_period = 285, // decline_probation_period + S_server_tag = 286, // server_tag + S_287_20 = 287, // $@20 + S_parked_packet_limit = 288, // parked_packet_limit + S_allocator = 289, // allocator + S_290_21 = 290, // $@21 + S_echo_client_id = 291, // echo_client_id + S_match_client_id = 292, // match_client_id + S_authoritative = 293, // authoritative + S_ddns_send_updates = 294, // ddns_send_updates + S_ddns_override_no_update = 295, // ddns_override_no_update + S_ddns_override_client_update = 296, // ddns_override_client_update + S_ddns_replace_client_name = 297, // ddns_replace_client_name + S_298_22 = 298, // $@22 + S_ddns_replace_client_name_value = 299, // ddns_replace_client_name_value + S_ddns_generated_prefix = 300, // ddns_generated_prefix + S_301_23 = 301, // $@23 + S_ddns_qualifying_suffix = 302, // ddns_qualifying_suffix + S_303_24 = 303, // $@24 + S_ddns_update_on_renew = 304, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 305, // ddns_use_conflict_resolution + S_ddns_conflict_resolution_mode = 306, // ddns_conflict_resolution_mode + S_307_25 = 307, // $@25 + S_ddns_conflict_resolution_mode_value = 308, // ddns_conflict_resolution_mode_value + S_ddns_ttl_percent = 309, // ddns_ttl_percent + S_ddns_ttl = 310, // ddns_ttl + S_ddns_ttl_min = 311, // ddns_ttl_min + S_ddns_ttl_max = 312, // ddns_ttl_max + S_hostname_char_set = 313, // hostname_char_set + S_314_26 = 314, // $@26 + S_hostname_char_replacement = 315, // hostname_char_replacement + S_316_27 = 316, // $@27 + S_store_extended_info = 317, // store_extended_info + S_statistic_default_sample_count = 318, // statistic_default_sample_count + S_statistic_default_sample_age = 319, // statistic_default_sample_age + S_early_global_reservations_lookup = 320, // early_global_reservations_lookup + S_ip_reservations_unique = 321, // ip_reservations_unique + S_reservations_lookup_first = 322, // reservations_lookup_first + S_offer_lifetime = 323, // offer_lifetime + S_stash_agent_options = 324, // stash_agent_options + S_interfaces_config = 325, // interfaces_config + S_326_28 = 326, // $@28 + S_interfaces_config_params = 327, // interfaces_config_params + S_interfaces_config_param = 328, // interfaces_config_param + S_sub_interfaces4 = 329, // sub_interfaces4 + S_330_29 = 330, // $@29 + S_interfaces_list = 331, // interfaces_list + S_332_30 = 332, // $@30 + S_dhcp_socket_type = 333, // dhcp_socket_type + S_334_31 = 334, // $@31 + S_socket_type = 335, // socket_type + S_outbound_interface = 336, // outbound_interface + S_337_32 = 337, // $@32 + S_outbound_interface_value = 338, // outbound_interface_value + S_re_detect = 339, // re_detect + S_service_sockets_require_all = 340, // service_sockets_require_all + S_service_sockets_retry_wait_time = 341, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 342, // service_sockets_max_retries + S_lease_database = 343, // lease_database + S_344_33 = 344, // $@33 + S_sanity_checks = 345, // sanity_checks + S_346_34 = 346, // $@34 + S_sanity_checks_params = 347, // sanity_checks_params + S_sanity_checks_param = 348, // sanity_checks_param + S_lease_checks = 349, // lease_checks + S_350_35 = 350, // $@35 + S_extended_info_checks = 351, // extended_info_checks + S_352_36 = 352, // $@36 + S_hosts_database = 353, // hosts_database + S_354_37 = 354, // $@37 + S_hosts_databases = 355, // hosts_databases + S_356_38 = 356, // $@38 + S_database_list = 357, // database_list + S_not_empty_database_list = 358, // not_empty_database_list + S_database = 359, // database + S_360_39 = 360, // $@39 + S_database_map_params = 361, // database_map_params + S_database_map_param = 362, // database_map_param + S_database_type = 363, // database_type + S_364_40 = 364, // $@40 + S_user = 365, // user + S_366_41 = 366, // $@41 + S_password = 367, // password + S_368_42 = 368, // $@42 + S_host = 369, // host + S_370_43 = 370, // $@43 + S_port = 371, // port + S_name = 372, // name + S_373_44 = 373, // $@44 + S_persist = 374, // persist + S_lfc_interval = 375, // lfc_interval + S_readonly = 376, // readonly + S_connect_timeout = 377, // connect_timeout + S_read_timeout = 378, // read_timeout + S_write_timeout = 379, // write_timeout + S_tcp_user_timeout = 380, // tcp_user_timeout + S_max_reconnect_tries = 381, // max_reconnect_tries + S_reconnect_wait_time = 382, // reconnect_wait_time + S_on_fail = 383, // on_fail + S_384_45 = 384, // $@45 + S_on_fail_mode = 385, // on_fail_mode + S_retry_on_startup = 386, // retry_on_startup + S_max_row_errors = 387, // max_row_errors + S_trust_anchor = 388, // trust_anchor + S_389_46 = 389, // $@46 + S_cert_file = 390, // cert_file + S_391_47 = 391, // $@47 + S_key_file = 392, // key_file + S_393_48 = 393, // $@48 + S_key_password = 394, // key_password + S_395_49 = 395, // $@49 + S_cipher_list = 396, // cipher_list + S_397_50 = 397, // $@50 + S_host_reservation_identifiers = 398, // host_reservation_identifiers + S_399_51 = 399, // $@51 + S_host_reservation_identifiers_list = 400, // host_reservation_identifiers_list + S_host_reservation_identifier = 401, // host_reservation_identifier + S_duid_id = 402, // duid_id + S_hw_address_id = 403, // hw_address_id + S_circuit_id = 404, // circuit_id + S_client_id = 405, // client_id + S_flex_id = 406, // flex_id + S_dhcp_multi_threading = 407, // dhcp_multi_threading + S_408_52 = 408, // $@52 + S_multi_threading_params = 409, // multi_threading_params + S_multi_threading_param = 410, // multi_threading_param + S_enable_multi_threading = 411, // enable_multi_threading + S_thread_pool_size = 412, // thread_pool_size + S_packet_queue_size = 413, // packet_queue_size + S_hooks_libraries = 414, // hooks_libraries + S_415_53 = 415, // $@53 + S_hooks_libraries_list = 416, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 417, // not_empty_hooks_libraries_list + S_hooks_library = 418, // hooks_library + S_419_54 = 419, // $@54 + S_sub_hooks_library = 420, // sub_hooks_library + S_421_55 = 421, // $@55 + S_hooks_params = 422, // hooks_params + S_hooks_param = 423, // hooks_param + S_library = 424, // library + S_425_56 = 425, // $@56 + S_parameters = 426, // parameters + S_427_57 = 427, // $@57 + S_expired_leases_processing = 428, // expired_leases_processing + S_429_58 = 429, // $@58 + S_expired_leases_params = 430, // expired_leases_params + S_expired_leases_param = 431, // expired_leases_param + S_reclaim_timer_wait_time = 432, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 433, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 434, // hold_reclaimed_time + S_max_reclaim_leases = 435, // max_reclaim_leases + S_max_reclaim_time = 436, // max_reclaim_time + S_unwarned_reclaim_cycles = 437, // unwarned_reclaim_cycles + S_subnet4_list = 438, // subnet4_list + S_439_59 = 439, // $@59 + S_subnet4_list_content = 440, // subnet4_list_content + S_not_empty_subnet4_list = 441, // not_empty_subnet4_list + S_subnet4 = 442, // subnet4 + S_443_60 = 443, // $@60 + S_sub_subnet4 = 444, // sub_subnet4 + S_445_61 = 445, // $@61 + S_subnet4_params = 446, // subnet4_params + S_subnet4_param = 447, // subnet4_param + S_subnet = 448, // subnet + S_449_62 = 449, // $@62 + S_subnet_4o6_interface = 450, // subnet_4o6_interface + S_451_63 = 451, // $@63 + S_subnet_4o6_interface_id = 452, // subnet_4o6_interface_id + S_453_64 = 453, // $@64 + S_subnet_4o6_subnet = 454, // subnet_4o6_subnet + S_455_65 = 455, // $@65 + S_interface = 456, // interface + S_457_66 = 457, // $@66 + S_client_class = 458, // client_class + S_459_67 = 459, // $@67 + S_network_client_classes = 460, // network_client_classes + S_461_68 = 461, // $@68 + S_require_client_classes = 462, // require_client_classes + S_463_69 = 463, // $@69 + S_evaluate_additional_classes = 464, // evaluate_additional_classes + S_465_70 = 465, // $@70 + S_reservations_global = 466, // reservations_global + S_reservations_in_subnet = 467, // reservations_in_subnet + S_reservations_out_of_pool = 468, // reservations_out_of_pool + S_id = 469, // id + S_shared_networks = 470, // shared_networks + S_471_71 = 471, // $@71 + S_shared_networks_content = 472, // shared_networks_content + S_shared_networks_list = 473, // shared_networks_list + S_shared_network = 474, // shared_network + S_475_72 = 475, // $@72 + S_shared_network_params = 476, // shared_network_params + S_shared_network_param = 477, // shared_network_param + S_option_def_list = 478, // option_def_list + S_479_73 = 479, // $@73 + S_sub_option_def_list = 480, // sub_option_def_list + S_481_74 = 481, // $@74 + S_option_def_list_content = 482, // option_def_list_content + S_not_empty_option_def_list = 483, // not_empty_option_def_list + S_option_def_entry = 484, // option_def_entry + S_485_75 = 485, // $@75 + S_sub_option_def = 486, // sub_option_def + S_487_76 = 487, // $@76 + S_option_def_params = 488, // option_def_params + S_not_empty_option_def_params = 489, // not_empty_option_def_params + S_option_def_param = 490, // option_def_param + S_option_def_name = 491, // option_def_name + S_code = 492, // code + S_option_def_code = 493, // option_def_code + S_option_def_type = 494, // option_def_type + S_495_77 = 495, // $@77 + S_option_def_record_types = 496, // option_def_record_types + S_497_78 = 497, // $@78 + S_space = 498, // space S_499_79 = 499, // $@79 - S_option_def_array = 500, // option_def_array - S_option_data_list = 501, // option_data_list + S_option_def_space = 500, // option_def_space + S_option_def_encapsulate = 501, // option_def_encapsulate S_502_80 = 502, // $@80 - S_option_data_list_content = 503, // option_data_list_content - S_not_empty_option_data_list = 504, // not_empty_option_data_list - S_option_data_entry = 505, // option_data_entry - S_506_81 = 506, // $@81 - S_sub_option_data = 507, // sub_option_data - S_508_82 = 508, // $@82 - S_option_data_params = 509, // option_data_params - S_not_empty_option_data_params = 510, // not_empty_option_data_params - S_option_data_param = 511, // option_data_param - S_option_data_name = 512, // option_data_name - S_option_data_data = 513, // option_data_data - S_514_83 = 514, // $@83 - S_option_data_code = 515, // option_data_code - S_option_data_space = 516, // option_data_space - S_option_data_csv_format = 517, // option_data_csv_format - S_option_data_always_send = 518, // option_data_always_send - S_option_data_never_send = 519, // option_data_never_send - S_option_data_client_classes = 520, // option_data_client_classes - S_521_84 = 521, // $@84 - S_pools_list = 522, // pools_list - S_523_85 = 523, // $@85 - S_pools_list_content = 524, // pools_list_content - S_not_empty_pools_list = 525, // not_empty_pools_list - S_pool_list_entry = 526, // pool_list_entry - S_527_86 = 527, // $@86 - S_sub_pool4 = 528, // sub_pool4 - S_529_87 = 529, // $@87 - S_pool_params = 530, // pool_params - S_pool_param = 531, // pool_param - S_pool_entry = 532, // pool_entry - S_533_88 = 533, // $@88 - S_pool_id = 534, // pool_id - S_user_context = 535, // user_context + S_option_def_array = 503, // option_def_array + S_option_data_list = 504, // option_data_list + S_505_81 = 505, // $@81 + S_option_data_list_content = 506, // option_data_list_content + S_not_empty_option_data_list = 507, // not_empty_option_data_list + S_option_data_entry = 508, // option_data_entry + S_509_82 = 509, // $@82 + S_sub_option_data = 510, // sub_option_data + S_511_83 = 511, // $@83 + S_option_data_params = 512, // option_data_params + S_not_empty_option_data_params = 513, // not_empty_option_data_params + S_option_data_param = 514, // option_data_param + S_option_data_name = 515, // option_data_name + S_option_data_data = 516, // option_data_data + S_517_84 = 517, // $@84 + S_option_data_code = 518, // option_data_code + S_option_data_space = 519, // option_data_space + S_option_data_csv_format = 520, // option_data_csv_format + S_option_data_always_send = 521, // option_data_always_send + S_option_data_never_send = 522, // option_data_never_send + S_option_data_client_classes = 523, // option_data_client_classes + S_524_85 = 524, // $@85 + S_pools_list = 525, // pools_list + S_526_86 = 526, // $@86 + S_pools_list_content = 527, // pools_list_content + S_not_empty_pools_list = 528, // not_empty_pools_list + S_pool_list_entry = 529, // pool_list_entry + S_530_87 = 530, // $@87 + S_sub_pool4 = 531, // sub_pool4 + S_532_88 = 532, // $@88 + S_pool_params = 533, // pool_params + S_pool_param = 534, // pool_param + S_pool_entry = 535, // pool_entry S_536_89 = 536, // $@89 - S_comment = 537, // comment - S_538_90 = 538, // $@90 - S_reservations = 539, // reservations - S_540_91 = 540, // $@91 - S_reservations_list = 541, // reservations_list - S_not_empty_reservations_list = 542, // not_empty_reservations_list - S_reservation = 543, // reservation - S_544_92 = 544, // $@92 - S_sub_reservation = 545, // sub_reservation - S_546_93 = 546, // $@93 - S_reservation_params = 547, // reservation_params - S_not_empty_reservation_params = 548, // not_empty_reservation_params - S_reservation_param = 549, // reservation_param - S_next_server = 550, // next_server - S_551_94 = 551, // $@94 - S_server_hostname = 552, // server_hostname - S_553_95 = 553, // $@95 - S_boot_file_name = 554, // boot_file_name - S_555_96 = 555, // $@96 - S_ip_address = 556, // ip_address - S_557_97 = 557, // $@97 - S_duid = 558, // duid - S_559_98 = 559, // $@98 - S_hw_address = 560, // hw_address - S_561_99 = 561, // $@99 - S_client_id_value = 562, // client_id_value - S_563_100 = 563, // $@100 - S_circuit_id_value = 564, // circuit_id_value - S_565_101 = 565, // $@101 - S_flex_id_value = 566, // flex_id_value - S_567_102 = 567, // $@102 - S_hostname = 568, // hostname - S_569_103 = 569, // $@103 - S_reservation_client_classes = 570, // reservation_client_classes - S_571_104 = 571, // $@104 - S_relay = 572, // relay - S_573_105 = 573, // $@105 - S_relay_map = 574, // relay_map - S_ip_addresses = 575, // ip_addresses + S_pool_id = 537, // pool_id + S_user_context = 538, // user_context + S_539_90 = 539, // $@90 + S_comment = 540, // comment + S_541_91 = 541, // $@91 + S_reservations = 542, // reservations + S_543_92 = 543, // $@92 + S_reservations_list = 544, // reservations_list + S_not_empty_reservations_list = 545, // not_empty_reservations_list + S_reservation = 546, // reservation + S_547_93 = 547, // $@93 + S_sub_reservation = 548, // sub_reservation + S_549_94 = 549, // $@94 + S_reservation_params = 550, // reservation_params + S_not_empty_reservation_params = 551, // not_empty_reservation_params + S_reservation_param = 552, // reservation_param + S_next_server = 553, // next_server + S_554_95 = 554, // $@95 + S_server_hostname = 555, // server_hostname + S_556_96 = 556, // $@96 + S_boot_file_name = 557, // boot_file_name + S_558_97 = 558, // $@97 + S_ip_address = 559, // ip_address + S_560_98 = 560, // $@98 + S_duid = 561, // duid + S_562_99 = 562, // $@99 + S_hw_address = 563, // hw_address + S_564_100 = 564, // $@100 + S_client_id_value = 565, // client_id_value + S_566_101 = 566, // $@101 + S_circuit_id_value = 567, // circuit_id_value + S_568_102 = 568, // $@102 + S_flex_id_value = 569, // flex_id_value + S_570_103 = 570, // $@103 + S_hostname = 571, // hostname + S_572_104 = 572, // $@104 + S_reservation_client_classes = 573, // reservation_client_classes + S_574_105 = 574, // $@105 + S_relay = 575, // relay S_576_106 = 576, // $@106 - S_client_classes = 577, // client_classes - S_578_107 = 578, // $@107 - S_client_classes_list = 579, // client_classes_list - S_client_class_entry = 580, // client_class_entry + S_relay_map = 577, // relay_map + S_ip_addresses = 578, // ip_addresses + S_579_107 = 579, // $@107 + S_client_classes = 580, // client_classes S_581_108 = 581, // $@108 - S_client_class_params = 582, // client_class_params - S_not_empty_client_class_params = 583, // not_empty_client_class_params - S_client_class_param = 584, // client_class_param - S_client_class_name = 585, // client_class_name - S_client_class_test = 586, // client_class_test - S_587_109 = 587, // $@109 - S_client_class_template_test = 588, // client_class_template_test - S_589_110 = 589, // $@110 - S_only_if_required = 590, // only_if_required - S_only_in_additional_list = 591, // only_in_additional_list - S_dhcp4o6_port = 592, // dhcp4o6_port - S_control_socket = 593, // control_socket - S_594_111 = 594, // $@111 - S_control_sockets = 595, // control_sockets - S_596_112 = 596, // $@112 - S_control_socket_list = 597, // control_socket_list - S_not_empty_control_socket_list = 598, // not_empty_control_socket_list - S_control_socket_entry = 599, // control_socket_entry - S_600_113 = 600, // $@113 - S_control_socket_params = 601, // control_socket_params - S_control_socket_param = 602, // control_socket_param - S_control_socket_type = 603, // control_socket_type - S_604_114 = 604, // $@114 - S_control_socket_type_value = 605, // control_socket_type_value - S_control_socket_name = 606, // control_socket_name + S_client_classes_list = 582, // client_classes_list + S_client_class_entry = 583, // client_class_entry + S_584_109 = 584, // $@109 + S_client_class_params = 585, // client_class_params + S_not_empty_client_class_params = 586, // not_empty_client_class_params + S_client_class_param = 587, // client_class_param + S_client_class_name = 588, // client_class_name + S_client_class_test = 589, // client_class_test + S_590_110 = 590, // $@110 + S_client_class_template_test = 591, // client_class_template_test + S_592_111 = 592, // $@111 + S_only_if_required = 593, // only_if_required + S_only_in_additional_list = 594, // only_in_additional_list + S_dhcp4o6_port = 595, // dhcp4o6_port + S_control_socket = 596, // control_socket + S_597_112 = 597, // $@112 + S_control_sockets = 598, // control_sockets + S_599_113 = 599, // $@113 + S_control_socket_list = 600, // control_socket_list + S_not_empty_control_socket_list = 601, // not_empty_control_socket_list + S_control_socket_entry = 602, // control_socket_entry + S_603_114 = 603, // $@114 + S_control_socket_params = 604, // control_socket_params + S_control_socket_param = 605, // control_socket_param + S_control_socket_type = 606, // control_socket_type S_607_115 = 607, // $@115 - S_control_socket_address = 608, // control_socket_address - S_609_116 = 609, // $@116 - S_control_socket_port = 610, // control_socket_port - S_cert_required = 611, // cert_required - S_http_headers = 612, // http_headers - S_613_117 = 613, // $@117 - S_http_header_list = 614, // http_header_list - S_not_empty_http_header_list = 615, // not_empty_http_header_list - S_http_header = 616, // http_header - S_617_118 = 617, // $@118 - S_http_header_params = 618, // http_header_params - S_http_header_param = 619, // http_header_param - S_header_value = 620, // header_value - S_621_119 = 621, // $@119 - S_authentication = 622, // authentication - S_623_120 = 623, // $@120 - S_auth_params = 624, // auth_params - S_auth_param = 625, // auth_param - S_auth_type = 626, // auth_type - S_627_121 = 627, // $@121 - S_auth_type_value = 628, // auth_type_value - S_realm = 629, // realm + S_control_socket_type_value = 608, // control_socket_type_value + S_control_socket_name = 609, // control_socket_name + S_610_116 = 610, // $@116 + S_control_socket_address = 611, // control_socket_address + S_612_117 = 612, // $@117 + S_control_socket_port = 613, // control_socket_port + S_cert_required = 614, // cert_required + S_http_headers = 615, // http_headers + S_616_118 = 616, // $@118 + S_http_header_list = 617, // http_header_list + S_not_empty_http_header_list = 618, // not_empty_http_header_list + S_http_header = 619, // http_header + S_620_119 = 620, // $@119 + S_http_header_params = 621, // http_header_params + S_http_header_param = 622, // http_header_param + S_header_value = 623, // header_value + S_624_120 = 624, // $@120 + S_authentication = 625, // authentication + S_626_121 = 626, // $@121 + S_auth_params = 627, // auth_params + S_auth_param = 628, // auth_param + S_auth_type = 629, // auth_type S_630_122 = 630, // $@122 - S_directory = 631, // directory - S_632_123 = 632, // $@123 - S_clients = 633, // clients - S_634_124 = 634, // $@124 - S_clients_list = 635, // clients_list - S_not_empty_clients_list = 636, // not_empty_clients_list - S_basic_auth = 637, // basic_auth - S_638_125 = 638, // $@125 - S_clients_params = 639, // clients_params - S_clients_param = 640, // clients_param - S_user_file = 641, // user_file - S_642_126 = 642, // $@126 - S_password_file = 643, // password_file - S_644_127 = 644, // $@127 - S_dhcp_queue_control = 645, // dhcp_queue_control - S_646_128 = 646, // $@128 - S_queue_control_params = 647, // queue_control_params - S_queue_control_param = 648, // queue_control_param - S_enable_queue = 649, // enable_queue - S_queue_type = 650, // queue_type - S_651_129 = 651, // $@129 - S_capacity = 652, // capacity - S_arbitrary_map_entry = 653, // arbitrary_map_entry + S_auth_type_value = 631, // auth_type_value + S_realm = 632, // realm + S_633_123 = 633, // $@123 + S_directory = 634, // directory + S_635_124 = 635, // $@124 + S_clients = 636, // clients + S_637_125 = 637, // $@125 + S_clients_list = 638, // clients_list + S_not_empty_clients_list = 639, // not_empty_clients_list + S_basic_auth = 640, // basic_auth + S_641_126 = 641, // $@126 + S_clients_params = 642, // clients_params + S_clients_param = 643, // clients_param + S_user_file = 644, // user_file + S_645_127 = 645, // $@127 + S_password_file = 646, // password_file + S_647_128 = 647, // $@128 + S_dhcp_queue_control = 648, // dhcp_queue_control + S_649_129 = 649, // $@129 + S_queue_control_params = 650, // queue_control_params + S_queue_control_param = 651, // queue_control_param + S_enable_queue = 652, // enable_queue + S_queue_type = 653, // queue_type S_654_130 = 654, // $@130 - S_dhcp_ddns = 655, // dhcp_ddns - S_656_131 = 656, // $@131 - S_sub_dhcp_ddns = 657, // sub_dhcp_ddns - S_658_132 = 658, // $@132 - S_dhcp_ddns_params = 659, // dhcp_ddns_params - S_dhcp_ddns_param = 660, // dhcp_ddns_param - S_enable_updates = 661, // enable_updates - S_server_ip = 662, // server_ip - S_663_133 = 663, // $@133 - S_server_port = 664, // server_port - S_sender_ip = 665, // sender_ip + S_capacity = 655, // capacity + S_arbitrary_map_entry = 656, // arbitrary_map_entry + S_657_131 = 657, // $@131 + S_dhcp_ddns = 658, // dhcp_ddns + S_659_132 = 659, // $@132 + S_sub_dhcp_ddns = 660, // sub_dhcp_ddns + S_661_133 = 661, // $@133 + S_dhcp_ddns_params = 662, // dhcp_ddns_params + S_dhcp_ddns_param = 663, // dhcp_ddns_param + S_enable_updates = 664, // enable_updates + S_server_ip = 665, // server_ip S_666_134 = 666, // $@134 - S_sender_port = 667, // sender_port - S_max_queue_size = 668, // max_queue_size - S_ncr_protocol = 669, // ncr_protocol - S_670_135 = 670, // $@135 - S_ncr_protocol_value = 671, // ncr_protocol_value - S_ncr_format = 672, // ncr_format + S_server_port = 667, // server_port + S_sender_ip = 668, // sender_ip + S_669_135 = 669, // $@135 + S_sender_port = 670, // sender_port + S_max_queue_size = 671, // max_queue_size + S_ncr_protocol = 672, // ncr_protocol S_673_136 = 673, // $@136 - S_config_control = 674, // config_control - S_675_137 = 675, // $@137 - S_sub_config_control = 676, // sub_config_control - S_677_138 = 677, // $@138 - S_config_control_params = 678, // config_control_params - S_config_control_param = 679, // config_control_param - S_config_databases = 680, // config_databases - S_681_139 = 681, // $@139 - S_config_fetch_wait_time = 682, // config_fetch_wait_time - S_loggers = 683, // loggers + S_ncr_protocol_value = 674, // ncr_protocol_value + S_ncr_format = 675, // ncr_format + S_676_137 = 676, // $@137 + S_config_control = 677, // config_control + S_678_138 = 678, // $@138 + S_sub_config_control = 679, // sub_config_control + S_680_139 = 680, // $@139 + S_config_control_params = 681, // config_control_params + S_config_control_param = 682, // config_control_param + S_config_databases = 683, // config_databases S_684_140 = 684, // $@140 - S_loggers_entries = 685, // loggers_entries - S_logger_entry = 686, // logger_entry + S_config_fetch_wait_time = 685, // config_fetch_wait_time + S_loggers = 686, // loggers S_687_141 = 687, // $@141 - S_logger_params = 688, // logger_params - S_logger_param = 689, // logger_param - S_debuglevel = 690, // debuglevel - S_severity = 691, // severity - S_692_142 = 692, // $@142 - S_output_options_list = 693, // output_options_list - S_694_143 = 694, // $@143 - S_output_options_list_content = 695, // output_options_list_content - S_output_entry = 696, // output_entry + S_loggers_entries = 688, // loggers_entries + S_logger_entry = 689, // logger_entry + S_690_142 = 690, // $@142 + S_logger_params = 691, // logger_params + S_logger_param = 692, // logger_param + S_debuglevel = 693, // debuglevel + S_severity = 694, // severity + S_695_143 = 695, // $@143 + S_output_options_list = 696, // output_options_list S_697_144 = 697, // $@144 - S_output_params_list = 698, // output_params_list - S_output_params = 699, // output_params - S_output = 700, // output - S_701_145 = 701, // $@145 - S_flush = 702, // flush - S_maxsize = 703, // maxsize - S_maxver = 704, // maxver - S_pattern = 705, // pattern - S_706_146 = 706, // $@146 - S_compatibility = 707, // compatibility - S_708_147 = 708, // $@147 - S_compatibility_params = 709, // compatibility_params - S_compatibility_param = 710, // compatibility_param - S_lenient_option_parsing = 711, // lenient_option_parsing - S_ignore_dhcp_server_identifier = 712, // ignore_dhcp_server_identifier - S_ignore_rai_link_selection = 713, // ignore_rai_link_selection - S_exclude_first_last_24 = 714 // exclude_first_last_24 + S_output_options_list_content = 698, // output_options_list_content + S_output_entry = 699, // output_entry + S_700_145 = 700, // $@145 + S_output_params_list = 701, // output_params_list + S_output_params = 702, // output_params + S_output = 703, // output + S_704_146 = 704, // $@146 + S_flush = 705, // flush + S_maxsize = 706, // maxsize + S_maxver = 707, // maxver + S_pattern = 708, // pattern + S_709_147 = 709, // $@147 + S_compatibility = 710, // compatibility + S_711_148 = 711, // $@148 + S_compatibility_params = 712, // compatibility_params + S_compatibility_param = 713, // compatibility_param + S_lenient_option_parsing = 714, // lenient_option_parsing + S_ignore_dhcp_server_identifier = 715, // ignore_dhcp_server_identifier + S_ignore_rai_link_selection = 716, // ignore_rai_link_selection + S_exclude_first_last_24 = 717 // exclude_first_last_24 }; }; @@ -2817,6 +2821,21 @@ switch (yykind) return symbol_type (token::TOKEN_KEY_FILE, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_KEY_PASSWORD (location_type l) + { + return symbol_type (token::TOKEN_KEY_PASSWORD, std::move (l)); + } +#else + static + symbol_type + make_KEY_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_KEY_PASSWORD, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5712,8 +5731,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1608, ///< Last index in yytable_. - yynnts_ = 481, ///< Number of nonterminal symbols. + yylast_ = 1638, ///< Last index in yytable_. + yynnts_ = 483, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5781,10 +5800,10 @@ switch (yykind) 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233 + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234 }; // Last valid token kind. - const int code_max = 488; + const int code_max = 489; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5959,7 +5978,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5963 "dhcp4_parser.h" +#line 5982 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index d2b505ad44..98478ee9f0 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -112,6 +112,7 @@ using namespace std; TRUST_ANCHOR "trust-anchor" CERT_FILE "cert-file" KEY_FILE "key-file" + KEY_PASSWORD "key-password" CIPHER_LIST "cipher-list" VALID_LIFETIME "valid-lifetime" @@ -1136,6 +1137,7 @@ database_map_param: database_type | trust_anchor | cert_file | key_file + | key_password | cipher_list | unknown_map_entry ; @@ -1297,6 +1299,15 @@ key_file: KEY_FILE { ctx.leave(); }; +key_password: KEY_PASSWORD { + ctx.unique("key-password", ctx.loc2pos(@1)); + ctx.enter(ctx.NO_KEYWORD); +} COLON STRING { + ElementPtr key_pass(new StringElement($4, ctx.loc2pos(@4))); + ctx.stack_.back()->set("key-password", key_pass); + ctx.leave(); +}; + cipher_list: CIPHER_LIST { ctx.unique("cipher-list", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 9ee5fb736d..dafb143868 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_lexer.cc" #define YY_INT_ALIGNED short int @@ -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 245 -#define YY_END_OF_BUFFER 246 +#define YY_NUM_RULES 246 +#define YY_END_OF_BUFFER 247 /* 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[2326] = +static const flex_int16_t yy_accept[2335] = { 0, - 238, 238, 0, 0, 0, 0, 0, 0, 0, 0, - 246, 244, 10, 11, 244, 1, 238, 235, 238, 238, - 244, 237, 236, 244, 244, 244, 244, 244, 231, 232, - 244, 244, 244, 233, 234, 5, 5, 5, 244, 244, - 244, 10, 11, 0, 0, 226, 0, 0, 0, 0, + 239, 239, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 245, 10, 11, 245, 1, 239, 236, 239, 239, + 245, 238, 237, 245, 245, 245, 245, 245, 232, 233, + 245, 245, 245, 234, 235, 5, 5, 5, 245, 245, + 245, 10, 11, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 238, 238, 0, 237, 238, 3, 2, 6, 0, 238, + 239, 239, 0, 238, 239, 3, 2, 6, 0, 239, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 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,23 +722,23 @@ static const flex_int16_t yy_accept[2326] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 179, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 180, - 0, 0, 180, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 230, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 181, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, - 241, 0, 240, 239, 0, 0, 0, 0, 0, 0, - 178, 0, 0, 23, 0, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, + 242, 0, 241, 240, 0, 0, 0, 0, 0, 0, + 179, 0, 0, 23, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -751,39 +751,39 @@ static const flex_int16_t yy_accept[2326] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 242, 239, 0, 0, 0, 0, 0, + 0, 0, 0, 243, 240, 0, 0, 0, 0, 0, 24, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, - 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, - 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, + 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, + 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 121, 0, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 122, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 183, 0, 50, 200, 0, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 184, 0, 50, 201, 0, 51, 0, 0, 0, - 0, 0, 0, 32, 29, 28, 0, 0, 0, 0, - 0, 172, 0, 207, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 29, 28, 0, 0, 0, + 0, 0, 173, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 202, 182, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 147, 0, 0, 0, 0, 0, 0, + 0, 203, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, + 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 215, 0, 7, 30, 0, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 216, 0, 7, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -792,172 +792,173 @@ static const flex_int16_t yy_accept[2326] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 210, 124, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 211, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 176, 142, 0, - 0, 0, 0, 0, 0, 0, 147, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 149, 0, 0, 55, 122, 0, 0, + 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 143, 0, 0, 0, 0, 0, 0, 0, + 148, 0, 0, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, + 55, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, - + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 115, 0, - 0, 162, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 0, 167, 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, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 116, 0, 0, 163, 0, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 84, 0, 0, 0, 0, 0, 70, 0, 0, 0, + 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 0, 0, 209, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 221, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, 177, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 178, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 0, 0, 0, 212, 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, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 165, 181, 0, 35, 0, 0, + 166, 182, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 19, 0, 113, 0, 0, - 0, 108, 0, 0, 0, 175, 0, 0, 0, 0, + 0, 0, 19, 0, 114, 0, 0, 0, 109, 0, - 117, 218, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 139, 0, + 0, 0, 176, 0, 0, 0, 0, 118, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 112, 0, 0, 0, 0, 0, 72, 0, + 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 139, 140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, + 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, + 0, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 110, 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, 0, 79, 0, 0, 0, 0, - 16, 0, 14, 0, 0, 0, 203, 205, 199, 0, + 0, 0, 0, 80, 0, 0, 0, 0, 16, 0, + 14, 0, 0, 0, 204, 206, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 104, 103, 0, 0, 0, - 0, 0, 0, 192, 0, 0, 217, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, - - 127, 0, 161, 0, 41, 0, 0, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 85, 0, 129, 58, - 80, 0, 0, 170, 0, 0, 160, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 123, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 0, 213, 0, 224, 0, 0, + 0, 0, 0, 105, 104, 0, 0, 0, 0, 0, + 0, 193, 0, 0, 218, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 215, 128, 0, + 162, 0, 72, 41, 0, 0, 56, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 130, 58, 81, + 0, 0, 171, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 0, 0, 0, 0, 184, + 69, 0, 124, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 0, 214, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 121, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 59, 0, 0, 0, 0, - 0, 206, 0, 0, 152, 46, 0, 0, 0, 197, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, - 0, 43, 0, 0, 17, 0, 0, 0, 68, 0, - - 0, 0, 0, 0, 0, 144, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, - 76, 0, 0, 0, 0, 0, 140, 0, 0, 0, - 57, 198, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, - 0, 0, 0, 0, 174, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 0, 0, 0, 59, 0, 0, 0, 0, 0, + 207, 0, 0, 153, 46, 0, 0, 0, 198, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, + + 43, 0, 0, 17, 0, 0, 0, 68, 0, 0, + 0, 0, 0, 0, 145, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 0, 63, - - 0, 0, 0, 0, 0, 97, 0, 0, 31, 0, - 47, 0, 0, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 205, 0, 0, 0, 0, 0, 0, 77, + 0, 0, 0, 0, 0, 141, 0, 0, 0, 57, + 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, + 0, 0, 0, 175, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 108, 0, 63, 0, + 0, 0, 0, 0, 98, 0, 0, 31, 0, 47, + 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 190, 0, 0, 0, 0, 158, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 0, 64, 0, 0, 0, 0, 60, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 163, - 0, 0, 0, 0, 0, 0, 20, 34, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, + 191, 0, 0, 0, 0, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, + 64, 0, 0, 0, 0, 60, 196, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 0, + + 0, 0, 0, 0, 0, 20, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 189, 0, 78, 0, 77, 0, 0, 73, + 0, 190, 0, 79, 0, 78, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 98, 0, 137, 0, + 0, 0, 0, 0, 0, 99, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 119, 0, 0, 0, 188, 0, 0, 0, - 0, 0, 67, 0, 0, 83, 0, 61, 0, 0, - 130, 0, 0, 0, 0, 0, 0, 0, 0, 106, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 42, 0, 0, + 0, 120, 0, 0, 0, 189, 0, 0, 0, 0, + 0, 67, 0, 0, 84, 0, 61, 0, 0, 131, + 0, 0, 0, 0, 0, 0, 0, 0, 107, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, + 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, + 0, 65, 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, 0, 0, 100, 48, 0, 0, 0, 93, 0, - - 0, 0, 0, 194, 0, 0, 0, 0, 0, 222, - 225, 75, 74, 0, 0, 135, 153, 131, 0, 0, - 0, 0, 0, 0, 0, 99, 0, 0, 89, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 186, - 0, 0, 0, 0, 0, 0, 191, 0, 0, 91, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 132, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 21, 223, 0, 0, 0, 0, 0, 0, + + 0, 0, 101, 48, 0, 0, 0, 94, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 0, 223, 226, + 76, 75, 0, 0, 136, 154, 132, 0, 0, 0, + 0, 0, 0, 0, 100, 0, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 187, 0, + 0, 0, 0, 0, 0, 192, 0, 0, 92, 0, + 82, 0, 0, 0, 0, 0, 0, 0, 133, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, + 0, 21, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 154, 0, 0, 39, 37, - 0, 0, 0, 0, 95, 0, 0, 136, 0, 87, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 187, 38, 221, 0 + 0, 91, 0, 0, 155, 0, 0, 39, 37, 0, + 0, 0, 0, 96, 0, 0, 137, 0, 88, 0, + 97, 0, 0, 0, 0, 0, 0, 0, 87, 0, + 188, 38, 222, 0 } ; static const YY_CHAR yy_ec[256] = @@ -1004,306 +1005,307 @@ static const YY_CHAR yy_meta[77] = 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[2334] = +static const flex_int16_t yy_base[2343] = { 0, 0, 75, 21, 28, 39, 47, 53, 61, 95, 103, - 2775, 2776, 31, 2771, 151, 0, 216, 2776, 223, 230, - 13, 237, 2776, 2751, 124, 17, 4, 34, 2776, 2776, - 23, 43, 64, 2776, 2776, 2776, 56, 2759, 2709, 0, - 2749, 106, 2766, 2, 268, 2776, 85, 90, 2712, 2733, - 98, 77, 2733, 235, 231, 97, 207, 298, 240, 2716, - 294, 306, 62, 243, 204, 222, 2711, 224, 296, 341, - 196, 320, 2694, 21, 332, 362, 345, 2713, 350, 0, - 406, 422, 436, 446, 451, 2776, 0, 2776, 298, 465, - 349, 351, 202, 365, 369, 301, 2776, 2710, 2754, 2776, - - 334, 2776, 464, 332, 232, 2708, 2752, 372, 17, 350, - 373, 2746, 225, 377, 391, 252, 2750, 0, 528, 414, - 2689, 2686, 2686, 433, 2686, 2687, 2693, 434, 2679, 2680, - 2685, 76, 2695, 2679, 2687, 2677, 342, 2693, 380, 373, - 427, 403, 2730, 16, 2672, 2728, 2665, 439, 2686, 2686, - 2680, 440, 2672, 2673, 2671, 2665, 451, 397, 2662, 2661, - 449, 2717, 2661, 50, 2673, 2672, 2660, 498, 2661, 436, - 2673, 2670, 2671, 440, 2669, 2707, 2706, 471, 444, 2650, - 2654, 468, 2650, 456, 2660, 2652, 2654, 0, 490, 490, - 509, 500, 508, 532, 2650, 2776, 538, 539, 2645, 2776, - - 502, 536, 2776, 2702, 544, 548, 2701, 547, 2700, 541, - 2699, 2776, 2776, 590, 2641, 553, 2654, 2646, 2644, 2644, - 2648, 2649, 2629, 2640, 2642, 2641, 285, 557, 2682, 2643, - 2624, 2621, 2629, 2635, 2623, 2633, 2633, 2624, 2633, 2633, - 2628, 2620, 2619, 2621, 2624, 2604, 2608, 2622, 2614, 2604, - 2607, 2606, 2620, 2776, 2606, 2614, 82, 2655, 2598, 2607, - 2652, 2596, 2606, 2649, 561, 2648, 2590, 2604, 2645, 556, - 2601, 2581, 2596, 2588, 2592, 470, 2583, 2581, 475, 2581, - 2587, 2578, 2591, 2575, 2586, 2590, 532, 2584, 462, 2591, - 2586, 2569, 2584, 2570, 2578, 2582, 2563, 2579, 2565, 2571, - - 2578, 2560, 522, 2565, 2562, 2561, 583, 2560, 2555, 2569, - 2568, 568, 2567, 2547, 2569, 2551, 553, 2548, 574, 2776, - 2776, 585, 2776, 2776, 2546, 547, 564, 2596, 597, 2607, - 2776, 589, 600, 2776, 2606, 2776, 2600, 643, 2559, 589, - 2536, 2555, 2556, 2553, 2536, 2553, 2592, 2549, 2539, 2594, - 2546, 2549, 2540, 2543, 2529, 2540, 626, 2582, 2537, 2534, - 2535, 619, 2538, 2582, 2514, 2526, 2521, 2518, 2514, 2513, - 2515, 2518, 2568, 2522, 2566, 2509, 640, 641, 2522, 2522, - 2505, 2506, 2519, 2517, 2515, 2515, 2514, 2509, 2516, 2511, - 2496, 608, 2505, 2508, 584, 2503, 2553, 599, 638, 2509, - - 2546, 2493, 2486, 2501, 2492, 2499, 2480, 2497, 2489, 2485, - 2490, 670, 2540, 592, 2492, 2492, 2490, 623, 2481, 2479, - 2491, 617, 2466, 2467, 2480, 2470, 2462, 2466, 2480, 627, - 2466, 2478, 2477, 2476, 2471, 2516, 2473, 2472, 2471, 2470, - 2453, 2461, 2514, 2470, 2512, 2449, 2510, 2509, 2448, 671, - 2461, 2459, 2458, 2776, 2776, 2458, 647, 2498, 2502, 2501, - 2776, 2500, 637, 2776, 653, 724, 2456, 653, 2498, 2441, - 2496, 2490, 2440, 2442, 634, 2432, 2429, 2776, 2434, 2427, - 2439, 2442, 2429, 2428, 2776, 2438, 658, 2429, 2426, 2438, - 646, 2423, 2417, 2776, 2473, 2430, 2415, 2417, 2431, 2427, - - 2425, 2425, 2419, 695, 2409, 2463, 2776, 2407, 2423, 2460, - 2776, 2414, 2463, 2462, 2415, 2409, 2411, 2412, 2396, 2405, - 2450, 2398, 2397, 2392, 2391, 2393, 2389, 2385, 659, 2404, - 2378, 2385, 2384, 2400, 2437, 2776, 2384, 2380, 699, 2388, - 2387, 2381, 2374, 2373, 2387, 2387, 2375, 2371, 2376, 2372, - 2367, 2776, 2376, 2426, 2776, 2365, 2358, 2418, 2417, 2359, - 2358, 2363, 2418, 2371, 2365, 2359, 2368, 722, 2408, 2352, - 2347, 2405, 2342, 2348, 688, 2362, 2355, 2359, 2342, 2403, - 2341, 2341, 2395, 2337, 2338, 2337, 2335, 2352, 2776, 2348, - 2776, 2388, 2776, 2776, 2336, 2776, 665, 2386, 2390, 2384, - - 2341, 2387, 716, 2776, 2776, 2776, 678, 683, 693, 2324, - 725, 2776, 2323, 2776, 692, 2341, 2321, 2331, 2334, 2375, - 721, 2317, 2327, 2372, 2314, 2321, 2314, 2322, 2315, 2324, - 2306, 2306, 2321, 2320, 2304, 697, 2318, 2317, 2301, 2316, - 2298, 2348, 2302, 2309, 2352, 2293, 2295, 2292, 2306, 2306, - 2304, 2304, 2776, 2289, 2301, 2293, 2299, 2290, 2298, 2296, - 2776, 2776, 2282, 2293, 2297, 2279, 2291, 2283, 683, 2274, - 2273, 2267, 2272, 2269, 2284, 2283, 2284, 2263, 2273, 2279, - 2325, 2277, 2269, 2260, 2261, 2263, 2776, 2258, 2264, 701, - 2312, 751, 2311, 2253, 2309, 2253, 2256, 2254, 2256, 2247, - - 2262, 2776, 2247, 759, 2244, 2260, 2257, 2252, 2248, 2776, - 2296, 2245, 2252, 2293, 2776, 2236, 2234, 2248, 2251, 2236, - 2287, 2286, 2230, 2284, 2241, 2225, 2281, 2280, 2776, 2222, - 2236, 2235, 738, 2236, 2235, 2232, 2216, 2272, 2233, 2228, - 2217, 2222, 2218, 2776, 2205, 2776, 2776, 723, 715, 735, - 729, 752, 166, 213, 285, 381, 385, 404, 447, 471, - 528, 605, 720, 774, 775, 732, 732, 774, 778, 729, - 725, 730, 731, 743, 749, 736, 739, 742, 751, 751, - 736, 796, 755, 747, 757, 800, 747, 754, 754, 756, - 760, 765, 768, 810, 770, 818, 772, 775, 770, 761, - - 776, 781, 782, 779, 776, 783, 782, 770, 784, 782, - 790, 829, 788, 836, 837, 778, 791, 777, 787, 837, - 792, 845, 2776, 798, 796, 798, 794, 788, 804, 852, - 848, 849, 809, 2776, 799, 800, 799, 812, 802, 815, - 862, 818, 803, 865, 866, 820, 2776, 814, 808, 803, - 814, 827, 818, 807, 813, 871, 832, 816, 816, 829, - 876, 820, 827, 839, 834, 839, 836, 883, 822, 834, - 848, 842, 833, 830, 2776, 897, 852, 853, 841, 855, - 845, 849, 861, 852, 855, 860, 861, 889, 881, 910, - 911, 885, 858, 872, 875, 855, 862, 876, 924, 878, - - 863, 876, 874, 2776, 2776, 878, 873, 888, 885, 871, - 873, 892, 889, 889, 891, 879, 887, 888, 898, 945, - 904, 943, 902, 893, 906, 892, 891, 897, 889, 900, - 895, 896, 902, 918, 901, 958, 959, 911, 961, 2776, - 922, 914, 925, 923, 971, 910, 927, 913, 928, 930, - 917, 915, 980, 934, 920, 926, 924, 2776, 2776, 940, - 939, 940, 945, 933, 943, 945, 2776, 945, 947, 934, - 952, 939, 941, 2776, 938, 956, 957, 943, 944, 940, - 945, 963, 1007, 2776, 965, 1009, 2776, 2776, 964, 964, - 1013, 956, 960, 954, 970, 1018, 968, 958, 959, 955, - - 965, 969, 980, 975, 1022, 978, 971, 973, 969, 986, - 976, 991, 974, 1036, 990, 992, 996, 983, 974, 997, - 983, 983, 2776, 990, 991, 1043, 1044, 993, 1006, 1047, - 991, 1007, 1007, 1001, 1025, 1035, 1023, 1031, 1043, 1060, - 1006, 1020, 1060, 1019, 1062, 2776, 1068, 1018, 1009, 1028, - 1018, 1017, 1012, 1013, 1025, 1020, 1016, 1034, 1026, 1021, - 1022, 1032, 1041, 1082, 2776, 1036, 1030, 1048, 1041, 1036, - 1092, 1098, 1052, 1043, 1101, 1058, 1049, 1057, 1059, 1044, - 1060, 1065, 1051, 1063, 1060, 1058, 1070, 1054, 1055, 2776, - 1071, 1074, 1071, 1058, 1060, 1121, 1061, 1080, 2776, 1079, - - 1082, 1069, 1064, 1082, 1070, 1126, 1081, 1077, 1074, 1130, - 1076, 1132, 1091, 1077, 1095, 1095, 1095, 1097, 1082, 1097, - 1084, 1085, 1101, 1088, 1105, 2776, 1103, 1090, 2776, 1148, - 1098, 2776, 1108, 1101, 1157, 1101, 2776, 1104, 1109, 1156, - 1104, 1105, 1117, 1111, 1109, 1106, 1121, 1169, 1110, 1111, - 1172, 1173, 1114, 1126, 1119, 2776, 1115, 1132, 1124, 1120, - 1123, 1178, 1117, 1138, 1124, 1125, 1126, 1127, 1133, 1141, - 1132, 1146, 1194, 1148, 1149, 1164, 1193, 1176, 1168, 1173, - 2776, 1156, 1141, 1161, 1144, 1144, 2776, 1147, 1146, 1148, - 1159, 1149, 1169, 1168, 1159, 1170, 1216, 1155, 1167, 1176, - - 1169, 1173, 1177, 1160, 1181, 1178, 1183, 1174, 1233, 1177, - 1181, 2776, 1231, 1177, 2776, 1195, 1177, 1177, 1198, 1195, - 1238, 1198, 1185, 1203, 1191, 1205, 1198, 1207, 1187, 1202, - 1209, 1194, 1255, 1256, 2776, 1206, 1258, 1212, 1198, 1208, - 1218, 1202, 1222, 1205, 1207, 1207, 1214, 1223, 1211, 1218, - 1213, 1220, 1232, 1276, 1220, 1278, 1220, 1234, 1238, 1282, - 1232, 1233, 1222, 1286, 1234, 1237, 1232, 1236, 1291, 1292, - 1242, 2776, 1231, 1248, 1241, 1232, 1251, 1245, 1240, 1250, - 1246, 1241, 1259, 2776, 1243, 1239, 2776, 2776, 1245, 1308, - 1264, 1245, 1251, 1265, 1251, 1267, 1269, 1311, 1261, 1318, - - 1319, 1269, 1274, 1268, 1266, 1277, 1259, 2776, 1264, 1270, - 1296, 1309, 1297, 1311, 1298, 1333, 1283, 1286, 1286, 1290, - 1291, 1339, 1279, 1279, 1282, 1299, 1294, 1298, 1293, 2776, - 1290, 1303, 1287, 1304, 1284, 1305, 1295, 1288, 1300, 1301, - 1357, 1307, 2776, 1320, 1318, 1321, 1305, 1314, 1318, 1323, - 1309, 1372, 1322, 1328, 1328, 1315, 1329, 1327, 1324, 1320, - 1338, 1339, 1340, 1323, 2776, 2776, 1339, 2776, 1341, 1326, - 1337, 1328, 1347, 1340, 1338, 1393, 1347, 1344, 1391, 1352, - 1341, 1348, 1353, 1350, 1356, 2776, 1349, 2776, 1341, 1354, - 1406, 2776, 1350, 1351, 1362, 2776, 1363, 1357, 1352, 1362, - - 2776, 2776, 1352, 1353, 1356, 1370, 1375, 1358, 1369, 1421, - 1375, 1362, 1381, 1372, 1426, 1422, 1428, 2776, 1376, 1373, - 1384, 1432, 1433, 1434, 1388, 1389, 1391, 2776, 2776, 1383, - 1378, 1435, 1381, 1397, 1381, 1393, 1382, 1441, 1424, 1425, - 1417, 1450, 2776, 1394, 1405, 1396, 1407, 1409, 2776, 1456, - 1390, 1401, 1416, 1455, 1404, 1415, 1403, 1402, 1418, 1419, - 1416, 1463, 1423, 1470, 1471, 1427, 1416, 1428, 1434, 1423, - 1423, 1481, 1477, 1478, 1484, 1438, 2776, 1440, 1436, 1440, - 1442, 1433, 1436, 1445, 1442, 1432, 1435, 1435, 1497, 1498, - 1442, 1500, 1444, 1502, 1443, 1448, 1506, 2776, 1461, 1440, - - 1455, 1448, 1451, 1464, 1467, 1466, 1464, 1516, 1467, 1457, - 2776, 1464, 1465, 1517, 1461, 1477, 1525, 1478, 1527, 1528, - 1529, 1470, 1480, 1532, 1486, 2776, 1478, 1535, 1476, 1476, - 2776, 1494, 2776, 1491, 1482, 1482, 2776, 2776, 2776, 1496, - 1479, 1499, 1500, 1486, 1488, 1550, 1497, 1552, 1498, 1492, - 1519, 1537, 1552, 1538, 2776, 1502, 1560, 1507, 1557, 1563, - 2776, 1503, 1565, 1512, 1506, 1503, 1506, 1508, 1504, 1567, - 1527, 1569, 1519, 1531, 1534, 2776, 2776, 1531, 1523, 1526, - 1521, 1586, 1531, 2776, 1528, 1527, 2776, 1529, 1591, 1530, - 1542, 1533, 1590, 1549, 1551, 1551, 1548, 1595, 1554, 2776, - - 2776, 1546, 2776, 1547, 2776, 1557, 1549, 2776, 1601, 1560, - 1561, 1559, 1606, 1551, 1566, 1609, 1568, 1560, 2776, 1557, - 1567, 1558, 1559, 1560, 1617, 1623, 2776, 1577, 2776, 2776, - 2776, 1620, 1564, 2776, 1581, 1566, 2776, 1580, 1568, 1632, - 1576, 1569, 1574, 1585, 1578, 1597, 1590, 1596, 1586, 1644, - 1594, 2776, 1603, 2776, 1600, 1648, 1625, 1626, 1632, 1617, - 1625, 1654, 2776, 1609, 1594, 2776, 1657, 2776, 1658, 1612, - 1617, 1599, 1662, 1663, 1604, 1660, 1623, 1617, 1613, 1607, - 1614, 1666, 1621, 1622, 2776, 1612, 1628, 1632, 1683, 2776, - 1633, 1619, 1681, 1642, 1642, 1684, 1629, 1634, 1632, 1694, - - 1647, 1635, 1697, 1693, 1645, 1700, 1658, 1647, 1641, 1704, - 1643, 1652, 1645, 1659, 1662, 1653, 1711, 1712, 1662, 1660, - 2776, 1653, 1651, 1712, 1713, 1714, 1666, 1665, 1665, 1661, - 1662, 2776, 1670, 1676, 1667, 1668, 1730, 1668, 1670, 1728, - 1671, 2776, 1667, 1685, 1737, 2776, 1705, 1719, 1718, 1707, - 1709, 2776, 1743, 1693, 2776, 2776, 1684, 1695, 1747, 2776, - 1748, 2776, 1702, 1692, 1697, 1695, 1748, 1703, 1709, 1695, - 1698, 1714, 1703, 1701, 1701, 1703, 2776, 1707, 1770, 1708, - 1722, 1768, 1712, 1776, 1721, 1731, 1732, 2776, 1780, 1730, - 1777, 2776, 1725, 1733, 2776, 1724, 1739, 1727, 2776, 1737, - - 1738, 1739, 1791, 1746, 1737, 2776, 2776, 1726, 1744, 1745, - 1754, 1736, 1742, 1755, 1744, 1797, 1746, 1742, 1747, 1744, - 1745, 1803, 1809, 2776, 1756, 1811, 1761, 1751, 1767, 1760, - 2776, 1793, 1818, 1800, 1815, 1821, 2776, 1767, 1823, 1762, - 2776, 2776, 1764, 1766, 1776, 1823, 1768, 1783, 1770, 1832, - 1786, 1772, 1779, 1779, 1790, 1791, 1783, 2776, 1786, 1780, - 1782, 1797, 1784, 1796, 2776, 1843, 1791, 1788, 2776, 1802, - 1789, 1810, 1806, 1808, 1856, 1806, 1803, 1811, 1805, 2776, - 1861, 1819, 1816, 1809, 1810, 1815, 1816, 1810, 1815, 1826, - 1810, 1819, 1868, 1874, 1824, 1876, 1822, 2776, 1816, 2776, - - 1823, 1880, 1881, 1878, 1879, 2776, 1861, 1867, 2776, 1839, - 2776, 1883, 1832, 1843, 1844, 1829, 1830, 1838, 1895, 2776, - 1840, 1892, 1893, 1845, 1840, 1858, 1859, 1856, 1904, 1848, - 1861, 1856, 1853, 1858, 1856, 1911, 1914, 1859, 1856, 1870, - 1857, 2776, 1872, 1873, 1874, 1875, 2776, 1869, 1924, 1874, - 1879, 1865, 1873, 1867, 1887, 1888, 1869, 1870, 1877, 2776, - 1879, 2776, 1893, 1890, 1933, 1891, 2776, 2776, 1895, 1921, - 1922, 1920, 1883, 1883, 1892, 1899, 1892, 1891, 1902, 1889, - 2776, 1905, 1893, 1896, 1955, 1892, 1911, 1904, 1903, 2776, - 1915, 1908, 1907, 1916, 1918, 1922, 2776, 2776, 1915, 1908, - - 1909, 1972, 1912, 1974, 1913, 1976, 1972, 2776, 1916, 1979, - 1975, 1934, 1931, 1922, 1930, 1941, 1928, 1939, 1925, 1923, - 1931, 1930, 1935, 1927, 1972, 1996, 1978, 1998, 1948, 1937, - 1950, 1940, 1957, 1956, 2000, 1941, 1960, 1961, 2776, 1966, - 1959, 2006, 2012, 1966, 1953, 1968, 2016, 1970, 1973, 1960, - 1969, 1970, 2776, 2024, 2776, 1974, 2776, 1972, 2027, 2776, - 1966, 2029, 1973, 1970, 2032, 1977, 2029, 2030, 1989, 2032, - 1975, 1979, 1997, 2041, 1997, 2024, 2776, 2020, 2776, 1990, - 1984, 1981, 2043, 2006, 1999, 1995, 2052, 1992, 1994, 1993, - 2000, 2012, 2776, 1997, 2059, 2000, 2776, 2005, 2015, 2000, - - 2008, 2010, 2776, 2011, 2016, 2776, 2017, 2776, 2014, 2025, - 2776, 2026, 2026, 2017, 2076, 2017, 2027, 2012, 2025, 2776, - 2027, 2058, 2064, 2036, 2034, 2086, 2024, 2026, 2023, 2047, - 2776, 2034, 2041, 2042, 2045, 2041, 2035, 2776, 2092, 2036, - 2044, 2053, 2052, 2055, 2056, 2043, 2050, 2045, 2046, 2046, - 2060, 2055, 2776, 2066, 2054, 2110, 2058, 2070, 2098, 2119, - 2120, 2064, 2776, 2064, 2076, 2124, 2070, 2072, 2070, 2071, - 2129, 2087, 2080, 2067, 2082, 2087, 2135, 2136, 2137, 2138, - 2077, 2093, 2141, 2142, 2143, 2085, 2089, 2085, 2101, 2084, - 2096, 2090, 2152, 2776, 2776, 2097, 2108, 2155, 2776, 2109, - - 2094, 2112, 2103, 2776, 2099, 2105, 2119, 2115, 2108, 2776, - 2776, 2776, 2776, 2165, 2166, 2776, 2776, 2776, 2106, 2114, - 2109, 2165, 2128, 2125, 2173, 2776, 2169, 2132, 2776, 2176, - 2115, 2178, 2118, 2119, 2132, 2131, 2132, 2122, 2776, 2776, - 2123, 2186, 2136, 2145, 2138, 2185, 2776, 2136, 2130, 2776, - 2142, 2776, 2189, 2148, 2196, 2135, 2151, 2199, 2200, 2776, - 2154, 2148, 2141, 2161, 2148, 2160, 2151, 2155, 2149, 2776, - 2206, 2152, 2776, 2776, 2152, 2160, 2210, 2167, 2160, 2172, - 2219, 2164, 2164, 2222, 2161, 2163, 2225, 2226, 2165, 2181, - 2166, 2183, 2776, 2231, 2175, 2776, 2182, 2234, 2776, 2776, - - 2184, 2236, 2181, 2238, 2776, 2186, 2185, 2776, 2186, 2776, - 2180, 2776, 2180, 2197, 2198, 2246, 2189, 2248, 2249, 2776, - 2250, 2776, 2776, 2776, 2776, 2256, 2259, 2262, 2263, 2265, - 2268, 2271, 2274 + 2784, 2785, 31, 2780, 151, 0, 216, 2785, 223, 230, + 13, 237, 2785, 2760, 124, 17, 4, 34, 2785, 2785, + 23, 43, 64, 2785, 2785, 2785, 56, 2768, 2718, 0, + 2758, 106, 2775, 2, 268, 2785, 85, 90, 2721, 2742, + 98, 77, 2742, 235, 231, 97, 207, 298, 240, 2725, + 294, 306, 62, 243, 204, 222, 2720, 224, 296, 341, + 196, 320, 2703, 21, 332, 362, 345, 2722, 350, 0, + 406, 422, 436, 446, 451, 2785, 0, 2785, 298, 465, + 349, 351, 202, 365, 369, 301, 2785, 2719, 2763, 2785, + + 334, 2785, 464, 332, 232, 2717, 2761, 372, 17, 350, + 373, 2755, 225, 377, 391, 252, 2759, 0, 528, 414, + 2698, 2695, 2695, 433, 2695, 2696, 2702, 434, 2688, 2689, + 2694, 76, 2704, 2688, 2696, 2686, 342, 2702, 380, 373, + 427, 403, 2739, 16, 2681, 2737, 2674, 439, 2695, 2695, + 2689, 440, 2681, 2682, 2680, 2674, 451, 397, 2671, 2670, + 449, 2726, 2670, 50, 2682, 2681, 2669, 498, 2670, 436, + 2682, 2679, 2680, 440, 2678, 2716, 2715, 471, 444, 2659, + 2663, 468, 2659, 456, 2669, 2661, 2663, 0, 490, 490, + 509, 500, 508, 532, 2659, 2785, 538, 539, 2654, 2785, + + 502, 536, 2785, 2711, 544, 548, 2710, 547, 2709, 541, + 2708, 2785, 2785, 590, 2650, 553, 2663, 2655, 2653, 2653, + 2657, 2658, 2638, 2649, 2651, 2650, 285, 557, 2691, 2652, + 2633, 2630, 2638, 2644, 2632, 2642, 2642, 2633, 2642, 2642, + 2637, 2629, 2628, 2630, 2633, 2613, 2617, 2631, 2623, 2613, + 2616, 2615, 2629, 2785, 2615, 2623, 82, 2664, 2607, 2616, + 2661, 2605, 2615, 2658, 561, 2657, 2599, 2613, 2654, 556, + 2610, 2590, 2605, 2597, 2601, 470, 2592, 2590, 475, 2590, + 2596, 2587, 2600, 2584, 2595, 2599, 532, 2593, 462, 2600, + 2595, 2578, 2593, 2579, 2587, 2591, 2572, 2588, 2574, 2580, + + 2587, 2569, 522, 2574, 2571, 2570, 583, 2569, 2564, 2578, + 2577, 568, 2576, 2556, 2578, 2560, 553, 2557, 574, 2785, + 2785, 585, 2785, 2785, 2555, 547, 564, 2605, 597, 2616, + 2785, 589, 600, 2785, 2615, 2785, 2609, 643, 2568, 589, + 2545, 2564, 2565, 2562, 2545, 2562, 2601, 2558, 2548, 2603, + 2555, 2558, 2549, 2552, 2538, 2549, 626, 2591, 2546, 2543, + 2544, 619, 2547, 2591, 2523, 2535, 2530, 2527, 2523, 2522, + 2524, 2527, 2577, 2531, 2575, 2518, 640, 641, 2531, 2531, + 2514, 2515, 2528, 2526, 599, 2525, 2524, 2519, 2526, 2521, + 2506, 608, 2515, 2518, 584, 2513, 2563, 611, 639, 2519, + + 2556, 2503, 2496, 2511, 2502, 2509, 2490, 2507, 2499, 2495, + 2500, 671, 2550, 592, 2502, 2502, 2500, 623, 2491, 2489, + 2501, 617, 2476, 2477, 2490, 2480, 2472, 2476, 2490, 627, + 2476, 2488, 2487, 2486, 2481, 2526, 2483, 2482, 2481, 2480, + 2463, 2471, 2524, 2480, 2522, 2459, 2520, 2519, 2458, 679, + 2471, 2469, 2468, 2785, 2785, 2468, 643, 2508, 2512, 2511, + 2785, 2510, 660, 2785, 655, 725, 2466, 660, 2508, 2451, + 2506, 2500, 2450, 2452, 634, 2442, 2439, 2785, 2444, 2437, + 2449, 2452, 2439, 2438, 2785, 2448, 663, 2439, 2436, 2448, + 647, 2433, 2427, 2785, 2483, 2440, 2425, 2427, 2441, 2437, + + 2435, 2435, 2429, 695, 2419, 2473, 2785, 2417, 2433, 2470, + 2785, 2424, 2473, 2472, 2425, 2419, 2421, 2422, 2406, 2415, + 2422, 2459, 2407, 2406, 2401, 2400, 2402, 2398, 2394, 658, + 2413, 2387, 2394, 2393, 2409, 2446, 2785, 2393, 2389, 698, + 2397, 2396, 2390, 2383, 2382, 2396, 2396, 2384, 2380, 2385, + 2381, 2376, 2785, 2385, 2435, 2785, 2374, 2367, 2427, 2426, + 2368, 2367, 2372, 2427, 2380, 2374, 2368, 2377, 709, 2417, + 2361, 2356, 2414, 2351, 2357, 692, 2371, 2364, 2368, 2351, + 2412, 2350, 2350, 2404, 2346, 2347, 2346, 2344, 2361, 2785, + 2357, 2785, 2397, 2785, 2785, 2345, 2785, 671, 2395, 2399, + + 2393, 2350, 2396, 717, 2785, 2785, 2785, 709, 698, 679, + 2333, 751, 2785, 2332, 2785, 686, 2350, 2330, 2340, 2343, + 2384, 713, 2326, 2336, 2381, 2323, 2330, 2323, 2331, 2324, + 2333, 2315, 2315, 2330, 2329, 2313, 699, 2327, 2326, 2310, + 2325, 2307, 2357, 2311, 2318, 2361, 2302, 2304, 2301, 2315, + 2315, 2313, 2313, 2785, 2298, 2310, 2302, 2308, 2299, 2307, + 2305, 2785, 2785, 2291, 2302, 2306, 2288, 2300, 2292, 2284, + 684, 2282, 2281, 2275, 2280, 2277, 2292, 2291, 2292, 2271, + 2281, 2287, 2333, 2285, 2277, 2268, 2269, 2271, 2785, 2266, + 2272, 702, 2320, 761, 2319, 2261, 2317, 2261, 2264, 2262, + + 2264, 2255, 2270, 2785, 2255, 762, 2252, 2268, 2265, 2260, + 2256, 2785, 2304, 2253, 2260, 2301, 2785, 2244, 2242, 2256, + 2259, 2244, 2295, 2294, 2238, 2292, 2249, 2233, 2289, 2288, + 2785, 2230, 2244, 2243, 763, 2244, 2243, 2240, 2224, 2280, + 2241, 2236, 2225, 2230, 2222, 2785, 161, 2785, 2785, 712, + 735, 739, 743, 759, 217, 275, 373, 392, 416, 452, + 458, 533, 599, 663, 686, 740, 777, 735, 739, 776, + 778, 733, 729, 734, 735, 746, 751, 737, 740, 743, + 752, 752, 736, 796, 755, 748, 760, 803, 750, 757, + 757, 759, 763, 768, 771, 813, 773, 821, 775, 778, + + 773, 764, 779, 784, 785, 782, 779, 786, 785, 773, + 787, 774, 786, 794, 833, 792, 840, 841, 782, 795, + 781, 791, 841, 796, 849, 2785, 802, 800, 802, 798, + 792, 808, 856, 852, 853, 813, 2785, 803, 804, 803, + 816, 806, 819, 866, 822, 807, 869, 870, 824, 2785, + 818, 812, 807, 818, 831, 822, 811, 817, 875, 836, + 820, 820, 833, 880, 824, 831, 843, 838, 843, 840, + 887, 826, 838, 852, 846, 837, 834, 2785, 901, 856, + 857, 845, 859, 849, 853, 865, 856, 859, 864, 865, + 893, 885, 914, 915, 889, 862, 876, 879, 859, 866, + + 880, 928, 882, 867, 880, 878, 2785, 2785, 882, 877, + 892, 889, 875, 877, 896, 893, 893, 895, 883, 891, + 892, 902, 949, 908, 947, 906, 897, 910, 896, 895, + 901, 893, 904, 899, 900, 906, 922, 905, 962, 963, + 915, 965, 2785, 926, 918, 929, 927, 975, 914, 931, + 917, 932, 934, 921, 919, 984, 920, 939, 925, 931, + 929, 2785, 2785, 945, 944, 945, 950, 938, 948, 950, + 2785, 950, 952, 939, 957, 944, 946, 2785, 943, 961, + 962, 948, 949, 945, 950, 968, 1012, 2785, 970, 1014, + 2785, 2785, 969, 969, 1018, 961, 965, 959, 975, 1023, + + 973, 963, 964, 960, 970, 974, 985, 980, 1027, 983, + 976, 978, 974, 991, 981, 996, 979, 1041, 995, 997, + 1001, 988, 979, 1002, 988, 988, 2785, 995, 996, 1048, + 1049, 998, 1011, 1052, 996, 1012, 1012, 1006, 1030, 1040, + 1028, 1036, 1048, 1065, 1011, 1025, 1065, 1024, 1067, 2785, + 1073, 1023, 1014, 1033, 1023, 1022, 1017, 1018, 1030, 1025, + 1021, 1039, 1031, 1026, 1027, 1037, 1046, 1087, 2785, 1041, + 1035, 1053, 1046, 1041, 1097, 1103, 1057, 1048, 1106, 1063, + 1054, 1062, 1064, 1049, 1065, 1070, 1056, 1068, 1065, 1063, + 1075, 1059, 1060, 2785, 1076, 1079, 1076, 1063, 1065, 1126, + + 1066, 1085, 2785, 1072, 1085, 1089, 1075, 1070, 1088, 1076, + 1132, 1087, 1083, 1080, 1136, 1082, 1138, 1097, 1083, 1101, + 1101, 1101, 1103, 1088, 1103, 1090, 1091, 1107, 1094, 1111, + 2785, 1109, 1096, 2785, 1154, 1104, 2785, 1114, 1107, 1163, + 1107, 2785, 1110, 1115, 1162, 1110, 1111, 1123, 1117, 1115, + 1112, 1127, 1175, 1116, 1117, 1178, 1179, 1120, 1132, 1125, + 2785, 1121, 1138, 1130, 1126, 1130, 1184, 1123, 1144, 1130, + 1131, 1132, 1133, 1139, 1147, 1138, 1152, 1200, 1154, 1155, + 1170, 1199, 1182, 1174, 1179, 2785, 1162, 1147, 1167, 1150, + 1150, 2785, 1153, 1152, 1154, 1165, 1155, 1175, 1174, 1165, + + 1176, 1222, 1161, 1173, 1182, 1175, 1179, 1183, 1166, 1187, + 1184, 1189, 1180, 1239, 1183, 1187, 2785, 1237, 1183, 2785, + 1201, 1183, 1183, 1204, 1201, 1244, 1204, 1191, 1209, 1197, + 1211, 1204, 1213, 1193, 1208, 1215, 1200, 1261, 1262, 2785, + 1212, 1264, 1218, 1204, 1207, 1215, 1226, 1209, 1229, 1212, + 1214, 1214, 1221, 1230, 1218, 1225, 1220, 1227, 1239, 1283, + 1227, 1285, 1227, 1241, 1245, 1289, 1239, 1240, 1229, 1293, + 1241, 1244, 1239, 1243, 1298, 1299, 1249, 2785, 1238, 1255, + 1248, 1239, 1258, 1252, 1247, 1257, 1253, 1248, 1266, 2785, + 1250, 1246, 2785, 2785, 1252, 1315, 1271, 1252, 1258, 1272, + + 1258, 1274, 1276, 1318, 1268, 1325, 1326, 1276, 1281, 1275, + 1273, 1284, 1266, 2785, 1271, 1277, 1303, 1316, 1304, 1318, + 1305, 1340, 1290, 1293, 1293, 1297, 1298, 1346, 1286, 1286, + 1289, 1306, 1301, 1305, 1300, 2785, 1297, 1310, 1294, 1311, + 1291, 1312, 1302, 1295, 1307, 1308, 1364, 1314, 2785, 1327, + 1325, 1328, 1312, 1321, 1325, 1330, 1316, 1379, 1329, 1335, + 1335, 1322, 1336, 1334, 1331, 1327, 1345, 1346, 1347, 1330, + 2785, 2785, 1346, 2785, 1348, 1333, 1344, 1350, 1336, 1355, + 1348, 1346, 1401, 1355, 1352, 1399, 1360, 1349, 1356, 1361, + 1358, 1364, 2785, 1357, 2785, 1349, 1362, 1414, 2785, 1358, + + 1359, 1370, 2785, 1371, 1365, 1360, 1370, 2785, 2785, 1360, + 1361, 1364, 1378, 1383, 1366, 1377, 1429, 1383, 1370, 1389, + 1380, 1434, 1430, 1436, 2785, 1384, 1381, 1392, 1440, 1441, + 1442, 1396, 1397, 1399, 2785, 2785, 1391, 1386, 1443, 1389, + 1405, 1389, 1401, 1390, 1449, 1432, 1433, 1425, 1458, 2785, + 1402, 1413, 1404, 1415, 1417, 2785, 1464, 1398, 1409, 1424, + 1463, 1412, 1423, 1411, 1410, 1426, 1427, 1424, 1471, 1431, + 1478, 1479, 1435, 1424, 1436, 1442, 1431, 1431, 1489, 1485, + 1486, 1492, 1446, 2785, 1448, 1444, 1448, 1450, 1441, 1444, + 1453, 1450, 1440, 1443, 1443, 1505, 1506, 1450, 1508, 1452, + + 1510, 1512, 1452, 1457, 1515, 2785, 1470, 1449, 1464, 1457, + 1460, 1473, 1476, 1475, 1473, 1525, 1476, 1466, 2785, 1473, + 1474, 1526, 1470, 1486, 1534, 1487, 1536, 1537, 1538, 1479, + 1489, 1541, 1495, 2785, 1487, 1544, 1485, 1485, 2785, 1503, + 2785, 1500, 1491, 1491, 2785, 2785, 2785, 1505, 1488, 1508, + 1509, 1495, 1497, 1559, 1506, 1561, 1507, 1501, 1528, 1546, + 1561, 1547, 2785, 1511, 1569, 1516, 1566, 1572, 2785, 1512, + 1574, 1521, 1515, 1512, 1515, 1517, 1513, 1576, 1536, 1578, + 1528, 1540, 1543, 2785, 2785, 1540, 1532, 1535, 1530, 1595, + 1540, 2785, 1537, 1536, 2785, 1538, 1600, 1539, 1551, 1542, + + 1599, 1558, 1560, 1560, 1557, 1604, 1563, 2785, 2785, 1555, + 2785, 1556, 2785, 2785, 1566, 1558, 2785, 1610, 1569, 1570, + 1568, 1615, 1560, 1575, 1618, 1577, 1569, 2785, 1566, 1576, + 1567, 1568, 1569, 1626, 1632, 2785, 1586, 2785, 2785, 2785, + 1629, 1573, 2785, 1590, 1575, 2785, 1589, 1577, 1641, 1585, + 1578, 1583, 1594, 1587, 1606, 1599, 1605, 1595, 1653, 1603, + 2785, 1612, 2785, 1609, 1657, 1634, 1635, 1641, 1626, 1634, + 1663, 2785, 1618, 1603, 2785, 1666, 2785, 1667, 1621, 1626, + 1608, 1671, 1672, 1613, 1669, 1632, 1626, 1622, 1616, 1623, + 1675, 1630, 1631, 2785, 1621, 1637, 1641, 1692, 2785, 1642, + + 1628, 1690, 1651, 1651, 1693, 1638, 1643, 1641, 1703, 1656, + 1644, 1706, 1702, 1654, 1709, 1667, 1656, 1650, 1713, 1652, + 1661, 1654, 1668, 1671, 1662, 1720, 1721, 1671, 1669, 2785, + 1662, 1660, 1721, 1722, 1723, 1675, 1674, 1674, 1670, 1671, + 2785, 1679, 1685, 1676, 1677, 1739, 1677, 1679, 1737, 1680, + 2785, 1676, 1694, 1746, 2785, 1714, 1728, 1727, 1716, 1718, + 2785, 1752, 1702, 2785, 2785, 1693, 1704, 1756, 2785, 1757, + 2785, 1711, 1701, 1706, 1704, 1757, 1712, 1718, 1704, 1707, + 1723, 1712, 1710, 1710, 1712, 2785, 1716, 1779, 1717, 1731, + 1777, 1721, 1785, 1730, 1740, 1741, 2785, 1789, 1739, 1786, + + 2785, 1734, 1742, 2785, 1733, 1748, 1736, 2785, 1746, 1747, + 1748, 1800, 1755, 1746, 2785, 2785, 1735, 1753, 1754, 1763, + 1745, 1751, 1764, 1753, 1806, 1755, 1751, 1756, 1753, 1754, + 1812, 1818, 2785, 1765, 1820, 1770, 1760, 1776, 1769, 2785, + 1802, 1827, 1809, 1824, 1830, 2785, 1776, 1832, 1771, 2785, + 2785, 1773, 1775, 1785, 1832, 1777, 1792, 1779, 1841, 1795, + 1781, 1788, 1788, 1799, 1800, 1792, 2785, 1795, 1789, 1791, + 1806, 1793, 1805, 2785, 1852, 1800, 1797, 2785, 1811, 1798, + 1819, 1815, 1817, 1865, 1815, 1812, 1820, 1814, 2785, 1870, + 1828, 1825, 1818, 1819, 1824, 1825, 1819, 1824, 1835, 1819, + + 1828, 1877, 1883, 1833, 1885, 1831, 2785, 1825, 2785, 1832, + 1889, 1890, 1887, 1888, 2785, 1870, 1876, 2785, 1848, 2785, + 1892, 1841, 1852, 1853, 1838, 1839, 1847, 1904, 2785, 1849, + 1901, 1902, 1854, 1849, 1867, 1868, 1865, 1913, 1857, 1870, + 1865, 1862, 1867, 1865, 1920, 1923, 1868, 1865, 1879, 1866, + 2785, 1881, 1882, 1883, 1884, 2785, 1878, 1933, 1883, 1888, + 1874, 1882, 1876, 1896, 1897, 1878, 1879, 1886, 2785, 1888, + 2785, 1902, 1899, 1942, 1900, 2785, 2785, 1904, 1930, 1931, + 1929, 1892, 1892, 1901, 1908, 1901, 1900, 1911, 1898, 2785, + 1914, 1902, 1905, 1964, 1901, 1920, 1913, 1912, 2785, 1924, + + 1917, 1916, 1925, 1927, 1931, 2785, 2785, 1924, 1917, 1918, + 1981, 1921, 1983, 1922, 1985, 1981, 2785, 1925, 1988, 1984, + 1943, 1940, 1931, 1939, 1950, 1937, 1948, 1934, 1932, 1940, + 1939, 1944, 1936, 1981, 2005, 1987, 2007, 1957, 1946, 1959, + 1949, 1966, 1965, 2009, 1950, 1969, 1970, 2785, 1975, 1968, + 2015, 2021, 1975, 1962, 1977, 2025, 1979, 1982, 1969, 1978, + 1979, 2785, 2033, 2785, 1983, 2785, 1981, 2036, 2785, 1975, + 2038, 1982, 1979, 2041, 1986, 2038, 2039, 1998, 2041, 1984, + 1988, 2006, 2050, 2006, 2033, 2785, 2029, 2785, 1999, 1993, + 1990, 2052, 2015, 2008, 2004, 2061, 2001, 2003, 2002, 2009, + + 2021, 2785, 2006, 2068, 2009, 2785, 2014, 2024, 2009, 2017, + 2019, 2785, 2020, 2025, 2785, 2026, 2785, 2023, 2034, 2785, + 2035, 2035, 2026, 2085, 2026, 2036, 2021, 2034, 2785, 2036, + 2067, 2073, 2045, 2043, 2095, 2033, 2035, 2032, 2056, 2785, + 2043, 2050, 2051, 2054, 2050, 2044, 2785, 2101, 2045, 2053, + 2062, 2061, 2064, 2065, 2052, 2059, 2054, 2055, 2055, 2069, + 2064, 2785, 2075, 2063, 2119, 2067, 2079, 2107, 2128, 2129, + 2073, 2785, 2073, 2085, 2133, 2079, 2081, 2079, 2080, 2138, + 2096, 2089, 2076, 2091, 2096, 2144, 2145, 2146, 2147, 2086, + 2102, 2150, 2151, 2152, 2094, 2098, 2094, 2110, 2093, 2105, + + 2099, 2161, 2785, 2785, 2106, 2117, 2164, 2785, 2118, 2103, + 2121, 2112, 2785, 2108, 2114, 2128, 2124, 2117, 2785, 2785, + 2785, 2785, 2174, 2175, 2785, 2785, 2785, 2115, 2123, 2118, + 2174, 2137, 2134, 2182, 2785, 2178, 2141, 2785, 2185, 2124, + 2187, 2127, 2128, 2141, 2140, 2141, 2131, 2785, 2785, 2132, + 2195, 2145, 2154, 2147, 2194, 2785, 2145, 2139, 2785, 2151, + 2785, 2198, 2157, 2205, 2144, 2160, 2208, 2209, 2785, 2163, + 2157, 2150, 2170, 2157, 2169, 2160, 2164, 2158, 2785, 2215, + 2161, 2785, 2785, 2161, 2169, 2219, 2176, 2169, 2181, 2228, + 2173, 2173, 2231, 2170, 2172, 2234, 2235, 2174, 2190, 2175, + + 2192, 2785, 2240, 2184, 2785, 2191, 2243, 2785, 2785, 2193, + 2245, 2190, 2247, 2785, 2195, 2194, 2785, 2195, 2785, 2189, + 2785, 2189, 2206, 2207, 2255, 2198, 2257, 2258, 2785, 2259, + 2785, 2785, 2785, 2785, 2265, 2268, 2271, 2272, 2274, 2277, + 2280, 2283 } ; -static const flex_int16_t yy_def[2334] = +static const flex_int16_t yy_def[2343] = { 0, - 2326, 2326, 2327, 2327, 2326, 2326, 2326, 2326, 2326, 2326, - 2325, 2325, 2325, 2325, 2325, 2328, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2329, - 2325, 2325, 2325, 2330, 15, 2325, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2331, 45, 45, + 2335, 2335, 2336, 2336, 2335, 2335, 2335, 2335, 2335, 2335, + 2334, 2334, 2334, 2334, 2334, 2337, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2338, + 2334, 2334, 2334, 2339, 15, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2328, - 2325, 2325, 2325, 2325, 2325, 2325, 2332, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2329, 2325, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2337, + 2334, 2334, 2334, 2334, 2334, 2334, 2341, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2338, 2334, - 2330, 2325, 2325, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2333, 45, 2331, 45, + 2339, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2342, 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2332, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 45, 45, 45, 2325, + 45, 45, 45, 45, 45, 45, 45, 2341, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 45, 45, 45, 2334, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, - 2333, 2325, 2325, 119, 45, 45, 45, 45, 45, 45, + 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, + 2342, 2334, 2334, 119, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 45, 45, 45, 45, 45, - 2325, 45, 45, 2325, 45, 2325, 45, 119, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 45, 45, 45, 45, 45, + 2334, 45, 45, 2334, 45, 2334, 45, 119, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1316,39 +1318,39 @@ static const flex_int16_t yy_def[2334] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 2325, 2325, 45, 45, 45, 45, - 2325, 45, 45, 2325, 45, 119, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2334, 2334, 2334, 45, 45, 45, 45, + 2334, 45, 45, 2334, 45, 119, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 2325, 45, 45, 45, 45, 45, + 45, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, - 2325, 45, 2325, 2325, 45, 2325, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, + 45, 2334, 45, 2334, 2334, 45, 2334, 45, 45, 45, - 2325, 45, 45, 2325, 2325, 2325, 45, 45, 45, 45, - 45, 2325, 45, 2325, 45, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 2334, 2334, 2334, 45, 45, 45, + 45, 45, 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, - 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 2325, 2325, 45, 45, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1357,184 +1359,185 @@ static const flex_int16_t yy_def[2334] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 2325, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 2325, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 2325, 2325, 45, 45, + 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, + 2334, 45, 45, 45, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, + 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, - + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45, - 45, 2325, 45, 45, 45, 45, 2325, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, + + 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2334, 45, 45, 2334, 45, 45, 2334, 45, 45, 45, + 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 2325, 45, 45, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 2325, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, + 45, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 2325, 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 2325, 45, 45, - 45, 2325, 45, 45, 45, 2325, 45, 45, 45, 45, + 2334, 2334, 45, 2334, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2334, 45, 2334, 45, 45, 45, 2334, 45, - 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 2325, 45, + 45, 45, 2334, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 2325, 45, + 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45, - 2325, 45, 2325, 45, 45, 45, 2325, 2325, 2325, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 2334, 45, + 2334, 45, 45, 45, 2334, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2325, 2325, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 2325, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - - 2325, 45, 2325, 45, 2325, 45, 45, 2325, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 2325, 2325, - 2325, 45, 45, 2325, 45, 45, 2325, 45, 45, 45, + 45, 45, 2334, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 2325, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 2325, 45, 2325, 45, 45, + 45, 45, 45, 2334, 2334, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2334, 2334, 45, + 2334, 45, 2334, 2334, 45, 45, 2334, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 2334, 2334, 2334, + 45, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 45, 2325, + 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 45, 2325, 45, 45, 45, 45, - 45, 2325, 45, 45, 2325, 2325, 45, 45, 45, 2325, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, - 45, 2325, 45, 45, 2325, 45, 45, 45, 2325, 45, - - 45, 45, 45, 45, 45, 2325, 2325, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 2325, 45, 45, 45, - 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, - 45, 45, 45, 45, 2325, 45, 45, 45, 2325, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2334, 45, 45, 45, 2334, 45, 45, 45, 45, 45, + 2334, 45, 45, 2334, 2334, 45, 45, 45, 2334, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, + + 2334, 45, 45, 2334, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 2325, - - 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325, + 45, 45, 2334, 45, 45, 45, 45, 45, 45, 2334, + 45, 45, 45, 45, 45, 2334, 45, 45, 45, 2334, + 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, + 45, 45, 45, 2334, 45, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 2334, 45, 2334, 45, + 45, 45, 45, 45, 2334, 45, 45, 2334, 45, 2334, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2325, 45, 45, 45, 45, 2325, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 2325, 45, 45, 45, 45, 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 45, 45, 45, 45, 2325, 2325, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45, + 2334, 45, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 2334, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + + 45, 45, 45, 45, 45, 2334, 2334, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 2325, 45, 2325, 45, 45, 2325, + 45, 2334, 45, 2334, 45, 2334, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2325, 45, 2325, 45, + 45, 45, 45, 45, 45, 2334, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 2325, 45, 45, 45, - 45, 45, 2325, 45, 45, 2325, 45, 2325, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2325, 45, 45, 45, 45, 45, 45, 2325, 45, 45, + 45, 2334, 45, 45, 45, 2334, 45, 45, 45, 45, + 45, 2334, 45, 45, 2334, 45, 2334, 45, 45, 2334, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2334, + 45, 45, 45, 45, 45, 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2325, 2325, 45, 45, 45, 2325, 45, - - 45, 45, 45, 2325, 45, 45, 45, 45, 45, 2325, - 2325, 2325, 2325, 45, 45, 2325, 2325, 2325, 45, 45, - 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2325, 2325, - 45, 45, 45, 45, 45, 45, 2325, 45, 45, 2325, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 45, 2325, 2325, 45, 45, 45, 45, 45, 45, + + 45, 45, 2334, 2334, 45, 45, 45, 2334, 45, 45, + 45, 45, 2334, 45, 45, 45, 45, 45, 2334, 2334, + 2334, 2334, 45, 45, 2334, 2334, 2334, 45, 45, 45, + 45, 45, 45, 45, 2334, 45, 45, 2334, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2334, 2334, 45, + 45, 45, 45, 45, 45, 2334, 45, 45, 2334, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 45, 2334, 2334, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2325, 45, 45, 2325, 45, 45, 2325, 2325, - 45, 45, 45, 45, 2325, 45, 45, 2325, 45, 2325, - 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325, - 45, 2325, 2325, 2325, 0, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325 + 45, 2334, 45, 45, 2334, 45, 45, 2334, 2334, 45, + 45, 45, 45, 2334, 45, 45, 2334, 45, 2334, 45, + 2334, 45, 45, 45, 45, 45, 45, 45, 2334, 45, + 2334, 2334, 2334, 0, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334 } ; -static const flex_int16_t yy_nxt[2853] = +static const flex_int16_t yy_nxt[2862] = { 0, - 2325, 13, 14, 13, 2325, 15, 16, 102, 17, 18, + 2334, 13, 14, 13, 2334, 15, 16, 102, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 86, 254, 37, 14, 37, 87, 25, 26, 38, 37, - 14, 37, 42, 27, 42, 38, 2325, 2325, 28, 91, + 14, 37, 42, 27, 42, 38, 2334, 2334, 28, 91, 13, 14, 13, 92, 29, 91, 30, 103, 13, 14, 13, 202, 25, 31, 13, 14, 13, 42, 40, 42, - 2325, 32, 13, 14, 13, 91, 40, 33, 255, 167, + 2334, 32, 13, 14, 13, 91, 40, 33, 255, 167, 93, 94, 92, 168, 34, 35, 13, 14, 13, 202, 15, 16, 92, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, 39, 13, 14, 13, 93, @@ -1552,12 +1555,12 @@ static const flex_int16_t yy_nxt[2853] = 60, 61, 62, 63, 64, 45, 65, 66, 52, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 45, 45, 45, 45, 45, 81, 893, 82, + 78, 79, 45, 45, 45, 45, 45, 81, 890, 82, 82, 82, 82, 82, 81, 116, 84, 84, 84, 84, 84, 191, 83, 85, 85, 85, 85, 85, 81, 83, 84, 84, 84, 84, 84, 113, 83, 158, 198, 159, 207, 111, 116, 83, 160, 108, 141, 114, 83, 112, - 191, 142, 104, 144, 143, 83, 148, 149, 210, 894, + 191, 142, 104, 144, 143, 83, 148, 149, 210, 896, 150, 113, 83, 145, 198, 146, 151, 111, 207, 83, 45, 108, 45, 45, 45, 45, 114, 112, 45, 120, @@ -1565,7 +1568,7 @@ static const flex_int16_t yy_nxt[2853] = 45, 90, 90, 90, 90, 90, 45, 45, 45, 45, 45, 45, 105, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 102, - 191, 895, 124, 45, 152, 351, 125, 45, 352, 105, + 191, 897, 124, 45, 152, 351, 125, 45, 352, 105, 126, 45, 153, 127, 130, 203, 128, 131, 132, 45, 129, 133, 134, 45, 154, 45, 119, 111, 161, 194, 115, 162, 163, 197, 135, 112, 176, 177, 116, 103, @@ -1574,111 +1577,111 @@ static const flex_int16_t yy_nxt[2853] = 175, 190, 197, 112, 201, 116, 184, 271, 189, 241, 190, 185, 178, 205, 179, 187, 208, 180, 181, 85, - 85, 85, 85, 85, 192, 246, 209, 182, 193, 896, + 85, 85, 85, 85, 192, 246, 209, 182, 193, 898, 243, 201, 83, 81, 183, 82, 82, 82, 82, 82, - 897, 247, 205, 244, 89, 208, 89, 245, 83, 90, + 899, 247, 205, 244, 89, 208, 89, 245, 83, 90, 90, 90, 90, 90, 209, 197, 272, 81, 83, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 101, - 251, 898, 83, 215, 83, 252, 101, 83, 90, 90, + 251, 900, 83, 215, 83, 252, 101, 83, 90, 90, 90, 90, 90, 220, 216, 226, 248, 259, 302, 249, 264, 205, 221, 250, 227, 228, 222, 296, 83, 275, 260, 297, 303, 83, 308, 298, 207, 208, 286, 101, - 309, 265, 314, 101, 276, 277, 278, 101, 405, 899, + 309, 265, 314, 101, 276, 277, 278, 101, 405, 901, 270, 421, 320, 409, 422, 101, 315, 319, 406, 101, - 900, 101, 101, 213, 307, 321, 312, 319, 410, 329, + 902, 101, 101, 213, 307, 321, 312, 319, 410, 329, 320, 214, 214, 214, 214, 214, 287, 288, 289, 320, 214, 214, 214, 214, 214, 214, 319, 290, 321, 291, 326, 321, 292, 327, 293, 294, 322, 323, 329, 330, 332, 392, 333, 335, 337, 326, 214, 214, 214, 214, 214, 214, 332, 418, 324, 436, 326, 437, 334, 327, - 457, 419, 901, 441, 335, 458, 332, 330, 333, 335, + 457, 419, 903, 441, 335, 458, 332, 330, 333, 335, 454, 340, 337, 338, 338, 338, 338, 338, 399, 451, 353, 454, 338, 338, 338, 338, 338, 338, 354, 457, 335, 452, 458, 460, 355, 462, 454, 393, 463, 491, - 394, 485, 457, 561, 446, 492, 486, 455, 338, 338, - 338, 338, 338, 338, 556, 507, 511, 533, 557, 460, - 508, 512, 537, 534, 462, 463, 466, 466, 466, 466, - 466, 468, 538, 607, 902, 466, 466, 466, 466, 466, - 466, 527, 528, 529, 462, 552, 596, 530, 566, 575, - 553, 597, 567, 576, 602, 562, 608, 618, 609, 607, - 602, 466, 466, 466, 466, 466, 466, 640, 723, 619, - - 653, 509, 750, 539, 687, 654, 510, 513, 629, 688, - 641, 677, 630, 602, 608, 741, 609, 751, 742, 611, - 631, 678, 632, 633, 634, 635, 636, 715, 750, 752, - 747, 763, 716, 810, 811, 754, 554, 45, 45, 45, - 45, 45, 748, 875, 889, 751, 45, 45, 45, 45, - 45, 45, 756, 724, 831, 876, 834, 749, 752, 757, - 779, 835, 832, 780, 847, 888, 890, 891, 748, 848, - 903, 889, 45, 45, 45, 45, 45, 45, 892, 904, - 905, 906, 907, 908, 910, 909, 749, 764, 911, 912, - 913, 914, 915, 890, 888, 916, 891, 917, 836, 918, - - 919, 920, 921, 922, 892, 923, 924, 925, 926, 927, - 928, 849, 929, 930, 931, 934, 935, 936, 932, 937, - 938, 939, 933, 940, 941, 942, 943, 944, 945, 946, + 394, 485, 457, 562, 446, 492, 486, 455, 338, 338, + 338, 338, 338, 338, 557, 507, 511, 534, 558, 460, + 508, 512, 520, 535, 462, 463, 466, 466, 466, 466, + 466, 468, 521, 904, 538, 466, 466, 466, 466, 466, + 466, 528, 529, 530, 539, 462, 553, 531, 567, 576, + 603, 554, 568, 577, 597, 563, 608, 619, 609, 598, + 610, 466, 466, 466, 466, 466, 466, 603, 641, 620, + + 654, 509, 725, 689, 540, 655, 510, 513, 690, 603, + 679, 642, 608, 630, 717, 754, 609, 631, 610, 718, + 680, 743, 905, 765, 744, 632, 612, 633, 634, 635, + 636, 637, 753, 752, 813, 814, 906, 555, 45, 45, + 45, 45, 45, 750, 754, 907, 758, 45, 45, 45, + 45, 45, 45, 759, 891, 834, 749, 726, 751, 752, + 753, 756, 781, 835, 892, 782, 837, 850, 878, 750, + 893, 838, 851, 45, 45, 45, 45, 45, 45, 766, + 879, 894, 908, 891, 909, 895, 913, 751, 914, 910, + 911, 892, 912, 915, 916, 917, 918, 893, 919, 920, + + 921, 922, 923, 924, 925, 926, 927, 928, 839, 929, + 894, 895, 930, 931, 852, 932, 933, 934, 937, 938, + 939, 935, 940, 941, 942, 936, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, - 957, 958, 959, 960, 961, 962, 963, 965, 966, 964, - 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, + 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, + 967, 969, 970, 968, 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, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, - 1007, 1009, 1010, 1013, 1014, 1015, 1016, 1008, 1020, 1011, + 1007, 1008, 1009, 1010, 1011, 1013, 1014, 1017, 1018, 1019, - 1021, 1022, 1023, 1012, 1024, 1025, 1026, 1027, 1028, 1017, - 1029, 1018, 1030, 1031, 1032, 1019, 1033, 1034, 1035, 1036, + 1020, 1012, 1024, 1015, 1025, 1026, 1027, 1016, 1028, 1029, + 1030, 1031, 1032, 1021, 1033, 1022, 1034, 1035, 1036, 1023, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, - 1057, 1058, 1059, 1060, 1061, 1035, 1062, 1063, 1036, 1064, - 1065, 1039, 1067, 1068, 1069, 1066, 1070, 1071, 1072, 1073, + 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1039, + 1066, 1067, 1040, 1068, 1069, 1043, 1071, 1072, 1073, 1070, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1092, 1093, 1094, - 1095, 1091, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1096, 1097, 1098, 1099, 1095, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, - 1114, 1115, 1116, 1117, 1118, 1119, 1121, 1122, 1123, 1120, - 1124, 1125, 1126, 1128, 1129, 1130, 1131, 1127, 1132, 1133, - 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, - 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1152, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - 1174, 1175, 1176, 1177, 1178, 1181, 1179, 1182, 1183, 1180, - 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1126, 1127, 1128, 1125, 1129, 1130, 1131, 1133, 1134, + 1135, 1136, 1132, 1137, 1138, 1139, 1140, 1141, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 1154, 1155, 1156, 1158, 1159, 1160, 1161, 1162, 1163, 1164, + 1165, 1166, 1167, 1168, 1157, 1169, 1170, 1171, 1172, 1173, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1186, 1184, 1187, 1188, 1185, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, - 1177, 1176, 1204, 1178, 1179, 1180, 1205, 1207, 1208, 1206, + 1204, 1205, 1206, 1207, 1208, 1182, 1181, 1209, 1183, 1184, - 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 1185, 1210, 1212, 1213, 1211, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1238, 1239, 1240, - 1241, 1236, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, + 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, + 1239, 1240, 1243, 1244, 1245, 1246, 1241, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, - 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1237, 1297, 1298, - 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, + 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1242, 1302, 1303, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1311, 1312, 1314, 1313, 1315, 1316, 1317, 1318, - 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, + 1320, 1319, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1340, 1311, 1313, 1314, 1315, 1341, 1342, 1339, 1343, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1317, 1319, 1320, + 1321, 1347, 1348, 1345, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, - 1365, 1366, 1367, 1368, 1370, 1371, 1372, 1373, 1369, 1374, - 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, + 1376, 1377, 1378, 1379, 1375, 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, 1433, 1434, - 1435, 1436, 1437, 1438, 1439, 1440, 1442, 1441, 1443, 1444, - 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, + 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1449, 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, - 1439, 1465, 1438, 1441, 1440, 1442, 1466, 1467, 1468, 1469, - 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, + 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1446, 1472, 1445, + 1448, 1447, 1449, 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, @@ -1688,163 +1691,164 @@ static const flex_int16_t yy_nxt[2853] = 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, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, - 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1552, - 1553, 1580, 1581, 1554, 1582, 1583, 1584, 1585, 1586, 1587, - 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, - - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1562, 1606, - 1607, 1608, 1609, 1610, 1611, 1613, 1614, 1615, 1616, 1617, - 1618, 1619, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1626, - 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, - 1637, 1639, 1640, 1643, 1641, 1638, 1642, 1644, 1645, 1646, - 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, - 1657, 1658, 1659, 1662, 1661, 1663, 1664, 1665, 1666, 1667, - 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, - 1678, 1679, 1680, 1681, 1682, 1683, 1660, 1658, 1684, 1657, - 1661, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, + 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1560, 1561, 1588, + 1589, 1562, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + + 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, + 1608, 1609, 1610, 1611, 1612, 1613, 1570, 1614, 1615, 1616, + 1617, 1618, 1619, 1620, 1622, 1623, 1624, 1625, 1626, 1627, + 1628, 1621, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, + 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 1648, 1649, 1652, 1650, 1647, 1651, 1653, 1654, 1655, 1656, + 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, + 1667, 1668, 1671, 1670, 1672, 1673, 1674, 1675, 1676, 1677, + 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, + 1688, 1689, 1690, 1691, 1692, 1669, 1667, 1693, 1666, 1670, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, - 1704, 1705, 1706, 1707, 1660, 1708, 1709, 1710, 1711, 1712, - 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, - 1723, 1724, 1725, 1726, 1727, 1731, 1728, 1732, 1733, 1729, - 1734, 1735, 1730, 1736, 1737, 1738, 1739, 1740, 1741, 1742, - 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1749, 1751, 1752, - 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762, 1763, - 1764, 1767, 1768, 1765, 1769, 1770, 1771, 1772, 1773, 1774, - 1775, 1747, 1748, 1749, 1766, 1750, 1751, 1776, 1777, 1778, - 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, - - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, + 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 1714, 1715, 1716, 1669, 1717, 1718, 1719, 1720, 1721, 1722, + 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, + 1733, 1734, 1735, 1736, 1740, 1737, 1741, 1742, 1738, 1743, + 1744, 1739, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1759, 1758, 1760, 1761, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1771, 1772, 1773, + 1776, 1777, 1774, 1778, 1779, 1780, 1781, 1782, 1783, 1784, + 1756, 1757, 1758, 1775, 1759, 1760, 1785, 1786, 1787, 1788, + + 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1761, 1818, - 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, - 1829, 1830, 1831, 1832, 1833, 1835, 1834, 1836, 1837, 1838, - 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, - 1789, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, - 1833, 1861, 1832, 1834, 1835, 1858, 1836, 1862, 1863, 1864, - 1859, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, + 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, + 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1770, 1827, 1828, + 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, + 1839, 1840, 1841, 1842, 1844, 1843, 1845, 1846, 1847, 1848, + 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1798, + 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1842, + 1870, 1841, 1843, 1844, 1867, 1845, 1871, 1872, 1873, 1868, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, - 1904, 1905, 1860, 1906, 1907, 1908, 1909, 1910, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, - 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1905, 1931, - 1907, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, + 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1914, 1869, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, + 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, + 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1914, 1940, 1916, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1962, 1963, 1965, 1966, 1967, 1968, 1964, 1969, 1970, - 1971, 1973, 1972, 1974, 1975, 1976, 1977, 1978, 1979, 1980, + 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, + 1971, 1972, 1974, 1975, 1976, 1977, 1973, 1978, 1979, 1980, - 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, - 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1971, 1972, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 1982, 1981, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, + 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2001, 2002, 2003, 2004, 2005, 2006, 1980, 1981, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, - 2049, 2050, 2025, 2026, 2051, 2027, 2052, 2053, 2054, 2055, - 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, - 2066, 2067, 2068, 2069, 2070, 2071, 2073, 2074, 2072, 2075, + 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2034, 2035, 2060, 2036, 2061, 2062, 2063, 2064, 2065, + 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, - 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, + 2076, 2077, 2078, 2079, 2080, 2082, 2083, 2081, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, - 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2076, 2078, 2103, - 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, + 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, + 2106, 2107, 2108, 2109, 2110, 2111, 2085, 2087, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, - 2144, 2145, 2146, 2147, 2122, 2148, 2123, 2149, 2150, 2151, - 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2161, 2160, - 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, + 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, + 2154, 2155, 2156, 2131, 2157, 2132, 2158, 2159, 2160, 2161, + 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2170, 2169, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, - 2182, 2183, 2184, 2185, 2159, 2160, 2186, 2187, 2188, 2189, - 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, + 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, + 2192, 2193, 2194, 2168, 2169, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, - 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2193, - 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, + 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, + 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2202, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, - 2280, 2279, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, - 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2289, + 2288, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, - 2319, 2320, 2321, 2322, 2323, 2324, 12, 12, 12, 36, - 36, 36, 80, 99, 80, 101, 101, 101, 117, 117, - 117, 188, 887, 188, 211, 211, 211, 886, 885, 884, - 883, 882, 881, 880, 879, 878, 877, 874, 873, 872, - 871, 870, 869, 868, 867, 866, 865, 864, 863, 862, - - 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, - 851, 850, 846, 845, 844, 843, 842, 841, 840, 839, - 838, 837, 833, 830, 829, 828, 827, 826, 825, 824, - 823, 822, 821, 820, 819, 818, 817, 816, 815, 814, - 813, 812, 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, 778, 777, 776, 775, 774, 773, 772, 771, 770, - 769, 768, 767, 766, 765, 762, 761, 760, 759, 758, - 755, 753, 747, 746, 745, 744, 743, 740, 739, 738, - - 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, - 727, 726, 725, 722, 721, 720, 719, 718, 717, 714, - 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, - 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, - 693, 692, 691, 690, 689, 686, 685, 684, 683, 682, - 681, 680, 679, 676, 675, 674, 673, 672, 671, 670, - 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, - 659, 658, 657, 656, 655, 652, 651, 650, 649, 648, - 647, 646, 645, 644, 643, 642, 639, 638, 637, 628, - 627, 626, 625, 624, 623, 622, 621, 620, 617, 616, - - 615, 614, 613, 612, 610, 606, 605, 604, 603, 601, - 600, 599, 598, 595, 594, 593, 592, 591, 590, 589, - 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 574, 573, 572, 571, 570, 569, 568, 565, - 564, 563, 560, 559, 558, 555, 551, 550, 549, 548, - 547, 546, 545, 544, 543, 542, 541, 540, 536, 535, - 532, 531, 526, 525, 524, 523, 522, 521, 520, 519, - 518, 517, 516, 515, 514, 506, 505, 504, 503, 502, - 501, 500, 499, 498, 497, 496, 495, 494, 493, 490, - 489, 488, 487, 484, 483, 482, 481, 480, 479, 478, - - 477, 476, 475, 474, 473, 472, 471, 470, 469, 467, - 465, 464, 461, 459, 456, 453, 450, 449, 448, 447, - 445, 444, 443, 442, 440, 439, 438, 435, 434, 433, - 432, 431, 430, 429, 428, 427, 426, 425, 424, 423, - 420, 417, 416, 415, 414, 413, 412, 411, 408, 407, - 404, 403, 402, 401, 400, 398, 397, 396, 395, 391, - 390, 389, 388, 387, 386, 385, 382, 381, 380, 379, - 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, - 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, - 358, 357, 356, 350, 349, 348, 347, 346, 345, 344, - - 343, 342, 341, 339, 212, 336, 334, 331, 328, 325, - 318, 317, 316, 313, 311, 310, 306, 305, 304, 301, - 300, 299, 295, 285, 284, 283, 280, 279, 274, 273, - 269, 268, 267, 266, 263, 262, 261, 258, 257, 256, - 253, 242, 238, 237, 236, 235, 231, 230, 229, 225, - 224, 223, 219, 218, 217, 212, 206, 200, 199, 196, - 195, 186, 166, 147, 123, 110, 107, 106, 43, 100, - 98, 97, 88, 43, 2325, 11, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325 + 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, + 2329, 2330, 2331, 2332, 2333, 12, 12, 12, 36, 36, + 36, 80, 99, 80, 101, 101, 101, 117, 117, 117, + 188, 889, 188, 211, 211, 211, 888, 887, 886, 885, + 884, 883, 882, 881, 880, 877, 876, 875, 874, 873, + + 872, 871, 870, 869, 868, 867, 866, 865, 864, 863, + 862, 861, 860, 859, 858, 857, 856, 855, 854, 853, + 849, 848, 847, 846, 845, 844, 843, 842, 841, 840, + 836, 833, 832, 831, 830, 829, 828, 827, 826, 825, + 824, 823, 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, + 780, 779, 778, 777, 776, 775, 774, 773, 772, 771, + 770, 769, 768, 767, 764, 763, 762, 761, 760, 757, + + 755, 749, 748, 747, 746, 745, 742, 741, 740, 739, + 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, + 728, 727, 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, 697, 696, 695, + 694, 693, 692, 691, 688, 687, 686, 685, 684, 683, + 682, 681, 678, 677, 676, 675, 674, 673, 672, 671, + 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, + 660, 659, 658, 657, 656, 653, 652, 651, 650, 649, + 648, 647, 646, 645, 644, 643, 640, 639, 638, 629, + + 628, 627, 626, 625, 624, 623, 622, 621, 618, 617, + 616, 615, 614, 613, 611, 607, 606, 605, 604, 602, + 601, 600, 599, 596, 595, 594, 593, 592, 591, 590, + 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, + 579, 578, 575, 574, 573, 572, 571, 570, 569, 566, + 565, 564, 561, 560, 559, 556, 552, 551, 550, 549, + 548, 547, 546, 545, 544, 543, 542, 541, 537, 536, + 533, 532, 527, 526, 525, 524, 523, 522, 519, 518, + 517, 516, 515, 514, 506, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 493, 490, 489, + + 488, 487, 484, 483, 482, 481, 480, 479, 478, 477, + 476, 475, 474, 473, 472, 471, 470, 469, 467, 465, + 464, 461, 459, 456, 453, 450, 449, 448, 447, 445, + 444, 443, 442, 440, 439, 438, 435, 434, 433, 432, + 431, 430, 429, 428, 427, 426, 425, 424, 423, 420, + 417, 416, 415, 414, 413, 412, 411, 408, 407, 404, + 403, 402, 401, 400, 398, 397, 396, 395, 391, 390, + 389, 388, 387, 386, 385, 382, 381, 380, 379, 378, + 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, + 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, + + 357, 356, 350, 349, 348, 347, 346, 345, 344, 343, + 342, 341, 339, 212, 336, 334, 331, 328, 325, 318, + 317, 316, 313, 311, 310, 306, 305, 304, 301, 300, + 299, 295, 285, 284, 283, 280, 279, 274, 273, 269, + 268, 267, 266, 263, 262, 261, 258, 257, 256, 253, + 242, 238, 237, 236, 235, 231, 230, 229, 225, 224, + 223, 219, 218, 217, 212, 206, 200, 199, 196, 195, + 186, 166, 147, 123, 110, 107, 106, 43, 100, 98, + 97, 88, 43, 2334, 11, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334 } ; -static const flex_int16_t yy_chk[2853] = +static const flex_int16_t yy_chk[2862] = { 0, 0, 1, 1, 1, 0, 1, 1, 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1870,12 +1874,12 @@ static const flex_int16_t yy_chk[2853] = 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, 753, 17, + 15, 15, 15, 15, 15, 15, 15, 17, 747, 17, 17, 17, 17, 17, 19, 57, 19, 19, 19, 19, 19, 93, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 55, 20, 71, 105, 71, 113, 54, 57, 22, 71, 64, 65, 55, 17, 54, - 93, 65, 59, 66, 65, 19, 68, 68, 116, 754, + 93, 65, 59, 66, 65, 19, 68, 68, 116, 755, 68, 55, 20, 66, 105, 66, 68, 54, 113, 22, 45, 64, 45, 45, 45, 45, 55, 54, 45, 59, @@ -1883,7 +1887,7 @@ static const flex_int16_t yy_chk[2853] = 58, 89, 89, 89, 89, 89, 45, 45, 45, 45, 45, 45, 61, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 101, - 96, 755, 61, 58, 69, 227, 61, 58, 227, 61, + 96, 756, 61, 58, 69, 227, 61, 58, 227, 61, 61, 58, 69, 61, 62, 110, 61, 62, 62, 58, 61, 62, 62, 58, 69, 58, 58, 70, 72, 96, 77, 72, 72, 104, 62, 70, 76, 76, 79, 101, @@ -1892,274 +1896,275 @@ static const flex_int16_t yy_chk[2853] = 75, 95, 104, 70, 108, 79, 77, 158, 91, 137, 92, 77, 76, 111, 76, 79, 114, 76, 76, 81, - 81, 81, 81, 81, 94, 140, 115, 76, 95, 756, + 81, 81, 81, 81, 94, 140, 115, 76, 95, 757, 139, 108, 81, 82, 76, 82, 82, 82, 82, 82, - 757, 140, 111, 139, 83, 114, 83, 139, 82, 83, + 758, 140, 111, 139, 83, 114, 83, 139, 82, 83, 83, 83, 83, 83, 115, 120, 158, 84, 81, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 103, - 142, 758, 84, 120, 82, 142, 103, 85, 90, 90, + 142, 759, 84, 120, 82, 142, 103, 85, 90, 90, 90, 90, 90, 124, 120, 128, 141, 148, 174, 141, 152, 157, 124, 141, 128, 128, 124, 170, 84, 161, 148, 170, 174, 85, 179, 170, 178, 182, 168, 103, - 179, 152, 184, 103, 161, 161, 161, 103, 276, 759, + 179, 152, 184, 103, 161, 161, 161, 103, 276, 760, 157, 289, 190, 279, 289, 103, 184, 189, 276, 103, - 760, 103, 103, 119, 178, 191, 182, 192, 279, 201, + 761, 103, 103, 119, 178, 191, 182, 192, 279, 201, 193, 119, 119, 119, 119, 119, 168, 168, 168, 190, 119, 119, 119, 119, 119, 119, 189, 168, 194, 168, 197, 191, 168, 198, 168, 168, 192, 193, 201, 202, 205, 265, 206, 208, 210, 216, 119, 119, 119, 119, 119, 119, 270, 287, 194, 303, 197, 303, 307, 198, - 326, 287, 761, 307, 312, 327, 205, 202, 206, 208, + 326, 287, 762, 307, 312, 327, 205, 202, 206, 208, 319, 216, 210, 214, 214, 214, 214, 214, 270, 317, 228, 322, 214, 214, 214, 214, 214, 214, 228, 326, 312, 317, 327, 329, 228, 332, 319, 265, 333, 362, 265, 357, 340, 418, 312, 362, 357, 322, 214, 214, 214, 214, 214, 214, 414, 377, 378, 395, 414, 329, - 377, 378, 398, 395, 332, 333, 338, 338, 338, 338, - 338, 340, 398, 463, 762, 338, 338, 338, 338, 338, - 338, 392, 392, 392, 399, 412, 450, 392, 422, 430, - 412, 450, 422, 430, 457, 418, 465, 475, 465, 463, - 468, 338, 338, 338, 338, 338, 338, 491, 575, 475, - - 504, 377, 607, 399, 539, 504, 377, 378, 487, 539, - 491, 529, 487, 457, 465, 597, 465, 608, 597, 468, - 487, 529, 487, 487, 487, 487, 487, 568, 607, 609, - 611, 621, 568, 669, 669, 611, 412, 466, 466, 466, - 466, 466, 603, 733, 749, 608, 466, 466, 466, 466, - 466, 466, 615, 575, 690, 733, 692, 603, 609, 615, - 636, 692, 690, 636, 704, 748, 750, 751, 603, 704, - 763, 749, 466, 466, 466, 466, 466, 466, 752, 764, - 765, 766, 767, 767, 768, 767, 603, 621, 769, 770, - 771, 772, 773, 750, 748, 774, 751, 775, 692, 776, - - 777, 778, 779, 780, 752, 781, 782, 783, 784, 785, - 786, 704, 787, 788, 789, 790, 791, 792, 789, 793, - 794, 795, 789, 796, 797, 798, 799, 800, 801, 802, - 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 819, - 822, 824, 825, 826, 827, 828, 829, 830, 831, 832, - 833, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, - 865, 866, 867, 868, 869, 870, 871, 865, 872, 867, - - 873, 874, 876, 867, 877, 878, 879, 880, 881, 871, - 882, 871, 883, 884, 885, 871, 886, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, - 900, 901, 902, 903, 906, 907, 908, 909, 910, 911, - 912, 913, 914, 915, 916, 888, 917, 918, 889, 919, - 920, 892, 921, 922, 923, 920, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 939, 941, 942, 943, 944, 945, 946, 947, 948, - 949, 945, 950, 951, 952, 953, 954, 955, 956, 957, - 960, 961, 962, 963, 964, 965, 966, 968, 969, 970, - - 971, 972, 973, 975, 976, 977, 978, 979, 980, 977, - 981, 982, 983, 985, 986, 989, 990, 983, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, - 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, - 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1010, - 1022, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1033, 1034, 1035, 1036, 1037, 1040, 1038, 1041, 1042, 1039, - 1043, 1044, 1045, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, - 1036, 1035, 1064, 1037, 1038, 1039, 1066, 1067, 1068, 1066, - - 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, - 1089, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100, - 1101, 1096, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128, 1130, 1131, - 1133, 1134, 1135, 1136, 1138, 1139, 1140, 1141, 1142, 1143, - 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, - 1154, 1155, 1157, 1158, 1159, 1160, 1161, 1096, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, - - 1174, 1175, 1176, 1177, 1179, 1178, 1180, 1182, 1183, 1184, - 1185, 1186, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, - 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, - 1206, 1176, 1178, 1179, 1180, 1207, 1208, 1205, 1209, 1210, - 1211, 1213, 1214, 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, 1237, 1242, - 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, - 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1273, - - 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, - 1285, 1286, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, - 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1309, 1310, 1311, 1312, 1313, 1315, 1314, 1316, 1317, - 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, - 1328, 1329, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, - 1312, 1339, 1311, 1314, 1313, 1315, 1340, 1341, 1342, 1344, - 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, - 1367, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, - - 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1389, - 1390, 1391, 1393, 1394, 1395, 1397, 1398, 1399, 1400, 1403, - 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 1417, 1419, 1420, 1421, 1422, 1423, 1424, - 1425, 1426, 1427, 1430, 1431, 1432, 1433, 1434, 1435, 1436, - 1437, 1438, 1439, 1440, 1441, 1442, 1444, 1445, 1446, 1447, - 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, - 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1439, - 1440, 1468, 1469, 1441, 1470, 1471, 1472, 1473, 1474, 1475, - 1476, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, - - 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1450, 1495, - 1496, 1497, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, - 1507, 1508, 1501, 1509, 1510, 1512, 1513, 1514, 1515, 1516, - 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1527, - 1528, 1529, 1530, 1534, 1532, 1528, 1532, 1535, 1536, 1540, - 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, - 1551, 1552, 1553, 1556, 1554, 1557, 1558, 1559, 1560, 1562, - 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1578, 1579, 1580, 1553, 1552, 1581, 1551, - 1554, 1582, 1583, 1585, 1586, 1588, 1589, 1590, 1591, 1592, - - 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1602, 1604, 1606, - 1607, 1609, 1610, 1611, 1553, 1612, 1613, 1614, 1615, 1616, - 1617, 1618, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1628, - 1632, 1633, 1635, 1636, 1638, 1639, 1638, 1640, 1641, 1638, - 1642, 1643, 1638, 1644, 1645, 1646, 1647, 1648, 1649, 1650, - 1651, 1653, 1655, 1656, 1657, 1658, 1660, 1659, 1661, 1662, - 1664, 1665, 1667, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1678, 1679, 1677, 1680, 1681, 1682, 1683, 1684, 1686, - 1687, 1657, 1658, 1659, 1677, 1660, 1661, 1688, 1689, 1691, - 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1699, 1700, - - 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, + 377, 378, 385, 395, 332, 333, 338, 338, 338, 338, + 338, 340, 385, 763, 398, 338, 338, 338, 338, 338, + 338, 392, 392, 392, 398, 399, 412, 392, 422, 430, + 457, 412, 422, 430, 450, 418, 463, 475, 465, 450, + 465, 338, 338, 338, 338, 338, 338, 468, 491, 475, + + 504, 377, 576, 540, 399, 504, 377, 378, 540, 457, + 530, 491, 463, 487, 569, 610, 465, 487, 465, 569, + 530, 598, 764, 622, 598, 487, 468, 487, 487, 487, + 487, 487, 609, 608, 671, 671, 765, 412, 466, 466, + 466, 466, 466, 604, 610, 766, 616, 466, 466, 466, + 466, 466, 466, 616, 750, 692, 612, 576, 604, 608, + 609, 612, 637, 692, 751, 637, 694, 706, 735, 604, + 752, 694, 706, 466, 466, 466, 466, 466, 466, 622, + 735, 753, 767, 750, 768, 754, 770, 604, 771, 769, + 769, 751, 769, 772, 773, 774, 775, 752, 776, 777, + + 778, 779, 780, 781, 782, 783, 784, 785, 694, 786, + 753, 754, 787, 788, 706, 789, 790, 791, 792, 793, + 794, 791, 795, 796, 797, 791, 798, 799, 800, 801, + 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 822, 825, 827, 828, 829, 830, 831, + 832, 833, 834, 835, 836, 838, 839, 840, 841, 842, + 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + + 874, 868, 875, 870, 876, 877, 879, 870, 880, 881, + 882, 883, 884, 874, 885, 874, 886, 887, 888, 874, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 903, 904, 905, 906, 909, 910, + 911, 912, 913, 914, 915, 916, 917, 918, 919, 891, + 920, 921, 892, 922, 923, 895, 924, 925, 926, 923, + 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 942, 944, 945, 946, 947, + 948, 949, 950, 951, 952, 948, 953, 954, 955, 956, + 957, 958, 959, 960, 961, 964, 965, 966, 967, 968, + + 969, 970, 972, 973, 974, 975, 976, 977, 979, 980, + 981, 982, 983, 984, 981, 985, 986, 987, 989, 990, + 993, 994, 987, 995, 996, 997, 998, 999, 1000, 1001, + 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, + 1022, 1023, 1024, 1025, 1014, 1026, 1028, 1029, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, + 1044, 1042, 1045, 1046, 1043, 1047, 1048, 1049, 1051, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1040, 1039, 1068, 1041, 1042, + + 1043, 1070, 1071, 1072, 1070, 1073, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1095, 1096, 1097, 1098, + 1099, 1100, 1101, 1102, 1104, 1105, 1100, 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, 1132, 1133, 1135, 1136, 1138, 1139, 1140, 1141, + 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1162, 1163, + 1164, 1165, 1100, 1166, 1167, 1168, 1169, 1170, 1171, 1172, + + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, + 1184, 1183, 1185, 1187, 1188, 1189, 1190, 1191, 1193, 1194, + 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1181, 1183, 1184, + 1185, 1212, 1213, 1210, 1214, 1215, 1216, 1218, 1219, 1221, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, + 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1241, 1242, + 1243, 1244, 1245, 1246, 1242, 1247, 1248, 1249, 1250, 1251, + 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, + 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, + + 1272, 1273, 1274, 1275, 1276, 1277, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1291, 1292, 1295, + 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, + 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1315, 1316, + 1317, 1318, 1319, 1321, 1320, 1322, 1323, 1324, 1325, 1326, + 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1337, + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1318, 1345, 1317, + 1320, 1319, 1321, 1346, 1347, 1348, 1350, 1351, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1373, 1375, 1376, + + 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, + 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1396, 1397, 1398, + 1400, 1401, 1402, 1404, 1405, 1406, 1407, 1410, 1411, 1412, + 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, + 1423, 1424, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, + 1434, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 1449, 1451, 1452, 1453, 1454, 1455, 1457, + 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1446, 1447, 1475, + 1476, 1448, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1485, + + 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1457, 1502, 1503, 1504, + 1505, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1509, 1517, 1518, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1535, 1536, + 1537, 1538, 1542, 1540, 1536, 1540, 1543, 1544, 1548, 1549, + 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, + 1560, 1561, 1564, 1562, 1565, 1566, 1567, 1568, 1570, 1571, + 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1582, 1583, 1586, 1587, 1588, 1561, 1560, 1589, 1559, 1562, + + 1590, 1591, 1593, 1594, 1596, 1597, 1598, 1599, 1600, 1601, + 1602, 1603, 1604, 1605, 1606, 1607, 1610, 1612, 1615, 1616, + 1618, 1619, 1620, 1561, 1621, 1622, 1623, 1624, 1625, 1626, + 1627, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1637, 1641, + 1642, 1644, 1645, 1647, 1648, 1647, 1649, 1650, 1647, 1651, + 1652, 1647, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, + 1662, 1664, 1665, 1666, 1667, 1669, 1668, 1670, 1671, 1673, + 1674, 1676, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, + 1687, 1688, 1686, 1689, 1690, 1691, 1692, 1693, 1695, 1696, + 1666, 1667, 1668, 1686, 1669, 1670, 1697, 1698, 1700, 1701, + + 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, - 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1673, 1730, - 1731, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, - 1743, 1744, 1745, 1747, 1748, 1750, 1749, 1751, 1753, 1754, - 1757, 1758, 1759, 1761, 1763, 1764, 1765, 1766, 1767, 1768, - 1700, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1778, - 1748, 1780, 1747, 1749, 1750, 1779, 1751, 1781, 1782, 1783, - 1779, 1784, 1785, 1786, 1787, 1789, 1790, 1791, 1793, 1794, - 1796, 1797, 1798, 1800, 1801, 1802, 1803, 1804, 1805, 1808, - - 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, - 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829, - 1830, 1832, 1779, 1833, 1834, 1835, 1836, 1838, 1839, 1840, - 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, - 1853, 1854, 1855, 1856, 1857, 1859, 1860, 1861, 1832, 1862, - 1834, 1863, 1864, 1866, 1867, 1868, 1870, 1871, 1872, 1873, - 1874, 1875, 1876, 1877, 1878, 1879, 1881, 1882, 1883, 1884, - 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1897, 1899, 1901, 1902, 1903, 1897, 1904, 1905, - 1907, 1910, 1908, 1912, 1913, 1914, 1915, 1916, 1917, 1918, - - 1919, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, - 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1907, 1908, 1937, - 1938, 1939, 1940, 1941, 1943, 1944, 1945, 1946, 1948, 1949, - 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, - 1961, 1963, 1964, 1965, 1966, 1969, 1970, 1971, 1972, 1973, - 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1982, 1983, 1984, - 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, - 1996, 1999, 1970, 1971, 2000, 1972, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015, - 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2021, 2024, - - 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, - 2035, 2036, 2037, 2038, 2040, 2041, 2042, 2043, 2044, 2045, - 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2025, 2027, 2054, - 2056, 2058, 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067, - 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2078, - 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, - 2090, 2091, 2092, 2094, 2095, 2096, 2098, 2099, 2100, 2101, - 2102, 2104, 2105, 2107, 2076, 2109, 2078, 2110, 2112, 2113, - 2114, 2115, 2116, 2117, 2118, 2119, 2121, 2122, 2124, 2123, - 2125, 2126, 2127, 2128, 2129, 2130, 2132, 2133, 2134, 2135, - - 2136, 2137, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, - 2147, 2148, 2149, 2150, 2122, 2123, 2151, 2152, 2154, 2155, - 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2164, 2165, 2166, - 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, - 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2159, - 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2196, 2197, - 2198, 2200, 2201, 2202, 2203, 2205, 2206, 2207, 2208, 2209, - 2214, 2215, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2227, - 2228, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, - 2241, 2242, 2243, 2244, 2245, 2246, 2248, 2249, 2251, 2253, - - 2254, 2255, 2256, 2257, 2258, 2259, 2261, 2262, 2263, 2264, - 2265, 2264, 2266, 2267, 2268, 2269, 2271, 2272, 2275, 2276, - 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, - 2287, 2288, 2289, 2290, 2291, 2292, 2294, 2295, 2297, 2298, - 2301, 2302, 2303, 2304, 2306, 2307, 2309, 2311, 2313, 2314, - 2315, 2316, 2317, 2318, 2319, 2321, 2326, 2326, 2326, 2327, - 2327, 2327, 2328, 2329, 2328, 2330, 2330, 2330, 2331, 2331, - 2331, 2332, 745, 2332, 2333, 2333, 2333, 743, 742, 741, - 740, 739, 738, 737, 736, 735, 734, 732, 731, 730, - 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1731, + 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1682, 1739, 1740, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1752, + 1753, 1754, 1756, 1757, 1759, 1758, 1760, 1762, 1763, 1766, + 1767, 1768, 1770, 1772, 1773, 1774, 1775, 1776, 1777, 1709, + 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1787, 1757, + 1789, 1756, 1758, 1759, 1788, 1760, 1790, 1791, 1792, 1788, + 1793, 1794, 1795, 1796, 1798, 1799, 1800, 1802, 1803, 1805, + + 1806, 1807, 1809, 1810, 1811, 1812, 1813, 1814, 1817, 1818, + 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, + 1829, 1830, 1831, 1832, 1834, 1835, 1836, 1837, 1838, 1839, + 1841, 1788, 1842, 1843, 1844, 1845, 1847, 1848, 1849, 1852, + 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, + 1863, 1864, 1865, 1866, 1868, 1869, 1870, 1841, 1871, 1843, + 1872, 1873, 1875, 1876, 1877, 1879, 1880, 1881, 1882, 1883, + 1884, 1885, 1886, 1887, 1888, 1890, 1891, 1892, 1893, 1894, + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, + 1905, 1906, 1908, 1910, 1911, 1912, 1906, 1913, 1914, 1916, + + 1919, 1917, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, + 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, + 1940, 1941, 1942, 1943, 1944, 1945, 1916, 1917, 1946, 1947, + 1948, 1949, 1950, 1952, 1953, 1954, 1955, 1957, 1958, 1959, + 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1970, + 1972, 1973, 1974, 1975, 1978, 1979, 1980, 1981, 1982, 1983, + 1984, 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, + 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, + 2008, 1979, 1980, 2009, 1981, 2010, 2011, 2012, 2013, 2014, + 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, + + 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2030, 2033, 2034, + 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, + 2045, 2046, 2047, 2049, 2050, 2051, 2052, 2053, 2054, 2055, + 2056, 2057, 2058, 2059, 2060, 2061, 2034, 2036, 2063, 2065, + 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, + 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2087, 2089, + 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, + 2100, 2101, 2103, 2104, 2105, 2107, 2108, 2109, 2110, 2111, + 2113, 2114, 2116, 2085, 2118, 2087, 2119, 2121, 2122, 2123, + 2124, 2125, 2126, 2127, 2128, 2130, 2131, 2133, 2132, 2134, + + 2135, 2136, 2137, 2138, 2139, 2141, 2142, 2143, 2144, 2145, + 2146, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, + 2157, 2158, 2159, 2131, 2132, 2160, 2161, 2163, 2164, 2165, + 2166, 2167, 2168, 2169, 2170, 2171, 2173, 2174, 2175, 2176, + 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, + 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2168, 2195, + 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2205, 2206, 2207, + 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2217, 2218, 2223, + 2224, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2236, 2237, + 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2250, + + 2251, 2252, 2253, 2254, 2255, 2257, 2258, 2260, 2262, 2263, + 2264, 2265, 2266, 2267, 2268, 2270, 2271, 2272, 2273, 2274, + 2273, 2275, 2276, 2277, 2278, 2280, 2281, 2284, 2285, 2286, + 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, + 2297, 2298, 2299, 2300, 2301, 2303, 2304, 2306, 2307, 2310, + 2311, 2312, 2313, 2315, 2316, 2318, 2320, 2322, 2323, 2324, + 2325, 2326, 2327, 2328, 2330, 2335, 2335, 2335, 2336, 2336, + 2336, 2337, 2338, 2337, 2339, 2339, 2339, 2340, 2340, 2340, + 2341, 745, 2341, 2342, 2342, 2342, 744, 743, 742, 741, + 740, 739, 738, 737, 736, 734, 733, 732, 730, 729, - 718, 717, 716, 714, 713, 712, 711, 709, 708, 707, - 706, 705, 703, 701, 700, 699, 698, 697, 696, 695, - 694, 693, 691, 689, 688, 686, 685, 684, 683, 682, + 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, + 718, 716, 715, 714, 713, 711, 710, 709, 708, 707, + 705, 703, 702, 701, 700, 699, 698, 697, 696, 695, + 693, 691, 690, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, - 671, 670, 668, 667, 666, 665, 664, 663, 660, 659, - 658, 657, 656, 655, 654, 652, 651, 650, 649, 648, + 670, 669, 668, 667, 666, 665, 664, 661, 660, 659, + 658, 657, 656, 655, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, - 637, 635, 634, 633, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 620, 619, 618, 617, 616, - 613, 610, 602, 601, 600, 599, 598, 595, 592, 590, + 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, + 626, 625, 624, 623, 621, 620, 619, 618, 617, 614, + 611, 603, 602, 601, 600, 599, 596, 593, 591, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 578, 577, 576, 574, 573, 572, 571, 570, 569, 567, + 578, 577, 575, 574, 573, 572, 571, 570, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 556, 554, 553, 551, 550, 549, 548, 547, 546, 545, - 544, 543, 542, 541, 540, 538, 537, 535, 534, 533, - 532, 531, 530, 528, 527, 526, 525, 524, 523, 522, + 555, 554, 552, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 539, 538, 536, 535, 534, 533, + 532, 531, 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 510, 509, 508, 506, 505, 503, 502, 501, 500, 499, 498, 497, 496, 495, 493, 492, 490, 489, 488, 486, - 484, 483, 482, 481, 480, 479, 477, 476, 474, 473, + 484, 483, 482, 481, 480, 479, 477, 476, 474, 473, 472, 471, 470, 469, 467, 462, 460, 459, 458, 456, 453, 452, 451, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 424, 423, 421, 420, 419, 417, 416, 415, 413, 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, 400, 397, 396, - 394, 393, 391, 390, 389, 388, 387, 386, 385, 384, - 383, 382, 381, 380, 379, 376, 375, 374, 373, 372, - 371, 370, 369, 368, 367, 366, 365, 364, 363, 361, - 360, 359, 358, 356, 355, 354, 353, 352, 351, 350, - - 349, 348, 347, 346, 345, 344, 343, 342, 341, 339, - 337, 335, 330, 328, 325, 318, 316, 315, 314, 313, - 311, 310, 309, 308, 306, 305, 304, 302, 301, 300, - 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, - 288, 286, 285, 284, 283, 282, 281, 280, 278, 277, - 275, 274, 273, 272, 271, 269, 268, 267, 266, 264, - 263, 262, 261, 260, 259, 258, 256, 255, 253, 252, - 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, - 231, 230, 229, 226, 225, 224, 223, 222, 221, 220, - - 219, 218, 217, 215, 211, 209, 207, 204, 199, 195, - 187, 186, 185, 183, 181, 180, 177, 176, 175, 173, - 172, 171, 169, 167, 166, 165, 163, 162, 160, 159, - 156, 155, 154, 153, 151, 150, 149, 147, 146, 145, - 143, 138, 136, 135, 134, 133, 131, 130, 129, 127, - 126, 125, 123, 122, 121, 117, 112, 107, 106, 99, - 98, 78, 73, 67, 60, 53, 50, 49, 43, 41, - 39, 38, 24, 14, 11, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, - 2325, 2325 + 394, 393, 391, 390, 389, 388, 387, 386, 384, 383, + 382, 381, 380, 379, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 361, 360, + + 359, 358, 356, 355, 354, 353, 352, 351, 350, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 339, 337, + 335, 330, 328, 325, 318, 316, 315, 314, 313, 311, + 310, 309, 308, 306, 305, 304, 302, 301, 300, 299, + 298, 297, 296, 295, 294, 293, 292, 291, 290, 288, + 286, 285, 284, 283, 282, 281, 280, 278, 277, 275, + 274, 273, 272, 271, 269, 268, 267, 266, 264, 263, + 262, 261, 260, 259, 258, 256, 255, 253, 252, 251, + 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, + 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, + + 230, 229, 226, 225, 224, 223, 222, 221, 220, 219, + 218, 217, 215, 211, 209, 207, 204, 199, 195, 187, + 186, 185, 183, 181, 180, 177, 176, 175, 173, 172, + 171, 169, 167, 166, 165, 163, 162, 160, 159, 156, + 155, 154, 153, 151, 150, 149, 147, 146, 145, 143, + 138, 136, 135, 134, 133, 131, 130, 129, 127, 126, + 125, 123, 122, 121, 117, 112, 107, 106, 99, 98, + 78, 73, 67, 60, 53, 50, 49, 43, 41, 39, + 38, 24, 14, 11, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, 2334, + 2334 } ; static yy_state_type yy_last_accepting_state; @@ -2168,7 +2173,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[245] = +static const flex_int16_t yy_rule_linenum[246] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 180, 185, 191, 200, 209, 218, 227, 236, 245, 254, 263, @@ -2177,26 +2182,26 @@ static const flex_int16_t yy_rule_linenum[245] = 467, 476, 485, 494, 503, 512, 521, 530, 539, 548, 562, 574, 586, 597, 608, 620, 631, 642, 653, 664, 675, 686, 697, 706, 715, 724, 735, 746, 755, 767, - 779, 791, 802, 814, 826, 838, 850, 862, 874, 885, - 896, 905, 914, 923, 934, 945, 954, 963, 975, 987, - 999, 1011, 1023, 1035, 1047, 1058, 1070, 1079, 1088, 1097, - - 1106, 1118, 1130, 1142, 1154, 1164, 1175, 1184, 1193, 1208, - 1225, 1234, 1243, 1252, 1261, 1270, 1279, 1288, 1297, 1306, - 1315, 1324, 1334, 1361, 1388, 1397, 1407, 1417, 1426, 1436, - 1447, 1458, 1469, 1479, 1488, 1497, 1506, 1517, 1528, 1539, - 1550, 1561, 1570, 1579, 1588, 1597, 1606, 1615, 1624, 1633, - 1642, 1651, 1666, 1678, 1690, 1703, 1712, 1721, 1730, 1739, - 1749, 1759, 1768, 1777, 1788, 1798, 1807, 1817, 1827, 1836, - 1845, 1854, 1863, 1873, 1882, 1891, 1900, 1909, 1918, 1927, - 1936, 1945, 1954, 1963, 1972, 1981, 1990, 1999, 2008, 2017, - 2026, 2035, 2044, 2053, 2062, 2071, 2080, 2089, 2098, 2107, - - 2116, 2125, 2134, 2143, 2152, 2161, 2170, 2179, 2188, 2197, - 2206, 2215, 2224, 2233, 2242, 2251, 2260, 2269, 2278, 2287, - 2296, 2305, 2314, 2323, 2332, 2341, 2442, 2458, 2507, 2515, - 2530, 2531, 2532, 2533, 2534, 2535, 2537, 2555, 2568, 2573, - 2577, 2579, 2581, 2583 + 779, 791, 803, 814, 826, 838, 850, 862, 874, 886, + 897, 908, 917, 926, 935, 946, 957, 966, 975, 987, + 999, 1011, 1023, 1035, 1047, 1059, 1070, 1082, 1091, 1100, + + 1109, 1118, 1130, 1142, 1154, 1166, 1176, 1187, 1196, 1205, + 1220, 1237, 1246, 1255, 1264, 1273, 1282, 1291, 1300, 1309, + 1318, 1327, 1336, 1346, 1373, 1400, 1409, 1419, 1429, 1438, + 1448, 1459, 1470, 1481, 1491, 1500, 1509, 1518, 1529, 1540, + 1551, 1562, 1573, 1582, 1591, 1600, 1609, 1618, 1627, 1636, + 1645, 1654, 1663, 1678, 1690, 1702, 1715, 1724, 1733, 1742, + 1751, 1761, 1771, 1780, 1789, 1800, 1810, 1819, 1829, 1839, + 1848, 1857, 1866, 1875, 1885, 1894, 1903, 1912, 1921, 1930, + 1939, 1948, 1957, 1966, 1975, 1984, 1993, 2002, 2011, 2020, + 2029, 2038, 2047, 2056, 2065, 2074, 2083, 2092, 2101, 2110, + + 2119, 2128, 2137, 2146, 2155, 2164, 2173, 2182, 2191, 2200, + 2209, 2218, 2227, 2236, 2245, 2254, 2263, 2272, 2281, 2290, + 2299, 2308, 2317, 2326, 2335, 2344, 2353, 2454, 2470, 2519, + 2527, 2542, 2543, 2544, 2545, 2546, 2547, 2549, 2567, 2580, + 2585, 2589, 2591, 2593, 2595 } ; /* The intent behind this definition is that it'll catch @@ -2251,7 +2256,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2254 "dhcp6_lexer.cc" +#line 2260 "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 @@ -2277,8 +2282,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 2280 "dhcp6_lexer.cc" -#line 2281 "dhcp6_lexer.cc" +#line 2286 "dhcp6_lexer.cc" +#line 2287 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2608,7 +2613,7 @@ YY_DECL } -#line 2611 "dhcp6_lexer.cc" +#line 2617 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2637,13 +2642,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 >= 2326 ) + if ( yy_current_state >= 2335 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2325 ); + while ( yy_current_state != 2334 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2662,13 +2667,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 < 245 ) + else if ( yy_act < 246 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 245 ) + else if ( yy_act == 246 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 246 ) + else if ( yy_act == 247 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3555,6 +3560,21 @@ YY_RULE_SETUP case 72: YY_RULE_SETUP #line 791 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + case isc::dhcp::Parser6Context::CONTROL_SOCKET: + return isc::dhcp::Dhcp6Parser::make_KEY_PASSWORD(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("key-password", driver.loc_); + } +} + YY_BREAK +case 73: +YY_RULE_SETUP +#line 803 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3566,9 +3586,9 @@ YY_RULE_SETUP } } YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 802 "dhcp6_lexer.ll" +#line 814 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3581,9 +3601,9 @@ YY_RULE_SETUP } } YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 814 "dhcp6_lexer.ll" +#line 826 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3596,9 +3616,9 @@ YY_RULE_SETUP } } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 826 "dhcp6_lexer.ll" +#line 838 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3611,9 +3631,9 @@ YY_RULE_SETUP } } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 838 "dhcp6_lexer.ll" +#line 850 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3626,9 +3646,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 850 "dhcp6_lexer.ll" +#line 862 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3641,9 +3661,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 862 "dhcp6_lexer.ll" +#line 874 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3656,9 +3676,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 874 "dhcp6_lexer.ll" +#line 886 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3670,9 +3690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 885 "dhcp6_lexer.ll" +#line 897 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3684,9 +3704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 896 "dhcp6_lexer.ll" +#line 908 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3696,9 +3716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 905 "dhcp6_lexer.ll" +#line 917 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3708,9 +3728,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 914 "dhcp6_lexer.ll" +#line 926 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3720,9 +3740,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 923 "dhcp6_lexer.ll" +#line 935 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3734,9 +3754,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 934 "dhcp6_lexer.ll" +#line 946 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3748,9 +3768,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 945 "dhcp6_lexer.ll" +#line 957 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3760,9 +3780,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 954 "dhcp6_lexer.ll" +#line 966 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3772,9 +3792,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 963 "dhcp6_lexer.ll" +#line 975 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3787,9 +3807,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 975 "dhcp6_lexer.ll" +#line 987 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3802,9 +3822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 987 "dhcp6_lexer.ll" +#line 999 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3817,9 +3837,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 999 "dhcp6_lexer.ll" +#line 1011 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3832,9 +3852,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 93: YY_RULE_SETUP -#line 1011 "dhcp6_lexer.ll" +#line 1023 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3847,9 +3867,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 94: YY_RULE_SETUP -#line 1023 "dhcp6_lexer.ll" +#line 1035 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3862,9 +3882,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 95: YY_RULE_SETUP -#line 1035 "dhcp6_lexer.ll" +#line 1047 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3877,9 +3897,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 96: YY_RULE_SETUP -#line 1047 "dhcp6_lexer.ll" +#line 1059 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3891,9 +3911,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 97: YY_RULE_SETUP -#line 1058 "dhcp6_lexer.ll" +#line 1070 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3906,9 +3926,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 98: YY_RULE_SETUP -#line 1070 "dhcp6_lexer.ll" +#line 1082 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_CHECK_WITH_DHCID(driver.loc_); @@ -3918,9 +3938,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 98: +case 99: YY_RULE_SETUP -#line 1079 "dhcp6_lexer.ll" +#line 1091 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_NO_CHECK_WITH_DHCID(driver.loc_); @@ -3930,9 +3950,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 99: +case 100: YY_RULE_SETUP -#line 1088 "dhcp6_lexer.ll" +#line 1100 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_CHECK_EXISTS_WITH_DHCID(driver.loc_); @@ -3942,9 +3962,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 100: +case 101: YY_RULE_SETUP -#line 1097 "dhcp6_lexer.ll" +#line 1109 "dhcp6_lexer.ll" { if (driver.ctx_ == isc::dhcp::Parser6Context::DDNS_CONFLICT_RESOLUTION_MODE) { return isc::dhcp::Dhcp6Parser::make_NO_CHECK_WITHOUT_DHCID(driver.loc_); @@ -3954,9 +3974,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 101: +case 102: YY_RULE_SETUP -#line 1106 "dhcp6_lexer.ll" +#line 1118 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3969,9 +3989,9 @@ YY_RULE_SETUP } } YY_BREAK -case 102: +case 103: YY_RULE_SETUP -#line 1118 "dhcp6_lexer.ll" +#line 1130 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3984,9 +4004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 104: YY_RULE_SETUP -#line 1130 "dhcp6_lexer.ll" +#line 1142 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3999,9 +4019,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 105: YY_RULE_SETUP -#line 1142 "dhcp6_lexer.ll" +#line 1154 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4014,9 +4034,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 106: YY_RULE_SETUP -#line 1154 "dhcp6_lexer.ll" +#line 1166 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4027,9 +4047,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 107: YY_RULE_SETUP -#line 1164 "dhcp6_lexer.ll" +#line 1176 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4041,9 +4061,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 108: YY_RULE_SETUP -#line 1175 "dhcp6_lexer.ll" +#line 1187 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4053,9 +4073,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 109: YY_RULE_SETUP -#line 1184 "dhcp6_lexer.ll" +#line 1196 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4065,9 +4085,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 110: YY_RULE_SETUP -#line 1193 "dhcp6_lexer.ll" +#line 1205 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4083,9 +4103,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 111: YY_RULE_SETUP -#line 1208 "dhcp6_lexer.ll" +#line 1220 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -4103,9 +4123,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 112: YY_RULE_SETUP -#line 1225 "dhcp6_lexer.ll" +#line 1237 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4115,9 +4135,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 1234 "dhcp6_lexer.ll" +#line 1246 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4127,9 +4147,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 114: YY_RULE_SETUP -#line 1243 "dhcp6_lexer.ll" +#line 1255 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4139,9 +4159,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 1252 "dhcp6_lexer.ll" +#line 1264 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4151,9 +4171,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 116: YY_RULE_SETUP -#line 1261 "dhcp6_lexer.ll" +#line 1273 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4163,9 +4183,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 1270 "dhcp6_lexer.ll" +#line 1282 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4175,9 +4195,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 118: YY_RULE_SETUP -#line 1279 "dhcp6_lexer.ll" +#line 1291 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4187,9 +4207,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 1288 "dhcp6_lexer.ll" +#line 1300 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4199,9 +4219,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 120: YY_RULE_SETUP -#line 1297 "dhcp6_lexer.ll" +#line 1309 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4211,9 +4231,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 121: YY_RULE_SETUP -#line 1306 "dhcp6_lexer.ll" +#line 1318 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -4223,9 +4243,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 122: YY_RULE_SETUP -#line 1315 "dhcp6_lexer.ll" +#line 1327 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4235,9 +4255,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 123: YY_RULE_SETUP -#line 1324 "dhcp6_lexer.ll" +#line 1336 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4248,9 +4268,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 124: YY_RULE_SETUP -#line 1334 "dhcp6_lexer.ll" +#line 1346 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4278,9 +4298,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 1361 "dhcp6_lexer.ll" +#line 1373 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4308,9 +4328,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 126: YY_RULE_SETUP -#line 1388 "dhcp6_lexer.ll" +#line 1400 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4320,9 +4340,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 1397 "dhcp6_lexer.ll" +#line 1409 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4333,9 +4353,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 1407 "dhcp6_lexer.ll" +#line 1419 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4346,9 +4366,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 1417 "dhcp6_lexer.ll" +#line 1429 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4358,9 +4378,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 1426 "dhcp6_lexer.ll" +#line 1438 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4371,9 +4391,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 1436 "dhcp6_lexer.ll" +#line 1448 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4385,9 +4405,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 132: YY_RULE_SETUP -#line 1447 "dhcp6_lexer.ll" +#line 1459 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4399,9 +4419,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 133: YY_RULE_SETUP -#line 1458 "dhcp6_lexer.ll" +#line 1470 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4413,9 +4433,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 134: YY_RULE_SETUP -#line 1469 "dhcp6_lexer.ll" +#line 1481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4426,9 +4446,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 135: YY_RULE_SETUP -#line 1479 "dhcp6_lexer.ll" +#line 1491 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4438,9 +4458,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 136: YY_RULE_SETUP -#line 1488 "dhcp6_lexer.ll" +#line 1500 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4450,9 +4470,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 137: YY_RULE_SETUP -#line 1497 "dhcp6_lexer.ll" +#line 1509 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4462,9 +4482,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 138: YY_RULE_SETUP -#line 1506 "dhcp6_lexer.ll" +#line 1518 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4476,9 +4496,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 139: YY_RULE_SETUP -#line 1517 "dhcp6_lexer.ll" +#line 1529 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4490,9 +4510,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 1528 "dhcp6_lexer.ll" +#line 1540 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4504,9 +4524,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 1539 "dhcp6_lexer.ll" +#line 1551 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4518,9 +4538,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 1550 "dhcp6_lexer.ll" +#line 1562 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4532,9 +4552,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 143: YY_RULE_SETUP -#line 1561 "dhcp6_lexer.ll" +#line 1573 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4544,9 +4564,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 144: YY_RULE_SETUP -#line 1570 "dhcp6_lexer.ll" +#line 1582 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4556,9 +4576,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 145: YY_RULE_SETUP -#line 1579 "dhcp6_lexer.ll" +#line 1591 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4568,9 +4588,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 146: YY_RULE_SETUP -#line 1588 "dhcp6_lexer.ll" +#line 1600 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4580,9 +4600,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 147: YY_RULE_SETUP -#line 1597 "dhcp6_lexer.ll" +#line 1609 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4592,9 +4612,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 148: YY_RULE_SETUP -#line 1606 "dhcp6_lexer.ll" +#line 1618 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4604,9 +4624,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 1615 "dhcp6_lexer.ll" +#line 1627 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4616,9 +4636,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 1624 "dhcp6_lexer.ll" +#line 1636 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4628,9 +4648,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 1633 "dhcp6_lexer.ll" +#line 1645 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4640,9 +4660,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 152: YY_RULE_SETUP -#line 1642 "dhcp6_lexer.ll" +#line 1654 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4652,9 +4672,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 1651 "dhcp6_lexer.ll" +#line 1663 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4670,9 +4690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 1666 "dhcp6_lexer.ll" +#line 1678 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4685,9 +4705,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 1678 "dhcp6_lexer.ll" +#line 1690 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4700,9 +4720,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 156: YY_RULE_SETUP -#line 1690 "dhcp6_lexer.ll" +#line 1702 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4716,9 +4736,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 157: YY_RULE_SETUP -#line 1703 "dhcp6_lexer.ll" +#line 1715 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4728,9 +4748,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 1712 "dhcp6_lexer.ll" +#line 1724 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4740,9 +4760,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 1721 "dhcp6_lexer.ll" +#line 1733 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4752,9 +4772,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 1730 "dhcp6_lexer.ll" +#line 1742 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4764,9 +4784,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 161: YY_RULE_SETUP -#line 1739 "dhcp6_lexer.ll" +#line 1751 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4777,9 +4797,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 1749 "dhcp6_lexer.ll" +#line 1761 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4790,9 +4810,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 1759 "dhcp6_lexer.ll" +#line 1771 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4802,9 +4822,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 1768 "dhcp6_lexer.ll" +#line 1780 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4814,9 +4834,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 1777 "dhcp6_lexer.ll" +#line 1789 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4828,9 +4848,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 1788 "dhcp6_lexer.ll" +#line 1800 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4841,9 +4861,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 1798 "dhcp6_lexer.ll" +#line 1810 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4853,9 +4873,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 1807 "dhcp6_lexer.ll" +#line 1819 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4866,9 +4886,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 1817 "dhcp6_lexer.ll" +#line 1829 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4879,9 +4899,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 1827 "dhcp6_lexer.ll" +#line 1839 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4891,9 +4911,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 1836 "dhcp6_lexer.ll" +#line 1848 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4903,9 +4923,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 1845 "dhcp6_lexer.ll" +#line 1857 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4915,9 +4935,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 1854 "dhcp6_lexer.ll" +#line 1866 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4927,9 +4947,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 1863 "dhcp6_lexer.ll" +#line 1875 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4940,9 +4960,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 1873 "dhcp6_lexer.ll" +#line 1885 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4952,9 +4972,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 1882 "dhcp6_lexer.ll" +#line 1894 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4964,9 +4984,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 1891 "dhcp6_lexer.ll" +#line 1903 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4976,9 +4996,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 1900 "dhcp6_lexer.ll" +#line 1912 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4988,9 +5008,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 1909 "dhcp6_lexer.ll" +#line 1921 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5000,9 +5020,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 1918 "dhcp6_lexer.ll" +#line 1930 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5012,9 +5032,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 1927 "dhcp6_lexer.ll" +#line 1939 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -5024,9 +5044,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 182: YY_RULE_SETUP -#line 1936 "dhcp6_lexer.ll" +#line 1948 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5036,9 +5056,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 183: YY_RULE_SETUP -#line 1945 "dhcp6_lexer.ll" +#line 1957 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5048,9 +5068,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 184: YY_RULE_SETUP -#line 1954 "dhcp6_lexer.ll" +#line 1966 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5060,9 +5080,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 185: YY_RULE_SETUP -#line 1963 "dhcp6_lexer.ll" +#line 1975 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -5072,9 +5092,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 186: YY_RULE_SETUP -#line 1972 "dhcp6_lexer.ll" +#line 1984 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5084,9 +5104,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 187: YY_RULE_SETUP -#line 1981 "dhcp6_lexer.ll" +#line 1993 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5096,9 +5116,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 188: YY_RULE_SETUP -#line 1990 "dhcp6_lexer.ll" +#line 2002 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5108,9 +5128,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 189: YY_RULE_SETUP -#line 1999 "dhcp6_lexer.ll" +#line 2011 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5120,9 +5140,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 190: YY_RULE_SETUP -#line 2008 "dhcp6_lexer.ll" +#line 2020 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5132,9 +5152,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 191: YY_RULE_SETUP -#line 2017 "dhcp6_lexer.ll" +#line 2029 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5144,9 +5164,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 192: YY_RULE_SETUP -#line 2026 "dhcp6_lexer.ll" +#line 2038 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5156,9 +5176,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 193: YY_RULE_SETUP -#line 2035 "dhcp6_lexer.ll" +#line 2047 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5168,9 +5188,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 194: YY_RULE_SETUP -#line 2044 "dhcp6_lexer.ll" +#line 2056 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5180,9 +5200,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 195: YY_RULE_SETUP -#line 2053 "dhcp6_lexer.ll" +#line 2065 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5192,9 +5212,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 196: YY_RULE_SETUP -#line 2062 "dhcp6_lexer.ll" +#line 2074 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5204,9 +5224,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 197: YY_RULE_SETUP -#line 2071 "dhcp6_lexer.ll" +#line 2083 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5216,9 +5236,9 @@ YY_RULE_SETUP } } YY_BREAK -case 197: +case 198: YY_RULE_SETUP -#line 2080 "dhcp6_lexer.ll" +#line 2092 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5228,9 +5248,9 @@ YY_RULE_SETUP } } YY_BREAK -case 198: +case 199: YY_RULE_SETUP -#line 2089 "dhcp6_lexer.ll" +#line 2101 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5240,9 +5260,9 @@ YY_RULE_SETUP } } YY_BREAK -case 199: +case 200: YY_RULE_SETUP -#line 2098 "dhcp6_lexer.ll" +#line 2110 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5252,9 +5272,9 @@ YY_RULE_SETUP } } YY_BREAK -case 200: +case 201: YY_RULE_SETUP -#line 2107 "dhcp6_lexer.ll" +#line 2119 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5264,9 +5284,9 @@ YY_RULE_SETUP } } YY_BREAK -case 201: +case 202: YY_RULE_SETUP -#line 2116 "dhcp6_lexer.ll" +#line 2128 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5276,9 +5296,9 @@ YY_RULE_SETUP } } YY_BREAK -case 202: +case 203: YY_RULE_SETUP -#line 2125 "dhcp6_lexer.ll" +#line 2137 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5288,9 +5308,9 @@ YY_RULE_SETUP } } YY_BREAK -case 203: +case 204: YY_RULE_SETUP -#line 2134 "dhcp6_lexer.ll" +#line 2146 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5300,9 +5320,9 @@ YY_RULE_SETUP } } YY_BREAK -case 204: +case 205: YY_RULE_SETUP -#line 2143 "dhcp6_lexer.ll" +#line 2155 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5312,9 +5332,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 206: YY_RULE_SETUP -#line 2152 "dhcp6_lexer.ll" +#line 2164 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5324,9 +5344,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 207: YY_RULE_SETUP -#line 2161 "dhcp6_lexer.ll" +#line 2173 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5336,9 +5356,9 @@ YY_RULE_SETUP } } YY_BREAK -case 207: +case 208: YY_RULE_SETUP -#line 2170 "dhcp6_lexer.ll" +#line 2182 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTH_TYPE: @@ -5348,9 +5368,9 @@ YY_RULE_SETUP } } YY_BREAK -case 208: +case 209: YY_RULE_SETUP -#line 2179 "dhcp6_lexer.ll" +#line 2191 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5360,9 +5380,9 @@ YY_RULE_SETUP } } YY_BREAK -case 209: +case 210: YY_RULE_SETUP -#line 2188 "dhcp6_lexer.ll" +#line 2200 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5372,9 +5392,9 @@ YY_RULE_SETUP } } YY_BREAK -case 210: +case 211: YY_RULE_SETUP -#line 2197 "dhcp6_lexer.ll" +#line 2209 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5384,9 +5404,9 @@ YY_RULE_SETUP } } YY_BREAK -case 211: +case 212: YY_RULE_SETUP -#line 2206 "dhcp6_lexer.ll" +#line 2218 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5396,9 +5416,9 @@ YY_RULE_SETUP } } YY_BREAK -case 212: +case 213: YY_RULE_SETUP -#line 2215 "dhcp6_lexer.ll" +#line 2227 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5408,9 +5428,9 @@ YY_RULE_SETUP } } YY_BREAK -case 213: +case 214: YY_RULE_SETUP -#line 2224 "dhcp6_lexer.ll" +#line 2236 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5420,9 +5440,9 @@ YY_RULE_SETUP } } YY_BREAK -case 214: +case 215: YY_RULE_SETUP -#line 2233 "dhcp6_lexer.ll" +#line 2245 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5432,9 +5452,9 @@ YY_RULE_SETUP } } YY_BREAK -case 215: +case 216: YY_RULE_SETUP -#line 2242 "dhcp6_lexer.ll" +#line 2254 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HTTP_HEADERS: @@ -5444,9 +5464,9 @@ YY_RULE_SETUP } } YY_BREAK -case 216: +case 217: YY_RULE_SETUP -#line 2251 "dhcp6_lexer.ll" +#line 2263 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5456,9 +5476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 217: +case 218: YY_RULE_SETUP -#line 2260 "dhcp6_lexer.ll" +#line 2272 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5468,9 +5488,9 @@ YY_RULE_SETUP } } YY_BREAK -case 218: +case 219: YY_RULE_SETUP -#line 2269 "dhcp6_lexer.ll" +#line 2281 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5480,9 +5500,9 @@ YY_RULE_SETUP } } YY_BREAK -case 219: +case 220: YY_RULE_SETUP -#line 2278 "dhcp6_lexer.ll" +#line 2290 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5492,9 +5512,9 @@ YY_RULE_SETUP } } YY_BREAK -case 220: +case 221: YY_RULE_SETUP -#line 2287 "dhcp6_lexer.ll" +#line 2299 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5504,9 +5524,9 @@ YY_RULE_SETUP } } YY_BREAK -case 221: +case 222: YY_RULE_SETUP -#line 2296 "dhcp6_lexer.ll" +#line 2308 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5516,9 +5536,9 @@ YY_RULE_SETUP } } YY_BREAK -case 222: +case 223: YY_RULE_SETUP -#line 2305 "dhcp6_lexer.ll" +#line 2317 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5528,9 +5548,9 @@ YY_RULE_SETUP } } YY_BREAK -case 223: +case 224: YY_RULE_SETUP -#line 2314 "dhcp6_lexer.ll" +#line 2326 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5540,9 +5560,9 @@ YY_RULE_SETUP } } YY_BREAK -case 224: +case 225: YY_RULE_SETUP -#line 2323 "dhcp6_lexer.ll" +#line 2335 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5552,9 +5572,9 @@ YY_RULE_SETUP } } YY_BREAK -case 225: +case 226: YY_RULE_SETUP -#line 2332 "dhcp6_lexer.ll" +#line 2344 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::COMPATIBILITY: @@ -5564,9 +5584,9 @@ YY_RULE_SETUP } } YY_BREAK -case 226: +case 227: YY_RULE_SETUP -#line 2341 "dhcp6_lexer.ll" +#line 2353 "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. @@ -5668,10 +5688,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 227: -/* rule 227 can match eol */ +case 228: +/* rule 228 can match eol */ YY_RULE_SETUP -#line 2442 "dhcp6_lexer.ll" +#line 2454 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5688,10 +5708,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 228: -/* rule 228 can match eol */ +case 229: +/* rule 229 can match eol */ YY_RULE_SETUP -#line 2458 "dhcp6_lexer.ll" +#line 2470 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5741,9 +5761,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 229: +case 230: YY_RULE_SETUP -#line 2507 "dhcp6_lexer.ll" +#line 2519 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5752,9 +5772,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 230: +case 231: YY_RULE_SETUP -#line 2515 "dhcp6_lexer.ll" +#line 2527 "dhcp6_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5770,39 +5790,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 231: +case 232: YY_RULE_SETUP -#line 2530 "dhcp6_lexer.ll" +#line 2542 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 232: +case 233: YY_RULE_SETUP -#line 2531 "dhcp6_lexer.ll" +#line 2543 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 233: +case 234: YY_RULE_SETUP -#line 2532 "dhcp6_lexer.ll" +#line 2544 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 234: +case 235: YY_RULE_SETUP -#line 2533 "dhcp6_lexer.ll" +#line 2545 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 235: +case 236: YY_RULE_SETUP -#line 2534 "dhcp6_lexer.ll" +#line 2546 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 236: +case 237: YY_RULE_SETUP -#line 2535 "dhcp6_lexer.ll" +#line 2547 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 237: +case 238: YY_RULE_SETUP -#line 2537 "dhcp6_lexer.ll" +#line 2549 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5821,9 +5841,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 238: +case 239: YY_RULE_SETUP -#line 2555 "dhcp6_lexer.ll" +#line 2567 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5837,43 +5857,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 239: +case 240: YY_RULE_SETUP -#line 2568 "dhcp6_lexer.ll" +#line 2580 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 240: +case 241: YY_RULE_SETUP -#line 2573 "dhcp6_lexer.ll" +#line 2585 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 241: +case 242: YY_RULE_SETUP -#line 2577 "dhcp6_lexer.ll" +#line 2589 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 242: +case 243: YY_RULE_SETUP -#line 2579 "dhcp6_lexer.ll" +#line 2591 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 243: +case 244: YY_RULE_SETUP -#line 2581 "dhcp6_lexer.ll" +#line 2593 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 244: +case 245: YY_RULE_SETUP -#line 2583 "dhcp6_lexer.ll" +#line 2595 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2585 "dhcp6_lexer.ll" +#line 2597 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5897,12 +5917,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 245: +case 246: YY_RULE_SETUP -#line 2608 "dhcp6_lexer.ll" +#line 2620 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5905 "dhcp6_lexer.cc" +#line 5926 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -6221,7 +6241,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 >= 2326 ) + if ( yy_current_state >= 2335 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -6254,11 +6274,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 >= 2326 ) + if ( yy_current_state >= 2335 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2325); + yy_is_jam = (yy_current_state == 2334); return yy_is_jam ? 0 : yy_current_state; } @@ -7007,7 +7027,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2608 "dhcp6_lexer.ll" +#line 2620 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index fb560997a1..ed2a441cc1 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -787,6 +787,18 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"key-password\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + case isc::dhcp::Parser6Context::CONTROL_SOCKET: + return isc::dhcp::Dhcp6Parser::make_KEY_PASSWORD(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("key-password", driver.loc_); + } +} + \"cipher-list\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 9199da1f3e..2d781ee48a 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -407,79 +407,79 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 413 "dhcp6_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 419 "dhcp6_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 425 "dhcp6_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 431 "dhcp6_parser.cc" break; case symbol_kind::S_value: // value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 437 "dhcp6_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 443 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 449 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 455 "dhcp6_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 461 "dhcp6_parser.cc" break; case symbol_kind::S_duid_type: // duid_type -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 467 "dhcp6_parser.cc" break; case symbol_kind::S_control_socket_type_value: // control_socket_type_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 473 "dhcp6_parser.cc" break; case symbol_kind::S_auth_type_value: // auth_type_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 479 "dhcp6_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 323 "dhcp6_parser.yy" +#line 324 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 485 "dhcp6_parser.cc" break; @@ -760,133 +760,133 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 332 "dhcp6_parser.yy" +#line 333 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 766 "dhcp6_parser.cc" break; case 4: // $@2: %empty -#line 333 "dhcp6_parser.yy" +#line 334 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 772 "dhcp6_parser.cc" break; case 6: // $@3: %empty -#line 334 "dhcp6_parser.yy" +#line 335 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 778 "dhcp6_parser.cc" break; case 8: // $@4: %empty -#line 335 "dhcp6_parser.yy" +#line 336 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 784 "dhcp6_parser.cc" break; case 10: // $@5: %empty -#line 336 "dhcp6_parser.yy" +#line 337 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 790 "dhcp6_parser.cc" break; case 12: // $@6: %empty -#line 337 "dhcp6_parser.yy" +#line 338 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 796 "dhcp6_parser.cc" break; case 14: // $@7: %empty -#line 338 "dhcp6_parser.yy" +#line 339 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 802 "dhcp6_parser.cc" break; case 16: // $@8: %empty -#line 339 "dhcp6_parser.yy" +#line 340 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 808 "dhcp6_parser.cc" break; case 18: // $@9: %empty -#line 340 "dhcp6_parser.yy" +#line 341 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 814 "dhcp6_parser.cc" break; case 20: // $@10: %empty -#line 341 "dhcp6_parser.yy" +#line 342 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 820 "dhcp6_parser.cc" break; case 22: // $@11: %empty -#line 342 "dhcp6_parser.yy" +#line 343 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 826 "dhcp6_parser.cc" break; case 24: // $@12: %empty -#line 343 "dhcp6_parser.yy" +#line 344 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 832 "dhcp6_parser.cc" break; case 26: // $@13: %empty -#line 344 "dhcp6_parser.yy" +#line 345 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 838 "dhcp6_parser.cc" break; case 28: // $@14: %empty -#line 345 "dhcp6_parser.yy" +#line 346 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 844 "dhcp6_parser.cc" break; case 30: // value: "integer" -#line 353 "dhcp6_parser.yy" +#line 354 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 850 "dhcp6_parser.cc" break; case 31: // value: "floating point" -#line 354 "dhcp6_parser.yy" +#line 355 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 856 "dhcp6_parser.cc" break; case 32: // value: "boolean" -#line 355 "dhcp6_parser.yy" +#line 356 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 862 "dhcp6_parser.cc" break; case 33: // value: "constant string" -#line 356 "dhcp6_parser.yy" +#line 357 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 868 "dhcp6_parser.cc" break; case 34: // value: "null" -#line 357 "dhcp6_parser.yy" +#line 358 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 874 "dhcp6_parser.cc" break; case 35: // value: map2 -#line 358 "dhcp6_parser.yy" +#line 359 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 880 "dhcp6_parser.cc" break; case 36: // value: list_generic -#line 359 "dhcp6_parser.yy" +#line 360 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 886 "dhcp6_parser.cc" break; case 37: // sub_json: value -#line 362 "dhcp6_parser.yy" +#line 363 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -895,7 +895,7 @@ namespace isc { namespace dhcp { break; case 38: // $@15: %empty -#line 367 "dhcp6_parser.yy" +#line 368 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -906,7 +906,7 @@ namespace isc { namespace dhcp { break; case 39: // map2: "{" $@15 map_content "}" -#line 372 "dhcp6_parser.yy" +#line 373 "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 @@ -916,13 +916,13 @@ namespace isc { namespace dhcp { break; case 40: // map_value: map2 -#line 378 "dhcp6_parser.yy" +#line 379 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 922 "dhcp6_parser.cc" break; case 43: // not_empty_map: "constant string" ":" value -#line 385 "dhcp6_parser.yy" +#line 386 "dhcp6_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -932,7 +932,7 @@ namespace isc { namespace dhcp { break; case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 390 "dhcp6_parser.yy" +#line 391 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -943,7 +943,7 @@ namespace isc { namespace dhcp { break; case 45: // not_empty_map: not_empty_map "," -#line 396 "dhcp6_parser.yy" +#line 397 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -951,7 +951,7 @@ namespace isc { namespace dhcp { break; case 46: // $@16: %empty -#line 401 "dhcp6_parser.yy" +#line 402 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -960,7 +960,7 @@ namespace isc { namespace dhcp { break; case 47: // list_generic: "[" $@16 list_content "]" -#line 404 "dhcp6_parser.yy" +#line 405 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -968,7 +968,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: value -#line 412 "dhcp6_parser.yy" +#line 413 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -977,7 +977,7 @@ namespace isc { namespace dhcp { break; case 51: // not_empty_list: not_empty_list "," value -#line 416 "dhcp6_parser.yy" +#line 417 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -986,7 +986,7 @@ namespace isc { namespace dhcp { break; case 52: // not_empty_list: not_empty_list "," -#line 420 "dhcp6_parser.yy" +#line 421 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -994,7 +994,7 @@ namespace isc { namespace dhcp { break; case 53: // $@17: %empty -#line 426 "dhcp6_parser.yy" +#line 427 "dhcp6_parser.yy" { // List parsing about to start } @@ -1002,7 +1002,7 @@ namespace isc { namespace dhcp { break; case 54: // list_strings: "[" $@17 list_strings_content "]" -#line 428 "dhcp6_parser.yy" +#line 429 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1011,7 +1011,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: "constant string" -#line 437 "dhcp6_parser.yy" +#line 438 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1020,7 +1020,7 @@ namespace isc { namespace dhcp { break; case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 441 "dhcp6_parser.yy" +#line 442 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1029,7 +1029,7 @@ namespace isc { namespace dhcp { break; case 59: // not_empty_list_strings: not_empty_list_strings "," -#line 445 "dhcp6_parser.yy" +#line 446 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 60: // unknown_map_entry: "constant string" ":" -#line 455 "dhcp6_parser.yy" +#line 456 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 464 "dhcp6_parser.yy" +#line 465 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1059,7 +1059,7 @@ namespace isc { namespace dhcp { break; case 62: // syntax_map: "{" $@18 global_object "}" -#line 469 "dhcp6_parser.yy" +#line 470 "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 @@ -1072,7 +1072,7 @@ namespace isc { namespace dhcp { break; case 63: // $@19: %empty -#line 479 "dhcp6_parser.yy" +#line 480 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1087,7 +1087,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 488 "dhcp6_parser.yy" +#line 489 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1097,7 +1097,7 @@ namespace isc { namespace dhcp { break; case 66: // global_object_comma: global_object "," -#line 496 "dhcp6_parser.yy" +#line 497 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1105,7 +1105,7 @@ namespace isc { namespace dhcp { break; case 67: // $@20: %empty -#line 502 "dhcp6_parser.yy" +#line 503 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1115,7 +1115,7 @@ namespace isc { namespace dhcp { break; case 68: // sub_dhcp6: "{" $@20 global_params "}" -#line 506 "dhcp6_parser.yy" +#line 507 "dhcp6_parser.yy" { // No global parameter is required // parsing completed @@ -1124,7 +1124,7 @@ namespace isc { namespace dhcp { break; case 71: // global_params: global_params "," -#line 513 "dhcp6_parser.yy" +#line 514 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1132,7 +1132,7 @@ namespace isc { namespace dhcp { break; case 144: // $@21: %empty -#line 594 "dhcp6_parser.yy" +#line 595 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp { break; case 145: // data_directory: "data-directory" $@21 ":" "constant string" -#line 597 "dhcp6_parser.yy" +#line 598 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.warning(yystack_[2].location, "data-directory is deprecated and will be ignored"); @@ -1152,7 +1152,7 @@ namespace isc { namespace dhcp { break; case 146: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 604 "dhcp6_parser.yy" +#line 605 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1162,7 +1162,7 @@ namespace isc { namespace dhcp { break; case 147: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 610 "dhcp6_parser.yy" +#line 611 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1172,7 +1172,7 @@ namespace isc { namespace dhcp { break; case 148: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 616 "dhcp6_parser.yy" +#line 617 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1182,7 +1182,7 @@ namespace isc { namespace dhcp { break; case 149: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 622 "dhcp6_parser.yy" +#line 623 "dhcp6_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1192,7 +1192,7 @@ namespace isc { namespace dhcp { break; case 150: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 628 "dhcp6_parser.yy" +#line 629 "dhcp6_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1202,7 +1202,7 @@ namespace isc { namespace dhcp { break; case 151: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 634 "dhcp6_parser.yy" +#line 635 "dhcp6_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1212,7 +1212,7 @@ namespace isc { namespace dhcp { break; case 152: // renew_timer: "renew-timer" ":" "integer" -#line 640 "dhcp6_parser.yy" +#line 641 "dhcp6_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1222,7 +1222,7 @@ namespace isc { namespace dhcp { break; case 153: // rebind_timer: "rebind-timer" ":" "integer" -#line 646 "dhcp6_parser.yy" +#line 647 "dhcp6_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1232,7 +1232,7 @@ namespace isc { namespace dhcp { break; case 154: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 652 "dhcp6_parser.yy" +#line 653 "dhcp6_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1242,7 +1242,7 @@ namespace isc { namespace dhcp { break; case 155: // t1_percent: "t1-percent" ":" "floating point" -#line 658 "dhcp6_parser.yy" +#line 659 "dhcp6_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1252,7 +1252,7 @@ namespace isc { namespace dhcp { break; case 156: // t2_percent: "t2-percent" ":" "floating point" -#line 664 "dhcp6_parser.yy" +#line 665 "dhcp6_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1262,7 +1262,7 @@ namespace isc { namespace dhcp { break; case 157: // cache_threshold: "cache-threshold" ":" "floating point" -#line 670 "dhcp6_parser.yy" +#line 671 "dhcp6_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1272,7 +1272,7 @@ namespace isc { namespace dhcp { break; case 158: // cache_max_age: "cache-max-age" ":" "integer" -#line 676 "dhcp6_parser.yy" +#line 677 "dhcp6_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1282,7 +1282,7 @@ namespace isc { namespace dhcp { break; case 159: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 682 "dhcp6_parser.yy" +#line 683 "dhcp6_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1292,7 +1292,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 688 "dhcp6_parser.yy" +#line 689 "dhcp6_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1302,7 +1302,7 @@ namespace isc { namespace dhcp { break; case 161: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 694 "dhcp6_parser.yy" +#line 695 "dhcp6_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1312,7 +1312,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 700 "dhcp6_parser.yy" +#line 701 "dhcp6_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1322,7 +1322,7 @@ namespace isc { namespace dhcp { break; case 163: // $@22: %empty -#line 706 "dhcp6_parser.yy" +#line 707 "dhcp6_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1331,7 +1331,7 @@ namespace isc { namespace dhcp { break; case 164: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 709 "dhcp6_parser.yy" +#line 710 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1340,7 +1340,7 @@ namespace isc { namespace dhcp { break; case 165: // ddns_replace_client_name_value: "when-present" -#line 715 "dhcp6_parser.yy" +#line 716 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1348,7 +1348,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_replace_client_name_value: "never" -#line 718 "dhcp6_parser.yy" +#line 719 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1356,7 +1356,7 @@ namespace isc { namespace dhcp { break; case 167: // ddns_replace_client_name_value: "always" -#line 721 "dhcp6_parser.yy" +#line 722 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1364,7 +1364,7 @@ namespace isc { namespace dhcp { break; case 168: // ddns_replace_client_name_value: "when-not-present" -#line 724 "dhcp6_parser.yy" +#line 725 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1372,7 +1372,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_replace_client_name_value: "boolean" -#line 727 "dhcp6_parser.yy" +#line 728 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the ddns-replace-client-name are " "no longer supported"); @@ -1381,7 +1381,7 @@ namespace isc { namespace dhcp { break; case 170: // $@23: %empty -#line 733 "dhcp6_parser.yy" +#line 734 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1390,7 +1390,7 @@ namespace isc { namespace dhcp { break; case 171: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 736 "dhcp6_parser.yy" +#line 737 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1400,7 +1400,7 @@ namespace isc { namespace dhcp { break; case 172: // $@24: %empty -#line 742 "dhcp6_parser.yy" +#line 743 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1409,7 +1409,7 @@ namespace isc { namespace dhcp { break; case 173: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 745 "dhcp6_parser.yy" +#line 746 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1419,7 +1419,7 @@ namespace isc { namespace dhcp { break; case 174: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 751 "dhcp6_parser.yy" +#line 752 "dhcp6_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1429,7 +1429,7 @@ namespace isc { namespace dhcp { break; case 175: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 760 "dhcp6_parser.yy" +#line 761 "dhcp6_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1443,7 +1443,7 @@ namespace isc { namespace dhcp { break; case 176: // $@25: %empty -#line 770 "dhcp6_parser.yy" +#line 771 "dhcp6_parser.yy" { ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE); @@ -1452,7 +1452,7 @@ namespace isc { namespace dhcp { break; case 177: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value -#line 773 "dhcp6_parser.yy" +#line 774 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1461,7 +1461,7 @@ namespace isc { namespace dhcp { break; case 178: // ddns_conflict_resolution_mode_value: "check-with-dhcid" -#line 779 "dhcp6_parser.yy" +#line 780 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1469,7 +1469,7 @@ namespace isc { namespace dhcp { break; case 179: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid" -#line 782 "dhcp6_parser.yy" +#line 783 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1477,7 +1477,7 @@ namespace isc { namespace dhcp { break; case 180: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid" -#line 785 "dhcp6_parser.yy" +#line 786 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1485,7 +1485,7 @@ namespace isc { namespace dhcp { break; case 181: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid" -#line 788 "dhcp6_parser.yy" +#line 789 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1493,7 +1493,7 @@ namespace isc { namespace dhcp { break; case 182: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" -#line 793 "dhcp6_parser.yy" +#line 794 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1503,7 +1503,7 @@ namespace isc { namespace dhcp { break; case 183: // ddns_ttl: "ddns-ttl" ":" "integer" -#line 799 "dhcp6_parser.yy" +#line 800 "dhcp6_parser.yy" { ctx.unique("ddns-ttl", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1513,7 +1513,7 @@ namespace isc { namespace dhcp { break; case 184: // ddns_ttl_min: "ddns-ttl-min" ":" "integer" -#line 805 "dhcp6_parser.yy" +#line 806 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-min", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1523,7 +1523,7 @@ namespace isc { namespace dhcp { break; case 185: // ddns_ttl_max: "ddns-ttl-mix" ":" "integer" -#line 811 "dhcp6_parser.yy" +#line 812 "dhcp6_parser.yy" { ctx.unique("ddns-ttl-max", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1533,7 +1533,7 @@ namespace isc { namespace dhcp { break; case 186: // $@26: %empty -#line 817 "dhcp6_parser.yy" +#line 818 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1542,7 +1542,7 @@ namespace isc { namespace dhcp { break; case 187: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string" -#line 820 "dhcp6_parser.yy" +#line 821 "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); @@ -1552,7 +1552,7 @@ namespace isc { namespace dhcp { break; case 188: // $@27: %empty -#line 826 "dhcp6_parser.yy" +#line 827 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1561,7 +1561,7 @@ namespace isc { namespace dhcp { break; case 189: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string" -#line 829 "dhcp6_parser.yy" +#line 830 "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); @@ -1571,7 +1571,7 @@ namespace isc { namespace dhcp { break; case 190: // store_extended_info: "store-extended-info" ":" "boolean" -#line 835 "dhcp6_parser.yy" +#line 836 "dhcp6_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1581,7 +1581,7 @@ namespace isc { namespace dhcp { break; case 191: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 841 "dhcp6_parser.yy" +#line 842 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1591,7 +1591,7 @@ namespace isc { namespace dhcp { break; case 192: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 847 "dhcp6_parser.yy" +#line 848 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1601,7 +1601,7 @@ namespace isc { namespace dhcp { break; case 193: // $@28: %empty -#line 853 "dhcp6_parser.yy" +#line 854 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1610,7 +1610,7 @@ namespace isc { namespace dhcp { break; case 194: // server_tag: "server-tag" $@28 ":" "constant string" -#line 856 "dhcp6_parser.yy" +#line 857 "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); @@ -1620,7 +1620,7 @@ namespace isc { namespace dhcp { break; case 195: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 862 "dhcp6_parser.yy" +#line 863 "dhcp6_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1630,7 +1630,7 @@ namespace isc { namespace dhcp { break; case 196: // $@29: %empty -#line 868 "dhcp6_parser.yy" +#line 869 "dhcp6_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1639,7 +1639,7 @@ namespace isc { namespace dhcp { break; case 197: // allocator: "allocator" $@29 ":" "constant string" -#line 871 "dhcp6_parser.yy" +#line 872 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1649,7 +1649,7 @@ namespace isc { namespace dhcp { break; case 198: // $@30: %empty -#line 877 "dhcp6_parser.yy" +#line 878 "dhcp6_parser.yy" { ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1658,7 +1658,7 @@ namespace isc { namespace dhcp { break; case 199: // pd_allocator: "pd-allocator" $@30 ":" "constant string" -#line 880 "dhcp6_parser.yy" +#line 881 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-allocator", al); @@ -1668,7 +1668,7 @@ namespace isc { namespace dhcp { break; case 200: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 886 "dhcp6_parser.yy" +#line 887 "dhcp6_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1678,7 +1678,7 @@ namespace isc { namespace dhcp { break; case 201: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 892 "dhcp6_parser.yy" +#line 893 "dhcp6_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1688,7 +1688,7 @@ namespace isc { namespace dhcp { break; case 202: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 898 "dhcp6_parser.yy" +#line 899 "dhcp6_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1698,7 +1698,7 @@ namespace isc { namespace dhcp { break; case 203: // $@31: %empty -#line 904 "dhcp6_parser.yy" +#line 905 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1710,7 +1710,7 @@ namespace isc { namespace dhcp { break; case 204: // interfaces_config: "interfaces-config" $@31 ":" "{" interfaces_config_params "}" -#line 910 "dhcp6_parser.yy" +#line 911 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1720,7 +1720,7 @@ namespace isc { namespace dhcp { break; case 205: // $@32: %empty -#line 916 "dhcp6_parser.yy" +#line 917 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1730,7 +1730,7 @@ namespace isc { namespace dhcp { break; case 206: // sub_interfaces6: "{" $@32 interfaces_config_params "}" -#line 920 "dhcp6_parser.yy" +#line 921 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed @@ -1739,7 +1739,7 @@ namespace isc { namespace dhcp { break; case 209: // interfaces_config_params: interfaces_config_params "," -#line 927 "dhcp6_parser.yy" +#line 928 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1747,7 +1747,7 @@ namespace isc { namespace dhcp { break; case 218: // $@33: %empty -#line 942 "dhcp6_parser.yy" +#line 943 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1759,7 +1759,7 @@ namespace isc { namespace dhcp { break; case 219: // interfaces_list: "interfaces" $@33 ":" list_strings -#line 948 "dhcp6_parser.yy" +#line 949 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1768,7 +1768,7 @@ namespace isc { namespace dhcp { break; case 220: // re_detect: "re-detect" ":" "boolean" -#line 953 "dhcp6_parser.yy" +#line 954 "dhcp6_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1778,7 +1778,7 @@ namespace isc { namespace dhcp { break; case 221: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 959 "dhcp6_parser.yy" +#line 960 "dhcp6_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1788,7 +1788,7 @@ namespace isc { namespace dhcp { break; case 222: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 965 "dhcp6_parser.yy" +#line 966 "dhcp6_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1798,7 +1798,7 @@ namespace isc { namespace dhcp { break; case 223: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 971 "dhcp6_parser.yy" +#line 972 "dhcp6_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1808,7 +1808,7 @@ namespace isc { namespace dhcp { break; case 224: // $@34: %empty -#line 977 "dhcp6_parser.yy" +#line 978 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1820,7 +1820,7 @@ namespace isc { namespace dhcp { break; case 225: // lease_database: "lease-database" $@34 ":" "{" database_map_params "}" -#line 983 "dhcp6_parser.yy" +#line 984 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1831,7 +1831,7 @@ namespace isc { namespace dhcp { break; case 226: // $@35: %empty -#line 990 "dhcp6_parser.yy" +#line 991 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1843,7 +1843,7 @@ namespace isc { namespace dhcp { break; case 227: // hosts_database: "hosts-database" $@35 ":" "{" database_map_params "}" -#line 996 "dhcp6_parser.yy" +#line 997 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1854,7 +1854,7 @@ namespace isc { namespace dhcp { break; case 228: // $@36: %empty -#line 1003 "dhcp6_parser.yy" +#line 1004 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1866,7 +1866,7 @@ namespace isc { namespace dhcp { break; case 229: // hosts_databases: "hosts-databases" $@36 ":" "[" database_list "]" -#line 1009 "dhcp6_parser.yy" +#line 1010 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1875,7 +1875,7 @@ namespace isc { namespace dhcp { break; case 234: // not_empty_database_list: not_empty_database_list "," -#line 1020 "dhcp6_parser.yy" +#line 1021 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1883,7 +1883,7 @@ namespace isc { namespace dhcp { break; case 235: // $@37: %empty -#line 1025 "dhcp6_parser.yy" +#line 1026 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1893,7 +1893,7 @@ namespace isc { namespace dhcp { break; case 236: // database: "{" $@37 database_map_params "}" -#line 1029 "dhcp6_parser.yy" +#line 1030 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1903,15 +1903,15 @@ namespace isc { namespace dhcp { break; case 239: // database_map_params: database_map_params "," -#line 1037 "dhcp6_parser.yy" +#line 1038 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 1911 "dhcp6_parser.cc" break; - case 263: // $@38: %empty -#line 1067 "dhcp6_parser.yy" + case 264: // $@38: %empty +#line 1069 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1919,8 +1919,8 @@ namespace isc { namespace dhcp { #line 1920 "dhcp6_parser.cc" break; - case 264: // database_type: "type" $@38 ":" "constant string" -#line 1070 "dhcp6_parser.yy" + case 265: // database_type: "type" $@38 ":" "constant string" +#line 1072 "dhcp6_parser.yy" { ElementPtr db_type(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", db_type); @@ -1929,8 +1929,8 @@ namespace isc { namespace dhcp { #line 1930 "dhcp6_parser.cc" break; - case 265: // $@39: %empty -#line 1076 "dhcp6_parser.yy" + case 266: // $@39: %empty +#line 1078 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1938,8 +1938,8 @@ namespace isc { namespace dhcp { #line 1939 "dhcp6_parser.cc" break; - case 266: // user: "user" $@39 ":" "constant string" -#line 1079 "dhcp6_parser.yy" + case 267: // user: "user" $@39 ":" "constant string" +#line 1081 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1948,8 +1948,8 @@ namespace isc { namespace dhcp { #line 1949 "dhcp6_parser.cc" break; - case 267: // $@40: %empty -#line 1085 "dhcp6_parser.yy" + case 268: // $@40: %empty +#line 1087 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1957,8 +1957,8 @@ namespace isc { namespace dhcp { #line 1958 "dhcp6_parser.cc" break; - case 268: // password: "password" $@40 ":" "constant string" -#line 1088 "dhcp6_parser.yy" + case 269: // password: "password" $@40 ":" "constant string" +#line 1090 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1967,8 +1967,8 @@ namespace isc { namespace dhcp { #line 1968 "dhcp6_parser.cc" break; - case 269: // $@41: %empty -#line 1094 "dhcp6_parser.yy" + case 270: // $@41: %empty +#line 1096 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1976,8 +1976,8 @@ namespace isc { namespace dhcp { #line 1977 "dhcp6_parser.cc" break; - case 270: // host: "host" $@41 ":" "constant string" -#line 1097 "dhcp6_parser.yy" + case 271: // host: "host" $@41 ":" "constant string" +#line 1099 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1986,8 +1986,8 @@ namespace isc { namespace dhcp { #line 1987 "dhcp6_parser.cc" break; - case 271: // port: "port" ":" "integer" -#line 1103 "dhcp6_parser.yy" + case 272: // port: "port" ":" "integer" +#line 1105 "dhcp6_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1996,8 +1996,8 @@ namespace isc { namespace dhcp { #line 1997 "dhcp6_parser.cc" break; - case 272: // $@42: %empty -#line 1109 "dhcp6_parser.yy" + case 273: // $@42: %empty +#line 1111 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2005,8 +2005,8 @@ namespace isc { namespace dhcp { #line 2006 "dhcp6_parser.cc" break; - case 273: // name: "name" $@42 ":" "constant string" -#line 1112 "dhcp6_parser.yy" + case 274: // name: "name" $@42 ":" "constant string" +#line 1114 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -2015,8 +2015,8 @@ namespace isc { namespace dhcp { #line 2016 "dhcp6_parser.cc" break; - case 274: // persist: "persist" ":" "boolean" -#line 1118 "dhcp6_parser.yy" + case 275: // persist: "persist" ":" "boolean" +#line 1120 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2025,8 +2025,8 @@ namespace isc { namespace dhcp { #line 2026 "dhcp6_parser.cc" break; - case 275: // lfc_interval: "lfc-interval" ":" "integer" -#line 1124 "dhcp6_parser.yy" + case 276: // lfc_interval: "lfc-interval" ":" "integer" +#line 1126 "dhcp6_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2035,8 +2035,8 @@ namespace isc { namespace dhcp { #line 2036 "dhcp6_parser.cc" break; - case 276: // readonly: "readonly" ":" "boolean" -#line 1130 "dhcp6_parser.yy" + case 277: // readonly: "readonly" ":" "boolean" +#line 1132 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2045,8 +2045,8 @@ namespace isc { namespace dhcp { #line 2046 "dhcp6_parser.cc" break; - case 277: // connect_timeout: "connect-timeout" ":" "integer" -#line 1136 "dhcp6_parser.yy" + case 278: // connect_timeout: "connect-timeout" ":" "integer" +#line 1138 "dhcp6_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2055,8 +2055,8 @@ namespace isc { namespace dhcp { #line 2056 "dhcp6_parser.cc" break; - case 278: // read_timeout: "read-timeout" ":" "integer" -#line 1142 "dhcp6_parser.yy" + case 279: // read_timeout: "read-timeout" ":" "integer" +#line 1144 "dhcp6_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2065,8 +2065,8 @@ namespace isc { namespace dhcp { #line 2066 "dhcp6_parser.cc" break; - case 279: // write_timeout: "write-timeout" ":" "integer" -#line 1148 "dhcp6_parser.yy" + case 280: // write_timeout: "write-timeout" ":" "integer" +#line 1150 "dhcp6_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2075,8 +2075,8 @@ namespace isc { namespace dhcp { #line 2076 "dhcp6_parser.cc" break; - case 280: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1154 "dhcp6_parser.yy" + case 281: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1156 "dhcp6_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2085,8 +2085,8 @@ namespace isc { namespace dhcp { #line 2086 "dhcp6_parser.cc" break; - case 281: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1160 "dhcp6_parser.yy" + case 282: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1162 "dhcp6_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2095,8 +2095,8 @@ namespace isc { namespace dhcp { #line 2096 "dhcp6_parser.cc" break; - case 282: // $@43: %empty -#line 1166 "dhcp6_parser.yy" + case 283: // $@43: %empty +#line 1168 "dhcp6_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); @@ -2104,8 +2104,8 @@ namespace isc { namespace dhcp { #line 2105 "dhcp6_parser.cc" break; - case 283: // on_fail: "on-fail" $@43 ":" on_fail_mode -#line 1169 "dhcp6_parser.yy" + case 284: // on_fail: "on-fail" $@43 ":" on_fail_mode +#line 1171 "dhcp6_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2113,26 +2113,26 @@ namespace isc { namespace dhcp { #line 2114 "dhcp6_parser.cc" break; - case 284: // on_fail_mode: "stop-retry-exit" -#line 1174 "dhcp6_parser.yy" + case 285: // on_fail_mode: "stop-retry-exit" +#line 1176 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2120 "dhcp6_parser.cc" break; - case 285: // on_fail_mode: "serve-retry-exit" -#line 1175 "dhcp6_parser.yy" + case 286: // on_fail_mode: "serve-retry-exit" +#line 1177 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2126 "dhcp6_parser.cc" break; - case 286: // on_fail_mode: "serve-retry-continue" -#line 1176 "dhcp6_parser.yy" + case 287: // on_fail_mode: "serve-retry-continue" +#line 1178 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } #line 2132 "dhcp6_parser.cc" break; - case 287: // retry_on_startup: "retry-on-startup" ":" "boolean" -#line 1179 "dhcp6_parser.yy" + case 288: // retry_on_startup: "retry-on-startup" ":" "boolean" +#line 1181 "dhcp6_parser.yy" { ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2141,8 +2141,8 @@ namespace isc { namespace dhcp { #line 2142 "dhcp6_parser.cc" break; - case 288: // max_row_errors: "max-row-errors" ":" "integer" -#line 1185 "dhcp6_parser.yy" + case 289: // max_row_errors: "max-row-errors" ":" "integer" +#line 1187 "dhcp6_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2151,8 +2151,8 @@ namespace isc { namespace dhcp { #line 2152 "dhcp6_parser.cc" break; - case 289: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1191 "dhcp6_parser.yy" + case 290: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1193 "dhcp6_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2161,8 +2161,8 @@ namespace isc { namespace dhcp { #line 2162 "dhcp6_parser.cc" break; - case 290: // $@44: %empty -#line 1197 "dhcp6_parser.yy" + case 291: // $@44: %empty +#line 1199 "dhcp6_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2170,8 +2170,8 @@ namespace isc { namespace dhcp { #line 2171 "dhcp6_parser.cc" break; - case 291: // trust_anchor: "trust-anchor" $@44 ":" "constant string" -#line 1200 "dhcp6_parser.yy" + case 292: // trust_anchor: "trust-anchor" $@44 ":" "constant string" +#line 1202 "dhcp6_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); @@ -2180,8 +2180,8 @@ namespace isc { namespace dhcp { #line 2181 "dhcp6_parser.cc" break; - case 292: // $@45: %empty -#line 1206 "dhcp6_parser.yy" + case 293: // $@45: %empty +#line 1208 "dhcp6_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2189,8 +2189,8 @@ namespace isc { namespace dhcp { #line 2190 "dhcp6_parser.cc" break; - case 293: // cert_file: "cert-file" $@45 ":" "constant string" -#line 1209 "dhcp6_parser.yy" + case 294: // cert_file: "cert-file" $@45 ":" "constant string" +#line 1211 "dhcp6_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); @@ -2199,8 +2199,8 @@ namespace isc { namespace dhcp { #line 2200 "dhcp6_parser.cc" break; - case 294: // $@46: %empty -#line 1215 "dhcp6_parser.yy" + case 295: // $@46: %empty +#line 1217 "dhcp6_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2208,8 +2208,8 @@ namespace isc { namespace dhcp { #line 2209 "dhcp6_parser.cc" break; - case 295: // key_file: "key-file" $@46 ":" "constant string" -#line 1218 "dhcp6_parser.yy" + case 296: // key_file: "key-file" $@46 ":" "constant string" +#line 1220 "dhcp6_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); @@ -2218,27 +2218,46 @@ namespace isc { namespace dhcp { #line 2219 "dhcp6_parser.cc" break; - case 296: // $@47: %empty -#line 1224 "dhcp6_parser.yy" + case 297: // $@47: %empty +#line 1226 "dhcp6_parser.yy" + { + ctx.unique("key-password", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORD); +} +#line 2228 "dhcp6_parser.cc" + break; + + case 298: // key_password: "key-password" $@47 ":" "constant string" +#line 1229 "dhcp6_parser.yy" + { + ElementPtr key_pass(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("key-password", key_pass); + ctx.leave(); +} +#line 2238 "dhcp6_parser.cc" + break; + + case 299: // $@48: %empty +#line 1235 "dhcp6_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2228 "dhcp6_parser.cc" +#line 2247 "dhcp6_parser.cc" break; - case 297: // cipher_list: "cipher-list" $@47 ":" "constant string" -#line 1227 "dhcp6_parser.yy" + case 300: // cipher_list: "cipher-list" $@48 ":" "constant string" +#line 1238 "dhcp6_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2238 "dhcp6_parser.cc" +#line 2257 "dhcp6_parser.cc" break; - case 298: // $@48: %empty -#line 1233 "dhcp6_parser.yy" + case 301: // $@49: %empty +#line 1244 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2246,37 +2265,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 2250 "dhcp6_parser.cc" +#line 2269 "dhcp6_parser.cc" break; - case 299: // sanity_checks: "sanity-checks" $@48 ":" "{" sanity_checks_params "}" -#line 1239 "dhcp6_parser.yy" + case 302: // sanity_checks: "sanity-checks" $@49 ":" "{" sanity_checks_params "}" +#line 1250 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2259 "dhcp6_parser.cc" +#line 2278 "dhcp6_parser.cc" break; - case 302: // sanity_checks_params: sanity_checks_params "," -#line 1246 "dhcp6_parser.yy" + case 305: // sanity_checks_params: sanity_checks_params "," +#line 1257 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2267 "dhcp6_parser.cc" +#line 2286 "dhcp6_parser.cc" break; - case 305: // $@49: %empty -#line 1255 "dhcp6_parser.yy" + case 308: // $@50: %empty +#line 1266 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2276 "dhcp6_parser.cc" +#line 2295 "dhcp6_parser.cc" break; - case 306: // lease_checks: "lease-checks" $@49 ":" "constant string" -#line 1258 "dhcp6_parser.yy" + case 309: // lease_checks: "lease-checks" $@50 ":" "constant string" +#line 1269 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2292,20 +2311,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 2296 "dhcp6_parser.cc" +#line 2315 "dhcp6_parser.cc" break; - case 307: // $@50: %empty -#line 1274 "dhcp6_parser.yy" + case 310: // $@51: %empty +#line 1285 "dhcp6_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2305 "dhcp6_parser.cc" +#line 2324 "dhcp6_parser.cc" break; - case 308: // extended_info_checks: "extended-info-checks" $@50 ":" "constant string" -#line 1277 "dhcp6_parser.yy" + case 311: // extended_info_checks: "extended-info-checks" $@51 ":" "constant string" +#line 1288 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2320,11 +2339,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 2324 "dhcp6_parser.cc" +#line 2343 "dhcp6_parser.cc" break; - case 309: // $@51: %empty -#line 1292 "dhcp6_parser.yy" + case 312: // $@52: %empty +#line 1303 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2332,46 +2351,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 2336 "dhcp6_parser.cc" +#line 2355 "dhcp6_parser.cc" break; - case 310: // mac_sources: "mac-sources" $@51 ":" "[" mac_sources_list "]" -#line 1298 "dhcp6_parser.yy" + case 313: // mac_sources: "mac-sources" $@52 ":" "[" mac_sources_list "]" +#line 1309 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2345 "dhcp6_parser.cc" +#line 2364 "dhcp6_parser.cc" break; - case 313: // mac_sources_list: mac_sources_list "," -#line 1305 "dhcp6_parser.yy" + case 316: // mac_sources_list: mac_sources_list "," +#line 1316 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2353 "dhcp6_parser.cc" +#line 2372 "dhcp6_parser.cc" break; - case 316: // duid_id: "duid" -#line 1314 "dhcp6_parser.yy" + case 319: // duid_id: "duid" +#line 1325 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2362 "dhcp6_parser.cc" +#line 2381 "dhcp6_parser.cc" break; - case 317: // string_id: "constant string" -#line 1319 "dhcp6_parser.yy" + case 320: // string_id: "constant string" +#line 1330 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2371 "dhcp6_parser.cc" +#line 2390 "dhcp6_parser.cc" break; - case 318: // $@52: %empty -#line 1324 "dhcp6_parser.yy" + case 321: // $@53: %empty +#line 1335 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2379,46 +2398,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2383 "dhcp6_parser.cc" +#line 2402 "dhcp6_parser.cc" break; - case 319: // host_reservation_identifiers: "host-reservation-identifiers" $@52 ":" "[" host_reservation_identifiers_list "]" -#line 1330 "dhcp6_parser.yy" + case 322: // host_reservation_identifiers: "host-reservation-identifiers" $@53 ":" "[" host_reservation_identifiers_list "]" +#line 1341 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2392 "dhcp6_parser.cc" +#line 2411 "dhcp6_parser.cc" break; - case 322: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1337 "dhcp6_parser.yy" + case 325: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1348 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2400 "dhcp6_parser.cc" +#line 2419 "dhcp6_parser.cc" break; - case 326: // hw_address_id: "hw-address" -#line 1347 "dhcp6_parser.yy" + case 329: // hw_address_id: "hw-address" +#line 1358 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2409 "dhcp6_parser.cc" +#line 2428 "dhcp6_parser.cc" break; - case 327: // flex_id: "flex-id" -#line 1352 "dhcp6_parser.yy" + case 330: // flex_id: "flex-id" +#line 1363 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2418 "dhcp6_parser.cc" +#line 2437 "dhcp6_parser.cc" break; - case 328: // $@53: %empty -#line 1359 "dhcp6_parser.yy" + case 331: // $@54: %empty +#line 1370 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2426,20 +2445,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2430 "dhcp6_parser.cc" +#line 2449 "dhcp6_parser.cc" break; - case 329: // relay_supplied_options: "relay-supplied-options" $@53 ":" "[" list_content "]" -#line 1365 "dhcp6_parser.yy" + case 332: // relay_supplied_options: "relay-supplied-options" $@54 ":" "[" list_content "]" +#line 1376 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2439 "dhcp6_parser.cc" +#line 2458 "dhcp6_parser.cc" break; - case 330: // $@54: %empty -#line 1372 "dhcp6_parser.yy" + case 333: // $@55: %empty +#line 1383 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2447,60 +2466,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2451 "dhcp6_parser.cc" +#line 2470 "dhcp6_parser.cc" break; - case 331: // dhcp_multi_threading: "multi-threading" $@54 ":" "{" multi_threading_params "}" -#line 1378 "dhcp6_parser.yy" + case 334: // dhcp_multi_threading: "multi-threading" $@55 ":" "{" multi_threading_params "}" +#line 1389 "dhcp6_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2462 "dhcp6_parser.cc" +#line 2481 "dhcp6_parser.cc" break; - case 334: // multi_threading_params: multi_threading_params "," -#line 1387 "dhcp6_parser.yy" + case 337: // multi_threading_params: multi_threading_params "," +#line 1398 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2470 "dhcp6_parser.cc" +#line 2489 "dhcp6_parser.cc" break; - case 341: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1400 "dhcp6_parser.yy" + case 344: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1411 "dhcp6_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2480 "dhcp6_parser.cc" +#line 2499 "dhcp6_parser.cc" break; - case 342: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1406 "dhcp6_parser.yy" + case 345: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1417 "dhcp6_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2490 "dhcp6_parser.cc" +#line 2509 "dhcp6_parser.cc" break; - case 343: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1412 "dhcp6_parser.yy" + case 346: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1423 "dhcp6_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2500 "dhcp6_parser.cc" +#line 2519 "dhcp6_parser.cc" break; - case 344: // $@55: %empty -#line 1418 "dhcp6_parser.yy" + case 347: // $@56: %empty +#line 1429 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2508,113 +2527,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2512 "dhcp6_parser.cc" +#line 2531 "dhcp6_parser.cc" break; - case 345: // hooks_libraries: "hooks-libraries" $@55 ":" "[" hooks_libraries_list "]" -#line 1424 "dhcp6_parser.yy" + case 348: // hooks_libraries: "hooks-libraries" $@56 ":" "[" hooks_libraries_list "]" +#line 1435 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2521 "dhcp6_parser.cc" +#line 2540 "dhcp6_parser.cc" break; - case 350: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1435 "dhcp6_parser.yy" + case 353: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1446 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2529 "dhcp6_parser.cc" +#line 2548 "dhcp6_parser.cc" break; - case 351: // $@56: %empty -#line 1440 "dhcp6_parser.yy" + case 354: // $@57: %empty +#line 1451 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2539 "dhcp6_parser.cc" +#line 2558 "dhcp6_parser.cc" break; - case 352: // hooks_library: "{" $@56 hooks_params "}" -#line 1444 "dhcp6_parser.yy" + case 355: // hooks_library: "{" $@57 hooks_params "}" +#line 1455 "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 2549 "dhcp6_parser.cc" +#line 2568 "dhcp6_parser.cc" break; - case 353: // $@57: %empty -#line 1450 "dhcp6_parser.yy" + case 356: // $@58: %empty +#line 1461 "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 2559 "dhcp6_parser.cc" +#line 2578 "dhcp6_parser.cc" break; - case 354: // sub_hooks_library: "{" $@57 hooks_params "}" -#line 1454 "dhcp6_parser.yy" + case 357: // sub_hooks_library: "{" $@58 hooks_params "}" +#line 1465 "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 2569 "dhcp6_parser.cc" +#line 2588 "dhcp6_parser.cc" break; - case 357: // hooks_params: hooks_params "," -#line 1462 "dhcp6_parser.yy" + case 360: // hooks_params: hooks_params "," +#line 1473 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2577 "dhcp6_parser.cc" +#line 2596 "dhcp6_parser.cc" break; - case 361: // $@58: %empty -#line 1472 "dhcp6_parser.yy" + case 364: // $@59: %empty +#line 1483 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2586 "dhcp6_parser.cc" +#line 2605 "dhcp6_parser.cc" break; - case 362: // library: "library" $@58 ":" "constant string" -#line 1475 "dhcp6_parser.yy" + case 365: // library: "library" $@59 ":" "constant string" +#line 1486 "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 2596 "dhcp6_parser.cc" +#line 2615 "dhcp6_parser.cc" break; - case 363: // $@59: %empty -#line 1481 "dhcp6_parser.yy" + case 366: // $@60: %empty +#line 1492 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2605 "dhcp6_parser.cc" +#line 2624 "dhcp6_parser.cc" break; - case 364: // parameters: "parameters" $@59 ":" map_value -#line 1484 "dhcp6_parser.yy" + case 367: // parameters: "parameters" $@60 ":" map_value +#line 1495 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2614 "dhcp6_parser.cc" +#line 2633 "dhcp6_parser.cc" break; - case 365: // $@60: %empty -#line 1490 "dhcp6_parser.yy" + case 368: // $@61: %empty +#line 1501 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2622,89 +2641,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2626 "dhcp6_parser.cc" +#line 2645 "dhcp6_parser.cc" break; - case 366: // expired_leases_processing: "expired-leases-processing" $@60 ":" "{" expired_leases_params "}" -#line 1496 "dhcp6_parser.yy" + case 369: // expired_leases_processing: "expired-leases-processing" $@61 ":" "{" expired_leases_params "}" +#line 1507 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2636 "dhcp6_parser.cc" +#line 2655 "dhcp6_parser.cc" break; - case 369: // expired_leases_params: expired_leases_params "," -#line 1504 "dhcp6_parser.yy" + case 372: // expired_leases_params: expired_leases_params "," +#line 1515 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2644 "dhcp6_parser.cc" +#line 2663 "dhcp6_parser.cc" break; - case 376: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1517 "dhcp6_parser.yy" + case 379: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1528 "dhcp6_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); 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 2654 "dhcp6_parser.cc" +#line 2673 "dhcp6_parser.cc" break; - case 377: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1523 "dhcp6_parser.yy" + case 380: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1534 "dhcp6_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); 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 2664 "dhcp6_parser.cc" +#line 2683 "dhcp6_parser.cc" break; - case 378: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1529 "dhcp6_parser.yy" + case 381: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1540 "dhcp6_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2674 "dhcp6_parser.cc" +#line 2693 "dhcp6_parser.cc" break; - case 379: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1535 "dhcp6_parser.yy" + case 382: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1546 "dhcp6_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2684 "dhcp6_parser.cc" +#line 2703 "dhcp6_parser.cc" break; - case 380: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1541 "dhcp6_parser.yy" + case 383: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1552 "dhcp6_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2694 "dhcp6_parser.cc" +#line 2713 "dhcp6_parser.cc" break; - case 381: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1547 "dhcp6_parser.yy" + case 384: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1558 "dhcp6_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2704 "dhcp6_parser.cc" +#line 2723 "dhcp6_parser.cc" break; - case 382: // $@61: %empty -#line 1556 "dhcp6_parser.yy" + case 385: // $@62: %empty +#line 1567 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2712,38 +2731,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2716 "dhcp6_parser.cc" +#line 2735 "dhcp6_parser.cc" break; - case 383: // subnet6_list: "subnet6" $@61 ":" "[" subnet6_list_content "]" -#line 1562 "dhcp6_parser.yy" + case 386: // subnet6_list: "subnet6" $@62 ":" "[" subnet6_list_content "]" +#line 1573 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2725 "dhcp6_parser.cc" +#line 2744 "dhcp6_parser.cc" break; - case 388: // not_empty_subnet6_list: not_empty_subnet6_list "," -#line 1576 "dhcp6_parser.yy" + case 391: // not_empty_subnet6_list: not_empty_subnet6_list "," +#line 1587 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2733 "dhcp6_parser.cc" +#line 2752 "dhcp6_parser.cc" break; - case 389: // $@62: %empty -#line 1585 "dhcp6_parser.yy" + case 392: // $@63: %empty +#line 1596 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2743 "dhcp6_parser.cc" +#line 2762 "dhcp6_parser.cc" break; - case 390: // subnet6: "{" $@62 subnet6_params "}" -#line 1589 "dhcp6_parser.yy" + case 393: // subnet6: "{" $@63 subnet6_params "}" +#line 1600 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2765,115 +2784,115 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2769 "dhcp6_parser.cc" +#line 2788 "dhcp6_parser.cc" break; - case 391: // $@63: %empty -#line 1611 "dhcp6_parser.yy" + case 394: // $@64: %empty +#line 1622 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2779 "dhcp6_parser.cc" +#line 2798 "dhcp6_parser.cc" break; - case 392: // sub_subnet6: "{" $@63 subnet6_params "}" -#line 1615 "dhcp6_parser.yy" + case 395: // sub_subnet6: "{" $@64 subnet6_params "}" +#line 1626 "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 2789 "dhcp6_parser.cc" +#line 2808 "dhcp6_parser.cc" break; - case 395: // subnet6_params: subnet6_params "," -#line 1624 "dhcp6_parser.yy" + case 398: // subnet6_params: subnet6_params "," +#line 1635 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2797 "dhcp6_parser.cc" +#line 2816 "dhcp6_parser.cc" break; - case 447: // $@64: %empty -#line 1683 "dhcp6_parser.yy" + case 450: // $@65: %empty +#line 1694 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2806 "dhcp6_parser.cc" +#line 2825 "dhcp6_parser.cc" break; - case 448: // subnet: "subnet" $@64 ":" "constant string" -#line 1686 "dhcp6_parser.yy" + case 451: // subnet: "subnet" $@65 ":" "constant string" +#line 1697 "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 2816 "dhcp6_parser.cc" +#line 2835 "dhcp6_parser.cc" break; - case 449: // $@65: %empty -#line 1692 "dhcp6_parser.yy" + case 452: // $@66: %empty +#line 1703 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2825 "dhcp6_parser.cc" +#line 2844 "dhcp6_parser.cc" break; - case 450: // interface: "interface" $@65 ":" "constant string" -#line 1695 "dhcp6_parser.yy" + case 453: // interface: "interface" $@66 ":" "constant string" +#line 1706 "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 2835 "dhcp6_parser.cc" +#line 2854 "dhcp6_parser.cc" break; - case 451: // $@66: %empty -#line 1701 "dhcp6_parser.yy" + case 454: // $@67: %empty +#line 1712 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2844 "dhcp6_parser.cc" +#line 2863 "dhcp6_parser.cc" break; - case 452: // interface_id: "interface-id" $@66 ":" "constant string" -#line 1704 "dhcp6_parser.yy" + case 455: // interface_id: "interface-id" $@67 ":" "constant string" +#line 1715 "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 2854 "dhcp6_parser.cc" +#line 2873 "dhcp6_parser.cc" break; - case 453: // $@67: %empty -#line 1710 "dhcp6_parser.yy" + case 456: // $@68: %empty +#line 1721 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2863 "dhcp6_parser.cc" +#line 2882 "dhcp6_parser.cc" break; - case 454: // client_class: "client-class" $@67 ":" "constant string" -#line 1713 "dhcp6_parser.yy" + case 457: // client_class: "client-class" $@68 ":" "constant string" +#line 1724 "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 2873 "dhcp6_parser.cc" +#line 2892 "dhcp6_parser.cc" break; - case 455: // $@68: %empty -#line 1720 "dhcp6_parser.yy" + case 458: // $@69: %empty +#line 1731 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2881,20 +2900,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2885 "dhcp6_parser.cc" +#line 2904 "dhcp6_parser.cc" break; - case 456: // network_client_classes: "client-classes" $@68 ":" list_strings -#line 1726 "dhcp6_parser.yy" + case 459: // network_client_classes: "client-classes" $@69 ":" list_strings +#line 1737 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2894 "dhcp6_parser.cc" +#line 2913 "dhcp6_parser.cc" break; - case 457: // $@69: %empty -#line 1732 "dhcp6_parser.yy" + case 460: // $@70: %empty +#line 1743 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2902,20 +2921,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2906 "dhcp6_parser.cc" +#line 2925 "dhcp6_parser.cc" break; - case 458: // require_client_classes: "require-client-classes" $@69 ":" list_strings -#line 1738 "dhcp6_parser.yy" + case 461: // require_client_classes: "require-client-classes" $@70 ":" list_strings +#line 1749 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2915 "dhcp6_parser.cc" +#line 2934 "dhcp6_parser.cc" break; - case 459: // $@70: %empty -#line 1743 "dhcp6_parser.yy" + case 462: // $@71: %empty +#line 1754 "dhcp6_parser.yy" { ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2923,70 +2942,70 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2927 "dhcp6_parser.cc" +#line 2946 "dhcp6_parser.cc" break; - case 460: // evaluate_additional_classes: "evaluate-additional-classes" $@70 ":" list_strings -#line 1749 "dhcp6_parser.yy" + case 463: // evaluate_additional_classes: "evaluate-additional-classes" $@71 ":" list_strings +#line 1760 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2936 "dhcp6_parser.cc" +#line 2955 "dhcp6_parser.cc" break; - case 461: // reservations_global: "reservations-global" ":" "boolean" -#line 1754 "dhcp6_parser.yy" + case 464: // reservations_global: "reservations-global" ":" "boolean" +#line 1765 "dhcp6_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2946 "dhcp6_parser.cc" +#line 2965 "dhcp6_parser.cc" break; - case 462: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1760 "dhcp6_parser.yy" + case 465: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1771 "dhcp6_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2956 "dhcp6_parser.cc" +#line 2975 "dhcp6_parser.cc" break; - case 463: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1766 "dhcp6_parser.yy" + case 466: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1777 "dhcp6_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2966 "dhcp6_parser.cc" +#line 2985 "dhcp6_parser.cc" break; - case 464: // id: "id" ":" "integer" -#line 1772 "dhcp6_parser.yy" + case 467: // id: "id" ":" "integer" +#line 1783 "dhcp6_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2976 "dhcp6_parser.cc" +#line 2995 "dhcp6_parser.cc" break; - case 465: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1778 "dhcp6_parser.yy" + case 468: // rapid_commit: "rapid-commit" ":" "boolean" +#line 1789 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2986 "dhcp6_parser.cc" +#line 3005 "dhcp6_parser.cc" break; - case 466: // $@71: %empty -#line 1786 "dhcp6_parser.yy" + case 469: // $@72: %empty +#line 1797 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2994,54 +3013,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2998 "dhcp6_parser.cc" +#line 3017 "dhcp6_parser.cc" break; - case 467: // shared_networks: "shared-networks" $@71 ":" "[" shared_networks_content "]" -#line 1792 "dhcp6_parser.yy" + case 470: // shared_networks: "shared-networks" $@72 ":" "[" shared_networks_content "]" +#line 1803 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3007 "dhcp6_parser.cc" +#line 3026 "dhcp6_parser.cc" break; - case 472: // shared_networks_list: shared_networks_list "," -#line 1805 "dhcp6_parser.yy" + case 475: // shared_networks_list: shared_networks_list "," +#line 1816 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3015 "dhcp6_parser.cc" +#line 3034 "dhcp6_parser.cc" break; - case 473: // $@72: %empty -#line 1810 "dhcp6_parser.yy" + case 476: // $@73: %empty +#line 1821 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3025 "dhcp6_parser.cc" +#line 3044 "dhcp6_parser.cc" break; - case 474: // shared_network: "{" $@72 shared_network_params "}" -#line 1814 "dhcp6_parser.yy" + case 477: // shared_network: "{" $@73 shared_network_params "}" +#line 1825 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 3033 "dhcp6_parser.cc" +#line 3052 "dhcp6_parser.cc" break; - case 477: // shared_network_params: shared_network_params "," -#line 1820 "dhcp6_parser.yy" + case 480: // shared_network_params: shared_network_params "," +#line 1831 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3041 "dhcp6_parser.cc" +#line 3060 "dhcp6_parser.cc" break; - case 526: // $@73: %empty -#line 1879 "dhcp6_parser.yy" + case 529: // $@74: %empty +#line 1890 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3049,55 +3068,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 3053 "dhcp6_parser.cc" +#line 3072 "dhcp6_parser.cc" break; - case 527: // option_def_list: "option-def" $@73 ":" "[" option_def_list_content "]" -#line 1885 "dhcp6_parser.yy" + case 530: // option_def_list: "option-def" $@74 ":" "[" option_def_list_content "]" +#line 1896 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3062 "dhcp6_parser.cc" +#line 3081 "dhcp6_parser.cc" break; - case 528: // $@74: %empty -#line 1893 "dhcp6_parser.yy" + case 531: // $@75: %empty +#line 1904 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3071 "dhcp6_parser.cc" +#line 3090 "dhcp6_parser.cc" break; - case 529: // sub_option_def_list: "{" $@74 option_def_list "}" -#line 1896 "dhcp6_parser.yy" + case 532: // sub_option_def_list: "{" $@75 option_def_list "}" +#line 1907 "dhcp6_parser.yy" { // parsing completed } -#line 3079 "dhcp6_parser.cc" +#line 3098 "dhcp6_parser.cc" break; - case 534: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1908 "dhcp6_parser.yy" + case 537: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1919 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3087 "dhcp6_parser.cc" +#line 3106 "dhcp6_parser.cc" break; - case 535: // $@75: %empty -#line 1915 "dhcp6_parser.yy" + case 538: // $@76: %empty +#line 1926 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3097 "dhcp6_parser.cc" +#line 3116 "dhcp6_parser.cc" break; - case 536: // option_def_entry: "{" $@75 option_def_params "}" -#line 1919 "dhcp6_parser.yy" + case 539: // option_def_entry: "{" $@76 option_def_params "}" +#line 1930 "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)); @@ -3105,21 +3124,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3109 "dhcp6_parser.cc" +#line 3128 "dhcp6_parser.cc" break; - case 537: // $@76: %empty -#line 1930 "dhcp6_parser.yy" + case 540: // $@77: %empty +#line 1941 "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 3119 "dhcp6_parser.cc" +#line 3138 "dhcp6_parser.cc" break; - case 538: // sub_option_def: "{" $@76 option_def_params "}" -#line 1934 "dhcp6_parser.yy" + case 541: // sub_option_def: "{" $@77 option_def_params "}" +#line 1945 "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)); @@ -3127,115 +3146,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3131 "dhcp6_parser.cc" +#line 3150 "dhcp6_parser.cc" break; - case 543: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1950 "dhcp6_parser.yy" + case 546: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1961 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3139 "dhcp6_parser.cc" +#line 3158 "dhcp6_parser.cc" break; - case 555: // code: "code" ":" "integer" -#line 1969 "dhcp6_parser.yy" + case 558: // code: "code" ":" "integer" +#line 1980 "dhcp6_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3149 "dhcp6_parser.cc" +#line 3168 "dhcp6_parser.cc" break; - case 557: // $@77: %empty -#line 1977 "dhcp6_parser.yy" + case 560: // $@78: %empty +#line 1988 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3158 "dhcp6_parser.cc" +#line 3177 "dhcp6_parser.cc" break; - case 558: // option_def_type: "type" $@77 ":" "constant string" -#line 1980 "dhcp6_parser.yy" + case 561: // option_def_type: "type" $@78 ":" "constant string" +#line 1991 "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 3168 "dhcp6_parser.cc" +#line 3187 "dhcp6_parser.cc" break; - case 559: // $@78: %empty -#line 1986 "dhcp6_parser.yy" + case 562: // $@79: %empty +#line 1997 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3177 "dhcp6_parser.cc" +#line 3196 "dhcp6_parser.cc" break; - case 560: // option_def_record_types: "record-types" $@78 ":" "constant string" -#line 1989 "dhcp6_parser.yy" + case 563: // option_def_record_types: "record-types" $@79 ":" "constant string" +#line 2000 "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 3187 "dhcp6_parser.cc" +#line 3206 "dhcp6_parser.cc" break; - case 561: // $@79: %empty -#line 1995 "dhcp6_parser.yy" + case 564: // $@80: %empty +#line 2006 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3196 "dhcp6_parser.cc" +#line 3215 "dhcp6_parser.cc" break; - case 562: // space: "space" $@79 ":" "constant string" -#line 1998 "dhcp6_parser.yy" + case 565: // space: "space" $@80 ":" "constant string" +#line 2009 "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 3206 "dhcp6_parser.cc" +#line 3225 "dhcp6_parser.cc" break; - case 564: // $@80: %empty -#line 2006 "dhcp6_parser.yy" + case 567: // $@81: %empty +#line 2017 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3215 "dhcp6_parser.cc" +#line 3234 "dhcp6_parser.cc" break; - case 565: // option_def_encapsulate: "encapsulate" $@80 ":" "constant string" -#line 2009 "dhcp6_parser.yy" + case 568: // option_def_encapsulate: "encapsulate" $@81 ":" "constant string" +#line 2020 "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 3225 "dhcp6_parser.cc" +#line 3244 "dhcp6_parser.cc" break; - case 566: // option_def_array: "array" ":" "boolean" -#line 2015 "dhcp6_parser.yy" + case 569: // option_def_array: "array" ":" "boolean" +#line 2026 "dhcp6_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3235 "dhcp6_parser.cc" +#line 3254 "dhcp6_parser.cc" break; - case 567: // $@81: %empty -#line 2025 "dhcp6_parser.yy" + case 570: // $@82: %empty +#line 2036 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3243,123 +3262,123 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3247 "dhcp6_parser.cc" +#line 3266 "dhcp6_parser.cc" break; - case 568: // option_data_list: "option-data" $@81 ":" "[" option_data_list_content "]" -#line 2031 "dhcp6_parser.yy" + case 571: // option_data_list: "option-data" $@82 ":" "[" option_data_list_content "]" +#line 2042 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3256 "dhcp6_parser.cc" +#line 3275 "dhcp6_parser.cc" break; - case 573: // not_empty_option_data_list: not_empty_option_data_list "," -#line 2046 "dhcp6_parser.yy" + case 576: // not_empty_option_data_list: not_empty_option_data_list "," +#line 2057 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3264 "dhcp6_parser.cc" +#line 3283 "dhcp6_parser.cc" break; - case 574: // $@82: %empty -#line 2053 "dhcp6_parser.yy" + case 577: // $@83: %empty +#line 2064 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3274 "dhcp6_parser.cc" +#line 3293 "dhcp6_parser.cc" break; - case 575: // option_data_entry: "{" $@82 option_data_params "}" -#line 2057 "dhcp6_parser.yy" + case 578: // option_data_entry: "{" $@83 option_data_params "}" +#line 2068 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3283 "dhcp6_parser.cc" +#line 3302 "dhcp6_parser.cc" break; - case 576: // $@83: %empty -#line 2065 "dhcp6_parser.yy" + case 579: // $@84: %empty +#line 2076 "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 3293 "dhcp6_parser.cc" +#line 3312 "dhcp6_parser.cc" break; - case 577: // sub_option_data: "{" $@83 option_data_params "}" -#line 2069 "dhcp6_parser.yy" + case 580: // sub_option_data: "{" $@84 option_data_params "}" +#line 2080 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3302 "dhcp6_parser.cc" +#line 3321 "dhcp6_parser.cc" break; - case 582: // not_empty_option_data_params: not_empty_option_data_params "," -#line 2085 "dhcp6_parser.yy" + case 585: // not_empty_option_data_params: not_empty_option_data_params "," +#line 2096 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3310 "dhcp6_parser.cc" +#line 3329 "dhcp6_parser.cc" break; - case 595: // $@84: %empty -#line 2107 "dhcp6_parser.yy" + case 598: // $@85: %empty +#line 2118 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3319 "dhcp6_parser.cc" +#line 3338 "dhcp6_parser.cc" break; - case 596: // option_data_data: "data" $@84 ":" "constant string" -#line 2110 "dhcp6_parser.yy" + case 599: // option_data_data: "data" $@85 ":" "constant string" +#line 2121 "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 3329 "dhcp6_parser.cc" +#line 3348 "dhcp6_parser.cc" break; - case 599: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2120 "dhcp6_parser.yy" + case 602: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2131 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", csv); } -#line 3339 "dhcp6_parser.cc" +#line 3358 "dhcp6_parser.cc" break; - case 600: // option_data_always_send: "always-send" ":" "boolean" -#line 2126 "dhcp6_parser.yy" + case 603: // option_data_always_send: "always-send" ":" "boolean" +#line 2137 "dhcp6_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3349 "dhcp6_parser.cc" +#line 3368 "dhcp6_parser.cc" break; - case 601: // option_data_never_send: "never-send" ":" "boolean" -#line 2132 "dhcp6_parser.yy" + case 604: // option_data_never_send: "never-send" ":" "boolean" +#line 2143 "dhcp6_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("never-send", cancel); } -#line 3359 "dhcp6_parser.cc" +#line 3378 "dhcp6_parser.cc" break; - case 602: // $@85: %empty -#line 2138 "dhcp6_parser.yy" + case 605: // $@86: %empty +#line 2149 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3367,20 +3386,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3371 "dhcp6_parser.cc" +#line 3390 "dhcp6_parser.cc" break; - case 603: // option_data_client_classes: "client-classes" $@85 ":" list_strings -#line 2144 "dhcp6_parser.yy" + case 606: // option_data_client_classes: "client-classes" $@86 ":" list_strings +#line 2155 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3380 "dhcp6_parser.cc" +#line 3399 "dhcp6_parser.cc" break; - case 604: // $@86: %empty -#line 2152 "dhcp6_parser.yy" + case 607: // $@87: %empty +#line 2163 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3388,113 +3407,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3392 "dhcp6_parser.cc" +#line 3411 "dhcp6_parser.cc" break; - case 605: // pools_list: "pools" $@86 ":" "[" pools_list_content "]" -#line 2158 "dhcp6_parser.yy" + case 608: // pools_list: "pools" $@87 ":" "[" pools_list_content "]" +#line 2169 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3401 "dhcp6_parser.cc" +#line 3420 "dhcp6_parser.cc" break; - case 610: // not_empty_pools_list: not_empty_pools_list "," -#line 2171 "dhcp6_parser.yy" + case 613: // not_empty_pools_list: not_empty_pools_list "," +#line 2182 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3409 "dhcp6_parser.cc" +#line 3428 "dhcp6_parser.cc" break; - case 611: // $@87: %empty -#line 2176 "dhcp6_parser.yy" + case 614: // $@88: %empty +#line 2187 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3419 "dhcp6_parser.cc" +#line 3438 "dhcp6_parser.cc" break; - case 612: // pool_list_entry: "{" $@87 pool_params "}" -#line 2180 "dhcp6_parser.yy" + case 615: // pool_list_entry: "{" $@88 pool_params "}" +#line 2191 "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 3429 "dhcp6_parser.cc" +#line 3448 "dhcp6_parser.cc" break; - case 613: // $@88: %empty -#line 2186 "dhcp6_parser.yy" + case 616: // $@89: %empty +#line 2197 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3439 "dhcp6_parser.cc" +#line 3458 "dhcp6_parser.cc" break; - case 614: // sub_pool6: "{" $@88 pool_params "}" -#line 2190 "dhcp6_parser.yy" + case 617: // sub_pool6: "{" $@89 pool_params "}" +#line 2201 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3449 "dhcp6_parser.cc" +#line 3468 "dhcp6_parser.cc" break; - case 617: // pool_params: pool_params "," -#line 2198 "dhcp6_parser.yy" + case 620: // pool_params: pool_params "," +#line 2209 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3457 "dhcp6_parser.cc" +#line 3476 "dhcp6_parser.cc" break; - case 642: // $@89: %empty -#line 2229 "dhcp6_parser.yy" + case 645: // $@90: %empty +#line 2240 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3466 "dhcp6_parser.cc" +#line 3485 "dhcp6_parser.cc" break; - case 643: // pool_entry: "pool" $@89 ":" "constant string" -#line 2232 "dhcp6_parser.yy" + case 646: // pool_entry: "pool" $@90 ":" "constant string" +#line 2243 "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 3476 "dhcp6_parser.cc" +#line 3495 "dhcp6_parser.cc" break; - case 644: // pool_id: "pool-id" ":" "integer" -#line 2238 "dhcp6_parser.yy" + case 647: // pool_id: "pool-id" ":" "integer" +#line 2249 "dhcp6_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3486 "dhcp6_parser.cc" +#line 3505 "dhcp6_parser.cc" break; - case 645: // $@90: %empty -#line 2244 "dhcp6_parser.yy" + case 648: // $@91: %empty +#line 2255 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3494 "dhcp6_parser.cc" +#line 3513 "dhcp6_parser.cc" break; - case 646: // user_context: "user-context" $@90 ":" map_value -#line 2246 "dhcp6_parser.yy" + case 649: // user_context: "user-context" $@91 ":" map_value +#line 2257 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3517,19 +3536,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3521 "dhcp6_parser.cc" +#line 3540 "dhcp6_parser.cc" break; - case 647: // $@91: %empty -#line 2269 "dhcp6_parser.yy" + case 650: // $@92: %empty +#line 2280 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3529 "dhcp6_parser.cc" +#line 3548 "dhcp6_parser.cc" break; - case 648: // comment: "comment" $@91 ":" "constant string" -#line 2271 "dhcp6_parser.yy" + case 651: // comment: "comment" $@92 ":" "constant string" +#line 2282 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3554,11 +3573,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3558 "dhcp6_parser.cc" +#line 3577 "dhcp6_parser.cc" break; - case 649: // $@92: %empty -#line 2299 "dhcp6_parser.yy" + case 652: // $@93: %empty +#line 2310 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3566,38 +3585,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3570 "dhcp6_parser.cc" +#line 3589 "dhcp6_parser.cc" break; - case 650: // pd_pools_list: "pd-pools" $@92 ":" "[" pd_pools_list_content "]" -#line 2305 "dhcp6_parser.yy" + case 653: // pd_pools_list: "pd-pools" $@93 ":" "[" pd_pools_list_content "]" +#line 2316 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3579 "dhcp6_parser.cc" +#line 3598 "dhcp6_parser.cc" break; - case 655: // not_empty_pd_pools_list: not_empty_pd_pools_list "," -#line 2318 "dhcp6_parser.yy" + case 658: // not_empty_pd_pools_list: not_empty_pd_pools_list "," +#line 2329 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3587 "dhcp6_parser.cc" +#line 3606 "dhcp6_parser.cc" break; - case 656: // $@93: %empty -#line 2323 "dhcp6_parser.yy" + case 659: // $@94: %empty +#line 2334 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3597 "dhcp6_parser.cc" +#line 3616 "dhcp6_parser.cc" break; - case 657: // pd_pool_entry: "{" $@93 pd_pool_params "}" -#line 2327 "dhcp6_parser.yy" + case 660: // pd_pool_entry: "{" $@94 pd_pool_params "}" +#line 2338 "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)); @@ -3605,21 +3624,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3609 "dhcp6_parser.cc" +#line 3628 "dhcp6_parser.cc" break; - case 658: // $@94: %empty -#line 2335 "dhcp6_parser.yy" + case 661: // $@95: %empty +#line 2346 "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 3619 "dhcp6_parser.cc" +#line 3638 "dhcp6_parser.cc" break; - case 659: // sub_pd_pool: "{" $@94 pd_pool_params "}" -#line 2339 "dhcp6_parser.yy" + case 662: // sub_pd_pool: "{" $@95 pd_pool_params "}" +#line 2350 "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)); @@ -3627,87 +3646,87 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3631 "dhcp6_parser.cc" +#line 3650 "dhcp6_parser.cc" break; - case 662: // pd_pool_params: pd_pool_params "," -#line 2349 "dhcp6_parser.yy" + case 665: // pd_pool_params: pd_pool_params "," +#line 2360 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3639 "dhcp6_parser.cc" +#line 3658 "dhcp6_parser.cc" break; - case 677: // $@95: %empty -#line 2370 "dhcp6_parser.yy" + case 680: // $@96: %empty +#line 2381 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3648 "dhcp6_parser.cc" +#line 3667 "dhcp6_parser.cc" break; - case 678: // pd_prefix: "prefix" $@95 ":" "constant string" -#line 2373 "dhcp6_parser.yy" + case 681: // pd_prefix: "prefix" $@96 ":" "constant string" +#line 2384 "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 3658 "dhcp6_parser.cc" +#line 3677 "dhcp6_parser.cc" break; - case 679: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2379 "dhcp6_parser.yy" + case 682: // pd_prefix_len: "prefix-len" ":" "integer" +#line 2390 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3668 "dhcp6_parser.cc" +#line 3687 "dhcp6_parser.cc" break; - case 680: // $@96: %empty -#line 2385 "dhcp6_parser.yy" + case 683: // $@97: %empty +#line 2396 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3677 "dhcp6_parser.cc" +#line 3696 "dhcp6_parser.cc" break; - case 681: // excluded_prefix: "excluded-prefix" $@96 ":" "constant string" -#line 2388 "dhcp6_parser.yy" + case 684: // excluded_prefix: "excluded-prefix" $@97 ":" "constant string" +#line 2399 "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 3687 "dhcp6_parser.cc" +#line 3706 "dhcp6_parser.cc" break; - case 682: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2394 "dhcp6_parser.yy" + case 685: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" +#line 2405 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3697 "dhcp6_parser.cc" +#line 3716 "dhcp6_parser.cc" break; - case 683: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2400 "dhcp6_parser.yy" + case 686: // pd_delegated_len: "delegated-len" ":" "integer" +#line 2411 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3707 "dhcp6_parser.cc" +#line 3726 "dhcp6_parser.cc" break; - case 684: // $@97: %empty -#line 2409 "dhcp6_parser.yy" + case 687: // $@98: %empty +#line 2420 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3715,74 +3734,74 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3719 "dhcp6_parser.cc" +#line 3738 "dhcp6_parser.cc" break; - case 685: // reservations: "reservations" $@97 ":" "[" reservations_list "]" -#line 2415 "dhcp6_parser.yy" + case 688: // reservations: "reservations" $@98 ":" "[" reservations_list "]" +#line 2426 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3728 "dhcp6_parser.cc" +#line 3747 "dhcp6_parser.cc" break; - case 690: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2426 "dhcp6_parser.yy" + case 693: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2437 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3736 "dhcp6_parser.cc" +#line 3755 "dhcp6_parser.cc" break; - case 691: // $@98: %empty -#line 2431 "dhcp6_parser.yy" + case 694: // $@99: %empty +#line 2442 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3746 "dhcp6_parser.cc" +#line 3765 "dhcp6_parser.cc" break; - case 692: // reservation: "{" $@98 reservation_params "}" -#line 2435 "dhcp6_parser.yy" + case 695: // reservation: "{" $@99 reservation_params "}" +#line 2446 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3755 "dhcp6_parser.cc" +#line 3774 "dhcp6_parser.cc" break; - case 693: // $@99: %empty -#line 2440 "dhcp6_parser.yy" + case 696: // $@100: %empty +#line 2451 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3765 "dhcp6_parser.cc" +#line 3784 "dhcp6_parser.cc" break; - case 694: // sub_reservation: "{" $@99 reservation_params "}" -#line 2444 "dhcp6_parser.yy" + case 697: // sub_reservation: "{" $@100 reservation_params "}" +#line 2455 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3774 "dhcp6_parser.cc" +#line 3793 "dhcp6_parser.cc" break; - case 699: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2455 "dhcp6_parser.yy" + case 702: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2466 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3782 "dhcp6_parser.cc" +#line 3801 "dhcp6_parser.cc" break; - case 712: // $@100: %empty -#line 2475 "dhcp6_parser.yy" + case 715: // $@101: %empty +#line 2486 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3790,20 +3809,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3794 "dhcp6_parser.cc" +#line 3813 "dhcp6_parser.cc" break; - case 713: // ip_addresses: "ip-addresses" $@100 ":" list_strings -#line 2481 "dhcp6_parser.yy" + case 716: // ip_addresses: "ip-addresses" $@101 ":" list_strings +#line 2492 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3803 "dhcp6_parser.cc" +#line 3822 "dhcp6_parser.cc" break; - case 714: // $@101: %empty -#line 2486 "dhcp6_parser.yy" + case 717: // $@102: %empty +#line 2497 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3811,20 +3830,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3815 "dhcp6_parser.cc" +#line 3834 "dhcp6_parser.cc" break; - case 715: // prefixes: "prefixes" $@101 ":" list_strings -#line 2492 "dhcp6_parser.yy" + case 718: // prefixes: "prefixes" $@102 ":" list_strings +#line 2503 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3824 "dhcp6_parser.cc" +#line 3843 "dhcp6_parser.cc" break; - case 716: // $@102: %empty -#line 2497 "dhcp6_parser.yy" + case 719: // $@103: %empty +#line 2508 "dhcp6_parser.yy" { ctx.unique("excluded-prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3832,96 +3851,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3836 "dhcp6_parser.cc" +#line 3855 "dhcp6_parser.cc" break; - case 717: // excluded_prefixes: "excluded-prefixes" $@102 ":" list_strings -#line 2503 "dhcp6_parser.yy" + case 720: // excluded_prefixes: "excluded-prefixes" $@103 ":" list_strings +#line 2514 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3845 "dhcp6_parser.cc" +#line 3864 "dhcp6_parser.cc" break; - case 718: // $@103: %empty -#line 2508 "dhcp6_parser.yy" + case 721: // $@104: %empty +#line 2519 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3854 "dhcp6_parser.cc" +#line 3873 "dhcp6_parser.cc" break; - case 719: // duid: "duid" $@103 ":" "constant string" -#line 2511 "dhcp6_parser.yy" + case 722: // duid: "duid" $@104 ":" "constant string" +#line 2522 "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 3864 "dhcp6_parser.cc" +#line 3883 "dhcp6_parser.cc" break; - case 720: // $@104: %empty -#line 2517 "dhcp6_parser.yy" + case 723: // $@105: %empty +#line 2528 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3873 "dhcp6_parser.cc" +#line 3892 "dhcp6_parser.cc" break; - case 721: // hw_address: "hw-address" $@104 ":" "constant string" -#line 2520 "dhcp6_parser.yy" + case 724: // hw_address: "hw-address" $@105 ":" "constant string" +#line 2531 "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 3883 "dhcp6_parser.cc" +#line 3902 "dhcp6_parser.cc" break; - case 722: // $@105: %empty -#line 2526 "dhcp6_parser.yy" + case 725: // $@106: %empty +#line 2537 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3892 "dhcp6_parser.cc" +#line 3911 "dhcp6_parser.cc" break; - case 723: // hostname: "hostname" $@105 ":" "constant string" -#line 2529 "dhcp6_parser.yy" + case 726: // hostname: "hostname" $@106 ":" "constant string" +#line 2540 "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 3902 "dhcp6_parser.cc" +#line 3921 "dhcp6_parser.cc" break; - case 724: // $@106: %empty -#line 2535 "dhcp6_parser.yy" + case 727: // $@107: %empty +#line 2546 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3911 "dhcp6_parser.cc" +#line 3930 "dhcp6_parser.cc" break; - case 725: // flex_id_value: "flex-id" $@106 ":" "constant string" -#line 2538 "dhcp6_parser.yy" + case 728: // flex_id_value: "flex-id" $@107 ":" "constant string" +#line 2549 "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 3921 "dhcp6_parser.cc" +#line 3940 "dhcp6_parser.cc" break; - case 726: // $@107: %empty -#line 2544 "dhcp6_parser.yy" + case 729: // $@108: %empty +#line 2555 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3929,20 +3948,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3933 "dhcp6_parser.cc" +#line 3952 "dhcp6_parser.cc" break; - case 727: // reservation_client_classes: "client-classes" $@107 ":" list_strings -#line 2550 "dhcp6_parser.yy" + case 730: // reservation_client_classes: "client-classes" $@108 ":" list_strings +#line 2561 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3942 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" break; - case 728: // $@108: %empty -#line 2558 "dhcp6_parser.yy" + case 731: // $@109: %empty +#line 2569 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3950,20 +3969,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3954 "dhcp6_parser.cc" +#line 3973 "dhcp6_parser.cc" break; - case 729: // relay: "relay" $@108 ":" "{" relay_map "}" -#line 2564 "dhcp6_parser.yy" + case 732: // relay: "relay" $@109 ":" "{" relay_map "}" +#line 2575 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3963 "dhcp6_parser.cc" +#line 3982 "dhcp6_parser.cc" break; - case 731: // $@109: %empty -#line 2575 "dhcp6_parser.yy" + case 734: // $@110: %empty +#line 2586 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3971,114 +3990,114 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3975 "dhcp6_parser.cc" +#line 3994 "dhcp6_parser.cc" break; - case 732: // client_classes: "client-classes" $@109 ":" "[" client_classes_list "]" -#line 2581 "dhcp6_parser.yy" + case 735: // client_classes: "client-classes" $@110 ":" "[" client_classes_list "]" +#line 2592 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3984 "dhcp6_parser.cc" +#line 4003 "dhcp6_parser.cc" break; - case 735: // client_classes_list: client_classes_list "," -#line 2588 "dhcp6_parser.yy" + case 738: // client_classes_list: client_classes_list "," +#line 2599 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3992 "dhcp6_parser.cc" +#line 4011 "dhcp6_parser.cc" break; - case 736: // $@110: %empty -#line 2593 "dhcp6_parser.yy" + case 739: // $@111: %empty +#line 2604 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4002 "dhcp6_parser.cc" +#line 4021 "dhcp6_parser.cc" break; - case 737: // client_class_entry: "{" $@110 client_class_params "}" -#line 2597 "dhcp6_parser.yy" + case 740: // client_class_entry: "{" $@111 client_class_params "}" +#line 2608 "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 4012 "dhcp6_parser.cc" +#line 4031 "dhcp6_parser.cc" break; - case 742: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2609 "dhcp6_parser.yy" + case 745: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2620 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4020 "dhcp6_parser.cc" +#line 4039 "dhcp6_parser.cc" break; - case 759: // $@111: %empty -#line 2633 "dhcp6_parser.yy" + case 762: // $@112: %empty +#line 2644 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4029 "dhcp6_parser.cc" +#line 4048 "dhcp6_parser.cc" break; - case 760: // client_class_test: "test" $@111 ":" "constant string" -#line 2636 "dhcp6_parser.yy" + case 763: // client_class_test: "test" $@112 ":" "constant string" +#line 2647 "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 4039 "dhcp6_parser.cc" +#line 4058 "dhcp6_parser.cc" break; - case 761: // $@112: %empty -#line 2642 "dhcp6_parser.yy" + case 764: // $@113: %empty +#line 2653 "dhcp6_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4048 "dhcp6_parser.cc" +#line 4067 "dhcp6_parser.cc" break; - case 762: // client_class_template_test: "template-test" $@112 ":" "constant string" -#line 2645 "dhcp6_parser.yy" + case 765: // client_class_template_test: "template-test" $@113 ":" "constant string" +#line 2656 "dhcp6_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 4058 "dhcp6_parser.cc" +#line 4077 "dhcp6_parser.cc" break; - case 763: // only_if_required: "only-if-required" ":" "boolean" -#line 2652 "dhcp6_parser.yy" + case 766: // only_if_required: "only-if-required" ":" "boolean" +#line 2663 "dhcp6_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 4068 "dhcp6_parser.cc" +#line 4087 "dhcp6_parser.cc" break; - case 764: // only_in_additional_list: "only-in-additional-list" ":" "boolean" -#line 2658 "dhcp6_parser.yy" + case 767: // only_in_additional_list: "only-in-additional-list" ":" "boolean" +#line 2669 "dhcp6_parser.yy" { ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-in-additional-list", b); } -#line 4078 "dhcp6_parser.cc" +#line 4097 "dhcp6_parser.cc" break; - case 765: // $@113: %empty -#line 2667 "dhcp6_parser.yy" + case 768: // $@114: %empty +#line 2678 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4086,125 +4105,125 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 4090 "dhcp6_parser.cc" +#line 4109 "dhcp6_parser.cc" break; - case 766: // server_id: "server-id" $@113 ":" "{" server_id_params "}" -#line 2673 "dhcp6_parser.yy" + case 769: // server_id: "server-id" $@114 ":" "{" server_id_params "}" +#line 2684 "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 4101 "dhcp6_parser.cc" +#line 4120 "dhcp6_parser.cc" break; - case 769: // server_id_params: server_id_params "," -#line 2682 "dhcp6_parser.yy" + case 772: // server_id_params: server_id_params "," +#line 2693 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4109 "dhcp6_parser.cc" +#line 4128 "dhcp6_parser.cc" break; - case 779: // $@114: %empty -#line 2698 "dhcp6_parser.yy" + case 782: // $@115: %empty +#line 2709 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 4118 "dhcp6_parser.cc" +#line 4137 "dhcp6_parser.cc" break; - case 780: // server_id_type: "type" $@114 ":" duid_type -#line 2701 "dhcp6_parser.yy" + case 783: // server_id_type: "type" $@115 ":" duid_type +#line 2712 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4127 "dhcp6_parser.cc" +#line 4146 "dhcp6_parser.cc" break; - case 781: // duid_type: "LLT" -#line 2706 "dhcp6_parser.yy" + case 784: // duid_type: "LLT" +#line 2717 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 4133 "dhcp6_parser.cc" +#line 4152 "dhcp6_parser.cc" break; - case 782: // duid_type: "EN" -#line 2707 "dhcp6_parser.yy" + case 785: // duid_type: "EN" +#line 2718 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 4139 "dhcp6_parser.cc" +#line 4158 "dhcp6_parser.cc" break; - case 783: // duid_type: "LL" -#line 2708 "dhcp6_parser.yy" + case 786: // duid_type: "LL" +#line 2719 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 4145 "dhcp6_parser.cc" +#line 4164 "dhcp6_parser.cc" break; - case 784: // htype: "htype" ":" "integer" -#line 2711 "dhcp6_parser.yy" + case 787: // htype: "htype" ":" "integer" +#line 2722 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 4155 "dhcp6_parser.cc" +#line 4174 "dhcp6_parser.cc" break; - case 785: // $@115: %empty -#line 2717 "dhcp6_parser.yy" + case 788: // $@116: %empty +#line 2728 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4164 "dhcp6_parser.cc" +#line 4183 "dhcp6_parser.cc" break; - case 786: // identifier: "identifier" $@115 ":" "constant string" -#line 2720 "dhcp6_parser.yy" + case 789: // identifier: "identifier" $@116 ":" "constant string" +#line 2731 "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 4174 "dhcp6_parser.cc" +#line 4193 "dhcp6_parser.cc" break; - case 787: // time: "time" ":" "integer" -#line 2726 "dhcp6_parser.yy" + case 790: // time: "time" ":" "integer" +#line 2737 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 4184 "dhcp6_parser.cc" +#line 4203 "dhcp6_parser.cc" break; - case 788: // enterprise_id: "enterprise-id" ":" "integer" -#line 2732 "dhcp6_parser.yy" + case 791: // enterprise_id: "enterprise-id" ":" "integer" +#line 2743 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 4194 "dhcp6_parser.cc" +#line 4213 "dhcp6_parser.cc" break; - case 789: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2740 "dhcp6_parser.yy" + case 792: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2751 "dhcp6_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4204 "dhcp6_parser.cc" +#line 4223 "dhcp6_parser.cc" break; - case 790: // $@116: %empty -#line 2748 "dhcp6_parser.yy" + case 793: // $@117: %empty +#line 2759 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -4213,20 +4232,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4217 "dhcp6_parser.cc" +#line 4236 "dhcp6_parser.cc" break; - case 791: // control_socket: "control-socket" $@116 ":" "{" control_socket_params "}" -#line 2755 "dhcp6_parser.yy" + case 794: // control_socket: "control-socket" $@117 ":" "{" control_socket_params "}" +#line 2766 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4226 "dhcp6_parser.cc" +#line 4245 "dhcp6_parser.cc" break; - case 792: // $@117: %empty -#line 2760 "dhcp6_parser.yy" + case 795: // $@118: %empty +#line 2771 "dhcp6_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -4235,150 +4254,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4239 "dhcp6_parser.cc" +#line 4258 "dhcp6_parser.cc" break; - case 793: // control_sockets: "control-sockets" $@117 ":" "[" control_socket_list "]" -#line 2767 "dhcp6_parser.yy" + case 796: // control_sockets: "control-sockets" $@118 ":" "[" control_socket_list "]" +#line 2778 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4248 "dhcp6_parser.cc" +#line 4267 "dhcp6_parser.cc" break; - case 798: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2778 "dhcp6_parser.yy" + case 801: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2789 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4256 "dhcp6_parser.cc" +#line 4275 "dhcp6_parser.cc" break; - case 799: // $@118: %empty -#line 2783 "dhcp6_parser.yy" + case 802: // $@119: %empty +#line 2794 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4266 "dhcp6_parser.cc" +#line 4285 "dhcp6_parser.cc" break; - case 800: // control_socket_entry: "{" $@118 control_socket_params "}" -#line 2787 "dhcp6_parser.yy" + case 803: // control_socket_entry: "{" $@119 control_socket_params "}" +#line 2798 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4274 "dhcp6_parser.cc" +#line 4293 "dhcp6_parser.cc" break; - case 803: // control_socket_params: control_socket_params "," -#line 2793 "dhcp6_parser.yy" + case 806: // control_socket_params: control_socket_params "," +#line 2804 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4282 "dhcp6_parser.cc" +#line 4301 "dhcp6_parser.cc" break; - case 817: // $@119: %empty -#line 2813 "dhcp6_parser.yy" + case 820: // $@120: %empty +#line 2824 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4291 "dhcp6_parser.cc" +#line 4310 "dhcp6_parser.cc" break; - case 818: // control_socket_type: "socket-type" $@119 ":" control_socket_type_value -#line 2816 "dhcp6_parser.yy" + case 821: // control_socket_type: "socket-type" $@120 ":" control_socket_type_value +#line 2827 "dhcp6_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4300 "dhcp6_parser.cc" +#line 4319 "dhcp6_parser.cc" break; - case 819: // control_socket_type_value: "unix" -#line 2822 "dhcp6_parser.yy" + case 822: // control_socket_type_value: "unix" +#line 2833 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4306 "dhcp6_parser.cc" +#line 4325 "dhcp6_parser.cc" break; - case 820: // control_socket_type_value: "http" -#line 2823 "dhcp6_parser.yy" + case 823: // control_socket_type_value: "http" +#line 2834 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4312 "dhcp6_parser.cc" +#line 4331 "dhcp6_parser.cc" break; - case 821: // control_socket_type_value: "https" -#line 2824 "dhcp6_parser.yy" + case 824: // control_socket_type_value: "https" +#line 2835 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4318 "dhcp6_parser.cc" +#line 4337 "dhcp6_parser.cc" break; - case 822: // $@120: %empty -#line 2827 "dhcp6_parser.yy" + case 825: // $@121: %empty +#line 2838 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4328 "dhcp6_parser.cc" +#line 4347 "dhcp6_parser.cc" break; - case 823: // control_socket_name: "socket-name" $@120 ":" "constant string" -#line 2831 "dhcp6_parser.yy" + case 826: // control_socket_name: "socket-name" $@121 ":" "constant string" +#line 2842 "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 4338 "dhcp6_parser.cc" +#line 4357 "dhcp6_parser.cc" break; - case 824: // $@121: %empty -#line 2837 "dhcp6_parser.yy" + case 827: // $@122: %empty +#line 2848 "dhcp6_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4348 "dhcp6_parser.cc" +#line 4367 "dhcp6_parser.cc" break; - case 825: // control_socket_address: "socket-address" $@121 ":" "constant string" -#line 2841 "dhcp6_parser.yy" + case 828: // control_socket_address: "socket-address" $@122 ":" "constant string" +#line 2852 "dhcp6_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4358 "dhcp6_parser.cc" +#line 4377 "dhcp6_parser.cc" break; - case 826: // control_socket_port: "socket-port" ":" "integer" -#line 2847 "dhcp6_parser.yy" + case 829: // control_socket_port: "socket-port" ":" "integer" +#line 2858 "dhcp6_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4368 "dhcp6_parser.cc" +#line 4387 "dhcp6_parser.cc" break; - case 827: // cert_required: "cert-required" ":" "boolean" -#line 2853 "dhcp6_parser.yy" + case 830: // cert_required: "cert-required" ":" "boolean" +#line 2864 "dhcp6_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4378 "dhcp6_parser.cc" +#line 4397 "dhcp6_parser.cc" break; - case 828: // $@122: %empty -#line 2859 "dhcp6_parser.yy" + case 831: // $@123: %empty +#line 2870 "dhcp6_parser.yy" { ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4386,73 +4405,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HTTP_HEADERS); } -#line 4390 "dhcp6_parser.cc" +#line 4409 "dhcp6_parser.cc" break; - case 829: // http_headers: "http-headers" $@122 ":" "[" http_header_list "]" -#line 2865 "dhcp6_parser.yy" + case 832: // http_headers: "http-headers" $@123 ":" "[" http_header_list "]" +#line 2876 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4399 "dhcp6_parser.cc" +#line 4418 "dhcp6_parser.cc" break; - case 834: // not_empty_http_header_list: not_empty_http_header_list "," -#line 2876 "dhcp6_parser.yy" + case 837: // not_empty_http_header_list: not_empty_http_header_list "," +#line 2887 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4407 "dhcp6_parser.cc" +#line 4426 "dhcp6_parser.cc" break; - case 835: // $@123: %empty -#line 2881 "dhcp6_parser.yy" + case 838: // $@124: %empty +#line 2892 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4417 "dhcp6_parser.cc" +#line 4436 "dhcp6_parser.cc" break; - case 836: // http_header: "{" $@123 http_header_params "}" -#line 2885 "dhcp6_parser.yy" + case 839: // http_header: "{" $@124 http_header_params "}" +#line 2896 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4425 "dhcp6_parser.cc" +#line 4444 "dhcp6_parser.cc" break; - case 839: // http_header_params: http_header_params "," -#line 2891 "dhcp6_parser.yy" + case 842: // http_header_params: http_header_params "," +#line 2902 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4433 "dhcp6_parser.cc" +#line 4452 "dhcp6_parser.cc" break; - case 845: // $@124: %empty -#line 2903 "dhcp6_parser.yy" + case 848: // $@125: %empty +#line 2914 "dhcp6_parser.yy" { ctx.unique("value", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4442 "dhcp6_parser.cc" +#line 4461 "dhcp6_parser.cc" break; - case 846: // header_value: "value" $@124 ":" "constant string" -#line 2906 "dhcp6_parser.yy" + case 849: // header_value: "value" $@125 ":" "constant string" +#line 2917 "dhcp6_parser.yy" { ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("value", value); ctx.leave(); } -#line 4452 "dhcp6_parser.cc" +#line 4471 "dhcp6_parser.cc" break; - case 847: // $@125: %empty -#line 2914 "dhcp6_parser.yy" + case 850: // $@126: %empty +#line 2925 "dhcp6_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4460,92 +4479,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4464 "dhcp6_parser.cc" +#line 4483 "dhcp6_parser.cc" break; - case 848: // authentication: "authentication" $@125 ":" "{" auth_params "}" -#line 2920 "dhcp6_parser.yy" + case 851: // authentication: "authentication" $@126 ":" "{" auth_params "}" +#line 2931 "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 4475 "dhcp6_parser.cc" +#line 4494 "dhcp6_parser.cc" break; - case 851: // auth_params: auth_params "," -#line 2929 "dhcp6_parser.yy" + case 854: // auth_params: auth_params "," +#line 2940 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4483 "dhcp6_parser.cc" +#line 4502 "dhcp6_parser.cc" break; - case 859: // $@126: %empty -#line 2943 "dhcp6_parser.yy" + case 862: // $@127: %empty +#line 2954 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4492 "dhcp6_parser.cc" +#line 4511 "dhcp6_parser.cc" break; - case 860: // auth_type: "type" $@126 ":" auth_type_value -#line 2946 "dhcp6_parser.yy" + case 863: // auth_type: "type" $@127 ":" auth_type_value +#line 2957 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4501 "dhcp6_parser.cc" +#line 4520 "dhcp6_parser.cc" break; - case 861: // auth_type_value: "basic" -#line 2951 "dhcp6_parser.yy" + case 864: // auth_type_value: "basic" +#line 2962 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4507 "dhcp6_parser.cc" +#line 4526 "dhcp6_parser.cc" break; - case 862: // $@127: %empty -#line 2954 "dhcp6_parser.yy" + case 865: // $@128: %empty +#line 2965 "dhcp6_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4516 "dhcp6_parser.cc" +#line 4535 "dhcp6_parser.cc" break; - case 863: // realm: "realm" $@127 ":" "constant string" -#line 2957 "dhcp6_parser.yy" + case 866: // realm: "realm" $@128 ":" "constant string" +#line 2968 "dhcp6_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4526 "dhcp6_parser.cc" +#line 4545 "dhcp6_parser.cc" break; - case 864: // $@128: %empty -#line 2963 "dhcp6_parser.yy" + case 867: // $@129: %empty +#line 2974 "dhcp6_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4535 "dhcp6_parser.cc" +#line 4554 "dhcp6_parser.cc" break; - case 865: // directory: "directory" $@128 ":" "constant string" -#line 2966 "dhcp6_parser.yy" + case 868: // directory: "directory" $@129 ":" "constant string" +#line 2977 "dhcp6_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4545 "dhcp6_parser.cc" +#line 4564 "dhcp6_parser.cc" break; - case 866: // $@129: %empty -#line 2972 "dhcp6_parser.yy" + case 869: // $@130: %empty +#line 2983 "dhcp6_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4553,92 +4572,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4557 "dhcp6_parser.cc" +#line 4576 "dhcp6_parser.cc" break; - case 867: // clients: "clients" $@129 ":" "[" clients_list "]" -#line 2978 "dhcp6_parser.yy" + case 870: // clients: "clients" $@130 ":" "[" clients_list "]" +#line 2989 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4566 "dhcp6_parser.cc" +#line 4585 "dhcp6_parser.cc" break; - case 872: // not_empty_clients_list: not_empty_clients_list "," -#line 2989 "dhcp6_parser.yy" + case 875: // not_empty_clients_list: not_empty_clients_list "," +#line 3000 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4574 "dhcp6_parser.cc" +#line 4593 "dhcp6_parser.cc" break; - case 873: // $@130: %empty -#line 2994 "dhcp6_parser.yy" + case 876: // $@131: %empty +#line 3005 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4584 "dhcp6_parser.cc" +#line 4603 "dhcp6_parser.cc" break; - case 874: // basic_auth: "{" $@130 clients_params "}" -#line 2998 "dhcp6_parser.yy" + case 877: // basic_auth: "{" $@131 clients_params "}" +#line 3009 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4592 "dhcp6_parser.cc" +#line 4611 "dhcp6_parser.cc" break; - case 877: // clients_params: clients_params "," -#line 3004 "dhcp6_parser.yy" + case 880: // clients_params: clients_params "," +#line 3015 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4600 "dhcp6_parser.cc" +#line 4619 "dhcp6_parser.cc" break; - case 885: // $@131: %empty -#line 3018 "dhcp6_parser.yy" + case 888: // $@132: %empty +#line 3029 "dhcp6_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4609 "dhcp6_parser.cc" +#line 4628 "dhcp6_parser.cc" break; - case 886: // user_file: "user-file" $@131 ":" "constant string" -#line 3021 "dhcp6_parser.yy" + case 889: // user_file: "user-file" $@132 ":" "constant string" +#line 3032 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4619 "dhcp6_parser.cc" +#line 4638 "dhcp6_parser.cc" break; - case 887: // $@132: %empty -#line 3027 "dhcp6_parser.yy" + case 890: // $@133: %empty +#line 3038 "dhcp6_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4628 "dhcp6_parser.cc" +#line 4647 "dhcp6_parser.cc" break; - case 888: // password_file: "password-file" $@132 ":" "constant string" -#line 3030 "dhcp6_parser.yy" + case 891: // password_file: "password-file" $@133 ":" "constant string" +#line 3041 "dhcp6_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4638 "dhcp6_parser.cc" +#line 4657 "dhcp6_parser.cc" break; - case 889: // $@133: %empty -#line 3038 "dhcp6_parser.yy" + case 892: // $@134: %empty +#line 3049 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4646,87 +4665,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4650 "dhcp6_parser.cc" +#line 4669 "dhcp6_parser.cc" break; - case 890: // dhcp_queue_control: "dhcp-queue-control" $@133 ":" "{" queue_control_params "}" -#line 3044 "dhcp6_parser.yy" + case 893: // dhcp_queue_control: "dhcp-queue-control" $@134 ":" "{" queue_control_params "}" +#line 3055 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4661 "dhcp6_parser.cc" +#line 4680 "dhcp6_parser.cc" break; - case 893: // queue_control_params: queue_control_params "," -#line 3053 "dhcp6_parser.yy" + case 896: // queue_control_params: queue_control_params "," +#line 3064 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4669 "dhcp6_parser.cc" +#line 4688 "dhcp6_parser.cc" break; - case 900: // enable_queue: "enable-queue" ":" "boolean" -#line 3066 "dhcp6_parser.yy" + case 903: // enable_queue: "enable-queue" ":" "boolean" +#line 3077 "dhcp6_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4679 "dhcp6_parser.cc" +#line 4698 "dhcp6_parser.cc" break; - case 901: // $@134: %empty -#line 3072 "dhcp6_parser.yy" + case 904: // $@135: %empty +#line 3083 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4688 "dhcp6_parser.cc" +#line 4707 "dhcp6_parser.cc" break; - case 902: // queue_type: "queue-type" $@134 ":" "constant string" -#line 3075 "dhcp6_parser.yy" + case 905: // queue_type: "queue-type" $@135 ":" "constant string" +#line 3086 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4698 "dhcp6_parser.cc" +#line 4717 "dhcp6_parser.cc" break; - case 903: // capacity: "capacity" ":" "integer" -#line 3081 "dhcp6_parser.yy" + case 906: // capacity: "capacity" ":" "integer" +#line 3092 "dhcp6_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4708 "dhcp6_parser.cc" +#line 4727 "dhcp6_parser.cc" break; - case 904: // $@135: %empty -#line 3087 "dhcp6_parser.yy" + case 907: // $@136: %empty +#line 3098 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4717 "dhcp6_parser.cc" +#line 4736 "dhcp6_parser.cc" break; - case 905: // arbitrary_map_entry: "constant string" $@135 ":" value -#line 3090 "dhcp6_parser.yy" + case 908: // arbitrary_map_entry: "constant string" $@136 ":" value +#line 3101 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4726 "dhcp6_parser.cc" +#line 4745 "dhcp6_parser.cc" break; - case 906: // $@136: %empty -#line 3097 "dhcp6_parser.yy" + case 909: // $@137: %empty +#line 3108 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4734,177 +4753,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4738 "dhcp6_parser.cc" +#line 4757 "dhcp6_parser.cc" break; - case 907: // dhcp_ddns: "dhcp-ddns" $@136 ":" "{" dhcp_ddns_params "}" -#line 3103 "dhcp6_parser.yy" + case 910: // dhcp_ddns: "dhcp-ddns" $@137 ":" "{" dhcp_ddns_params "}" +#line 3114 "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 4749 "dhcp6_parser.cc" +#line 4768 "dhcp6_parser.cc" break; - case 908: // $@137: %empty -#line 3110 "dhcp6_parser.yy" + case 911: // $@138: %empty +#line 3121 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4759 "dhcp6_parser.cc" +#line 4778 "dhcp6_parser.cc" break; - case 909: // sub_dhcp_ddns: "{" $@137 dhcp_ddns_params "}" -#line 3114 "dhcp6_parser.yy" + case 912: // sub_dhcp_ddns: "{" $@138 dhcp_ddns_params "}" +#line 3125 "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 4769 "dhcp6_parser.cc" +#line 4788 "dhcp6_parser.cc" break; - case 912: // dhcp_ddns_params: dhcp_ddns_params "," -#line 3122 "dhcp6_parser.yy" + case 915: // dhcp_ddns_params: dhcp_ddns_params "," +#line 3133 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4777 "dhcp6_parser.cc" +#line 4796 "dhcp6_parser.cc" break; - case 924: // enable_updates: "enable-updates" ":" "boolean" -#line 3140 "dhcp6_parser.yy" + case 927: // enable_updates: "enable-updates" ":" "boolean" +#line 3151 "dhcp6_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4787 "dhcp6_parser.cc" +#line 4806 "dhcp6_parser.cc" break; - case 925: // $@138: %empty -#line 3146 "dhcp6_parser.yy" + case 928: // $@139: %empty +#line 3157 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4796 "dhcp6_parser.cc" +#line 4815 "dhcp6_parser.cc" break; - case 926: // server_ip: "server-ip" $@138 ":" "constant string" -#line 3149 "dhcp6_parser.yy" + case 929: // server_ip: "server-ip" $@139 ":" "constant string" +#line 3160 "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 4806 "dhcp6_parser.cc" +#line 4825 "dhcp6_parser.cc" break; - case 927: // server_port: "server-port" ":" "integer" -#line 3155 "dhcp6_parser.yy" + case 930: // server_port: "server-port" ":" "integer" +#line 3166 "dhcp6_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4816 "dhcp6_parser.cc" +#line 4835 "dhcp6_parser.cc" break; - case 928: // $@139: %empty -#line 3161 "dhcp6_parser.yy" + case 931: // $@140: %empty +#line 3172 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4825 "dhcp6_parser.cc" +#line 4844 "dhcp6_parser.cc" break; - case 929: // sender_ip: "sender-ip" $@139 ":" "constant string" -#line 3164 "dhcp6_parser.yy" + case 932: // sender_ip: "sender-ip" $@140 ":" "constant string" +#line 3175 "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 4835 "dhcp6_parser.cc" +#line 4854 "dhcp6_parser.cc" break; - case 930: // sender_port: "sender-port" ":" "integer" -#line 3170 "dhcp6_parser.yy" + case 933: // sender_port: "sender-port" ":" "integer" +#line 3181 "dhcp6_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4845 "dhcp6_parser.cc" +#line 4864 "dhcp6_parser.cc" break; - case 931: // max_queue_size: "max-queue-size" ":" "integer" -#line 3176 "dhcp6_parser.yy" + case 934: // max_queue_size: "max-queue-size" ":" "integer" +#line 3187 "dhcp6_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4855 "dhcp6_parser.cc" +#line 4874 "dhcp6_parser.cc" break; - case 932: // $@140: %empty -#line 3182 "dhcp6_parser.yy" + case 935: // $@141: %empty +#line 3193 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4864 "dhcp6_parser.cc" +#line 4883 "dhcp6_parser.cc" break; - case 933: // ncr_protocol: "ncr-protocol" $@140 ":" ncr_protocol_value -#line 3185 "dhcp6_parser.yy" + case 936: // ncr_protocol: "ncr-protocol" $@141 ":" ncr_protocol_value +#line 3196 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4873 "dhcp6_parser.cc" +#line 4892 "dhcp6_parser.cc" break; - case 934: // ncr_protocol_value: "UDP" -#line 3191 "dhcp6_parser.yy" + case 937: // ncr_protocol_value: "UDP" +#line 3202 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4879 "dhcp6_parser.cc" +#line 4898 "dhcp6_parser.cc" break; - case 935: // ncr_protocol_value: "TCP" -#line 3192 "dhcp6_parser.yy" + case 938: // ncr_protocol_value: "TCP" +#line 3203 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4885 "dhcp6_parser.cc" +#line 4904 "dhcp6_parser.cc" break; - case 936: // $@141: %empty -#line 3195 "dhcp6_parser.yy" + case 939: // $@142: %empty +#line 3206 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4894 "dhcp6_parser.cc" +#line 4913 "dhcp6_parser.cc" break; - case 937: // ncr_format: "ncr-format" $@141 ":" "JSON" -#line 3198 "dhcp6_parser.yy" + case 940: // ncr_format: "ncr-format" $@142 ":" "JSON" +#line 3209 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4904 "dhcp6_parser.cc" +#line 4923 "dhcp6_parser.cc" break; - case 938: // $@142: %empty -#line 3206 "dhcp6_parser.yy" + case 941: // $@143: %empty +#line 3217 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4912,48 +4931,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4916 "dhcp6_parser.cc" +#line 4935 "dhcp6_parser.cc" break; - case 939: // config_control: "config-control" $@142 ":" "{" config_control_params "}" -#line 3212 "dhcp6_parser.yy" + case 942: // config_control: "config-control" $@143 ":" "{" config_control_params "}" +#line 3223 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4926 "dhcp6_parser.cc" +#line 4945 "dhcp6_parser.cc" break; - case 940: // $@143: %empty -#line 3218 "dhcp6_parser.yy" + case 943: // $@144: %empty +#line 3229 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4936 "dhcp6_parser.cc" +#line 4955 "dhcp6_parser.cc" break; - case 941: // sub_config_control: "{" $@143 config_control_params "}" -#line 3222 "dhcp6_parser.yy" + case 944: // sub_config_control: "{" $@144 config_control_params "}" +#line 3233 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4945 "dhcp6_parser.cc" +#line 4964 "dhcp6_parser.cc" break; - case 944: // config_control_params: config_control_params "," -#line 3230 "dhcp6_parser.yy" + case 947: // config_control_params: config_control_params "," +#line 3241 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4953 "dhcp6_parser.cc" +#line 4972 "dhcp6_parser.cc" break; - case 947: // $@144: %empty -#line 3240 "dhcp6_parser.yy" + case 950: // $@145: %empty +#line 3251 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4961,30 +4980,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4965 "dhcp6_parser.cc" +#line 4984 "dhcp6_parser.cc" break; - case 948: // config_databases: "config-databases" $@144 ":" "[" database_list "]" -#line 3246 "dhcp6_parser.yy" + case 951: // config_databases: "config-databases" $@145 ":" "[" database_list "]" +#line 3257 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4974 "dhcp6_parser.cc" +#line 4993 "dhcp6_parser.cc" break; - case 949: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 3251 "dhcp6_parser.yy" + case 952: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 3262 "dhcp6_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); 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 4984 "dhcp6_parser.cc" +#line 5003 "dhcp6_parser.cc" break; - case 950: // $@145: %empty -#line 3259 "dhcp6_parser.yy" + case 953: // $@146: %empty +#line 3270 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4992,83 +5011,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4996 "dhcp6_parser.cc" +#line 5015 "dhcp6_parser.cc" break; - case 951: // loggers: "loggers" $@145 ":" "[" loggers_entries "]" -#line 3265 "dhcp6_parser.yy" + case 954: // loggers: "loggers" $@146 ":" "[" loggers_entries "]" +#line 3276 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5005 "dhcp6_parser.cc" +#line 5024 "dhcp6_parser.cc" break; - case 954: // loggers_entries: loggers_entries "," -#line 3274 "dhcp6_parser.yy" + case 957: // loggers_entries: loggers_entries "," +#line 3285 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5013 "dhcp6_parser.cc" +#line 5032 "dhcp6_parser.cc" break; - case 955: // $@146: %empty -#line 3280 "dhcp6_parser.yy" + case 958: // $@147: %empty +#line 3291 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 5023 "dhcp6_parser.cc" +#line 5042 "dhcp6_parser.cc" break; - case 956: // logger_entry: "{" $@146 logger_params "}" -#line 3284 "dhcp6_parser.yy" + case 959: // logger_entry: "{" $@147 logger_params "}" +#line 3295 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 5031 "dhcp6_parser.cc" +#line 5050 "dhcp6_parser.cc" break; - case 959: // logger_params: logger_params "," -#line 3290 "dhcp6_parser.yy" + case 962: // logger_params: logger_params "," +#line 3301 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5039 "dhcp6_parser.cc" +#line 5058 "dhcp6_parser.cc" break; - case 967: // debuglevel: "debuglevel" ":" "integer" -#line 3304 "dhcp6_parser.yy" + case 970: // debuglevel: "debuglevel" ":" "integer" +#line 3315 "dhcp6_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 5049 "dhcp6_parser.cc" +#line 5068 "dhcp6_parser.cc" break; - case 968: // $@147: %empty -#line 3310 "dhcp6_parser.yy" + case 971: // $@148: %empty +#line 3321 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5058 "dhcp6_parser.cc" +#line 5077 "dhcp6_parser.cc" break; - case 969: // severity: "severity" $@147 ":" "constant string" -#line 3313 "dhcp6_parser.yy" + case 972: // severity: "severity" $@148 ":" "constant string" +#line 3324 "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 5068 "dhcp6_parser.cc" +#line 5087 "dhcp6_parser.cc" break; - case 970: // $@148: %empty -#line 3319 "dhcp6_parser.yy" + case 973: // $@149: %empty +#line 3330 "dhcp6_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -5076,122 +5095,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 5080 "dhcp6_parser.cc" +#line 5099 "dhcp6_parser.cc" break; - case 971: // output_options_list: "output-options" $@148 ":" "[" output_options_list_content "]" -#line 3325 "dhcp6_parser.yy" + case 974: // output_options_list: "output-options" $@149 ":" "[" output_options_list_content "]" +#line 3336 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5089 "dhcp6_parser.cc" +#line 5108 "dhcp6_parser.cc" break; - case 974: // output_options_list_content: output_options_list_content "," -#line 3332 "dhcp6_parser.yy" + case 977: // output_options_list_content: output_options_list_content "," +#line 3343 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5097 "dhcp6_parser.cc" +#line 5116 "dhcp6_parser.cc" break; - case 975: // $@149: %empty -#line 3337 "dhcp6_parser.yy" + case 978: // $@150: %empty +#line 3348 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 5107 "dhcp6_parser.cc" +#line 5126 "dhcp6_parser.cc" break; - case 976: // output_entry: "{" $@149 output_params_list "}" -#line 3341 "dhcp6_parser.yy" + case 979: // output_entry: "{" $@150 output_params_list "}" +#line 3352 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 5115 "dhcp6_parser.cc" +#line 5134 "dhcp6_parser.cc" break; - case 979: // output_params_list: output_params_list "," -#line 3347 "dhcp6_parser.yy" + case 982: // output_params_list: output_params_list "," +#line 3358 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5123 "dhcp6_parser.cc" +#line 5142 "dhcp6_parser.cc" break; - case 985: // $@150: %empty -#line 3359 "dhcp6_parser.yy" + case 988: // $@151: %empty +#line 3370 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5132 "dhcp6_parser.cc" +#line 5151 "dhcp6_parser.cc" break; - case 986: // output: "output" $@150 ":" "constant string" -#line 3362 "dhcp6_parser.yy" + case 989: // output: "output" $@151 ":" "constant string" +#line 3373 "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 5142 "dhcp6_parser.cc" +#line 5161 "dhcp6_parser.cc" break; - case 987: // flush: "flush" ":" "boolean" -#line 3368 "dhcp6_parser.yy" + case 990: // flush: "flush" ":" "boolean" +#line 3379 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 5152 "dhcp6_parser.cc" +#line 5171 "dhcp6_parser.cc" break; - case 988: // maxsize: "maxsize" ":" "integer" -#line 3374 "dhcp6_parser.yy" + case 991: // maxsize: "maxsize" ":" "integer" +#line 3385 "dhcp6_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 5162 "dhcp6_parser.cc" +#line 5181 "dhcp6_parser.cc" break; - case 989: // maxver: "maxver" ":" "integer" -#line 3380 "dhcp6_parser.yy" + case 992: // maxver: "maxver" ":" "integer" +#line 3391 "dhcp6_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 5172 "dhcp6_parser.cc" +#line 5191 "dhcp6_parser.cc" break; - case 990: // $@151: %empty -#line 3386 "dhcp6_parser.yy" + case 993: // $@152: %empty +#line 3397 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5181 "dhcp6_parser.cc" +#line 5200 "dhcp6_parser.cc" break; - case 991: // pattern: "pattern" $@151 ":" "constant string" -#line 3389 "dhcp6_parser.yy" + case 994: // pattern: "pattern" $@152 ":" "constant string" +#line 3400 "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 5191 "dhcp6_parser.cc" +#line 5210 "dhcp6_parser.cc" break; - case 992: // $@152: %empty -#line 3395 "dhcp6_parser.yy" + case 995: // $@153: %empty +#line 3406 "dhcp6_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -5199,38 +5218,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 5203 "dhcp6_parser.cc" +#line 5222 "dhcp6_parser.cc" break; - case 993: // compatibility: "compatibility" $@152 ":" "{" compatibility_params "}" -#line 3401 "dhcp6_parser.yy" + case 996: // compatibility: "compatibility" $@153 ":" "{" compatibility_params "}" +#line 3412 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5212 "dhcp6_parser.cc" +#line 5231 "dhcp6_parser.cc" break; - case 996: // compatibility_params: compatibility_params "," -#line 3408 "dhcp6_parser.yy" + case 999: // compatibility_params: compatibility_params "," +#line 3419 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5220 "dhcp6_parser.cc" +#line 5239 "dhcp6_parser.cc" break; - case 999: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3417 "dhcp6_parser.yy" + case 1002: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3428 "dhcp6_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 5230 "dhcp6_parser.cc" +#line 5249 "dhcp6_parser.cc" break; -#line 5234 "dhcp6_parser.cc" +#line 5253 "dhcp6_parser.cc" default: break; @@ -5582,166 +5601,166 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -1442; + const short Dhcp6Parser::yypact_ninf_ = -1434; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 486, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 51, 43, 50, 79, 141, - 243, 251, 286, 297, 314, 322, 335, 337, 378, 388, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 43, -158, - 68, 763, 63, 1437, 656, 274, 826, 52, 17, 160, - -52, 261, 56, -1442, 187, 138, 290, 395, 319, -1442, - 64, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 400, 408, - 423, 425, 426, 444, 445, 469, 472, 483, 484, 489, - 490, 492, -1442, 494, 495, 501, 502, 505, -1442, -1442, - -1442, 506, 508, 512, 514, 516, 517, 519, -1442, -1442, - -1442, 520, -1442, -1442, -1442, -1442, -1442, -1442, 521, 522, - 523, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 524, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 526, 527, - 530, -1442, -1442, 531, -1442, 109, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 533, - 534, 537, 539, -1442, 134, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 543, 546, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, 135, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 550, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 171, -1442, -1442, -1442, -1442, -1442, -1442, 553, -1442, 555, - 556, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 182, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 403, - 482, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 557, -1442, -1442, 559, -1442, -1442, -1442, 562, -1442, -1442, - 564, 570, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 563, 572, 573, -1442, -1442, - -1442, -1442, -1442, 566, 575, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 184, - -1442, -1442, -1442, 578, -1442, 580, -1442, 581, 582, -1442, - -1442, -1442, -1442, -1442, 186, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 583, 227, -1442, -1442, -1442, - -1442, 43, 43, -1442, 345, 584, -1442, -1442, 585, 588, - 592, 595, 597, 598, 368, 369, 370, 371, 372, 373, - 376, 379, 380, 382, 385, 386, 389, 390, 611, 392, - 394, 391, 396, 397, 628, 634, 635, 413, 415, 404, - 410, 419, 421, 420, 654, 658, 659, 429, 665, 668, - 671, 673, 676, 677, 446, 448, 450, 678, 684, 686, - 687, 688, 689, 690, 691, 693, 465, 695, 698, 716, - 724, 730, 731, 733, 509, 510, 515, 734, 738, -1442, - 763, -1442, 739, 518, 529, 525, 528, 63, -1442, 741, - 745, 747, 749, 750, 532, 540, 752, 754, 755, 767, - 772, 1437, -1442, 775, 548, 656, -1442, 785, 558, 786, - 560, 561, 274, -1442, 787, 788, 790, 796, 799, 800, - 801, 802, -1442, 826, -1442, 803, 804, 574, 806, 840, - 841, 609, -1442, 17, 843, 612, 613, 614, 844, -1442, - 160, 848, 849, 18, -1442, 621, 855, 629, 859, 630, - 631, 863, 864, 261, -1442, 865, 638, 56, -1442, -1442, - -1442, 866, 867, 641, 869, 870, 878, 879, 883, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, 655, -1442, -1442, -1442, -1442, -1442, -147, - 657, 660, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 887, - 888, 890, -1442, 663, 664, 276, 894, 893, 667, -1442, - -1442, -1442, 897, 898, 899, 900, 904, 905, 906, 907, - 909, -1442, 910, 911, 908, 912, 913, 692, 696, -1442, - -1442, -1442, 916, 915, -1442, 920, -1442, -1442, -1442, -1442, - -1442, 922, 926, 699, 702, 703, -1442, -1442, 920, 920, - 920, 704, 925, -1442, 705, -1442, -1442, 706, -1442, 707, - -1442, -1442, -1442, 920, 920, 920, 920, 708, 709, 710, - 711, -1442, 712, 714, -1442, 715, 718, 719, -1442, -1442, - 720, -1442, -1442, -1442, 920, -1442, 721, 893, -1442, -1442, - 722, -1442, 723, -1442, -1442, -74, 713, -1442, 953, -1442, - -1442, 43, 763, -1442, 56, 63, 175, 175, 952, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 966, 967, - 968, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 969, -1442, - -1442, -1442, -102, 43, 89, 93, 970, 971, 972, 242, - 75, 163, 194, 973, -20, 261, -1442, -1442, 975, -170, - -1442, -1442, 976, 977, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 851, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 952, -1442, - 245, 246, 249, -1442, -1442, -1442, -1442, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, -1442, 992, 994, - -1442, -1442, -1442, -1442, -1442, 287, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 293, - -1442, 993, 997, -1442, -1442, 995, 999, -1442, -1442, 998, - 1000, -1442, -1442, 1001, 1002, -1442, -1442, 1003, 1005, -1442, - -1442, -1442, 81, -1442, -1442, -1442, 1004, -1442, -1442, -1442, - 110, -1442, -1442, -1442, -1442, -1442, 302, -1442, -1442, -1442, - -1442, 124, -1442, -1442, 1006, 1008, -1442, -1442, 1007, 1011, - -1442, 1012, 1013, 1014, 1015, 1017, 1018, 303, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, 1020, 1021, 1023, - -1442, -1442, -1442, -1442, 309, -1442, -1442, -1442, -1442, -1442, - -1442, 1024, 1026, 1027, -1442, 315, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 1031, -1442, 1034, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 325, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 1009, 1037, -1442, 1044, -1442, - 1046, -1442, -1442, -1442, 327, -1442, -1442, -1442, -1442, -1442, - 328, -1442, 357, -1442, 1047, -1442, 340, -1442, -1442, 819, - -1442, 1048, 1056, -1442, -1442, 1055, 1061, -1442, -1442, 1058, - 1063, -1442, -1442, -1442, 1068, 1070, 1071, 1076, 771, 830, - 847, 853, 856, 861, 872, 875, 882, 884, 1084, 857, - 896, 1096, 1121, 1124, 1145, 175, -1442, -1442, 175, -1442, - 952, 1437, -1442, 966, 17, -1442, 967, 160, -1442, 968, - 366, -1442, 969, -102, -1442, -1442, 89, -1442, 1148, 1154, - 93, -1442, 211, 970, -1442, 826, -1442, 971, -52, -1442, - 972, 928, 930, 933, 935, 937, 939, 242, -1442, 1173, - 1175, 945, 947, 948, 75, -1442, 950, 981, 996, 163, - -1442, 1197, 1206, 1207, 1016, 1208, 1019, 1215, 194, -1442, - 194, -1442, 973, 1025, 1216, 1028, 1218, -20, -1442, -1442, - 174, 975, -1442, 1029, -170, -1442, -1442, 1219, 1223, 656, - -1442, 976, 274, -1442, 977, -1442, -1442, 1010, 1033, 1035, - 1036, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 69, -1442, -1442, 1038, 1039, 1040, 1041, -1442, 342, - -1442, 343, -1442, 1220, -1442, 1224, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 349, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 1042, 1043, -1442, -1442, -1442, 1230, 1232, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 1229, 1235, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, 1231, -1442, 356, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 112, 1045, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 333, 1049, - 1050, -1442, 1234, -1442, 1222, -1442, 393, -1442, -1442, 1051, - -1442, 43, -1442, -1442, 1239, -1442, -1442, -1442, -1442, -1442, - 399, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 1052, - 460, -1442, 461, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - 366, -1442, -1442, -1442, 1242, 1244, 1054, 1057, -1442, 211, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, 47, 1243, -1442, -1442, -1442, 1245, 1030, - 1248, 174, -1442, -1442, -1442, -1442, -1442, 1053, 1062, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 462, - -1442, -1442, -1442, -1442, -1442, -1442, 1249, 1255, -1442, 1256, - -1442, 1065, -1442, -1442, -1442, 1264, 1267, 1274, 1276, 47, - -1442, -6, -1442, 1243, 1253, -1442, 1106, 1066, 1067, 1277, - -1442, -1442, -1442, -1442, -1442, -1442, 463, -1442, -1442, -1442, - -1442, 407, -1442, -1442, -1442, -1442, -1442, 1281, 1293, -6, - -1442, 59, 1253, -1442, -1442, 1296, 1301, -1442, 1073, -1442, - -1442, 1304, 1305, 1306, -1442, 464, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, 128, -1442, 1281, -1442, 1309, 1078, 1081, - 1082, 1315, 59, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 481, -1442, -1442, -1442, -1442, 1087, -1442, -1442, -1442, - 1088, -1442, 1319, 1320, 128, -1442, -1442, -1442, 1092, 1094, - -1442, -1442, -1442 + 710, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 35, 43, 44, 117, 158, + 176, 182, 189, 209, 211, 239, 245, 255, 265, 279, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 43, -186, + 59, 763, 62, 1442, 173, 610, 260, 10, 16, 640, + -74, 273, 89, -1434, 135, 124, 170, 286, 304, -1434, + 64, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 307, 324, + 349, 351, 373, 380, 383, 386, 399, 409, 451, 483, + 490, 492, -1434, 495, 505, 506, 508, 512, -1434, -1434, + -1434, 514, 516, 517, 519, 523, 524, 526, -1434, -1434, + -1434, 527, -1434, -1434, -1434, -1434, -1434, -1434, 530, 531, + 533, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + 534, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 537, 539, + 543, -1434, -1434, 546, -1434, 80, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 550, + 553, 555, 556, -1434, 81, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 559, 561, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 134, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 562, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + 140, -1434, -1434, -1434, -1434, -1434, -1434, 563, -1434, 568, + 569, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + 159, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 314, + 402, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + 477, -1434, -1434, 570, -1434, -1434, -1434, 572, -1434, -1434, + 571, 404, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 573, 574, 578, -1434, -1434, + -1434, -1434, -1434, 576, 582, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 174, + -1434, -1434, -1434, 585, -1434, 588, -1434, 592, 595, -1434, + -1434, -1434, -1434, -1434, 250, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 601, 252, -1434, -1434, -1434, + -1434, 43, 43, -1434, 371, 603, -1434, -1434, 604, 607, + 611, 613, 614, 617, 378, 388, 391, 392, 393, 396, + 397, 398, 387, 408, 413, 415, 418, 420, 634, 421, + 422, 424, 425, 426, 635, 636, 665, 434, 437, 440, + 444, 447, 452, 443, 678, 681, 683, 454, 688, 689, + 690, 692, 693, 694, 461, 465, 467, 702, 704, 705, + 706, 707, 708, 709, 717, 725, 494, 727, 728, 730, + 734, 741, 742, 743, 513, 515, 518, 748, 750, -1434, + 763, -1434, 751, 520, 521, 528, 535, 62, -1434, 753, + 756, 759, 762, 772, 541, 529, 775, 776, 777, 778, + 779, 1442, -1434, 783, 552, 173, -1434, 785, 554, 787, + 557, 558, 610, -1434, 788, 791, 792, 796, 799, 800, + 801, 802, -1434, 260, -1434, 803, 804, 575, 805, 806, + 842, 609, -1434, 16, 844, 612, 615, 616, 845, -1434, + 640, 847, 848, 236, -1434, 621, 856, 625, 858, 628, + 629, 862, 863, 273, -1434, 864, 633, 89, -1434, -1434, + -1434, 866, 867, 641, 870, 871, 879, 880, 884, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, 655, -1434, -1434, -1434, -1434, -1434, -128, + 656, 657, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 888, + 889, 890, -1434, 661, 663, 57, 894, 893, 666, -1434, + -1434, -1434, 897, 898, 899, 900, 903, 905, 906, 907, + 908, -1434, 910, 911, 914, 913, 915, 670, 677, -1434, + -1434, -1434, 916, 919, -1434, 918, -1434, -1434, -1434, -1434, + -1434, 922, 923, 711, 712, 714, -1434, -1434, 918, 918, + 918, 715, 938, -1434, 716, -1434, -1434, 718, -1434, 719, + -1434, -1434, -1434, 918, 918, 918, 918, 720, 721, 722, + 723, -1434, 724, 726, -1434, 729, 731, 732, -1434, -1434, + 739, -1434, -1434, -1434, 918, -1434, 740, 893, -1434, -1434, + 744, -1434, 745, -1434, -1434, 274, 671, -1434, 955, -1434, + -1434, 43, 763, -1434, 89, 62, 177, 177, 956, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 958, 969, + 970, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 971, -1434, + -1434, -1434, -97, 43, 132, 382, 974, 976, 977, 79, + 75, 167, 192, 978, -56, 273, -1434, -1434, 979, -178, + -1434, -1434, 980, 981, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, 827, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 956, -1434, + 253, 266, 300, -1434, -1434, -1434, -1434, 909, 985, 986, + 987, 988, 989, 990, 991, 992, 993, -1434, 995, 996, + -1434, -1434, -1434, -1434, -1434, -1434, 301, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, 316, -1434, 997, 998, -1434, -1434, 999, 1001, -1434, + -1434, 1000, 1004, -1434, -1434, 1002, 1006, -1434, -1434, 1005, + 1007, -1434, -1434, -1434, 110, -1434, -1434, -1434, 1008, -1434, + -1434, -1434, 114, -1434, -1434, -1434, -1434, -1434, 317, -1434, + -1434, -1434, -1434, 184, -1434, -1434, 1009, 1010, -1434, -1434, + 1011, 1013, -1434, 1014, 1015, 1016, 1017, 1018, 1020, 318, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1021, + 1023, 1024, -1434, -1434, -1434, -1434, 326, -1434, -1434, -1434, + -1434, -1434, -1434, 1026, 1027, 1029, -1434, 339, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1030, -1434, 1034, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 340, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 1035, 1040, -1434, + 1047, -1434, 1049, -1434, -1434, -1434, 343, -1434, -1434, -1434, + -1434, -1434, 346, -1434, 289, -1434, 1050, -1434, 354, -1434, + -1434, 767, -1434, 1051, 1053, -1434, -1434, 1056, 1060, -1434, + -1434, 1059, 1058, -1434, -1434, -1434, 1065, 1066, 1068, 1071, + 841, 774, 849, 840, 855, 857, 861, 874, 877, 886, + 1079, 865, 892, 1090, 1095, 1116, 1127, 1130, 177, -1434, + -1434, 177, -1434, 956, 1442, -1434, 958, 16, -1434, 969, + 640, -1434, 970, 365, -1434, 971, -97, -1434, -1434, 132, + -1434, 1148, 1151, 382, -1434, 263, 974, -1434, 260, -1434, + 976, -74, -1434, 977, 925, 930, 932, 935, 937, 939, + 79, -1434, 1173, 1176, 946, 947, 949, 75, -1434, 948, + 954, 968, 167, -1434, 1209, 1210, 1211, 983, 1218, 1003, + 1220, 192, -1434, 192, -1434, 978, 1025, 1221, 994, 1222, + -56, -1434, -1434, 175, 979, -1434, 1028, -178, -1434, -1434, + 1223, 1228, 173, -1434, 980, 610, -1434, 981, -1434, -1434, + 1012, 1019, 1033, 1036, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, 389, -1434, -1434, 1037, 1038, 1039, + 1041, 1042, -1434, 360, -1434, 368, -1434, 1226, -1434, 1227, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 401, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, 1043, 1044, -1434, -1434, -1434, 1233, + 1235, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, 1232, 1239, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, 1236, -1434, 403, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, 347, 1045, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, 355, 1046, 1048, -1434, 1242, -1434, 1241, -1434, + 442, -1434, -1434, 1052, -1434, 43, -1434, -1434, 1247, -1434, + -1434, -1434, -1434, -1434, 445, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, 1054, 446, -1434, 448, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 365, -1434, -1434, -1434, 1248, + 1249, 1031, 1032, -1434, 263, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 88, 1251, + -1434, -1434, -1434, 1255, 1055, 1257, 175, -1434, -1434, -1434, + -1434, -1434, 1061, 1063, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, 449, -1434, -1434, -1434, -1434, -1434, + -1434, 1258, 1252, -1434, 1260, -1434, 1064, -1434, -1434, -1434, + 1271, 1278, 1280, 1281, 88, -1434, -18, -1434, 1251, 1279, + -1434, 1112, 1067, 1069, 1285, -1434, -1434, -1434, -1434, -1434, + -1434, 468, -1434, -1434, -1434, -1434, 290, -1434, -1434, -1434, + -1434, -1434, 1286, 1297, -18, -1434, 121, 1279, -1434, -1434, + 1299, 1303, -1434, 1072, -1434, -1434, 1305, 1308, 1309, -1434, + 481, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 83, -1434, + 1286, -1434, 1310, 1078, 1082, 1084, 1317, 121, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, 485, -1434, -1434, -1434, + -1434, 1087, -1434, -1434, -1434, 1089, -1434, 1322, 1323, 83, + -1434, -1434, -1434, 1093, 1094, -1434, -1434, -1434 }; const short @@ -5751,19 +5770,19 @@ 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, 46, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 61, 5, 67, 7, 205, 9, 391, 11, - 613, 13, 658, 15, 693, 17, 528, 19, 537, 21, - 576, 23, 353, 25, 908, 27, 940, 29, 48, 41, - 0, 0, 0, 0, 0, 0, 695, 0, 539, 578, + 35, 36, 61, 5, 67, 7, 205, 9, 394, 11, + 616, 13, 661, 15, 696, 17, 531, 19, 540, 21, + 579, 23, 356, 25, 911, 27, 943, 29, 48, 41, + 0, 0, 0, 0, 0, 0, 698, 0, 542, 581, 0, 0, 0, 50, 0, 49, 0, 0, 42, 63, - 0, 65, 144, 938, 203, 224, 226, 228, 0, 0, + 0, 65, 144, 941, 203, 224, 226, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, 0, 0, 163, 170, - 172, 0, 0, 0, 0, 0, 0, 0, 382, 526, - 567, 0, 196, 198, 176, 466, 645, 647, 0, 0, - 0, 309, 328, 318, 298, 731, 684, 344, 365, 765, - 0, 330, 790, 792, 889, 906, 186, 188, 0, 0, - 0, 950, 992, 0, 143, 0, 69, 72, 73, 74, + 172, 0, 0, 0, 0, 0, 0, 0, 385, 529, + 570, 0, 196, 198, 176, 469, 648, 650, 0, 0, + 0, 312, 331, 321, 301, 734, 687, 347, 368, 768, + 0, 333, 793, 795, 892, 909, 186, 188, 0, 0, + 0, 953, 995, 0, 143, 0, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 111, 112, 113, 114, 115, 81, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 117, 118, 132, 133, 134, @@ -5772,28 +5791,28 @@ namespace isc { namespace dhcp { 109, 110, 83, 92, 93, 102, 103, 105, 91, 96, 97, 98, 99, 100, 101, 106, 116, 139, 218, 0, 0, 0, 0, 217, 0, 207, 210, 211, 212, 213, - 214, 215, 216, 604, 649, 447, 449, 451, 0, 0, - 455, 457, 459, 453, 728, 446, 396, 397, 398, 399, - 400, 401, 402, 403, 423, 424, 425, 426, 427, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 428, 429, 443, 444, 445, 0, 393, 407, - 408, 409, 412, 413, 414, 415, 417, 418, 419, 410, - 411, 404, 405, 421, 422, 406, 416, 420, 642, 0, - 641, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 621, 622, 623, 624, 620, - 0, 615, 618, 619, 639, 640, 677, 0, 680, 0, - 0, 676, 668, 669, 670, 671, 667, 666, 674, 675, - 0, 660, 663, 664, 672, 673, 665, 726, 712, 714, - 716, 718, 720, 722, 724, 711, 708, 709, 710, 0, - 696, 697, 702, 703, 704, 700, 705, 706, 707, 701, - 0, 557, 272, 0, 561, 559, 564, 0, 553, 554, - 0, 540, 541, 544, 556, 545, 546, 547, 563, 548, - 549, 550, 551, 552, 595, 0, 0, 0, 602, 593, - 594, 597, 598, 0, 579, 580, 583, 584, 585, 586, - 587, 588, 589, 592, 590, 591, 361, 363, 358, 0, - 355, 359, 360, 0, 925, 0, 928, 0, 0, 932, - 936, 923, 921, 922, 0, 910, 913, 914, 915, 916, - 917, 918, 919, 920, 947, 0, 0, 942, 945, 946, + 214, 215, 216, 607, 652, 450, 452, 454, 0, 0, + 458, 460, 462, 456, 731, 449, 399, 400, 401, 402, + 403, 404, 405, 406, 426, 427, 428, 429, 430, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 431, 432, 446, 447, 448, 0, 396, 410, + 411, 412, 415, 416, 417, 418, 420, 421, 422, 413, + 414, 407, 408, 424, 425, 409, 419, 423, 645, 0, + 644, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 624, 625, 626, 627, 623, + 0, 618, 621, 622, 642, 643, 680, 0, 683, 0, + 0, 679, 671, 672, 673, 674, 670, 669, 677, 678, + 0, 663, 666, 667, 675, 676, 668, 729, 715, 717, + 719, 721, 723, 725, 727, 714, 711, 712, 713, 0, + 699, 700, 705, 706, 707, 703, 708, 709, 710, 704, + 0, 560, 273, 0, 564, 562, 567, 0, 556, 557, + 0, 543, 544, 547, 559, 548, 549, 550, 566, 551, + 552, 553, 554, 555, 598, 0, 0, 0, 605, 596, + 597, 600, 601, 0, 582, 583, 586, 587, 588, 589, + 590, 591, 592, 595, 593, 594, 364, 366, 361, 0, + 358, 362, 363, 0, 928, 0, 931, 0, 0, 935, + 939, 926, 924, 925, 0, 913, 916, 917, 918, 919, + 920, 921, 922, 923, 950, 0, 0, 945, 948, 949, 47, 52, 0, 39, 45, 0, 66, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5804,157 +5823,157 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 71, 68, 0, 0, 0, 0, 0, 209, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 395, 392, 0, 0, 617, 614, 0, 0, 0, - 0, 0, 662, 659, 0, 0, 0, 0, 0, 0, - 0, 0, 694, 699, 529, 0, 0, 0, 0, 0, - 0, 0, 538, 543, 0, 0, 0, 0, 0, 577, - 582, 0, 0, 357, 354, 0, 0, 0, 0, 0, - 0, 0, 0, 912, 909, 0, 0, 944, 941, 51, + 0, 398, 395, 0, 0, 620, 617, 0, 0, 0, + 0, 0, 665, 662, 0, 0, 0, 0, 0, 0, + 0, 0, 697, 702, 532, 0, 0, 0, 0, 0, + 0, 0, 541, 546, 0, 0, 0, 0, 0, 580, + 585, 0, 0, 360, 357, 0, 0, 0, 0, 0, + 0, 0, 0, 915, 912, 0, 0, 947, 944, 51, 43, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 0, 191, 192, 160, 161, 162, 0, 0, 0, 174, 175, 182, 183, 184, 185, 190, 0, - 0, 0, 195, 0, 0, 0, 0, 0, 0, 461, - 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 789, 0, 0, 0, 0, 0, 0, 0, 200, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 464, + 465, 466, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 792, 0, 0, 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, 70, 0, 220, 221, 222, 223, - 208, 0, 0, 0, 0, 0, 464, 465, 0, 0, - 0, 0, 0, 394, 0, 644, 616, 0, 679, 0, - 682, 683, 661, 0, 0, 0, 0, 0, 0, 0, - 0, 698, 0, 0, 555, 0, 0, 0, 566, 542, - 0, 599, 600, 601, 0, 581, 0, 0, 356, 924, - 0, 927, 0, 930, 931, 0, 0, 911, 0, 949, - 943, 0, 0, 145, 0, 0, 0, 0, 230, 194, - 165, 166, 167, 168, 169, 164, 171, 173, 384, 530, - 569, 197, 199, 178, 179, 180, 181, 177, 468, 40, - 646, 648, 0, 48, 0, 0, 0, 686, 346, 0, - 0, 0, 0, 794, 0, 0, 187, 189, 0, 0, - 53, 219, 606, 651, 448, 450, 452, 456, 458, 460, - 454, 0, 643, 678, 681, 727, 713, 715, 717, 719, - 721, 723, 725, 558, 273, 562, 560, 565, 596, 603, - 362, 364, 926, 929, 934, 935, 933, 937, 230, 44, - 0, 0, 0, 263, 265, 267, 269, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 282, 0, 0, - 290, 292, 294, 296, 262, 0, 237, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 254, 255, 256, 257, 253, 258, 259, 260, 261, 0, - 235, 0, 231, 232, 389, 0, 385, 386, 535, 0, - 531, 532, 574, 0, 570, 571, 473, 0, 469, 470, - 316, 317, 0, 311, 314, 315, 0, 326, 327, 323, - 0, 320, 324, 325, 305, 307, 0, 300, 303, 304, - 736, 0, 733, 691, 0, 687, 688, 351, 0, 347, - 348, 0, 0, 0, 0, 0, 0, 0, 367, 370, - 371, 372, 373, 374, 375, 779, 785, 0, 0, 0, - 778, 775, 776, 777, 0, 767, 770, 773, 771, 772, - 774, 0, 0, 0, 340, 0, 332, 335, 336, 337, - 338, 339, 817, 822, 824, 0, 847, 0, 828, 816, - 809, 810, 811, 814, 815, 0, 801, 804, 805, 806, - 807, 812, 813, 808, 799, 0, 795, 796, 0, 901, - 0, 904, 897, 898, 0, 891, 894, 895, 896, 899, - 0, 955, 0, 952, 0, 998, 0, 994, 997, 55, - 611, 0, 607, 608, 656, 0, 652, 653, 730, 0, - 0, 64, 939, 204, 0, 0, 0, 0, 0, 0, + 208, 0, 0, 0, 0, 0, 467, 468, 0, 0, + 0, 0, 0, 397, 0, 647, 619, 0, 682, 0, + 685, 686, 664, 0, 0, 0, 0, 0, 0, 0, + 0, 701, 0, 0, 558, 0, 0, 0, 569, 545, + 0, 602, 603, 604, 0, 584, 0, 0, 359, 927, + 0, 930, 0, 933, 934, 0, 0, 914, 0, 952, + 946, 0, 0, 145, 0, 0, 0, 0, 230, 194, + 165, 166, 167, 168, 169, 164, 171, 173, 387, 533, + 572, 197, 199, 178, 179, 180, 181, 177, 471, 40, + 649, 651, 0, 48, 0, 0, 0, 689, 349, 0, + 0, 0, 0, 797, 0, 0, 187, 189, 0, 0, + 53, 219, 609, 654, 451, 453, 455, 459, 461, 463, + 457, 0, 646, 681, 684, 730, 716, 718, 720, 722, + 724, 726, 728, 561, 274, 565, 563, 568, 599, 606, + 365, 367, 929, 932, 937, 938, 936, 940, 230, 44, + 0, 0, 0, 264, 266, 268, 270, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, + 291, 293, 295, 297, 299, 263, 0, 237, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 254, 255, 256, 257, 253, 258, 259, 260, 261, + 262, 0, 235, 0, 231, 232, 392, 0, 388, 389, + 538, 0, 534, 535, 577, 0, 573, 574, 476, 0, + 472, 473, 319, 320, 0, 314, 317, 318, 0, 329, + 330, 326, 0, 323, 327, 328, 308, 310, 0, 303, + 306, 307, 739, 0, 736, 694, 0, 690, 691, 354, + 0, 350, 351, 0, 0, 0, 0, 0, 0, 0, + 370, 373, 374, 375, 376, 377, 378, 782, 788, 0, + 0, 0, 781, 778, 779, 780, 0, 770, 773, 776, + 774, 775, 777, 0, 0, 0, 343, 0, 335, 338, + 339, 340, 341, 342, 820, 825, 827, 0, 850, 0, + 831, 819, 812, 813, 814, 817, 818, 0, 804, 807, + 808, 809, 810, 815, 816, 811, 802, 0, 798, 799, + 0, 904, 0, 907, 900, 901, 0, 894, 897, 898, + 899, 902, 0, 958, 0, 955, 0, 1001, 0, 997, + 1000, 55, 614, 0, 610, 611, 659, 0, 655, 656, + 733, 0, 0, 64, 942, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 239, 225, 227, 0, 229, - 234, 0, 383, 388, 539, 527, 534, 578, 568, 573, - 0, 467, 472, 313, 310, 329, 322, 319, 0, 0, - 302, 299, 738, 735, 732, 695, 685, 690, 0, 345, - 350, 0, 0, 0, 0, 0, 0, 369, 366, 0, - 0, 0, 0, 0, 769, 766, 0, 0, 0, 334, - 331, 0, 0, 0, 0, 0, 0, 0, 803, 791, - 0, 793, 798, 0, 0, 0, 0, 893, 890, 907, - 0, 954, 951, 0, 996, 993, 57, 0, 56, 0, - 605, 610, 0, 650, 655, 729, 948, 0, 0, 0, - 0, 271, 274, 275, 276, 277, 278, 279, 280, 289, - 281, 0, 287, 288, 0, 0, 0, 0, 238, 0, - 233, 0, 387, 0, 533, 0, 572, 525, 493, 494, - 495, 497, 498, 499, 482, 483, 502, 503, 504, 505, - 506, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 507, 508, 522, 523, 524, 478, - 479, 480, 481, 489, 490, 491, 492, 486, 487, 488, - 496, 0, 475, 484, 500, 501, 485, 471, 312, 321, - 0, 0, 301, 759, 761, 0, 0, 757, 751, 752, - 753, 754, 755, 756, 758, 748, 749, 750, 0, 739, - 740, 743, 744, 745, 746, 747, 734, 0, 689, 0, - 349, 376, 377, 378, 379, 380, 381, 368, 0, 0, - 784, 787, 788, 768, 341, 342, 343, 333, 0, 0, - 0, 826, 0, 827, 0, 802, 0, 797, 900, 0, - 903, 0, 892, 970, 0, 968, 966, 960, 964, 965, - 0, 957, 962, 963, 961, 953, 999, 995, 54, 59, - 0, 609, 0, 654, 264, 266, 268, 270, 284, 285, - 286, 283, 291, 293, 295, 297, 236, 390, 536, 575, - 477, 474, 306, 308, 0, 0, 0, 0, 737, 742, - 692, 352, 781, 782, 783, 780, 786, 819, 820, 821, - 818, 823, 825, 0, 830, 800, 902, 905, 0, 0, - 0, 959, 956, 58, 612, 657, 476, 0, 0, 763, - 764, 741, 859, 862, 864, 866, 858, 857, 856, 0, - 849, 852, 853, 854, 855, 835, 0, 831, 832, 0, - 967, 0, 958, 760, 762, 0, 0, 0, 0, 851, - 848, 0, 829, 834, 0, 969, 0, 0, 0, 0, - 850, 845, 844, 840, 842, 843, 0, 837, 841, 833, - 975, 0, 972, 861, 860, 863, 865, 868, 0, 839, - 836, 0, 974, 971, 873, 0, 869, 870, 0, 838, - 985, 0, 0, 0, 990, 0, 977, 980, 981, 982, - 983, 984, 973, 0, 867, 872, 846, 0, 0, 0, - 0, 0, 979, 976, 885, 887, 884, 878, 880, 882, - 883, 0, 875, 879, 881, 871, 0, 987, 988, 989, - 0, 978, 0, 0, 877, 874, 986, 991, 0, 0, - 876, 886, 888 + 0, 0, 0, 0, 0, 0, 0, 0, 239, 225, + 227, 0, 229, 234, 0, 386, 391, 542, 530, 537, + 581, 571, 576, 0, 470, 475, 316, 313, 332, 325, + 322, 0, 0, 305, 302, 741, 738, 735, 698, 688, + 693, 0, 348, 353, 0, 0, 0, 0, 0, 0, + 372, 369, 0, 0, 0, 0, 0, 772, 769, 0, + 0, 0, 337, 334, 0, 0, 0, 0, 0, 0, + 0, 806, 794, 0, 796, 801, 0, 0, 0, 0, + 896, 893, 910, 0, 957, 954, 0, 999, 996, 57, + 0, 56, 0, 608, 613, 0, 653, 658, 732, 951, + 0, 0, 0, 0, 272, 275, 276, 277, 278, 279, + 280, 281, 290, 282, 0, 288, 289, 0, 0, 0, + 0, 0, 238, 0, 233, 0, 390, 0, 536, 0, + 575, 528, 496, 497, 498, 500, 501, 502, 485, 486, + 505, 506, 507, 508, 509, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 510, 511, + 525, 526, 527, 481, 482, 483, 484, 492, 493, 494, + 495, 489, 490, 491, 499, 0, 478, 487, 503, 504, + 488, 474, 315, 324, 0, 0, 304, 762, 764, 0, + 0, 760, 754, 755, 756, 757, 758, 759, 761, 751, + 752, 753, 0, 742, 743, 746, 747, 748, 749, 750, + 737, 0, 692, 0, 352, 379, 380, 381, 382, 383, + 384, 371, 0, 0, 787, 790, 791, 771, 344, 345, + 346, 336, 0, 0, 0, 829, 0, 830, 0, 805, + 0, 800, 903, 0, 906, 0, 895, 973, 0, 971, + 969, 963, 967, 968, 0, 960, 965, 966, 964, 956, + 1002, 998, 54, 59, 0, 612, 0, 657, 265, 267, + 269, 271, 285, 286, 287, 284, 292, 294, 296, 298, + 300, 236, 393, 539, 578, 480, 477, 309, 311, 0, + 0, 0, 0, 740, 745, 695, 355, 784, 785, 786, + 783, 789, 822, 823, 824, 821, 826, 828, 0, 833, + 803, 905, 908, 0, 0, 0, 962, 959, 58, 615, + 660, 479, 0, 0, 766, 767, 744, 862, 865, 867, + 869, 861, 860, 859, 0, 852, 855, 856, 857, 858, + 838, 0, 834, 835, 0, 970, 0, 961, 763, 765, + 0, 0, 0, 0, 854, 851, 0, 832, 837, 0, + 972, 0, 0, 0, 0, 853, 848, 847, 843, 845, + 846, 0, 840, 844, 836, 978, 0, 975, 864, 863, + 866, 868, 871, 0, 842, 839, 0, 977, 974, 876, + 0, 872, 873, 0, 841, 988, 0, 0, 0, 993, + 0, 980, 983, 984, 985, 986, 987, 976, 0, 870, + 875, 849, 0, 0, 0, 0, 0, 982, 979, 888, + 890, 887, 881, 883, 885, 886, 0, 878, 882, 884, + 874, 0, 990, 991, 992, 0, 981, 0, 0, 880, + 877, 989, 994, 0, 0, 879, 889, 891 }; const short Dhcp6Parser::yypgoto_[] = { - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -10, -1442, -637, -1442, - 576, -1442, -1442, -1442, -1442, 535, -1442, -420, -1442, -1442, - -1442, -71, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 565, - 779, -1442, -1442, 4, 12, 22, 38, 41, 42, -57, - -54, -35, -15, 97, 100, 102, -1442, 20, 23, 45, - 48, -1442, -1442, 55, -1442, 60, -1442, 66, 103, 71, - -1442, -1442, 73, 76, 78, 84, 90, -1442, 95, -1442, - 105, -1442, -1442, -1442, -1442, -1442, 107, -1442, 108, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, 567, 773, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 474, -1442, 244, -1442, -756, 250, -1442, -1442, -1441, - -1442, -1440, -1442, -1442, -1442, -1442, -55, -1442, -797, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -801, -1442, -795, -1442, -792, -1442, -1442, -1442, - -1442, -1442, -1442, 229, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 240, -782, -1442, -1442, -1442, -1442, 238, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 207, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, 228, -1442, -1442, -1442, 232, 740, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, 224, -1442, -1442, -1442, - -1442, -1442, -1442, -1075, -1442, -1442, -1442, 259, -1442, -1442, - -1442, 263, 784, -1442, -1442, -1074, -1442, -1073, -1442, 61, - -1442, 85, -1442, 121, -1442, 123, -1442, 113, 115, 118, - -1442, -1072, -1442, -1442, -1442, -1442, 255, -1442, -1442, -1, - 1284, -1442, -1442, -1442, -1442, -1442, 266, -1442, -1442, -1442, - 269, -1442, 762, -1442, -65, -1442, -1442, -1442, -1442, -1442, - -61, -1442, -1442, -1442, -1442, -1442, -29, -1442, -1442, -1442, - 267, -1442, -1442, -1442, 270, -1442, 758, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, 198, -1442, -1442, -1442, 202, 809, -1442, -1442, -63, - -42, -1442, -13, -1442, -1442, -1442, -1442, -1442, 200, -1442, - -1442, -1442, 203, 795, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -58, -1442, -1442, -1442, 262, -1442, -1442, -1442, 271, - -1442, 792, 568, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1071, -1442, - -1442, -1442, -1442, -1442, 277, -1442, -1442, -1442, 24, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, 258, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 248, -1442, 247, 265, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -39, -1442, -1442, -64, -1442, -1442, -1442, -1442, - -1442, -33, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -82, -1442, -1442, -108, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, 252, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, 599, 805, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, 645, 797, -1442, -1442, -1442, -1442, - -1442, -1442, 264, -1442, -1442, 31, -1442, -1442, -1442, -1442, - -1442, -1442, -32, -1442, -1442, -69, -1442, -1442, -1442, -1442, - -1442, -1442, -1442, -1442, -1442, -1442, 268, -1442 + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -10, -1434, -634, -1434, + 577, -1434, -1434, -1434, -1434, 532, -1434, -132, -1434, -1434, + -1434, -71, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 565, + 781, -1434, -1434, 4, 12, 22, 38, 41, 42, -57, + -54, -35, -15, 97, 100, 102, -1434, 20, 23, 45, + 48, -1434, -1434, 55, -1434, 60, -1434, 66, 103, 71, + -1434, -1434, 73, 76, 78, 84, 90, -1434, 95, -1434, + 105, -1434, -1434, -1434, -1434, -1434, 107, -1434, 108, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 564, 786, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, 475, -1434, 247, -1434, -756, 254, -1434, -1434, -1433, + -1434, -1432, -1434, -1434, -1434, -1434, -55, -1434, -797, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -801, -1434, -795, -1434, -792, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 225, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, 238, -782, -1434, -1434, -1434, -1434, 240, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 205, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, 228, -1434, -1434, -1434, 227, + 746, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 223, -1434, + -1434, -1434, -1434, -1434, -1434, -1078, -1434, -1434, -1434, 259, + -1434, -1434, -1434, 262, 789, -1434, -1434, -1077, -1434, -1076, + -1434, 61, -1434, 85, -1434, 120, -1434, 125, -1434, 113, + 115, 118, -1434, -1075, -1434, -1434, -1434, -1434, 257, -1434, + -1434, -8, 1287, -1434, -1434, -1434, -1434, -1434, 267, -1434, + -1434, -1434, 261, -1434, 764, -1434, -65, -1434, -1434, -1434, + -1434, -1434, -61, -1434, -1434, -1434, -1434, -1434, -29, -1434, + -1434, -1434, 268, -1434, -1434, -1434, 271, -1434, 758, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, 198, -1434, -1434, -1434, 201, 807, -1434, + -1434, -63, -42, -1434, -13, -1434, -1434, -1434, -1434, -1434, + 197, -1434, -1434, -1434, 204, 794, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -58, -1434, -1434, -1434, 264, -1434, -1434, + -1434, 272, -1434, 798, 549, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1074, -1434, -1434, -1434, -1434, -1434, 281, -1434, -1434, -1434, + 15, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, 258, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 243, -1434, 246, + 249, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -37, -1434, -1434, -62, -1434, -1434, + -1434, -1434, -1434, -30, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -85, -1434, -1434, -111, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, 251, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, 599, 795, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, 645, 797, -1434, -1434, + -1434, -1434, -1434, -1434, 269, -1434, -1434, 31, -1434, -1434, + -1434, -1434, -1434, -1434, -39, -1434, -1434, -68, -1434, -1434, + -1434, -1434, -1434, -1434, -1434, -1434, -1434, -1434, 270, -1434 }; const short @@ -5962,8 +5981,8 @@ namespace isc { namespace dhcp { { 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 800, 87, 88, 41, 68, 84, 85, 821, 1049, 1167, - 1168, 884, 43, 70, 90, 475, 91, 45, 71, 165, + 800, 87, 88, 41, 68, 84, 85, 821, 1051, 1170, + 1171, 885, 43, 70, 90, 475, 91, 45, 71, 165, 166, 167, 478, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 504, 785, 186, 505, 187, 506, 188, 189, 190, @@ -5971,218 +5990,218 @@ namespace isc { namespace dhcp { 197, 198, 199, 200, 498, 201, 202, 518, 203, 519, 204, 205, 206, 207, 480, 47, 72, 244, 245, 246, 552, 247, 248, 249, 250, 208, 481, 209, 482, 210, - 483, 911, 912, 913, 1088, 885, 886, 887, 1064, 888, - 1065, 889, 1066, 890, 1067, 891, 892, 596, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 1078, 1351, 902, - 903, 904, 905, 1081, 906, 1082, 907, 1083, 908, 1084, - 211, 530, 946, 947, 948, 1108, 949, 1109, 212, 527, - 932, 933, 934, 935, 213, 529, 940, 941, 942, 943, - 214, 528, 215, 537, 995, 996, 997, 998, 999, 216, - 533, 958, 959, 960, 1118, 63, 80, 439, 440, 441, - 611, 442, 612, 217, 534, 967, 968, 969, 970, 971, - 972, 973, 974, 218, 514, 915, 916, 917, 1091, 49, - 73, 297, 298, 299, 561, 300, 562, 301, 563, 302, - 569, 303, 566, 304, 567, 305, 568, 219, 220, 221, - 309, 310, 222, 521, 927, 928, 929, 1100, 1251, 1252, - 223, 515, 57, 77, 919, 920, 921, 1094, 59, 78, - 400, 401, 402, 403, 404, 405, 406, 595, 407, 599, - 408, 598, 409, 410, 600, 411, 224, 516, 923, 924, - 925, 1097, 61, 79, 423, 424, 425, 426, 427, 604, - 428, 429, 430, 431, 432, 433, 608, 312, 559, 1051, - 1052, 1053, 1169, 51, 74, 340, 341, 342, 573, 343, - 225, 522, 226, 523, 315, 560, 1055, 1056, 1057, 1172, - 53, 75, 360, 361, 362, 577, 363, 364, 579, 365, - 366, 227, 532, 954, 955, 956, 1115, 55, 76, 379, - 380, 381, 382, 585, 383, 586, 384, 587, 385, 588, - 386, 589, 387, 590, 388, 591, 389, 584, 317, 570, - 1059, 228, 531, 951, 952, 1112, 1278, 1279, 1280, 1281, - 1282, 1364, 1283, 1365, 1284, 1285, 229, 535, 984, 985, - 986, 1129, 1375, 987, 988, 1130, 989, 990, 230, 231, - 538, 232, 539, 1025, 1026, 1027, 1150, 1015, 1016, 1017, - 1141, 1380, 1018, 1142, 1019, 1143, 1020, 1021, 1022, 1147, - 1416, 1417, 1418, 1431, 1446, 1447, 1448, 1458, 1023, 1145, - 1409, 1410, 1411, 1425, 1454, 1412, 1426, 1413, 1427, 1414, - 1428, 1465, 1466, 1467, 1483, 1501, 1502, 1503, 1512, 1504, - 1513, 233, 540, 1034, 1035, 1036, 1037, 1154, 1038, 1039, - 1156, 234, 541, 65, 81, 454, 455, 456, 457, 616, - 458, 459, 618, 460, 461, 462, 621, 856, 463, 622, - 235, 479, 67, 82, 466, 467, 468, 625, 469, 236, - 547, 1042, 1043, 1160, 1330, 1331, 1332, 1333, 1390, 1334, - 1388, 1451, 1452, 1461, 1475, 1476, 1477, 1487, 1478, 1479, - 1480, 1481, 1491, 237, 548, 1046, 1047, 1048 + 483, 913, 914, 915, 1091, 886, 887, 888, 1066, 889, + 1067, 890, 1068, 891, 1069, 892, 893, 596, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 1080, 1355, 903, + 904, 905, 906, 1083, 907, 1084, 908, 1085, 909, 1086, + 910, 1087, 211, 530, 948, 949, 950, 1111, 951, 1112, + 212, 527, 934, 935, 936, 937, 213, 529, 942, 943, + 944, 945, 214, 528, 215, 537, 997, 998, 999, 1000, + 1001, 216, 533, 960, 961, 962, 1121, 63, 80, 439, + 440, 441, 611, 442, 612, 217, 534, 969, 970, 971, + 972, 973, 974, 975, 976, 218, 514, 917, 918, 919, + 1094, 49, 73, 297, 298, 299, 561, 300, 562, 301, + 563, 302, 569, 303, 566, 304, 567, 305, 568, 219, + 220, 221, 309, 310, 222, 521, 929, 930, 931, 1103, + 1255, 1256, 223, 515, 57, 77, 921, 922, 923, 1097, + 59, 78, 400, 401, 402, 403, 404, 405, 406, 595, + 407, 599, 408, 598, 409, 410, 600, 411, 224, 516, + 925, 926, 927, 1100, 61, 79, 423, 424, 425, 426, + 427, 604, 428, 429, 430, 431, 432, 433, 608, 312, + 559, 1053, 1054, 1055, 1172, 51, 74, 340, 341, 342, + 573, 343, 225, 522, 226, 523, 315, 560, 1057, 1058, + 1059, 1175, 53, 75, 360, 361, 362, 577, 363, 364, + 579, 365, 366, 227, 532, 956, 957, 958, 1118, 55, + 76, 379, 380, 381, 382, 585, 383, 586, 384, 587, + 385, 588, 386, 589, 387, 590, 388, 591, 389, 584, + 317, 570, 1061, 228, 531, 953, 954, 1115, 1282, 1283, + 1284, 1285, 1286, 1369, 1287, 1370, 1288, 1289, 229, 535, + 986, 987, 988, 1132, 1380, 989, 990, 1133, 991, 992, + 230, 231, 538, 232, 539, 1027, 1028, 1029, 1153, 1017, + 1018, 1019, 1144, 1385, 1020, 1145, 1021, 1146, 1022, 1023, + 1024, 1150, 1421, 1422, 1423, 1436, 1451, 1452, 1453, 1463, + 1025, 1148, 1414, 1415, 1416, 1430, 1459, 1417, 1431, 1418, + 1432, 1419, 1433, 1470, 1471, 1472, 1488, 1506, 1507, 1508, + 1517, 1509, 1518, 233, 540, 1036, 1037, 1038, 1039, 1157, + 1040, 1041, 1159, 234, 541, 65, 81, 454, 455, 456, + 457, 616, 458, 459, 618, 460, 461, 462, 621, 856, + 463, 622, 235, 479, 67, 82, 466, 467, 468, 625, + 469, 236, 547, 1044, 1045, 1163, 1334, 1335, 1336, 1337, + 1395, 1338, 1393, 1456, 1457, 1466, 1480, 1481, 1482, 1492, + 1483, 1484, 1485, 1486, 1496, 237, 548, 1048, 1049, 1050 }; const short Dhcp6Parser::yytable_[] = { 164, 243, 265, 320, 351, 375, 38, 398, 419, 438, - 451, 1010, 357, 981, 421, 316, 272, 1011, 422, 273, - 1012, 909, 939, 399, 420, 1240, 1241, 1242, 1250, 1256, - 251, 313, 344, 358, 377, 930, 412, 434, 274, 452, - 799, 391, 1497, 1498, 311, 339, 356, 376, 31, 1044, - 32, 30, 33, 780, 781, 782, 783, 42, 275, 252, - 314, 345, 359, 378, 163, 413, 435, 476, 453, 464, - 465, 1402, 477, 1497, 1498, 392, 86, 266, 89, 238, - 239, 240, 241, 242, 1103, 267, 44, 1104, 136, 137, - 784, 436, 437, 279, 321, 268, 280, 322, 392, 975, - 393, 394, 136, 137, 868, 395, 396, 397, 1348, 1349, - 1350, 269, 550, 1106, 270, 271, 1107, 551, 281, 323, - 799, 282, 324, 854, 855, 136, 137, 1113, 283, 325, - 1114, 129, 931, 284, 326, 335, 352, 557, 571, 285, - 327, 471, 558, 572, 287, 328, 288, 329, 46, 289, - 330, 290, 331, 864, 865, 136, 137, 291, 332, 336, - 353, 436, 437, 292, 333, 1028, 1029, 1030, 293, 334, - 276, 136, 137, 277, 575, 278, 286, 1441, 294, 576, - 295, 296, 163, 136, 137, 582, 306, 613, 307, 623, - 583, 308, 614, 470, 624, 337, 354, 338, 355, 863, - 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, - 874, 875, 876, 877, 1031, 944, 945, 878, 879, 880, - 881, 882, 883, 1403, 1404, 1405, 930, 937, 163, 938, - 627, 976, 977, 978, 979, 628, 136, 137, 880, 881, - 882, 392, 414, 393, 394, 415, 416, 417, 550, 627, - 48, 163, 557, 1061, 1062, 392, 392, 1063, 50, 98, - 99, 100, 101, 102, 103, 1372, 1373, 1374, 136, 137, - 1470, 136, 137, 1471, 1472, 1473, 1474, 34, 35, 36, - 37, 163, 136, 137, 418, 1240, 1241, 1242, 1250, 1256, - 1085, 130, 392, 52, 472, 1086, 1085, 163, 827, 828, - 829, 1087, 136, 137, 54, 1110, 1127, 1494, 1495, 163, - 1111, 1128, 1134, 835, 836, 837, 838, 1135, 1139, 136, - 137, 56, 474, 1140, 939, 991, 992, 993, 1148, 58, - 1157, 623, 1199, 1149, 849, 1158, 1159, 981, 1263, 1264, - 1265, 1266, 60, 1164, 62, 1085, 571, 1010, 1165, 1010, - 1356, 1357, 1360, 1011, 130, 1011, 1012, 1361, 1012, 613, - 1161, 1002, 163, 1162, 1371, 1003, 1004, 1005, 1006, 136, - 137, 793, 794, 795, 796, 1007, 1008, 346, 347, 348, - 349, 350, 136, 137, 1323, 64, 1324, 1325, 961, 962, - 963, 964, 965, 966, 163, 66, 1148, 163, 260, 261, - 262, 1385, 1391, 473, 484, 263, 319, 1392, 163, 163, - 1462, 592, 485, 1463, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 486, 163, 487, - 488, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 163, 130, 392, 489, 490, - 443, 444, 445, 446, 447, 448, 449, 450, 132, 133, - 134, 629, 630, 575, 582, 1429, 1459, 1492, 1394, 1395, - 1430, 1460, 1493, 491, 136, 137, 492, 256, 257, 164, - 259, 138, 139, 140, 1514, 593, 243, 493, 494, 1515, - 260, 261, 262, 495, 496, 163, 497, 263, 499, 500, - 265, 1377, 1378, 1379, 320, 501, 502, 264, 163, 503, - 507, 351, 508, 316, 272, 251, 509, 273, 510, 357, - 511, 512, 375, 513, 517, 524, 525, 526, 536, 313, - 544, 545, 398, 344, 546, 549, 274, 553, 554, 419, - 358, 555, 311, 556, 252, 421, 339, 564, 399, 422, - 565, 377, 451, 356, 574, 420, 275, 578, 314, 580, - 581, 412, 345, 597, 376, 594, 601, 605, 434, 359, - 156, 157, 602, 603, 609, 266, 606, 607, 610, 631, - 378, 452, 615, 267, 617, 619, 620, 626, 632, 633, - 413, 279, 634, 268, 280, 321, 635, 435, 322, 636, - 163, 637, 638, 639, 640, 641, 642, 643, 644, 269, - 453, 645, 270, 271, 646, 653, 281, 647, 648, 282, - 323, 649, 650, 324, 651, 652, 283, 654, 656, 655, - 325, 284, 659, 657, 658, 326, 335, 285, 660, 661, - 664, 327, 287, 352, 288, 665, 328, 289, 329, 290, - 662, 330, 663, 331, 666, 291, 667, 668, 669, 332, - 336, 292, 670, 671, 672, 333, 293, 353, 276, 673, - 334, 277, 674, 278, 286, 675, 294, 676, 295, 296, - 677, 678, 682, 679, 306, 680, 307, 681, 683, 308, - 684, 685, 686, 687, 688, 689, 337, 690, 338, 692, - 691, 164, 693, 354, 243, 355, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 694, 115, 116, 117, 118, 119, 120, 121, 695, 123, - 124, 125, 126, 251, 696, 697, 130, 698, 702, 980, - 994, 1009, 703, 705, 451, 711, 699, 700, 1045, 712, - 134, 713, 701, 714, 715, 706, 718, 318, 719, 720, - 708, 859, 252, 709, 136, 137, 707, 716, 982, 1000, - 1013, 721, 1032, 452, 92, 93, 722, 717, 94, 724, - 260, 261, 262, 725, 95, 96, 97, 263, 319, 727, - 729, 733, 734, 728, 735, 730, 731, 983, 1001, 1014, - 736, 1033, 453, 737, 738, 739, 740, 742, 743, 744, - 745, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 451, 1012, 357, 983, 421, 316, 272, 1013, 422, 273, + 1014, 911, 941, 399, 420, 1244, 1245, 1246, 1254, 1260, + 251, 313, 344, 358, 377, 30, 412, 434, 274, 452, + 391, 932, 1046, 799, 311, 339, 356, 376, 31, 86, + 32, 42, 33, 136, 137, 1502, 1503, 163, 275, 252, + 314, 345, 359, 378, 392, 413, 435, 476, 453, 89, + 436, 437, 477, 780, 781, 782, 783, 266, 238, 239, + 240, 241, 242, 550, 557, 267, 1502, 1503, 551, 558, + 129, 136, 137, 279, 321, 268, 280, 322, 392, 977, + 393, 394, 464, 465, 868, 395, 396, 397, 864, 865, + 784, 269, 1407, 1106, 270, 271, 1107, 1109, 281, 323, + 1110, 282, 324, 799, 44, 136, 137, 471, 283, 325, + 1030, 1031, 1032, 284, 326, 335, 352, 571, 933, 285, + 327, 470, 572, 575, 287, 328, 288, 329, 576, 289, + 330, 290, 331, 793, 794, 795, 796, 291, 332, 336, + 353, 163, 582, 292, 333, 46, 1446, 583, 293, 334, + 276, 136, 137, 277, 472, 278, 286, 613, 294, 1033, + 295, 296, 614, 48, 136, 137, 306, 1116, 307, 50, + 1117, 308, 136, 137, 337, 354, 52, 136, 137, 338, + 355, 863, 864, 865, 866, 867, 868, 869, 870, 871, + 872, 873, 874, 875, 876, 877, 54, 163, 56, 878, + 879, 880, 881, 882, 883, 884, 963, 964, 965, 966, + 967, 968, 978, 979, 980, 981, 880, 881, 882, 115, + 116, 117, 118, 119, 120, 121, 58, 123, 124, 125, + 126, 163, 60, 623, 130, 627, 550, 392, 624, 392, + 628, 1063, 62, 1499, 1500, 1408, 1409, 1410, 134, 627, + 932, 939, 64, 940, 1064, 318, 136, 137, 34, 35, + 36, 37, 136, 137, 136, 137, 66, 1244, 1245, 1246, + 1254, 1260, 1164, 1467, 473, 1165, 1468, 163, 260, 261, + 262, 136, 137, 557, 1088, 263, 319, 474, 1065, 1089, + 163, 484, 98, 99, 100, 101, 102, 103, 163, 1088, + 1113, 1130, 592, 163, 1090, 1114, 1131, 941, 485, 1137, + 993, 994, 995, 1475, 1138, 1203, 1476, 1477, 1478, 1479, + 983, 130, 1142, 1151, 130, 392, 1160, 1143, 1152, 623, + 1012, 1161, 1012, 486, 1162, 487, 1013, 1167, 1013, 1014, + 1004, 1014, 1168, 1088, 1005, 1006, 1007, 1008, 1361, 136, + 137, 571, 136, 137, 1009, 1010, 1362, 488, 156, 157, + 436, 437, 136, 137, 489, 367, 1327, 490, 1328, 1329, + 491, 1267, 1268, 1269, 1270, 368, 369, 370, 371, 372, + 373, 374, 163, 492, 1365, 593, 613, 603, 163, 1366, + 163, 1376, 163, 493, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 163, 1352, 1353, + 1354, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 1151, 130, 392, 1396, 575, + 1390, 582, 1434, 1397, 1399, 494, 1400, 1435, 132, 133, + 134, 629, 630, 443, 444, 445, 446, 447, 448, 449, + 450, 1464, 854, 855, 136, 137, 1465, 256, 257, 164, + 259, 138, 139, 140, 1497, 594, 243, 495, 1519, 1498, + 260, 261, 262, 1520, 496, 163, 497, 263, 163, 499, + 265, 1377, 1378, 1379, 320, 946, 947, 264, 163, 500, + 501, 351, 502, 316, 272, 251, 503, 273, 507, 357, + 508, 509, 375, 510, 1382, 1383, 1384, 511, 512, 313, + 513, 517, 398, 344, 524, 525, 274, 526, 536, 419, + 358, 544, 311, 545, 252, 421, 339, 546, 399, 422, + 549, 377, 451, 356, 553, 420, 275, 554, 314, 555, + 556, 412, 345, 564, 376, 565, 574, 578, 434, 359, + 156, 157, 580, 581, 597, 266, 601, 605, 606, 602, + 378, 452, 607, 267, 609, 610, 827, 828, 829, 615, + 413, 279, 617, 268, 280, 321, 619, 435, 322, 620, + 163, 835, 836, 837, 838, 626, 631, 632, 633, 269, + 453, 634, 270, 271, 639, 635, 281, 636, 637, 282, + 323, 638, 849, 324, 640, 647, 283, 641, 642, 643, + 325, 284, 644, 645, 646, 326, 335, 285, 653, 659, + 660, 327, 287, 352, 288, 648, 328, 289, 329, 290, + 649, 330, 650, 331, 651, 291, 652, 654, 655, 332, + 336, 292, 656, 657, 658, 333, 293, 353, 276, 661, + 334, 277, 662, 278, 286, 663, 294, 664, 295, 296, + 665, 668, 669, 666, 306, 670, 307, 671, 667, 308, + 672, 130, 673, 674, 675, 337, 676, 677, 678, 679, + 338, 164, 354, 680, 243, 681, 682, 355, 683, 684, + 685, 686, 687, 688, 346, 347, 348, 349, 350, 136, + 137, 689, 392, 414, 393, 394, 415, 416, 417, 690, + 691, 692, 693, 251, 694, 260, 261, 262, 695, 982, + 996, 1011, 263, 319, 451, 696, 697, 698, 1047, 136, + 137, 699, 702, 700, 703, 705, 701, 711, 706, 707, + 712, 859, 252, 713, 708, 418, 714, 717, 984, 1002, + 1015, 709, 1034, 452, 92, 93, 715, 716, 94, 718, + 719, 720, 721, 722, 95, 96, 97, 724, 725, 727, + 728, 729, 733, 730, 731, 734, 735, 985, 1003, 1016, + 736, 1035, 453, 737, 738, 739, 740, 742, 743, 745, + 746, 744, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 163, 747, 748, 750, 754, + 751, 756, 757, 752, 753, 131, 132, 133, 134, 759, + 760, 761, 762, 135, 763, 764, 765, 766, 768, 769, + 771, 857, 136, 137, 772, 163, 773, 774, 775, 138, + 139, 140, 141, 142, 143, 144, 776, 777, 145, 778, + 779, 786, 787, 788, 789, 790, 791, 146, 792, 798, + 32, 801, 802, 803, 804, 816, 147, 805, 806, 148, + 807, 808, 817, 1070, 809, 810, 149, 811, 812, 813, + 814, 818, 815, 820, 150, 151, 819, 822, 823, 152, + 153, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 831, 824, 825, 154, 826, + 830, 832, 155, 833, 834, 839, 840, 841, 842, 843, + 858, 844, 368, 912, 845, 916, 846, 847, 156, 157, + 158, 159, 160, 161, 848, 850, 920, 924, 928, 852, + 853, 952, 162, 955, 959, 1026, 1043, 1052, 1056, 1071, + 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 163, 1081, + 1082, 1093, 1169, 1092, 1096, 1095, 1098, 1099, 1101, 1102, + 1105, 1104, 1185, 1120, 1108, 1119, 1123, 1122, 1124, 1125, + 1126, 1127, 1128, 265, 1129, 1134, 398, 1135, 1136, 419, + 1139, 1140, 1211, 1141, 1147, 421, 316, 272, 1149, 422, + 273, 1154, 399, 1155, 1271, 420, 1218, 375, 1243, 1219, + 438, 1156, 313, 1158, 1166, 412, 1174, 1173, 434, 274, + 1278, 1258, 1176, 1177, 1179, 311, 982, 1178, 1220, 1180, + 1181, 996, 1182, 1280, 1257, 1183, 377, 1184, 1187, 275, + 1011, 314, 1011, 1194, 413, 1186, 1279, 435, 1221, 376, + 1259, 1188, 1330, 1189, 1197, 984, 1047, 1190, 266, 1198, + 1002, 320, 1281, 1195, 351, 378, 267, 1212, 1331, 1015, + 1191, 1015, 357, 1192, 279, 1213, 268, 280, 1034, 1272, + 1199, 1332, 1193, 1225, 985, 1214, 1226, 1273, 1196, 1003, + 344, 1200, 269, 358, 1201, 270, 271, 1274, 1016, 281, + 1016, 1215, 282, 339, 1216, 1217, 356, 1035, 1227, 283, + 1333, 1228, 1264, 1275, 284, 1265, 1276, 1277, 1229, 345, + 285, 1295, 359, 1230, 1247, 287, 1296, 288, 1297, 1231, + 289, 1298, 290, 1299, 1233, 1300, 1234, 1302, 291, 1235, + 1303, 1236, 1304, 1305, 292, 1306, 1308, 1237, 1248, 293, + 1309, 276, 321, 1238, 277, 322, 278, 286, 1239, 294, + 1222, 295, 296, 1223, 1310, 1224, 1232, 306, 1240, 307, + 1241, 1242, 308, 1312, 1313, 1314, 1251, 323, 1252, 1315, + 324, 1253, 1316, 1249, 1318, 1323, 1325, 325, 1250, 1342, + 1324, 1343, 326, 335, 1363, 1364, 352, 1371, 327, 1372, + 1373, 1317, 1374, 328, 1375, 329, 1389, 1348, 330, 1388, + 331, 1394, 1402, 1403, 1349, 1438, 332, 336, 1420, 1424, + 353, 1426, 333, 1322, 1437, 1439, 1340, 334, 1350, 1404, + 1405, 1351, 1356, 1357, 1358, 1441, 1359, 1360, 1367, 1368, + 1381, 1386, 1442, 1387, 1443, 1444, 1455, 1391, 1458, 1398, + 1462, 1425, 337, 1469, 1211, 354, 1428, 338, 1429, 1440, + 355, 1473, 1460, 1271, 1461, 1489, 1490, 1491, 1218, 1493, + 1243, 1219, 1494, 1495, 1511, 1392, 1512, 1411, 1513, 1278, + 1514, 1515, 1521, 1258, 1522, 1330, 1523, 1524, 1526, 1527, + 1220, 704, 1280, 1062, 851, 938, 1257, 860, 1266, 862, + 1204, 1331, 1202, 710, 1262, 1279, 1412, 1311, 1293, 1263, + 1221, 1294, 1259, 1301, 1332, 1206, 1205, 1401, 1207, 758, + 723, 1281, 1261, 1411, 390, 1447, 1208, 749, 755, 1212, + 1210, 1209, 1345, 1344, 1347, 1413, 732, 1213, 1272, 1346, + 1060, 1448, 726, 1333, 1292, 1225, 1273, 1214, 1226, 1406, + 1291, 741, 1412, 1447, 1449, 1307, 1274, 1290, 1321, 1320, + 1319, 1454, 1474, 1215, 1445, 1510, 1216, 1217, 1525, 1448, + 1227, 1326, 1275, 1228, 1042, 1276, 1277, 1501, 767, 861, + 1229, 1413, 1449, 1450, 770, 1230, 1247, 1427, 1487, 1516, + 0, 1231, 0, 1339, 0, 0, 1233, 1341, 1234, 0, + 0, 1235, 0, 1236, 0, 0, 1504, 0, 1501, 1237, + 1248, 1450, 0, 0, 0, 1238, 0, 0, 0, 0, + 1239, 0, 1222, 0, 0, 1223, 0, 1224, 1232, 0, + 1240, 0, 1241, 1242, 0, 1505, 0, 1504, 1251, 0, + 1252, 0, 0, 1253, 0, 1249, 0, 0, 0, 0, + 1250, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 0, 0, 1505, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 746, 747, 748, 750, 754, 751, - 752, 753, 756, 757, 131, 132, 133, 134, 759, 760, - 156, 157, 135, 762, 761, 763, 764, 765, 766, 768, - 771, 136, 137, 769, 772, 773, 774, 775, 138, 139, - 140, 141, 142, 143, 144, 776, 777, 145, 778, 779, - 163, 786, 788, 789, 787, 790, 146, 791, 792, 798, - 32, 801, 802, 803, 804, 147, 130, 805, 148, 806, - 807, 808, 857, 813, 809, 149, 810, 811, 812, 814, - 815, 818, 819, 150, 151, 820, 816, 822, 152, 153, - 817, 823, 831, 824, 136, 137, 825, 826, 830, 832, - 833, 834, 839, 840, 841, 842, 843, 154, 844, 845, - 367, 155, 846, 847, 848, 850, 852, 853, 858, 910, - 368, 369, 370, 371, 372, 373, 374, 156, 157, 158, - 159, 160, 161, 914, 918, 922, 926, 950, 953, 957, - 1024, 162, 1041, 1050, 1054, 368, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1075, 1076, 1077, 1079, 163, 1080, 1089, - 1090, 1092, 1093, 1096, 1095, 1099, 1181, 1098, 1102, 1101, - 1105, 1117, 1116, 1119, 1120, 1151, 1121, 1122, 1123, 1124, - 265, 1125, 1126, 398, 1131, 1132, 419, 1133, 1136, 1207, - 1137, 1138, 421, 316, 272, 1144, 422, 273, 1146, 399, - 1152, 1267, 420, 1214, 375, 1239, 1215, 438, 1153, 313, - 1155, 1163, 412, 1166, 1170, 434, 274, 1274, 1254, 1171, - 163, 1173, 311, 980, 1174, 1216, 1175, 1182, 994, 1176, - 1276, 1253, 1177, 377, 1178, 1179, 275, 1009, 314, 1009, - 1180, 413, 1183, 1275, 435, 1217, 376, 1255, 1191, 1326, - 1184, 1185, 982, 1045, 1192, 266, 1186, 1000, 320, 1277, - 1194, 351, 378, 267, 1208, 1327, 1013, 1187, 1013, 357, - 1188, 279, 1209, 268, 280, 1032, 1268, 1189, 1328, 1190, - 1221, 983, 1210, 1222, 1269, 1195, 1001, 344, 1196, 269, - 358, 1193, 270, 271, 1270, 1014, 281, 1014, 1211, 282, - 339, 1212, 1213, 356, 1033, 1223, 283, 1329, 1224, 1197, - 1271, 284, 1260, 1272, 1273, 1225, 345, 285, 1261, 359, - 1226, 1243, 287, 1291, 288, 1292, 1227, 289, 1293, 290, - 1294, 1229, 1295, 1230, 1296, 291, 1231, 1298, 1232, 1299, - 1300, 292, 1301, 1302, 1233, 1244, 293, 1304, 276, 321, - 1234, 277, 322, 278, 286, 1235, 294, 1218, 295, 296, - 1219, 1308, 1220, 1228, 306, 1236, 307, 1237, 1238, 308, - 1309, 1310, 1312, 1247, 323, 1248, 1305, 324, 1249, 1314, - 1319, 1245, 1321, 1246, 325, 1338, 1339, 1384, 1358, 326, - 335, 1306, 1359, 352, 1366, 327, 1367, 1368, 1369, 1370, - 328, 1383, 329, 1389, 1344, 330, 1397, 331, 1398, 1419, - 1415, 1311, 1421, 332, 336, 1432, 1313, 353, 1433, 333, - 1450, 1434, 1318, 1320, 334, 1420, 1336, 1345, 1436, 1346, - 1347, 1437, 1352, 1353, 1354, 1355, 1362, 1363, 1438, 1376, - 1439, 1453, 1457, 1381, 1382, 1386, 1393, 1423, 1464, 1207, - 337, 1399, 338, 354, 1400, 355, 1424, 1468, 1267, 1435, - 1455, 1456, 1484, 1214, 1485, 1239, 1215, 1486, 1488, 1489, - 1490, 1387, 1406, 1506, 1274, 1507, 1508, 1509, 1254, 1510, - 1326, 1516, 1517, 1518, 1519, 1216, 1521, 1276, 1522, 704, - 710, 1253, 1060, 851, 1200, 1198, 1327, 860, 936, 1262, - 1275, 1407, 862, 1258, 1259, 1217, 1307, 1255, 1290, 1328, - 1289, 1297, 1202, 758, 1201, 723, 1277, 1257, 1406, 1396, - 1442, 390, 1204, 1203, 1208, 749, 1206, 1205, 755, 1341, - 1408, 1340, 1209, 1268, 1343, 1342, 1443, 732, 1329, 1288, - 1221, 1269, 1210, 1222, 726, 741, 1287, 1407, 1442, 1444, - 1286, 1270, 1303, 1401, 1449, 1469, 1440, 1316, 1211, 1058, - 1317, 1212, 1213, 1505, 1443, 1223, 1520, 1271, 1224, 1322, - 1272, 1273, 1496, 1315, 1040, 1225, 1408, 1444, 1445, 861, - 1226, 1243, 1422, 1511, 770, 1335, 1227, 0, 767, 0, - 1482, 1229, 1337, 1230, 0, 0, 1231, 0, 1232, 0, - 0, 1499, 0, 1496, 1233, 1244, 1445, 0, 0, 0, - 1234, 0, 0, 0, 0, 1235, 0, 1218, 0, 0, - 1219, 0, 1220, 1228, 0, 1236, 0, 1237, 1238, 0, - 1500, 0, 1499, 1247, 0, 1248, 0, 0, 1249, 0, - 0, 1245, 0, 1246, 0, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 0, 0, - 0, 1500, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 0, 0, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, - 133, 134, 0, 0, 0, 0, 0, 253, 0, 254, - 0, 0, 0, 0, 0, 136, 137, 255, 256, 257, - 258, 259, 138, 139, 140, 0, 0, 0, 0, 0, - 0, 260, 261, 262, 0, 0, 0, 0, 263, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 264, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127, 0, 0, 130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 132, 133, 134, 0, 0, + 0, 0, 0, 253, 0, 254, 0, 0, 0, 0, + 0, 136, 137, 255, 256, 257, 258, 259, 138, 139, + 140, 0, 0, 0, 0, 0, 0, 260, 261, 262, + 0, 0, 0, 0, 263, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163 + 0, 0, 0, 0, 0, 0, 0, 163 }; const short @@ -6190,435 +6209,436 @@ namespace isc { namespace dhcp { { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, 81, 812, 75, 810, 79, 73, 73, 812, 79, 73, - 812, 777, 804, 78, 79, 1100, 1100, 1100, 1100, 1100, - 72, 73, 74, 75, 76, 137, 78, 79, 73, 81, - 677, 24, 1483, 1483, 73, 74, 75, 76, 5, 219, - 7, 0, 9, 200, 201, 202, 203, 7, 73, 72, - 73, 74, 75, 76, 234, 78, 79, 3, 81, 13, - 14, 24, 8, 1514, 1514, 81, 234, 73, 10, 16, - 17, 18, 19, 20, 3, 73, 7, 6, 108, 109, - 237, 143, 144, 73, 74, 73, 73, 74, 81, 24, - 83, 84, 108, 109, 29, 88, 89, 90, 39, 40, - 41, 73, 3, 3, 73, 73, 6, 8, 73, 74, - 757, 73, 74, 197, 198, 108, 109, 3, 73, 74, - 6, 79, 234, 73, 74, 74, 75, 3, 3, 73, - 74, 3, 8, 8, 73, 74, 73, 74, 7, 73, - 74, 73, 74, 25, 26, 108, 109, 73, 74, 74, - 75, 143, 144, 73, 74, 185, 186, 187, 73, 74, - 73, 108, 109, 73, 3, 73, 73, 183, 73, 8, - 73, 73, 234, 108, 109, 3, 73, 3, 73, 3, - 8, 73, 8, 6, 8, 74, 75, 74, 75, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 234, 122, 123, 42, 43, 44, - 45, 46, 47, 176, 177, 178, 137, 138, 234, 140, - 3, 156, 157, 158, 159, 8, 108, 109, 44, 45, - 46, 81, 82, 83, 84, 85, 86, 87, 3, 3, - 7, 234, 3, 8, 8, 81, 81, 8, 7, 48, - 49, 50, 51, 52, 53, 153, 154, 155, 108, 109, - 211, 108, 109, 214, 215, 216, 217, 234, 235, 236, - 237, 234, 108, 109, 124, 1360, 1360, 1360, 1360, 1360, - 3, 80, 81, 7, 4, 8, 3, 234, 718, 719, - 720, 8, 108, 109, 7, 3, 3, 179, 180, 234, - 8, 8, 3, 733, 734, 735, 736, 8, 3, 108, - 109, 7, 3, 8, 1106, 162, 163, 164, 3, 7, - 3, 3, 1088, 8, 754, 8, 8, 1134, 127, 128, - 129, 130, 7, 3, 7, 3, 3, 1148, 8, 1150, - 8, 8, 3, 1148, 80, 1150, 1148, 8, 1150, 3, - 3, 167, 234, 6, 8, 171, 172, 173, 174, 108, - 109, 95, 96, 97, 98, 181, 182, 103, 104, 105, - 106, 107, 108, 109, 210, 7, 212, 213, 146, 147, - 148, 149, 150, 151, 234, 7, 3, 234, 124, 125, - 126, 8, 3, 8, 4, 131, 132, 8, 234, 234, - 3, 8, 4, 6, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 4, 234, 4, - 4, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 234, 80, 81, 4, 4, - 189, 190, 191, 192, 193, 194, 195, 196, 92, 93, - 94, 471, 472, 3, 3, 3, 3, 3, 8, 8, - 8, 8, 8, 4, 108, 109, 4, 111, 112, 550, - 114, 115, 116, 117, 3, 3, 557, 4, 4, 8, - 124, 125, 126, 4, 4, 234, 4, 131, 4, 4, - 571, 168, 169, 170, 575, 4, 4, 141, 234, 4, + 812, 777, 804, 78, 79, 1103, 1103, 1103, 1103, 1103, + 72, 73, 74, 75, 76, 0, 78, 79, 73, 81, + 24, 138, 220, 677, 73, 74, 75, 76, 5, 235, + 7, 7, 9, 109, 110, 1488, 1488, 235, 73, 72, + 73, 74, 75, 76, 82, 78, 79, 3, 81, 10, + 144, 145, 8, 201, 202, 203, 204, 73, 16, 17, + 18, 19, 20, 3, 3, 73, 1519, 1519, 8, 8, + 80, 109, 110, 73, 74, 73, 73, 74, 82, 24, + 84, 85, 13, 14, 29, 89, 90, 91, 25, 26, + 238, 73, 24, 3, 73, 73, 6, 3, 73, 74, + 6, 73, 74, 757, 7, 109, 110, 3, 73, 74, + 186, 187, 188, 73, 74, 74, 75, 3, 235, 73, + 74, 6, 8, 3, 73, 74, 73, 74, 8, 73, + 74, 73, 74, 96, 97, 98, 99, 73, 74, 74, + 75, 235, 3, 73, 74, 7, 184, 8, 73, 74, + 73, 109, 110, 73, 4, 73, 73, 3, 73, 235, + 73, 73, 8, 7, 109, 110, 73, 3, 73, 7, + 6, 73, 109, 110, 74, 75, 7, 109, 110, 74, + 75, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 7, 235, 7, 42, + 43, 44, 45, 46, 47, 48, 147, 148, 149, 150, + 151, 152, 157, 158, 159, 160, 44, 45, 46, 66, + 67, 68, 69, 70, 71, 72, 7, 74, 75, 76, + 77, 235, 7, 3, 81, 3, 3, 82, 8, 82, + 8, 8, 7, 180, 181, 177, 178, 179, 95, 3, + 138, 139, 7, 141, 8, 102, 109, 110, 235, 236, + 237, 238, 109, 110, 109, 110, 7, 1365, 1365, 1365, + 1365, 1365, 3, 3, 8, 6, 6, 235, 125, 126, + 127, 109, 110, 3, 3, 132, 133, 3, 8, 8, + 235, 4, 49, 50, 51, 52, 53, 54, 235, 3, + 3, 3, 8, 235, 8, 8, 8, 1109, 4, 3, + 163, 164, 165, 212, 8, 1091, 215, 216, 217, 218, + 1137, 81, 3, 3, 81, 82, 3, 8, 8, 3, + 1151, 8, 1153, 4, 8, 4, 1151, 3, 1153, 1151, + 168, 1153, 8, 3, 172, 173, 174, 175, 8, 109, + 110, 3, 109, 110, 182, 183, 8, 4, 205, 206, + 144, 145, 109, 110, 4, 125, 211, 4, 213, 214, + 4, 128, 129, 130, 131, 135, 136, 137, 138, 139, + 140, 141, 235, 4, 3, 3, 3, 3, 235, 8, + 235, 8, 235, 4, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 235, 39, 40, + 41, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 3, 81, 82, 3, 3, + 8, 3, 3, 8, 8, 4, 8, 8, 93, 94, + 95, 471, 472, 190, 191, 192, 193, 194, 195, 196, + 197, 3, 198, 199, 109, 110, 8, 112, 113, 550, + 115, 116, 117, 118, 3, 8, 557, 4, 3, 8, + 125, 126, 127, 8, 4, 235, 4, 132, 235, 4, + 571, 154, 155, 156, 575, 123, 124, 142, 235, 4, 4, 582, 4, 571, 571, 557, 4, 571, 4, 582, - 4, 4, 593, 4, 4, 4, 4, 4, 4, 571, + 4, 4, 593, 4, 169, 170, 171, 4, 4, 571, 4, 4, 603, 575, 4, 4, 571, 4, 4, 610, 582, 4, 571, 4, 557, 610, 575, 4, 603, 610, 4, 593, 623, 582, 4, 610, 571, 4, 571, 4, - 4, 603, 575, 4, 593, 8, 4, 4, 610, 582, - 204, 205, 8, 3, 8, 571, 4, 4, 3, 234, - 593, 623, 4, 571, 4, 4, 4, 4, 4, 4, + 4, 603, 575, 4, 593, 4, 4, 4, 610, 582, + 205, 206, 4, 4, 4, 571, 4, 4, 4, 8, + 593, 623, 4, 571, 8, 3, 718, 719, 720, 4, 603, 571, 4, 571, 571, 575, 4, 610, 575, 4, - 234, 4, 4, 235, 235, 235, 235, 235, 235, 571, - 623, 235, 571, 571, 235, 4, 571, 237, 236, 571, - 575, 236, 236, 575, 235, 235, 571, 235, 237, 235, - 575, 571, 4, 237, 237, 575, 575, 571, 4, 4, - 236, 575, 571, 582, 571, 235, 575, 571, 575, 571, - 237, 575, 237, 575, 235, 571, 235, 237, 4, 575, - 575, 571, 4, 4, 235, 575, 571, 582, 571, 4, - 575, 571, 4, 571, 571, 4, 571, 4, 571, 571, - 4, 4, 4, 237, 571, 237, 571, 237, 4, 571, - 4, 4, 4, 4, 4, 4, 575, 4, 575, 4, - 235, 772, 4, 582, 775, 582, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 4, 65, 66, 67, 68, 69, 70, 71, 4, 73, - 74, 75, 76, 775, 4, 4, 80, 4, 4, 810, - 811, 812, 4, 4, 815, 4, 237, 237, 819, 4, - 94, 4, 237, 4, 4, 237, 4, 101, 4, 4, - 235, 771, 775, 235, 108, 109, 237, 235, 810, 811, - 812, 4, 814, 815, 11, 12, 4, 237, 15, 4, - 124, 125, 126, 235, 21, 22, 23, 131, 132, 4, - 4, 4, 4, 235, 4, 235, 235, 810, 811, 812, - 4, 814, 815, 4, 4, 4, 4, 4, 4, 235, - 4, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 235, 733, 734, 735, 736, 4, 235, 4, 4, 571, + 623, 4, 571, 571, 236, 4, 571, 4, 4, 571, + 575, 4, 754, 575, 236, 238, 571, 236, 236, 236, + 575, 571, 236, 236, 236, 575, 575, 571, 4, 4, + 4, 575, 571, 582, 571, 237, 575, 571, 575, 571, + 237, 575, 237, 575, 236, 571, 236, 236, 236, 575, + 575, 571, 238, 238, 238, 575, 571, 582, 571, 4, + 575, 571, 238, 571, 571, 238, 571, 237, 571, 571, + 236, 238, 4, 236, 571, 4, 571, 4, 236, 571, + 236, 81, 4, 4, 4, 575, 4, 4, 4, 238, + 575, 772, 582, 238, 775, 238, 4, 582, 4, 4, + 4, 4, 4, 4, 104, 105, 106, 107, 108, 109, + 110, 4, 82, 83, 84, 85, 86, 87, 88, 4, + 236, 4, 4, 775, 4, 125, 126, 127, 4, 810, + 811, 812, 132, 133, 815, 4, 4, 4, 819, 109, + 110, 238, 4, 238, 4, 4, 238, 4, 238, 238, + 4, 771, 775, 4, 236, 125, 4, 238, 810, 811, + 812, 236, 814, 815, 11, 12, 4, 236, 15, 4, + 4, 4, 4, 4, 21, 22, 23, 4, 236, 4, + 236, 4, 4, 236, 236, 4, 4, 810, 811, 812, + 4, 814, 815, 4, 4, 4, 4, 4, 4, 4, + 4, 236, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 4, 4, 237, 4, 4, 237, - 237, 237, 4, 4, 91, 92, 93, 94, 237, 4, - 204, 205, 99, 4, 235, 235, 235, 4, 4, 4, - 4, 108, 109, 235, 7, 234, 7, 7, 115, 116, - 117, 118, 119, 120, 121, 7, 7, 124, 5, 234, - 234, 234, 5, 5, 234, 5, 133, 234, 234, 5, - 7, 234, 5, 5, 5, 142, 80, 7, 145, 5, - 5, 5, 199, 5, 7, 152, 7, 7, 7, 7, - 7, 5, 7, 160, 161, 5, 234, 5, 165, 166, - 234, 5, 7, 234, 108, 109, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 184, 234, 234, - 124, 188, 234, 234, 234, 234, 234, 234, 5, 7, - 134, 135, 136, 137, 138, 139, 140, 204, 205, 206, - 207, 208, 209, 7, 7, 7, 7, 7, 7, 7, - 7, 218, 7, 7, 7, 134, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 234, 4, 6, - 3, 6, 3, 3, 6, 3, 235, 6, 3, 6, - 6, 3, 6, 6, 3, 6, 4, 4, 4, 4, - 1091, 4, 4, 1094, 4, 4, 1097, 4, 4, 1100, - 4, 4, 1097, 1091, 1091, 4, 1097, 1091, 4, 1094, - 3, 1112, 1097, 1100, 1115, 1100, 1100, 1118, 4, 1091, - 4, 4, 1094, 234, 6, 1097, 1091, 1112, 1100, 3, - 234, 6, 1091, 1134, 3, 1100, 8, 237, 1139, 6, - 1112, 1100, 4, 1115, 4, 4, 1091, 1148, 1091, 1150, - 4, 1094, 235, 1112, 1097, 1100, 1115, 1100, 4, 1160, - 237, 235, 1134, 1164, 237, 1091, 235, 1139, 1169, 1112, - 4, 1172, 1115, 1091, 1100, 1160, 1148, 235, 1150, 1172, - 235, 1091, 1100, 1091, 1091, 1157, 1112, 235, 1160, 235, - 1100, 1134, 1100, 1100, 1112, 4, 1139, 1169, 4, 1091, - 1172, 235, 1091, 1091, 1112, 1148, 1091, 1150, 1100, 1091, - 1169, 1100, 1100, 1172, 1157, 1100, 1091, 1160, 1100, 4, - 1112, 1091, 4, 1112, 1112, 1100, 1169, 1091, 4, 1172, - 1100, 1100, 1091, 235, 1091, 235, 1100, 1091, 235, 1091, - 235, 1100, 235, 1100, 235, 1091, 1100, 4, 1100, 4, - 235, 1091, 235, 235, 1100, 1100, 1091, 237, 1091, 1169, - 1100, 1091, 1169, 1091, 1091, 1100, 1091, 1100, 1091, 1091, - 1100, 4, 1100, 1100, 1091, 1100, 1091, 1100, 1100, 1091, - 4, 4, 4, 1100, 1169, 1100, 235, 1169, 1100, 4, - 4, 1100, 4, 1100, 1169, 6, 3, 5, 8, 1169, - 1169, 235, 8, 1172, 4, 1169, 4, 8, 3, 8, - 1169, 7, 1169, 4, 234, 1169, 4, 1169, 4, 4, - 7, 235, 4, 1169, 1169, 6, 237, 1172, 3, 1169, - 7, 5, 237, 235, 1169, 235, 237, 234, 4, 234, - 234, 4, 234, 234, 234, 234, 234, 234, 4, 234, - 4, 175, 5, 234, 234, 234, 234, 234, 7, 1360, - 1169, 237, 1169, 1172, 237, 1172, 234, 4, 1369, 234, - 234, 234, 6, 1360, 3, 1360, 1360, 234, 4, 4, - 4, 1321, 1383, 4, 1369, 237, 235, 235, 1360, 4, - 1391, 234, 234, 4, 4, 1360, 234, 1369, 234, 550, - 557, 1360, 858, 757, 1090, 1085, 1391, 772, 803, 1110, - 1369, 1383, 775, 1103, 1106, 1360, 1139, 1360, 1120, 1391, - 1118, 1127, 1093, 613, 1091, 571, 1369, 1102, 1429, 1360, - 1431, 77, 1096, 1094, 1360, 603, 1099, 1097, 610, 1171, - 1383, 1169, 1360, 1369, 1174, 1172, 1431, 582, 1391, 1117, - 1360, 1369, 1360, 1360, 575, 593, 1115, 1429, 1459, 1431, - 1113, 1369, 1134, 1369, 1433, 1459, 1429, 1150, 1360, 831, - 1152, 1360, 1360, 1485, 1459, 1360, 1514, 1369, 1360, 1157, - 1369, 1369, 1483, 1148, 815, 1360, 1429, 1459, 1431, 774, - 1360, 1360, 1391, 1492, 627, 1161, 1360, -1, 623, -1, - 1462, 1360, 1164, 1360, -1, -1, 1360, -1, 1360, -1, - -1, 1483, -1, 1514, 1360, 1360, 1459, -1, -1, -1, - 1360, -1, -1, -1, -1, 1360, -1, 1360, -1, -1, - 1360, -1, 1360, 1360, -1, 1360, -1, 1360, 1360, -1, - 1483, -1, 1514, 1360, -1, 1360, -1, -1, 1360, -1, - -1, 1360, -1, 1360, -1, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, 1514, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, -1, -1, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, -1, -1, -1, -1, -1, 100, -1, 102, - -1, -1, -1, -1, -1, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, -1, -1, -1, -1, -1, - -1, 124, 125, 126, -1, -1, -1, -1, 131, -1, - 133, -1, -1, -1, -1, -1, -1, -1, 141, -1, + 77, 78, 79, 80, 81, 235, 4, 238, 4, 4, + 238, 4, 4, 238, 238, 92, 93, 94, 95, 238, + 4, 236, 4, 100, 236, 236, 4, 4, 4, 236, + 4, 200, 109, 110, 7, 235, 235, 7, 7, 116, + 117, 118, 119, 120, 121, 122, 7, 7, 125, 5, + 235, 235, 235, 5, 5, 5, 235, 134, 235, 5, + 7, 235, 5, 5, 5, 235, 143, 7, 5, 146, + 5, 5, 235, 4, 7, 7, 153, 7, 7, 5, + 7, 5, 7, 5, 161, 162, 7, 5, 5, 166, + 167, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 7, 235, 235, 185, 235, + 235, 235, 189, 235, 235, 235, 235, 235, 235, 235, + 5, 235, 135, 7, 235, 7, 235, 235, 205, 206, + 207, 208, 209, 210, 235, 235, 7, 7, 7, 235, + 235, 7, 219, 7, 7, 7, 7, 7, 7, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 235, 4, + 4, 3, 235, 6, 3, 6, 6, 3, 6, 3, + 3, 6, 238, 3, 6, 6, 3, 6, 4, 4, + 4, 4, 4, 1094, 4, 4, 1097, 4, 4, 1100, + 4, 4, 1103, 4, 4, 1100, 1094, 1094, 4, 1100, + 1094, 6, 1097, 3, 1115, 1100, 1103, 1118, 1103, 1103, + 1121, 4, 1094, 4, 4, 1097, 3, 6, 1100, 1094, + 1115, 1103, 6, 3, 6, 1094, 1137, 8, 1103, 4, + 4, 1142, 4, 1115, 1103, 4, 1118, 236, 238, 1094, + 1151, 1094, 1153, 4, 1097, 236, 1115, 1100, 1103, 1118, + 1103, 236, 1163, 236, 4, 1137, 1167, 236, 1094, 4, + 1142, 1172, 1115, 238, 1175, 1118, 1094, 1103, 1163, 1151, + 236, 1153, 1175, 236, 1094, 1103, 1094, 1094, 1160, 1115, + 4, 1163, 236, 1103, 1137, 1103, 1103, 1115, 236, 1142, + 1172, 4, 1094, 1175, 4, 1094, 1094, 1115, 1151, 1094, + 1153, 1103, 1094, 1172, 1103, 1103, 1175, 1160, 1103, 1094, + 1163, 1103, 4, 1115, 1094, 4, 1115, 1115, 1103, 1172, + 1094, 236, 1175, 1103, 1103, 1094, 236, 1094, 236, 1103, + 1094, 236, 1094, 236, 1103, 236, 1103, 4, 1094, 1103, + 4, 1103, 236, 236, 1094, 236, 238, 1103, 1103, 1094, + 236, 1094, 1172, 1103, 1094, 1172, 1094, 1094, 1103, 1094, + 1103, 1094, 1094, 1103, 236, 1103, 1103, 1094, 1103, 1094, + 1103, 1103, 1094, 4, 4, 4, 1103, 1172, 1103, 236, + 1172, 1103, 4, 1103, 4, 4, 4, 1172, 1103, 6, + 236, 3, 1172, 1172, 8, 8, 1175, 4, 1172, 4, + 8, 238, 3, 1172, 8, 1172, 5, 235, 1172, 7, + 1172, 4, 4, 4, 235, 3, 1172, 1172, 7, 4, + 1175, 4, 1172, 238, 6, 5, 238, 1172, 235, 238, + 238, 235, 235, 235, 235, 4, 235, 235, 235, 235, + 235, 235, 4, 235, 4, 4, 7, 235, 176, 235, + 5, 236, 1172, 7, 1365, 1175, 235, 1172, 235, 235, + 1175, 4, 235, 1374, 235, 6, 3, 235, 1365, 4, + 1365, 1365, 4, 4, 4, 1325, 238, 1388, 236, 1374, + 236, 4, 235, 1365, 235, 1396, 4, 4, 235, 235, + 1365, 550, 1374, 858, 757, 803, 1365, 772, 1113, 775, + 1093, 1396, 1088, 557, 1106, 1374, 1388, 1142, 1121, 1109, + 1365, 1123, 1365, 1130, 1396, 1096, 1094, 1365, 1097, 613, + 571, 1374, 1105, 1434, 77, 1436, 1099, 603, 610, 1365, + 1102, 1100, 1174, 1172, 1177, 1388, 582, 1365, 1374, 1175, + 831, 1436, 575, 1396, 1120, 1365, 1374, 1365, 1365, 1374, + 1118, 593, 1434, 1464, 1436, 1137, 1374, 1116, 1155, 1153, + 1151, 1438, 1464, 1365, 1434, 1490, 1365, 1365, 1519, 1464, + 1365, 1160, 1374, 1365, 815, 1374, 1374, 1488, 623, 774, + 1365, 1434, 1464, 1436, 627, 1365, 1365, 1396, 1467, 1497, + -1, 1365, -1, 1164, -1, -1, 1365, 1167, 1365, -1, + -1, 1365, -1, 1365, -1, -1, 1488, -1, 1519, 1365, + 1365, 1464, -1, -1, -1, 1365, -1, -1, -1, -1, + 1365, -1, 1365, -1, -1, 1365, -1, 1365, 1365, -1, + 1365, -1, 1365, 1365, -1, 1488, -1, 1519, 1365, -1, + 1365, -1, -1, 1365, -1, 1365, -1, -1, -1, -1, + 1365, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, -1, -1, 1519, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, -1, -1, 81, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 93, 94, 95, -1, -1, + -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, + -1, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, -1, -1, -1, -1, -1, -1, 125, 126, 127, + -1, -1, -1, -1, 132, -1, 134, -1, -1, -1, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 204, 205, -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, 234 + -1, -1, -1, -1, -1, -1, -1, 235 }; const short Dhcp6Parser::yystos_[] = { - 0, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 0, 5, 7, 9, 234, 235, 236, 237, 254, 255, - 256, 261, 7, 270, 7, 275, 7, 333, 7, 447, - 7, 531, 7, 548, 7, 565, 7, 480, 7, 486, - 7, 510, 7, 423, 7, 681, 7, 700, 262, 257, - 271, 276, 334, 448, 532, 549, 566, 481, 487, 511, - 424, 682, 701, 254, 263, 264, 234, 259, 260, 10, - 272, 274, 11, 12, 15, 21, 22, 23, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 91, 92, 93, 94, 99, 108, 109, 115, 116, - 117, 118, 119, 120, 121, 124, 133, 142, 145, 152, - 160, 161, 165, 166, 184, 188, 204, 205, 206, 207, - 208, 209, 218, 234, 269, 277, 278, 279, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 301, 303, 305, 306, - 307, 310, 311, 312, 313, 314, 316, 318, 319, 320, - 321, 323, 324, 326, 328, 329, 330, 331, 343, 345, - 347, 388, 396, 402, 408, 410, 417, 431, 441, 465, - 466, 467, 470, 478, 504, 538, 540, 559, 589, 604, - 616, 617, 619, 669, 679, 698, 707, 731, 16, 17, - 18, 19, 20, 269, 335, 336, 337, 339, 340, 341, - 342, 538, 540, 100, 102, 110, 111, 112, 113, 114, - 124, 125, 126, 131, 141, 269, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 295, - 296, 297, 298, 301, 303, 305, 306, 307, 310, 311, - 312, 313, 314, 316, 318, 324, 326, 449, 450, 451, - 453, 455, 457, 459, 461, 463, 465, 466, 467, 468, - 469, 504, 525, 538, 540, 542, 559, 586, 101, 132, - 269, 295, 296, 297, 298, 301, 303, 305, 307, 310, - 311, 312, 313, 314, 316, 457, 459, 461, 463, 504, - 533, 534, 535, 537, 538, 540, 103, 104, 105, 106, - 107, 269, 457, 459, 461, 463, 504, 537, 538, 540, - 550, 551, 552, 554, 555, 557, 558, 124, 134, 135, - 136, 137, 138, 139, 140, 269, 504, 538, 540, 567, - 568, 569, 570, 572, 574, 576, 578, 580, 582, 584, - 478, 24, 81, 83, 84, 88, 89, 90, 269, 364, - 488, 489, 490, 491, 492, 493, 494, 496, 498, 500, - 501, 503, 538, 540, 82, 85, 86, 87, 124, 269, - 364, 492, 498, 512, 513, 514, 515, 516, 518, 519, - 520, 521, 522, 523, 538, 540, 143, 144, 269, 425, - 426, 427, 429, 189, 190, 191, 192, 193, 194, 195, - 196, 269, 538, 540, 683, 684, 685, 686, 688, 689, - 691, 692, 693, 696, 13, 14, 702, 703, 704, 706, - 6, 3, 4, 8, 3, 273, 3, 8, 280, 699, - 332, 344, 346, 348, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 322, 4, - 4, 4, 4, 4, 299, 302, 304, 4, 4, 4, - 4, 4, 4, 4, 442, 479, 505, 4, 325, 327, - 308, 471, 539, 541, 4, 4, 4, 397, 409, 403, - 389, 590, 560, 418, 432, 605, 4, 411, 618, 620, - 670, 680, 315, 317, 4, 4, 4, 708, 732, 4, - 3, 8, 338, 4, 4, 4, 4, 3, 8, 526, - 543, 452, 454, 456, 4, 4, 460, 462, 464, 458, - 587, 3, 8, 536, 4, 3, 8, 553, 4, 556, - 4, 4, 3, 8, 585, 571, 573, 575, 577, 579, - 581, 583, 8, 3, 8, 495, 365, 4, 499, 497, - 502, 4, 8, 3, 517, 4, 4, 4, 524, 8, - 3, 428, 430, 3, 8, 4, 687, 4, 690, 4, - 4, 694, 697, 3, 8, 705, 4, 3, 8, 254, - 254, 234, 4, 4, 4, 4, 4, 4, 4, 235, - 235, 235, 235, 235, 235, 235, 235, 237, 236, 236, - 236, 235, 235, 4, 235, 235, 237, 237, 237, 4, - 4, 4, 237, 237, 236, 235, 235, 235, 237, 4, - 4, 4, 235, 4, 4, 4, 4, 4, 4, 237, - 237, 237, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 235, 4, 4, 4, 4, 4, 4, 4, 237, - 237, 237, 4, 4, 278, 4, 237, 237, 235, 235, - 336, 4, 4, 4, 4, 4, 235, 237, 4, 4, - 4, 4, 4, 450, 4, 235, 534, 4, 235, 4, - 235, 235, 551, 4, 4, 4, 4, 4, 4, 4, - 4, 569, 4, 4, 235, 4, 4, 4, 237, 490, - 4, 237, 237, 237, 4, 514, 4, 4, 426, 237, - 4, 235, 4, 235, 235, 4, 4, 684, 4, 235, - 703, 4, 7, 234, 7, 7, 7, 7, 5, 234, - 200, 201, 202, 203, 237, 300, 234, 234, 5, 5, - 5, 234, 234, 95, 96, 97, 98, 309, 5, 256, - 258, 234, 5, 5, 5, 7, 5, 5, 5, 7, - 7, 7, 7, 5, 7, 7, 234, 234, 5, 7, - 5, 265, 5, 5, 234, 234, 234, 265, 265, 265, - 234, 7, 234, 234, 234, 265, 265, 265, 265, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 265, - 234, 258, 234, 234, 197, 198, 695, 199, 5, 254, - 277, 702, 335, 24, 25, 26, 27, 28, 29, 30, + 0, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 0, 5, 7, 9, 235, 236, 237, 238, 255, 256, + 257, 262, 7, 271, 7, 276, 7, 334, 7, 450, + 7, 534, 7, 551, 7, 568, 7, 483, 7, 489, + 7, 513, 7, 426, 7, 684, 7, 703, 263, 258, + 272, 277, 335, 451, 535, 552, 569, 484, 490, 514, + 427, 685, 704, 255, 264, 265, 235, 260, 261, 10, + 273, 275, 11, 12, 15, 21, 22, 23, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 92, 93, 94, 95, 100, 109, 110, 116, 117, + 118, 119, 120, 121, 122, 125, 134, 143, 146, 153, + 161, 162, 166, 167, 185, 189, 205, 206, 207, 208, + 209, 210, 219, 235, 270, 278, 279, 280, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 302, 304, 306, 307, + 308, 311, 312, 313, 314, 315, 317, 319, 320, 321, + 322, 324, 325, 327, 329, 330, 331, 332, 344, 346, + 348, 391, 399, 405, 411, 413, 420, 434, 444, 468, + 469, 470, 473, 481, 507, 541, 543, 562, 592, 607, + 619, 620, 622, 672, 682, 701, 710, 734, 16, 17, + 18, 19, 20, 270, 336, 337, 338, 340, 341, 342, + 343, 541, 543, 101, 103, 111, 112, 113, 114, 115, + 125, 126, 127, 132, 142, 270, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 296, + 297, 298, 299, 302, 304, 306, 307, 308, 311, 312, + 313, 314, 315, 317, 319, 325, 327, 452, 453, 454, + 456, 458, 460, 462, 464, 466, 468, 469, 470, 471, + 472, 507, 528, 541, 543, 545, 562, 589, 102, 133, + 270, 296, 297, 298, 299, 302, 304, 306, 308, 311, + 312, 313, 314, 315, 317, 460, 462, 464, 466, 507, + 536, 537, 538, 540, 541, 543, 104, 105, 106, 107, + 108, 270, 460, 462, 464, 466, 507, 540, 541, 543, + 553, 554, 555, 557, 558, 560, 561, 125, 135, 136, + 137, 138, 139, 140, 141, 270, 507, 541, 543, 570, + 571, 572, 573, 575, 577, 579, 581, 583, 585, 587, + 481, 24, 82, 84, 85, 89, 90, 91, 270, 365, + 491, 492, 493, 494, 495, 496, 497, 499, 501, 503, + 504, 506, 541, 543, 83, 86, 87, 88, 125, 270, + 365, 495, 501, 515, 516, 517, 518, 519, 521, 522, + 523, 524, 525, 526, 541, 543, 144, 145, 270, 428, + 429, 430, 432, 190, 191, 192, 193, 194, 195, 196, + 197, 270, 541, 543, 686, 687, 688, 689, 691, 692, + 694, 695, 696, 699, 13, 14, 705, 706, 707, 709, + 6, 3, 4, 8, 3, 274, 3, 8, 281, 702, + 333, 345, 347, 349, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 323, 4, + 4, 4, 4, 4, 300, 303, 305, 4, 4, 4, + 4, 4, 4, 4, 445, 482, 508, 4, 326, 328, + 309, 474, 542, 544, 4, 4, 4, 400, 412, 406, + 392, 593, 563, 421, 435, 608, 4, 414, 621, 623, + 673, 683, 316, 318, 4, 4, 4, 711, 735, 4, + 3, 8, 339, 4, 4, 4, 4, 3, 8, 529, + 546, 455, 457, 459, 4, 4, 463, 465, 467, 461, + 590, 3, 8, 539, 4, 3, 8, 556, 4, 559, + 4, 4, 3, 8, 588, 574, 576, 578, 580, 582, + 584, 586, 8, 3, 8, 498, 366, 4, 502, 500, + 505, 4, 8, 3, 520, 4, 4, 4, 527, 8, + 3, 431, 433, 3, 8, 4, 690, 4, 693, 4, + 4, 697, 700, 3, 8, 708, 4, 3, 8, 255, + 255, 235, 4, 4, 4, 4, 4, 4, 4, 236, + 236, 236, 236, 236, 236, 236, 236, 238, 237, 237, + 237, 236, 236, 4, 236, 236, 238, 238, 238, 4, + 4, 4, 238, 238, 237, 236, 236, 236, 238, 4, + 4, 4, 236, 4, 4, 4, 4, 4, 4, 238, + 238, 238, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 236, 4, 4, 4, 4, 4, 4, 4, 238, + 238, 238, 4, 4, 279, 4, 238, 238, 236, 236, + 337, 4, 4, 4, 4, 4, 236, 238, 4, 4, + 4, 4, 4, 453, 4, 236, 537, 4, 236, 4, + 236, 236, 554, 4, 4, 4, 4, 4, 4, 4, + 4, 572, 4, 4, 236, 4, 4, 4, 238, 493, + 4, 238, 238, 238, 4, 517, 4, 4, 429, 238, + 4, 236, 4, 236, 236, 4, 4, 687, 4, 236, + 706, 4, 7, 235, 7, 7, 7, 7, 5, 235, + 201, 202, 203, 204, 238, 301, 235, 235, 5, 5, + 5, 235, 235, 96, 97, 98, 99, 310, 5, 257, + 259, 235, 5, 5, 5, 7, 5, 5, 5, 7, + 7, 7, 7, 5, 7, 7, 235, 235, 5, 7, + 5, 266, 5, 5, 235, 235, 235, 266, 266, 266, + 235, 7, 235, 235, 235, 266, 266, 266, 266, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 266, + 235, 259, 235, 235, 198, 199, 698, 200, 5, 255, + 278, 705, 336, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 42, 43, - 44, 45, 46, 47, 269, 353, 354, 355, 357, 359, - 361, 363, 364, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 377, 378, 379, 380, 382, 384, 386, 353, - 7, 349, 350, 351, 7, 443, 444, 445, 7, 482, - 483, 484, 7, 506, 507, 508, 7, 472, 473, 474, - 137, 234, 398, 399, 400, 401, 263, 138, 140, 400, - 404, 405, 406, 407, 122, 123, 390, 391, 392, 394, - 7, 591, 592, 7, 561, 562, 563, 7, 419, 420, - 421, 146, 147, 148, 149, 150, 151, 433, 434, 435, - 436, 437, 438, 439, 440, 24, 156, 157, 158, 159, - 269, 366, 538, 540, 606, 607, 608, 611, 612, 614, - 615, 162, 163, 164, 269, 412, 413, 414, 415, 416, - 538, 540, 167, 171, 172, 173, 174, 181, 182, 269, - 380, 382, 384, 538, 540, 625, 626, 627, 630, 632, - 634, 635, 636, 646, 7, 621, 622, 623, 185, 186, - 187, 234, 538, 540, 671, 672, 673, 674, 676, 677, - 683, 7, 709, 710, 219, 269, 733, 734, 735, 266, - 7, 527, 528, 529, 7, 544, 545, 546, 570, 588, - 349, 8, 8, 8, 356, 358, 360, 362, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 375, 4, - 4, 381, 383, 385, 387, 3, 8, 8, 352, 6, - 3, 446, 6, 3, 485, 6, 3, 509, 6, 3, - 475, 6, 3, 3, 6, 6, 3, 6, 393, 395, - 3, 8, 593, 3, 6, 564, 6, 3, 422, 6, - 3, 4, 4, 4, 4, 4, 4, 3, 8, 609, - 613, 4, 4, 4, 3, 8, 4, 4, 4, 3, - 8, 628, 631, 633, 4, 647, 4, 637, 3, 8, - 624, 6, 3, 4, 675, 4, 678, 3, 8, 8, - 711, 3, 6, 4, 3, 8, 234, 267, 268, 530, - 6, 3, 547, 6, 3, 8, 6, 4, 4, 4, - 4, 235, 237, 235, 237, 235, 235, 235, 235, 235, - 235, 4, 237, 235, 4, 4, 4, 4, 354, 353, - 351, 449, 445, 488, 484, 512, 508, 269, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 295, 296, 297, 298, 301, 303, 305, 306, 307, - 310, 311, 312, 313, 314, 316, 318, 324, 326, 364, - 441, 453, 455, 457, 459, 461, 463, 465, 466, 467, - 469, 476, 477, 504, 538, 540, 586, 474, 399, 405, - 4, 4, 391, 127, 128, 129, 130, 269, 281, 282, - 283, 284, 285, 286, 364, 504, 538, 540, 594, 595, - 596, 597, 598, 600, 602, 603, 592, 567, 563, 425, - 421, 235, 235, 235, 235, 235, 235, 434, 4, 4, - 235, 235, 235, 607, 237, 235, 235, 413, 4, 4, - 4, 235, 4, 237, 4, 626, 625, 623, 237, 4, - 235, 4, 672, 210, 212, 213, 269, 364, 538, 540, - 712, 713, 714, 715, 717, 710, 237, 734, 6, 3, - 533, 529, 550, 546, 234, 234, 234, 234, 39, 40, - 41, 376, 234, 234, 234, 234, 8, 8, 8, 8, - 3, 8, 234, 234, 599, 601, 4, 4, 8, 3, - 8, 8, 153, 154, 155, 610, 234, 168, 169, 170, - 629, 234, 234, 7, 5, 8, 234, 254, 718, 4, - 716, 3, 8, 234, 8, 8, 477, 4, 4, 237, - 237, 596, 24, 176, 177, 178, 269, 538, 540, 648, - 649, 650, 653, 655, 657, 7, 638, 639, 640, 4, - 235, 4, 713, 234, 234, 651, 654, 656, 658, 3, - 8, 641, 6, 3, 5, 234, 4, 4, 4, 4, - 649, 183, 269, 364, 538, 540, 642, 643, 644, 640, - 7, 719, 720, 175, 652, 234, 234, 5, 645, 3, - 8, 721, 3, 6, 7, 659, 660, 661, 4, 643, - 211, 214, 215, 216, 217, 722, 723, 724, 726, 727, - 728, 729, 720, 662, 6, 3, 234, 725, 4, 4, - 4, 730, 3, 8, 179, 180, 269, 357, 359, 538, - 540, 663, 664, 665, 667, 661, 4, 237, 235, 235, - 4, 723, 666, 668, 3, 8, 234, 234, 4, 4, - 664, 234, 234 + 44, 45, 46, 47, 48, 270, 354, 355, 356, 358, + 360, 362, 364, 365, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 378, 379, 380, 381, 383, 385, 387, + 389, 354, 7, 350, 351, 352, 7, 446, 447, 448, + 7, 485, 486, 487, 7, 509, 510, 511, 7, 475, + 476, 477, 138, 235, 401, 402, 403, 404, 264, 139, + 141, 403, 407, 408, 409, 410, 123, 124, 393, 394, + 395, 397, 7, 594, 595, 7, 564, 565, 566, 7, + 422, 423, 424, 147, 148, 149, 150, 151, 152, 436, + 437, 438, 439, 440, 441, 442, 443, 24, 157, 158, + 159, 160, 270, 367, 541, 543, 609, 610, 611, 614, + 615, 617, 618, 163, 164, 165, 270, 415, 416, 417, + 418, 419, 541, 543, 168, 172, 173, 174, 175, 182, + 183, 270, 381, 383, 385, 541, 543, 628, 629, 630, + 633, 635, 637, 638, 639, 649, 7, 624, 625, 626, + 186, 187, 188, 235, 541, 543, 674, 675, 676, 677, + 679, 680, 686, 7, 712, 713, 220, 270, 736, 737, + 738, 267, 7, 530, 531, 532, 7, 547, 548, 549, + 573, 591, 350, 8, 8, 8, 357, 359, 361, 363, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 376, 4, 4, 382, 384, 386, 388, 390, 3, 8, + 8, 353, 6, 3, 449, 6, 3, 488, 6, 3, + 512, 6, 3, 478, 6, 3, 3, 6, 6, 3, + 6, 396, 398, 3, 8, 596, 3, 6, 567, 6, + 3, 425, 6, 3, 4, 4, 4, 4, 4, 4, + 3, 8, 612, 616, 4, 4, 4, 3, 8, 4, + 4, 4, 3, 8, 631, 634, 636, 4, 650, 4, + 640, 3, 8, 627, 6, 3, 4, 678, 4, 681, + 3, 8, 8, 714, 3, 6, 4, 3, 8, 235, + 268, 269, 533, 6, 3, 550, 6, 3, 8, 6, + 4, 4, 4, 4, 236, 238, 236, 238, 236, 236, + 236, 236, 236, 236, 4, 238, 236, 4, 4, 4, + 4, 4, 355, 354, 352, 452, 448, 491, 487, 515, + 511, 270, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 296, 297, 298, 299, 302, + 304, 306, 307, 308, 311, 312, 313, 314, 315, 317, + 319, 325, 327, 365, 444, 456, 458, 460, 462, 464, + 466, 468, 469, 470, 472, 479, 480, 507, 541, 543, + 589, 477, 402, 408, 4, 4, 394, 128, 129, 130, + 131, 270, 282, 283, 284, 285, 286, 287, 365, 507, + 541, 543, 597, 598, 599, 600, 601, 603, 605, 606, + 595, 570, 566, 428, 424, 236, 236, 236, 236, 236, + 236, 437, 4, 4, 236, 236, 236, 610, 238, 236, + 236, 416, 4, 4, 4, 236, 4, 238, 4, 629, + 628, 626, 238, 4, 236, 4, 675, 211, 213, 214, + 270, 365, 541, 543, 715, 716, 717, 718, 720, 713, + 238, 737, 6, 3, 536, 532, 553, 549, 235, 235, + 235, 235, 39, 40, 41, 377, 235, 235, 235, 235, + 235, 8, 8, 8, 8, 3, 8, 235, 235, 602, + 604, 4, 4, 8, 3, 8, 8, 154, 155, 156, + 613, 235, 169, 170, 171, 632, 235, 235, 7, 5, + 8, 235, 255, 721, 4, 719, 3, 8, 235, 8, + 8, 480, 4, 4, 238, 238, 599, 24, 177, 178, + 179, 270, 541, 543, 651, 652, 653, 656, 658, 660, + 7, 641, 642, 643, 4, 236, 4, 716, 235, 235, + 654, 657, 659, 661, 3, 8, 644, 6, 3, 5, + 235, 4, 4, 4, 4, 652, 184, 270, 365, 541, + 543, 645, 646, 647, 643, 7, 722, 723, 176, 655, + 235, 235, 5, 648, 3, 8, 724, 3, 6, 7, + 662, 663, 664, 4, 646, 212, 215, 216, 217, 218, + 725, 726, 727, 729, 730, 731, 732, 723, 665, 6, + 3, 235, 728, 4, 4, 4, 733, 3, 8, 180, + 181, 270, 358, 360, 541, 543, 666, 667, 668, 670, + 664, 4, 238, 236, 236, 4, 726, 669, 671, 3, + 8, 235, 235, 4, 4, 667, 235, 235 }; const short Dhcp6Parser::yyr1_[] = { - 0, 238, 240, 239, 241, 239, 242, 239, 243, 239, - 244, 239, 245, 239, 246, 239, 247, 239, 248, 239, - 249, 239, 250, 239, 251, 239, 252, 239, 253, 239, - 254, 254, 254, 254, 254, 254, 254, 255, 257, 256, - 258, 259, 259, 260, 260, 260, 262, 261, 263, 263, - 264, 264, 264, 266, 265, 267, 267, 268, 268, 268, - 269, 271, 270, 273, 272, 272, 274, 276, 275, 277, - 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 280, 279, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 299, 298, 300, 300, 300, 300, 300, - 302, 301, 304, 303, 305, 306, 308, 307, 309, 309, - 309, 309, 310, 311, 312, 313, 315, 314, 317, 316, - 318, 319, 320, 322, 321, 323, 325, 324, 327, 326, - 328, 329, 330, 332, 331, 334, 333, 335, 335, 335, - 336, 336, 336, 336, 336, 336, 336, 336, 338, 337, - 339, 340, 341, 342, 344, 343, 346, 345, 348, 347, - 349, 349, 350, 350, 350, 352, 351, 353, 353, 353, - 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, - 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, - 354, 354, 354, 356, 355, 358, 357, 360, 359, 362, - 361, 363, 365, 364, 366, 367, 368, 369, 370, 371, - 372, 373, 375, 374, 376, 376, 376, 377, 378, 379, - 381, 380, 383, 382, 385, 384, 387, 386, 389, 388, - 390, 390, 390, 391, 391, 393, 392, 395, 394, 397, - 396, 398, 398, 398, 399, 399, 400, 401, 403, 402, - 404, 404, 404, 405, 405, 405, 406, 407, 409, 408, - 411, 410, 412, 412, 412, 413, 413, 413, 413, 413, - 413, 414, 415, 416, 418, 417, 419, 419, 420, 420, - 420, 422, 421, 424, 423, 425, 425, 425, 425, 426, - 426, 428, 427, 430, 429, 432, 431, 433, 433, 433, - 434, 434, 434, 434, 434, 434, 435, 436, 437, 438, - 439, 440, 442, 441, 443, 443, 444, 444, 444, 446, - 445, 448, 447, 449, 449, 449, 450, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 450, 450, 450, 450, 452, 451, 454, - 453, 456, 455, 458, 457, 460, 459, 462, 461, 464, - 463, 465, 466, 467, 468, 469, 471, 470, 472, 472, - 473, 473, 473, 475, 474, 476, 476, 476, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, - 477, 477, 477, 477, 477, 477, 479, 478, 481, 480, - 482, 482, 483, 483, 483, 485, 484, 487, 486, 488, - 488, 489, 489, 489, 490, 490, 490, 490, 490, 490, - 490, 490, 490, 490, 491, 492, 493, 495, 494, 497, - 496, 499, 498, 500, 502, 501, 503, 505, 504, 506, - 506, 507, 507, 507, 509, 508, 511, 510, 512, 512, - 513, 513, 513, 514, 514, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 515, 517, 516, 518, 519, 520, - 521, 522, 524, 523, 526, 525, 527, 527, 528, 528, - 528, 530, 529, 532, 531, 533, 533, 533, 534, 534, - 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, - 534, 534, 536, 535, 537, 539, 538, 541, 540, 543, - 542, 544, 544, 545, 545, 545, 547, 546, 549, 548, - 550, 550, 550, 551, 551, 551, 551, 551, 551, 551, - 551, 551, 551, 551, 551, 551, 551, 553, 552, 554, - 556, 555, 557, 558, 560, 559, 561, 561, 562, 562, - 562, 564, 563, 566, 565, 567, 567, 568, 568, 568, - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 571, 570, 573, 572, 575, 574, 577, 576, - 579, 578, 581, 580, 583, 582, 585, 584, 587, 586, - 588, 590, 589, 591, 591, 591, 593, 592, 594, 594, - 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, - 596, 596, 596, 596, 596, 596, 596, 596, 597, 599, - 598, 601, 600, 602, 603, 605, 604, 606, 606, 606, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 609, - 608, 610, 610, 610, 611, 613, 612, 614, 615, 616, - 618, 617, 620, 619, 621, 621, 622, 622, 622, 624, - 623, 625, 625, 625, 626, 626, 626, 626, 626, 626, - 626, 626, 626, 626, 626, 626, 626, 628, 627, 629, - 629, 629, 631, 630, 633, 632, 634, 635, 637, 636, - 638, 638, 639, 639, 639, 641, 640, 642, 642, 642, - 643, 643, 643, 643, 643, 645, 644, 647, 646, 648, - 648, 648, 649, 649, 649, 649, 649, 649, 649, 651, - 650, 652, 654, 653, 656, 655, 658, 657, 659, 659, - 660, 660, 660, 662, 661, 663, 663, 663, 664, 664, - 664, 664, 664, 664, 664, 666, 665, 668, 667, 670, - 669, 671, 671, 671, 672, 672, 672, 672, 672, 672, - 673, 675, 674, 676, 678, 677, 680, 679, 682, 681, - 683, 683, 683, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 684, 685, 687, 686, 688, 690, 689, - 691, 692, 694, 693, 695, 695, 697, 696, 699, 698, - 701, 700, 702, 702, 702, 703, 703, 705, 704, 706, - 708, 707, 709, 709, 709, 711, 710, 712, 712, 712, - 713, 713, 713, 713, 713, 713, 713, 714, 716, 715, - 718, 717, 719, 719, 719, 721, 720, 722, 722, 722, - 723, 723, 723, 723, 723, 725, 724, 726, 727, 728, - 730, 729, 732, 731, 733, 733, 733, 734, 734, 735 + 0, 239, 241, 240, 242, 240, 243, 240, 244, 240, + 245, 240, 246, 240, 247, 240, 248, 240, 249, 240, + 250, 240, 251, 240, 252, 240, 253, 240, 254, 240, + 255, 255, 255, 255, 255, 255, 255, 256, 258, 257, + 259, 260, 260, 261, 261, 261, 263, 262, 264, 264, + 265, 265, 265, 267, 266, 268, 268, 269, 269, 269, + 270, 272, 271, 274, 273, 273, 275, 277, 276, 278, + 278, 278, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 279, 279, 279, 281, 280, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 300, 299, 301, 301, 301, 301, 301, + 303, 302, 305, 304, 306, 307, 309, 308, 310, 310, + 310, 310, 311, 312, 313, 314, 316, 315, 318, 317, + 319, 320, 321, 323, 322, 324, 326, 325, 328, 327, + 329, 330, 331, 333, 332, 335, 334, 336, 336, 336, + 337, 337, 337, 337, 337, 337, 337, 337, 339, 338, + 340, 341, 342, 343, 345, 344, 347, 346, 349, 348, + 350, 350, 351, 351, 351, 353, 352, 354, 354, 354, + 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, + 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, + 355, 355, 355, 355, 357, 356, 359, 358, 361, 360, + 363, 362, 364, 366, 365, 367, 368, 369, 370, 371, + 372, 373, 374, 376, 375, 377, 377, 377, 378, 379, + 380, 382, 381, 384, 383, 386, 385, 388, 387, 390, + 389, 392, 391, 393, 393, 393, 394, 394, 396, 395, + 398, 397, 400, 399, 401, 401, 401, 402, 402, 403, + 404, 406, 405, 407, 407, 407, 408, 408, 408, 409, + 410, 412, 411, 414, 413, 415, 415, 415, 416, 416, + 416, 416, 416, 416, 417, 418, 419, 421, 420, 422, + 422, 423, 423, 423, 425, 424, 427, 426, 428, 428, + 428, 428, 429, 429, 431, 430, 433, 432, 435, 434, + 436, 436, 436, 437, 437, 437, 437, 437, 437, 438, + 439, 440, 441, 442, 443, 445, 444, 446, 446, 447, + 447, 447, 449, 448, 451, 450, 452, 452, 452, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, + 455, 454, 457, 456, 459, 458, 461, 460, 463, 462, + 465, 464, 467, 466, 468, 469, 470, 471, 472, 474, + 473, 475, 475, 476, 476, 476, 478, 477, 479, 479, + 479, 480, 480, 480, 480, 480, 480, 480, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, 480, 482, + 481, 484, 483, 485, 485, 486, 486, 486, 488, 487, + 490, 489, 491, 491, 492, 492, 492, 493, 493, 493, + 493, 493, 493, 493, 493, 493, 493, 494, 495, 496, + 498, 497, 500, 499, 502, 501, 503, 505, 504, 506, + 508, 507, 509, 509, 510, 510, 510, 512, 511, 514, + 513, 515, 515, 516, 516, 516, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 517, 518, 520, 519, + 521, 522, 523, 524, 525, 527, 526, 529, 528, 530, + 530, 531, 531, 531, 533, 532, 535, 534, 536, 536, + 536, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, + 537, 537, 537, 537, 537, 539, 538, 540, 542, 541, + 544, 543, 546, 545, 547, 547, 548, 548, 548, 550, + 549, 552, 551, 553, 553, 553, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 556, 555, 557, 559, 558, 560, 561, 563, 562, 564, + 564, 565, 565, 565, 567, 566, 569, 568, 570, 570, + 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, + 572, 572, 572, 572, 572, 574, 573, 576, 575, 578, + 577, 580, 579, 582, 581, 584, 583, 586, 585, 588, + 587, 590, 589, 591, 593, 592, 594, 594, 594, 596, + 595, 597, 597, 598, 598, 598, 599, 599, 599, 599, + 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, + 599, 600, 602, 601, 604, 603, 605, 606, 608, 607, + 609, 609, 609, 610, 610, 610, 610, 610, 610, 610, + 610, 610, 612, 611, 613, 613, 613, 614, 616, 615, + 617, 618, 619, 621, 620, 623, 622, 624, 624, 625, + 625, 625, 627, 626, 628, 628, 628, 629, 629, 629, + 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, + 631, 630, 632, 632, 632, 634, 633, 636, 635, 637, + 638, 640, 639, 641, 641, 642, 642, 642, 644, 643, + 645, 645, 645, 646, 646, 646, 646, 646, 648, 647, + 650, 649, 651, 651, 651, 652, 652, 652, 652, 652, + 652, 652, 654, 653, 655, 657, 656, 659, 658, 661, + 660, 662, 662, 663, 663, 663, 665, 664, 666, 666, + 666, 667, 667, 667, 667, 667, 667, 667, 669, 668, + 671, 670, 673, 672, 674, 674, 674, 675, 675, 675, + 675, 675, 675, 676, 678, 677, 679, 681, 680, 683, + 682, 685, 684, 686, 686, 686, 687, 687, 687, 687, + 687, 687, 687, 687, 687, 687, 687, 688, 690, 689, + 691, 693, 692, 694, 695, 697, 696, 698, 698, 700, + 699, 702, 701, 704, 703, 705, 705, 705, 706, 706, + 708, 707, 709, 711, 710, 712, 712, 712, 714, 713, + 715, 715, 715, 716, 716, 716, 716, 716, 716, 716, + 717, 719, 718, 721, 720, 722, 722, 722, 724, 723, + 725, 725, 725, 726, 726, 726, 726, 726, 728, 727, + 729, 730, 731, 733, 732, 735, 734, 736, 736, 736, + 737, 737, 738 }; const signed char @@ -6650,80 +6670,81 @@ namespace isc { namespace dhcp { 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 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, 3, 0, 4, 3, 3, 3, 3, 3, 3, - 3, 3, 0, 4, 1, 1, 1, 3, 3, 3, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 0, 6, - 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, - 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 3, 0, 4, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 4, 1, 1, 1, 3, 3, + 3, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 3, 2, 1, 1, 0, 4, + 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, + 1, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 0, 6, 0, 6, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, + 2, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 3, 3, 3, 3, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 1, 3, 2, 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, 3, 3, 3, 3, 3, 0, + 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, - 1, 1, 3, 2, 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, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 3, - 3, 3, 0, 4, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 6, 0, 4, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 0, 1, 1, 3, 2, 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, 2, 0, 4, 0, + 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 3, 3, 3, 0, 4, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, + 2, 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, 0, 4, + 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 3, 0, 4, 0, 4, 0, - 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, + 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, - 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 0, 6, 1, 3, 2, 0, + 4, 0, 1, 1, 3, 2, 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, 0, 6, - 1, 0, 6, 1, 3, 2, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 3, 3, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 3, 0, 4, 3, 3, 3, - 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, - 1, 1, 1, 1, 1, 0, 4, 0, 6, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 0, 4, 0, 4, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, - 3, 3, 0, 4, 1, 1, 0, 4, 0, 6, - 0, 4, 1, 3, 2, 1, 1, 0, 6, 3, - 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 0, 4, 1, 1, 1, 3, 0, 4, + 3, 3, 3, 0, 6, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 1, 1, 0, 4, 0, 4, 3, + 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, + 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 1, 0, 4, 0, 4, 0, + 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 4, 3, 0, 4, 0, + 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, - 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, - 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, - 0, 4, 0, 6, 1, 3, 2, 1, 1, 3 + 3, 0, 4, 3, 3, 0, 4, 1, 1, 0, + 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, + 0, 6, 3, 0, 6, 1, 3, 2, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 3, 0, 4, 0, 6, 1, 3, 2, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, + 3, 3, 3, 0, 4, 0, 6, 1, 3, 2, + 1, 1, 3 }; @@ -6746,13 +6767,13 @@ namespace isc { namespace dhcp { "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"retry-on-startup\"", "\"max-row-errors\"", - "\"trust-anchor\"", "\"cert-file\"", "\"key-file\"", "\"cipher-list\"", - "\"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\"", "\"cache-threshold\"", "\"cache-max-age\"", - "\"decline-probation-period\"", "\"server-tag\"", + "\"trust-anchor\"", "\"cert-file\"", "\"key-file\"", "\"key-password\"", + "\"cipher-list\"", "\"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\"", "\"cache-threshold\"", + "\"cache-max-age\"", "\"decline-probation-period\"", "\"server-tag\"", "\"statistic-default-sample-count\"", "\"statistic-default-sample-age\"", "\"ddns-send-updates\"", "\"ddns-override-no-update\"", "\"ddns-override-client-update\"", "\"ddns-replace-client-name\"", @@ -6847,94 +6868,95 @@ namespace isc { namespace dhcp { "reconnect_wait_time", "on_fail", "$@43", "on_fail_mode", "retry_on_startup", "max_row_errors", "max_reconnect_tries", "trust_anchor", "$@44", "cert_file", "$@45", "key_file", "$@46", - "cipher_list", "$@47", "sanity_checks", "$@48", "sanity_checks_params", - "sanity_checks_param", "lease_checks", "$@49", "extended_info_checks", - "$@50", "mac_sources", "$@51", "mac_sources_list", "mac_sources_value", - "duid_id", "string_id", "host_reservation_identifiers", "$@52", + "key_password", "$@47", "cipher_list", "$@48", "sanity_checks", "$@49", + "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@50", + "extended_info_checks", "$@51", "mac_sources", "$@52", + "mac_sources_list", "mac_sources_value", "duid_id", "string_id", + "host_reservation_identifiers", "$@53", "host_reservation_identifiers_list", "host_reservation_identifier", - "hw_address_id", "flex_id", "relay_supplied_options", "$@53", - "dhcp_multi_threading", "$@54", "multi_threading_params", + "hw_address_id", "flex_id", "relay_supplied_options", "$@54", + "dhcp_multi_threading", "$@55", "multi_threading_params", "multi_threading_param", "enable_multi_threading", "thread_pool_size", - "packet_queue_size", "hooks_libraries", "$@55", "hooks_libraries_list", - "not_empty_hooks_libraries_list", "hooks_library", "$@56", - "sub_hooks_library", "$@57", "hooks_params", "hooks_param", "library", - "$@58", "parameters", "$@59", "expired_leases_processing", "$@60", + "packet_queue_size", "hooks_libraries", "$@56", "hooks_libraries_list", + "not_empty_hooks_libraries_list", "hooks_library", "$@57", + "sub_hooks_library", "$@58", "hooks_params", "hooks_param", "library", + "$@59", "parameters", "$@60", "expired_leases_processing", "$@61", "expired_leases_params", "expired_leases_param", "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time", - "unwarned_reclaim_cycles", "subnet6_list", "$@61", - "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@62", - "sub_subnet6", "$@63", "subnet6_params", "subnet6_param", "subnet", - "$@64", "interface", "$@65", "interface_id", "$@66", "client_class", - "$@67", "network_client_classes", "$@68", "require_client_classes", - "$@69", "evaluate_additional_classes", "$@70", "reservations_global", + "unwarned_reclaim_cycles", "subnet6_list", "$@62", + "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@63", + "sub_subnet6", "$@64", "subnet6_params", "subnet6_param", "subnet", + "$@65", "interface", "$@66", "interface_id", "$@67", "client_class", + "$@68", "network_client_classes", "$@69", "require_client_classes", + "$@70", "evaluate_additional_classes", "$@71", "reservations_global", "reservations_in_subnet", "reservations_out_of_pool", "id", - "rapid_commit", "shared_networks", "$@71", "shared_networks_content", - "shared_networks_list", "shared_network", "$@72", + "rapid_commit", "shared_networks", "$@72", "shared_networks_content", + "shared_networks_list", "shared_network", "$@73", "shared_network_params", "shared_network_param", "option_def_list", - "$@73", "sub_option_def_list", "$@74", "option_def_list_content", - "not_empty_option_def_list", "option_def_entry", "$@75", - "sub_option_def", "$@76", "option_def_params", + "$@74", "sub_option_def_list", "$@75", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@76", + "sub_option_def", "$@77", "option_def_params", "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "$@77", - "option_def_record_types", "$@78", "space", "$@79", "option_def_space", - "option_def_encapsulate", "$@80", "option_def_array", "option_data_list", - "$@81", "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@82", "sub_option_data", "$@83", + "code", "option_def_code", "option_def_type", "$@78", + "option_def_record_types", "$@79", "space", "$@80", "option_def_space", + "option_def_encapsulate", "$@81", "option_def_array", "option_data_list", + "$@82", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@83", "sub_option_data", "$@84", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@84", + "option_data_param", "option_data_name", "option_data_data", "$@85", "option_data_code", "option_data_space", "option_data_csv_format", "option_data_always_send", "option_data_never_send", - "option_data_client_classes", "$@85", "pools_list", "$@86", - "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@87", - "sub_pool6", "$@88", "pool_params", "pool_param", "pool_entry", "$@89", - "pool_id", "user_context", "$@90", "comment", "$@91", "pd_pools_list", - "$@92", "pd_pools_list_content", "not_empty_pd_pools_list", - "pd_pool_entry", "$@93", "sub_pd_pool", "$@94", "pd_pool_params", - "pd_pool_param", "pd_prefix", "$@95", "pd_prefix_len", "excluded_prefix", - "$@96", "excluded_prefix_len", "pd_delegated_len", "reservations", - "$@97", "reservations_list", "not_empty_reservations_list", - "reservation", "$@98", "sub_reservation", "$@99", "reservation_params", + "option_data_client_classes", "$@86", "pools_list", "$@87", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@88", + "sub_pool6", "$@89", "pool_params", "pool_param", "pool_entry", "$@90", + "pool_id", "user_context", "$@91", "comment", "$@92", "pd_pools_list", + "$@93", "pd_pools_list_content", "not_empty_pd_pools_list", + "pd_pool_entry", "$@94", "sub_pd_pool", "$@95", "pd_pool_params", + "pd_pool_param", "pd_prefix", "$@96", "pd_prefix_len", "excluded_prefix", + "$@97", "excluded_prefix_len", "pd_delegated_len", "reservations", + "$@98", "reservations_list", "not_empty_reservations_list", + "reservation", "$@99", "sub_reservation", "$@100", "reservation_params", "not_empty_reservation_params", "reservation_param", "ip_addresses", - "$@100", "prefixes", "$@101", "excluded_prefixes", "$@102", "duid", - "$@103", "hw_address", "$@104", "hostname", "$@105", "flex_id_value", - "$@106", "reservation_client_classes", "$@107", "relay", "$@108", - "relay_map", "client_classes", "$@109", "client_classes_list", - "client_class_entry", "$@110", "client_class_params", + "$@101", "prefixes", "$@102", "excluded_prefixes", "$@103", "duid", + "$@104", "hw_address", "$@105", "hostname", "$@106", "flex_id_value", + "$@107", "reservation_client_classes", "$@108", "relay", "$@109", + "relay_map", "client_classes", "$@110", "client_classes_list", + "client_class_entry", "$@111", "client_class_params", "not_empty_client_class_params", "client_class_param", - "client_class_name", "client_class_test", "$@111", - "client_class_template_test", "$@112", "only_if_required", - "only_in_additional_list", "server_id", "$@113", "server_id_params", - "server_id_param", "server_id_type", "$@114", "duid_type", "htype", - "identifier", "$@115", "time", "enterprise_id", "dhcp4o6_port", - "control_socket", "$@116", "control_sockets", "$@117", + "client_class_name", "client_class_test", "$@112", + "client_class_template_test", "$@113", "only_if_required", + "only_in_additional_list", "server_id", "$@114", "server_id_params", + "server_id_param", "server_id_type", "$@115", "duid_type", "htype", + "identifier", "$@116", "time", "enterprise_id", "dhcp4o6_port", + "control_socket", "$@117", "control_sockets", "$@118", "control_socket_list", "not_empty_control_socket_list", - "control_socket_entry", "$@118", "control_socket_params", - "control_socket_param", "control_socket_type", "$@119", - "control_socket_type_value", "control_socket_name", "$@120", - "control_socket_address", "$@121", "control_socket_port", - "cert_required", "http_headers", "$@122", "http_header_list", - "not_empty_http_header_list", "http_header", "$@123", - "http_header_params", "http_header_param", "header_value", "$@124", - "authentication", "$@125", "auth_params", "auth_param", "auth_type", - "$@126", "auth_type_value", "realm", "$@127", "directory", "$@128", - "clients", "$@129", "clients_list", "not_empty_clients_list", - "basic_auth", "$@130", "clients_params", "clients_param", "user_file", - "$@131", "password_file", "$@132", "dhcp_queue_control", "$@133", + "control_socket_entry", "$@119", "control_socket_params", + "control_socket_param", "control_socket_type", "$@120", + "control_socket_type_value", "control_socket_name", "$@121", + "control_socket_address", "$@122", "control_socket_port", + "cert_required", "http_headers", "$@123", "http_header_list", + "not_empty_http_header_list", "http_header", "$@124", + "http_header_params", "http_header_param", "header_value", "$@125", + "authentication", "$@126", "auth_params", "auth_param", "auth_type", + "$@127", "auth_type_value", "realm", "$@128", "directory", "$@129", + "clients", "$@130", "clients_list", "not_empty_clients_list", + "basic_auth", "$@131", "clients_params", "clients_param", "user_file", + "$@132", "password_file", "$@133", "dhcp_queue_control", "$@134", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@134", "capacity", "arbitrary_map_entry", "$@135", - "dhcp_ddns", "$@136", "sub_dhcp_ddns", "$@137", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@138", "server_port", - "sender_ip", "$@139", "sender_port", "max_queue_size", "ncr_protocol", - "$@140", "ncr_protocol_value", "ncr_format", "$@141", "config_control", - "$@142", "sub_config_control", "$@143", "config_control_params", - "config_control_param", "config_databases", "$@144", - "config_fetch_wait_time", "loggers", "$@145", "loggers_entries", - "logger_entry", "$@146", "logger_params", "logger_param", "debuglevel", - "severity", "$@147", "output_options_list", "$@148", - "output_options_list_content", "output_entry", "$@149", - "output_params_list", "output_params", "output", "$@150", "flush", - "maxsize", "maxver", "pattern", "$@151", "compatibility", "$@152", + "queue_type", "$@135", "capacity", "arbitrary_map_entry", "$@136", + "dhcp_ddns", "$@137", "sub_dhcp_ddns", "$@138", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@139", "server_port", + "sender_ip", "$@140", "sender_port", "max_queue_size", "ncr_protocol", + "$@141", "ncr_protocol_value", "ncr_format", "$@142", "config_control", + "$@143", "sub_config_control", "$@144", "config_control_params", + "config_control_param", "config_databases", "$@145", + "config_fetch_wait_time", "loggers", "$@146", "loggers_entries", + "logger_entry", "$@147", "logger_params", "logger_param", "debuglevel", + "severity", "$@148", "output_options_list", "$@149", + "output_options_list_content", "output_entry", "$@150", + "output_params_list", "output_params", "output", "$@151", "flush", + "maxsize", "maxver", "pattern", "$@152", "compatibility", "$@153", "compatibility_params", "compatibility_param", "lenient_option_parsing", YY_NULLPTR }; #endif @@ -6944,106 +6966,107 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yyrline_[] = { - 0, 332, 332, 332, 333, 333, 334, 334, 335, 335, - 336, 336, 337, 337, 338, 338, 339, 339, 340, 340, - 341, 341, 342, 342, 343, 343, 344, 344, 345, 345, - 353, 354, 355, 356, 357, 358, 359, 362, 367, 367, - 378, 381, 382, 385, 390, 396, 401, 401, 408, 409, - 412, 416, 420, 426, 426, 433, 434, 437, 441, 445, - 455, 464, 464, 479, 479, 493, 496, 502, 502, 511, - 512, 513, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 594, 594, 604, 610, 616, 622, - 628, 634, 640, 646, 652, 658, 664, 670, 676, 682, - 688, 694, 700, 706, 706, 715, 718, 721, 724, 727, - 733, 733, 742, 742, 751, 760, 770, 770, 779, 782, - 785, 788, 793, 799, 805, 811, 817, 817, 826, 826, - 835, 841, 847, 853, 853, 862, 868, 868, 877, 877, - 886, 892, 898, 904, 904, 916, 916, 925, 926, 927, - 932, 933, 934, 935, 936, 937, 938, 939, 942, 942, - 953, 959, 965, 971, 977, 977, 990, 990, 1003, 1003, - 1014, 1015, 1018, 1019, 1020, 1025, 1025, 1035, 1036, 1037, - 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, - 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1064, 1067, 1067, 1076, 1076, 1085, 1085, 1094, - 1094, 1103, 1109, 1109, 1118, 1124, 1130, 1136, 1142, 1148, - 1154, 1160, 1166, 1166, 1174, 1175, 1176, 1179, 1185, 1191, - 1197, 1197, 1206, 1206, 1215, 1215, 1224, 1224, 1233, 1233, - 1244, 1245, 1246, 1251, 1252, 1255, 1255, 1274, 1274, 1292, - 1292, 1303, 1304, 1305, 1310, 1311, 1314, 1319, 1324, 1324, - 1335, 1336, 1337, 1342, 1343, 1344, 1347, 1352, 1359, 1359, - 1372, 1372, 1385, 1386, 1387, 1392, 1393, 1394, 1395, 1396, - 1397, 1400, 1406, 1412, 1418, 1418, 1429, 1430, 1433, 1434, - 1435, 1440, 1440, 1450, 1450, 1460, 1461, 1462, 1465, 1468, - 1469, 1472, 1472, 1481, 1481, 1490, 1490, 1502, 1503, 1504, - 1509, 1510, 1511, 1512, 1513, 1514, 1517, 1523, 1529, 1535, - 1541, 1547, 1556, 1556, 1570, 1571, 1574, 1575, 1576, 1585, - 1585, 1611, 1611, 1622, 1623, 1624, 1630, 1631, 1632, 1633, - 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, - 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, - 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, - 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1683, 1683, 1692, - 1692, 1701, 1701, 1710, 1710, 1720, 1720, 1732, 1732, 1743, - 1743, 1754, 1760, 1766, 1772, 1778, 1786, 1786, 1798, 1799, - 1803, 1804, 1805, 1810, 1810, 1818, 1819, 1820, 1825, 1826, - 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, - 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, - 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, - 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, - 1867, 1868, 1869, 1870, 1871, 1872, 1879, 1879, 1893, 1893, - 1902, 1903, 1906, 1907, 1908, 1915, 1915, 1930, 1930, 1944, - 1945, 1948, 1949, 1950, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1962, 1963, 1964, 1967, 1969, 1975, 1977, 1977, 1986, - 1986, 1995, 1995, 2004, 2006, 2006, 2015, 2025, 2025, 2038, - 2039, 2044, 2045, 2046, 2053, 2053, 2065, 2065, 2077, 2078, - 2083, 2084, 2085, 2092, 2093, 2094, 2095, 2096, 2097, 2098, - 2099, 2100, 2101, 2102, 2105, 2107, 2107, 2116, 2118, 2120, - 2126, 2132, 2138, 2138, 2152, 2152, 2165, 2166, 2169, 2170, - 2171, 2176, 2176, 2186, 2186, 2196, 2197, 2198, 2203, 2204, - 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, - 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, - 2225, 2226, 2229, 2229, 2238, 2244, 2244, 2269, 2269, 2299, - 2299, 2312, 2313, 2316, 2317, 2318, 2323, 2323, 2335, 2335, - 2347, 2348, 2349, 2354, 2355, 2356, 2357, 2358, 2359, 2360, - 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2370, 2370, 2379, - 2385, 2385, 2394, 2400, 2409, 2409, 2420, 2421, 2424, 2425, - 2426, 2431, 2431, 2440, 2440, 2449, 2450, 2453, 2454, 2455, - 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, - 2471, 2472, 2475, 2475, 2486, 2486, 2497, 2497, 2508, 2508, - 2517, 2517, 2526, 2526, 2535, 2535, 2544, 2544, 2558, 2558, - 2569, 2575, 2575, 2586, 2587, 2588, 2593, 2593, 2603, 2604, - 2607, 2608, 2609, 2614, 2615, 2616, 2617, 2618, 2619, 2620, - 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2631, 2633, - 2633, 2642, 2642, 2652, 2658, 2667, 2667, 2680, 2681, 2682, - 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2698, - 2698, 2706, 2707, 2708, 2711, 2717, 2717, 2726, 2732, 2740, - 2748, 2748, 2760, 2760, 2772, 2773, 2776, 2777, 2778, 2783, - 2783, 2791, 2792, 2793, 2798, 2799, 2800, 2801, 2802, 2803, - 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2813, 2813, 2822, - 2823, 2824, 2827, 2827, 2837, 2837, 2847, 2853, 2859, 2859, - 2870, 2871, 2874, 2875, 2876, 2881, 2881, 2889, 2890, 2891, - 2896, 2897, 2898, 2899, 2900, 2903, 2903, 2914, 2914, 2927, - 2928, 2929, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2943, - 2943, 2951, 2954, 2954, 2963, 2963, 2972, 2972, 2983, 2984, - 2987, 2988, 2989, 2994, 2994, 3002, 3003, 3004, 3009, 3010, - 3011, 3012, 3013, 3014, 3015, 3018, 3018, 3027, 3027, 3038, - 3038, 3051, 3052, 3053, 3058, 3059, 3060, 3061, 3062, 3063, - 3066, 3072, 3072, 3081, 3087, 3087, 3097, 3097, 3110, 3110, - 3120, 3121, 3122, 3127, 3128, 3129, 3130, 3131, 3132, 3133, - 3134, 3135, 3136, 3137, 3140, 3146, 3146, 3155, 3161, 3161, - 3170, 3176, 3182, 3182, 3191, 3192, 3195, 3195, 3206, 3206, - 3218, 3218, 3228, 3229, 3230, 3236, 3237, 3240, 3240, 3251, - 3259, 3259, 3272, 3273, 3274, 3280, 3280, 3288, 3289, 3290, - 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3304, 3310, 3310, - 3319, 3319, 3330, 3331, 3332, 3337, 3337, 3345, 3346, 3347, - 3352, 3353, 3354, 3355, 3356, 3359, 3359, 3368, 3374, 3380, - 3386, 3386, 3395, 3395, 3406, 3407, 3408, 3413, 3414, 3417 + 0, 333, 333, 333, 334, 334, 335, 335, 336, 336, + 337, 337, 338, 338, 339, 339, 340, 340, 341, 341, + 342, 342, 343, 343, 344, 344, 345, 345, 346, 346, + 354, 355, 356, 357, 358, 359, 360, 363, 368, 368, + 379, 382, 383, 386, 391, 397, 402, 402, 409, 410, + 413, 417, 421, 427, 427, 434, 435, 438, 442, 446, + 456, 465, 465, 480, 480, 494, 497, 503, 503, 512, + 513, 514, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 595, 595, 605, 611, 617, 623, + 629, 635, 641, 647, 653, 659, 665, 671, 677, 683, + 689, 695, 701, 707, 707, 716, 719, 722, 725, 728, + 734, 734, 743, 743, 752, 761, 771, 771, 780, 783, + 786, 789, 794, 800, 806, 812, 818, 818, 827, 827, + 836, 842, 848, 854, 854, 863, 869, 869, 878, 878, + 887, 893, 899, 905, 905, 917, 917, 926, 927, 928, + 933, 934, 935, 936, 937, 938, 939, 940, 943, 943, + 954, 960, 966, 972, 978, 978, 991, 991, 1004, 1004, + 1015, 1016, 1019, 1020, 1021, 1026, 1026, 1036, 1037, 1038, + 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1069, 1069, 1078, 1078, 1087, 1087, + 1096, 1096, 1105, 1111, 1111, 1120, 1126, 1132, 1138, 1144, + 1150, 1156, 1162, 1168, 1168, 1176, 1177, 1178, 1181, 1187, + 1193, 1199, 1199, 1208, 1208, 1217, 1217, 1226, 1226, 1235, + 1235, 1244, 1244, 1255, 1256, 1257, 1262, 1263, 1266, 1266, + 1285, 1285, 1303, 1303, 1314, 1315, 1316, 1321, 1322, 1325, + 1330, 1335, 1335, 1346, 1347, 1348, 1353, 1354, 1355, 1358, + 1363, 1370, 1370, 1383, 1383, 1396, 1397, 1398, 1403, 1404, + 1405, 1406, 1407, 1408, 1411, 1417, 1423, 1429, 1429, 1440, + 1441, 1444, 1445, 1446, 1451, 1451, 1461, 1461, 1471, 1472, + 1473, 1476, 1479, 1480, 1483, 1483, 1492, 1492, 1501, 1501, + 1513, 1514, 1515, 1520, 1521, 1522, 1523, 1524, 1525, 1528, + 1534, 1540, 1546, 1552, 1558, 1567, 1567, 1581, 1582, 1585, + 1586, 1587, 1596, 1596, 1622, 1622, 1633, 1634, 1635, 1641, + 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, + 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, + 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, + 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, + 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, + 1694, 1694, 1703, 1703, 1712, 1712, 1721, 1721, 1731, 1731, + 1743, 1743, 1754, 1754, 1765, 1771, 1777, 1783, 1789, 1797, + 1797, 1809, 1810, 1814, 1815, 1816, 1821, 1821, 1829, 1830, + 1831, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, + 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, + 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, + 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, + 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1890, + 1890, 1904, 1904, 1913, 1914, 1917, 1918, 1919, 1926, 1926, + 1941, 1941, 1955, 1956, 1959, 1960, 1961, 1966, 1967, 1968, + 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1978, 1980, 1986, + 1988, 1988, 1997, 1997, 2006, 2006, 2015, 2017, 2017, 2026, + 2036, 2036, 2049, 2050, 2055, 2056, 2057, 2064, 2064, 2076, + 2076, 2088, 2089, 2094, 2095, 2096, 2103, 2104, 2105, 2106, + 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2116, 2118, 2118, + 2127, 2129, 2131, 2137, 2143, 2149, 2149, 2163, 2163, 2176, + 2177, 2180, 2181, 2182, 2187, 2187, 2197, 2197, 2207, 2208, + 2209, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, + 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, + 2233, 2234, 2235, 2236, 2237, 2240, 2240, 2249, 2255, 2255, + 2280, 2280, 2310, 2310, 2323, 2324, 2327, 2328, 2329, 2334, + 2334, 2346, 2346, 2358, 2359, 2360, 2365, 2366, 2367, 2368, + 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, + 2381, 2381, 2390, 2396, 2396, 2405, 2411, 2420, 2420, 2431, + 2432, 2435, 2436, 2437, 2442, 2442, 2451, 2451, 2460, 2461, + 2464, 2465, 2466, 2472, 2473, 2474, 2475, 2476, 2477, 2478, + 2479, 2480, 2481, 2482, 2483, 2486, 2486, 2497, 2497, 2508, + 2508, 2519, 2519, 2528, 2528, 2537, 2537, 2546, 2546, 2555, + 2555, 2569, 2569, 2580, 2586, 2586, 2597, 2598, 2599, 2604, + 2604, 2614, 2615, 2618, 2619, 2620, 2625, 2626, 2627, 2628, + 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, + 2639, 2642, 2644, 2644, 2653, 2653, 2663, 2669, 2678, 2678, + 2691, 2692, 2693, 2698, 2699, 2700, 2701, 2702, 2703, 2704, + 2705, 2706, 2709, 2709, 2717, 2718, 2719, 2722, 2728, 2728, + 2737, 2743, 2751, 2759, 2759, 2771, 2771, 2783, 2784, 2787, + 2788, 2789, 2794, 2794, 2802, 2803, 2804, 2809, 2810, 2811, + 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, + 2824, 2824, 2833, 2834, 2835, 2838, 2838, 2848, 2848, 2858, + 2864, 2870, 2870, 2881, 2882, 2885, 2886, 2887, 2892, 2892, + 2900, 2901, 2902, 2907, 2908, 2909, 2910, 2911, 2914, 2914, + 2925, 2925, 2938, 2939, 2940, 2945, 2946, 2947, 2948, 2949, + 2950, 2951, 2954, 2954, 2962, 2965, 2965, 2974, 2974, 2983, + 2983, 2994, 2995, 2998, 2999, 3000, 3005, 3005, 3013, 3014, + 3015, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3029, 3029, + 3038, 3038, 3049, 3049, 3062, 3063, 3064, 3069, 3070, 3071, + 3072, 3073, 3074, 3077, 3083, 3083, 3092, 3098, 3098, 3108, + 3108, 3121, 3121, 3131, 3132, 3133, 3138, 3139, 3140, 3141, + 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3151, 3157, 3157, + 3166, 3172, 3172, 3181, 3187, 3193, 3193, 3202, 3203, 3206, + 3206, 3217, 3217, 3229, 3229, 3239, 3240, 3241, 3247, 3248, + 3251, 3251, 3262, 3270, 3270, 3283, 3284, 3285, 3291, 3291, + 3299, 3300, 3301, 3306, 3307, 3308, 3309, 3310, 3311, 3312, + 3315, 3321, 3321, 3330, 3330, 3341, 3342, 3343, 3348, 3348, + 3356, 3357, 3358, 3363, 3364, 3365, 3366, 3367, 3370, 3370, + 3379, 3385, 3391, 3397, 3397, 3406, 3406, 3417, 3418, 3419, + 3424, 3425, 3428 }; void @@ -7076,9 +7099,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 7080 "dhcp6_parser.cc" +#line 7103 "dhcp6_parser.cc" -#line 3423 "dhcp6_parser.yy" +#line 3434 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index adb033610e..1aa1bd01ab 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -543,197 +543,198 @@ namespace isc { namespace dhcp { TOKEN_TRUST_ANCHOR = 299, // "trust-anchor" TOKEN_CERT_FILE = 300, // "cert-file" TOKEN_KEY_FILE = 301, // "key-file" - TOKEN_CIPHER_LIST = 302, // "cipher-list" - TOKEN_PREFERRED_LIFETIME = 303, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 304, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 305, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 306, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 307, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 308, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 309, // "renew-timer" - TOKEN_REBIND_TIMER = 310, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 311, // "calculate-tee-times" - TOKEN_T1_PERCENT = 312, // "t1-percent" - TOKEN_T2_PERCENT = 313, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 314, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 315, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 316, // "decline-probation-period" - TOKEN_SERVER_TAG = 317, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 318, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 319, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 320, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 321, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 322, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 323, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 324, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 325, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 326, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 327, // "ddns-use-conflict-resolution" - TOKEN_DDNS_TTL_PERCENT = 328, // "ddns-ttl-percent" - TOKEN_DDNS_TTL = 329, // "ddns-ttl" - TOKEN_DDNS_TTL_MIN = 330, // "ddns-ttl-min" - TOKEN_DDNS_TTL_MAX = 331, // "ddns-ttl-mix" - TOKEN_STORE_EXTENDED_INFO = 332, // "store-extended-info" - TOKEN_SUBNET6 = 333, // "subnet6" - TOKEN_OPTION_DEF = 334, // "option-def" - TOKEN_OPTION_DATA = 335, // "option-data" - TOKEN_NAME = 336, // "name" - TOKEN_DATA = 337, // "data" - TOKEN_CODE = 338, // "code" - TOKEN_SPACE = 339, // "space" - TOKEN_CSV_FORMAT = 340, // "csv-format" - TOKEN_ALWAYS_SEND = 341, // "always-send" - TOKEN_NEVER_SEND = 342, // "never-send" - TOKEN_RECORD_TYPES = 343, // "record-types" - TOKEN_ENCAPSULATE = 344, // "encapsulate" - TOKEN_ARRAY = 345, // "array" - TOKEN_PARKED_PACKET_LIMIT = 346, // "parked-packet-limit" - TOKEN_ALLOCATOR = 347, // "allocator" - TOKEN_PD_ALLOCATOR = 348, // "pd-allocator" - TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 349, // "ddns-conflict-resolution-mode" - TOKEN_CHECK_WITH_DHCID = 350, // "check-with-dhcid" - TOKEN_NO_CHECK_WITH_DHCID = 351, // "no-check-with-dhcid" - TOKEN_CHECK_EXISTS_WITH_DHCID = 352, // "check-exists-with-dhcid" - TOKEN_NO_CHECK_WITHOUT_DHCID = 353, // "no-check-without-dhcid" - TOKEN_SHARED_NETWORKS = 354, // "shared-networks" - TOKEN_POOLS = 355, // "pools" - TOKEN_POOL = 356, // "pool" - TOKEN_PD_POOLS = 357, // "pd-pools" - TOKEN_PREFIX = 358, // "prefix" - TOKEN_PREFIX_LEN = 359, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 360, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 361, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 362, // "delegated-len" - TOKEN_USER_CONTEXT = 363, // "user-context" - TOKEN_COMMENT = 364, // "comment" - TOKEN_SUBNET = 365, // "subnet" - TOKEN_INTERFACE = 366, // "interface" - TOKEN_INTERFACE_ID = 367, // "interface-id" - TOKEN_ID = 368, // "id" - TOKEN_RAPID_COMMIT = 369, // "rapid-commit" - TOKEN_RESERVATIONS_GLOBAL = 370, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 371, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 372, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 373, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 374, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 375, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 376, // "sanity-checks" - TOKEN_LEASE_CHECKS = 377, // "lease-checks" - TOKEN_EXTENDED_INFO_CHECKS = 378, // "extended-info-checks" - TOKEN_CLIENT_CLASSES = 379, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 380, // "require-client-classes" - TOKEN_EVALUATE_ADDITIONAL_CLASSES = 381, // "evaluate-additional-classes" - TOKEN_TEST = 382, // "test" - TOKEN_TEMPLATE_TEST = 383, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 384, // "only-if-required" - TOKEN_ONLY_IN_ADDITIONAL_LIST = 385, // "only-in-additional-list" - TOKEN_CLIENT_CLASS = 386, // "client-class" - TOKEN_POOL_ID = 387, // "pool-id" - TOKEN_RESERVATIONS = 388, // "reservations" - TOKEN_IP_ADDRESSES = 389, // "ip-addresses" - TOKEN_PREFIXES = 390, // "prefixes" - TOKEN_EXCLUDED_PREFIXES = 391, // "excluded-prefixes" - TOKEN_DUID = 392, // "duid" - TOKEN_HW_ADDRESS = 393, // "hw-address" - TOKEN_HOSTNAME = 394, // "hostname" - TOKEN_FLEX_ID = 395, // "flex-id" - TOKEN_RELAY = 396, // "relay" - TOKEN_HOOKS_LIBRARIES = 397, // "hooks-libraries" - TOKEN_LIBRARY = 398, // "library" - TOKEN_PARAMETERS = 399, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 400, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 401, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 402, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 403, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 404, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 405, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 406, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 407, // "server-id" - TOKEN_LLT = 408, // "LLT" - TOKEN_EN = 409, // "EN" - TOKEN_LL = 410, // "LL" - TOKEN_IDENTIFIER = 411, // "identifier" - TOKEN_HTYPE = 412, // "htype" - TOKEN_TIME = 413, // "time" - TOKEN_ENTERPRISE_ID = 414, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 415, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 416, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 417, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 418, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 419, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 420, // "control-socket" - TOKEN_CONTROL_SOCKETS = 421, // "control-sockets" - TOKEN_SOCKET_TYPE = 422, // "socket-type" - TOKEN_UNIX = 423, // "unix" - TOKEN_HTTP = 424, // "http" - TOKEN_HTTPS = 425, // "https" - TOKEN_SOCKET_NAME = 426, // "socket-name" - TOKEN_SOCKET_ADDRESS = 427, // "socket-address" - TOKEN_SOCKET_PORT = 428, // "socket-port" - TOKEN_AUTHENTICATION = 429, // "authentication" - TOKEN_BASIC = 430, // "basic" - TOKEN_REALM = 431, // "realm" - TOKEN_DIRECTORY = 432, // "directory" - TOKEN_CLIENTS = 433, // "clients" - TOKEN_USER_FILE = 434, // "user-file" - TOKEN_PASSWORD_FILE = 435, // "password-file" - TOKEN_CERT_REQUIRED = 436, // "cert-required" - TOKEN_HTTP_HEADERS = 437, // "http-headers" - TOKEN_VALUE = 438, // "value" - TOKEN_DHCP_QUEUE_CONTROL = 439, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 440, // "enable-queue" - TOKEN_QUEUE_TYPE = 441, // "queue-type" - TOKEN_CAPACITY = 442, // "capacity" - TOKEN_DHCP_DDNS = 443, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 444, // "enable-updates" - TOKEN_SERVER_IP = 445, // "server-ip" - TOKEN_SERVER_PORT = 446, // "server-port" - TOKEN_SENDER_IP = 447, // "sender-ip" - TOKEN_SENDER_PORT = 448, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 449, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 450, // "ncr-protocol" - TOKEN_NCR_FORMAT = 451, // "ncr-format" - TOKEN_UDP = 452, // "UDP" - TOKEN_TCP = 453, // "TCP" - TOKEN_JSON = 454, // "JSON" - TOKEN_WHEN_PRESENT = 455, // "when-present" - TOKEN_NEVER = 456, // "never" - TOKEN_ALWAYS = 457, // "always" - TOKEN_WHEN_NOT_PRESENT = 458, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 459, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 460, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 461, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 462, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 463, // "reservations-lookup-first" - TOKEN_LOGGERS = 464, // "loggers" - TOKEN_OUTPUT_OPTIONS = 465, // "output-options" - TOKEN_OUTPUT = 466, // "output" - TOKEN_DEBUGLEVEL = 467, // "debuglevel" - TOKEN_SEVERITY = 468, // "severity" - TOKEN_FLUSH = 469, // "flush" - TOKEN_MAXSIZE = 470, // "maxsize" - TOKEN_MAXVER = 471, // "maxver" - TOKEN_PATTERN = 472, // "pattern" - TOKEN_COMPATIBILITY = 473, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 474, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 475, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 476, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 477, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 478, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 479, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 480, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 481, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 482, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 483, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 484, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 485, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 486, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 487, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 488, // SUB_CONFIG_CONTROL - TOKEN_STRING = 489, // "constant string" - TOKEN_INTEGER = 490, // "integer" - TOKEN_FLOAT = 491, // "floating point" - TOKEN_BOOLEAN = 492 // "boolean" + TOKEN_KEY_PASSWORD = 302, // "key-password" + TOKEN_CIPHER_LIST = 303, // "cipher-list" + TOKEN_PREFERRED_LIFETIME = 304, // "preferred-lifetime" + TOKEN_MIN_PREFERRED_LIFETIME = 305, // "min-preferred-lifetime" + TOKEN_MAX_PREFERRED_LIFETIME = 306, // "max-preferred-lifetime" + TOKEN_VALID_LIFETIME = 307, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 308, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 309, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 310, // "renew-timer" + TOKEN_REBIND_TIMER = 311, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 312, // "calculate-tee-times" + TOKEN_T1_PERCENT = 313, // "t1-percent" + TOKEN_T2_PERCENT = 314, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 315, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 316, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 317, // "decline-probation-period" + TOKEN_SERVER_TAG = 318, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 319, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 320, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 321, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 322, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 323, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 324, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 325, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 326, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 327, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 328, // "ddns-use-conflict-resolution" + TOKEN_DDNS_TTL_PERCENT = 329, // "ddns-ttl-percent" + TOKEN_DDNS_TTL = 330, // "ddns-ttl" + TOKEN_DDNS_TTL_MIN = 331, // "ddns-ttl-min" + TOKEN_DDNS_TTL_MAX = 332, // "ddns-ttl-mix" + TOKEN_STORE_EXTENDED_INFO = 333, // "store-extended-info" + TOKEN_SUBNET6 = 334, // "subnet6" + TOKEN_OPTION_DEF = 335, // "option-def" + TOKEN_OPTION_DATA = 336, // "option-data" + TOKEN_NAME = 337, // "name" + TOKEN_DATA = 338, // "data" + TOKEN_CODE = 339, // "code" + TOKEN_SPACE = 340, // "space" + TOKEN_CSV_FORMAT = 341, // "csv-format" + TOKEN_ALWAYS_SEND = 342, // "always-send" + TOKEN_NEVER_SEND = 343, // "never-send" + TOKEN_RECORD_TYPES = 344, // "record-types" + TOKEN_ENCAPSULATE = 345, // "encapsulate" + TOKEN_ARRAY = 346, // "array" + TOKEN_PARKED_PACKET_LIMIT = 347, // "parked-packet-limit" + TOKEN_ALLOCATOR = 348, // "allocator" + TOKEN_PD_ALLOCATOR = 349, // "pd-allocator" + TOKEN_DDNS_CONFLICT_RESOLUTION_MODE = 350, // "ddns-conflict-resolution-mode" + TOKEN_CHECK_WITH_DHCID = 351, // "check-with-dhcid" + TOKEN_NO_CHECK_WITH_DHCID = 352, // "no-check-with-dhcid" + TOKEN_CHECK_EXISTS_WITH_DHCID = 353, // "check-exists-with-dhcid" + TOKEN_NO_CHECK_WITHOUT_DHCID = 354, // "no-check-without-dhcid" + TOKEN_SHARED_NETWORKS = 355, // "shared-networks" + TOKEN_POOLS = 356, // "pools" + TOKEN_POOL = 357, // "pool" + TOKEN_PD_POOLS = 358, // "pd-pools" + TOKEN_PREFIX = 359, // "prefix" + TOKEN_PREFIX_LEN = 360, // "prefix-len" + TOKEN_EXCLUDED_PREFIX = 361, // "excluded-prefix" + TOKEN_EXCLUDED_PREFIX_LEN = 362, // "excluded-prefix-len" + TOKEN_DELEGATED_LEN = 363, // "delegated-len" + TOKEN_USER_CONTEXT = 364, // "user-context" + TOKEN_COMMENT = 365, // "comment" + TOKEN_SUBNET = 366, // "subnet" + TOKEN_INTERFACE = 367, // "interface" + TOKEN_INTERFACE_ID = 368, // "interface-id" + TOKEN_ID = 369, // "id" + TOKEN_RAPID_COMMIT = 370, // "rapid-commit" + TOKEN_RESERVATIONS_GLOBAL = 371, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 372, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 373, // "reservations-out-of-pool" + TOKEN_MAC_SOURCES = 374, // "mac-sources" + TOKEN_RELAY_SUPPLIED_OPTIONS = 375, // "relay-supplied-options" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 376, // "host-reservation-identifiers" + TOKEN_SANITY_CHECKS = 377, // "sanity-checks" + TOKEN_LEASE_CHECKS = 378, // "lease-checks" + TOKEN_EXTENDED_INFO_CHECKS = 379, // "extended-info-checks" + TOKEN_CLIENT_CLASSES = 380, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 381, // "require-client-classes" + TOKEN_EVALUATE_ADDITIONAL_CLASSES = 382, // "evaluate-additional-classes" + TOKEN_TEST = 383, // "test" + TOKEN_TEMPLATE_TEST = 384, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 385, // "only-if-required" + TOKEN_ONLY_IN_ADDITIONAL_LIST = 386, // "only-in-additional-list" + TOKEN_CLIENT_CLASS = 387, // "client-class" + TOKEN_POOL_ID = 388, // "pool-id" + TOKEN_RESERVATIONS = 389, // "reservations" + TOKEN_IP_ADDRESSES = 390, // "ip-addresses" + TOKEN_PREFIXES = 391, // "prefixes" + TOKEN_EXCLUDED_PREFIXES = 392, // "excluded-prefixes" + TOKEN_DUID = 393, // "duid" + TOKEN_HW_ADDRESS = 394, // "hw-address" + TOKEN_HOSTNAME = 395, // "hostname" + TOKEN_FLEX_ID = 396, // "flex-id" + TOKEN_RELAY = 397, // "relay" + TOKEN_HOOKS_LIBRARIES = 398, // "hooks-libraries" + TOKEN_LIBRARY = 399, // "library" + TOKEN_PARAMETERS = 400, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 401, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 402, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 403, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 404, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 405, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 406, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 407, // "unwarned-reclaim-cycles" + TOKEN_SERVER_ID = 408, // "server-id" + TOKEN_LLT = 409, // "LLT" + TOKEN_EN = 410, // "EN" + TOKEN_LL = 411, // "LL" + TOKEN_IDENTIFIER = 412, // "identifier" + TOKEN_HTYPE = 413, // "htype" + TOKEN_TIME = 414, // "time" + TOKEN_ENTERPRISE_ID = 415, // "enterprise-id" + TOKEN_DHCP4O6_PORT = 416, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 417, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 418, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 419, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 420, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 421, // "control-socket" + TOKEN_CONTROL_SOCKETS = 422, // "control-sockets" + TOKEN_SOCKET_TYPE = 423, // "socket-type" + TOKEN_UNIX = 424, // "unix" + TOKEN_HTTP = 425, // "http" + TOKEN_HTTPS = 426, // "https" + TOKEN_SOCKET_NAME = 427, // "socket-name" + TOKEN_SOCKET_ADDRESS = 428, // "socket-address" + TOKEN_SOCKET_PORT = 429, // "socket-port" + TOKEN_AUTHENTICATION = 430, // "authentication" + TOKEN_BASIC = 431, // "basic" + TOKEN_REALM = 432, // "realm" + TOKEN_DIRECTORY = 433, // "directory" + TOKEN_CLIENTS = 434, // "clients" + TOKEN_USER_FILE = 435, // "user-file" + TOKEN_PASSWORD_FILE = 436, // "password-file" + TOKEN_CERT_REQUIRED = 437, // "cert-required" + TOKEN_HTTP_HEADERS = 438, // "http-headers" + TOKEN_VALUE = 439, // "value" + TOKEN_DHCP_QUEUE_CONTROL = 440, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 441, // "enable-queue" + TOKEN_QUEUE_TYPE = 442, // "queue-type" + TOKEN_CAPACITY = 443, // "capacity" + TOKEN_DHCP_DDNS = 444, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 445, // "enable-updates" + TOKEN_SERVER_IP = 446, // "server-ip" + TOKEN_SERVER_PORT = 447, // "server-port" + TOKEN_SENDER_IP = 448, // "sender-ip" + TOKEN_SENDER_PORT = 449, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 450, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 451, // "ncr-protocol" + TOKEN_NCR_FORMAT = 452, // "ncr-format" + TOKEN_UDP = 453, // "UDP" + TOKEN_TCP = 454, // "TCP" + TOKEN_JSON = 455, // "JSON" + TOKEN_WHEN_PRESENT = 456, // "when-present" + TOKEN_NEVER = 457, // "never" + TOKEN_ALWAYS = 458, // "always" + TOKEN_WHEN_NOT_PRESENT = 459, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 460, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 461, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 462, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 463, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 464, // "reservations-lookup-first" + TOKEN_LOGGERS = 465, // "loggers" + TOKEN_OUTPUT_OPTIONS = 466, // "output-options" + TOKEN_OUTPUT = 467, // "output" + TOKEN_DEBUGLEVEL = 468, // "debuglevel" + TOKEN_SEVERITY = 469, // "severity" + TOKEN_FLUSH = 470, // "flush" + TOKEN_MAXSIZE = 471, // "maxsize" + TOKEN_MAXVER = 472, // "maxver" + TOKEN_PATTERN = 473, // "pattern" + TOKEN_COMPATIBILITY = 474, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 475, // "lenient-option-parsing" + TOKEN_TOPLEVEL_JSON = 476, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP6 = 477, // TOPLEVEL_DHCP6 + TOKEN_SUB_DHCP6 = 478, // SUB_DHCP6 + TOKEN_SUB_INTERFACES6 = 479, // SUB_INTERFACES6 + TOKEN_SUB_SUBNET6 = 480, // SUB_SUBNET6 + TOKEN_SUB_POOL6 = 481, // SUB_POOL6 + TOKEN_SUB_PD_POOL = 482, // SUB_PD_POOL + TOKEN_SUB_RESERVATION = 483, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 484, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 485, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 486, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 487, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 488, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 489, // SUB_CONFIG_CONTROL + TOKEN_STRING = 490, // "constant string" + TOKEN_INTEGER = 491, // "integer" + TOKEN_FLOAT = 492, // "floating point" + TOKEN_BOOLEAN = 493 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -750,7 +751,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 238, ///< Number of tokens. + YYNTOKENS = 239, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -799,695 +800,698 @@ namespace isc { namespace dhcp { S_TRUST_ANCHOR = 44, // "trust-anchor" S_CERT_FILE = 45, // "cert-file" S_KEY_FILE = 46, // "key-file" - S_CIPHER_LIST = 47, // "cipher-list" - S_PREFERRED_LIFETIME = 48, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 49, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 50, // "max-preferred-lifetime" - S_VALID_LIFETIME = 51, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 52, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 53, // "max-valid-lifetime" - S_RENEW_TIMER = 54, // "renew-timer" - S_REBIND_TIMER = 55, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 56, // "calculate-tee-times" - S_T1_PERCENT = 57, // "t1-percent" - S_T2_PERCENT = 58, // "t2-percent" - S_CACHE_THRESHOLD = 59, // "cache-threshold" - S_CACHE_MAX_AGE = 60, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 61, // "decline-probation-period" - S_SERVER_TAG = 62, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 63, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 64, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 65, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 66, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 67, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 68, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 69, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 70, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 71, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 72, // "ddns-use-conflict-resolution" - S_DDNS_TTL_PERCENT = 73, // "ddns-ttl-percent" - S_DDNS_TTL = 74, // "ddns-ttl" - S_DDNS_TTL_MIN = 75, // "ddns-ttl-min" - S_DDNS_TTL_MAX = 76, // "ddns-ttl-mix" - S_STORE_EXTENDED_INFO = 77, // "store-extended-info" - S_SUBNET6 = 78, // "subnet6" - S_OPTION_DEF = 79, // "option-def" - S_OPTION_DATA = 80, // "option-data" - S_NAME = 81, // "name" - S_DATA = 82, // "data" - S_CODE = 83, // "code" - S_SPACE = 84, // "space" - S_CSV_FORMAT = 85, // "csv-format" - S_ALWAYS_SEND = 86, // "always-send" - S_NEVER_SEND = 87, // "never-send" - S_RECORD_TYPES = 88, // "record-types" - S_ENCAPSULATE = 89, // "encapsulate" - S_ARRAY = 90, // "array" - S_PARKED_PACKET_LIMIT = 91, // "parked-packet-limit" - S_ALLOCATOR = 92, // "allocator" - S_PD_ALLOCATOR = 93, // "pd-allocator" - S_DDNS_CONFLICT_RESOLUTION_MODE = 94, // "ddns-conflict-resolution-mode" - S_CHECK_WITH_DHCID = 95, // "check-with-dhcid" - S_NO_CHECK_WITH_DHCID = 96, // "no-check-with-dhcid" - S_CHECK_EXISTS_WITH_DHCID = 97, // "check-exists-with-dhcid" - S_NO_CHECK_WITHOUT_DHCID = 98, // "no-check-without-dhcid" - S_SHARED_NETWORKS = 99, // "shared-networks" - S_POOLS = 100, // "pools" - S_POOL = 101, // "pool" - S_PD_POOLS = 102, // "pd-pools" - S_PREFIX = 103, // "prefix" - S_PREFIX_LEN = 104, // "prefix-len" - S_EXCLUDED_PREFIX = 105, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 106, // "excluded-prefix-len" - S_DELEGATED_LEN = 107, // "delegated-len" - S_USER_CONTEXT = 108, // "user-context" - S_COMMENT = 109, // "comment" - S_SUBNET = 110, // "subnet" - S_INTERFACE = 111, // "interface" - S_INTERFACE_ID = 112, // "interface-id" - S_ID = 113, // "id" - S_RAPID_COMMIT = 114, // "rapid-commit" - S_RESERVATIONS_GLOBAL = 115, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 116, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 117, // "reservations-out-of-pool" - S_MAC_SOURCES = 118, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 119, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 120, // "host-reservation-identifiers" - S_SANITY_CHECKS = 121, // "sanity-checks" - S_LEASE_CHECKS = 122, // "lease-checks" - S_EXTENDED_INFO_CHECKS = 123, // "extended-info-checks" - S_CLIENT_CLASSES = 124, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 125, // "require-client-classes" - S_EVALUATE_ADDITIONAL_CLASSES = 126, // "evaluate-additional-classes" - S_TEST = 127, // "test" - S_TEMPLATE_TEST = 128, // "template-test" - S_ONLY_IF_REQUIRED = 129, // "only-if-required" - S_ONLY_IN_ADDITIONAL_LIST = 130, // "only-in-additional-list" - S_CLIENT_CLASS = 131, // "client-class" - S_POOL_ID = 132, // "pool-id" - S_RESERVATIONS = 133, // "reservations" - S_IP_ADDRESSES = 134, // "ip-addresses" - S_PREFIXES = 135, // "prefixes" - S_EXCLUDED_PREFIXES = 136, // "excluded-prefixes" - S_DUID = 137, // "duid" - S_HW_ADDRESS = 138, // "hw-address" - S_HOSTNAME = 139, // "hostname" - S_FLEX_ID = 140, // "flex-id" - S_RELAY = 141, // "relay" - S_HOOKS_LIBRARIES = 142, // "hooks-libraries" - S_LIBRARY = 143, // "library" - S_PARAMETERS = 144, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 145, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 146, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 147, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 148, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 149, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 150, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 151, // "unwarned-reclaim-cycles" - S_SERVER_ID = 152, // "server-id" - S_LLT = 153, // "LLT" - S_EN = 154, // "EN" - S_LL = 155, // "LL" - S_IDENTIFIER = 156, // "identifier" - S_HTYPE = 157, // "htype" - S_TIME = 158, // "time" - S_ENTERPRISE_ID = 159, // "enterprise-id" - S_DHCP4O6_PORT = 160, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 161, // "multi-threading" - S_ENABLE_MULTI_THREADING = 162, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 163, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 164, // "packet-queue-size" - S_CONTROL_SOCKET = 165, // "control-socket" - S_CONTROL_SOCKETS = 166, // "control-sockets" - S_SOCKET_TYPE = 167, // "socket-type" - S_UNIX = 168, // "unix" - S_HTTP = 169, // "http" - S_HTTPS = 170, // "https" - S_SOCKET_NAME = 171, // "socket-name" - S_SOCKET_ADDRESS = 172, // "socket-address" - S_SOCKET_PORT = 173, // "socket-port" - S_AUTHENTICATION = 174, // "authentication" - S_BASIC = 175, // "basic" - S_REALM = 176, // "realm" - S_DIRECTORY = 177, // "directory" - S_CLIENTS = 178, // "clients" - S_USER_FILE = 179, // "user-file" - S_PASSWORD_FILE = 180, // "password-file" - S_CERT_REQUIRED = 181, // "cert-required" - S_HTTP_HEADERS = 182, // "http-headers" - S_VALUE = 183, // "value" - S_DHCP_QUEUE_CONTROL = 184, // "dhcp-queue-control" - S_ENABLE_QUEUE = 185, // "enable-queue" - S_QUEUE_TYPE = 186, // "queue-type" - S_CAPACITY = 187, // "capacity" - S_DHCP_DDNS = 188, // "dhcp-ddns" - S_ENABLE_UPDATES = 189, // "enable-updates" - S_SERVER_IP = 190, // "server-ip" - S_SERVER_PORT = 191, // "server-port" - S_SENDER_IP = 192, // "sender-ip" - S_SENDER_PORT = 193, // "sender-port" - S_MAX_QUEUE_SIZE = 194, // "max-queue-size" - S_NCR_PROTOCOL = 195, // "ncr-protocol" - S_NCR_FORMAT = 196, // "ncr-format" - S_UDP = 197, // "UDP" - S_TCP = 198, // "TCP" - S_JSON = 199, // "JSON" - S_WHEN_PRESENT = 200, // "when-present" - S_NEVER = 201, // "never" - S_ALWAYS = 202, // "always" - S_WHEN_NOT_PRESENT = 203, // "when-not-present" - S_HOSTNAME_CHAR_SET = 204, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 205, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 206, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 207, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 208, // "reservations-lookup-first" - S_LOGGERS = 209, // "loggers" - S_OUTPUT_OPTIONS = 210, // "output-options" - S_OUTPUT = 211, // "output" - S_DEBUGLEVEL = 212, // "debuglevel" - S_SEVERITY = 213, // "severity" - S_FLUSH = 214, // "flush" - S_MAXSIZE = 215, // "maxsize" - S_MAXVER = 216, // "maxver" - S_PATTERN = 217, // "pattern" - S_COMPATIBILITY = 218, // "compatibility" - S_LENIENT_OPTION_PARSING = 219, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 220, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 221, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 222, // SUB_DHCP6 - S_SUB_INTERFACES6 = 223, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 224, // SUB_SUBNET6 - S_SUB_POOL6 = 225, // SUB_POOL6 - S_SUB_PD_POOL = 226, // SUB_PD_POOL - S_SUB_RESERVATION = 227, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 228, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 229, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 230, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 231, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 232, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 233, // SUB_CONFIG_CONTROL - S_STRING = 234, // "constant string" - S_INTEGER = 235, // "integer" - S_FLOAT = 236, // "floating point" - S_BOOLEAN = 237, // "boolean" - S_YYACCEPT = 238, // $accept - S_start = 239, // start - S_240_1 = 240, // $@1 - S_241_2 = 241, // $@2 - S_242_3 = 242, // $@3 - S_243_4 = 243, // $@4 - S_244_5 = 244, // $@5 - S_245_6 = 245, // $@6 - S_246_7 = 246, // $@7 - S_247_8 = 247, // $@8 - S_248_9 = 248, // $@9 - S_249_10 = 249, // $@10 - S_250_11 = 250, // $@11 - S_251_12 = 251, // $@12 - S_252_13 = 252, // $@13 - S_253_14 = 253, // $@14 - S_value = 254, // value - S_sub_json = 255, // sub_json - S_map2 = 256, // map2 - S_257_15 = 257, // $@15 - S_map_value = 258, // map_value - S_map_content = 259, // map_content - S_not_empty_map = 260, // not_empty_map - S_list_generic = 261, // list_generic - S_262_16 = 262, // $@16 - S_list_content = 263, // list_content - S_not_empty_list = 264, // not_empty_list - S_list_strings = 265, // list_strings - S_266_17 = 266, // $@17 - S_list_strings_content = 267, // list_strings_content - S_not_empty_list_strings = 268, // not_empty_list_strings - S_unknown_map_entry = 269, // unknown_map_entry - S_syntax_map = 270, // syntax_map - S_271_18 = 271, // $@18 - S_global_object = 272, // global_object - S_273_19 = 273, // $@19 - S_global_object_comma = 274, // global_object_comma - S_sub_dhcp6 = 275, // sub_dhcp6 - S_276_20 = 276, // $@20 - S_global_params = 277, // global_params - S_global_param = 278, // global_param - S_data_directory = 279, // data_directory - S_280_21 = 280, // $@21 - S_preferred_lifetime = 281, // preferred_lifetime - S_min_preferred_lifetime = 282, // min_preferred_lifetime - S_max_preferred_lifetime = 283, // max_preferred_lifetime - S_valid_lifetime = 284, // valid_lifetime - S_min_valid_lifetime = 285, // min_valid_lifetime - S_max_valid_lifetime = 286, // max_valid_lifetime - S_renew_timer = 287, // renew_timer - S_rebind_timer = 288, // rebind_timer - S_calculate_tee_times = 289, // calculate_tee_times - S_t1_percent = 290, // t1_percent - S_t2_percent = 291, // t2_percent - S_cache_threshold = 292, // cache_threshold - S_cache_max_age = 293, // cache_max_age - S_decline_probation_period = 294, // decline_probation_period - S_ddns_send_updates = 295, // ddns_send_updates - S_ddns_override_no_update = 296, // ddns_override_no_update - S_ddns_override_client_update = 297, // ddns_override_client_update - S_ddns_replace_client_name = 298, // ddns_replace_client_name - S_299_22 = 299, // $@22 - S_ddns_replace_client_name_value = 300, // ddns_replace_client_name_value - S_ddns_generated_prefix = 301, // ddns_generated_prefix - S_302_23 = 302, // $@23 - S_ddns_qualifying_suffix = 303, // ddns_qualifying_suffix - S_304_24 = 304, // $@24 - S_ddns_update_on_renew = 305, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 306, // ddns_use_conflict_resolution - S_ddns_conflict_resolution_mode = 307, // ddns_conflict_resolution_mode - S_308_25 = 308, // $@25 - S_ddns_conflict_resolution_mode_value = 309, // ddns_conflict_resolution_mode_value - S_ddns_ttl_percent = 310, // ddns_ttl_percent - S_ddns_ttl = 311, // ddns_ttl - S_ddns_ttl_min = 312, // ddns_ttl_min - S_ddns_ttl_max = 313, // ddns_ttl_max - S_hostname_char_set = 314, // hostname_char_set - S_315_26 = 315, // $@26 - S_hostname_char_replacement = 316, // hostname_char_replacement - S_317_27 = 317, // $@27 - S_store_extended_info = 318, // store_extended_info - S_statistic_default_sample_count = 319, // statistic_default_sample_count - S_statistic_default_sample_age = 320, // statistic_default_sample_age - S_server_tag = 321, // server_tag - S_322_28 = 322, // $@28 - S_parked_packet_limit = 323, // parked_packet_limit - S_allocator = 324, // allocator - S_325_29 = 325, // $@29 - S_pd_allocator = 326, // pd_allocator - S_327_30 = 327, // $@30 - S_early_global_reservations_lookup = 328, // early_global_reservations_lookup - S_ip_reservations_unique = 329, // ip_reservations_unique - S_reservations_lookup_first = 330, // reservations_lookup_first - S_interfaces_config = 331, // interfaces_config - S_332_31 = 332, // $@31 - S_sub_interfaces6 = 333, // sub_interfaces6 - S_334_32 = 334, // $@32 - S_interfaces_config_params = 335, // interfaces_config_params - S_interfaces_config_param = 336, // interfaces_config_param - S_interfaces_list = 337, // interfaces_list - S_338_33 = 338, // $@33 - S_re_detect = 339, // re_detect - S_service_sockets_require_all = 340, // service_sockets_require_all - S_service_sockets_retry_wait_time = 341, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 342, // service_sockets_max_retries - S_lease_database = 343, // lease_database - S_344_34 = 344, // $@34 - S_hosts_database = 345, // hosts_database - S_346_35 = 346, // $@35 - S_hosts_databases = 347, // hosts_databases - S_348_36 = 348, // $@36 - S_database_list = 349, // database_list - S_not_empty_database_list = 350, // not_empty_database_list - S_database = 351, // database - S_352_37 = 352, // $@37 - S_database_map_params = 353, // database_map_params - S_database_map_param = 354, // database_map_param - S_database_type = 355, // database_type - S_356_38 = 356, // $@38 - S_user = 357, // user - S_358_39 = 358, // $@39 - S_password = 359, // password - S_360_40 = 360, // $@40 - S_host = 361, // host - S_362_41 = 362, // $@41 - S_port = 363, // port - S_name = 364, // name - S_365_42 = 365, // $@42 - S_persist = 366, // persist - S_lfc_interval = 367, // lfc_interval - S_readonly = 368, // readonly - S_connect_timeout = 369, // connect_timeout - S_read_timeout = 370, // read_timeout - S_write_timeout = 371, // write_timeout - S_tcp_user_timeout = 372, // tcp_user_timeout - S_reconnect_wait_time = 373, // reconnect_wait_time - S_on_fail = 374, // on_fail - S_375_43 = 375, // $@43 - S_on_fail_mode = 376, // on_fail_mode - S_retry_on_startup = 377, // retry_on_startup - S_max_row_errors = 378, // max_row_errors - S_max_reconnect_tries = 379, // max_reconnect_tries - S_trust_anchor = 380, // trust_anchor - S_381_44 = 381, // $@44 - S_cert_file = 382, // cert_file - S_383_45 = 383, // $@45 - S_key_file = 384, // key_file - S_385_46 = 385, // $@46 - S_cipher_list = 386, // cipher_list - S_387_47 = 387, // $@47 - S_sanity_checks = 388, // sanity_checks - S_389_48 = 389, // $@48 - S_sanity_checks_params = 390, // sanity_checks_params - S_sanity_checks_param = 391, // sanity_checks_param - S_lease_checks = 392, // lease_checks - S_393_49 = 393, // $@49 - S_extended_info_checks = 394, // extended_info_checks - S_395_50 = 395, // $@50 - S_mac_sources = 396, // mac_sources - S_397_51 = 397, // $@51 - S_mac_sources_list = 398, // mac_sources_list - S_mac_sources_value = 399, // mac_sources_value - S_duid_id = 400, // duid_id - S_string_id = 401, // string_id - S_host_reservation_identifiers = 402, // host_reservation_identifiers - S_403_52 = 403, // $@52 - S_host_reservation_identifiers_list = 404, // host_reservation_identifiers_list - S_host_reservation_identifier = 405, // host_reservation_identifier - S_hw_address_id = 406, // hw_address_id - S_flex_id = 407, // flex_id - S_relay_supplied_options = 408, // relay_supplied_options - S_409_53 = 409, // $@53 - S_dhcp_multi_threading = 410, // dhcp_multi_threading - S_411_54 = 411, // $@54 - S_multi_threading_params = 412, // multi_threading_params - S_multi_threading_param = 413, // multi_threading_param - S_enable_multi_threading = 414, // enable_multi_threading - S_thread_pool_size = 415, // thread_pool_size - S_packet_queue_size = 416, // packet_queue_size - S_hooks_libraries = 417, // hooks_libraries - S_418_55 = 418, // $@55 - S_hooks_libraries_list = 419, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 420, // not_empty_hooks_libraries_list - S_hooks_library = 421, // hooks_library - S_422_56 = 422, // $@56 - S_sub_hooks_library = 423, // sub_hooks_library - S_424_57 = 424, // $@57 - S_hooks_params = 425, // hooks_params - S_hooks_param = 426, // hooks_param - S_library = 427, // library - S_428_58 = 428, // $@58 - S_parameters = 429, // parameters - S_430_59 = 430, // $@59 - S_expired_leases_processing = 431, // expired_leases_processing - S_432_60 = 432, // $@60 - S_expired_leases_params = 433, // expired_leases_params - S_expired_leases_param = 434, // expired_leases_param - S_reclaim_timer_wait_time = 435, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 436, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 437, // hold_reclaimed_time - S_max_reclaim_leases = 438, // max_reclaim_leases - S_max_reclaim_time = 439, // max_reclaim_time - S_unwarned_reclaim_cycles = 440, // unwarned_reclaim_cycles - S_subnet6_list = 441, // subnet6_list - S_442_61 = 442, // $@61 - S_subnet6_list_content = 443, // subnet6_list_content - S_not_empty_subnet6_list = 444, // not_empty_subnet6_list - S_subnet6 = 445, // subnet6 - S_446_62 = 446, // $@62 - S_sub_subnet6 = 447, // sub_subnet6 - S_448_63 = 448, // $@63 - S_subnet6_params = 449, // subnet6_params - S_subnet6_param = 450, // subnet6_param - S_subnet = 451, // subnet - S_452_64 = 452, // $@64 - S_interface = 453, // interface - S_454_65 = 454, // $@65 - S_interface_id = 455, // interface_id - S_456_66 = 456, // $@66 - S_client_class = 457, // client_class - S_458_67 = 458, // $@67 - S_network_client_classes = 459, // network_client_classes - S_460_68 = 460, // $@68 - S_require_client_classes = 461, // require_client_classes - S_462_69 = 462, // $@69 - S_evaluate_additional_classes = 463, // evaluate_additional_classes - S_464_70 = 464, // $@70 - S_reservations_global = 465, // reservations_global - S_reservations_in_subnet = 466, // reservations_in_subnet - S_reservations_out_of_pool = 467, // reservations_out_of_pool - S_id = 468, // id - S_rapid_commit = 469, // rapid_commit - S_shared_networks = 470, // shared_networks - S_471_71 = 471, // $@71 - S_shared_networks_content = 472, // shared_networks_content - S_shared_networks_list = 473, // shared_networks_list - S_shared_network = 474, // shared_network - S_475_72 = 475, // $@72 - S_shared_network_params = 476, // shared_network_params - S_shared_network_param = 477, // shared_network_param - S_option_def_list = 478, // option_def_list - S_479_73 = 479, // $@73 - S_sub_option_def_list = 480, // sub_option_def_list - S_481_74 = 481, // $@74 - S_option_def_list_content = 482, // option_def_list_content - S_not_empty_option_def_list = 483, // not_empty_option_def_list - S_option_def_entry = 484, // option_def_entry - S_485_75 = 485, // $@75 - S_sub_option_def = 486, // sub_option_def - S_487_76 = 487, // $@76 - S_option_def_params = 488, // option_def_params - S_not_empty_option_def_params = 489, // not_empty_option_def_params - S_option_def_param = 490, // option_def_param - S_option_def_name = 491, // option_def_name - S_code = 492, // code - S_option_def_code = 493, // option_def_code - S_option_def_type = 494, // option_def_type - S_495_77 = 495, // $@77 - S_option_def_record_types = 496, // option_def_record_types - S_497_78 = 497, // $@78 - S_space = 498, // space - S_499_79 = 499, // $@79 - S_option_def_space = 500, // option_def_space - S_option_def_encapsulate = 501, // option_def_encapsulate + S_KEY_PASSWORD = 47, // "key-password" + S_CIPHER_LIST = 48, // "cipher-list" + S_PREFERRED_LIFETIME = 49, // "preferred-lifetime" + S_MIN_PREFERRED_LIFETIME = 50, // "min-preferred-lifetime" + S_MAX_PREFERRED_LIFETIME = 51, // "max-preferred-lifetime" + S_VALID_LIFETIME = 52, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 53, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 54, // "max-valid-lifetime" + S_RENEW_TIMER = 55, // "renew-timer" + S_REBIND_TIMER = 56, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 57, // "calculate-tee-times" + S_T1_PERCENT = 58, // "t1-percent" + S_T2_PERCENT = 59, // "t2-percent" + S_CACHE_THRESHOLD = 60, // "cache-threshold" + S_CACHE_MAX_AGE = 61, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 62, // "decline-probation-period" + S_SERVER_TAG = 63, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 64, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 65, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 66, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 67, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 68, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 69, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 70, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 71, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 72, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 73, // "ddns-use-conflict-resolution" + S_DDNS_TTL_PERCENT = 74, // "ddns-ttl-percent" + S_DDNS_TTL = 75, // "ddns-ttl" + S_DDNS_TTL_MIN = 76, // "ddns-ttl-min" + S_DDNS_TTL_MAX = 77, // "ddns-ttl-mix" + S_STORE_EXTENDED_INFO = 78, // "store-extended-info" + S_SUBNET6 = 79, // "subnet6" + S_OPTION_DEF = 80, // "option-def" + S_OPTION_DATA = 81, // "option-data" + S_NAME = 82, // "name" + S_DATA = 83, // "data" + S_CODE = 84, // "code" + S_SPACE = 85, // "space" + S_CSV_FORMAT = 86, // "csv-format" + S_ALWAYS_SEND = 87, // "always-send" + S_NEVER_SEND = 88, // "never-send" + S_RECORD_TYPES = 89, // "record-types" + S_ENCAPSULATE = 90, // "encapsulate" + S_ARRAY = 91, // "array" + S_PARKED_PACKET_LIMIT = 92, // "parked-packet-limit" + S_ALLOCATOR = 93, // "allocator" + S_PD_ALLOCATOR = 94, // "pd-allocator" + S_DDNS_CONFLICT_RESOLUTION_MODE = 95, // "ddns-conflict-resolution-mode" + S_CHECK_WITH_DHCID = 96, // "check-with-dhcid" + S_NO_CHECK_WITH_DHCID = 97, // "no-check-with-dhcid" + S_CHECK_EXISTS_WITH_DHCID = 98, // "check-exists-with-dhcid" + S_NO_CHECK_WITHOUT_DHCID = 99, // "no-check-without-dhcid" + S_SHARED_NETWORKS = 100, // "shared-networks" + S_POOLS = 101, // "pools" + S_POOL = 102, // "pool" + S_PD_POOLS = 103, // "pd-pools" + S_PREFIX = 104, // "prefix" + S_PREFIX_LEN = 105, // "prefix-len" + S_EXCLUDED_PREFIX = 106, // "excluded-prefix" + S_EXCLUDED_PREFIX_LEN = 107, // "excluded-prefix-len" + S_DELEGATED_LEN = 108, // "delegated-len" + S_USER_CONTEXT = 109, // "user-context" + S_COMMENT = 110, // "comment" + S_SUBNET = 111, // "subnet" + S_INTERFACE = 112, // "interface" + S_INTERFACE_ID = 113, // "interface-id" + S_ID = 114, // "id" + S_RAPID_COMMIT = 115, // "rapid-commit" + S_RESERVATIONS_GLOBAL = 116, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 117, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 118, // "reservations-out-of-pool" + S_MAC_SOURCES = 119, // "mac-sources" + S_RELAY_SUPPLIED_OPTIONS = 120, // "relay-supplied-options" + S_HOST_RESERVATION_IDENTIFIERS = 121, // "host-reservation-identifiers" + S_SANITY_CHECKS = 122, // "sanity-checks" + S_LEASE_CHECKS = 123, // "lease-checks" + S_EXTENDED_INFO_CHECKS = 124, // "extended-info-checks" + S_CLIENT_CLASSES = 125, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 126, // "require-client-classes" + S_EVALUATE_ADDITIONAL_CLASSES = 127, // "evaluate-additional-classes" + S_TEST = 128, // "test" + S_TEMPLATE_TEST = 129, // "template-test" + S_ONLY_IF_REQUIRED = 130, // "only-if-required" + S_ONLY_IN_ADDITIONAL_LIST = 131, // "only-in-additional-list" + S_CLIENT_CLASS = 132, // "client-class" + S_POOL_ID = 133, // "pool-id" + S_RESERVATIONS = 134, // "reservations" + S_IP_ADDRESSES = 135, // "ip-addresses" + S_PREFIXES = 136, // "prefixes" + S_EXCLUDED_PREFIXES = 137, // "excluded-prefixes" + S_DUID = 138, // "duid" + S_HW_ADDRESS = 139, // "hw-address" + S_HOSTNAME = 140, // "hostname" + S_FLEX_ID = 141, // "flex-id" + S_RELAY = 142, // "relay" + S_HOOKS_LIBRARIES = 143, // "hooks-libraries" + S_LIBRARY = 144, // "library" + S_PARAMETERS = 145, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 146, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 147, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 148, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 149, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 150, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 151, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 152, // "unwarned-reclaim-cycles" + S_SERVER_ID = 153, // "server-id" + S_LLT = 154, // "LLT" + S_EN = 155, // "EN" + S_LL = 156, // "LL" + S_IDENTIFIER = 157, // "identifier" + S_HTYPE = 158, // "htype" + S_TIME = 159, // "time" + S_ENTERPRISE_ID = 160, // "enterprise-id" + S_DHCP4O6_PORT = 161, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 162, // "multi-threading" + S_ENABLE_MULTI_THREADING = 163, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 164, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 165, // "packet-queue-size" + S_CONTROL_SOCKET = 166, // "control-socket" + S_CONTROL_SOCKETS = 167, // "control-sockets" + S_SOCKET_TYPE = 168, // "socket-type" + S_UNIX = 169, // "unix" + S_HTTP = 170, // "http" + S_HTTPS = 171, // "https" + S_SOCKET_NAME = 172, // "socket-name" + S_SOCKET_ADDRESS = 173, // "socket-address" + S_SOCKET_PORT = 174, // "socket-port" + S_AUTHENTICATION = 175, // "authentication" + S_BASIC = 176, // "basic" + S_REALM = 177, // "realm" + S_DIRECTORY = 178, // "directory" + S_CLIENTS = 179, // "clients" + S_USER_FILE = 180, // "user-file" + S_PASSWORD_FILE = 181, // "password-file" + S_CERT_REQUIRED = 182, // "cert-required" + S_HTTP_HEADERS = 183, // "http-headers" + S_VALUE = 184, // "value" + S_DHCP_QUEUE_CONTROL = 185, // "dhcp-queue-control" + S_ENABLE_QUEUE = 186, // "enable-queue" + S_QUEUE_TYPE = 187, // "queue-type" + S_CAPACITY = 188, // "capacity" + S_DHCP_DDNS = 189, // "dhcp-ddns" + S_ENABLE_UPDATES = 190, // "enable-updates" + S_SERVER_IP = 191, // "server-ip" + S_SERVER_PORT = 192, // "server-port" + S_SENDER_IP = 193, // "sender-ip" + S_SENDER_PORT = 194, // "sender-port" + S_MAX_QUEUE_SIZE = 195, // "max-queue-size" + S_NCR_PROTOCOL = 196, // "ncr-protocol" + S_NCR_FORMAT = 197, // "ncr-format" + S_UDP = 198, // "UDP" + S_TCP = 199, // "TCP" + S_JSON = 200, // "JSON" + S_WHEN_PRESENT = 201, // "when-present" + S_NEVER = 202, // "never" + S_ALWAYS = 203, // "always" + S_WHEN_NOT_PRESENT = 204, // "when-not-present" + S_HOSTNAME_CHAR_SET = 205, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 206, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 207, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 208, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 209, // "reservations-lookup-first" + S_LOGGERS = 210, // "loggers" + S_OUTPUT_OPTIONS = 211, // "output-options" + S_OUTPUT = 212, // "output" + S_DEBUGLEVEL = 213, // "debuglevel" + S_SEVERITY = 214, // "severity" + S_FLUSH = 215, // "flush" + S_MAXSIZE = 216, // "maxsize" + S_MAXVER = 217, // "maxver" + S_PATTERN = 218, // "pattern" + S_COMPATIBILITY = 219, // "compatibility" + S_LENIENT_OPTION_PARSING = 220, // "lenient-option-parsing" + S_TOPLEVEL_JSON = 221, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP6 = 222, // TOPLEVEL_DHCP6 + S_SUB_DHCP6 = 223, // SUB_DHCP6 + S_SUB_INTERFACES6 = 224, // SUB_INTERFACES6 + S_SUB_SUBNET6 = 225, // SUB_SUBNET6 + S_SUB_POOL6 = 226, // SUB_POOL6 + S_SUB_PD_POOL = 227, // SUB_PD_POOL + S_SUB_RESERVATION = 228, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 229, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 230, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 231, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 232, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 233, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 234, // SUB_CONFIG_CONTROL + S_STRING = 235, // "constant string" + S_INTEGER = 236, // "integer" + S_FLOAT = 237, // "floating point" + S_BOOLEAN = 238, // "boolean" + S_YYACCEPT = 239, // $accept + S_start = 240, // start + S_241_1 = 241, // $@1 + S_242_2 = 242, // $@2 + S_243_3 = 243, // $@3 + S_244_4 = 244, // $@4 + S_245_5 = 245, // $@5 + S_246_6 = 246, // $@6 + S_247_7 = 247, // $@7 + S_248_8 = 248, // $@8 + S_249_9 = 249, // $@9 + S_250_10 = 250, // $@10 + S_251_11 = 251, // $@11 + S_252_12 = 252, // $@12 + S_253_13 = 253, // $@13 + S_254_14 = 254, // $@14 + S_value = 255, // value + S_sub_json = 256, // sub_json + S_map2 = 257, // map2 + S_258_15 = 258, // $@15 + S_map_value = 259, // map_value + S_map_content = 260, // map_content + S_not_empty_map = 261, // not_empty_map + S_list_generic = 262, // list_generic + S_263_16 = 263, // $@16 + S_list_content = 264, // list_content + S_not_empty_list = 265, // not_empty_list + S_list_strings = 266, // list_strings + S_267_17 = 267, // $@17 + S_list_strings_content = 268, // list_strings_content + S_not_empty_list_strings = 269, // not_empty_list_strings + S_unknown_map_entry = 270, // unknown_map_entry + S_syntax_map = 271, // syntax_map + S_272_18 = 272, // $@18 + S_global_object = 273, // global_object + S_274_19 = 274, // $@19 + S_global_object_comma = 275, // global_object_comma + S_sub_dhcp6 = 276, // sub_dhcp6 + S_277_20 = 277, // $@20 + S_global_params = 278, // global_params + S_global_param = 279, // global_param + S_data_directory = 280, // data_directory + S_281_21 = 281, // $@21 + S_preferred_lifetime = 282, // preferred_lifetime + S_min_preferred_lifetime = 283, // min_preferred_lifetime + S_max_preferred_lifetime = 284, // max_preferred_lifetime + S_valid_lifetime = 285, // valid_lifetime + S_min_valid_lifetime = 286, // min_valid_lifetime + S_max_valid_lifetime = 287, // max_valid_lifetime + S_renew_timer = 288, // renew_timer + S_rebind_timer = 289, // rebind_timer + S_calculate_tee_times = 290, // calculate_tee_times + S_t1_percent = 291, // t1_percent + S_t2_percent = 292, // t2_percent + S_cache_threshold = 293, // cache_threshold + S_cache_max_age = 294, // cache_max_age + S_decline_probation_period = 295, // decline_probation_period + S_ddns_send_updates = 296, // ddns_send_updates + S_ddns_override_no_update = 297, // ddns_override_no_update + S_ddns_override_client_update = 298, // ddns_override_client_update + S_ddns_replace_client_name = 299, // ddns_replace_client_name + S_300_22 = 300, // $@22 + S_ddns_replace_client_name_value = 301, // ddns_replace_client_name_value + S_ddns_generated_prefix = 302, // ddns_generated_prefix + S_303_23 = 303, // $@23 + S_ddns_qualifying_suffix = 304, // ddns_qualifying_suffix + S_305_24 = 305, // $@24 + S_ddns_update_on_renew = 306, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 307, // ddns_use_conflict_resolution + S_ddns_conflict_resolution_mode = 308, // ddns_conflict_resolution_mode + S_309_25 = 309, // $@25 + S_ddns_conflict_resolution_mode_value = 310, // ddns_conflict_resolution_mode_value + S_ddns_ttl_percent = 311, // ddns_ttl_percent + S_ddns_ttl = 312, // ddns_ttl + S_ddns_ttl_min = 313, // ddns_ttl_min + S_ddns_ttl_max = 314, // ddns_ttl_max + S_hostname_char_set = 315, // hostname_char_set + S_316_26 = 316, // $@26 + S_hostname_char_replacement = 317, // hostname_char_replacement + S_318_27 = 318, // $@27 + S_store_extended_info = 319, // store_extended_info + S_statistic_default_sample_count = 320, // statistic_default_sample_count + S_statistic_default_sample_age = 321, // statistic_default_sample_age + S_server_tag = 322, // server_tag + S_323_28 = 323, // $@28 + S_parked_packet_limit = 324, // parked_packet_limit + S_allocator = 325, // allocator + S_326_29 = 326, // $@29 + S_pd_allocator = 327, // pd_allocator + S_328_30 = 328, // $@30 + S_early_global_reservations_lookup = 329, // early_global_reservations_lookup + S_ip_reservations_unique = 330, // ip_reservations_unique + S_reservations_lookup_first = 331, // reservations_lookup_first + S_interfaces_config = 332, // interfaces_config + S_333_31 = 333, // $@31 + S_sub_interfaces6 = 334, // sub_interfaces6 + S_335_32 = 335, // $@32 + S_interfaces_config_params = 336, // interfaces_config_params + S_interfaces_config_param = 337, // interfaces_config_param + S_interfaces_list = 338, // interfaces_list + S_339_33 = 339, // $@33 + S_re_detect = 340, // re_detect + S_service_sockets_require_all = 341, // service_sockets_require_all + S_service_sockets_retry_wait_time = 342, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 343, // service_sockets_max_retries + S_lease_database = 344, // lease_database + S_345_34 = 345, // $@34 + S_hosts_database = 346, // hosts_database + S_347_35 = 347, // $@35 + S_hosts_databases = 348, // hosts_databases + S_349_36 = 349, // $@36 + S_database_list = 350, // database_list + S_not_empty_database_list = 351, // not_empty_database_list + S_database = 352, // database + S_353_37 = 353, // $@37 + S_database_map_params = 354, // database_map_params + S_database_map_param = 355, // database_map_param + S_database_type = 356, // database_type + S_357_38 = 357, // $@38 + S_user = 358, // user + S_359_39 = 359, // $@39 + S_password = 360, // password + S_361_40 = 361, // $@40 + S_host = 362, // host + S_363_41 = 363, // $@41 + S_port = 364, // port + S_name = 365, // name + S_366_42 = 366, // $@42 + S_persist = 367, // persist + S_lfc_interval = 368, // lfc_interval + S_readonly = 369, // readonly + S_connect_timeout = 370, // connect_timeout + S_read_timeout = 371, // read_timeout + S_write_timeout = 372, // write_timeout + S_tcp_user_timeout = 373, // tcp_user_timeout + S_reconnect_wait_time = 374, // reconnect_wait_time + S_on_fail = 375, // on_fail + S_376_43 = 376, // $@43 + S_on_fail_mode = 377, // on_fail_mode + S_retry_on_startup = 378, // retry_on_startup + S_max_row_errors = 379, // max_row_errors + S_max_reconnect_tries = 380, // max_reconnect_tries + S_trust_anchor = 381, // trust_anchor + S_382_44 = 382, // $@44 + S_cert_file = 383, // cert_file + S_384_45 = 384, // $@45 + S_key_file = 385, // key_file + S_386_46 = 386, // $@46 + S_key_password = 387, // key_password + S_388_47 = 388, // $@47 + S_cipher_list = 389, // cipher_list + S_390_48 = 390, // $@48 + S_sanity_checks = 391, // sanity_checks + S_392_49 = 392, // $@49 + S_sanity_checks_params = 393, // sanity_checks_params + S_sanity_checks_param = 394, // sanity_checks_param + S_lease_checks = 395, // lease_checks + S_396_50 = 396, // $@50 + S_extended_info_checks = 397, // extended_info_checks + S_398_51 = 398, // $@51 + S_mac_sources = 399, // mac_sources + S_400_52 = 400, // $@52 + S_mac_sources_list = 401, // mac_sources_list + S_mac_sources_value = 402, // mac_sources_value + S_duid_id = 403, // duid_id + S_string_id = 404, // string_id + S_host_reservation_identifiers = 405, // host_reservation_identifiers + S_406_53 = 406, // $@53 + S_host_reservation_identifiers_list = 407, // host_reservation_identifiers_list + S_host_reservation_identifier = 408, // host_reservation_identifier + S_hw_address_id = 409, // hw_address_id + S_flex_id = 410, // flex_id + S_relay_supplied_options = 411, // relay_supplied_options + S_412_54 = 412, // $@54 + S_dhcp_multi_threading = 413, // dhcp_multi_threading + S_414_55 = 414, // $@55 + S_multi_threading_params = 415, // multi_threading_params + S_multi_threading_param = 416, // multi_threading_param + S_enable_multi_threading = 417, // enable_multi_threading + S_thread_pool_size = 418, // thread_pool_size + S_packet_queue_size = 419, // packet_queue_size + S_hooks_libraries = 420, // hooks_libraries + S_421_56 = 421, // $@56 + S_hooks_libraries_list = 422, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 423, // not_empty_hooks_libraries_list + S_hooks_library = 424, // hooks_library + S_425_57 = 425, // $@57 + S_sub_hooks_library = 426, // sub_hooks_library + S_427_58 = 427, // $@58 + S_hooks_params = 428, // hooks_params + S_hooks_param = 429, // hooks_param + S_library = 430, // library + S_431_59 = 431, // $@59 + S_parameters = 432, // parameters + S_433_60 = 433, // $@60 + S_expired_leases_processing = 434, // expired_leases_processing + S_435_61 = 435, // $@61 + S_expired_leases_params = 436, // expired_leases_params + S_expired_leases_param = 437, // expired_leases_param + S_reclaim_timer_wait_time = 438, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 439, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 440, // hold_reclaimed_time + S_max_reclaim_leases = 441, // max_reclaim_leases + S_max_reclaim_time = 442, // max_reclaim_time + S_unwarned_reclaim_cycles = 443, // unwarned_reclaim_cycles + S_subnet6_list = 444, // subnet6_list + S_445_62 = 445, // $@62 + S_subnet6_list_content = 446, // subnet6_list_content + S_not_empty_subnet6_list = 447, // not_empty_subnet6_list + S_subnet6 = 448, // subnet6 + S_449_63 = 449, // $@63 + S_sub_subnet6 = 450, // sub_subnet6 + S_451_64 = 451, // $@64 + S_subnet6_params = 452, // subnet6_params + S_subnet6_param = 453, // subnet6_param + S_subnet = 454, // subnet + S_455_65 = 455, // $@65 + S_interface = 456, // interface + S_457_66 = 457, // $@66 + S_interface_id = 458, // interface_id + S_459_67 = 459, // $@67 + S_client_class = 460, // client_class + S_461_68 = 461, // $@68 + S_network_client_classes = 462, // network_client_classes + S_463_69 = 463, // $@69 + S_require_client_classes = 464, // require_client_classes + S_465_70 = 465, // $@70 + S_evaluate_additional_classes = 466, // evaluate_additional_classes + S_467_71 = 467, // $@71 + S_reservations_global = 468, // reservations_global + S_reservations_in_subnet = 469, // reservations_in_subnet + S_reservations_out_of_pool = 470, // reservations_out_of_pool + S_id = 471, // id + S_rapid_commit = 472, // rapid_commit + S_shared_networks = 473, // shared_networks + S_474_72 = 474, // $@72 + S_shared_networks_content = 475, // shared_networks_content + S_shared_networks_list = 476, // shared_networks_list + S_shared_network = 477, // shared_network + S_478_73 = 478, // $@73 + S_shared_network_params = 479, // shared_network_params + S_shared_network_param = 480, // shared_network_param + S_option_def_list = 481, // option_def_list + S_482_74 = 482, // $@74 + S_sub_option_def_list = 483, // sub_option_def_list + S_484_75 = 484, // $@75 + S_option_def_list_content = 485, // option_def_list_content + S_not_empty_option_def_list = 486, // not_empty_option_def_list + S_option_def_entry = 487, // option_def_entry + S_488_76 = 488, // $@76 + S_sub_option_def = 489, // sub_option_def + S_490_77 = 490, // $@77 + S_option_def_params = 491, // option_def_params + S_not_empty_option_def_params = 492, // not_empty_option_def_params + S_option_def_param = 493, // option_def_param + S_option_def_name = 494, // option_def_name + S_code = 495, // code + S_option_def_code = 496, // option_def_code + S_option_def_type = 497, // option_def_type + S_498_78 = 498, // $@78 + S_option_def_record_types = 499, // option_def_record_types + S_500_79 = 500, // $@79 + S_space = 501, // space S_502_80 = 502, // $@80 - S_option_def_array = 503, // option_def_array - S_option_data_list = 504, // option_data_list + S_option_def_space = 503, // option_def_space + S_option_def_encapsulate = 504, // option_def_encapsulate S_505_81 = 505, // $@81 - S_option_data_list_content = 506, // option_data_list_content - S_not_empty_option_data_list = 507, // not_empty_option_data_list - S_option_data_entry = 508, // option_data_entry - S_509_82 = 509, // $@82 - S_sub_option_data = 510, // sub_option_data - S_511_83 = 511, // $@83 - S_option_data_params = 512, // option_data_params - S_not_empty_option_data_params = 513, // not_empty_option_data_params - S_option_data_param = 514, // option_data_param - S_option_data_name = 515, // option_data_name - S_option_data_data = 516, // option_data_data - S_517_84 = 517, // $@84 - S_option_data_code = 518, // option_data_code - S_option_data_space = 519, // option_data_space - S_option_data_csv_format = 520, // option_data_csv_format - S_option_data_always_send = 521, // option_data_always_send - S_option_data_never_send = 522, // option_data_never_send - S_option_data_client_classes = 523, // option_data_client_classes - S_524_85 = 524, // $@85 - S_pools_list = 525, // pools_list - S_526_86 = 526, // $@86 - S_pools_list_content = 527, // pools_list_content - S_not_empty_pools_list = 528, // not_empty_pools_list - S_pool_list_entry = 529, // pool_list_entry - S_530_87 = 530, // $@87 - S_sub_pool6 = 531, // sub_pool6 - S_532_88 = 532, // $@88 - S_pool_params = 533, // pool_params - S_pool_param = 534, // pool_param - S_pool_entry = 535, // pool_entry - S_536_89 = 536, // $@89 - S_pool_id = 537, // pool_id - S_user_context = 538, // user_context + S_option_def_array = 506, // option_def_array + S_option_data_list = 507, // option_data_list + S_508_82 = 508, // $@82 + S_option_data_list_content = 509, // option_data_list_content + S_not_empty_option_data_list = 510, // not_empty_option_data_list + S_option_data_entry = 511, // option_data_entry + S_512_83 = 512, // $@83 + S_sub_option_data = 513, // sub_option_data + S_514_84 = 514, // $@84 + S_option_data_params = 515, // option_data_params + S_not_empty_option_data_params = 516, // not_empty_option_data_params + S_option_data_param = 517, // option_data_param + S_option_data_name = 518, // option_data_name + S_option_data_data = 519, // option_data_data + S_520_85 = 520, // $@85 + S_option_data_code = 521, // option_data_code + S_option_data_space = 522, // option_data_space + S_option_data_csv_format = 523, // option_data_csv_format + S_option_data_always_send = 524, // option_data_always_send + S_option_data_never_send = 525, // option_data_never_send + S_option_data_client_classes = 526, // option_data_client_classes + S_527_86 = 527, // $@86 + S_pools_list = 528, // pools_list + S_529_87 = 529, // $@87 + S_pools_list_content = 530, // pools_list_content + S_not_empty_pools_list = 531, // not_empty_pools_list + S_pool_list_entry = 532, // pool_list_entry + S_533_88 = 533, // $@88 + S_sub_pool6 = 534, // sub_pool6 + S_535_89 = 535, // $@89 + S_pool_params = 536, // pool_params + S_pool_param = 537, // pool_param + S_pool_entry = 538, // pool_entry S_539_90 = 539, // $@90 - S_comment = 540, // comment - S_541_91 = 541, // $@91 - S_pd_pools_list = 542, // pd_pools_list - S_543_92 = 543, // $@92 - S_pd_pools_list_content = 544, // pd_pools_list_content - S_not_empty_pd_pools_list = 545, // not_empty_pd_pools_list - S_pd_pool_entry = 546, // pd_pool_entry - S_547_93 = 547, // $@93 - S_sub_pd_pool = 548, // sub_pd_pool - S_549_94 = 549, // $@94 - S_pd_pool_params = 550, // pd_pool_params - S_pd_pool_param = 551, // pd_pool_param - S_pd_prefix = 552, // pd_prefix - S_553_95 = 553, // $@95 - S_pd_prefix_len = 554, // pd_prefix_len - S_excluded_prefix = 555, // excluded_prefix + S_pool_id = 540, // pool_id + S_user_context = 541, // user_context + S_542_91 = 542, // $@91 + S_comment = 543, // comment + S_544_92 = 544, // $@92 + S_pd_pools_list = 545, // pd_pools_list + S_546_93 = 546, // $@93 + S_pd_pools_list_content = 547, // pd_pools_list_content + S_not_empty_pd_pools_list = 548, // not_empty_pd_pools_list + S_pd_pool_entry = 549, // pd_pool_entry + S_550_94 = 550, // $@94 + S_sub_pd_pool = 551, // sub_pd_pool + S_552_95 = 552, // $@95 + S_pd_pool_params = 553, // pd_pool_params + S_pd_pool_param = 554, // pd_pool_param + S_pd_prefix = 555, // pd_prefix S_556_96 = 556, // $@96 - S_excluded_prefix_len = 557, // excluded_prefix_len - S_pd_delegated_len = 558, // pd_delegated_len - S_reservations = 559, // reservations - S_560_97 = 560, // $@97 - S_reservations_list = 561, // reservations_list - S_not_empty_reservations_list = 562, // not_empty_reservations_list - S_reservation = 563, // reservation - S_564_98 = 564, // $@98 - S_sub_reservation = 565, // sub_reservation - S_566_99 = 566, // $@99 - S_reservation_params = 567, // reservation_params - S_not_empty_reservation_params = 568, // not_empty_reservation_params - S_reservation_param = 569, // reservation_param - S_ip_addresses = 570, // ip_addresses - S_571_100 = 571, // $@100 - S_prefixes = 572, // prefixes - S_573_101 = 573, // $@101 - S_excluded_prefixes = 574, // excluded_prefixes - S_575_102 = 575, // $@102 - S_duid = 576, // duid - S_577_103 = 577, // $@103 - S_hw_address = 578, // hw_address - S_579_104 = 579, // $@104 - S_hostname = 580, // hostname - S_581_105 = 581, // $@105 - S_flex_id_value = 582, // flex_id_value - S_583_106 = 583, // $@106 - S_reservation_client_classes = 584, // reservation_client_classes - S_585_107 = 585, // $@107 - S_relay = 586, // relay - S_587_108 = 587, // $@108 - S_relay_map = 588, // relay_map - S_client_classes = 589, // client_classes + S_pd_prefix_len = 557, // pd_prefix_len + S_excluded_prefix = 558, // excluded_prefix + S_559_97 = 559, // $@97 + S_excluded_prefix_len = 560, // excluded_prefix_len + S_pd_delegated_len = 561, // pd_delegated_len + S_reservations = 562, // reservations + S_563_98 = 563, // $@98 + S_reservations_list = 564, // reservations_list + S_not_empty_reservations_list = 565, // not_empty_reservations_list + S_reservation = 566, // reservation + S_567_99 = 567, // $@99 + S_sub_reservation = 568, // sub_reservation + S_569_100 = 569, // $@100 + S_reservation_params = 570, // reservation_params + S_not_empty_reservation_params = 571, // not_empty_reservation_params + S_reservation_param = 572, // reservation_param + S_ip_addresses = 573, // ip_addresses + S_574_101 = 574, // $@101 + S_prefixes = 575, // prefixes + S_576_102 = 576, // $@102 + S_excluded_prefixes = 577, // excluded_prefixes + S_578_103 = 578, // $@103 + S_duid = 579, // duid + S_580_104 = 580, // $@104 + S_hw_address = 581, // hw_address + S_582_105 = 582, // $@105 + S_hostname = 583, // hostname + S_584_106 = 584, // $@106 + S_flex_id_value = 585, // flex_id_value + S_586_107 = 586, // $@107 + S_reservation_client_classes = 587, // reservation_client_classes + S_588_108 = 588, // $@108 + S_relay = 589, // relay S_590_109 = 590, // $@109 - S_client_classes_list = 591, // client_classes_list - S_client_class_entry = 592, // client_class_entry + S_relay_map = 591, // relay_map + S_client_classes = 592, // client_classes S_593_110 = 593, // $@110 - S_client_class_params = 594, // client_class_params - S_not_empty_client_class_params = 595, // not_empty_client_class_params - S_client_class_param = 596, // client_class_param - S_client_class_name = 597, // client_class_name - S_client_class_test = 598, // client_class_test - S_599_111 = 599, // $@111 - S_client_class_template_test = 600, // client_class_template_test - S_601_112 = 601, // $@112 - S_only_if_required = 602, // only_if_required - S_only_in_additional_list = 603, // only_in_additional_list - S_server_id = 604, // server_id - S_605_113 = 605, // $@113 - S_server_id_params = 606, // server_id_params - S_server_id_param = 607, // server_id_param - S_server_id_type = 608, // server_id_type - S_609_114 = 609, // $@114 - S_duid_type = 610, // duid_type - S_htype = 611, // htype - S_identifier = 612, // identifier - S_613_115 = 613, // $@115 - S_time = 614, // time - S_enterprise_id = 615, // enterprise_id - S_dhcp4o6_port = 616, // dhcp4o6_port - S_control_socket = 617, // control_socket - S_618_116 = 618, // $@116 - S_control_sockets = 619, // control_sockets - S_620_117 = 620, // $@117 - S_control_socket_list = 621, // control_socket_list - S_not_empty_control_socket_list = 622, // not_empty_control_socket_list - S_control_socket_entry = 623, // control_socket_entry - S_624_118 = 624, // $@118 - S_control_socket_params = 625, // control_socket_params - S_control_socket_param = 626, // control_socket_param - S_control_socket_type = 627, // control_socket_type - S_628_119 = 628, // $@119 - S_control_socket_type_value = 629, // control_socket_type_value - S_control_socket_name = 630, // control_socket_name + S_client_classes_list = 594, // client_classes_list + S_client_class_entry = 595, // client_class_entry + S_596_111 = 596, // $@111 + S_client_class_params = 597, // client_class_params + S_not_empty_client_class_params = 598, // not_empty_client_class_params + S_client_class_param = 599, // client_class_param + S_client_class_name = 600, // client_class_name + S_client_class_test = 601, // client_class_test + S_602_112 = 602, // $@112 + S_client_class_template_test = 603, // client_class_template_test + S_604_113 = 604, // $@113 + S_only_if_required = 605, // only_if_required + S_only_in_additional_list = 606, // only_in_additional_list + S_server_id = 607, // server_id + S_608_114 = 608, // $@114 + S_server_id_params = 609, // server_id_params + S_server_id_param = 610, // server_id_param + S_server_id_type = 611, // server_id_type + S_612_115 = 612, // $@115 + S_duid_type = 613, // duid_type + S_htype = 614, // htype + S_identifier = 615, // identifier + S_616_116 = 616, // $@116 + S_time = 617, // time + S_enterprise_id = 618, // enterprise_id + S_dhcp4o6_port = 619, // dhcp4o6_port + S_control_socket = 620, // control_socket + S_621_117 = 621, // $@117 + S_control_sockets = 622, // control_sockets + S_623_118 = 623, // $@118 + S_control_socket_list = 624, // control_socket_list + S_not_empty_control_socket_list = 625, // not_empty_control_socket_list + S_control_socket_entry = 626, // control_socket_entry + S_627_119 = 627, // $@119 + S_control_socket_params = 628, // control_socket_params + S_control_socket_param = 629, // control_socket_param + S_control_socket_type = 630, // control_socket_type S_631_120 = 631, // $@120 - S_control_socket_address = 632, // control_socket_address - S_633_121 = 633, // $@121 - S_control_socket_port = 634, // control_socket_port - S_cert_required = 635, // cert_required - S_http_headers = 636, // http_headers - S_637_122 = 637, // $@122 - S_http_header_list = 638, // http_header_list - S_not_empty_http_header_list = 639, // not_empty_http_header_list - S_http_header = 640, // http_header - S_641_123 = 641, // $@123 - S_http_header_params = 642, // http_header_params - S_http_header_param = 643, // http_header_param - S_header_value = 644, // header_value - S_645_124 = 645, // $@124 - S_authentication = 646, // authentication - S_647_125 = 647, // $@125 - S_auth_params = 648, // auth_params - S_auth_param = 649, // auth_param - S_auth_type = 650, // auth_type - S_651_126 = 651, // $@126 - S_auth_type_value = 652, // auth_type_value - S_realm = 653, // realm + S_control_socket_type_value = 632, // control_socket_type_value + S_control_socket_name = 633, // control_socket_name + S_634_121 = 634, // $@121 + S_control_socket_address = 635, // control_socket_address + S_636_122 = 636, // $@122 + S_control_socket_port = 637, // control_socket_port + S_cert_required = 638, // cert_required + S_http_headers = 639, // http_headers + S_640_123 = 640, // $@123 + S_http_header_list = 641, // http_header_list + S_not_empty_http_header_list = 642, // not_empty_http_header_list + S_http_header = 643, // http_header + S_644_124 = 644, // $@124 + S_http_header_params = 645, // http_header_params + S_http_header_param = 646, // http_header_param + S_header_value = 647, // header_value + S_648_125 = 648, // $@125 + S_authentication = 649, // authentication + S_650_126 = 650, // $@126 + S_auth_params = 651, // auth_params + S_auth_param = 652, // auth_param + S_auth_type = 653, // auth_type S_654_127 = 654, // $@127 - S_directory = 655, // directory - S_656_128 = 656, // $@128 - S_clients = 657, // clients - S_658_129 = 658, // $@129 - S_clients_list = 659, // clients_list - S_not_empty_clients_list = 660, // not_empty_clients_list - S_basic_auth = 661, // basic_auth - S_662_130 = 662, // $@130 - S_clients_params = 663, // clients_params - S_clients_param = 664, // clients_param - S_user_file = 665, // user_file - S_666_131 = 666, // $@131 - S_password_file = 667, // password_file - S_668_132 = 668, // $@132 - S_dhcp_queue_control = 669, // dhcp_queue_control - S_670_133 = 670, // $@133 - S_queue_control_params = 671, // queue_control_params - S_queue_control_param = 672, // queue_control_param - S_enable_queue = 673, // enable_queue - S_queue_type = 674, // queue_type - S_675_134 = 675, // $@134 - S_capacity = 676, // capacity - S_arbitrary_map_entry = 677, // arbitrary_map_entry + S_auth_type_value = 655, // auth_type_value + S_realm = 656, // realm + S_657_128 = 657, // $@128 + S_directory = 658, // directory + S_659_129 = 659, // $@129 + S_clients = 660, // clients + S_661_130 = 661, // $@130 + S_clients_list = 662, // clients_list + S_not_empty_clients_list = 663, // not_empty_clients_list + S_basic_auth = 664, // basic_auth + S_665_131 = 665, // $@131 + S_clients_params = 666, // clients_params + S_clients_param = 667, // clients_param + S_user_file = 668, // user_file + S_669_132 = 669, // $@132 + S_password_file = 670, // password_file + S_671_133 = 671, // $@133 + S_dhcp_queue_control = 672, // dhcp_queue_control + S_673_134 = 673, // $@134 + S_queue_control_params = 674, // queue_control_params + S_queue_control_param = 675, // queue_control_param + S_enable_queue = 676, // enable_queue + S_queue_type = 677, // queue_type S_678_135 = 678, // $@135 - S_dhcp_ddns = 679, // dhcp_ddns - S_680_136 = 680, // $@136 - S_sub_dhcp_ddns = 681, // sub_dhcp_ddns - S_682_137 = 682, // $@137 - S_dhcp_ddns_params = 683, // dhcp_ddns_params - S_dhcp_ddns_param = 684, // dhcp_ddns_param - S_enable_updates = 685, // enable_updates - S_server_ip = 686, // server_ip - S_687_138 = 687, // $@138 - S_server_port = 688, // server_port - S_sender_ip = 689, // sender_ip + S_capacity = 679, // capacity + S_arbitrary_map_entry = 680, // arbitrary_map_entry + S_681_136 = 681, // $@136 + S_dhcp_ddns = 682, // dhcp_ddns + S_683_137 = 683, // $@137 + S_sub_dhcp_ddns = 684, // sub_dhcp_ddns + S_685_138 = 685, // $@138 + S_dhcp_ddns_params = 686, // dhcp_ddns_params + S_dhcp_ddns_param = 687, // dhcp_ddns_param + S_enable_updates = 688, // enable_updates + S_server_ip = 689, // server_ip S_690_139 = 690, // $@139 - S_sender_port = 691, // sender_port - S_max_queue_size = 692, // max_queue_size - S_ncr_protocol = 693, // ncr_protocol - S_694_140 = 694, // $@140 - S_ncr_protocol_value = 695, // ncr_protocol_value - S_ncr_format = 696, // ncr_format + S_server_port = 691, // server_port + S_sender_ip = 692, // sender_ip + S_693_140 = 693, // $@140 + S_sender_port = 694, // sender_port + S_max_queue_size = 695, // max_queue_size + S_ncr_protocol = 696, // ncr_protocol S_697_141 = 697, // $@141 - S_config_control = 698, // config_control - S_699_142 = 699, // $@142 - S_sub_config_control = 700, // sub_config_control - S_701_143 = 701, // $@143 - S_config_control_params = 702, // config_control_params - S_config_control_param = 703, // config_control_param - S_config_databases = 704, // config_databases - S_705_144 = 705, // $@144 - S_config_fetch_wait_time = 706, // config_fetch_wait_time - S_loggers = 707, // loggers + S_ncr_protocol_value = 698, // ncr_protocol_value + S_ncr_format = 699, // ncr_format + S_700_142 = 700, // $@142 + S_config_control = 701, // config_control + S_702_143 = 702, // $@143 + S_sub_config_control = 703, // sub_config_control + S_704_144 = 704, // $@144 + S_config_control_params = 705, // config_control_params + S_config_control_param = 706, // config_control_param + S_config_databases = 707, // config_databases S_708_145 = 708, // $@145 - S_loggers_entries = 709, // loggers_entries - S_logger_entry = 710, // logger_entry + S_config_fetch_wait_time = 709, // config_fetch_wait_time + S_loggers = 710, // loggers S_711_146 = 711, // $@146 - S_logger_params = 712, // logger_params - S_logger_param = 713, // logger_param - S_debuglevel = 714, // debuglevel - S_severity = 715, // severity - S_716_147 = 716, // $@147 - S_output_options_list = 717, // output_options_list - S_718_148 = 718, // $@148 - S_output_options_list_content = 719, // output_options_list_content - S_output_entry = 720, // output_entry + S_loggers_entries = 712, // loggers_entries + S_logger_entry = 713, // logger_entry + S_714_147 = 714, // $@147 + S_logger_params = 715, // logger_params + S_logger_param = 716, // logger_param + S_debuglevel = 717, // debuglevel + S_severity = 718, // severity + S_719_148 = 719, // $@148 + S_output_options_list = 720, // output_options_list S_721_149 = 721, // $@149 - S_output_params_list = 722, // output_params_list - S_output_params = 723, // output_params - S_output = 724, // output - S_725_150 = 725, // $@150 - S_flush = 726, // flush - S_maxsize = 727, // maxsize - S_maxver = 728, // maxver - S_pattern = 729, // pattern - S_730_151 = 730, // $@151 - S_compatibility = 731, // compatibility - S_732_152 = 732, // $@152 - S_compatibility_params = 733, // compatibility_params - S_compatibility_param = 734, // compatibility_param - S_lenient_option_parsing = 735 // lenient_option_parsing + S_output_options_list_content = 722, // output_options_list_content + S_output_entry = 723, // output_entry + S_724_150 = 724, // $@150 + S_output_params_list = 725, // output_params_list + S_output_params = 726, // output_params + S_output = 727, // output + S_728_151 = 728, // $@151 + S_flush = 729, // flush + S_maxsize = 730, // maxsize + S_maxver = 731, // maxver + S_pattern = 732, // pattern + S_733_152 = 733, // $@152 + S_compatibility = 734, // compatibility + S_735_153 = 735, // $@153 + S_compatibility_params = 736, // compatibility_params + S_compatibility_param = 737, // compatibility_param + S_lenient_option_parsing = 738 // lenient_option_parsing }; }; @@ -2599,6 +2603,21 @@ switch (yykind) return symbol_type (token::TOKEN_KEY_FILE, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_KEY_PASSWORD (location_type l) + { + return symbol_type (token::TOKEN_KEY_PASSWORD, std::move (l)); + } +#else + static + symbol_type + make_KEY_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_KEY_PASSWORD, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5794,8 +5813,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1671, ///< Last index in yytable_. - yynnts_ = 498, ///< Number of nonterminal symbols. + yylast_ = 1677, ///< Last index in yytable_. + yynnts_ = 500, ///< Number of nonterminal symbols. yyfinal_ = 30 ///< Termination state number. }; @@ -5864,10 +5883,10 @@ switch (yykind) 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237 + 235, 236, 237, 238 }; // Last valid token kind. - const int code_max = 492; + const int code_max = 493; if (t <= 0) return symbol_kind::S_YYEOF; @@ -6040,7 +6059,7 @@ switch (yykind) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 6044 "dhcp6_parser.h" +#line 6063 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index a96f21537a..ef981240ba 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -94,6 +94,7 @@ using namespace std; TRUST_ANCHOR "trust-anchor" CERT_FILE "cert-file" KEY_FILE "key-file" + KEY_PASSWORD "key-password" CIPHER_LIST "cipher-list" PREFERRED_LIFETIME "preferred-lifetime" @@ -1060,6 +1061,7 @@ database_map_param: database_type | trust_anchor | cert_file | key_file + | key_password | cipher_list | unknown_map_entry ; @@ -1221,6 +1223,15 @@ key_file: KEY_FILE { ctx.leave(); }; +key_password: KEY_PASSWORD { + ctx.unique("key-password", ctx.loc2pos(@1)); + ctx.enter(ctx.NO_KEYWORD); +} COLON STRING { + ElementPtr key_pass(new StringElement($4, ctx.loc2pos(@4))); + ctx.stack_.back()->set("key-password", key_pass); + ctx.leave(); +}; + cipher_list: CIPHER_LIST { ctx.unique("cipher-list", ctx.loc2pos(@1)); ctx.enter(ctx.NO_KEYWORD); diff --git a/src/bin/netconf/netconf_lexer.cc b/src/bin/netconf/netconf_lexer.cc index 8b468760ca..d598a9692b 100644 --- a/src/bin/netconf/netconf_lexer.cc +++ b/src/bin/netconf/netconf_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "netconf_lexer.cc" +#line 2 "netconf_lexer.cc" -#line 3 "netconf_lexer.cc" +#line 4 "netconf_lexer.cc" #define YY_INT_ALIGNED short int @@ -1519,7 +1519,7 @@ using isc::netconf::NetconfParser; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::netconf::ParserContext::fatal(msg) -#line 1522 "netconf_lexer.cc" +#line 1523 "netconf_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 @@ -1545,8 +1545,8 @@ using isc::netconf::NetconfParser; 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 1548 "netconf_lexer.cc" #line 1549 "netconf_lexer.cc" +#line 1550 "netconf_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -1860,7 +1860,7 @@ YY_DECL } -#line 1863 "netconf_lexer.cc" +#line 1864 "netconf_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2767,7 +2767,7 @@ YY_RULE_SETUP #line 752 "netconf_lexer.ll" ECHO; YY_BREAK -#line 2770 "netconf_lexer.cc" +#line 2771 "netconf_lexer.cc" case YY_END_OF_BUFFER: { diff --git a/src/hooks/dhcp/mysql/mysql_legal_log.h b/src/hooks/dhcp/mysql/mysql_legal_log.h index 1733e69fc3..1cc01ba1cd 100644 --- a/src/hooks/dhcp/mysql/mysql_legal_log.h +++ b/src/hooks/dhcp/mysql/mysql_legal_log.h @@ -94,9 +94,9 @@ public: /// - password /// - port /// - user - /// - trust-anchor (MySQL only) - /// - cert-file (MySQL only) - /// - key-file (MySQL only) + /// - trust-anchor + /// - cert-file + /// - key-file /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries diff --git a/src/hooks/dhcp/pgsql/pgsql_legal_log.h b/src/hooks/dhcp/pgsql/pgsql_legal_log.h index b6cb375fd9..4274e9b165 100644 --- a/src/hooks/dhcp/pgsql/pgsql_legal_log.h +++ b/src/hooks/dhcp/pgsql/pgsql_legal_log.h @@ -93,6 +93,10 @@ public: /// - password /// - port /// - user + /// - trust-anchor + /// - cert-file + /// - key-file + /// - key-password (PostgreSQL only) /// - reconnect-wait-time /// - max-reconnect-tries /// - on-fail diff --git a/src/hooks/dhcp/pgsql/tests/meson.build b/src/hooks/dhcp/pgsql/tests/meson.build index 4a16a221a4..705e69d3d7 100644 --- a/src/hooks/dhcp/pgsql/tests/meson.build +++ b/src/hooks/dhcp/pgsql/tests/meson.build @@ -20,6 +20,7 @@ dhcp_pgsql_lib_tests = executable( 'pgsql_lease_extended_info_unittest.cc', 'pgsql_lease_mgr_unittest.cc', 'run_unittests.cc', + cpp_args: [f'-DTEST_CA_DIR="@TEST_CA_DIR@"'], dependencies: [GTEST_DEP, CRYPTO_DEP, POSTGRESQL_DEP], include_directories: [include_directories('.'), include_directories('..')] + INCLUDES, link_with: [dhcp_pgsql_archive, libs_testutils, kea_testutils_lib] + LIBS_BUILT_SO_FAR, diff --git a/src/hooks/dhcp/pgsql/tests/pgsql_forensic_unittest.cc b/src/hooks/dhcp/pgsql/tests/pgsql_forensic_unittest.cc index 491940c8b4..4666168ee0 100644 --- a/src/hooks/dhcp/pgsql/tests/pgsql_forensic_unittest.cc +++ b/src/hooks/dhcp/pgsql/tests/pgsql_forensic_unittest.cc @@ -59,6 +59,15 @@ public: isc::db::test::destroyPgSQLSchema(); } + /// @brief Check if SSL/TLS support is available and configured. + bool hasPgSQLTls() { + std::string tls = getPgSQLTlsEnv(); + if (tls.empty()) { + tls = getPgSQLTlsServer(); + } + return (tls == "YES"); + } + /// @brief Process output /// /// Remove heading and trailing lines, trim column, etc @@ -194,6 +203,54 @@ TEST_F(PgSqlTest, open) { EXPECT_NO_THROW_LOG(store_.reset()); } +/// @brief Tests opening PgSqlStore with invalid SSL/TLS +TEST_F(PgSqlTest, invalidTls) { + // Construct the store_ + DatabaseConnection::ParameterMap params; + params["name"] = "keatest"; + params["user"] = "keatest_secure"; + params["password"] = "keatest"; + params["cert-file"] = TEST_CA_DIR "/kea-client.crt"; + params["key-file"] = TEST_CA_DIR "/kea-other.key"; + params["trust-anchor"] = TEST_CA_DIR ; + ASSERT_NO_THROW_LOG(store_.reset(new PgSqlStore(params))); + + // Check the type is postgresql + EXPECT_EQ("postgresql", store_->getType()); + + // Open the database + EXPECT_THROW(store_->open(), DbOpenError); +} + +/// @brief Tests opening and closing PgSqlStore with SSL/TLS +TEST_F(PgSqlTest, tls) { + SKIP_IF(!hasPgSQLTls()); + + // Construct the store_ + DatabaseConnection::ParameterMap params; + params["name"] = "keatest"; + params["user"] = "keatest_secure"; + params["password"] = "keatest"; + // Some PgSQL versions require to enforce TCP + params["host"] = "127.0.0.1"; + params["cert-file"] = TEST_CA_DIR "/kea-client.crt"; + params["key-file"] = TEST_CA_DIR "/kea-client.key"; + params["trust-anchor"] = TEST_CA_DIR "/kea-ca.crt"; + ASSERT_NO_THROW_LOG(store_.reset(new PgSqlStore(params))); + + // Check the type is postgresql + EXPECT_EQ("postgresql", store_->getType()); + + // Open the database + ASSERT_NO_THROW_LOG(store_->open()); + + // Close does nothing + EXPECT_NO_THROW_LOG(store_->close()); + + // Destructor close the database + EXPECT_NO_THROW_LOG(store_.reset()); +} + /// @brief Check schema version TEST_F(PgSqlTest, version) { // Open the store diff --git a/src/lib/asiolink/testutils/meson.build b/src/lib/asiolink/testutils/meson.build index 4e6a050c09..b42856b61a 100644 --- a/src/lib/asiolink/testutils/meson.build +++ b/src/lib/asiolink/testutils/meson.build @@ -47,3 +47,9 @@ elif CRYPTO_DEP.name() == botan.name() link_with: LIBS_BUILT_SO_FAR, ) endif + +# PostgreSQL requires restricted permissions on the key files. +configure_file( + command: ['chmod', 'og-rwx', f'@TEST_CA_DIR@/kea-other.key'], + output: f'kea-other.key', +) diff --git a/src/lib/database/database_connection.cc b/src/lib/database/database_connection.cc index e57a5cabcc..d73f84c5f6 100644 --- a/src/lib/database/database_connection.cc +++ b/src/lib/database/database_connection.cc @@ -264,6 +264,7 @@ DatabaseConnection::toElement(const ParameterMap& params) { (keyword == "trust-anchor") || (keyword == "cert-file") || (keyword == "key-file") || + (keyword == "key-password") || (keyword == "cipher-list")) { result->set(keyword, isc::data::Element::create(value)); } else { diff --git a/src/lib/database/dbaccess_parser.cc b/src/lib/database/dbaccess_parser.cc index a9f229c363..a8c6e6756d 100644 --- a/src/lib/database/dbaccess_parser.cc +++ b/src/lib/database/dbaccess_parser.cc @@ -122,6 +122,7 @@ DbAccessParser::parse(std::string& access_string, // trust-anchor // cert-file // key-file + // key-password // cipher-list values_copy[param.first] = param.second->stringValue(); } diff --git a/src/lib/dhcpsrv/legal_log_mgr.cc b/src/lib/dhcpsrv/legal_log_mgr.cc index d7f649ba9b..e8d220d110 100644 --- a/src/lib/dhcpsrv/legal_log_mgr.cc +++ b/src/lib/dhcpsrv/legal_log_mgr.cc @@ -67,7 +67,7 @@ LegalLogMgr::parseDatabase(const ConstElementPtr& parameters, DatabaseConnection // Strings for (char const* const& key : { "type", "user", "password", "host", "name", "trust-anchor", - "cert-file", "key-file", "cipher-list" }) { + "cert-file", "key-file", "key-password", "cipher-list" }) { ConstElementPtr const value(parameters->get(key)); if (value) { db_parameters.emplace(key, value->stringValue()); diff --git a/src/lib/dhcpsrv/legal_log_mgr.h b/src/lib/dhcpsrv/legal_log_mgr.h index ad1975c097..5c43350bac 100644 --- a/src/lib/dhcpsrv/legal_log_mgr.h +++ b/src/lib/dhcpsrv/legal_log_mgr.h @@ -105,6 +105,7 @@ public: /// - trust-anchor (MySQL only) /// - cert-file (MySQL only) /// - key-file (MySQL only) + /// - key-password (PostgreSQL only) /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries @@ -136,6 +137,7 @@ public: /// - trust-anchor (MySQL only) /// - cert-file (MySQL only) /// - key-file (MySQL only) + /// - key-password (PostgreSQL only) /// - cipher-list (MySQL only) /// - reconnect-wait-time /// - max-reconnect-tries diff --git a/src/lib/eval/lexer.cc b/src/lib/eval/lexer.cc index 1c9707c03b..00c30411de 100644 --- a/src/lib/eval/lexer.cc +++ b/src/lib/eval/lexer.cc @@ -1,6 +1,6 @@ -#line 1 "lexer.cc" +#line 2 "lexer.cc" -#line 3 "lexer.cc" +#line 4 "lexer.cc" #define YY_INT_ALIGNED short int @@ -1055,7 +1055,7 @@ namespace { /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg) -#line 1058 "lexer.cc" +#line 1059 "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 @@ -1080,8 +1080,8 @@ namespace { by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION loc.columns(evalleng); -#line 1083 "lexer.cc" #line 1084 "lexer.cc" +#line 1085 "lexer.cc" #define INITIAL 0 @@ -1380,7 +1380,7 @@ YY_DECL -#line 1383 "lexer.cc" +#line 1384 "lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1889,7 +1889,7 @@ YY_RULE_SETUP #line 251 "lexer.ll" ECHO; YY_BREAK -#line 1892 "lexer.cc" +#line 1893 "lexer.cc" case YY_END_OF_BUFFER: { diff --git a/src/lib/pgsql/pgsql_connection.cc b/src/lib/pgsql/pgsql_connection.cc index d09ed7042d..15140336d8 100644 --- a/src/lib/pgsql/pgsql_connection.cc +++ b/src/lib/pgsql/pgsql_connection.cc @@ -395,6 +395,48 @@ PgSqlConnection::getConnParametersInternal(bool logging) { } dbconnparameters += oss.str(); + bool tls = false; + + string sca; + try { + sca = getParameter("trust-anchor"); + tls = true; + dbconnparameters += " sslrootcert = " + sca; + } catch (...) { + // No trust anchor + } + + string scert; + try { + scert = getParameter("cert-file"); + tls = true; + dbconnparameters += " sslcert = " + scert; + } catch (...) { + // No client certificate file + } + + string skey; + try { + skey = getParameter("key-file"); + tls = true; + dbconnparameters += " sslkey = " + skey; + } catch (...) { + // No private key file + } + + string skeypassword; + try { + skeypassword = getParameter("key-password"); + tls = true; + dbconnparameters += " sslpassword = " + skeypassword; + } catch (...) { + // No password. + } + + if (tls) { + dbconnparameters += " sslmode = require"; + } + return (dbconnparameters); } @@ -406,7 +448,7 @@ PgSqlConnection::openDatabase() { void PgSqlConnection::openDatabaseInternal(bool logging) { std::string dbconnparameters = getConnParametersInternal(logging); - // Connect to Postgres, saving the low level connection pointer + // Connect to PostgreSQL, saving the low level connection pointer // in the holder object PGconn* new_conn = PQconnectdb(dbconnparameters.c_str()); if (!new_conn) { diff --git a/src/lib/pgsql/tests/pgsql_connection_unittest.cc b/src/lib/pgsql/tests/pgsql_connection_unittest.cc index 352906f24b..35ff2aa02d 100644 --- a/src/lib/pgsql/tests/pgsql_connection_unittest.cc +++ b/src/lib/pgsql/tests/pgsql_connection_unittest.cc @@ -284,6 +284,20 @@ public: } }; +/// @brief Test fixture class for secure connection. +class PgSqlSecureConnectionTest : public ::testing::Test { +public: + + /// @brief Check if SSL/TLS support is available and configured. + bool hasPgSQLTls() { + std::string tls = getPgSQLTlsEnv(); + if (tls.empty()) { + tls = getPgSQLTlsServer(); + } + return (tls == "YES"); + } +}; + /// @brief Verifies basics of input parameter sanity checking and statement /// execution enforced by executePreparedStatement. Higher order tests /// verify actual data CRUD results. @@ -660,6 +674,162 @@ TEST_F(PgSqlConnectionTest, tcpUserTimeoutInvalid) { EXPECT_THROW(conn.getConnParameters(), DbInvalidTimeout); } +/// @brief Check the SSL/TLS protected connection. +TEST_F(PgSqlSecureConnectionTest, Tls) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + VALID_PASSWORD, 0, 0, + VALID_CERT, VALID_KEY, VALID_CA, + VALID_CIPHER); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + ASSERT_NO_THROW_LOG(conn.openDatabase()); +} + +/// @brief Check the SSL/TLS protected connection still requires the password. +TEST_F(PgSqlSecureConnectionTest, TlsInvalidPassword) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + INVALID_PASSWORD, 0, 0, + VALID_CERT, VALID_KEY, VALID_CA, + VALID_CIPHER); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (DbOpenError const& exception) { + string const message(exception.what()); + vector const expected{ + "connection to server at \"127.0.0.1\", port 5432 failed: FATAL: " + "password authentication failed for user \"keatest_secure\"", + }; + for (string const& i : expected) { + if (message.find(i) != string::npos) { + return; + } + } + ADD_FAILURE() << "Unexpected exception message '" << message << "'"; + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + +/// @brief Check the SSL/TLS protected connection refuse default passwords. +TEST_F(PgSqlSecureConnectionTest, TlsDefaultPassword) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + DEFAULT_PASSWORD, 0, 0, + VALID_CERT, VALID_KEY, VALID_CA, + VALID_CIPHER); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (isc::data::DefaultCredential const& exception) { + string const message(exception.what()); + if (message == "illegal use of a default value as credential") { + return; + } + ADD_FAILURE() << "Unexpected exception message '" << message << "'"; + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + +/// @brief Check the SSL/TLS protected connection refuse default passwords. +TEST_F(PgSqlSecureConnectionTest, noTlsDefaultPassword) { + SKIP_IF(hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_USER, + DEFAULT_PASSWORD); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (isc::data::DefaultCredential const& exception) { + string const message(exception.what()); + if (message == "illegal use of a default value as credential") { + return; + } + ADD_FAILURE() << "Unexpected exception message '" << message << "'"; + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + +/// @brief Check the SSL/TLS protected connection requires crypto parameters. +TEST_F(PgSqlSecureConnectionTest, TlsNoCrypto) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + VALID_PASSWORD); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (DbOpenError const& exception) { + string const message(exception.what()); + string const expected("Access denied for user 'keatest_secure'"); + if (message.find(expected) == string::npos) { + ADD_FAILURE() + << "Expected exception message '" << expected << ".*', got '" << message << "'"; + } + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + +/// @brief Check the SSL/TLS protected connection requires valid key. +TEST_F(PgSqlSecureConnectionTest, TlsInvalidKey) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + VALID_PASSWORD, 0, 0, + VALID_CERT, INVALID_KEY, VALID_CA, + VALID_CIPHER); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (DbOpenError const& exception) { + string const message(exception.what()); + vector const expected{ + string("connection to server at \"127.0.0.1\", port 5432 failed: could not load private key file \"") + + TEST_CA_DIR "/kea-other.key\": key values mismatch\n", + }; + if (!std::count(expected.begin(), expected.end(), message)) { + ADD_FAILURE() << "Unexpected exception message '" << message << "'"; + } + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + +/// @brief Check the SSL/TLS protected connection requires a key. +TEST_F(PgSqlSecureConnectionTest, TlsNoKey) { + SKIP_IF(!hasPgSQLTls()); + std::string conn_str = connectionString(PGSQL_VALID_TYPE, VALID_NAME, + VALID_HOST_TCP, VALID_SECURE_USER, + VALID_PASSWORD, 0, 0, + VALID_CERT, 0, VALID_CA, + VALID_CIPHER); + PgSqlConnection conn(DatabaseConnection::parse(conn_str)); + + try { + conn.openDatabase(); + } catch (DbOpenError const& exception) { + string const message(exception.what()); + string expected("connection to server at \"127.0.0.1\", port 5432 failed: certificate present, but not private key file "); + if (message.find(expected) == string::npos) { + ADD_FAILURE() << "Unexpected exception message '" << message << "'"; + } + } catch (exception const& exception) { + ADD_FAILURE() << exception.what(); + } +} + /// @brief Check ensureSchemaVersion when schema is not created. TEST_F(PgSqlConnectionTest, ensureSchemaVersionNoSchema) { std::pair version; diff --git a/src/lib/pgsql/testutils/pgsql_schema.cc b/src/lib/pgsql/testutils/pgsql_schema.cc index 1cf79a5cc6..1123137ab5 100644 --- a/src/lib/pgsql/testutils/pgsql_schema.cc +++ b/src/lib/pgsql/testutils/pgsql_schema.cc @@ -98,6 +98,66 @@ void runPgSQLScript(const std::string& path, const std::string& script_name, } } +string getPgSQLTlsEnv() { + const string name("KEA_PGSQL_HAVE_SSL"); + const char* val = getenv(name.c_str()); + return (val ? string(val) : ""); +} + +string getPgSQLTlsServerVariable(string variable) { + DatabaseConnection::ParameterMap parameters = + DatabaseConnection::parse(validPgSQLConnectionString()); + PgSqlConnection conn(parameters); + conn.openDatabase(); + string sql("select name, setting from pg_settings where name like '"); + sql += variable; + sql += "';"; + PgSqlResult r(PQexec(conn, sql.c_str())); + if (PQresultStatus(r) != PGRES_TUPLES_OK) { + isc_throw(DbOperationError, sql << ": " << PQerrorMessage(conn)); + } + if (r.getRows() != 1) { + isc_throw(DbOperationError, sql << " returned " << r.getRows() << " rows, expected one row"); + } + string fetched_str; + PgSqlExchange::getColumnValue(r, 0, 0, fetched_str); + // first column is variable name e.g. 'ssl', second is the value. + if (fetched_str != variable) { + isc_throw(DbOperationError, + sql << " returned a wrong name '" << fetched_str + << "', expected '" << variable << "'"); + } + PgSqlExchange::getColumnValue(r, 0, 1, fetched_str); + return (fetched_str); +} + +bool isPgSQLTlsConfigured() { + if (getPgSQLTlsServerVariable("ssl_ca_file").find("kea-ca.crt") == string::npos) { + return (false); + } + if (getPgSQLTlsServerVariable("ssl_cert_file").find("kea-server.crt") == string::npos) { + return (false); + } + if (getPgSQLTlsServerVariable("ssl_key_file").find("kea-server.key") == string::npos) { + return (false); + } + return (true); +} + +string getPgSQLTlsServer() { + string value = getPgSQLTlsServerVariable("ssl"); + if (value == "on") { + if (!isPgSQLTlsConfigured()) { + value = "UNCONFIGURED"; + } else { + value = "YES"; + } + } + const string env("KEA_PGSQL_HAVE_SSL"); + static_cast(setenv(env.c_str(), value.c_str(), 1)); + return (value); +} + } // namespace test } // namespace dhcp } // namespace isc diff --git a/src/lib/pgsql/testutils/pgsql_schema.h b/src/lib/pgsql/testutils/pgsql_schema.h index 5919670a59..22a796c649 100644 --- a/src/lib/pgsql/testutils/pgsql_schema.h +++ b/src/lib/pgsql/testutils/pgsql_schema.h @@ -98,6 +98,24 @@ bool wipePgSQLData(bool show_err = false); void runPgSQLScript(const std::string& path, const std::string& script_name, bool show_err); +/// @brief Get the SSL/TLS support status from the environment +/// +/// The environment variable is KEA_PGSQL_HAVE_SSL +std::string getPgSQLTlsEnv(); + +/// @brief Get the SSL/TLS support status from the server +/// @note the returned value is set in the environment +std::string getPgSQLTlsServer(); + +/// @brief Return true if the server has been configured with proper SSL/TLS +/// credentials, false otherwise +bool isPgSQLTlsConfigured(); + +/// @brief Get the server global variable value +/// +/// @param variable The server global variable name +std::string getPgSQLTlsServerVariable(std::string variable); + }; }; };