From: Ralph Dolmans Date: Wed, 23 Sep 2020 10:09:48 +0000 (+0200) Subject: - Add edns-client-tag-opcode option X-Git-Tag: release-1.12.0rc1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7da369e85ae545a9fd1453784d77dd23dd512530;p=thirdparty%2Funbound.git - Add edns-client-tag-opcode option --- diff --git a/doc/Changelog b/doc/Changelog index 06deb58f9..e316ea99f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ 23 September 2020: Ralph - Fix edns-client-tags get_option typo + - Add edns-client-tag-opcode option 21 September 2020: Ralph - Fix #304: dnstap logging not recovering after dnstap process restarts diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index c2b6d6eb7..f4586b1d1 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1538,6 +1538,10 @@ Include an edns-client-tag option in queries with destination address matching the configured IP netblock. This configuration option can be used multiple times. The most specific match will be used. The tag data is configured in decimal format, from 0 to 65535. +.TP 5 +.B edns\-client\-tag\-opcode: \fI +EDNS0 option code for the edns-client-tag option, from 0 to 65535. Default is +16, as assigned by IANA. .SS "Remote Control Options" In the .B remote\-control: diff --git a/services/outside_network.c b/services/outside_network.c index 085d0e6ae..41a1d83f1 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -2107,7 +2107,7 @@ outnet_serviced_query(struct outside_network* outnet, addr, addrlen))) { uint16_t client_tag = htons(client_tag_addr->tag_data); edns_opt_list_append(&qstate->edns_opts_back_out, - LDNS_EDNS_CLIENT_TAG, 2, + env->edns_tags->client_tag_opcode, 2, (uint8_t*)&client_tag, qstate->region); } diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 674069afc..d8df76492 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -1232,7 +1232,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, addr, addrlen))) { uint16_t client_tag = htons(client_tag_addr->tag_data); edns_opt_list_append(&qstate->edns_opts_back_out, - LDNS_EDNS_CLIENT_TAG, 2, + env->edns_tags->client_tag_opcode, 2, (uint8_t*)&client_tag, qstate->region); } edns.opt_list = qstate->edns_opts_back_out; diff --git a/util/config_file.c b/util/config_file.c index 8fd3bcffe..f590a36cf 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -322,6 +322,7 @@ config_create(void) cfg->shm_enable = 0; cfg->shm_key = 11777; cfg->edns_client_tags = NULL; + cfg->edns_client_tag_opcode = LDNS_EDNS_CLIENT_TAG; cfg->dnscrypt = 0; cfg->dnscrypt_port = 0; cfg->dnscrypt_provider = NULL; diff --git a/util/config_file.h b/util/config_file.h index 3148dd016..7750eaa0e 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -564,6 +564,8 @@ struct config_file { /** list of EDNS client tag entries, linked list */ struct config_str2list* edns_client_tags; + /** EDNS opcode to use for EDNS client tags */ + uint16_t edns_client_tag_opcode; /** DNSCrypt */ /** true to enable dnscrypt */ diff --git a/util/configlexer.c b/util/configlexer.c index 16158e472..36b4a2eca 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 330 -#define YY_END_OF_BUFFER 331 +#define YY_NUM_RULES 331 +#define YY_END_OF_BUFFER 332 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,363 +363,364 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3227] = +static const flex_int16_t yy_accept[3235] = { 0, - 1, 1, 304, 304, 308, 308, 312, 312, 316, 316, - 1, 1, 320, 320, 324, 324, 331, 328, 1, 302, - 302, 329, 2, 329, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 304, 305, 305, 306, - 329, 308, 309, 309, 310, 329, 315, 312, 313, 313, - 314, 329, 316, 317, 317, 318, 329, 327, 303, 2, - 307, 329, 327, 323, 320, 321, 321, 322, 329, 324, - 325, 325, 326, 329, 328, 0, 1, 2, 2, 2, - 2, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 304, 0, 308, - 0, 315, 0, 312, 316, 0, 327, 0, 2, 2, - 327, 323, 0, 320, 324, 0, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 327, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 121, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 129, 328, 328, 328, 328, 328, 328, 328, - 327, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 105, - 328, 328, 328, 328, 328, 328, 8, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 122, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 134, 328, 327, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 296, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 327, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 63, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 233, 328, 14, 15, 328, 19, 18, 328, - 328, 217, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 128, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 215, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 3, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 327, 328, 328, 328, - 328, 328, 328, 328, 290, 328, 328, 289, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 311, 328, 328, 328, 328, 328, 328, - 328, 62, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 66, 328, - 264, 328, 328, 328, 328, 328, 328, 328, 328, 297, - 298, 328, 328, 328, 328, 328, 67, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 125, 328, 328, 328, 328, 328, 328, - 328, 328, 204, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 21, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 153, 328, 328, 327, 311, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 103, 328, 328, - 328, 328, 328, 328, 328, 272, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 176, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 152, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 102, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 32, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 33, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 64, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 127, 327, 328, - 328, 328, 328, 328, 120, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 65, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 237, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 177, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 53, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 255, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 57, 328, 58, 328, 328, 328, 328, 328, 106, - 328, 107, 328, 328, 328, 328, 104, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 7, 328, 327, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 226, 328, 328, 328, 328, - 155, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 238, 328, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 45, 328, 328, 328, 328, 328, 328, - 328, 328, 54, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 196, 328, 195, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 16, 17, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 68, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 203, 328, 328, 328, 328, 328, 328, 109, - 328, 108, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 187, 328, 328, 328, 328, 328, 328, - 328, 328, 135, 327, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 87, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 216, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 91, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 61, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 190, 191, 328, 328, - 328, 266, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 6, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 270, 328, 328, 328, - - 328, 328, 328, 291, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 42, 328, 328, 328, 328, 44, - 328, 328, 328, 328, 328, 328, 328, 328, 51, 328, - 328, 328, 328, 328, 328, 328, 327, 328, 183, 328, - 328, 328, 130, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 208, 328, 184, 328, 328, 328, 223, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 52, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 132, 114, 328, 115, 328, 328, 328, 113, 328, - 328, 328, 328, 328, 328, 328, 328, 150, 328, 328, - 50, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 254, 328, 328, 328, 328, - 328, 328, 328, 328, 185, 328, 328, 328, 328, 328, - 188, 328, 194, 328, 328, 328, 328, 328, 222, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 101, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 126, 328, 328, 328, 328, 328, 328, 59, - - 328, 328, 328, 26, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 20, 328, 328, 328, 328, 328, 328, - 27, 36, 328, 160, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 327, 328, 328, - 328, 328, 328, 328, 76, 78, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 274, - 328, 328, 328, 328, 234, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 116, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 149, 328, 46, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 285, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 154, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 214, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 294, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 171, 328, 328, 328, 328, 328, 328, - 328, 328, 110, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 166, 328, 178, 328, 328, 328, 328, 327, - 328, 138, 328, 328, 328, 328, 328, 97, 328, 328, - 328, 328, 206, 328, 328, 328, 328, 328, 328, 224, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 246, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 131, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 170, 328, 328, 328, 328, 328, 328, 79, 80, - 328, 328, 328, 328, 328, 60, 328, 328, 328, 328, - 328, 86, 179, 328, 197, 328, 227, 328, 328, 189, - - 267, 328, 328, 328, 328, 328, 72, 328, 181, 328, - 328, 328, 328, 328, 9, 328, 328, 328, 100, 328, - 328, 328, 328, 259, 328, 328, 328, 328, 205, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 327, 328, 328, 328, 328, 169, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 156, 328, 273, 328, 328, 328, 328, 328, 245, 328, - - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 218, 328, 301, 328, 328, 328, 265, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 288, 328, 180, 328, 328, - 328, 328, 328, 328, 328, 71, 73, 328, 328, 328, - 328, 328, 328, 328, 99, 328, 328, 328, 328, 257, - 328, 328, 328, 328, 269, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 210, 34, 28, 30, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 35, - - 328, 29, 31, 328, 328, 328, 328, 328, 328, 328, - 328, 96, 328, 328, 328, 328, 328, 328, 327, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 212, 209, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 70, 328, 328, 133, 328, 117, 328, 328, 328, 328, - 328, 328, 328, 328, 151, 47, 328, 328, 319, 13, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 283, - 328, 286, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 12, 328, 328, 22, 328, 328, 328, 263, - - 328, 328, 328, 328, 271, 328, 328, 328, 74, 328, - 220, 328, 328, 328, 328, 211, 328, 328, 69, 328, - 328, 328, 328, 23, 328, 43, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 165, 164, - 319, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 213, 207, 328, 225, 328, 328, 275, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 81, 328, 328, - 328, 258, 328, 328, 328, 328, 193, 328, 328, 328, - - 328, 219, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 292, 293, 162, 328, 328, 75, 328, 328, 328, - 328, 172, 328, 328, 111, 112, 328, 328, 328, 328, - 157, 328, 159, 328, 198, 328, 328, 328, 328, 163, - 328, 328, 228, 328, 328, 328, 328, 328, 328, 328, - 140, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 236, 328, 328, 328, 328, 328, 328, - 328, 24, 328, 268, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 199, 328, 328, - 256, 328, 287, 328, 192, 328, 328, 328, 328, 55, - - 328, 328, 328, 328, 4, 328, 328, 328, 328, 124, - 139, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 231, - 37, 38, 328, 328, 328, 328, 328, 328, 328, 276, - 328, 328, 328, 328, 328, 328, 328, 244, 328, 328, - 328, 328, 328, 328, 328, 202, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 84, 328, 56, - 262, 328, 232, 328, 328, 328, 328, 11, 328, 328, - 328, 328, 328, 328, 123, 328, 328, 328, 328, 200, - 88, 328, 40, 328, 328, 328, 328, 328, 328, 328, - - 328, 168, 328, 328, 328, 328, 328, 142, 328, 328, - 328, 328, 235, 328, 328, 328, 328, 328, 243, 328, - 328, 328, 328, 136, 328, 328, 118, 119, 328, 328, - 328, 90, 94, 89, 328, 328, 328, 82, 328, 328, - 328, 328, 328, 10, 328, 328, 328, 260, 295, 328, - 328, 328, 328, 300, 39, 328, 328, 328, 328, 328, - 167, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 95, 93, 328, 328, 328, 83, 284, - 328, 328, 328, 328, 328, 328, 328, 186, 328, 328, - - 328, 328, 328, 201, 328, 328, 328, 328, 328, 328, - 328, 328, 158, 77, 328, 328, 328, 328, 328, 277, - 328, 328, 328, 328, 328, 328, 328, 240, 328, 328, - 239, 137, 328, 92, 48, 328, 143, 144, 147, 148, - 145, 146, 85, 328, 261, 328, 328, 328, 328, 161, - 328, 328, 328, 328, 328, 230, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 174, 173, 41, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - - 328, 328, 98, 328, 229, 328, 253, 281, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 49, 5, 328, 328, 221, 328, 328, 282, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 241, 25, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 242, 328, 328, 328, 141, 328, 328, 328, 328, - 328, 328, 328, 328, 175, 328, 182, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 278, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 299, 328, 328, 249, 328, 328, - - 328, 328, 328, 279, 328, 328, 328, 328, 328, 328, - 280, 328, 328, 328, 247, 328, 250, 251, 328, 328, - 328, 328, 328, 248, 252, 0 + 1, 1, 305, 305, 309, 309, 313, 313, 317, 317, + 1, 1, 321, 321, 325, 325, 332, 329, 1, 303, + 303, 330, 2, 330, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 305, 306, 306, 307, + 330, 309, 310, 310, 311, 330, 316, 313, 314, 314, + 315, 330, 317, 318, 318, 319, 330, 328, 304, 2, + 308, 330, 328, 324, 321, 322, 322, 323, 330, 325, + 326, 326, 327, 330, 329, 0, 1, 2, 2, 2, + 2, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 305, 0, 309, + 0, 316, 0, 313, 317, 0, 328, 0, 2, 2, + 328, 324, 0, 321, 325, 0, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 328, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 121, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 129, 329, 329, 329, 329, 329, 329, 329, + 328, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 105, + 329, 329, 329, 329, 329, 329, 8, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 122, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 134, 329, 328, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 296, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 328, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 63, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 233, 329, 14, 15, 329, 19, 18, 329, + 329, 217, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 128, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 215, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 3, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 328, 329, 329, 329, + 329, 329, 329, 329, 290, 329, 329, 289, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 312, 329, 329, 329, 329, 329, 329, + 329, 62, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 66, 329, + 264, 329, 329, 329, 329, 329, 329, 329, 329, 297, + 298, 329, 329, 329, 329, 329, 67, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 125, 329, 329, 329, 329, 329, 329, + 329, 329, 204, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 21, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 153, 329, 329, 328, 312, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 103, 329, 329, + 329, 329, 329, 329, 329, 272, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 176, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 152, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 102, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 32, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 33, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 64, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 127, 328, 329, + 329, 329, 329, 329, 120, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 65, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 237, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 177, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 53, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 255, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 57, 329, 58, 329, 329, 329, 329, 329, 106, + 329, 107, 329, 329, 329, 329, 104, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 7, 329, 328, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 226, 329, 329, 329, 329, + 155, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 238, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 45, 329, 329, 329, 329, 329, 329, + 329, 329, 54, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 196, 329, 195, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 16, 17, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 68, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 203, 329, 329, 329, 329, 329, 329, 109, + 329, 108, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 187, 329, 329, 329, 329, 329, 329, + 329, 329, 135, 328, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 87, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 216, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 91, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 61, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 190, 191, 329, 329, + 329, 266, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 6, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 270, 329, 329, 329, + + 329, 329, 329, 291, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 42, 329, 329, 329, 329, 44, + 329, 329, 329, 329, 329, 329, 329, 329, 51, 329, + 329, 329, 329, 329, 329, 329, 328, 329, 183, 329, + 329, 329, 130, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 208, 329, 184, 329, 329, 329, 223, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 52, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 132, 114, 329, 115, 329, 329, 329, 113, 329, + 329, 329, 329, 329, 329, 329, 329, 150, 329, 329, + 50, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 254, 329, 329, 329, 329, + 329, 329, 329, 329, 185, 329, 329, 329, 329, 329, + 188, 329, 194, 329, 329, 329, 329, 329, 222, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 101, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 126, 329, 329, 329, 329, 329, 329, 59, + + 329, 329, 329, 26, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 20, 329, 329, 329, 329, 329, 329, + 27, 36, 329, 160, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 328, 329, 329, + 329, 329, 329, 329, 76, 78, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 274, + 329, 329, 329, 329, 234, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 116, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 149, 329, 46, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 285, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 154, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 214, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 294, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 171, 329, 329, 329, 329, 329, 329, + 329, 329, 110, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 166, 329, 178, 329, 329, 329, 329, 328, + 329, 138, 329, 329, 329, 329, 329, 97, 329, 329, + 329, 329, 206, 329, 329, 329, 329, 329, 329, 224, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 246, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 131, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 170, 329, 329, 329, 329, 329, 329, 79, 80, + 329, 329, 329, 329, 329, 60, 329, 329, 329, 329, + 329, 86, 179, 329, 197, 329, 227, 329, 329, 189, + + 267, 329, 329, 329, 329, 329, 72, 329, 181, 329, + 329, 329, 329, 329, 9, 329, 329, 329, 100, 329, + 329, 329, 329, 259, 329, 329, 329, 329, 205, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 328, 329, 329, 329, 329, 169, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 156, 329, 273, 329, 329, 329, 329, 329, 245, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 218, 329, 329, 301, 329, 329, 329, 265, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 288, 329, 180, 329, + 329, 329, 329, 329, 329, 329, 71, 73, 329, 329, + 329, 329, 329, 329, 329, 99, 329, 329, 329, 329, + 257, 329, 329, 329, 329, 269, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 210, 34, 28, + 30, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 35, 329, 29, 31, 329, 329, 329, 329, 329, 329, + 329, 329, 96, 329, 329, 329, 329, 329, 329, 328, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 212, 209, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 70, 329, 329, 329, 133, 329, 117, 329, 329, + 329, 329, 329, 329, 329, 329, 151, 47, 329, 329, + 320, 13, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 283, 329, 286, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 12, 329, 329, 22, 329, 329, + + 329, 263, 329, 329, 329, 329, 271, 329, 329, 329, + 74, 329, 220, 329, 329, 329, 329, 211, 329, 329, + 69, 329, 329, 329, 329, 23, 329, 43, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 165, 164, 320, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 213, 207, 329, 225, 329, 329, 275, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 81, 329, 329, 329, 258, 329, 329, 329, 329, 193, + + 329, 329, 329, 329, 219, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 292, 293, 162, 329, 329, 75, + 329, 329, 329, 329, 172, 329, 329, 111, 112, 329, + 329, 329, 329, 157, 329, 159, 329, 198, 329, 329, + 329, 329, 163, 329, 329, 228, 329, 329, 329, 329, + 329, 329, 329, 140, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 236, 329, 329, 329, + 329, 329, 329, 329, 329, 24, 329, 268, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 199, 329, 329, 256, 329, 287, 329, 192, 329, + + 329, 329, 329, 55, 329, 329, 329, 329, 4, 329, + 329, 329, 329, 124, 139, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 231, 37, 38, 329, 329, 329, 329, + 329, 329, 329, 276, 329, 329, 329, 329, 329, 329, + 329, 244, 329, 329, 329, 329, 329, 329, 329, 329, + 202, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 84, 329, 56, 262, 329, 232, 329, 329, + 329, 329, 11, 329, 329, 329, 329, 329, 329, 123, + 329, 329, 329, 329, 200, 88, 329, 40, 329, 329, + + 329, 329, 329, 329, 329, 329, 168, 329, 329, 329, + 329, 329, 142, 329, 329, 329, 329, 235, 329, 329, + 329, 329, 329, 243, 329, 329, 329, 329, 136, 329, + 329, 329, 118, 119, 329, 329, 329, 90, 94, 89, + 329, 329, 329, 82, 329, 329, 329, 329, 329, 10, + 329, 329, 329, 260, 295, 329, 329, 329, 329, 300, + 39, 329, 329, 329, 329, 329, 167, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 95, 93, 329, 329, 329, 83, 284, 329, 329, 329, + + 329, 329, 329, 329, 186, 329, 329, 329, 329, 329, + 201, 329, 329, 329, 329, 329, 329, 329, 329, 158, + 77, 329, 329, 329, 329, 329, 277, 329, 329, 329, + 329, 329, 329, 329, 240, 329, 329, 239, 137, 302, + 329, 92, 48, 329, 143, 144, 147, 148, 145, 146, + 85, 329, 261, 329, 329, 329, 329, 161, 329, 329, + 329, 329, 329, 230, 329, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 329, 329, 174, 173, 41, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + 98, 329, 229, 329, 253, 281, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 49, 5, + 329, 329, 221, 329, 329, 282, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 241, 25, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 242, + 329, 329, 329, 141, 329, 329, 329, 329, 329, 329, + 329, 329, 175, 329, 182, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 278, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, + + 329, 329, 299, 329, 329, 249, 329, 329, 329, 329, + 329, 279, 329, 329, 329, 329, 329, 329, 280, 329, + 329, 329, 247, 329, 250, 251, 329, 329, 329, 329, + 329, 248, 252, 0 } ; static const YY_CHAR yy_ec[256] = @@ -762,17 +763,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3245] = +static const flex_int16_t yy_base[3253] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4264, 3883, 81, 6299, - 6299, 6299, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 4264, 3883, 81, 6320, + 6320, 6320, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 184, 145, - 185, 205, 194, 204, 178, 123, 3532, 6299, 6299, 6299, - 107, 3462, 6299, 6299, 6299, 154, 3335, 2925, 6299, 6299, - 6299, 226, 2336, 6299, 6299, 6299, 163, 2298, 6299, 238, - 6299, 242, 148, 1838, 1641, 6299, 6299, 6299, 246, 1331, - 6299, 6299, 6299, 250, 1145, 254, 219, 0, 258, 0, + 185, 205, 194, 204, 178, 123, 3532, 6320, 6320, 6320, + 107, 3462, 6320, 6320, 6320, 154, 3335, 2925, 6320, 6320, + 6320, 226, 2336, 6320, 6320, 6320, 163, 2298, 6320, 238, + 6320, 242, 148, 1838, 1641, 6320, 6320, 6320, 246, 1331, + 6320, 6320, 6320, 250, 1145, 254, 219, 0, 258, 0, 0, 165, 250, 191, 215, 243, 252, 256, 92, 260, 261, 262, 264, 265, 266, 273, 270, 277, 278, 281, @@ -802,9 +803,9 @@ static const flex_int16_t yy_base[3245] = 739, 741, 752, 747, 748, 761, 754, 756, 757, 764, 755, 771, 765, 786, 793, 772, 782, 768, 791, 794, 796, 801, 797, 790, 804, 807, 808, 810, 811, 818, - 813, 6299, 815, 817, 829, 828, 831, 834, 824, 840, + 813, 6320, 815, 817, 829, 828, 831, 834, 824, 840, 832, 820, 850, 846, 847, 851, 873, 848, 849, 862, - 863, 853, 6299, 866, 857, 897, 865, 875, 887, 882, + 863, 853, 6320, 866, 857, 897, 865, 875, 887, 882, 858, 883, 890, 895, 891, 907, 893, 898, 903, 920, 906, 908, 915, 921, 922, 923, 931, 932, 926, 930, @@ -813,22 +814,22 @@ static const flex_int16_t yy_base[3245] = 975, 986, 983, 985, 988, 978, 996, 1007, 998, 1002, 1006, 1009, 1011, 1013, 1014, 1017, 1021, 1018, 1022, 1024, 1032, 1027, 1028, 1029, 1034, 1036, 1037, 1040, 1042, 1045, - 1044, 1048, 1049, 1047, 1054, 1060, 1057, 1066, 1058, 6299, - 1068, 1061, 1064, 1070, 1071, 1073, 6299, 1074, 1075, 1076, + 1044, 1048, 1049, 1047, 1054, 1060, 1057, 1066, 1058, 6320, + 1068, 1061, 1064, 1070, 1071, 1073, 6320, 1074, 1075, 1076, 1083, 1084, 1087, 1096, 1086, 1097, 1099, 1089, 1098, 1110, 1106, 1109, 1117, 1107, 1114, 1115, 1118, 1116, 1122, 1123, - 1124, 1125, 1128, 1130, 1148, 6299, 1131, 1140, 1132, 1133, + 1124, 1125, 1128, 1130, 1148, 6320, 1131, 1140, 1132, 1133, 1134, 1142, 1160, 1144, 1153, 1157, 1161, 1172, 1163, 1175, 1171, 1180, 1181, 1183, 1184, 1186, 1187, 1188, 1190, 1189, - 1191, 1193, 1195, 1192, 1198, 6299, 1197, 1212, 1219, 1205, + 1191, 1193, 1195, 1192, 1198, 6320, 1197, 1212, 1219, 1205, 1210, 1215, 1218, 1220, 1221, 1222, 1223, 1227, 1230, 1241, 1237, 1233, 1248, 1243, 1244, 1246, 1249, 1251, 1250, 1252, 1254, 1263, 1259, 1266, 1274, 1275, 1277, 1279, 1286, 1288, 1281, 1283, 1289, 1285, 1284, 1291, 1293, 1300, 1294, 1297, 1224, 1304, 1306, 1301, 1307, 1308, 1313, 1309, 1311, 1315, 1318, 1321, 1329, 1325, 1326, 1335, 1327, 1336, 1328, 1333, - 1339, 1348, 1342, 1350, 6299, 1357, 1258, 1352, 1354, 1359, + 1339, 1348, 1342, 1350, 6320, 1357, 1258, 1352, 1354, 1359, 1360, 1361, 1362, 1367, 1368, 1369, 1371, 1370, 1373, 1374, 1377, 1379, 1384, 1386, 1387, 1388, 1389, 1402, 1401, 1403, @@ -841,650 +842,652 @@ static const flex_int16_t yy_base[3245] = 1528, 1527, 1529, 1531, 1534, 1530, 1539, 1540, 1542, 1536, 1549, 1550, 1551, 1552, 1555, 1553, 1557, 1562, 1563, 1564, - 1568, 1570, 1569, 1572, 1578, 1575, 1576, 6299, 1580, 1588, + 1568, 1570, 1569, 1572, 1578, 1575, 1576, 6320, 1580, 1588, 1581, 1589, 1586, 1591, 1592, 1600, 1595, 1597, 1596, 1602, - 1605, 1628, 6299, 1606, 6299, 6299, 315, 6299, 6299, 1608, - 1607, 6299, 1609, 1611, 1618, 1619, 1631, 1635, 1638, 1624, + 1605, 1628, 6320, 1606, 6320, 6320, 315, 6320, 6320, 1608, + 1607, 6320, 1609, 1611, 1618, 1619, 1631, 1635, 1638, 1624, 1612, 1639, 1651, 1660, 1641, 1622, 1652, 1653, 1644, 1654, 1666, 1655, 1665, 1656, 1673, 1683, 1684, 1685, 1675, 1687, 1689, 1692, 1693, 1697, 1699, 1700, 1702, 1703, 1704, 1706, 1705, 1708, 1711, 1714, 1715, 1717, 1710, 1718, 1669, 1727, - 1720, 1737, 6299, 1729, 1739, 1744, 1741, 1748, 1747, 1743, + 1720, 1737, 6320, 1729, 1739, 1744, 1741, 1748, 1747, 1743, 1745, 1752, 1755, 1756, 1757, 1758, 1723, 1759, 1761, 1762, - 1765, 1772, 1767, 6299, 1768, 1770, 1769, 1776, 1774, 1782, + 1765, 1772, 1767, 6320, 1768, 1770, 1769, 1776, 1774, 1782, 1784, 1780, 1787, 1788, 1790, 1801, 1791, 1796, 1798, 1799, - 1802, 1804, 6299, 1814, 1806, 1809, 1813, 1810, 1819, 1820, + 1802, 1804, 6320, 1814, 1806, 1809, 1813, 1810, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1827, 1833, 1834, 1835, 1836, 1837, 1841, 1851, 1846, 1849, 1859, 1850, 1853, 1861, 1863, 1864, 1865, 1866, 1868, 1873, 1875, 1872, 1880, 1876, 1883, 1895, 1878, 1879, 1890, 1892, 1891, 1893, 1905, 1900, 1901, 1904, 1913, 1906, 1909, 1911, 1915, 1922, 1918, 1923, 1924, - 1914, 1928, 1930, 1931, 6299, 1932, 1937, 6299, 1934, 1938, + 1914, 1928, 1930, 1931, 6320, 1932, 1937, 6320, 1934, 1938, 1960, 1939, 1941, 1942, 1944, 1947, 1949, 1946, 1952, 1962, 1964, 1974, 1970, 1975, 1980, 1977, 1982, 1983, 1985, 1986, 1988, 1991, 1993, 1998, 1994, 2007, 2012, 2011, 2008, 2019, 2014, 2015, 2017, 2037, 2016, 2018, 2025, 2020, 2021, 2024, 2033, 2026, 2027, 2030, 2031, 2048, 2050, 2044, 2052, 2053, - 2059, 2060, 2054, 6299, 2067, 1955, 2065, 2066, 2075, 2072, - 2070, 6299, 2073, 2076, 2078, 2086, 2081, 2083, 2087, 2088, - 2091, 2093, 2095, 2097, 2100, 2098, 2099, 2117, 6299, 2096, - 6299, 2101, 2103, 2110, 2114, 2118, 2119, 2120, 2121, 6299, - 6299, 2122, 2124, 2130, 2138, 2135, 6299, 2137, 2145, 2142, + 2059, 2060, 2054, 6320, 2067, 1955, 2065, 2066, 2075, 2072, + 2070, 6320, 2073, 2076, 2078, 2086, 2081, 2083, 2087, 2088, + 2091, 2093, 2095, 2097, 2100, 2098, 2099, 2117, 6320, 2096, + 6320, 2101, 2103, 2110, 2114, 2118, 2119, 2120, 2121, 6320, + 6320, 2122, 2124, 2130, 2138, 2135, 6320, 2137, 2145, 2142, 2147, 2140, 2141, 2149, 2151, 2155, 2152, 2162, 2157, 2164, - 2159, 2166, 2170, 6299, 2160, 2172, 2173, 2175, 2176, 2181, - 2182, 2179, 6299, 2183, 2185, 2188, 2196, 2198, 2195, 2199, + 2159, 2166, 2170, 6320, 2160, 2172, 2173, 2175, 2176, 2181, + 2182, 2179, 6320, 2183, 2185, 2188, 2196, 2198, 2195, 2199, 2200, 2205, 2202, 2207, 2208, 2209, 2210, 2219, 2221, 2211, - 2222, 2224, 2231, 6299, 2214, 2218, 2236, 2234, 2241, 2233, + 2222, 2224, 2231, 6320, 2214, 2218, 2236, 2234, 2241, 2233, 2235, 2237, 2243, 2245, 2246, 2247, 2250, 2251, 2252, 2259, 2260, 2257, 2256, 2265, 2266, 2267, 2270, 2273, 2274, 2275, - 2276, 2277, 6299, 2278, 2280, 2283, 171, 2286, 2289, 2287, + 2276, 2277, 6320, 2278, 2280, 2283, 171, 2286, 2289, 2287, 2288, 2296, 2291, 2294, 2307, 2312, 2308, 2309, 2310, 2316, - 2317, 2318, 2319, 2320, 2321, 2322, 2324, 6299, 2326, 2327, - 2329, 2333, 2332, 2335, 2340, 6299, 2342, 2349, 2352, 2361, + 2317, 2318, 2319, 2320, 2321, 2322, 2324, 6320, 2326, 2327, + 2329, 2333, 2332, 2335, 2340, 6320, 2342, 2349, 2352, 2361, 2344, 2353, 2362, 2358, 2363, 2364, 2366, 2368, 2370, 2369, - 2372, 2378, 2375, 6299, 2380, 2383, 2385, 2376, 2392, 2391, + 2372, 2378, 2375, 6320, 2380, 2383, 2385, 2376, 2392, 2391, 2384, 2398, 2399, 2400, 2403, 2401, 2402, 2405, 2404, 2406, 2407, 2412, 2411, 2408, 2410, 2420, 2421, 2422, 2431, 2424, - 2432, 2433, 6299, 2440, 2435, 2437, 2438, 2439, 2452, 2442, + 2432, 2433, 6320, 2440, 2435, 2437, 2438, 2439, 2452, 2442, 2461, 2444, 2448, 2445, 2464, 2466, 2456, 2467, 2478, 2480, 2468, 2477, 2488, 2487, 2490, 2483, 2470, 2493, 2496, 2497, 2498, 2500, 2502, 2503, 2504, 2505, 2512, 2513, 2510, 2520, - 2519, 2525, 2532, 2527, 6299, 2536, 2531, 2534, 2541, 2548, + 2519, 2525, 2532, 2527, 6320, 2536, 2531, 2534, 2541, 2548, 2544, 2521, 2549, 2545, 2551, 2555, 2556, 2557, 2564, 2561, 2565, 2563, 2567, 2566, 2569, 2568, 2570, 2576, 2583, 2579, - 2585, 2587, 6299, 2511, 2588, 2590, 2591, 2597, 2592, 2599, + 2585, 2587, 6320, 2511, 2588, 2590, 2591, 2597, 2592, 2599, 2601, 2603, 2604, 2605, 2607, 2610, 2611, 2613, 2615, 2618, - 2617, 2616, 6299, 2621, 2622, 2623, 2629, 2631, 2632, 2639, - 2641, 2647, 2645, 2635, 2649, 2651, 2652, 6299, 2660, 2662, - 2659, 2663, 2661, 2666, 2667, 2669, 2671, 6299, 2672, 2673, - 2674, 2681, 2682, 2677, 6299, 2686, 2684, 2679, 2688, 2689, - 2690, 2694, 2692, 2696, 2701, 2702, 2706, 2709, 2710, 6299, + 2617, 2616, 6320, 2621, 2622, 2623, 2629, 2631, 2632, 2639, + 2641, 2647, 2645, 2635, 2649, 2651, 2652, 6320, 2660, 2662, + 2659, 2663, 2661, 2666, 2667, 2669, 2671, 6320, 2672, 2673, + 2674, 2681, 2682, 2677, 6320, 2686, 2684, 2679, 2688, 2689, + 2690, 2694, 2692, 2696, 2701, 2702, 2706, 2709, 2710, 6320, 2711, 2723, 2713, 2716, 2718, 2714, 2720, 2724, 2729, 2727, - 2738, 2733, 6299, 2749, 2638, 2741, 2751, 2744, 2746, 2748, + 2738, 2733, 6320, 2749, 2638, 2741, 2751, 2744, 2746, 2748, - 2753, 2754, 2755, 2756, 2757, 2760, 6299, 2761, 2764, 2765, + 2753, 2754, 2755, 2756, 2757, 2760, 6320, 2761, 2764, 2765, 2767, 2770, 2769, 2771, 2784, 2777, 2779, 2781, 2785, 2786, 2788, 2791, 2792, 2797, 2793, 2794, 2804, 2806, 2808, 2809, 2812, 2816, 2814, 2819, 2820, 2815, 2822, 2825, 2833, 2838, - 2823, 2834, 6299, 2837, 2840, 2839, 2841, 2842, 2845, 2846, + 2823, 2834, 6320, 2837, 2840, 2839, 2841, 2842, 2845, 2846, 2849, 2847, 2854, 2852, 2851, 2855, 2864, 2872, 2861, 2868, 2870, 2873, 2875, 2877, 2876, 2878, 2879, 2886, 2883, 2885, 2893, 2890, 2894, 2902, 2891, 2899, 2901, 2903, 2905, 2904, 2906, 2907, 2912, 2914, 2917, 2924, 2927, 2929, 2928, 2930, - 2931, 2934, 6299, 2937, 2938, 2935, 2942, 2945, 2947, 2949, + 2931, 2934, 6320, 2937, 2938, 2935, 2942, 2945, 2947, 2949, 2957, 2948, 2952, 2959, 2956, 2966, 2958, 2967, 2968, 2975, - 2972, 6299, 2973, 6299, 2974, 2976, 2979, 2983, 2982, 6299, - 2987, 6299, 2989, 2994, 2984, 2990, 6299, 2996, 2997, 2998, + 2972, 6320, 2973, 6320, 2974, 2976, 2979, 2983, 2982, 6320, + 2987, 6320, 2989, 2994, 2984, 2990, 6320, 2996, 2997, 2998, 3003, 3001, 3005, 3008, 3009, 3010, 3011, 3013, 3015, 3019, 3018, 3020, 3023, 3028, 3025, 3029, 3032, 3035, 3036, 3040, - 3038, 3042, 3045, 3047, 3050, 6299, 3052, 3048, 3054, 3057, + 3038, 3042, 3045, 3047, 3050, 6320, 3052, 3048, 3054, 3057, 3058, 3059, 3061, 3062, 3065, 3067, 3068, 3074, 3075, 3069, - 3079, 3085, 3082, 3084, 3097, 6299, 3092, 3094, 3095, 3096, - 6299, 3098, 3099, 3100, 3107, 3105, 3109, 3110, 3112, 3116, - 3111, 3118, 3113, 3128, 3126, 3132, 3121, 6299, 3135, 3136, + 3079, 3085, 3082, 3084, 3097, 6320, 3092, 3094, 3095, 3096, + 6320, 3098, 3099, 3100, 3107, 3105, 3109, 3110, 3112, 3116, + 3111, 3118, 3113, 3128, 3126, 3132, 3121, 6320, 3135, 3136, 3122, 3139, 3149, 3151, 3156, 3138, 3152, 3154, 3163, 3159, 3158, 3160, 3161, 3162, 3165, 3172, 3173, 3169, 3176, 3175, 3179, 3186, 3183, 3177, 3181, 3187, 3189, 3190, 3191, 3192, - 3193, 3194, 3197, 6299, 3199, 3200, 3202, 3214, 3206, 3209, - 3213, 3217, 6299, 3220, 3221, 3223, 3224, 3222, 3230, 3231, - 3232, 3233, 3234, 3236, 3239, 3240, 6299, 3245, 6299, 3246, + 3193, 3194, 3197, 6320, 3199, 3200, 3202, 3214, 3206, 3209, + 3213, 3217, 6320, 3220, 3221, 3223, 3224, 3222, 3230, 3231, + 3232, 3233, 3234, 3236, 3239, 3240, 6320, 3245, 6320, 3246, 3254, 3253, 3259, 3235, 3261, 3263, 3268, 3262, 3264, 3269, 3272, 3270, 3276, 3273, 3278, 3281, 3285, 3286, 3288, 3284, - 3295, 3291, 3296, 3298, 3299, 6299, 6299, 3300, 3301, 3302, + 3295, 3291, 3296, 3298, 3299, 6320, 6320, 3300, 3301, 3302, 3305, 3306, 3307, 3316, 3318, 3323, 3320, 3313, 3322, 3342, - 6299, 3329, 3324, 3326, 3332, 3350, 3333, 3346, 3353, 3349, - 3358, 3355, 6299, 3356, 3357, 3365, 3360, 3363, 3368, 6299, - 3367, 6299, 3364, 3369, 3370, 3377, 3374, 3379, 3380, 3381, + 6320, 3329, 3324, 3326, 3332, 3350, 3333, 3346, 3353, 3349, + 3358, 3355, 6320, 3356, 3357, 3365, 3360, 3363, 3368, 6320, + 3367, 6320, 3364, 3369, 3370, 3377, 3374, 3379, 3380, 3381, 3385, 3396, 3397, 3389, 3399, 3393, 3382, 3401, 3403, 3410, - 3405, 3407, 3408, 6299, 3412, 3409, 3414, 3417, 3419, 3425, - 3428, 3415, 6299, 3421, 3431, 3435, 3432, 3436, 3439, 3441, + 3405, 3407, 3408, 6320, 3412, 3409, 3414, 3417, 3419, 3425, + 3428, 3415, 6320, 3421, 3431, 3435, 3432, 3436, 3439, 3441, 3442, 3443, 3445, 3447, 3444, 3449, 3460, 3452, 3453, 3455, - 3466, 3467, 3473, 6299, 3474, 3468, 3481, 3483, 3476, 3478, + 3466, 3467, 3473, 6320, 3474, 3468, 3481, 3483, 3476, 3478, 3484, 3485, 3486, 3489, 3491, 3490, 3492, 3493, 3494, 3496, - 3498, 3501, 3499, 3512, 3513, 3500, 3521, 3522, 3504, 6299, + 3498, 3501, 3499, 3512, 3513, 3500, 3521, 3522, 3504, 6320, 3514, 3526, 3527, 3528, 3529, 3535, 3536, 3539, 3541, 3530, - 3545, 3552, 3534, 3542, 3557, 3554, 3565, 3561, 6299, 3566, + 3545, 3552, 3534, 3542, 3557, 3554, 3565, 3561, 6320, 3566, 3562, 3573, 3547, 3568, 3570, 3574, 3576, 3578, 3575, 3579, - 3582, 3585, 3592, 3587, 3588, 3589, 3597, 3593, 6299, 3604, + 3582, 3585, 3592, 3587, 3588, 3589, 3597, 3593, 6320, 3604, 3602, 3605, 3610, 3611, 3618, 3614, 3595, 3617, 3620, 3622, - 3624, 3627, 3628, 3629, 3632, 3633, 6299, 6299, 3635, 3636, - 3637, 6299, 3640, 3639, 3651, 3642, 3643, 3644, 3655, 3654, - 3652, 3656, 3658, 3665, 6299, 3666, 3673, 3668, 3669, 3680, + 3624, 3627, 3628, 3629, 3632, 3633, 6320, 6320, 3635, 3636, + 3637, 6320, 3640, 3639, 3651, 3642, 3643, 3644, 3655, 3654, + 3652, 3656, 3658, 3665, 6320, 3666, 3673, 3668, 3669, 3680, 3683, 3686, 3670, 3682, 3672, 3679, 3687, 3690, 3689, 3694, - 3695, 3703, 3706, 3701, 3702, 3704, 6299, 3705, 3709, 3710, + 3695, 3703, 3706, 3701, 3702, 3704, 6320, 3705, 3709, 3710, - 3712, 3713, 3714, 6299, 3716, 3718, 3727, 3719, 3737, 3726, + 3712, 3713, 3714, 6320, 3716, 3718, 3727, 3719, 3737, 3726, 3723, 3741, 3738, 3742, 3743, 3744, 3745, 3746, 3753, 3748, - 3750, 3752, 3757, 3760, 6299, 3761, 3767, 3754, 3769, 6299, - 3772, 3781, 3779, 3782, 3777, 3784, 3785, 3792, 6299, 3787, - 3790, 3788, 3791, 3801, 3793, 3802, 3804, 3798, 6299, 3805, - 3806, 3807, 6299, 3808, 3813, 3819, 3821, 3822, 3829, 3824, - 3826, 3827, 3828, 6299, 3834, 6299, 3832, 3836, 3840, 6299, + 3750, 3752, 3757, 3760, 6320, 3761, 3767, 3754, 3769, 6320, + 3772, 3781, 3779, 3782, 3777, 3784, 3785, 3792, 6320, 3787, + 3790, 3788, 3791, 3801, 3793, 3802, 3804, 3798, 6320, 3805, + 3806, 3807, 6320, 3808, 3813, 3819, 3821, 3822, 3829, 3824, + 3826, 3827, 3828, 6320, 3834, 6320, 3832, 3836, 3840, 6320, 3838, 3843, 3844, 3846, 3847, 3852, 3853, 3851, 3860, 3861, 3862, 3864, 3865, 3863, 3868, 3872, 3869, 3870, 3874, 3875, - 6299, 3876, 3878, 3885, 3890, 3897, 3886, 3893, 3880, 3899, - - 3900, 6299, 6299, 3903, 6299, 3906, 3907, 3908, 6299, 3910, - 3912, 3917, 3914, 3915, 3918, 3922, 3919, 6299, 3929, 3932, - 6299, 3930, 3940, 3935, 3937, 3938, 3943, 3939, 3941, 3945, - 3949, 3951, 3946, 3950, 3947, 6299, 3954, 3952, 3956, 3960, - 3967, 3968, 3970, 3969, 6299, 3976, 3977, 3973, 3980, 3983, - 6299, 3984, 6299, 3982, 3986, 3992, 3994, 3988, 6299, 3997, + 6320, 3876, 3878, 3885, 3890, 3897, 3886, 3893, 3880, 3899, + + 3900, 6320, 6320, 3903, 6320, 3906, 3907, 3908, 6320, 3910, + 3912, 3917, 3914, 3915, 3918, 3922, 3919, 6320, 3929, 3932, + 6320, 3930, 3940, 3935, 3937, 3938, 3943, 3939, 3941, 3945, + 3949, 3951, 3946, 3950, 3947, 6320, 3954, 3952, 3956, 3960, + 3967, 3968, 3970, 3969, 6320, 3976, 3977, 3973, 3980, 3983, + 6320, 3984, 6320, 3982, 3986, 3992, 3994, 3988, 6320, 3997, 3998, 4002, 4003, 4005, 4006, 4009, 4011, 4013, 4015, 4023, - 4019, 4020, 4018, 6299, 4021, 4022, 4028, 4037, 4030, 4032, + 4019, 4020, 4018, 6320, 4021, 4022, 4028, 4037, 4030, 4032, 4047, 4034, 4042, 4025, 4046, 4049, 4051, 4055, 4057, 4050, - 4060, 4053, 6299, 4061, 4064, 4067, 4075, 4068, 4072, 6299, + 4060, 4053, 6320, 4061, 4064, 4067, 4075, 4068, 4072, 6320, - 4078, 4076, 4080, 6299, 4079, 4082, 4086, 4094, 4083, 4087, - 4091, 4089, 4096, 6299, 4097, 4098, 4099, 4108, 4112, 4106, - 6299, 6299, 4114, 6299, 4116, 4100, 4121, 4124, 4104, 4118, + 4078, 4076, 4080, 6320, 4079, 4082, 4086, 4094, 4083, 4087, + 4091, 4089, 4096, 6320, 4097, 4098, 4099, 4108, 4112, 4106, + 6320, 6320, 4114, 6320, 4116, 4100, 4121, 4124, 4104, 4118, 4126, 4128, 4131, 4132, 4134, 4135, 4139, 4141, 4149, 4150, - 4153, 4154, 4156, 4145, 6299, 6299, 4159, 4160, 4146, 4167, - 4168, 4162, 4170, 4177, 4173, 4179, 4182, 4184, 4191, 6299, - 4172, 4183, 4190, 4187, 6299, 4192, 4193, 4195, 4196, 4197, + 4153, 4154, 4156, 4145, 6320, 6320, 4159, 4160, 4146, 4167, + 4168, 4162, 4170, 4177, 4173, 4179, 4182, 4184, 4191, 6320, + 4172, 4183, 4190, 4187, 6320, 4192, 4193, 4195, 4196, 4197, 4201, 4199, 4200, 4204, 4205, 4213, 4206, 4208, 4216, 4214, - 4222, 4224, 4225, 4226, 4228, 4230, 4233, 6299, 4234, 4235, - 4237, 4238, 4239, 4243, 4245, 4246, 4247, 6299, 4249, 6299, + 4222, 4224, 4225, 4226, 4228, 4230, 4233, 6320, 4234, 4235, + 4237, 4238, 4239, 4243, 4245, 4246, 4247, 6320, 4249, 6320, 4252, 4251, 4253, 4260, 4267, 4270, 4269, 4271, 4274, 4275, - 4278, 4280, 4281, 4284, 4288, 4283, 4291, 4293, 6299, 4294, + 4278, 4280, 4281, 4284, 4288, 4283, 4291, 4293, 6320, 4294, 4286, 4300, 4301, 4303, 4305, 4307, 4309, 4310, 4312, 4314, - 4316, 4318, 4323, 4319, 4315, 4325, 4327, 6299, 4330, 4332, + 4316, 4318, 4323, 4319, 4315, 4325, 4327, 6320, 4330, 4332, 4334, 4337, 4338, 4341, 4340, 4344, 4349, 4342, 4350, 4351, - 4355, 6299, 4352, 4357, 4358, 4359, 4367, 4362, 4364, 4368, - 4371, 6299, 4375, 4376, 4377, 4378, 4379, 4382, 4385, 4387, - 4389, 4391, 4399, 6299, 4394, 4390, 4403, 4401, 4405, 4404, - 4407, 4409, 6299, 4410, 4416, 4413, 4420, 4422, 4429, 4427, + 4355, 6320, 4352, 4357, 4358, 4359, 4367, 4362, 4364, 4368, + 4371, 6320, 4375, 4376, 4377, 4378, 4379, 4382, 4385, 4387, + 4389, 4391, 4399, 6320, 4394, 4390, 4403, 4401, 4405, 4404, + 4407, 4409, 6320, 4410, 4416, 4413, 4420, 4422, 4429, 4427, 4431, 4424, 4433, 4434, 4430, 4438, 4441, 4442, 4440, 4458, - 4459, 4444, 6299, 4445, 6299, 4455, 4456, 4466, 4461, 4463, - 4467, 6299, 4469, 4472, 4474, 4471, 4475, 6299, 4478, 4476, - 4479, 4481, 6299, 4477, 4491, 4482, 4483, 4498, 4499, 6299, + 4459, 4444, 6320, 4445, 6320, 4455, 4456, 4466, 4461, 4463, + 4467, 6320, 4469, 4472, 4474, 4471, 4475, 6320, 4478, 4476, + 4479, 4481, 6320, 4477, 4491, 4482, 4483, 4498, 4499, 6320, 4504, 4505, 4501, 4513, 4515, 4510, 4512, 4514, 4516, 4518, - 4520, 4521, 4522, 4531, 4524, 4527, 6299, 4529, 4536, 4542, - 4543, 4545, 4526, 4537, 4546, 4552, 4547, 6299, 4549, 4553, - 4555, 4556, 4558, 4559, 4561, 4569, 4565, 4564, 4567, 4572, - 4568, 6299, 4576, 4574, 4578, 4587, 4584, 4591, 6299, 6299, - 4580, 4595, 4597, 4585, 4598, 6299, 4601, 4608, 4603, 4607, - 4604, 6299, 6299, 4610, 6299, 4612, 6299, 4614, 4616, 6299, - - 6299, 4617, 4618, 4619, 4620, 4627, 6299, 4634, 6299, 4629, - 4635, 4621, 4631, 4638, 6299, 4639, 4640, 4642, 6299, 4645, - 4655, 4646, 4647, 6299, 4651, 4656, 4648, 4657, 6299, 4660, - 4666, 4663, 4669, 4670, 4671, 4672, 4677, 4678, 4673, 4681, - 4680, 4683, 4690, 4694, 4696, 4698, 4699, 4684, 4701, 4703, - 4707, 4705, 4709, 4710, 4712, 4714, 4715, 4719, 4723, 4716, - 4720, 4724, 4725, 4726, 4733, 4729, 4735, 4740, 4736, 4741, - 4742, 4743, 4744, 4747, 4748, 4750, 4754, 4757, 4758, 6299, - 4752, 4753, 4759, 4766, 4764, 4771, 4774, 4781, 4784, 4785, - 6299, 4787, 6299, 4789, 4777, 4791, 4792, 4793, 6299, 4794, - - 4797, 4796, 4799, 4798, 4800, 4801, 4804, 4805, 4809, 4812, - 6299, 4817, 6299, 4806, 4821, 4826, 6299, 4822, 4833, 4829, - 4834, 4835, 4836, 4837, 4838, 4841, 4839, 4844, 4846, 4848, - 4853, 4850, 4861, 4868, 4854, 4863, 4864, 4865, 4867, 4869, - 4871, 4873, 4880, 4882, 4886, 6299, 4874, 6299, 4881, 4877, - 4888, 4891, 4892, 4894, 4898, 6299, 6299, 4895, 4899, 4904, - 4901, 4905, 4907, 4908, 6299, 4909, 4918, 4920, 4913, 6299, - 4910, 4921, 4927, 4929, 6299, 4930, 4931, 4932, 4934, 4935, - 4938, 4939, 4943, 4945, 4946, 4949, 6299, 6299, 6299, 6299, - 4950, 4953, 4956, 4957, 4959, 4960, 4962, 4964, 4965, 6299, - - 4967, 6299, 6299, 4968, 4974, 4976, 4977, 4978, 4981, 4983, - 4985, 6299, 4984, 4989, 4991, 4987, 4998, 5004, 5006, 4988, - 5007, 5001, 5008, 5015, 5011, 5013, 5010, 5017, 5021, 5024, - 6299, 6299, 5018, 5028, 5029, 5036, 5033, 5034, 5037, 5046, - 5041, 5042, 5043, 5044, 5048, 5049, 5060, 5061, 5053, 5050, - 6299, 5063, 5064, 6299, 5057, 6299, 5066, 5072, 5065, 5073, - 5075, 5076, 5078, 5080, 6299, 6299, 5087, 5082, 6299, 6299, - 5074, 5090, 5092, 5095, 5096, 5091, 5097, 5099, 5101, 6299, - 5102, 6299, 5103, 5104, 5106, 5107, 5119, 5122, 5124, 5126, - 5121, 5109, 6299, 5127, 5128, 6299, 5130, 5131, 5133, 6299, - - 5137, 5135, 5140, 5143, 6299, 5147, 5150, 5144, 6299, 5152, - 6299, 5155, 5156, 5157, 5164, 6299, 5159, 5165, 6299, 5168, - 5171, 5173, 5172, 6299, 5160, 6299, 5162, 5181, 5183, 5187, - 5174, 5191, 5188, 5177, 5192, 5199, 5197, 5194, 6299, 6299, - 135, 5208, 5200, 5204, 5205, 5203, 5216, 5211, 5213, 5215, - 6299, 6299, 5221, 6299, 5212, 5219, 6299, 5218, 5227, 5228, - 5231, 5232, 5233, 5234, 5238, 5240, 5241, 5242, 5244, 5246, - 5256, 5263, 5247, 5260, 5267, 5269, 5271, 5273, 5261, 5275, - 5276, 5278, 5279, 5281, 5282, 5283, 5285, 6299, 5288, 5289, - 5284, 6299, 5294, 5290, 5300, 5301, 6299, 5308, 5309, 5310, - - 5311, 6299, 5295, 5315, 5312, 5317, 5235, 5328, 5321, 5323, - 5325, 6299, 6299, 6299, 5330, 5337, 6299, 5339, 5331, 5324, - 5333, 6299, 5341, 5340, 6299, 6299, 5342, 5344, 5343, 5354, - 6299, 5346, 6299, 5347, 6299, 5355, 5356, 5364, 5357, 6299, - 5369, 5371, 6299, 5377, 5379, 5381, 5373, 5370, 5383, 5384, - 6299, 5391, 5387, 5388, 5395, 5386, 5396, 5397, 5398, 5399, - 5406, 5401, 5410, 6299, 5407, 5414, 5415, 5412, 5405, 5416, - 5421, 6299, 5423, 6299, 5425, 5427, 5428, 5430, 5429, 5433, - 5434, 5443, 5435, 5436, 5437, 5447, 5449, 6299, 5451, 5456, - 6299, 5453, 6299, 5458, 6299, 5459, 5460, 5461, 5462, 6299, - - 5465, 5466, 5469, 5470, 6299, 5471, 5473, 5478, 5480, 6299, - 6299, 5481, 5488, 5485, 5483, 5494, 5496, 5484, 5499, 5491, - 5500, 5503, 5512, 5507, 5508, 5510, 5514, 5359, 5515, 6299, - 6299, 6299, 5517, 5511, 5525, 5522, 5524, 5534, 5532, 6299, - 5533, 5536, 5537, 5539, 5546, 5543, 5545, 6299, 5541, 5547, - 5548, 5549, 5552, 5555, 5554, 6299, 5557, 5567, 5559, 5568, - 5570, 5572, 5577, 5579, 5569, 5586, 5583, 6299, 5585, 6299, - 6299, 5581, 6299, 5587, 5589, 5590, 5591, 6299, 5594, 5596, - 5597, 5598, 5602, 5604, 6299, 5605, 5606, 5608, 5613, 6299, - 6299, 5615, 6299, 5620, 5616, 5622, 5629, 5625, 5624, 5631, - - 5628, 6299, 5634, 5635, 5638, 5639, 5640, 6299, 5641, 5642, - 5644, 5645, 6299, 5648, 5647, 5650, 5652, 5653, 6299, 5657, - 5656, 5675, 5672, 6299, 5659, 5670, 6299, 6299, 5681, 5685, - 5674, 6299, 6299, 6299, 5682, 5671, 5689, 6299, 5692, 5696, - 5700, 5704, 5695, 6299, 5706, 5703, 5708, 6299, 6299, 5707, - 5709, 5710, 5712, 6299, 6299, 5713, 5716, 5714, 5717, 5719, - 6299, 5724, 5728, 5730, 5733, 5736, 5725, 5739, 5741, 5749, - 5751, 5746, 5747, 5752, 5754, 5755, 5756, 5758, 5767, 5763, - 5765, 5777, 5774, 6299, 6299, 5781, 5783, 5778, 6299, 6299, - 5785, 5789, 5791, 5793, 5795, 5797, 5799, 6299, 5800, 5802, - - 5803, 5804, 5766, 6299, 5805, 5807, 5808, 5813, 5810, 5814, - 5817, 5819, 6299, 6299, 5811, 5825, 5660, 5820, 5827, 6299, - 5830, 5837, 5834, 5835, 5836, 5838, 5841, 6299, 5843, 5842, - 6299, 6299, 5839, 6299, 6299, 5844, 6299, 6299, 6299, 6299, - 6299, 6299, 6299, 5847, 6299, 5846, 5853, 5861, 5863, 6299, - 5858, 5864, 5768, 5865, 5866, 6299, 5867, 5868, 5869, 5875, - 5871, 5882, 5876, 5872, 5878, 5884, 5887, 5888, 5892, 5893, - 5894, 5897, 5898, 5899, 6299, 6299, 6299, 5895, 5906, 5908, - 5910, 5914, 5916, 5921, 5923, 5911, 5924, 5925, 5927, 5929, - 5931, 5933, 5941, 5936, 5937, 5938, 5939, 5946, 5952, 5940, - - 5942, 5954, 6299, 5947, 6299, 5957, 6299, 6299, 5964, 5965, - 5960, 5958, 5973, 5976, 5969, 5971, 5972, 5974, 5981, 5986, - 6299, 6299, 5978, 5982, 6299, 5987, 5988, 6299, 5989, 5990, - 5993, 5994, 5997, 5996, 5998, 6000, 6014, 6299, 6299, 6004, - 6008, 6006, 6017, 6018, 6027, 6019, 6028, 6029, 6030, 6022, - 6037, 6299, 6039, 6040, 6043, 6299, 6032, 6044, 6046, 6047, - 6048, 6055, 6050, 6051, 6299, 6056, 6299, 6059, 6061, 6060, - 6052, 6062, 6072, 6074, 6077, 6076, 6299, 6054, 6078, 6068, - 6083, 6090, 6088, 6092, 6086, 6095, 6096, 6098, 6103, 6097, - 6106, 6107, 6109, 6108, 6299, 6111, 6112, 6299, 6115, 6116, - - 6117, 6118, 6122, 6299, 6125, 6119, 6128, 6129, 6133, 6134, - 6299, 6140, 6143, 6144, 6299, 6145, 6299, 6299, 6148, 6135, - 6146, 6156, 6158, 6299, 6299, 6299, 6179, 6186, 6193, 6200, - 6207, 6214, 6221, 88, 6228, 6235, 6242, 6249, 6256, 6263, - 6270, 6277, 6284, 6291 + 4520, 4521, 4522, 4531, 4524, 4527, 6320, 4529, 4536, 4542, + 4543, 4550, 4526, 4537, 4547, 4546, 4552, 6320, 4553, 4554, + 4555, 4556, 4559, 4560, 4561, 4568, 4567, 4564, 4569, 4571, + 4572, 6320, 4577, 4578, 4579, 4587, 4583, 4590, 6320, 6320, + 4585, 4595, 4597, 4586, 4601, 6320, 4603, 4604, 4605, 4609, + 4606, 6320, 6320, 4611, 6320, 4613, 6320, 4614, 4616, 6320, + + 6320, 4618, 4619, 4620, 4621, 4630, 6320, 4634, 6320, 4641, + 4636, 4622, 4624, 4639, 6320, 4640, 4642, 4648, 6320, 4643, + 4655, 4650, 4651, 6320, 4657, 4658, 4653, 4660, 6320, 4662, + 4665, 4669, 4667, 4670, 4671, 4673, 4677, 4680, 4681, 4682, + 4683, 4684, 4696, 4698, 4700, 4702, 4692, 4688, 4705, 4707, + 4711, 4709, 4713, 4714, 4715, 4717, 4718, 4720, 4723, 4724, + 4726, 4729, 4727, 4728, 4740, 4730, 4732, 4742, 4744, 4733, + 4743, 4747, 4746, 4751, 4749, 4754, 4757, 4756, 4758, 6320, + 4762, 4764, 4767, 4769, 4768, 4774, 4776, 4778, 4784, 4787, + 6320, 4791, 6320, 4793, 4785, 4789, 4795, 4796, 6320, 4797, + + 4798, 4799, 4802, 4801, 4804, 4805, 4806, 4809, 4812, 4818, + 6320, 4829, 4808, 6320, 4813, 4825, 4832, 6320, 4833, 4837, + 4820, 4839, 4840, 4841, 4843, 4844, 4848, 4846, 4850, 4852, + 4845, 4853, 4855, 4867, 4874, 4858, 4860, 4869, 4872, 4870, + 4871, 4873, 4879, 4883, 4884, 4893, 6320, 4880, 6320, 4885, + 4887, 4889, 4895, 4897, 4896, 4898, 6320, 6320, 4900, 4904, + 4909, 4903, 4905, 4911, 4686, 6320, 4912, 4921, 4914, 4919, + 6320, 4922, 4924, 4926, 4929, 6320, 4930, 4931, 4934, 4936, + 4933, 4948, 4945, 4949, 4939, 4941, 4957, 6320, 6320, 6320, + 6320, 4959, 4943, 4962, 4951, 4954, 4963, 4966, 4969, 4970, + + 6320, 4974, 6320, 6320, 4971, 4977, 4978, 4979, 4980, 4981, + 4986, 4983, 6320, 4987, 4989, 4993, 4990, 4997, 5004, 5007, + 5001, 5009, 4999, 5010, 5018, 5011, 5019, 5015, 5021, 5023, + 5025, 6320, 6320, 5027, 5032, 5033, 5035, 5037, 5038, 5039, + 5047, 5044, 5045, 5046, 5049, 5051, 5052, 5060, 5062, 5058, + 5057, 6320, 5061, 5065, 5068, 6320, 5066, 6320, 5067, 5074, + 5075, 5076, 5081, 5082, 5083, 5085, 6320, 6320, 5086, 5092, + 6320, 6320, 5087, 5088, 5095, 5097, 5099, 5100, 5101, 5103, + 5104, 6320, 5105, 6320, 5107, 5111, 5113, 5110, 5125, 5128, + 5130, 5132, 5121, 5133, 6320, 5117, 5134, 6320, 5136, 5137, + + 5139, 6320, 5141, 5143, 5145, 5149, 6320, 5153, 5146, 5155, + 6320, 5157, 6320, 5158, 5159, 5162, 5169, 6320, 5165, 5166, + 6320, 5171, 5173, 5176, 5175, 6320, 5177, 6320, 5180, 5182, + 5183, 5187, 5189, 5191, 5192, 5193, 5194, 5202, 5198, 5199, + 6320, 6320, 135, 5207, 5209, 5210, 5213, 5212, 5220, 5215, + 5217, 5223, 6320, 6320, 5219, 6320, 5226, 5225, 6320, 5216, + 5235, 5236, 5227, 5242, 5231, 5239, 5229, 5251, 5246, 5252, + 5248, 5253, 5256, 5254, 5267, 5258, 5269, 5270, 5273, 5275, + 5278, 5265, 5280, 5282, 5283, 5284, 5286, 5287, 5288, 5290, + 6320, 5293, 5294, 5289, 6320, 5299, 5304, 5301, 5312, 6320, + + 5306, 5313, 5314, 5315, 6320, 5316, 5319, 5321, 5320, 5326, + 5333, 5330, 5328, 5331, 6320, 6320, 6320, 5339, 5346, 6320, + 5348, 5336, 5338, 5340, 6320, 5342, 5349, 6320, 6320, 5352, + 5353, 5354, 5365, 6320, 5355, 6320, 5357, 6320, 5364, 5366, + 5372, 5370, 6320, 5375, 5381, 6320, 5384, 5387, 5389, 5390, + 5356, 5391, 5392, 6320, 5400, 5393, 5396, 5403, 5395, 5404, + 5405, 5406, 5407, 5414, 5409, 5418, 6320, 5415, 5422, 5423, + 5420, 5412, 5424, 5429, 5430, 6320, 5433, 6320, 5435, 5436, + 5437, 5438, 5440, 5442, 5360, 5446, 5443, 5445, 5453, 5455, + 5457, 6320, 5459, 5465, 6320, 5460, 6320, 5467, 6320, 5462, + + 5468, 5469, 5470, 6320, 5472, 5473, 5474, 5477, 6320, 5482, + 5480, 5486, 5488, 6320, 6320, 5489, 5498, 5490, 5491, 5500, + 5502, 5503, 5507, 5504, 5508, 5510, 5518, 5514, 5516, 5511, + 5520, 5521, 5534, 6320, 6320, 6320, 5525, 5522, 5538, 5540, + 5541, 5549, 5527, 6320, 5546, 5548, 5550, 5552, 5559, 5556, + 5558, 6320, 5554, 5560, 5536, 5562, 5564, 5565, 5568, 5567, + 6320, 5570, 5580, 5577, 5581, 5583, 5586, 5590, 5592, 5587, + 5599, 5596, 6320, 5598, 6320, 6320, 5600, 6320, 5594, 5602, + 5603, 5604, 6320, 5607, 5608, 5609, 5611, 5615, 5618, 6320, + 5627, 5610, 5612, 5623, 6320, 6320, 5633, 6320, 5635, 5636, + + 5626, 5643, 5638, 5639, 5645, 5646, 6320, 5642, 5648, 5649, + 5652, 5653, 6320, 5655, 5656, 5657, 5658, 6320, 5661, 5660, + 5665, 5666, 5667, 6320, 5669, 5670, 5686, 5684, 6320, 5671, + 5688, 5681, 6320, 6320, 5696, 5698, 5699, 6320, 6320, 6320, + 5700, 5673, 5702, 6320, 5707, 5711, 5715, 5719, 5710, 6320, + 5721, 5704, 5718, 6320, 6320, 5723, 5724, 5725, 5727, 6320, + 6320, 5728, 5729, 5731, 5733, 5734, 6320, 5737, 5738, 5739, + 5746, 5751, 5741, 5752, 5754, 5765, 5767, 5748, 5760, 5758, + 5769, 5771, 5762, 5778, 5786, 5782, 5784, 5790, 5792, 5793, + 6320, 6320, 5795, 5797, 5799, 6320, 6320, 5801, 5803, 5805, + + 5807, 5810, 5812, 5814, 6320, 5815, 5817, 5818, 5819, 5820, + 6320, 5768, 5822, 5770, 5823, 5825, 5828, 5826, 5833, 6320, + 6320, 5830, 5835, 5834, 5842, 5839, 6320, 5844, 5851, 5849, + 5850, 5846, 5852, 5853, 6320, 5856, 5858, 6320, 6320, 6320, + 5859, 6320, 6320, 5854, 6320, 6320, 6320, 6320, 6320, 6320, + 6320, 5861, 6320, 5866, 5872, 5876, 5878, 6320, 5868, 5873, + 5881, 5883, 5884, 6320, 5886, 5888, 5887, 5893, 5889, 5896, + 5894, 5900, 5890, 5901, 5902, 5905, 5906, 5910, 5911, 5913, + 5914, 5916, 6320, 6320, 6320, 5912, 5923, 5925, 5928, 5930, + 5935, 5939, 5941, 5931, 5933, 5942, 5944, 5946, 5947, 5948, + + 5958, 5954, 5955, 5956, 5957, 5960, 5965, 5966, 5969, 5971, + 6320, 5974, 6320, 5962, 6320, 6320, 5976, 5978, 5982, 5973, + 5991, 5993, 5983, 5986, 5984, 5995, 6002, 6005, 6320, 6320, + 5994, 5996, 6320, 5998, 6006, 6320, 6007, 6008, 6009, 6011, + 6017, 6014, 6018, 6020, 6022, 6320, 6320, 6019, 6026, 6029, + 6032, 6035, 6042, 6037, 6041, 6045, 6047, 6034, 6049, 6320, + 6055, 6051, 6058, 6320, 6059, 6060, 6061, 6062, 6064, 6071, + 6066, 6067, 6320, 6069, 6320, 6073, 6075, 6077, 6074, 6076, + 6078, 6088, 6092, 6086, 6320, 6090, 6100, 6094, 6102, 6104, + 6106, 6107, 6096, 6109, 6112, 6118, 6122, 6119, 6123, 6110, + + 6127, 6124, 6320, 6134, 6125, 6320, 6131, 6135, 6128, 6137, + 6138, 6320, 6142, 6145, 6146, 6148, 6151, 6152, 6320, 6154, + 6158, 6155, 6320, 6161, 6320, 6320, 6163, 6160, 6167, 6170, + 6172, 6320, 6320, 6320, 6200, 6207, 6214, 6221, 6228, 6235, + 6242, 88, 6249, 6256, 6263, 6270, 6277, 6284, 6291, 6298, + 6305, 6312 } ; -static const flex_int16_t yy_def[3245] = +static const flex_int16_t yy_def[3253] = { 0, - 3226, 1, 3227, 3227, 3228, 3228, 3229, 3229, 3230, 3230, - 3231, 3231, 3232, 3232, 3233, 3233, 3226, 3234, 3226, 3226, - 3226, 3226, 3235, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3236, 3226, 3226, 3226, - 3236, 3237, 3226, 3226, 3226, 3237, 3238, 3226, 3226, 3226, - 3226, 3238, 3239, 3226, 3226, 3226, 3239, 3240, 3226, 3241, - 3226, 3240, 3240, 3242, 3226, 3226, 3226, 3226, 3242, 3243, - 3226, 3226, 3226, 3243, 3234, 3234, 3226, 3244, 3235, 3244, - 3235, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3236, 3236, 3237, - 3237, 3238, 3238, 3226, 3239, 3239, 3240, 3240, 3241, 3241, - 3240, 3242, 3242, 3226, 3243, 3243, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3240, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3240, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3240, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3240, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3226, 3226, 3234, 3226, 3226, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3240, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3240, 3240, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3240, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3226, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3240, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3240, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3226, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3240, 3234, 3226, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3226, 3226, 3234, 3226, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3240, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3226, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3240, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3226, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3226, 3226, 3234, 3226, 3234, 3226, 3234, 3234, 3226, - - 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3240, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3226, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3226, 3226, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - - 3234, 3226, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3240, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3226, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3226, 3234, 3234, 3234, 3226, - - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3226, 3234, - 3226, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3226, - 3240, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3226, 3234, 3226, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3226, 3226, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3226, 3226, 3234, 3234, 3234, 3234, - 3226, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3226, 3234, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3226, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3226, - 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3226, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3226, 3226, 3234, 3234, - 3234, 3226, 3226, 3226, 3234, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3226, 3226, 3234, - 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3226, 3226, 3234, 3234, 3234, 3226, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3226, 3226, 3234, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, - 3226, 3226, 3234, 3226, 3226, 3234, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3234, 3226, 3234, 3234, 3234, 3234, 3226, - 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3226, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - - 3234, 3234, 3226, 3234, 3226, 3234, 3226, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3226, 3234, 3234, 3226, 3234, 3234, 3226, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3226, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3226, 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, - 3234, 3234, 3234, 3234, 3226, 3234, 3234, 3226, 3234, 3234, - - 3234, 3234, 3234, 3226, 3234, 3234, 3234, 3234, 3234, 3234, - 3226, 3234, 3234, 3234, 3226, 3234, 3226, 3226, 3234, 3234, - 3234, 3234, 3234, 3226, 3226, 0, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226 + 3234, 1, 3235, 3235, 3236, 3236, 3237, 3237, 3238, 3238, + 3239, 3239, 3240, 3240, 3241, 3241, 3234, 3242, 3234, 3234, + 3234, 3234, 3243, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3244, 3234, 3234, 3234, + 3244, 3245, 3234, 3234, 3234, 3245, 3246, 3234, 3234, 3234, + 3234, 3246, 3247, 3234, 3234, 3234, 3247, 3248, 3234, 3249, + 3234, 3248, 3248, 3250, 3234, 3234, 3234, 3234, 3250, 3251, + 3234, 3234, 3234, 3251, 3242, 3242, 3234, 3252, 3243, 3252, + 3243, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3244, 3244, 3245, + 3245, 3246, 3246, 3234, 3247, 3247, 3248, 3248, 3249, 3249, + 3248, 3250, 3250, 3234, 3251, 3251, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3248, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3248, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3248, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3248, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3234, 3234, 3242, 3234, 3234, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3248, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3248, 3248, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3248, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3248, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3248, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3248, 3242, 3234, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3234, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3234, 3234, 3242, 3234, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3248, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3234, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3248, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3234, 3234, 3242, 3234, 3242, 3234, 3242, 3242, 3234, + + 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3248, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3234, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3234, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3234, 3242, 3234, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3248, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3234, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, + 3234, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3234, 3242, 3242, + + 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3234, 3248, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3234, 3242, 3234, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, + + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3234, 3234, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3234, 3234, 3242, + 3242, 3242, 3242, 3234, 3242, 3234, 3242, 3234, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3234, 3242, 3234, 3242, 3234, 3242, + + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3234, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3234, 3234, 3242, 3234, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3234, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3234, 3234, 3242, 3242, 3242, 3234, 3234, 3234, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, 3242, 3234, + 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3234, 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3234, 3242, 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3234, 3234, 3234, + 3242, 3234, 3234, 3242, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3234, 3242, 3242, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3234, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + 3234, 3242, 3234, 3242, 3234, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3234, + 3242, 3242, 3234, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3234, 3234, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3234, + 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3234, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3234, 3242, 3242, 3242, 3242, 3242, + 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, + + 3242, 3242, 3234, 3242, 3242, 3234, 3242, 3242, 3242, 3242, + 3242, 3234, 3242, 3242, 3242, 3242, 3242, 3242, 3234, 3242, + 3242, 3242, 3234, 3242, 3234, 3234, 3242, 3242, 3242, 3242, + 3242, 3234, 3234, 0, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234 } ; -static const flex_int16_t yy_nxt[6340] = +static const flex_int16_t yy_nxt[6361] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1954,7 +1957,7 @@ static const flex_int16_t yy_nxt[6340] = 2237, 2239, 2242, 2244, 2250, 86, 2249, 86, 86, 86, 2246, 86, 2252, 86, 2255, 2258, 86, 86, 86, 2253, 86, 86, 86, 2251, 2256, 2259, 86, 2254, 86, 86, - 86, 2257, 86, 3226, 86, 86, 86, 2260, 2271, 2261, + 86, 2257, 86, 3234, 86, 86, 86, 2260, 2271, 2261, 2270, 2266, 2272, 86, 2262, 2264, 2263, 2268, 2269, 2265, 86, 2267, 86, 86, 86, 2273, 2274, 86, 86, 2278, 2279, 86, 2280, 86, 86, 2275, 86, 86, 2276, 86, @@ -1985,207 +1988,209 @@ static const flex_int16_t yy_nxt[6340] = 2391, 86, 86, 2392, 86, 2389, 2393, 86, 86, 2395, 2396, 2394, 2397, 86, 2399, 86, 86, 86, 86, 86, 2401, 86, 2398, 86, 86, 86, 2405, 86, 2406, 86, - 86, 2400, 86, 2402, 86, 2408, 2409, 2403, 2414, 86, - 86, 2407, 2410, 2404, 2411, 86, 86, 2413, 86, 86, - 86, 2412, 86, 2416, 2417, 86, 86, 2419, 86, 86, - 2415, 86, 86, 2418, 86, 2423, 2426, 86, 86, 2425, - 86, 86, 86, 2422, 2427, 86, 2420, 86, 2421, 86, - 2430, 86, 2424, 86, 2435, 2428, 2434, 86, 86, 2429, - - 86, 2432, 2431, 2433, 86, 2436, 2437, 2438, 86, 2439, - 86, 86, 2442, 2440, 86, 2444, 86, 86, 2443, 2446, - 86, 86, 2448, 86, 2441, 86, 2447, 86, 2445, 86, - 86, 86, 86, 86, 86, 2452, 2458, 2454, 2455, 2456, - 86, 2450, 86, 2449, 86, 2451, 2457, 86, 86, 2459, - 2460, 86, 86, 86, 2465, 86, 2462, 2453, 86, 86, - 86, 86, 2467, 2470, 86, 2464, 2461, 2466, 86, 86, - 86, 2463, 2471, 86, 2474, 2469, 86, 2468, 2475, 86, - 2472, 2476, 86, 86, 86, 86, 86, 2480, 2473, 2479, - 86, 86, 2478, 86, 86, 3226, 86, 86, 2483, 2484, - - 2477, 2486, 2487, 86, 2481, 2482, 2488, 86, 2489, 86, - 2490, 86, 86, 2485, 86, 2492, 86, 2494, 86, 2493, - 86, 2495, 86, 86, 2491, 86, 2500, 86, 86, 86, - 2496, 2502, 86, 86, 2497, 2503, 86, 86, 86, 86, - 2504, 2499, 86, 2498, 2506, 2505, 86, 2501, 86, 86, - 2507, 2509, 2512, 86, 86, 86, 86, 86, 2513, 2508, - 86, 168, 2510, 86, 2520, 86, 86, 86, 2511, 2516, - 86, 86, 86, 2519, 2518, 2515, 2521, 86, 3226, 86, - 2514, 2517, 2527, 2524, 86, 2522, 2523, 86, 2525, 2529, - 86, 2528, 2530, 2531, 86, 2526, 2532, 86, 86, 2533, - - 86, 2534, 86, 2535, 86, 86, 86, 86, 2536, 86, - 86, 86, 86, 86, 86, 2537, 2546, 86, 86, 86, - 2544, 2539, 86, 3226, 2538, 86, 2550, 2540, 2541, 2551, - 86, 2542, 2543, 2545, 86, 86, 2548, 2547, 2554, 86, - 2549, 2552, 86, 2553, 2555, 2556, 86, 86, 86, 86, - 86, 86, 86, 3226, 86, 2559, 2565, 86, 2566, 86, - 2557, 86, 2569, 86, 2560, 2558, 86, 86, 2561, 2562, - 2563, 2564, 2568, 2570, 86, 2571, 86, 86, 86, 2567, - 86, 86, 86, 2575, 86, 2572, 86, 86, 2579, 2578, - 86, 2573, 2580, 86, 86, 86, 2574, 2581, 2582, 86, - - 2576, 86, 2577, 2584, 86, 86, 2583, 86, 86, 2585, - 2588, 86, 86, 2586, 86, 2592, 2593, 86, 86, 2596, - 86, 86, 86, 86, 2587, 2597, 86, 2589, 2591, 2594, - 2590, 86, 2600, 86, 86, 2599, 2595, 2598, 2602, 2601, - 86, 2605, 86, 86, 86, 86, 2609, 86, 86, 2608, - 2611, 86, 86, 2607, 2603, 2606, 86, 2612, 86, 86, - 2604, 2616, 86, 86, 2617, 2613, 86, 2610, 2619, 86, - 86, 2615, 86, 86, 2614, 86, 2624, 86, 86, 2626, - 86, 86, 2622, 2620, 2623, 2621, 2627, 86, 2618, 86, - 86, 86, 2628, 2625, 86, 2630, 86, 86, 86, 2631, - - 86, 86, 86, 2629, 86, 2633, 2634, 2636, 2642, 2637, - 2639, 86, 2635, 2632, 86, 2638, 2640, 86, 2641, 168, - 86, 86, 2646, 86, 86, 2643, 86, 2648, 86, 2647, - 86, 86, 2644, 2651, 86, 2650, 2652, 86, 2649, 2645, - 2654, 86, 86, 2656, 2653, 2655, 86, 86, 2657, 86, - 86, 2658, 2659, 2661, 86, 86, 86, 86, 2662, 86, - 2663, 86, 86, 86, 2660, 2664, 86, 2668, 2669, 2666, - 86, 2670, 2665, 86, 86, 2671, 86, 86, 86, 86, - 2673, 2672, 2674, 2667, 2675, 86, 86, 86, 86, 86, - 2676, 86, 2681, 86, 2683, 86, 2677, 2679, 2680, 2678, - - 86, 2684, 2682, 86, 86, 86, 2685, 2688, 86, 86, - 86, 2692, 86, 2690, 86, 86, 86, 86, 2697, 86, - 86, 2696, 86, 2686, 2687, 2691, 2699, 2704, 2689, 2700, - 2694, 2701, 86, 2693, 86, 86, 2695, 86, 2702, 86, - 86, 86, 2703, 86, 86, 2698, 86, 2707, 86, 2705, - 86, 2710, 2712, 86, 2706, 2713, 86, 86, 2708, 2714, - 86, 2709, 2716, 86, 2717, 86, 2711, 2715, 86, 86, - 86, 2721, 86, 86, 2719, 86, 2722, 86, 86, 2724, - 2725, 86, 2720, 2726, 86, 86, 86, 86, 2718, 2727, - 86, 2729, 2723, 2731, 86, 2730, 86, 2732, 2728, 2733, - - 86, 86, 2734, 2735, 86, 86, 2739, 86, 2737, 2740, - 86, 2741, 86, 86, 2736, 2742, 86, 86, 86, 2738, - 2743, 86, 2747, 2748, 86, 86, 86, 2751, 86, 86, - 2750, 86, 86, 2753, 86, 2754, 2744, 2745, 2746, 2752, - 86, 86, 2757, 2756, 86, 86, 86, 86, 86, 2749, - 2760, 86, 2764, 86, 86, 86, 2755, 86, 2766, 86, - 86, 2758, 2759, 2803, 2761, 2763, 2767, 2762, 2765, 86, - 2771, 2768, 2774, 86, 86, 2772, 86, 2770, 2769, 2773, - 86, 2775, 86, 2776, 86, 2777, 86, 2778, 86, 86, - 2779, 86, 86, 2780, 86, 86, 86, 86, 86, 2784, - - 2788, 86, 86, 86, 2785, 2789, 2791, 86, 86, 2781, - 2792, 2783, 2793, 86, 86, 2790, 2786, 2782, 2787, 2794, - 2795, 86, 86, 86, 86, 86, 2799, 2800, 86, 2801, - 86, 2796, 2797, 2798, 86, 2804, 86, 86, 86, 2802, - 2805, 86, 2808, 86, 86, 2807, 86, 2806, 2809, 2810, - 86, 2811, 86, 86, 86, 86, 86, 86, 2812, 86, - 86, 2820, 2813, 2815, 2814, 2816, 2818, 86, 86, 86, - 86, 2821, 86, 2823, 2824, 2903, 2819, 86, 2825, 2826, - 2817, 2822, 86, 86, 86, 2828, 86, 2827, 2829, 2830, - 86, 2831, 86, 2832, 86, 2833, 86, 86, 2837, 86, - - 86, 86, 2836, 2834, 86, 2838, 2839, 2840, 86, 86, - 86, 86, 86, 2846, 86, 2835, 2844, 2841, 86, 86, - 86, 2842, 2848, 86, 2849, 86, 2852, 86, 86, 86, - 2845, 2843, 2850, 2851, 86, 2856, 86, 2853, 86, 2847, - 86, 86, 86, 86, 2854, 2859, 86, 86, 86, 86, - 86, 2857, 2860, 2858, 2855, 2863, 86, 2865, 2861, 2868, - 86, 2864, 86, 2870, 86, 2862, 86, 2866, 2871, 86, - 2873, 86, 86, 86, 86, 86, 2867, 2878, 86, 86, - 2877, 2869, 86, 86, 86, 2882, 86, 2872, 2874, 2875, - 2876, 86, 2885, 86, 86, 2887, 86, 86, 86, 2879, - - 2883, 86, 2881, 2888, 86, 2880, 2890, 86, 2891, 86, - 2884, 2893, 86, 86, 2886, 2895, 86, 2892, 2889, 2898, - 86, 86, 2896, 86, 86, 86, 2902, 86, 86, 2904, - 86, 2894, 2907, 2900, 2908, 86, 2897, 86, 86, 2899, - 2909, 2910, 2905, 2901, 2906, 86, 86, 86, 2913, 86, - 86, 2912, 86, 2916, 86, 2914, 86, 2919, 86, 86, - 86, 86, 86, 2911, 2924, 86, 2920, 86, 86, 2927, - 86, 2915, 86, 2917, 2918, 2923, 2926, 2929, 2921, 2928, - 86, 86, 86, 86, 2932, 86, 2922, 2925, 2931, 2933, - 86, 2934, 86, 2936, 86, 2930, 86, 2938, 86, 86, - - 86, 2937, 86, 86, 86, 2943, 2944, 86, 2935, 86, - 86, 86, 2950, 2939, 2948, 86, 2949, 86, 86, 86, - 2947, 86, 2940, 2945, 2941, 2942, 86, 2954, 86, 86, - 2946, 2953, 2955, 86, 2956, 86, 2958, 86, 86, 2951, - 2952, 86, 86, 2961, 86, 2960, 2962, 86, 86, 2957, - 2959, 86, 86, 86, 86, 86, 2965, 86, 86, 2967, - 86, 86, 2968, 86, 2966, 86, 86, 2963, 2964, 86, - 86, 2977, 86, 86, 2969, 2978, 2973, 2970, 2971, 2972, - 2974, 2975, 2980, 86, 86, 86, 2976, 86, 86, 2979, - 2981, 2986, 2982, 2984, 86, 86, 2983, 2985, 86, 3059, - - 2987, 2989, 86, 2988, 2990, 86, 2991, 2992, 86, 86, - 2993, 2994, 2997, 86, 2995, 2996, 86, 86, 2998, 86, - 86, 86, 86, 86, 3004, 86, 86, 86, 3003, 86, - 86, 3007, 86, 3226, 2999, 3000, 3006, 86, 86, 3008, - 3001, 86, 3002, 86, 3012, 3013, 86, 3009, 3014, 86, - 3011, 3005, 86, 3015, 86, 3010, 3019, 3016, 3021, 86, - 86, 3020, 86, 3017, 86, 86, 3018, 86, 86, 86, - 3028, 86, 3025, 3026, 3029, 3023, 86, 3031, 86, 86, - 86, 86, 3030, 3226, 3022, 3080, 3024, 86, 3027, 3032, - 86, 86, 3033, 3034, 86, 3035, 86, 3037, 86, 3048, - - 3036, 3038, 86, 3039, 86, 3040, 86, 3041, 86, 3042, - 86, 3043, 86, 86, 3045, 86, 86, 86, 86, 3050, - 86, 86, 3044, 86, 86, 3046, 86, 86, 3054, 3047, - 86, 3056, 86, 86, 3060, 3053, 3051, 3049, 86, 3052, - 86, 3058, 3057, 86, 3063, 3055, 3062, 86, 86, 86, - 86, 86, 86, 3065, 86, 86, 86, 86, 3061, 86, - 86, 3064, 3069, 3073, 3070, 3075, 86, 3071, 3066, 3067, - 3068, 86, 3074, 3076, 86, 3077, 86, 86, 86, 86, - 86, 86, 86, 3072, 86, 86, 3079, 3085, 86, 86, - 3086, 86, 3084, 3082, 3078, 86, 3088, 86, 3081, 3087, - - 86, 86, 3089, 3083, 3090, 86, 86, 86, 86, 3091, - 86, 86, 86, 3092, 3095, 3098, 3094, 3100, 3096, 86, - 3103, 86, 3101, 86, 86, 3093, 3105, 86, 3097, 86, - 3106, 3099, 3104, 3107, 86, 3108, 86, 86, 86, 3102, - 86, 3111, 86, 3109, 86, 3112, 86, 3113, 3116, 86, - 86, 86, 86, 86, 86, 86, 3119, 3110, 3121, 86, - 86, 3115, 3118, 3117, 3122, 86, 3125, 86, 3123, 3114, - 86, 86, 3120, 86, 3124, 3126, 3128, 86, 86, 3129, - 3132, 3130, 86, 3133, 86, 86, 86, 86, 3127, 86, - 3131, 86, 3137, 3138, 86, 86, 3134, 3135, 3139, 86, - - 86, 86, 86, 86, 3136, 3143, 86, 86, 3145, 86, - 86, 86, 3140, 86, 3142, 3141, 3150, 86, 3151, 86, - 3147, 86, 3144, 3148, 3226, 3146, 3152, 86, 3149, 3156, - 86, 86, 86, 3159, 3158, 86, 3157, 3153, 3155, 3154, - 86, 86, 86, 86, 3164, 86, 3160, 3161, 3162, 3168, - 86, 3165, 86, 86, 3163, 3167, 86, 86, 3166, 86, - 86, 86, 3173, 86, 86, 86, 3170, 86, 86, 86, - 3176, 3177, 86, 86, 86, 86, 3169, 3175, 3180, 3171, - 3172, 86, 3174, 3178, 3181, 86, 3179, 86, 3184, 86, - 86, 86, 3188, 3187, 3182, 3185, 86, 3190, 3183, 86, - - 3189, 86, 3186, 86, 3191, 86, 3192, 3195, 86, 86, - 86, 86, 3193, 3197, 3196, 3198, 86, 3199, 3194, 86, - 86, 86, 86, 3204, 86, 86, 3200, 3202, 86, 86, - 86, 86, 86, 3206, 3207, 86, 3210, 3211, 86, 3201, - 3203, 86, 86, 3214, 3205, 3215, 86, 86, 86, 3208, - 3209, 3212, 3217, 86, 3216, 3218, 86, 86, 86, 86, - 3213, 86, 3226, 3220, 3219, 3226, 3221, 3222, 3224, 86, - 3225, 86, 3226, 3226, 3226, 3226, 3226, 3226, 3223, 47, - 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, - 52, 52, 52, 57, 57, 57, 57, 57, 57, 57, - - 63, 63, 63, 63, 63, 63, 63, 68, 68, 68, - 68, 68, 68, 68, 74, 74, 74, 74, 74, 74, - 74, 80, 80, 80, 80, 80, 80, 80, 89, 89, - 3226, 89, 89, 89, 89, 158, 158, 3226, 3226, 3226, - 158, 158, 160, 160, 3226, 3226, 160, 3226, 160, 162, - 3226, 3226, 3226, 3226, 3226, 162, 165, 165, 3226, 3226, - 3226, 165, 165, 167, 3226, 3226, 3226, 3226, 3226, 167, - 169, 169, 3226, 169, 169, 169, 169, 172, 3226, 3226, - 3226, 3226, 3226, 172, 175, 175, 3226, 3226, 3226, 175, - 175, 90, 90, 3226, 90, 90, 90, 90, 17, 3226, - - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226 + 86, 2400, 86, 2402, 86, 2408, 2409, 2403, 2415, 86, + 86, 2407, 2410, 2404, 2411, 86, 86, 2413, 2418, 86, + 86, 2412, 2414, 86, 2417, 86, 86, 86, 86, 86, + 2416, 2420, 86, 86, 86, 2427, 2424, 86, 2419, 2426, + 86, 86, 86, 2423, 86, 86, 2428, 2421, 2422, 2431, + 86, 86, 86, 2425, 2436, 2429, 86, 2435, 86, 86, + + 86, 2430, 2433, 86, 2437, 2438, 2432, 2434, 86, 2440, + 86, 2445, 2439, 2441, 86, 2443, 86, 86, 86, 86, + 2444, 2447, 86, 2449, 86, 2442, 86, 86, 2448, 86, + 2446, 86, 86, 86, 86, 86, 2453, 86, 2455, 2456, + 3234, 2451, 2457, 86, 2450, 2452, 2458, 86, 2459, 86, + 2460, 2461, 86, 86, 86, 86, 86, 2463, 2454, 2462, + 2466, 86, 2468, 86, 86, 2467, 86, 2465, 86, 2471, + 86, 86, 2464, 86, 2472, 86, 2475, 2476, 86, 2470, + 86, 2469, 86, 86, 86, 2473, 86, 2477, 2481, 2480, + 86, 2474, 2479, 86, 86, 86, 86, 86, 2478, 86, + + 2485, 86, 2487, 2599, 2482, 86, 2484, 2483, 2488, 86, + 2489, 86, 2490, 86, 2491, 86, 2486, 2492, 86, 2493, + 86, 2495, 86, 2494, 86, 2496, 86, 86, 86, 2501, + 86, 86, 2503, 86, 2497, 2504, 86, 86, 2498, 86, + 86, 86, 86, 86, 2500, 86, 86, 2499, 2505, 2507, + 2502, 2506, 2508, 86, 2513, 86, 86, 86, 2510, 86, + 86, 2509, 168, 2511, 86, 2512, 2514, 86, 2521, 86, + 86, 86, 2515, 2517, 2520, 86, 2516, 86, 2519, 2522, + 86, 86, 86, 2518, 2523, 2528, 2524, 86, 3234, 86, + 2532, 86, 2530, 2525, 2531, 2529, 2533, 86, 86, 2526, + + 86, 2534, 86, 2527, 86, 2535, 86, 2536, 86, 86, + 86, 86, 86, 2538, 86, 86, 2537, 86, 86, 86, + 2547, 86, 86, 2545, 2540, 86, 86, 2539, 3234, 2542, + 2541, 86, 2551, 86, 2543, 2544, 2553, 2546, 86, 2548, + 2549, 2552, 86, 2550, 2556, 86, 86, 2555, 2554, 2558, + 86, 2559, 86, 86, 86, 2557, 86, 86, 86, 86, + 2561, 86, 2567, 86, 2568, 86, 86, 2571, 86, 2562, + 2560, 86, 2570, 86, 2563, 2564, 2569, 2565, 2566, 2572, + 86, 2573, 86, 86, 86, 86, 86, 86, 2575, 2574, + 2577, 2580, 86, 86, 2581, 2582, 86, 86, 86, 2583, + + 86, 2576, 86, 2578, 2579, 2584, 86, 2586, 86, 86, + 86, 86, 2585, 86, 2588, 2590, 86, 86, 86, 2587, + 2594, 2595, 86, 2598, 86, 86, 2602, 86, 2589, 2591, + 2592, 2596, 86, 2593, 86, 86, 2597, 86, 2601, 86, + 2600, 2607, 86, 86, 86, 2603, 86, 86, 2611, 86, + 2604, 2610, 86, 2609, 86, 2608, 86, 2605, 86, 2606, + 2613, 86, 86, 2614, 86, 2612, 2617, 86, 2616, 2618, + 86, 2615, 86, 2619, 2621, 86, 86, 2622, 2620, 86, + 2623, 2626, 86, 86, 86, 2624, 2628, 86, 2625, 2629, + 86, 86, 86, 86, 86, 2630, 86, 2632, 2627, 86, + + 86, 2633, 86, 86, 2636, 2631, 86, 2638, 2635, 2641, + 86, 2639, 86, 2634, 86, 2637, 2642, 86, 2640, 2643, + 168, 2644, 86, 86, 86, 2648, 3234, 2645, 86, 2649, + 2646, 86, 86, 2650, 86, 2653, 86, 2654, 86, 2652, + 86, 2647, 2658, 2651, 2656, 86, 86, 2659, 86, 2657, + 86, 86, 86, 2655, 2663, 2660, 2661, 86, 86, 86, + 86, 2664, 86, 2665, 86, 86, 2662, 2670, 2666, 2671, + 86, 86, 2668, 86, 86, 86, 2672, 2667, 86, 86, + 86, 86, 2673, 2675, 2676, 2678, 2669, 86, 86, 86, + 2674, 2677, 2679, 2686, 86, 86, 86, 2684, 86, 86, + + 86, 86, 2681, 2682, 2683, 86, 2680, 2685, 86, 2691, + 86, 2687, 86, 86, 86, 2695, 86, 86, 86, 2688, + 86, 2689, 2693, 86, 86, 2700, 86, 2690, 2699, 2694, + 86, 2692, 2702, 2697, 86, 2703, 2696, 2704, 86, 2708, + 2698, 86, 2706, 86, 2705, 86, 86, 86, 2701, 86, + 86, 2707, 86, 2710, 86, 2713, 86, 2715, 86, 86, + 2709, 2716, 86, 2718, 2711, 2717, 86, 2712, 86, 2720, + 86, 86, 86, 2719, 2714, 86, 2724, 2722, 86, 86, + 2727, 2725, 86, 2728, 86, 2729, 86, 2723, 86, 86, + 86, 2721, 2730, 86, 2734, 86, 86, 2735, 2726, 2736, + + 86, 2731, 86, 2738, 86, 86, 86, 86, 2732, 2742, + 2743, 86, 86, 2733, 2745, 86, 2744, 2737, 2739, 2746, + 86, 2741, 86, 86, 2740, 86, 86, 2751, 86, 86, + 86, 2750, 86, 86, 2753, 2754, 86, 2755, 86, 86, + 86, 2757, 86, 2748, 86, 2747, 2749, 2756, 86, 86, + 2760, 2759, 86, 2752, 2758, 86, 2766, 2761, 2762, 86, + 2763, 86, 2764, 2767, 86, 86, 86, 86, 2769, 86, + 2774, 86, 2765, 2768, 2775, 2771, 2770, 2773, 86, 2776, + 86, 2778, 86, 86, 2779, 2772, 86, 2780, 86, 2781, + 2777, 86, 2782, 86, 2783, 86, 86, 86, 2784, 86, + + 86, 86, 86, 86, 2788, 2792, 86, 86, 3234, 2789, + 2793, 2795, 86, 2797, 86, 2785, 2787, 86, 2799, 86, + 2794, 2790, 2786, 2791, 2796, 86, 86, 86, 86, 86, + 2798, 2804, 86, 86, 86, 2800, 2801, 2802, 2805, 86, + 2808, 86, 2806, 86, 86, 2809, 86, 2803, 2812, 86, + 2811, 86, 86, 86, 2807, 86, 2810, 2813, 2814, 86, + 2815, 86, 86, 2816, 2819, 86, 86, 86, 86, 86, + 86, 2818, 2824, 86, 2820, 2822, 2817, 86, 86, 86, + 2825, 2868, 2827, 86, 2828, 86, 2829, 2823, 86, 2838, + 2821, 2826, 2830, 2831, 86, 2832, 2834, 86, 2833, 2835, + + 86, 2836, 86, 86, 86, 86, 86, 2841, 86, 86, + 2840, 2842, 2837, 86, 2843, 2844, 86, 86, 86, 86, + 86, 2850, 86, 2839, 2848, 86, 2845, 86, 86, 2846, + 2852, 86, 2853, 86, 2856, 86, 86, 86, 2849, 2847, + 2854, 2855, 86, 86, 2857, 2861, 86, 2851, 86, 86, + 86, 86, 2858, 86, 2864, 86, 86, 2859, 86, 86, + 2865, 2862, 2863, 2860, 2869, 2870, 86, 2873, 86, 2866, + 86, 2875, 86, 86, 2867, 86, 2871, 2876, 86, 2878, + 86, 86, 86, 86, 2883, 86, 86, 86, 2882, 2874, + 86, 2879, 2872, 86, 2877, 86, 2887, 2880, 2881, 86, + + 2890, 86, 86, 86, 86, 2892, 2884, 2888, 2893, 2886, + 2885, 86, 2895, 86, 2896, 86, 86, 86, 2889, 2898, + 86, 86, 2891, 86, 86, 2903, 2894, 86, 2900, 86, + 2901, 86, 2907, 86, 86, 86, 2897, 2908, 86, 2899, + 86, 2905, 3234, 2902, 2906, 2912, 2904, 86, 2909, 86, + 2910, 86, 2913, 86, 86, 2911, 2915, 2914, 2916, 86, + 2918, 86, 86, 86, 2917, 86, 2921, 86, 2919, 86, + 2924, 86, 86, 86, 2927, 86, 2929, 86, 86, 2925, + 86, 86, 2933, 86, 2920, 2931, 2922, 2923, 2928, 2932, + 86, 2926, 2934, 86, 86, 2935, 86, 2930, 2938, 86, + + 86, 2937, 2939, 86, 2940, 86, 2942, 86, 2936, 86, + 2944, 86, 86, 86, 2943, 86, 86, 86, 2949, 2950, + 86, 86, 86, 86, 86, 86, 2941, 2954, 86, 2946, + 2955, 86, 2945, 2953, 2956, 2951, 86, 2947, 2948, 86, + 86, 2959, 2952, 2957, 2958, 2960, 86, 2961, 86, 86, + 2964, 86, 86, 2963, 2962, 86, 86, 2967, 86, 86, + 2966, 86, 86, 2965, 2968, 86, 86, 2971, 86, 86, + 86, 86, 2973, 86, 86, 2969, 2974, 2972, 86, 86, + 86, 2970, 86, 86, 86, 2983, 86, 2984, 2975, 2979, + 2976, 2977, 2978, 2986, 86, 2980, 2981, 86, 3234, 86, + + 2982, 86, 2987, 2985, 2988, 2995, 2989, 2990, 2991, 86, + 2992, 86, 86, 86, 2996, 86, 2993, 86, 2994, 2997, + 86, 2998, 2999, 86, 86, 3000, 3001, 3004, 86, 3002, + 3003, 86, 86, 3005, 86, 3006, 86, 86, 86, 3011, + 86, 86, 86, 3010, 86, 3007, 86, 86, 3014, 3013, + 86, 86, 86, 3019, 86, 3015, 3008, 3009, 3020, 86, + 3018, 86, 3016, 3021, 86, 86, 3012, 86, 3017, 3022, + 3023, 86, 3026, 86, 3028, 86, 3024, 3027, 86, 3025, + 86, 86, 86, 86, 86, 3234, 3029, 3032, 3030, 3033, + 3035, 86, 3031, 3036, 3034, 86, 3038, 86, 3059, 86, + + 3057, 3037, 3039, 86, 3040, 86, 86, 3042, 86, 3043, + 86, 3041, 86, 3045, 86, 3046, 86, 3047, 86, 3048, + 86, 3044, 3049, 86, 3050, 86, 3051, 86, 86, 3053, + 86, 86, 86, 86, 3058, 86, 86, 3052, 86, 86, + 3054, 86, 3062, 86, 3055, 3064, 86, 86, 86, 3060, + 3061, 3066, 86, 3056, 3063, 86, 3068, 86, 3071, 86, + 3070, 3065, 86, 86, 86, 86, 86, 86, 3073, 86, + 3069, 86, 86, 3067, 86, 3077, 3072, 3081, 3074, 86, + 3078, 86, 3076, 3075, 3083, 86, 86, 3079, 3084, 86, + 3085, 86, 3082, 3080, 86, 3087, 86, 86, 3088, 86, + + 86, 86, 86, 86, 3086, 3093, 86, 86, 3094, 86, + 3096, 3090, 3092, 86, 86, 86, 3089, 3095, 86, 86, + 3097, 3099, 3091, 86, 86, 86, 86, 86, 3103, 86, + 3100, 3106, 3098, 3102, 3108, 3104, 86, 3111, 86, 3109, + 3101, 86, 3113, 86, 86, 3105, 86, 3107, 86, 3114, + 3112, 3115, 86, 3116, 86, 86, 3110, 86, 3119, 86, + 86, 86, 3120, 3117, 3121, 3124, 3118, 86, 86, 86, + 86, 86, 3129, 86, 3127, 86, 3123, 3130, 86, 86, + 3126, 3125, 86, 3133, 86, 3122, 86, 86, 3136, 86, + 3128, 86, 3137, 3135, 3131, 86, 86, 86, 3140, 86, + + 3141, 3132, 3134, 3138, 86, 3139, 86, 86, 86, 86, + 3142, 86, 3143, 3145, 3146, 86, 3144, 3147, 86, 86, + 86, 86, 86, 3151, 86, 3150, 3153, 86, 3148, 3149, + 86, 86, 86, 86, 3160, 86, 3158, 3155, 3159, 86, + 3152, 3154, 86, 3156, 3164, 86, 3157, 86, 86, 3166, + 86, 3167, 3161, 3165, 86, 86, 3172, 3162, 86, 3168, + 86, 3163, 86, 3169, 86, 3170, 3171, 3173, 86, 3174, + 3175, 86, 86, 86, 86, 86, 3176, 86, 3181, 86, + 86, 3178, 86, 3184, 86, 3185, 86, 86, 86, 86, + 86, 86, 3177, 3183, 3179, 3188, 3180, 3186, 3182, 86, + + 3187, 86, 3192, 86, 3191, 86, 3189, 86, 3190, 86, + 3193, 3234, 3194, 86, 3196, 86, 3198, 86, 3199, 86, + 86, 3203, 86, 86, 3200, 86, 3197, 3201, 3202, 3195, + 3204, 86, 86, 3205, 3206, 86, 86, 86, 86, 3207, + 86, 86, 3209, 3208, 86, 3210, 3212, 86, 86, 3214, + 86, 86, 3218, 3215, 3219, 86, 3211, 3213, 86, 86, + 3216, 86, 3222, 3223, 86, 86, 3225, 86, 86, 3217, + 3226, 86, 3224, 86, 86, 3227, 86, 3220, 3221, 3228, + 86, 3229, 3232, 86, 3233, 86, 3234, 3234, 3234, 3234, + 3234, 3234, 3230, 3234, 3234, 3234, 3234, 3234, 3234, 3231, + + 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, + 52, 52, 52, 52, 57, 57, 57, 57, 57, 57, + 57, 63, 63, 63, 63, 63, 63, 63, 68, 68, + 68, 68, 68, 68, 68, 74, 74, 74, 74, 74, + 74, 74, 80, 80, 80, 80, 80, 80, 80, 89, + 89, 3234, 89, 89, 89, 89, 158, 158, 3234, 3234, + 3234, 158, 158, 160, 160, 3234, 3234, 160, 3234, 160, + 162, 3234, 3234, 3234, 3234, 3234, 162, 165, 165, 3234, + 3234, 3234, 165, 165, 167, 3234, 3234, 3234, 3234, 3234, + 167, 169, 169, 3234, 169, 169, 169, 169, 172, 3234, + + 3234, 3234, 3234, 3234, 172, 175, 175, 3234, 3234, 3234, + 175, 175, 90, 90, 3234, 90, 90, 90, 90, 17, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234 } ; -static const flex_int16_t yy_chk[6340] = +static const flex_int16_t yy_chk[6361] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2195,14 +2200,14 @@ static const flex_int16_t yy_chk[6340] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3234, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3242, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2641, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2643, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, @@ -2687,203 +2692,205 @@ static const flex_int16_t yy_chk[6340] = 2234, 2232, 2235, 2236, 2237, 2237, 2234, 2238, 2235, 2239, 2239, 2240, 2236, 2241, 2242, 2243, 2243, 2245, 2244, 2253, 2246, 2238, 2248, 2240, 2244, 2246, 2248, 2241, 2253, 2249, - 2254, 2245, 2249, 2242, 2250, 2250, 2251, 2252, 2252, 2255, - 2257, 2251, 2259, 2255, 2256, 2256, 2260, 2259, 2261, 2262, - 2254, 2263, 2264, 2257, 2265, 2263, 2266, 2268, 2267, 2265, - 2269, 2271, 2266, 2262, 2267, 2270, 2260, 2274, 2261, 2273, - 2270, 2275, 2264, 2281, 2276, 2268, 2275, 2277, 2284, 2269, - - 2276, 2273, 2271, 2274, 2278, 2277, 2278, 2281, 2282, 2282, - 2283, 2285, 2285, 2283, 2287, 2288, 2289, 2291, 2287, 2290, - 2290, 2288, 2294, 2294, 2284, 2296, 2291, 2298, 2289, 2299, - 2302, 2303, 2304, 2305, 2312, 2302, 2310, 2304, 2305, 2306, - 2306, 2298, 2310, 2296, 2313, 2299, 2308, 2308, 2311, 2311, - 2312, 2314, 2316, 2317, 2318, 2318, 2314, 2303, 2320, 2322, - 2323, 2327, 2321, 2325, 2325, 2317, 2313, 2320, 2321, 2326, - 2328, 2316, 2326, 2330, 2330, 2323, 2332, 2322, 2331, 2331, - 2327, 2332, 2333, 2334, 2335, 2336, 2339, 2336, 2328, 2335, - 2337, 2338, 2334, 2341, 2340, 0, 2342, 2348, 2339, 2340, - - 2333, 2342, 2343, 2343, 2337, 2338, 2344, 2344, 2345, 2345, - 2346, 2346, 2347, 2341, 2349, 2348, 2350, 2350, 2352, 2349, - 2351, 2351, 2353, 2354, 2347, 2355, 2356, 2356, 2357, 2360, - 2352, 2358, 2358, 2361, 2353, 2359, 2359, 2362, 2363, 2364, - 2360, 2355, 2366, 2354, 2362, 2361, 2365, 2357, 2367, 2369, - 2363, 2365, 2368, 2368, 2370, 2371, 2372, 2373, 2369, 2364, - 2374, 2375, 2366, 2376, 2376, 2381, 2382, 2377, 2367, 2372, - 2378, 2379, 2383, 2375, 2374, 2371, 2377, 2385, 0, 2384, - 2370, 2373, 2384, 2381, 2386, 2378, 2379, 2387, 2382, 2386, - 2395, 2385, 2387, 2388, 2388, 2383, 2389, 2389, 2390, 2390, - - 2392, 2392, 2394, 2394, 2396, 2397, 2398, 2400, 2395, 2402, - 2401, 2404, 2403, 2405, 2406, 2396, 2406, 2407, 2408, 2414, - 2404, 2398, 2409, 0, 2397, 2410, 2410, 2400, 2401, 2412, - 2412, 2402, 2403, 2405, 2415, 2418, 2408, 2407, 2416, 2416, - 2409, 2414, 2420, 2415, 2418, 2419, 2419, 2421, 2422, 2423, - 2424, 2425, 2427, 0, 2426, 2422, 2428, 2428, 2429, 2429, - 2420, 2430, 2432, 2432, 2423, 2421, 2431, 2435, 2424, 2425, - 2426, 2427, 2431, 2433, 2433, 2434, 2436, 2437, 2438, 2430, - 2439, 2434, 2440, 2438, 2441, 2435, 2442, 2447, 2442, 2441, - 2450, 2436, 2443, 2443, 2449, 2444, 2437, 2444, 2445, 2445, - - 2439, 2451, 2440, 2449, 2452, 2453, 2447, 2454, 2458, 2450, - 2453, 2455, 2459, 2451, 2461, 2459, 2460, 2460, 2462, 2463, - 2463, 2464, 2466, 2471, 2452, 2464, 2469, 2454, 2458, 2461, - 2455, 2467, 2468, 2468, 2472, 2467, 2462, 2466, 2471, 2469, - 2473, 2474, 2474, 2476, 2477, 2478, 2479, 2479, 2480, 2478, - 2481, 2481, 2482, 2477, 2472, 2476, 2483, 2482, 2484, 2485, - 2473, 2486, 2486, 2491, 2491, 2483, 2492, 2480, 2493, 2493, - 2494, 2485, 2495, 2496, 2484, 2497, 2498, 2498, 2499, 2501, - 2501, 2504, 2496, 2494, 2497, 2495, 2504, 2505, 2492, 2506, - 2507, 2508, 2505, 2499, 2509, 2507, 2510, 2513, 2511, 2508, - - 2516, 2520, 2514, 2506, 2515, 2510, 2511, 2514, 2520, 2515, - 2517, 2517, 2513, 2509, 2522, 2516, 2518, 2518, 2519, 2519, - 2521, 2523, 2524, 2527, 2525, 2521, 2526, 2526, 2524, 2525, - 2528, 2533, 2522, 2529, 2529, 2528, 2530, 2530, 2527, 2523, - 2534, 2534, 2535, 2536, 2533, 2535, 2537, 2538, 2536, 2536, - 2539, 2537, 2538, 2540, 2541, 2542, 2543, 2544, 2541, 2540, - 2542, 2545, 2546, 2550, 2539, 2543, 2549, 2547, 2548, 2545, - 2555, 2549, 2544, 2547, 2548, 2550, 2552, 2553, 2559, 2557, - 2553, 2552, 2555, 2546, 2557, 2558, 2560, 2571, 2561, 2562, - 2558, 2563, 2563, 2564, 2567, 2568, 2559, 2561, 2562, 2560, - - 2567, 2568, 2564, 2572, 2576, 2573, 2571, 2574, 2574, 2575, - 2577, 2578, 2578, 2576, 2579, 2581, 2583, 2584, 2585, 2585, - 2586, 2584, 2592, 2572, 2573, 2577, 2587, 2592, 2575, 2588, - 2581, 2589, 2587, 2579, 2591, 2588, 2583, 2589, 2590, 2590, - 2594, 2595, 2591, 2597, 2598, 2586, 2599, 2597, 2602, 2594, - 2601, 2601, 2603, 2603, 2595, 2604, 2604, 2608, 2598, 2606, - 2606, 2599, 2608, 2607, 2610, 2610, 2602, 2607, 2612, 2613, - 2614, 2615, 2617, 2625, 2613, 2627, 2615, 2615, 2618, 2618, - 2620, 2620, 2614, 2621, 2621, 2623, 2622, 2631, 2612, 2622, - 2634, 2625, 2617, 2628, 2628, 2627, 2629, 2629, 2623, 2630, - - 2630, 2633, 2631, 2632, 2632, 2635, 2636, 2638, 2634, 2637, - 2637, 2638, 2636, 2643, 2633, 2642, 2646, 2644, 2645, 2635, - 2642, 2642, 2646, 2647, 2648, 2655, 2649, 2650, 2650, 2647, - 2649, 2658, 2656, 2655, 2653, 2656, 2643, 2644, 2645, 2653, - 2659, 2660, 2660, 2659, 2661, 2662, 2663, 2664, 2707, 2648, - 2662, 2665, 2666, 2666, 2667, 2668, 2658, 2669, 2668, 2670, - 2673, 2661, 2661, 2707, 2663, 2665, 2668, 2664, 2667, 2671, - 2672, 2669, 2674, 2674, 2679, 2672, 2672, 2671, 2670, 2673, - 2675, 2675, 2676, 2676, 2677, 2677, 2678, 2678, 2680, 2681, - 2679, 2682, 2683, 2680, 2684, 2685, 2686, 2691, 2687, 2684, - - 2689, 2689, 2690, 2694, 2685, 2690, 2693, 2693, 2703, 2681, - 2694, 2683, 2695, 2695, 2696, 2691, 2686, 2682, 2687, 2696, - 2698, 2698, 2699, 2700, 2701, 2705, 2703, 2704, 2704, 2705, - 2706, 2699, 2700, 2701, 2709, 2708, 2710, 2720, 2711, 2706, - 2708, 2708, 2711, 2715, 2719, 2710, 2721, 2709, 2715, 2716, - 2716, 2718, 2718, 2724, 2723, 2727, 2729, 2728, 2719, 2732, - 2734, 2730, 2720, 2723, 2721, 2724, 2728, 2730, 2736, 2737, - 2739, 2732, 2828, 2736, 2737, 2828, 2729, 2738, 2738, 2739, - 2727, 2734, 2741, 2748, 2742, 2742, 2747, 2741, 2742, 2744, - 2744, 2745, 2745, 2746, 2746, 2747, 2749, 2750, 2752, 2756, - - 2753, 2754, 2750, 2748, 2752, 2753, 2754, 2755, 2755, 2757, - 2758, 2759, 2760, 2761, 2762, 2749, 2759, 2756, 2769, 2761, - 2765, 2757, 2763, 2763, 2765, 2768, 2768, 2766, 2767, 2770, - 2760, 2758, 2766, 2767, 2771, 2773, 2773, 2769, 2775, 2762, - 2776, 2777, 2779, 2778, 2770, 2777, 2780, 2781, 2783, 2784, - 2785, 2775, 2778, 2776, 2771, 2781, 2782, 2783, 2779, 2786, - 2786, 2782, 2787, 2789, 2789, 2780, 2792, 2784, 2790, 2790, - 2794, 2794, 2796, 2797, 2798, 2799, 2785, 2801, 2801, 2802, - 2799, 2787, 2803, 2804, 2806, 2806, 2807, 2792, 2796, 2797, - 2798, 2808, 2809, 2809, 2812, 2813, 2815, 2818, 2814, 2802, - - 2807, 2813, 2804, 2814, 2820, 2803, 2816, 2816, 2817, 2817, - 2808, 2819, 2819, 2821, 2812, 2820, 2822, 2818, 2815, 2823, - 2824, 2825, 2821, 2826, 2834, 2823, 2827, 2827, 2829, 2829, - 2833, 2819, 2835, 2825, 2836, 2836, 2822, 2837, 2835, 2824, - 2837, 2838, 2833, 2826, 2834, 2839, 2841, 2838, 2842, 2842, - 2843, 2841, 2844, 2845, 2849, 2843, 2846, 2847, 2847, 2845, - 2850, 2851, 2852, 2839, 2853, 2853, 2849, 2855, 2854, 2857, - 2857, 2844, 2859, 2846, 2846, 2852, 2855, 2859, 2850, 2858, - 2858, 2860, 2865, 2861, 2862, 2862, 2851, 2854, 2861, 2863, - 2863, 2864, 2864, 2866, 2872, 2860, 2867, 2869, 2869, 2866, - - 2874, 2867, 2875, 2876, 2877, 2877, 2879, 2879, 2865, 2880, - 2881, 2882, 2886, 2872, 2883, 2883, 2884, 2884, 2886, 2887, - 2882, 2888, 2874, 2880, 2875, 2876, 2889, 2892, 2892, 2895, - 2881, 2889, 2894, 2894, 2895, 2896, 2897, 2899, 2898, 2887, - 2888, 2901, 2897, 2900, 2900, 2899, 2901, 2903, 2904, 2896, - 2898, 2905, 2906, 2907, 2909, 2910, 2905, 2911, 2912, 2907, - 2915, 2914, 2909, 2916, 2906, 2917, 2918, 2903, 2904, 2921, - 2920, 2918, 2925, 3017, 2910, 2920, 2915, 2911, 2912, 2914, - 2916, 2916, 2922, 2926, 2936, 2923, 2917, 2931, 2922, 2921, - 2923, 2931, 2925, 2929, 2929, 2935, 2926, 2930, 2930, 3017, - - 2935, 2937, 2937, 2936, 2939, 2939, 2940, 2940, 2943, 2940, - 2941, 2941, 2943, 2941, 2942, 2942, 2946, 2942, 2945, 2945, - 2950, 2947, 2951, 2952, 2953, 2953, 2956, 2958, 2952, 2957, - 2959, 2958, 2960, 0, 2946, 2947, 2957, 2962, 2967, 2959, - 2950, 2963, 2951, 2964, 2964, 2965, 2965, 2960, 2966, 2966, - 2963, 2956, 2968, 2967, 2969, 2962, 2970, 2968, 2971, 2972, - 2973, 2970, 2970, 2969, 2971, 2974, 2969, 2975, 2976, 2977, - 2978, 2978, 2975, 2976, 2979, 2973, 2980, 2981, 2981, 3003, - 2979, 3053, 2980, 0, 2972, 3053, 2974, 2983, 2977, 2982, - 2982, 2988, 2983, 2986, 2986, 2987, 2987, 2991, 2991, 3003, - - 2988, 2992, 2992, 2993, 2993, 2994, 2994, 2995, 2995, 2996, - 2996, 2997, 2997, 2999, 3000, 3000, 3001, 3002, 3005, 3006, - 3006, 3007, 2999, 3009, 3015, 3001, 3008, 3010, 3010, 3002, - 3011, 3012, 3012, 3018, 3018, 3009, 3007, 3005, 3016, 3008, - 3019, 3016, 3015, 3021, 3022, 3011, 3021, 3023, 3024, 3025, - 3022, 3026, 3033, 3024, 3027, 3030, 3029, 3036, 3019, 3046, - 3044, 3023, 3029, 3044, 3030, 3047, 3047, 3033, 3025, 3026, - 3027, 3051, 3046, 3048, 3048, 3049, 3049, 3052, 3054, 3055, - 3057, 3058, 3059, 3036, 3061, 3064, 3052, 3059, 3060, 3063, - 3060, 3065, 3058, 3055, 3051, 3062, 3062, 3066, 3054, 3061, - - 3067, 3068, 3063, 3057, 3064, 3069, 3070, 3071, 3078, 3065, - 3072, 3073, 3074, 3066, 3069, 3072, 3068, 3074, 3070, 3079, - 3080, 3080, 3078, 3081, 3086, 3067, 3082, 3082, 3071, 3083, - 3083, 3073, 3081, 3084, 3084, 3085, 3085, 3087, 3088, 3079, - 3089, 3088, 3090, 3086, 3091, 3089, 3092, 3090, 3093, 3094, - 3095, 3096, 3097, 3100, 3093, 3101, 3096, 3087, 3098, 3098, - 3104, 3092, 3095, 3094, 3099, 3099, 3102, 3102, 3100, 3091, - 3106, 3112, 3097, 3111, 3101, 3104, 3109, 3109, 3110, 3110, - 3113, 3111, 3115, 3114, 3116, 3117, 3113, 3118, 3106, 3114, - 3112, 3123, 3118, 3119, 3119, 3124, 3115, 3116, 3120, 3120, - - 3126, 3127, 3129, 3130, 3117, 3127, 3131, 3132, 3130, 3134, - 3133, 3135, 3123, 3136, 3126, 3124, 3135, 3140, 3136, 3142, - 3132, 3141, 3129, 3133, 0, 3131, 3137, 3137, 3134, 3143, - 3143, 3144, 3146, 3146, 3145, 3150, 3144, 3140, 3142, 3141, - 3145, 3147, 3148, 3149, 3151, 3157, 3147, 3148, 3149, 3157, - 3151, 3153, 3153, 3154, 3150, 3155, 3155, 3158, 3154, 3159, - 3160, 3161, 3162, 3163, 3164, 3171, 3159, 3178, 3162, 3166, - 3166, 3168, 3168, 3170, 3169, 3172, 3158, 3164, 3170, 3160, - 3161, 3180, 3163, 3169, 3171, 3173, 3169, 3174, 3174, 3176, - 3175, 3179, 3179, 3178, 3172, 3175, 3181, 3181, 3173, 3185, - - 3180, 3183, 3176, 3182, 3182, 3184, 3183, 3186, 3186, 3187, - 3190, 3188, 3184, 3188, 3187, 3189, 3189, 3190, 3185, 3191, - 3192, 3194, 3193, 3196, 3196, 3197, 3191, 3193, 3199, 3200, - 3201, 3202, 3206, 3199, 3200, 3203, 3203, 3205, 3205, 3192, - 3194, 3207, 3208, 3208, 3197, 3209, 3209, 3210, 3220, 3201, - 3202, 3206, 3212, 3212, 3210, 3213, 3213, 3214, 3216, 3221, - 3207, 3219, 0, 3216, 3214, 0, 3219, 3220, 3222, 3222, - 3223, 3223, 0, 0, 0, 0, 0, 0, 3221, 3227, - 3227, 3227, 3227, 3227, 3227, 3227, 3228, 3228, 3228, 3228, - 3228, 3228, 3228, 3229, 3229, 3229, 3229, 3229, 3229, 3229, - - 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231, 3231, 3231, - 3231, 3231, 3231, 3231, 3232, 3232, 3232, 3232, 3232, 3232, - 3232, 3233, 3233, 3233, 3233, 3233, 3233, 3233, 3235, 3235, - 0, 3235, 3235, 3235, 3235, 3236, 3236, 0, 0, 0, - 3236, 3236, 3237, 3237, 0, 0, 3237, 0, 3237, 3238, - 0, 0, 0, 0, 0, 3238, 3239, 3239, 0, 0, - 0, 3239, 3239, 3240, 0, 0, 0, 0, 0, 3240, - 3241, 3241, 0, 3241, 3241, 3241, 3241, 3242, 0, 0, - 0, 0, 0, 3242, 3243, 3243, 0, 0, 0, 3243, - 3243, 3244, 3244, 0, 3244, 3244, 3244, 3244, 3226, 3226, - - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, - 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226 + 2254, 2245, 2249, 2242, 2250, 2250, 2251, 2252, 2256, 2256, + 2255, 2251, 2252, 2252, 2255, 2257, 2259, 2260, 2261, 2262, + 2254, 2259, 2263, 2264, 2265, 2266, 2263, 2268, 2257, 2265, + 2267, 2266, 2269, 2262, 2270, 2271, 2267, 2260, 2261, 2270, + 2273, 2274, 2275, 2264, 2276, 2268, 2277, 2275, 2281, 2284, + + 2276, 2269, 2273, 2278, 2277, 2278, 2271, 2274, 2282, 2282, + 2283, 2288, 2281, 2283, 2285, 2285, 2287, 2288, 2289, 2291, + 2287, 2290, 2290, 2294, 2294, 2284, 2296, 2298, 2291, 2299, + 2289, 2302, 2303, 2304, 2305, 2312, 2302, 2313, 2304, 2305, + 0, 2298, 2306, 2306, 2296, 2299, 2308, 2308, 2310, 2311, + 2311, 2312, 2314, 2316, 2310, 2317, 2320, 2314, 2303, 2313, + 2318, 2318, 2321, 2322, 2323, 2320, 2327, 2317, 2321, 2325, + 2325, 2326, 2316, 2328, 2326, 2330, 2330, 2331, 2331, 2323, + 2333, 2322, 2332, 2334, 2335, 2327, 2336, 2332, 2336, 2335, + 2337, 2328, 2334, 2338, 2339, 2340, 2341, 2342, 2333, 2465, + + 2340, 2348, 2342, 2465, 2337, 2347, 2339, 2338, 2343, 2343, + 2344, 2344, 2345, 2345, 2346, 2346, 2341, 2347, 2349, 2348, + 2350, 2350, 2352, 2349, 2351, 2351, 2353, 2354, 2355, 2356, + 2356, 2357, 2358, 2358, 2352, 2359, 2359, 2360, 2353, 2361, + 2363, 2364, 2362, 2366, 2355, 2367, 2370, 2354, 2360, 2362, + 2357, 2361, 2363, 2365, 2368, 2368, 2371, 2369, 2365, 2373, + 2372, 2364, 2375, 2366, 2374, 2367, 2369, 2376, 2376, 2378, + 2377, 2379, 2370, 2372, 2375, 2381, 2371, 2382, 2374, 2377, + 2383, 2385, 2384, 2373, 2378, 2384, 2379, 2386, 0, 2387, + 2388, 2388, 2386, 2381, 2387, 2385, 2389, 2389, 2395, 2382, + + 2390, 2390, 2396, 2383, 2392, 2392, 2394, 2394, 2397, 2398, + 2400, 2401, 2402, 2396, 2404, 2403, 2395, 2405, 2406, 2407, + 2406, 2413, 2408, 2404, 2398, 2409, 2415, 2397, 0, 2401, + 2400, 2410, 2410, 2421, 2402, 2403, 2413, 2405, 2416, 2407, + 2408, 2412, 2412, 2409, 2417, 2417, 2419, 2416, 2415, 2420, + 2420, 2421, 2422, 2423, 2424, 2419, 2425, 2426, 2431, 2428, + 2423, 2427, 2429, 2429, 2430, 2430, 2432, 2433, 2433, 2424, + 2422, 2436, 2432, 2437, 2425, 2426, 2431, 2427, 2428, 2434, + 2434, 2435, 2438, 2440, 2441, 2439, 2442, 2435, 2437, 2436, + 2439, 2442, 2443, 2448, 2443, 2444, 2444, 2445, 2450, 2445, + + 2451, 2438, 2452, 2440, 2441, 2446, 2446, 2450, 2453, 2455, + 2454, 2456, 2448, 2459, 2452, 2454, 2462, 2460, 2463, 2451, + 2460, 2461, 2461, 2464, 2464, 2467, 2469, 2469, 2453, 2455, + 2456, 2462, 2470, 2459, 2468, 2472, 2463, 2473, 2468, 2474, + 2467, 2475, 2475, 2477, 2478, 2470, 2481, 2479, 2480, 2480, + 2472, 2479, 2485, 2478, 2486, 2477, 2493, 2473, 2483, 2474, + 2482, 2482, 2484, 2483, 2495, 2481, 2486, 2496, 2485, 2487, + 2487, 2484, 2492, 2492, 2494, 2494, 2497, 2495, 2493, 2498, + 2496, 2499, 2499, 2500, 2505, 2497, 2502, 2502, 2498, 2505, + 2506, 2507, 2508, 2509, 2510, 2506, 2512, 2508, 2500, 2511, + + 2514, 2509, 2515, 2517, 2512, 2507, 2516, 2515, 2511, 2518, + 2518, 2516, 2523, 2510, 2521, 2514, 2519, 2519, 2517, 2520, + 2520, 2521, 2522, 2524, 2526, 2525, 0, 2522, 2528, 2526, + 2523, 2525, 2527, 2527, 2529, 2530, 2530, 2531, 2531, 2529, + 2534, 2524, 2537, 2528, 2535, 2535, 2536, 2537, 2537, 2536, + 2538, 2539, 2540, 2534, 2541, 2538, 2539, 2542, 2543, 2544, + 2541, 2542, 2545, 2543, 2546, 2547, 2540, 2548, 2544, 2549, + 2551, 2550, 2546, 2548, 2553, 2549, 2550, 2545, 2554, 2557, + 2559, 2555, 2551, 2554, 2555, 2559, 2547, 2560, 2561, 2562, + 2553, 2557, 2560, 2569, 2563, 2564, 2565, 2565, 2566, 2569, + + 2573, 2574, 2562, 2563, 2564, 2570, 2561, 2566, 2575, 2576, + 2576, 2570, 2577, 2578, 2579, 2580, 2580, 2581, 2583, 2573, + 2585, 2574, 2578, 2588, 2586, 2587, 2587, 2575, 2586, 2579, + 2596, 2577, 2589, 2583, 2593, 2590, 2581, 2591, 2589, 2596, + 2585, 2590, 2593, 2591, 2592, 2592, 2594, 2597, 2588, 2599, + 2600, 2594, 2601, 2599, 2603, 2603, 2604, 2605, 2605, 2609, + 2597, 2606, 2606, 2609, 2600, 2608, 2608, 2601, 2610, 2612, + 2612, 2614, 2615, 2610, 2604, 2616, 2617, 2615, 2619, 2620, + 2620, 2617, 2617, 2622, 2622, 2623, 2623, 2616, 2625, 2624, + 2627, 2614, 2624, 2629, 2630, 2630, 2631, 2631, 2619, 2632, + + 2632, 2625, 2633, 2634, 2634, 2635, 2636, 2637, 2627, 2638, + 2639, 2639, 2640, 2629, 2644, 2638, 2640, 2633, 2635, 2644, + 2644, 2637, 2645, 2646, 2636, 2648, 2647, 2649, 2650, 2660, + 2651, 2648, 2655, 2649, 2651, 2652, 2652, 2655, 2658, 2657, + 2663, 2658, 2667, 2646, 2665, 2645, 2647, 2657, 2661, 2662, + 2662, 2661, 2666, 2650, 2660, 2664, 2667, 2663, 2663, 2669, + 2664, 2671, 2665, 2668, 2668, 2670, 2672, 2674, 2670, 2673, + 2674, 2676, 2666, 2669, 2675, 2671, 2670, 2673, 2682, 2675, + 2675, 2677, 2677, 2678, 2678, 2672, 2679, 2679, 2680, 2680, + 2676, 2681, 2681, 2683, 2682, 2684, 2685, 2686, 2683, 2687, + + 2688, 2689, 2694, 2690, 2687, 2692, 2692, 2693, 0, 2688, + 2693, 2696, 2696, 2698, 2698, 2684, 2686, 2697, 2701, 2701, + 2694, 2689, 2685, 2690, 2697, 2699, 2702, 2703, 2704, 2706, + 2699, 2707, 2707, 2709, 2708, 2702, 2703, 2704, 2708, 2710, + 2711, 2713, 2709, 2712, 2714, 2711, 2711, 2706, 2714, 2722, + 2713, 2723, 2718, 2724, 2710, 2726, 2712, 2718, 2719, 2719, + 2721, 2721, 2727, 2722, 2726, 2730, 2731, 2732, 2735, 2751, + 2737, 2724, 2733, 2785, 2727, 2731, 2723, 2739, 2733, 2740, + 2735, 2785, 2739, 2742, 2740, 2741, 2741, 2732, 2744, 2751, + 2730, 2737, 2742, 2744, 2745, 2745, 2747, 2747, 2745, 2748, + + 2748, 2749, 2749, 2750, 2752, 2753, 2756, 2755, 2759, 2757, + 2753, 2756, 2750, 2755, 2757, 2758, 2758, 2760, 2761, 2762, + 2763, 2764, 2765, 2752, 2762, 2772, 2759, 2764, 2768, 2760, + 2766, 2766, 2768, 2771, 2771, 2769, 2770, 2773, 2763, 2761, + 2769, 2770, 2774, 2775, 2772, 2777, 2777, 2765, 2779, 2780, + 2781, 2782, 2773, 2783, 2781, 2784, 2787, 2774, 2788, 2786, + 2782, 2779, 2780, 2775, 2786, 2787, 2789, 2790, 2790, 2783, + 2791, 2793, 2793, 2796, 2784, 2800, 2788, 2794, 2794, 2798, + 2798, 2801, 2802, 2803, 2805, 2805, 2806, 2807, 2803, 2791, + 2808, 2800, 2789, 2811, 2796, 2810, 2810, 2801, 2802, 2812, + + 2813, 2813, 2816, 2818, 2819, 2817, 2806, 2811, 2818, 2808, + 2807, 2817, 2820, 2820, 2821, 2821, 2822, 2824, 2812, 2823, + 2823, 2825, 2816, 2826, 2830, 2827, 2819, 2828, 2824, 2829, + 2825, 2827, 2831, 2831, 2832, 2838, 2822, 2832, 2837, 2823, + 2843, 2829, 0, 2826, 2830, 2839, 2828, 2833, 2833, 2855, + 2837, 2839, 2840, 2840, 2841, 2838, 2842, 2841, 2843, 2845, + 2846, 2846, 2842, 2847, 2845, 2848, 2849, 2853, 2847, 2850, + 2851, 2851, 2849, 2854, 2855, 2856, 2857, 2857, 2858, 2853, + 2860, 2859, 2862, 2862, 2848, 2859, 2850, 2850, 2856, 2860, + 2864, 2854, 2863, 2863, 2865, 2864, 2866, 2858, 2867, 2867, + + 2870, 2866, 2868, 2868, 2869, 2869, 2871, 2879, 2865, 2872, + 2874, 2874, 2871, 2877, 2872, 2880, 2881, 2882, 2882, 2884, + 2884, 2885, 2886, 2892, 2887, 2893, 2870, 2888, 2888, 2879, + 2889, 2889, 2877, 2887, 2891, 2885, 2894, 2880, 2881, 2901, + 2891, 2894, 2886, 2892, 2893, 2897, 2897, 2899, 2899, 2900, + 2902, 2903, 2904, 2901, 2900, 2908, 2902, 2905, 2905, 2906, + 2904, 2909, 2910, 2903, 2906, 2911, 2912, 2910, 2914, 2915, + 2916, 2917, 2912, 2920, 2919, 2908, 2914, 2911, 2921, 2922, + 2923, 2909, 2925, 2926, 2930, 2923, 2942, 2925, 2915, 2920, + 2916, 2917, 2919, 2927, 2932, 2921, 2921, 2928, 0, 2927, + + 2922, 2931, 2928, 2926, 2930, 2942, 2931, 2932, 2935, 2935, + 2936, 2936, 2937, 2941, 2943, 2943, 2937, 2952, 2941, 2945, + 2945, 2946, 2946, 2949, 2946, 2947, 2947, 2949, 2947, 2948, + 2948, 2953, 2948, 2951, 2951, 2952, 2956, 2957, 2958, 2959, + 2959, 2962, 2963, 2958, 2964, 2953, 2965, 2966, 2964, 2963, + 2968, 2969, 2970, 2970, 2973, 2965, 2956, 2957, 2971, 2971, + 2969, 2978, 2966, 2972, 2972, 2974, 2962, 2975, 2968, 2973, + 2974, 2980, 2976, 2979, 2977, 2983, 2975, 2976, 2976, 2975, + 2977, 3012, 2981, 3014, 2982, 0, 2978, 2981, 2979, 2982, + 2984, 2984, 2980, 2985, 2983, 2986, 2987, 2987, 3014, 2985, + + 3012, 2986, 2988, 2988, 2989, 2989, 2990, 2993, 2993, 2994, + 2994, 2990, 2995, 2998, 2998, 2999, 2999, 3000, 3000, 3001, + 3001, 2995, 3002, 3002, 3003, 3003, 3004, 3004, 3006, 3007, + 3007, 3008, 3009, 3010, 3013, 3013, 3015, 3006, 3016, 3018, + 3008, 3017, 3017, 3022, 3009, 3019, 3019, 3024, 3023, 3015, + 3016, 3023, 3026, 3010, 3018, 3025, 3025, 3028, 3029, 3032, + 3028, 3022, 3030, 3031, 3029, 3033, 3034, 3044, 3031, 3036, + 3026, 3037, 3041, 3024, 3052, 3036, 3030, 3052, 3032, 3054, + 3037, 3059, 3034, 3033, 3055, 3055, 3060, 3041, 3056, 3056, + 3057, 3057, 3054, 3044, 3061, 3060, 3062, 3063, 3061, 3065, + + 3067, 3066, 3069, 3073, 3059, 3067, 3068, 3071, 3068, 3070, + 3070, 3063, 3066, 3072, 3074, 3075, 3062, 3069, 3076, 3077, + 3071, 3073, 3065, 3078, 3079, 3086, 3080, 3081, 3077, 3082, + 3074, 3080, 3072, 3076, 3082, 3078, 3087, 3088, 3088, 3086, + 3075, 3089, 3090, 3090, 3094, 3079, 3095, 3081, 3091, 3091, + 3089, 3092, 3092, 3093, 3093, 3096, 3087, 3097, 3096, 3098, + 3099, 3100, 3097, 3094, 3098, 3101, 3095, 3102, 3103, 3104, + 3105, 3101, 3106, 3106, 3104, 3114, 3100, 3107, 3107, 3108, + 3103, 3102, 3109, 3110, 3110, 3099, 3120, 3112, 3117, 3117, + 3105, 3118, 3118, 3114, 3108, 3119, 3123, 3125, 3121, 3124, + + 3122, 3109, 3112, 3119, 3121, 3120, 3122, 3131, 3126, 3132, + 3123, 3134, 3124, 3126, 3127, 3127, 3125, 3128, 3128, 3135, + 3137, 3138, 3139, 3135, 3140, 3134, 3138, 3142, 3131, 3132, + 3141, 3143, 3148, 3144, 3145, 3145, 3143, 3140, 3144, 3149, + 3137, 3139, 3150, 3141, 3151, 3151, 3142, 3158, 3152, 3153, + 3154, 3154, 3148, 3152, 3155, 3153, 3159, 3149, 3156, 3155, + 3157, 3150, 3159, 3156, 3162, 3157, 3158, 3161, 3161, 3162, + 3163, 3163, 3165, 3166, 3167, 3168, 3165, 3169, 3170, 3171, + 3172, 3167, 3174, 3174, 3170, 3176, 3176, 3179, 3177, 3180, + 3178, 3181, 3166, 3172, 3168, 3178, 3169, 3177, 3171, 3184, + + 3177, 3182, 3182, 3186, 3181, 3183, 3179, 3188, 3180, 3193, + 3183, 0, 3184, 3187, 3187, 3189, 3189, 3190, 3190, 3191, + 3192, 3194, 3194, 3200, 3191, 3195, 3188, 3192, 3193, 3186, + 3195, 3196, 3198, 3196, 3197, 3197, 3199, 3202, 3205, 3198, + 3201, 3209, 3200, 3199, 3207, 3201, 3204, 3204, 3208, 3207, + 3210, 3211, 3211, 3208, 3213, 3213, 3202, 3205, 3214, 3215, + 3209, 3216, 3216, 3217, 3217, 3218, 3220, 3220, 3222, 3210, + 3221, 3221, 3218, 3228, 3224, 3222, 3227, 3214, 3215, 3224, + 3229, 3227, 3230, 3230, 3231, 3231, 0, 0, 0, 0, + 0, 0, 3228, 0, 0, 0, 0, 0, 0, 3229, + + 3235, 3235, 3235, 3235, 3235, 3235, 3235, 3236, 3236, 3236, + 3236, 3236, 3236, 3236, 3237, 3237, 3237, 3237, 3237, 3237, + 3237, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3239, 3239, + 3239, 3239, 3239, 3239, 3239, 3240, 3240, 3240, 3240, 3240, + 3240, 3240, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3243, + 3243, 0, 3243, 3243, 3243, 3243, 3244, 3244, 0, 0, + 0, 3244, 3244, 3245, 3245, 0, 0, 3245, 0, 3245, + 3246, 0, 0, 0, 0, 0, 3246, 3247, 3247, 0, + 0, 0, 3247, 3247, 3248, 0, 0, 0, 0, 0, + 3248, 3249, 3249, 0, 3249, 3249, 3249, 3249, 3250, 0, + + 0, 0, 0, 0, 3250, 3251, 3251, 0, 0, 0, + 3251, 3251, 3252, 3252, 0, 3252, 3252, 3252, 3252, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, + 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234 } ; static yy_state_type yy_last_accepting_state; @@ -3089,7 +3096,7 @@ static void config_end_include(void) } #endif -#line 3091 "" +#line 3098 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3098,9 +3105,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3100 "" +#line 3107 "" -#line 3102 "" +#line 3109 "" #define INITIAL 0 #define quotedstring 1 @@ -3324,7 +3331,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3326 "" +#line 3333 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3357,13 +3364,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 >= 3227 ) + if ( yy_current_state >= 3235 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6299 ); + while ( yy_base[yy_current_state] != 6320 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4907,40 +4914,45 @@ YY_RULE_SETUP { YDVAR(2, VAR_EDNS_CLIENT_TAG) } YY_BREAK case 302: -/* rule 302 can match eol */ YY_RULE_SETUP #line 527 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_TAG_OPCODE) } + YY_BREAK +case 303: +/* rule 303 can match eol */ +YY_RULE_SETUP +#line 528 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 303: +case 304: YY_RULE_SETUP -#line 530 "./util/configlexer.lex" +#line 531 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 531 "./util/configlexer.lex" +#line 532 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 304: +case 305: YY_RULE_SETUP -#line 536 "./util/configlexer.lex" +#line 537 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 305: -/* rule 305 can match eol */ +case 306: +/* rule 306 can match eol */ YY_RULE_SETUP -#line 537 "./util/configlexer.lex" +#line 538 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 306: +case 307: YY_RULE_SETUP -#line 539 "./util/configlexer.lex" +#line 540 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4953,34 +4965,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 307: +case 308: YY_RULE_SETUP -#line 551 "./util/configlexer.lex" +#line 552 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 552 "./util/configlexer.lex" +#line 553 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 308: +case 309: YY_RULE_SETUP -#line 557 "./util/configlexer.lex" +#line 558 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 309: -/* rule 309 can match eol */ +case 310: +/* rule 310 can match eol */ YY_RULE_SETUP -#line 558 "./util/configlexer.lex" +#line 559 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 310: +case 311: YY_RULE_SETUP -#line 560 "./util/configlexer.lex" +#line 561 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4993,38 +5005,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 311: +case 312: YY_RULE_SETUP -#line 572 "./util/configlexer.lex" +#line 573 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 574 "./util/configlexer.lex" +#line 575 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 312: -YY_RULE_SETUP -#line 578 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 313: -/* rule 313 can match eol */ YY_RULE_SETUP #line 579 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 314: +/* rule 314 can match eol */ YY_RULE_SETUP #line 580 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 315: YY_RULE_SETUP #line 581 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 316: +YY_RULE_SETUP +#line 582 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5032,27 +5044,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 586 "./util/configlexer.lex" +#line 587 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 316: +case 317: YY_RULE_SETUP -#line 590 "./util/configlexer.lex" +#line 591 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 317: -/* rule 317 can match eol */ +case 318: +/* rule 318 can match eol */ YY_RULE_SETUP -#line 591 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 318: +case 319: YY_RULE_SETUP -#line 593 "./util/configlexer.lex" +#line 594 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5062,7 +5074,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 599 "./util/configlexer.lex" +#line 600 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5077,39 +5089,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 319: +case 320: YY_RULE_SETUP -#line 613 "./util/configlexer.lex" +#line 614 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 616 "./util/configlexer.lex" +#line 617 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 320: -YY_RULE_SETUP -#line 620 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK case 321: -/* rule 321 can match eol */ YY_RULE_SETUP #line 621 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 322: +/* rule 322 can match eol */ YY_RULE_SETUP #line 622 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK case 323: YY_RULE_SETUP #line 623 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 324: +YY_RULE_SETUP +#line 624 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5118,29 +5130,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 629 "./util/configlexer.lex" +#line 630 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 324: +case 325: YY_RULE_SETUP -#line 633 "./util/configlexer.lex" +#line 634 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 325: -/* rule 325 can match eol */ +case 326: +/* rule 326 can match eol */ YY_RULE_SETUP -#line 634 "./util/configlexer.lex" +#line 635 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 326: +case 327: YY_RULE_SETUP -#line 638 "./util/configlexer.lex" +#line 639 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5149,33 +5161,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 327: +case 328: YY_RULE_SETUP -#line 646 "./util/configlexer.lex" +#line 647 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 328: +case 329: YY_RULE_SETUP -#line 650 "./util/configlexer.lex" +#line 651 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 329: +case 330: YY_RULE_SETUP -#line 654 "./util/configlexer.lex" +#line 655 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 330: +case 331: YY_RULE_SETUP -#line 658 "./util/configlexer.lex" +#line 659 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5177 "" +#line 5189 "" case YY_END_OF_BUFFER: { @@ -5470,7 +5482,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 >= 3227 ) + if ( yy_current_state >= 3235 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5498,11 +5510,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 >= 3227 ) + if ( yy_current_state >= 3235 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3226); + yy_is_jam = (yy_current_state == 3234); return yy_is_jam ? 0 : yy_current_state; } @@ -6141,6 +6153,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 658 "./util/configlexer.lex" +#line 659 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index a9b73d989..0b997a306 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -524,6 +524,7 @@ name-v6{COLON} { YDVAR(1, VAR_IPSET_NAME_V6) } udp-upstream-without-downstream{COLON} { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } tcp-connection-limit{COLON} { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } edns-client-tag{COLON} { YDVAR(2, VAR_EDNS_CLIENT_TAG) } +edns-client-tag-opcode{COLON} { YDVAR(1, VAR_EDNS_CLIENT_TAG_OPCODE) } {NEWLINE} { LEXOUT(("NL\n")); cfg_parser->line++; } /* Quoted strings. Strip leading and ending quotes */ diff --git a/util/configparser.c b/util/configparser.c index 7e7c3fc3f..ba5054eb4 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -438,7 +438,8 @@ extern int yydebug; VAR_RPZ_LOG_NAME = 550, VAR_DYNLIB = 551, VAR_DYNLIB_FILE = 552, - VAR_EDNS_CLIENT_TAG = 553 + VAR_EDNS_CLIENT_TAG = 553, + VAR_EDNS_CLIENT_TAG_OPCODE = 554 }; #endif /* Tokens. */ @@ -738,6 +739,7 @@ extern int yydebug; #define VAR_DYNLIB 551 #define VAR_DYNLIB_FILE 552 #define VAR_EDNS_CLIENT_TAG 553 +#define VAR_EDNS_CLIENT_TAG_OPCODE 554 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -747,7 +749,7 @@ union YYSTYPE char* str; -#line 751 "util/configparser.c" +#line 753 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -1066,19 +1068,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 634 +#define YYLAST 635 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 299 +#define YYNTOKENS 300 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 324 +#define YYNNTS 325 /* YYNRULES -- Number of rules. */ -#define YYNRULES 624 +#define YYNRULES 626 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 927 +#define YYNSTATES 930 #define YYUNDEFTOK 2 -#define YYMAXUTOK 553 +#define YYMAXUTOK 554 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1145,7 +1147,7 @@ static const yytype_int16 yytranslate[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298 + 295, 296, 297, 298, 299 }; #if YYDEBUG @@ -1174,47 +1176,47 @@ static const yytype_int16 yyrline[] = 280, 280, 281, 281, 281, 282, 282, 283, 284, 284, 285, 285, 286, 286, 287, 287, 288, 288, 288, 289, 289, 289, 290, 290, 290, 291, 291, 292, 292, 293, - 293, 294, 294, 296, 308, 309, 310, 310, 310, 310, - 310, 311, 311, 313, 325, 326, 327, 327, 327, 327, - 328, 328, 330, 344, 345, 346, 346, 346, 346, 347, - 347, 347, 349, 366, 367, 368, 368, 368, 368, 369, - 369, 369, 370, 373, 392, 409, 417, 427, 435, 452, - 453, 454, 454, 454, 454, 454, 455, 455, 455, 456, - 456, 458, 467, 476, 487, 496, 505, 514, 525, 534, - 546, 560, 575, 586, 603, 620, 637, 654, 669, 684, - 697, 712, 721, 730, 739, 748, 757, 766, 775, 784, - 793, 802, 811, 820, 829, 838, 851, 860, 873, 882, - 891, 900, 907, 914, 923, 930, 939, 947, 954, 961, - 969, 978, 985, 1001, 1009, 1017, 1025, 1033, 1042, 1051, - 1065, 1074, 1083, 1092, 1101, 1110, 1119, 1126, 1133, 1159, - 1167, 1174, 1181, 1188, 1195, 1203, 1211, 1219, 1226, 1237, - 1248, 1255, 1264, 1273, 1282, 1289, 1296, 1304, 1312, 1322, - 1332, 1342, 1356, 1364, 1377, 1388, 1396, 1409, 1418, 1427, - 1436, 1446, 1456, 1464, 1477, 1486, 1494, 1503, 1511, 1524, - 1533, 1540, 1550, 1560, 1570, 1580, 1590, 1600, 1610, 1620, - 1627, 1634, 1641, 1650, 1659, 1668, 1677, 1684, 1694, 1714, - 1721, 1739, 1752, 1765, 1774, 1783, 1792, 1801, 1811, 1821, - 1832, 1841, 1850, 1859, 1868, 1877, 1886, 1899, 1912, 1921, - 1928, 1937, 1946, 1955, 1964, 1972, 1985, 1993, 2034, 2041, - 2056, 2066, 2076, 2083, 2090, 2097, 2106, 2114, 2128, 2149, - 2170, 2182, 2194, 2206, 2215, 2236, 2246, 2255, 2263, 2271, - 2284, 2297, 2312, 2327, 2336, 2345, 2351, 2360, 2369, 2379, - 2389, 2402, 2415, 2427, 2441, 2453, 2467, 2482, 2492, 2499, - 2506, 2515, 2524, 2534, 2544, 2554, 2561, 2568, 2577, 2586, - 2596, 2606, 2613, 2620, 2627, 2635, 2645, 2655, 2665, 2675, - 2714, 2724, 2732, 2740, 2755, 2764, 2769, 2770, 2771, 2771, - 2771, 2772, 2772, 2772, 2773, 2773, 2775, 2785, 2794, 2801, - 2808, 2815, 2822, 2829, 2836, 2841, 2842, 2843, 2843, 2843, - 2844, 2844, 2844, 2845, 2846, 2846, 2847, 2847, 2848, 2848, - 2849, 2850, 2851, 2852, 2853, 2854, 2856, 2865, 2875, 2882, - 2889, 2898, 2905, 2912, 2919, 2926, 2935, 2944, 2951, 2958, - 2968, 2978, 2988, 2998, 3008, 3018, 3023, 3024, 3025, 3027, - 3033, 3038, 3039, 3040, 3042, 3048, 3058, 3065, 3074, 3082, - 3087, 3088, 3090, 3090, 3090, 3091, 3091, 3092, 3093, 3094, - 3095, 3096, 3098, 3108, 3117, 3124, 3133, 3140, 3149, 3157, - 3170, 3178, 3191, 3196, 3197, 3198, 3198, 3199, 3199, 3199, - 3200, 3202, 3214, 3226, 3238, 3253, 3266, 3279, 3290, 3295, - 3296, 3297, 3297, 3299, 3314 + 293, 294, 294, 295, 297, 309, 310, 311, 311, 311, + 311, 311, 312, 312, 314, 326, 327, 328, 328, 328, + 328, 329, 329, 331, 345, 346, 347, 347, 347, 347, + 348, 348, 348, 350, 367, 368, 369, 369, 369, 369, + 370, 370, 370, 371, 374, 393, 410, 418, 428, 436, + 453, 454, 455, 455, 455, 455, 455, 456, 456, 456, + 457, 457, 459, 468, 477, 488, 497, 506, 515, 526, + 535, 547, 561, 576, 587, 604, 621, 638, 655, 670, + 685, 698, 713, 722, 731, 740, 749, 758, 767, 776, + 785, 794, 803, 812, 821, 830, 839, 852, 861, 874, + 883, 892, 901, 908, 915, 924, 931, 940, 948, 955, + 962, 970, 979, 986, 1002, 1010, 1018, 1026, 1034, 1043, + 1052, 1066, 1075, 1084, 1093, 1102, 1111, 1120, 1127, 1134, + 1160, 1168, 1175, 1182, 1189, 1196, 1204, 1212, 1220, 1227, + 1238, 1249, 1256, 1265, 1274, 1283, 1290, 1297, 1305, 1313, + 1323, 1333, 1343, 1357, 1365, 1378, 1389, 1397, 1410, 1419, + 1428, 1437, 1447, 1457, 1465, 1478, 1487, 1495, 1504, 1512, + 1525, 1534, 1541, 1551, 1561, 1571, 1581, 1591, 1601, 1611, + 1621, 1628, 1635, 1642, 1651, 1660, 1669, 1678, 1685, 1695, + 1715, 1722, 1740, 1753, 1766, 1775, 1784, 1793, 1802, 1812, + 1822, 1833, 1842, 1851, 1860, 1869, 1878, 1887, 1900, 1913, + 1922, 1929, 1938, 1947, 1956, 1965, 1973, 1986, 1994, 2035, + 2042, 2057, 2067, 2077, 2084, 2091, 2098, 2107, 2115, 2129, + 2150, 2171, 2183, 2195, 2207, 2216, 2237, 2247, 2256, 2264, + 2272, 2285, 2298, 2313, 2328, 2337, 2346, 2352, 2361, 2370, + 2380, 2390, 2403, 2416, 2428, 2442, 2454, 2468, 2483, 2494, + 2504, 2511, 2518, 2527, 2536, 2546, 2556, 2566, 2573, 2580, + 2589, 2598, 2608, 2618, 2625, 2632, 2639, 2647, 2657, 2667, + 2677, 2687, 2726, 2736, 2744, 2752, 2767, 2776, 2781, 2782, + 2783, 2783, 2783, 2784, 2784, 2784, 2785, 2785, 2787, 2797, + 2806, 2813, 2820, 2827, 2834, 2841, 2848, 2853, 2854, 2855, + 2855, 2855, 2856, 2856, 2856, 2857, 2858, 2858, 2859, 2859, + 2860, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2868, 2877, + 2887, 2894, 2901, 2910, 2917, 2924, 2931, 2938, 2947, 2956, + 2963, 2970, 2980, 2990, 3000, 3010, 3020, 3030, 3035, 3036, + 3037, 3039, 3045, 3050, 3051, 3052, 3054, 3060, 3070, 3077, + 3086, 3094, 3099, 3100, 3102, 3102, 3102, 3103, 3103, 3104, + 3105, 3106, 3107, 3108, 3110, 3120, 3129, 3136, 3145, 3152, + 3161, 3169, 3182, 3190, 3203, 3208, 3209, 3210, 3210, 3211, + 3211, 3211, 3212, 3214, 3226, 3238, 3250, 3265, 3278, 3291, + 3302, 3307, 3308, 3309, 3309, 3311, 3326 }; #endif @@ -1333,17 +1335,18 @@ static const char *const yytname[] = "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", - "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_TAG", "$accept", - "toplevelvars", "toplevelvar", "force_toplevel", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "viewstart", "contents_view", "content_view", "authstart", - "contents_auth", "content_auth", "rpz_tag", "rpz_action_override", - "rpz_cname_override", "rpz_log", "rpz_log_name", "rpzstart", - "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity", - "server_statistics_interval", "server_statistics_cumulative", - "server_extended_statistics", "server_shm_enable", "server_shm_key", - "server_port", "server_send_client_subnet", "server_client_subnet_zone", + "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_TAG", + "VAR_EDNS_CLIENT_TAG_OPCODE", "$accept", "toplevelvars", "toplevelvar", + "force_toplevel", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", + "server_statistics_cumulative", "server_extended_statistics", + "server_shm_enable", "server_shm_key", "server_port", + "server_send_client_subnet", "server_client_subnet_zone", "server_client_subnet_always_forward", "server_client_subnet_opcode", "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", @@ -1425,12 +1428,12 @@ static const char *const yytname[] = "server_qname_minimisation_strict", "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", - "server_ipsecmod_strict", "server_edns_client_tag", "stub_name", - "stub_host", "stub_addr", "stub_first", "stub_no_cache", - "stub_ssl_upstream", "stub_prime", "forward_name", "forward_host", - "forward_addr", "forward_first", "forward_no_cache", - "forward_ssl_upstream", "auth_name", "auth_zonefile", "auth_master", - "auth_url", "auth_allow_notify", "auth_for_downstream", + "server_ipsecmod_strict", "server_edns_client_tag", + "server_edns_client_tag_opcode", "stub_name", "stub_host", "stub_addr", + "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_prime", + "forward_name", "forward_host", "forward_addr", "forward_first", + "forward_no_cache", "forward_ssl_upstream", "auth_name", "auth_zonefile", + "auth_master", "auth_url", "auth_allow_notify", "auth_for_downstream", "auth_for_upstream", "auth_fallback_enabled", "view_name", "view_local_zone", "view_response_ip", "view_response_ip_data", "view_local_data", "view_local_data_ptr", "view_first", "rcstart", @@ -1500,7 +1503,7 @@ static const yytype_int16 yytoknum[] = 515, 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 + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554 }; # endif @@ -1542,7 +1545,7 @@ static const yytype_int16 yypact[] = 251, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 277, 278, 279, 281, 282, 283, - 285, 319, 320, 321, 322, 326, -288, -288, -288, -288, + 285, 319, 320, 321, 322, 326, 327, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, @@ -1562,55 +1565,55 @@ static const yytype_int16 yypact[] = -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, 327, 328, - 370, 371, 372, 373, 374, -288, -288, -288, -288, -288, - -288, -288, -288, 375, 376, 377, 378, 382, 386, -288, - -288, -288, -288, -288, -288, -288, 387, 412, 413, 414, - 422, 433, 434, -288, -288, -288, -288, -288, -288, -288, - -288, 435, 436, 437, 438, 439, 440, 441, 442, -288, - -288, -288, -288, -288, -288, -288, -288, -288, 443, 444, - 445, 446, 447, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, 448, 449, 450, 451, 452, 492, - 494, 510, -288, -288, -288, -288, -288, -288, -288, -288, - -288, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 527, 528, 529, 530, 531, 532, 533, 535, 536, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + 328, 370, 371, 372, 373, 374, 375, -288, -288, -288, + -288, -288, -288, -288, -288, 376, 377, 378, 382, 386, + 387, -288, -288, -288, -288, -288, -288, -288, 412, 413, + 414, 422, 433, 434, 435, -288, -288, -288, -288, -288, + -288, -288, -288, 436, 437, 438, 439, 440, 441, 442, + 443, -288, -288, -288, -288, -288, -288, -288, -288, -288, + 444, 445, 446, 447, 448, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, 449, 450, 451, 452, + 492, 494, 510, 511, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 527, 528, 529, 530, 531, 532, 533, 535, + 536, 537, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - 537, -288, -288, 538, -288, -288, 539, 540, 541, 544, - 547, 550, 551, 560, 561, 562, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, 564, 565, 566, - 567, 568, 569, -288, -288, -288, -288, -288, -288, -288, - 570, 571, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, 538, -288, -288, 539, -288, -288, 540, 541, + 544, 547, 550, 551, 560, 561, 562, 564, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, 565, + 566, 567, 568, 569, 570, -288, -288, -288, -288, -288, + -288, -288, 571, 574, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, 573, 574, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 575, 576, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, 575, 576, - 577, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, 578, 579, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, 580, 581, 582, 583, 584, 585, -288, -288, + 577, 578, 579, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 580, 581, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, 582, 583, 584, 585, 586, 587, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, 586, -288, -288, -288, -288, - -288, -288, -288, -288, -288, 587, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - 588, -288, -288, 589, 590, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 588, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 589, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 590, -288, -288, 591, 592, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, 591, 592, 593, -288, -288, - -288, -288, -288, -288, -288, -288, -288 + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, 593, 594, + 595, -288, -288, -288, -288, -288, -288, -288, -288, -288 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1618,10 +1621,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 223, 233, 505, 565, 524, - 242, 579, 602, 252, 618, 268, 570, 3, 17, 21, - 225, 235, 244, 254, 270, 507, 526, 567, 572, 581, - 604, 620, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 224, 234, 507, 567, 526, + 243, 581, 604, 253, 620, 269, 572, 3, 17, 21, + 226, 236, 245, 255, 271, 509, 528, 569, 574, 583, + 606, 622, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1642,75 +1645,75 @@ static const yytype_int16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 22, 23, 86, - 89, 98, 192, 193, 24, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 37, 77, 25, 90, 91, - 48, 70, 85, 26, 27, 30, 31, 28, 29, 32, - 33, 34, 35, 36, 121, 204, 122, 124, 125, 126, - 206, 211, 207, 218, 219, 220, 221, 127, 128, 129, - 130, 131, 132, 188, 87, 76, 102, 119, 120, 216, - 213, 123, 38, 39, 40, 41, 42, 78, 92, 93, - 108, 64, 74, 65, 196, 197, 103, 58, 59, 195, - 60, 61, 112, 116, 136, 145, 171, 148, 217, 113, - 71, 43, 44, 45, 100, 137, 138, 139, 46, 47, - 49, 50, 52, 53, 51, 143, 54, 55, 56, 62, - 81, 117, 95, 144, 88, 167, 96, 97, 114, 115, - 214, 101, 57, 79, 82, 63, 66, 104, 105, 80, - 168, 106, 67, 68, 69, 205, 118, 181, 182, 183, - 184, 185, 186, 194, 107, 75, 109, 110, 111, 169, - 72, 73, 94, 83, 84, 99, 133, 134, 215, 135, - 140, 141, 142, 172, 173, 175, 177, 178, 176, 179, - 189, 146, 147, 151, 152, 149, 150, 153, 154, 156, - 155, 208, 210, 209, 170, 180, 198, 200, 199, 201, - 202, 203, 222, 174, 187, 190, 191, 212, 0, 0, - 0, 0, 0, 0, 0, 224, 226, 227, 228, 230, - 231, 232, 229, 0, 0, 0, 0, 0, 0, 234, - 236, 237, 238, 239, 240, 241, 0, 0, 0, 0, - 0, 0, 0, 243, 245, 246, 249, 250, 247, 251, - 248, 0, 0, 0, 0, 0, 0, 0, 0, 253, - 255, 256, 257, 258, 262, 259, 260, 261, 0, 0, - 0, 0, 0, 273, 277, 278, 279, 280, 269, 271, - 272, 274, 275, 276, 0, 0, 0, 0, 0, 0, - 0, 0, 506, 508, 510, 509, 515, 511, 512, 513, - 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 20, 22, 23, + 86, 89, 98, 192, 193, 24, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 37, 77, 25, 90, + 91, 48, 70, 85, 26, 27, 30, 31, 28, 29, + 32, 33, 34, 35, 36, 121, 204, 122, 124, 125, + 126, 206, 211, 207, 218, 219, 220, 221, 127, 128, + 129, 130, 131, 132, 188, 87, 76, 102, 119, 120, + 216, 213, 123, 38, 39, 40, 41, 42, 78, 92, + 93, 108, 64, 74, 65, 196, 197, 103, 58, 59, + 195, 60, 61, 112, 116, 136, 145, 171, 148, 217, + 113, 71, 43, 44, 45, 100, 137, 138, 139, 46, + 47, 49, 50, 52, 53, 51, 143, 54, 55, 56, + 62, 81, 117, 95, 144, 88, 167, 96, 97, 114, + 115, 214, 101, 57, 79, 82, 63, 66, 104, 105, + 80, 168, 106, 67, 68, 69, 205, 118, 181, 182, + 183, 184, 185, 186, 194, 107, 75, 109, 110, 111, + 169, 72, 73, 94, 83, 84, 99, 133, 134, 215, + 135, 140, 141, 142, 172, 173, 175, 177, 178, 176, + 179, 189, 146, 147, 151, 152, 149, 150, 153, 154, + 156, 155, 208, 210, 209, 170, 180, 198, 200, 199, + 201, 202, 203, 222, 223, 174, 187, 190, 191, 212, + 0, 0, 0, 0, 0, 0, 0, 225, 227, 228, + 229, 231, 232, 233, 230, 0, 0, 0, 0, 0, + 0, 235, 237, 238, 239, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 0, 244, 246, 247, 250, 251, + 248, 252, 249, 0, 0, 0, 0, 0, 0, 0, + 0, 254, 256, 257, 258, 259, 263, 260, 261, 262, + 0, 0, 0, 0, 0, 274, 278, 279, 280, 281, + 270, 272, 273, 275, 276, 277, 0, 0, 0, 0, + 0, 0, 0, 0, 508, 510, 512, 511, 517, 513, + 514, 515, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 527, 529, 528, 530, 531, 532, 533, 534, 535, + 0, 0, 527, 529, 531, 530, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 0, 566, 568, 0, 571, 573, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 580, 582, 583, 584, - 586, 587, 585, 588, 589, 590, 591, 0, 0, 0, - 0, 0, 0, 603, 605, 606, 607, 608, 609, 610, - 0, 0, 619, 621, 622, 282, 281, 288, 301, 299, - 311, 307, 308, 312, 309, 310, 313, 314, 315, 316, - 317, 346, 347, 348, 349, 350, 375, 376, 377, 382, - 383, 304, 384, 385, 388, 386, 387, 390, 391, 392, - 406, 361, 362, 364, 365, 393, 409, 355, 357, 410, - 416, 417, 418, 305, 374, 434, 435, 356, 429, 339, - 300, 351, 407, 413, 394, 0, 0, 438, 306, 283, - 338, 398, 284, 302, 303, 352, 353, 436, 396, 400, - 401, 285, 439, 378, 405, 340, 360, 411, 412, 415, - 428, 354, 432, 430, 431, 366, 373, 402, 403, 367, - 368, 395, 420, 341, 342, 345, 318, 320, 321, 322, - 323, 324, 331, 332, 333, 334, 335, 336, 440, 441, - 443, 379, 380, 381, 389, 444, 445, 446, 0, 0, - 0, 397, 369, 371, 575, 455, 459, 457, 456, 460, - 458, 0, 0, 463, 464, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 399, 414, 433, 468, 469, - 370, 447, 0, 0, 0, 0, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 576, 363, 358, 419, 337, - 286, 287, 359, 470, 472, 471, 473, 474, 475, 319, - 326, 465, 467, 466, 325, 0, 344, 404, 442, 343, - 372, 327, 328, 330, 329, 0, 477, 478, 479, 483, - 482, 480, 481, 484, 485, 486, 487, 489, 488, 498, - 0, 502, 503, 0, 0, 504, 490, 496, 491, 492, - 493, 495, 497, 494, 263, 264, 265, 266, 267, 516, - 518, 517, 520, 521, 522, 523, 519, 546, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 547, 557, 558, - 559, 560, 561, 562, 563, 564, 569, 574, 592, 593, - 594, 597, 595, 596, 598, 599, 600, 601, 611, 612, - 613, 614, 615, 616, 623, 624, 408, 437, 454, 577, - 578, 461, 462, 448, 449, 0, 0, 0, 453, 617, - 476, 499, 500, 501, 452, 450, 451 + 546, 547, 0, 568, 570, 0, 573, 575, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 582, 584, + 585, 586, 588, 589, 587, 590, 591, 592, 593, 0, + 0, 0, 0, 0, 0, 605, 607, 608, 609, 610, + 611, 612, 0, 0, 621, 623, 624, 283, 282, 289, + 302, 300, 312, 308, 309, 313, 310, 311, 314, 315, + 316, 317, 318, 347, 348, 349, 350, 351, 376, 377, + 378, 383, 384, 305, 385, 386, 389, 387, 388, 391, + 392, 393, 407, 362, 363, 365, 366, 394, 410, 356, + 358, 411, 417, 418, 419, 306, 375, 435, 436, 357, + 430, 340, 301, 352, 408, 414, 395, 0, 0, 439, + 307, 284, 339, 399, 285, 303, 304, 353, 354, 437, + 397, 401, 402, 286, 440, 379, 406, 341, 361, 412, + 413, 416, 429, 355, 433, 431, 432, 367, 374, 403, + 404, 368, 369, 396, 421, 342, 343, 346, 319, 321, + 322, 323, 324, 325, 332, 333, 334, 335, 336, 337, + 441, 442, 444, 380, 381, 382, 390, 445, 446, 447, + 0, 0, 0, 398, 370, 372, 577, 456, 460, 458, + 457, 461, 459, 0, 0, 464, 465, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 400, 415, 434, + 469, 470, 371, 448, 0, 0, 0, 0, 0, 0, + 422, 423, 424, 425, 426, 427, 428, 578, 364, 359, + 420, 338, 287, 288, 360, 471, 473, 472, 474, 475, + 476, 320, 327, 466, 468, 467, 326, 0, 345, 405, + 443, 344, 373, 328, 329, 331, 330, 0, 478, 479, + 480, 481, 485, 484, 482, 483, 486, 487, 488, 489, + 491, 490, 500, 0, 504, 505, 0, 0, 506, 492, + 498, 493, 494, 495, 497, 499, 496, 264, 265, 266, + 267, 268, 518, 520, 519, 522, 523, 524, 525, 521, + 548, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 549, 559, 560, 561, 562, 563, 564, 565, 566, 571, + 576, 594, 595, 596, 599, 597, 598, 600, 601, 602, + 603, 613, 614, 615, 616, 617, 618, 625, 626, 409, + 438, 455, 579, 580, 462, 463, 449, 450, 0, 0, + 0, 454, 619, 477, 501, 502, 503, 453, 451, 452 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1739,8 +1742,8 @@ static const yytype_int16 yypgoto[] = -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, 572, 594, 595, 596, - 597, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 572, 573, 596, + 597, 598, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, @@ -1748,45 +1751,45 @@ static const yytype_int16 yypgoto[] = -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288 + -288, -288, -288, -288, -288 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 246, 20, 33, 455, - 21, 34, 469, 22, 35, 483, 23, 36, 499, 513, - 514, 515, 516, 517, 24, 37, 518, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 456, 457, 458, 459, 460, 461, 462, - 470, 471, 472, 473, 474, 475, 500, 501, 502, 503, - 504, 505, 506, 507, 484, 485, 486, 487, 488, 489, - 490, 25, 38, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 26, 39, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 27, 40, 581, 582, 28, 41, - 584, 585, 443, 444, 445, 446, 29, 42, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 30, - 43, 613, 614, 615, 616, 617, 618, 619, 447, 31, - 44, 622, 623, 624 + -1, 1, 17, 18, 19, 32, 247, 20, 33, 457, + 21, 34, 471, 22, 35, 485, 23, 36, 501, 515, + 516, 517, 518, 519, 24, 37, 520, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 458, 459, 460, 461, 462, 463, + 464, 472, 473, 474, 475, 476, 477, 502, 503, 504, + 505, 506, 507, 508, 509, 486, 487, 488, 489, 490, + 491, 492, 25, 38, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 26, 39, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 27, 40, 583, 584, 28, + 41, 586, 587, 445, 446, 447, 448, 29, 42, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 30, 43, 615, 616, 617, 618, 619, 620, 621, 449, + 31, 44, 624, 625, 626 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1794,70 +1797,70 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 491, 476, 448, 580, 449, 450, 463, 620, 621, - 583, 3, 4, 625, 626, 464, 465, 607, 608, 609, - 610, 611, 612, 627, 491, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 628, 629, 630, 477, 478, - 631, 632, 633, 634, 635, 636, 5, 637, 638, 639, - 640, 641, 6, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 479, 652, 653, 451, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 524, 525, 526, 527, - 528, 529, 530, 531, 654, 655, 7, 452, 656, 657, - 466, 658, 467, 659, 660, 661, 453, 662, 663, 664, - 665, 666, 8, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 480, 481, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 9, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 482, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 10, 493, - 494, 495, 768, 769, 770, 771, 772, 773, 774, 498, - 775, 776, 777, 778, 779, 454, 11, 780, 468, 781, - 492, 782, 493, 494, 495, 496, 497, 508, 509, 510, - 511, 512, 498, 12, 783, 784, 785, 786, 787, 788, - 789, 790, 13, 791, 792, 793, 794, 795, 796, 797, - 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 14, 814, 815, 816, - 15, 817, 818, 819, 0, 820, 16, 45, 46, 47, + 2, 493, 478, 450, 582, 451, 452, 465, 622, 623, + 585, 3, 4, 627, 628, 466, 467, 609, 610, 611, + 612, 613, 614, 629, 493, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 630, 631, 632, 479, 480, + 633, 634, 635, 636, 637, 638, 5, 639, 640, 641, + 642, 643, 6, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 481, 654, 655, 453, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 526, 527, 528, 529, + 530, 531, 532, 533, 656, 657, 7, 454, 658, 659, + 468, 660, 469, 661, 662, 663, 455, 664, 665, 666, + 667, 668, 8, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 482, 483, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 9, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 484, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 10, 495, + 496, 497, 770, 771, 772, 773, 774, 775, 776, 500, + 777, 778, 779, 780, 781, 456, 11, 782, 470, 783, + 494, 784, 495, 496, 497, 498, 499, 510, 511, 512, + 513, 514, 500, 12, 785, 786, 787, 788, 789, 790, + 791, 792, 13, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 14, 816, 817, 818, + 15, 819, 820, 821, 0, 822, 16, 45, 46, 47, 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, 821, - 822, 823, 824, 77, 78, 79, 825, 826, 827, 80, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 823, + 824, 825, 826, 77, 78, 79, 827, 828, 829, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 828, 829, 830, 831, 832, 833, 834, 835, 836, 121, - 122, 123, 837, 124, 125, 126, 838, 839, 127, 128, + 830, 831, 832, 833, 834, 835, 836, 837, 838, 121, + 122, 123, 839, 124, 125, 126, 840, 841, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 840, 841, 842, 151, 152, 153, 154, 155, - 156, 157, 843, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 844, 845, 846, 847, 848, 849, 850, - 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, - 861, 862, 863, 168, 169, 170, 171, 172, 173, 174, + 149, 150, 842, 843, 844, 151, 152, 153, 154, 155, + 156, 157, 845, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 864, 207, 865, 208, 209, 210, 211, 212, + 205, 206, 866, 207, 867, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, - 876, 223, 224, 225, 226, 227, 228, 877, 878, 879, - 880, 881, 882, 883, 229, 884, 885, 886, 887, 888, - 889, 890, 230, 231, 891, 232, 233, 892, 234, 235, - 893, 894, 236, 237, 238, 239, 240, 241, 242, 243, - 895, 896, 897, 244, 898, 899, 900, 901, 902, 903, - 904, 905, 245, 906, 907, 908, 909, 910, 911, 912, - 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, - 923, 924, 925, 926, 0, 0, 0, 0, 0, 519, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 223, 224, 225, 226, 227, 228, 879, 880, 881, + 882, 883, 884, 885, 229, 886, 887, 888, 889, 890, + 891, 892, 230, 231, 893, 232, 233, 894, 234, 235, + 895, 896, 236, 237, 238, 239, 240, 241, 242, 243, + 897, 898, 899, 244, 900, 901, 902, 903, 904, 905, + 906, 907, 245, 246, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 0, 0, 0, 521, + 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 520, 521, 522, 523 + 0, 0, 0, 523, 524, 525 }; static const yytype_int16 yycheck[] = @@ -1920,23 +1923,23 @@ static const yytype_int16 yycheck[] = 10, 10, 268, 269, 10, 271, 272, 10, 274, 275, 10, 10, 278, 279, 280, 281, 282, 283, 284, 285, 10, 10, 10, 289, 10, 10, 10, 10, 10, 10, - 10, 10, 298, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 298, 299, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, -1, -1, -1, -1, -1, 37, + 10, 10, 10, 10, 10, 10, -1, -1, -1, 37, + 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 37, 37, 37 + -1, -1, -1, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 300, 0, 11, 12, 46, 52, 96, 112, 159, - 218, 236, 253, 262, 286, 290, 296, 301, 302, 303, - 306, 309, 312, 315, 323, 550, 561, 583, 587, 595, - 608, 618, 304, 307, 310, 313, 316, 324, 551, 562, - 584, 588, 596, 609, 619, 13, 14, 15, 16, 17, + 0, 301, 0, 11, 12, 46, 52, 96, 112, 159, + 218, 236, 253, 262, 286, 290, 296, 302, 303, 304, + 307, 310, 313, 316, 324, 552, 563, 585, 589, 597, + 610, 620, 305, 308, 311, 314, 317, 325, 553, 564, + 586, 590, 598, 611, 621, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@ -1956,7 +1959,7 @@ static const yytype_int16 yystos[] = 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 247, 248, 249, 250, 251, 252, 260, 268, 269, 271, 272, 274, 275, 278, 279, 280, 281, - 282, 283, 284, 285, 289, 298, 305, 326, 327, 328, + 282, 283, 284, 285, 289, 298, 299, 306, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, @@ -1976,25 +1979,25 @@ static const yytype_int16 yystos[] = 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 591, 592, 593, 594, 617, 45, 47, - 48, 108, 139, 148, 277, 308, 522, 523, 524, 525, - 526, 527, 528, 45, 53, 54, 138, 140, 276, 311, - 529, 530, 531, 532, 533, 534, 45, 81, 82, 106, - 180, 181, 220, 314, 543, 544, 545, 546, 547, 548, - 549, 45, 261, 263, 264, 265, 266, 267, 273, 317, - 535, 536, 537, 538, 539, 540, 541, 542, 291, 292, - 293, 294, 295, 318, 319, 320, 321, 322, 325, 535, - 536, 537, 538, 539, 97, 98, 99, 100, 101, 102, - 103, 104, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 519, 520, 521, 522, 523, 593, 594, 595, 596, 619, + 45, 47, 48, 108, 139, 148, 277, 309, 524, 525, + 526, 527, 528, 529, 530, 45, 53, 54, 138, 140, + 276, 312, 531, 532, 533, 534, 535, 536, 45, 81, + 82, 106, 180, 181, 220, 315, 545, 546, 547, 548, + 549, 550, 551, 45, 261, 263, 264, 265, 266, 267, + 273, 318, 537, 538, 539, 540, 541, 542, 543, 544, + 291, 292, 293, 294, 295, 319, 320, 321, 322, 323, + 326, 537, 538, 539, 540, 541, 97, 98, 99, 100, + 101, 102, 103, 104, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 113, 585, 586, 297, 589, 590, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 254, 255, 256, - 257, 258, 259, 610, 611, 612, 613, 614, 615, 616, - 287, 288, 620, 621, 622, 10, 10, 10, 10, 10, + 583, 584, 113, 587, 588, 297, 591, 592, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 254, + 255, 256, 257, 258, 259, 612, 613, 614, 615, 616, + 617, 618, 287, 288, 622, 623, 624, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -2024,41 +2027,41 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 299, 300, 300, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 302, 303, - 304, 304, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, - 305, 305, 305, 306, 307, 307, 308, 308, 308, 308, - 308, 308, 308, 309, 310, 310, 311, 311, 311, 311, - 311, 311, 312, 313, 313, 314, 314, 314, 314, 314, - 314, 314, 315, 316, 316, 317, 317, 317, 317, 317, - 317, 317, 317, 318, 319, 320, 321, 322, 323, 324, - 324, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 0, 300, 301, 301, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 303, 304, + 305, 305, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 307, 308, 308, 309, 309, 309, + 309, 309, 309, 309, 310, 311, 311, 312, 312, 312, + 312, 312, 312, 313, 314, 314, 315, 315, 315, 315, + 315, 315, 315, 316, 317, 317, 318, 318, 318, 318, + 318, 318, 318, 318, 319, 320, 321, 322, 323, 324, + 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, @@ -2080,19 +2083,19 @@ static const yytype_int16 yyr1[] = 515, 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, 551, 552, 552, - 552, 552, 552, 552, 552, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 562, 563, 563, 563, - 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, - 563, 563, 563, 563, 563, 563, 564, 565, 566, 567, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 553, + 554, 554, 554, 554, 554, 554, 554, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 564, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 584, 585, 586, - 587, 588, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 596, 597, 597, 597, 597, 597, 597, 597, 597, - 597, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 609, 610, 610, 610, 610, 610, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 619, 620, 620, 621, 622 + 578, 579, 580, 581, 582, 583, 584, 585, 586, 586, + 587, 588, 589, 590, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 598, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 611, 612, 612, 612, + 612, 612, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 621, 622, 622, 623, 624 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2120,13 +2123,13 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2138,29 +2141,29 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 3, 4, 4, 4, 3, 3, 2, 2, 2, 2, + 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, - 4, 4, 4, 3, 3, 2, 2, 2, 2, 2, - 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 2, - 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 3, 1, 2, - 0, 1, 1, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, + 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, + 1, 2, 0, 1, 1, 2, 2 }; @@ -2860,7 +2863,7 @@ yyreduce: { OUTYY(("\nP(force-toplevel)\n")); } -#line 2864 "util/configparser.c" +#line 2867 "util/configparser.c" break; case 19: @@ -2868,11 +2871,11 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2872 "util/configparser.c" +#line 2875 "util/configparser.c" break; - case 223: -#line 297 "./util/configparser.y" + case 224: +#line 298 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2883,11 +2886,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2887 "util/configparser.c" +#line 2890 "util/configparser.c" break; - case 233: -#line 314 "./util/configparser.y" + case 234: +#line 315 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2898,11 +2901,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2902 "util/configparser.c" +#line 2905 "util/configparser.c" break; - case 242: -#line 331 "./util/configparser.y" + case 243: +#line 332 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2915,11 +2918,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2919 "util/configparser.c" +#line 2922 "util/configparser.c" break; - case 252: -#line 350 "./util/configparser.y" + case 253: +#line 351 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2935,11 +2938,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2939 "util/configparser.c" +#line 2942 "util/configparser.c" break; - case 263: -#line 374 "./util/configparser.y" + case 264: +#line 375 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2956,11 +2959,11 @@ yyreduce: } } -#line 2960 "util/configparser.c" +#line 2963 "util/configparser.c" break; - case 264: -#line 393 "./util/configparser.y" + case 265: +#line 394 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -2975,21 +2978,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2979 "util/configparser.c" +#line 2982 "util/configparser.c" break; - case 265: -#line 410 "./util/configparser.y" + case 266: +#line 411 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 2989 "util/configparser.c" +#line 2992 "util/configparser.c" break; - case 266: -#line 418 "./util/configparser.y" + case 267: +#line 419 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2997,21 +3000,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3001 "util/configparser.c" +#line 3004 "util/configparser.c" break; - case 267: -#line 428 "./util/configparser.y" + case 268: +#line 429 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3011 "util/configparser.c" +#line 3014 "util/configparser.c" break; - case 268: -#line 436 "./util/configparser.y" + case 269: +#line 437 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -3027,11 +3030,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3031 "util/configparser.c" +#line 3034 "util/configparser.c" break; - case 281: -#line 459 "./util/configparser.y" + case 282: +#line 460 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3039,11 +3042,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3043 "util/configparser.c" +#line 3046 "util/configparser.c" break; - case 282: -#line 468 "./util/configparser.y" + case 283: +#line 469 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3051,11 +3054,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3055 "util/configparser.c" +#line 3058 "util/configparser.c" break; - case 283: -#line 477 "./util/configparser.y" + case 284: +#line 478 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3065,11 +3068,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3069 "util/configparser.c" +#line 3072 "util/configparser.c" break; - case 284: -#line 488 "./util/configparser.y" + case 285: +#line 489 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3077,11 +3080,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3081 "util/configparser.c" +#line 3084 "util/configparser.c" break; - case 285: -#line 497 "./util/configparser.y" + case 286: +#line 498 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3089,11 +3092,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3093 "util/configparser.c" +#line 3096 "util/configparser.c" break; - case 286: -#line 506 "./util/configparser.y" + case 287: +#line 507 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3101,11 +3104,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3105 "util/configparser.c" +#line 3108 "util/configparser.c" break; - case 287: -#line 515 "./util/configparser.y" + case 288: +#line 516 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3115,11 +3118,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3119 "util/configparser.c" +#line 3122 "util/configparser.c" break; - case 288: -#line 526 "./util/configparser.y" + case 289: +#line 527 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3127,11 +3130,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3131 "util/configparser.c" +#line 3134 "util/configparser.c" break; - case 289: -#line 535 "./util/configparser.y" + case 290: +#line 536 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3142,11 +3145,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3146 "util/configparser.c" +#line 3149 "util/configparser.c" break; - case 290: -#line 547 "./util/configparser.y" + case 291: +#line 548 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3158,11 +3161,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3162 "util/configparser.c" +#line 3165 "util/configparser.c" break; - case 291: -#line 561 "./util/configparser.y" + case 292: +#line 562 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3176,11 +3179,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3180 "util/configparser.c" +#line 3183 "util/configparser.c" break; - case 292: -#line 576 "./util/configparser.y" + case 293: +#line 577 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3190,11 +3193,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3194 "util/configparser.c" +#line 3197 "util/configparser.c" break; - case 293: -#line 587 "./util/configparser.y" + case 294: +#line 588 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3210,11 +3213,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3214 "util/configparser.c" +#line 3217 "util/configparser.c" break; - case 294: -#line 604 "./util/configparser.y" + case 295: +#line 605 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3230,11 +3233,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3234 "util/configparser.c" +#line 3237 "util/configparser.c" break; - case 295: -#line 621 "./util/configparser.y" + case 296: +#line 622 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3250,11 +3253,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3254 "util/configparser.c" +#line 3257 "util/configparser.c" break; - case 296: -#line 638 "./util/configparser.y" + case 297: +#line 639 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3270,11 +3273,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3274 "util/configparser.c" +#line 3277 "util/configparser.c" break; - case 297: -#line 655 "./util/configparser.y" + case 298: +#line 656 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3288,11 +3291,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3292 "util/configparser.c" +#line 3295 "util/configparser.c" break; - case 298: -#line 670 "./util/configparser.y" + case 299: +#line 671 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3306,11 +3309,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3310 "util/configparser.c" +#line 3313 "util/configparser.c" break; - case 299: -#line 685 "./util/configparser.y" + case 300: +#line 686 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3322,11 +3325,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3326 "util/configparser.c" +#line 3329 "util/configparser.c" break; - case 300: -#line 698 "./util/configparser.y" + case 301: +#line 699 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3340,11 +3343,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3344 "util/configparser.c" +#line 3347 "util/configparser.c" break; - case 301: -#line 713 "./util/configparser.y" + case 302: +#line 714 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3352,11 +3355,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3356 "util/configparser.c" +#line 3359 "util/configparser.c" break; - case 302: -#line 722 "./util/configparser.y" + case 303: +#line 723 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3364,11 +3367,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3368 "util/configparser.c" +#line 3371 "util/configparser.c" break; - case 303: -#line 731 "./util/configparser.y" + case 304: +#line 732 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3376,11 +3379,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3380 "util/configparser.c" +#line 3383 "util/configparser.c" break; - case 304: -#line 740 "./util/configparser.y" + case 305: +#line 741 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3388,11 +3391,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3392 "util/configparser.c" +#line 3395 "util/configparser.c" break; - case 305: -#line 749 "./util/configparser.y" + case 306: +#line 750 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3400,11 +3403,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3404 "util/configparser.c" +#line 3407 "util/configparser.c" break; - case 306: -#line 758 "./util/configparser.y" + case 307: +#line 759 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3412,11 +3415,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3416 "util/configparser.c" +#line 3419 "util/configparser.c" break; - case 307: -#line 767 "./util/configparser.y" + case 308: +#line 768 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3424,11 +3427,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3428 "util/configparser.c" +#line 3431 "util/configparser.c" break; - case 308: -#line 776 "./util/configparser.y" + case 309: +#line 777 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3436,11 +3439,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3440 "util/configparser.c" +#line 3443 "util/configparser.c" break; - case 309: -#line 785 "./util/configparser.y" + case 310: +#line 786 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3448,11 +3451,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3452 "util/configparser.c" +#line 3455 "util/configparser.c" break; - case 310: -#line 794 "./util/configparser.y" + case 311: +#line 795 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3460,11 +3463,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3464 "util/configparser.c" +#line 3467 "util/configparser.c" break; - case 311: -#line 803 "./util/configparser.y" + case 312: +#line 804 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3472,11 +3475,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3476 "util/configparser.c" +#line 3479 "util/configparser.c" break; - case 312: -#line 812 "./util/configparser.y" + case 313: +#line 813 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3484,11 +3487,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3488 "util/configparser.c" +#line 3491 "util/configparser.c" break; - case 313: -#line 821 "./util/configparser.y" + case 314: +#line 822 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3496,11 +3499,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3500 "util/configparser.c" +#line 3503 "util/configparser.c" break; - case 314: -#line 830 "./util/configparser.y" + case 315: +#line 831 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3508,11 +3511,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3512 "util/configparser.c" +#line 3515 "util/configparser.c" break; - case 315: -#line 839 "./util/configparser.y" + case 316: +#line 840 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3524,11 +3527,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3528 "util/configparser.c" +#line 3531 "util/configparser.c" break; - case 316: -#line 852 "./util/configparser.y" + case 317: +#line 853 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3536,11 +3539,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3540 "util/configparser.c" +#line 3543 "util/configparser.c" break; - case 317: -#line 861 "./util/configparser.y" + case 318: +#line 862 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3552,11 +3555,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3556 "util/configparser.c" +#line 3559 "util/configparser.c" break; - case 318: -#line 874 "./util/configparser.y" + case 319: +#line 875 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3564,11 +3567,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3568 "util/configparser.c" +#line 3571 "util/configparser.c" break; - case 319: -#line 883 "./util/configparser.y" + case 320: +#line 884 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3576,11 +3579,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3580 "util/configparser.c" +#line 3583 "util/configparser.c" break; - case 320: -#line 892 "./util/configparser.y" + case 321: +#line 893 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3588,31 +3591,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3592 "util/configparser.c" +#line 3595 "util/configparser.c" break; - case 321: -#line 901 "./util/configparser.y" + case 322: +#line 902 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 3602 "util/configparser.c" +#line 3605 "util/configparser.c" break; - case 322: -#line 908 "./util/configparser.y" + case 323: +#line 909 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 3612 "util/configparser.c" +#line 3615 "util/configparser.c" break; - case 323: -#line 915 "./util/configparser.y" + case 324: +#line 916 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3620,21 +3623,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3624 "util/configparser.c" +#line 3627 "util/configparser.c" break; - case 324: -#line 924 "./util/configparser.y" + case 325: +#line 925 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3634 "util/configparser.c" +#line 3637 "util/configparser.c" break; - case 325: -#line 931 "./util/configparser.y" + case 326: +#line 932 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3642,53 +3645,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3646 "util/configparser.c" +#line 3649 "util/configparser.c" break; - case 326: -#line 940 "./util/configparser.y" + case 327: +#line 941 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3657 "util/configparser.c" +#line 3660 "util/configparser.c" break; - case 327: -#line 948 "./util/configparser.y" + case 328: +#line 949 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 3667 "util/configparser.c" +#line 3670 "util/configparser.c" break; - case 328: -#line 955 "./util/configparser.y" + case 329: +#line 956 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 3677 "util/configparser.c" +#line 3680 "util/configparser.c" break; - case 329: -#line 962 "./util/configparser.y" + case 330: +#line 963 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3688 "util/configparser.c" +#line 3691 "util/configparser.c" break; - case 330: -#line 970 "./util/configparser.y" + case 331: +#line 971 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3696,22 +3699,22 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3700 "util/configparser.c" +#line 3703 "util/configparser.c" break; - case 331: -#line 979 "./util/configparser.y" + case 332: +#line 980 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); } -#line 3711 "util/configparser.c" +#line 3714 "util/configparser.c" break; - case 332: -#line 986 "./util/configparser.y" + case 333: +#line 987 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3727,11 +3730,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3731 "util/configparser.c" +#line 3734 "util/configparser.c" break; - case 333: -#line 1002 "./util/configparser.y" + case 334: +#line 1003 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3739,11 +3742,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3743 "util/configparser.c" +#line 3746 "util/configparser.c" break; - case 334: -#line 1010 "./util/configparser.y" + case 335: +#line 1011 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3751,11 +3754,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3755 "util/configparser.c" +#line 3758 "util/configparser.c" break; - case 335: -#line 1018 "./util/configparser.y" + case 336: +#line 1019 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3763,11 +3766,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3767 "util/configparser.c" +#line 3770 "util/configparser.c" break; - case 336: -#line 1026 "./util/configparser.y" + case 337: +#line 1027 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3775,11 +3778,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3779 "util/configparser.c" +#line 3782 "util/configparser.c" break; - case 337: -#line 1034 "./util/configparser.y" + case 338: +#line 1035 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3787,11 +3790,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3791 "util/configparser.c" +#line 3794 "util/configparser.c" break; - case 338: -#line 1043 "./util/configparser.y" + case 339: +#line 1044 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3799,11 +3802,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3803 "util/configparser.c" +#line 3806 "util/configparser.c" break; - case 339: -#line 1052 "./util/configparser.y" + case 340: +#line 1053 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3816,11 +3819,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3820 "util/configparser.c" +#line 3823 "util/configparser.c" break; - case 340: -#line 1066 "./util/configparser.y" + case 341: +#line 1067 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3828,11 +3831,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3832 "util/configparser.c" +#line 3835 "util/configparser.c" break; - case 341: -#line 1075 "./util/configparser.y" + case 342: +#line 1076 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3840,11 +3843,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3844 "util/configparser.c" +#line 3847 "util/configparser.c" break; - case 342: -#line 1084 "./util/configparser.y" + case 343: +#line 1085 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3852,11 +3855,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3856 "util/configparser.c" +#line 3859 "util/configparser.c" break; - case 343: -#line 1093 "./util/configparser.y" + case 344: +#line 1094 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3864,11 +3867,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3868 "util/configparser.c" +#line 3871 "util/configparser.c" break; - case 344: -#line 1102 "./util/configparser.y" + case 345: +#line 1103 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3876,11 +3879,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3880 "util/configparser.c" +#line 3883 "util/configparser.c" break; - case 345: -#line 1111 "./util/configparser.y" + case 346: +#line 1112 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3888,31 +3891,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3892 "util/configparser.c" +#line 3895 "util/configparser.c" break; - case 346: -#line 1120 "./util/configparser.y" + case 347: +#line 1121 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3902 "util/configparser.c" +#line 3905 "util/configparser.c" break; - case 347: -#line 1127 "./util/configparser.y" + case 348: +#line 1128 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3912 "util/configparser.c" +#line 3915 "util/configparser.c" break; - case 348: -#line 1134 "./util/configparser.y" + case 349: +#line 1135 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3937,105 +3940,105 @@ yyreduce: } } } -#line 3941 "util/configparser.c" +#line 3944 "util/configparser.c" break; - case 349: -#line 1160 "./util/configparser.y" + case 350: +#line 1161 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3952 "util/configparser.c" +#line 3955 "util/configparser.c" break; - case 350: -#line 1168 "./util/configparser.y" + case 351: +#line 1169 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3962 "util/configparser.c" +#line 3965 "util/configparser.c" break; - case 351: -#line 1175 "./util/configparser.y" + case 352: +#line 1176 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3972 "util/configparser.c" +#line 3975 "util/configparser.c" break; - case 352: -#line 1182 "./util/configparser.y" + case 353: +#line 1183 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3982 "util/configparser.c" +#line 3985 "util/configparser.c" break; - case 353: -#line 1189 "./util/configparser.y" + case 354: +#line 1190 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3992 "util/configparser.c" +#line 3995 "util/configparser.c" break; - case 354: -#line 1196 "./util/configparser.y" + case 355: +#line 1197 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4003 "util/configparser.c" +#line 4006 "util/configparser.c" break; - case 355: -#line 1204 "./util/configparser.y" + case 356: +#line 1205 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4014 "util/configparser.c" +#line 4017 "util/configparser.c" break; - case 356: -#line 1212 "./util/configparser.y" + case 357: +#line 1213 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4025 "util/configparser.c" +#line 4028 "util/configparser.c" break; - case 357: -#line 1220 "./util/configparser.y" + case 358: +#line 1221 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4035 "util/configparser.c" +#line 4038 "util/configparser.c" break; - case 358: -#line 1227 "./util/configparser.y" + case 359: +#line 1228 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4045,11 +4048,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4049 "util/configparser.c" +#line 4052 "util/configparser.c" break; - case 359: -#line 1238 "./util/configparser.y" + case 360: +#line 1239 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4059,21 +4062,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4063 "util/configparser.c" +#line 4066 "util/configparser.c" break; - case 360: -#line 1249 "./util/configparser.y" + case 361: +#line 1250 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4073 "util/configparser.c" +#line 4076 "util/configparser.c" break; - case 361: -#line 1256 "./util/configparser.y" + case 362: +#line 1257 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4081,11 +4084,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4085 "util/configparser.c" +#line 4088 "util/configparser.c" break; - case 362: -#line 1265 "./util/configparser.y" + case 363: +#line 1266 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4093,11 +4096,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4097 "util/configparser.c" +#line 4100 "util/configparser.c" break; - case 363: -#line 1274 "./util/configparser.y" + case 364: +#line 1275 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4105,53 +4108,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4109 "util/configparser.c" +#line 4112 "util/configparser.c" break; - case 364: -#line 1283 "./util/configparser.y" + case 365: +#line 1284 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4119 "util/configparser.c" +#line 4122 "util/configparser.c" break; - case 365: -#line 1290 "./util/configparser.y" + case 366: +#line 1291 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4129 "util/configparser.c" +#line 4132 "util/configparser.c" break; - case 366: -#line 1297 "./util/configparser.y" + case 367: +#line 1298 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4140 "util/configparser.c" +#line 4143 "util/configparser.c" break; - case 367: -#line 1305 "./util/configparser.y" + case 368: +#line 1306 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4151 "util/configparser.c" +#line 4154 "util/configparser.c" break; - case 368: -#line 1313 "./util/configparser.y" + case 369: +#line 1314 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4160,11 +4163,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4164 "util/configparser.c" +#line 4167 "util/configparser.c" break; - case 369: -#line 1323 "./util/configparser.y" + case 370: +#line 1324 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4173,11 +4176,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4177 "util/configparser.c" +#line 4180 "util/configparser.c" break; - case 370: -#line 1333 "./util/configparser.y" + case 371: +#line 1334 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4186,11 +4189,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4190 "util/configparser.c" +#line 4193 "util/configparser.c" break; - case 371: -#line 1343 "./util/configparser.y" + case 372: +#line 1344 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4203,22 +4206,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4207 "util/configparser.c" +#line 4210 "util/configparser.c" break; - case 372: -#line 1357 "./util/configparser.y" + case 373: +#line 1358 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4218 "util/configparser.c" +#line 4221 "util/configparser.c" break; - case 373: -#line 1365 "./util/configparser.y" + case 374: +#line 1366 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4230,11 +4233,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4234 "util/configparser.c" +#line 4237 "util/configparser.c" break; - case 374: -#line 1378 "./util/configparser.y" + case 375: +#line 1379 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4244,22 +4247,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4248 "util/configparser.c" +#line 4251 "util/configparser.c" break; - case 375: -#line 1389 "./util/configparser.y" + case 376: +#line 1390 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4259 "util/configparser.c" +#line 4262 "util/configparser.c" break; - case 376: -#line 1397 "./util/configparser.y" + case 377: +#line 1398 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4271,11 +4274,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4275 "util/configparser.c" +#line 4278 "util/configparser.c" break; - case 377: -#line 1410 "./util/configparser.y" + case 378: +#line 1411 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4283,11 +4286,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4287 "util/configparser.c" +#line 4290 "util/configparser.c" break; - case 378: -#line 1419 "./util/configparser.y" + case 379: +#line 1420 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4295,11 +4298,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4299 "util/configparser.c" +#line 4302 "util/configparser.c" break; - case 379: -#line 1428 "./util/configparser.y" + case 380: +#line 1429 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4307,11 +4310,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4311 "util/configparser.c" +#line 4314 "util/configparser.c" break; - case 380: -#line 1437 "./util/configparser.y" + case 381: +#line 1438 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4320,11 +4323,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4324 "util/configparser.c" +#line 4327 "util/configparser.c" break; - case 381: -#line 1447 "./util/configparser.y" + case 382: +#line 1448 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4333,22 +4336,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4337 "util/configparser.c" +#line 4340 "util/configparser.c" break; - case 382: -#line 1457 "./util/configparser.y" + case 383: +#line 1458 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4348 "util/configparser.c" +#line 4351 "util/configparser.c" break; - case 383: -#line 1465 "./util/configparser.y" + case 384: +#line 1466 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4360,11 +4363,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4364 "util/configparser.c" +#line 4367 "util/configparser.c" break; - case 384: -#line 1478 "./util/configparser.y" + case 385: +#line 1479 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4372,22 +4375,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4376 "util/configparser.c" +#line 4379 "util/configparser.c" break; - case 385: -#line 1487 "./util/configparser.y" + case 386: +#line 1488 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4387 "util/configparser.c" +#line 4390 "util/configparser.c" break; - case 386: -#line 1495 "./util/configparser.y" + case 387: +#line 1496 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4395,22 +4398,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" +#line 4402 "util/configparser.c" break; - case 387: -#line 1504 "./util/configparser.y" + case 388: +#line 1505 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4410 "util/configparser.c" +#line 4413 "util/configparser.c" break; - case 388: -#line 1512 "./util/configparser.y" + case 389: +#line 1513 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4422,11 +4425,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4426 "util/configparser.c" +#line 4429 "util/configparser.c" break; - case 389: -#line 1525 "./util/configparser.y" + case 390: +#line 1526 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4434,21 +4437,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4438 "util/configparser.c" +#line 4441 "util/configparser.c" break; - case 390: -#line 1534 "./util/configparser.y" + case 391: +#line 1535 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 4448 "util/configparser.c" +#line 4451 "util/configparser.c" break; - case 391: -#line 1541 "./util/configparser.y" + case 392: +#line 1542 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4457,11 +4460,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4461 "util/configparser.c" +#line 4464 "util/configparser.c" break; - case 392: -#line 1551 "./util/configparser.y" + case 393: +#line 1552 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4470,11 +4473,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4474 "util/configparser.c" +#line 4477 "util/configparser.c" break; - case 393: -#line 1561 "./util/configparser.y" + case 394: +#line 1562 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4483,11 +4486,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4487 "util/configparser.c" +#line 4490 "util/configparser.c" break; - case 394: -#line 1571 "./util/configparser.y" + case 395: +#line 1572 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4496,11 +4499,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4500 "util/configparser.c" +#line 4503 "util/configparser.c" break; - case 395: -#line 1581 "./util/configparser.y" + case 396: +#line 1582 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4509,11 +4512,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4513 "util/configparser.c" +#line 4516 "util/configparser.c" break; - case 396: -#line 1591 "./util/configparser.y" + case 397: +#line 1592 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4522,11 +4525,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4526 "util/configparser.c" +#line 4529 "util/configparser.c" break; - case 397: -#line 1601 "./util/configparser.y" + case 398: +#line 1602 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4535,11 +4538,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4539 "util/configparser.c" +#line 4542 "util/configparser.c" break; - case 398: -#line 1611 "./util/configparser.y" + case 399: +#line 1612 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4548,41 +4551,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4552 "util/configparser.c" +#line 4555 "util/configparser.c" break; - case 399: -#line 1621 "./util/configparser.y" + case 400: +#line 1622 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4562 "util/configparser.c" +#line 4565 "util/configparser.c" break; - case 400: -#line 1628 "./util/configparser.y" + case 401: +#line 1629 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4572 "util/configparser.c" +#line 4575 "util/configparser.c" break; - case 401: -#line 1635 "./util/configparser.y" + case 402: +#line 1636 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4582 "util/configparser.c" +#line 4585 "util/configparser.c" break; - case 402: -#line 1642 "./util/configparser.y" + case 403: +#line 1643 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4590,11 +4593,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4594 "util/configparser.c" +#line 4597 "util/configparser.c" break; - case 403: -#line 1651 "./util/configparser.y" + case 404: +#line 1652 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4602,11 +4605,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4606 "util/configparser.c" +#line 4609 "util/configparser.c" break; - case 404: -#line 1660 "./util/configparser.y" + case 405: +#line 1661 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4614,11 +4617,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4618 "util/configparser.c" +#line 4621 "util/configparser.c" break; - case 405: -#line 1669 "./util/configparser.y" + case 406: +#line 1670 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4626,21 +4629,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4630 "util/configparser.c" +#line 4633 "util/configparser.c" break; - case 406: -#line 1678 "./util/configparser.y" + case 407: +#line 1679 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4640 "util/configparser.c" +#line 4643 "util/configparser.c" break; - case 407: -#line 1685 "./util/configparser.y" + case 408: +#line 1686 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4649,11 +4652,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4653 "util/configparser.c" +#line 4656 "util/configparser.c" break; - case 408: -#line 1695 "./util/configparser.y" + case 409: +#line 1696 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -4672,21 +4675,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4676 "util/configparser.c" +#line 4679 "util/configparser.c" break; - case 409: -#line 1715 "./util/configparser.y" + case 410: +#line 1716 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 4686 "util/configparser.c" +#line 4689 "util/configparser.c" break; - case 410: -#line 1722 "./util/configparser.y" + case 411: +#line 1723 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4703,11 +4706,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4707 "util/configparser.c" +#line 4710 "util/configparser.c" break; - case 411: -#line 1740 "./util/configparser.y" + case 412: +#line 1741 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4719,11 +4722,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4723 "util/configparser.c" +#line 4726 "util/configparser.c" break; - case 412: -#line 1753 "./util/configparser.y" + case 413: +#line 1754 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4735,11 +4738,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4739 "util/configparser.c" +#line 4742 "util/configparser.c" break; - case 413: -#line 1766 "./util/configparser.y" + case 414: +#line 1767 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4747,11 +4750,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4751 "util/configparser.c" +#line 4754 "util/configparser.c" break; - case 414: -#line 1775 "./util/configparser.y" + case 415: +#line 1776 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4759,11 +4762,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4763 "util/configparser.c" +#line 4766 "util/configparser.c" break; - case 415: -#line 1784 "./util/configparser.y" + case 416: +#line 1785 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4771,11 +4774,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4775 "util/configparser.c" +#line 4778 "util/configparser.c" break; - case 416: -#line 1793 "./util/configparser.y" + case 417: +#line 1794 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4783,11 +4786,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4787 "util/configparser.c" +#line 4790 "util/configparser.c" break; - case 417: -#line 1802 "./util/configparser.y" + case 418: +#line 1803 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4796,11 +4799,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4800 "util/configparser.c" +#line 4803 "util/configparser.c" break; - case 418: -#line 1812 "./util/configparser.y" + case 419: +#line 1813 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4809,11 +4812,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4813 "util/configparser.c" +#line 4816 "util/configparser.c" break; - case 419: -#line 1822 "./util/configparser.y" + case 420: +#line 1823 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4823,11 +4826,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4827 "util/configparser.c" +#line 4830 "util/configparser.c" break; - case 420: -#line 1833 "./util/configparser.y" + case 421: +#line 1834 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4835,11 +4838,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4839 "util/configparser.c" +#line 4842 "util/configparser.c" break; - case 421: -#line 1842 "./util/configparser.y" + case 422: +#line 1843 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4847,11 +4850,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4851 "util/configparser.c" +#line 4854 "util/configparser.c" break; - case 422: -#line 1851 "./util/configparser.y" + case 423: +#line 1852 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4859,11 +4862,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4863 "util/configparser.c" +#line 4866 "util/configparser.c" break; - case 423: -#line 1860 "./util/configparser.y" + case 424: +#line 1861 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4871,11 +4874,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4875 "util/configparser.c" +#line 4878 "util/configparser.c" break; - case 424: -#line 1869 "./util/configparser.y" + case 425: +#line 1870 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4883,11 +4886,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4887 "util/configparser.c" +#line 4890 "util/configparser.c" break; - case 425: -#line 1878 "./util/configparser.y" + case 426: +#line 1879 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4895,11 +4898,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4899 "util/configparser.c" +#line 4902 "util/configparser.c" break; - case 426: -#line 1887 "./util/configparser.y" + case 427: +#line 1888 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4911,11 +4914,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4915 "util/configparser.c" +#line 4918 "util/configparser.c" break; - case 427: -#line 1900 "./util/configparser.y" + case 428: +#line 1901 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4927,11 +4930,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4931 "util/configparser.c" +#line 4934 "util/configparser.c" break; - case 428: -#line 1913 "./util/configparser.y" + case 429: +#line 1914 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4939,21 +4942,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4943 "util/configparser.c" +#line 4946 "util/configparser.c" break; - case 429: -#line 1922 "./util/configparser.y" + case 430: +#line 1923 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 4953 "util/configparser.c" +#line 4956 "util/configparser.c" break; - case 430: -#line 1929 "./util/configparser.y" + case 431: +#line 1930 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4961,11 +4964,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4965 "util/configparser.c" +#line 4968 "util/configparser.c" break; - case 431: -#line 1938 "./util/configparser.y" + case 432: +#line 1939 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4973,11 +4976,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4977 "util/configparser.c" +#line 4980 "util/configparser.c" break; - case 432: -#line 1947 "./util/configparser.y" + case 433: +#line 1948 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4985,11 +4988,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4989 "util/configparser.c" +#line 4992 "util/configparser.c" break; - case 433: -#line 1956 "./util/configparser.y" + case 434: +#line 1957 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4998,22 +5001,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5002 "util/configparser.c" +#line 5005 "util/configparser.c" break; - case 434: -#line 1965 "./util/configparser.y" + case 435: +#line 1966 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5013 "util/configparser.c" +#line 5016 "util/configparser.c" break; - case 435: -#line 1973 "./util/configparser.y" + case 436: +#line 1974 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5025,22 +5028,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5029 "util/configparser.c" +#line 5032 "util/configparser.c" break; - case 436: -#line 1986 "./util/configparser.y" + case 437: +#line 1987 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5040 "util/configparser.c" +#line 5043 "util/configparser.c" break; - case 437: -#line 1994 "./util/configparser.y" + case 438: +#line 1995 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5080,21 +5083,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5084 "util/configparser.c" +#line 5087 "util/configparser.c" break; - case 438: -#line 2035 "./util/configparser.y" + case 439: +#line 2036 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5094 "util/configparser.c" +#line 5097 "util/configparser.c" break; - case 439: -#line 2042 "./util/configparser.y" + case 440: +#line 2043 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5108,11 +5111,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5112 "util/configparser.c" +#line 5115 "util/configparser.c" break; - case 440: -#line 2057 "./util/configparser.y" + case 441: +#line 2058 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5121,11 +5124,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5125 "util/configparser.c" +#line 5128 "util/configparser.c" break; - case 441: -#line 2067 "./util/configparser.y" + case 442: +#line 2068 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5134,41 +5137,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5138 "util/configparser.c" +#line 5141 "util/configparser.c" break; - case 442: -#line 2077 "./util/configparser.y" + case 443: +#line 2078 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5148 "util/configparser.c" +#line 5151 "util/configparser.c" break; - case 443: -#line 2084 "./util/configparser.y" + case 444: +#line 2085 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5158 "util/configparser.c" +#line 5161 "util/configparser.c" break; - case 444: -#line 2091 "./util/configparser.y" + case 445: +#line 2092 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5168 "util/configparser.c" +#line 5171 "util/configparser.c" break; - case 445: -#line 2098 "./util/configparser.y" + case 446: +#line 2099 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5176,22 +5179,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5180 "util/configparser.c" +#line 5183 "util/configparser.c" break; - case 446: -#line 2107 "./util/configparser.y" + case 447: +#line 2108 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5191 "util/configparser.c" +#line 5194 "util/configparser.c" break; - case 447: -#line 2115 "./util/configparser.y" + case 448: +#line 2116 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5204,11 +5207,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5208 "util/configparser.c" +#line 5211 "util/configparser.c" break; - case 448: -#line 2129 "./util/configparser.y" + case 449: +#line 2130 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5228,11 +5231,11 @@ yyreduce: } } } -#line 5232 "util/configparser.c" +#line 5235 "util/configparser.c" break; - case 449: -#line 2150 "./util/configparser.y" + case 450: +#line 2151 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5252,11 +5255,11 @@ yyreduce: } } } -#line 5256 "util/configparser.c" +#line 5259 "util/configparser.c" break; - case 450: -#line 2171 "./util/configparser.y" + case 451: +#line 2172 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5267,11 +5270,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5271 "util/configparser.c" +#line 5274 "util/configparser.c" break; - case 451: -#line 2183 "./util/configparser.y" + case 452: +#line 2184 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5282,11 +5285,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5286 "util/configparser.c" +#line 5289 "util/configparser.c" break; - case 452: -#line 2195 "./util/configparser.y" + case 453: +#line 2196 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5297,11 +5300,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5301 "util/configparser.c" +#line 5304 "util/configparser.c" break; - case 453: -#line 2207 "./util/configparser.y" + case 454: +#line 2208 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5309,11 +5312,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5313 "util/configparser.c" +#line 5316 "util/configparser.c" break; - case 454: -#line 2216 "./util/configparser.y" + case 455: +#line 2217 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5333,11 +5336,11 @@ yyreduce: } } } -#line 5337 "util/configparser.c" +#line 5340 "util/configparser.c" break; - case 455: -#line 2237 "./util/configparser.y" + case 456: +#line 2238 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5345,11 +5348,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5349 "util/configparser.c" +#line 5352 "util/configparser.c" break; - case 456: -#line 2247 "./util/configparser.y" + case 457: +#line 2248 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5357,33 +5360,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5361 "util/configparser.c" +#line 5364 "util/configparser.c" break; - case 457: -#line 2256 "./util/configparser.y" + case 458: +#line 2257 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5372 "util/configparser.c" +#line 5375 "util/configparser.c" break; - case 458: -#line 2264 "./util/configparser.y" + case 459: +#line 2265 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5383 "util/configparser.c" +#line 5386 "util/configparser.c" break; - case 459: -#line 2272 "./util/configparser.y" + case 460: +#line 2273 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5395,11 +5398,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5399 "util/configparser.c" +#line 5402 "util/configparser.c" break; - case 460: -#line 2285 "./util/configparser.y" + case 461: +#line 2286 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5411,11 +5414,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5415 "util/configparser.c" +#line 5418 "util/configparser.c" break; - case 461: -#line 2298 "./util/configparser.y" + case 462: +#line 2299 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -5429,11 +5432,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5433 "util/configparser.c" +#line 5436 "util/configparser.c" break; - case 462: -#line 2313 "./util/configparser.y" + case 463: +#line 2314 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -5447,11 +5450,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5451 "util/configparser.c" +#line 5454 "util/configparser.c" break; - case 463: -#line 2328 "./util/configparser.y" + case 464: +#line 2329 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5459,11 +5462,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5463 "util/configparser.c" +#line 5466 "util/configparser.c" break; - case 464: -#line 2337 "./util/configparser.y" + case 465: +#line 2338 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5471,20 +5474,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5475 "util/configparser.c" +#line 5478 "util/configparser.c" break; - case 465: -#line 2346 "./util/configparser.y" + case 466: +#line 2347 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5484 "util/configparser.c" +#line 5487 "util/configparser.c" break; - case 466: -#line 2352 "./util/configparser.y" + case 467: +#line 2353 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5492,11 +5495,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5496 "util/configparser.c" +#line 5499 "util/configparser.c" break; - case 467: -#line 2361 "./util/configparser.y" + case 468: +#line 2362 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5504,11 +5507,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5508 "util/configparser.c" +#line 5511 "util/configparser.c" break; - case 468: -#line 2370 "./util/configparser.y" + case 469: +#line 2371 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5517,11 +5520,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5521 "util/configparser.c" +#line 5524 "util/configparser.c" break; - case 469: -#line 2380 "./util/configparser.y" + case 470: +#line 2381 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5530,11 +5533,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5534 "util/configparser.c" +#line 5537 "util/configparser.c" break; - case 470: -#line 2390 "./util/configparser.y" + case 471: +#line 2391 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5546,11 +5549,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5550 "util/configparser.c" +#line 5553 "util/configparser.c" break; - case 471: -#line 2403 "./util/configparser.y" + case 472: +#line 2404 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5562,11 +5565,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5566 "util/configparser.c" +#line 5569 "util/configparser.c" break; - case 472: -#line 2416 "./util/configparser.y" + case 473: +#line 2417 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5577,11 +5580,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5581 "util/configparser.c" +#line 5584 "util/configparser.c" break; - case 473: -#line 2428 "./util/configparser.y" + case 474: +#line 2429 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5594,11 +5597,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5598 "util/configparser.c" +#line 5601 "util/configparser.c" break; - case 474: -#line 2442 "./util/configparser.y" + case 475: +#line 2443 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5609,11 +5612,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5613 "util/configparser.c" +#line 5616 "util/configparser.c" break; - case 475: -#line 2454 "./util/configparser.y" + case 476: +#line 2455 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5626,11 +5629,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5630 "util/configparser.c" +#line 5633 "util/configparser.c" break; - case 476: -#line 2468 "./util/configparser.y" + case 477: +#line 2469 "./util/configparser.y" { int tag_data; OUTYY(("P(server_edns_client_tag:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5644,11 +5647,25 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-tag"); } -#line 5648 "util/configparser.c" +#line 5651 "util/configparser.c" break; - case 477: -#line 2483 "./util/configparser.y" + case 478: +#line 2484 "./util/configparser.y" + { + OUTYY(("P(edns_client_tag_opcode:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("option code expected"); + else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->edns_client_tag_opcode = atoi((yyvsp[0].str)); + + } +#line 5665 "util/configparser.c" + break; + + case 479: +#line 2495 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5657,31 +5674,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5661 "util/configparser.c" +#line 5678 "util/configparser.c" break; - case 478: -#line 2493 "./util/configparser.y" + case 480: +#line 2505 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5671 "util/configparser.c" +#line 5688 "util/configparser.c" break; - case 479: -#line 2500 "./util/configparser.y" + case 481: +#line 2512 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5681 "util/configparser.c" +#line 5698 "util/configparser.c" break; - case 480: -#line 2507 "./util/configparser.y" + case 482: +#line 2519 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5689,11 +5706,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5693 "util/configparser.c" +#line 5710 "util/configparser.c" break; - case 481: -#line 2516 "./util/configparser.y" + case 483: +#line 2528 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5701,11 +5718,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5705 "util/configparser.c" +#line 5722 "util/configparser.c" break; - case 482: -#line 2525 "./util/configparser.y" + case 484: +#line 2537 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5714,11 +5731,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5718 "util/configparser.c" +#line 5735 "util/configparser.c" break; - case 483: -#line 2535 "./util/configparser.y" + case 485: +#line 2547 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5727,11 +5744,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5731 "util/configparser.c" +#line 5748 "util/configparser.c" break; - case 484: -#line 2545 "./util/configparser.y" + case 486: +#line 2557 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5740,31 +5757,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5744 "util/configparser.c" +#line 5761 "util/configparser.c" break; - case 485: -#line 2555 "./util/configparser.y" + case 487: +#line 2567 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5754 "util/configparser.c" +#line 5771 "util/configparser.c" break; - case 486: -#line 2562 "./util/configparser.y" + case 488: +#line 2574 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5764 "util/configparser.c" +#line 5781 "util/configparser.c" break; - case 487: -#line 2569 "./util/configparser.y" + case 489: +#line 2581 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5772,11 +5789,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5776 "util/configparser.c" +#line 5793 "util/configparser.c" break; - case 488: -#line 2578 "./util/configparser.y" + case 490: +#line 2590 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5784,11 +5801,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5788 "util/configparser.c" +#line 5805 "util/configparser.c" break; - case 489: -#line 2587 "./util/configparser.y" + case 491: +#line 2599 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5797,11 +5814,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5801 "util/configparser.c" +#line 5818 "util/configparser.c" break; - case 490: -#line 2597 "./util/configparser.y" + case 492: +#line 2609 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5810,52 +5827,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5814 "util/configparser.c" +#line 5831 "util/configparser.c" break; - case 491: -#line 2607 "./util/configparser.y" + case 493: +#line 2619 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 5824 "util/configparser.c" +#line 5841 "util/configparser.c" break; - case 492: -#line 2614 "./util/configparser.y" + case 494: +#line 2626 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5834 "util/configparser.c" +#line 5851 "util/configparser.c" break; - case 493: -#line 2621 "./util/configparser.y" + case 495: +#line 2633 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5844 "util/configparser.c" +#line 5861 "util/configparser.c" break; - case 494: -#line 2628 "./util/configparser.y" + case 496: +#line 2640 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5855 "util/configparser.c" +#line 5872 "util/configparser.c" break; - case 495: -#line 2636 "./util/configparser.y" + case 497: +#line 2648 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5864,11 +5881,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5868 "util/configparser.c" +#line 5885 "util/configparser.c" break; - case 496: -#line 2646 "./util/configparser.y" + case 498: +#line 2658 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5877,11 +5894,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5881 "util/configparser.c" +#line 5898 "util/configparser.c" break; - case 497: -#line 2656 "./util/configparser.y" + case 499: +#line 2668 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5890,11 +5907,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5894 "util/configparser.c" +#line 5911 "util/configparser.c" break; - case 498: -#line 2666 "./util/configparser.y" + case 500: +#line 2678 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5903,11 +5920,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5907 "util/configparser.c" +#line 5924 "util/configparser.c" break; - case 499: -#line 2676 "./util/configparser.y" + case 501: +#line 2688 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5945,11 +5962,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5949 "util/configparser.c" +#line 5966 "util/configparser.c" break; - case 500: -#line 2715 "./util/configparser.y" + case 502: +#line 2727 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5958,33 +5975,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5962 "util/configparser.c" +#line 5979 "util/configparser.c" break; - case 501: -#line 2725 "./util/configparser.y" + case 503: +#line 2737 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5973 "util/configparser.c" +#line 5990 "util/configparser.c" break; - case 502: -#line 2733 "./util/configparser.y" + case 504: +#line 2745 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 5984 "util/configparser.c" +#line 6001 "util/configparser.c" break; - case 503: -#line 2741 "./util/configparser.y" + case 505: +#line 2753 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5998,11 +6015,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6002 "util/configparser.c" +#line 6019 "util/configparser.c" break; - case 504: -#line 2756 "./util/configparser.y" + case 506: +#line 2768 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6010,19 +6027,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6014 "util/configparser.c" +#line 6031 "util/configparser.c" break; - case 505: -#line 2765 "./util/configparser.y" + case 507: +#line 2777 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6022 "util/configparser.c" +#line 6039 "util/configparser.c" break; - case 516: -#line 2776 "./util/configparser.y" + case 518: +#line 2788 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6031,11 +6048,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6035 "util/configparser.c" +#line 6052 "util/configparser.c" break; - case 517: -#line 2786 "./util/configparser.y" + case 519: +#line 2798 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6043,79 +6060,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6047 "util/configparser.c" +#line 6064 "util/configparser.c" break; - case 518: -#line 2795 "./util/configparser.y" + case 520: +#line 2807 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6057 "util/configparser.c" +#line 6074 "util/configparser.c" break; - case 519: -#line 2802 "./util/configparser.y" + case 521: +#line 2814 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6067 "util/configparser.c" +#line 6084 "util/configparser.c" break; - case 520: -#line 2809 "./util/configparser.y" + case 522: +#line 2821 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6077 "util/configparser.c" +#line 6094 "util/configparser.c" break; - case 521: -#line 2816 "./util/configparser.y" + case 523: +#line 2828 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6087 "util/configparser.c" +#line 6104 "util/configparser.c" break; - case 522: -#line 2823 "./util/configparser.y" + case 524: +#line 2835 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6097 "util/configparser.c" +#line 6114 "util/configparser.c" break; - case 523: -#line 2830 "./util/configparser.y" + case 525: +#line 2842 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6107 "util/configparser.c" +#line 6124 "util/configparser.c" break; - case 524: -#line 2837 "./util/configparser.y" + case 526: +#line 2849 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6115 "util/configparser.c" +#line 6132 "util/configparser.c" break; - case 546: -#line 2857 "./util/configparser.y" + case 548: +#line 2869 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6123,11 +6140,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6127 "util/configparser.c" +#line 6144 "util/configparser.c" break; - case 547: -#line 2866 "./util/configparser.y" + case 549: +#line 2878 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6136,31 +6153,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6140 "util/configparser.c" +#line 6157 "util/configparser.c" break; - case 548: -#line 2876 "./util/configparser.y" + case 550: +#line 2888 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6150 "util/configparser.c" +#line 6167 "util/configparser.c" break; - case 549: -#line 2883 "./util/configparser.y" + case 551: +#line 2895 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6160 "util/configparser.c" +#line 6177 "util/configparser.c" break; - case 550: -#line 2890 "./util/configparser.y" + case 552: +#line 2902 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6168,51 +6185,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6172 "util/configparser.c" +#line 6189 "util/configparser.c" break; - case 551: -#line 2899 "./util/configparser.y" + case 553: +#line 2911 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6182 "util/configparser.c" +#line 6199 "util/configparser.c" break; - case 552: -#line 2906 "./util/configparser.y" + case 554: +#line 2918 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6192 "util/configparser.c" +#line 6209 "util/configparser.c" break; - case 553: -#line 2913 "./util/configparser.y" + case 555: +#line 2925 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6202 "util/configparser.c" +#line 6219 "util/configparser.c" break; - case 554: -#line 2920 "./util/configparser.y" + case 556: +#line 2932 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6212 "util/configparser.c" +#line 6229 "util/configparser.c" break; - case 555: -#line 2927 "./util/configparser.y" + case 557: +#line 2939 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6220,11 +6237,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6224 "util/configparser.c" +#line 6241 "util/configparser.c" break; - case 556: -#line 2936 "./util/configparser.y" + case 558: +#line 2948 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6232,31 +6249,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6236 "util/configparser.c" +#line 6253 "util/configparser.c" break; - case 557: -#line 2945 "./util/configparser.y" + case 559: +#line 2957 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 6246 "util/configparser.c" +#line 6263 "util/configparser.c" break; - case 558: -#line 2952 "./util/configparser.y" + case 560: +#line 2964 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 6256 "util/configparser.c" +#line 6273 "util/configparser.c" break; - case 559: -#line 2959 "./util/configparser.y" + case 561: +#line 2971 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6265,11 +6282,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6269 "util/configparser.c" +#line 6286 "util/configparser.c" break; - case 560: -#line 2969 "./util/configparser.y" + case 562: +#line 2981 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6278,11 +6295,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6282 "util/configparser.c" +#line 6299 "util/configparser.c" break; - case 561: -#line 2979 "./util/configparser.y" + case 563: +#line 2991 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6291,11 +6308,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6295 "util/configparser.c" +#line 6312 "util/configparser.c" break; - case 562: -#line 2989 "./util/configparser.y" + case 564: +#line 3001 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6304,11 +6321,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6308 "util/configparser.c" +#line 6325 "util/configparser.c" break; - case 563: -#line 2999 "./util/configparser.y" + case 565: +#line 3011 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6317,11 +6334,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6321 "util/configparser.c" +#line 6338 "util/configparser.c" break; - case 564: -#line 3009 "./util/configparser.y" + case 566: +#line 3021 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6330,47 +6347,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6334 "util/configparser.c" +#line 6351 "util/configparser.c" break; - case 565: -#line 3019 "./util/configparser.y" + case 567: +#line 3031 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6342 "util/configparser.c" +#line 6359 "util/configparser.c" break; - case 569: -#line 3028 "./util/configparser.y" + case 571: +#line 3040 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6352 "util/configparser.c" +#line 6369 "util/configparser.c" break; - case 570: -#line 3034 "./util/configparser.y" + case 572: +#line 3046 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6360 "util/configparser.c" +#line 6377 "util/configparser.c" break; - case 574: -#line 3043 "./util/configparser.y" + case 576: +#line 3055 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6370 "util/configparser.c" +#line 6387 "util/configparser.c" break; - case 575: -#line 3049 "./util/configparser.y" + case 577: +#line 3061 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6379,21 +6396,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6383 "util/configparser.c" +#line 6400 "util/configparser.c" break; - case 576: -#line 3059 "./util/configparser.y" + case 578: +#line 3071 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 6393 "util/configparser.c" +#line 6410 "util/configparser.c" break; - case 577: -#line 3066 "./util/configparser.y" + case 579: +#line 3078 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6401,30 +6418,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6405 "util/configparser.c" +#line 6422 "util/configparser.c" break; - case 578: -#line 3075 "./util/configparser.y" + case 580: +#line 3087 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6416 "util/configparser.c" +#line 6433 "util/configparser.c" break; - case 579: -#line 3083 "./util/configparser.y" + case 581: +#line 3095 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6424 "util/configparser.c" +#line 6441 "util/configparser.c" break; - case 592: -#line 3099 "./util/configparser.y" + case 594: +#line 3111 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6432,11 +6449,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6436 "util/configparser.c" +#line 6453 "util/configparser.c" break; - case 593: -#line 3109 "./util/configparser.y" + case 595: +#line 3121 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6444,21 +6461,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6448 "util/configparser.c" +#line 6465 "util/configparser.c" break; - case 594: -#line 3118 "./util/configparser.y" + case 596: +#line 3130 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 6458 "util/configparser.c" +#line 6475 "util/configparser.c" break; - case 595: -#line 3125 "./util/configparser.y" + case 597: +#line 3137 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -6466,21 +6483,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 6470 "util/configparser.c" +#line 6487 "util/configparser.c" break; - case 596: -#line 3134 "./util/configparser.y" + case 598: +#line 3146 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 6480 "util/configparser.c" +#line 6497 "util/configparser.c" break; - case 597: -#line 3141 "./util/configparser.y" + case 599: +#line 3153 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -6488,22 +6505,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 6492 "util/configparser.c" +#line 6509 "util/configparser.c" break; - case 598: -#line 3150 "./util/configparser.y" + case 600: +#line 3162 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6503 "util/configparser.c" +#line 6520 "util/configparser.c" break; - case 599: -#line 3158 "./util/configparser.y" + case 601: +#line 3170 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6515,22 +6532,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6519 "util/configparser.c" +#line 6536 "util/configparser.c" break; - case 600: -#line 3171 "./util/configparser.y" + case 602: +#line 3183 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6530 "util/configparser.c" +#line 6547 "util/configparser.c" break; - case 601: -#line 3179 "./util/configparser.y" + case 603: +#line 3191 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6542,19 +6559,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6546 "util/configparser.c" +#line 6563 "util/configparser.c" break; - case 602: -#line 3192 "./util/configparser.y" + case 604: +#line 3204 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6554 "util/configparser.c" +#line 6571 "util/configparser.c" break; - case 611: -#line 3203 "./util/configparser.y" + case 613: +#line 3215 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6565,11 +6582,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6569 "util/configparser.c" +#line 6586 "util/configparser.c" break; - case 612: -#line 3215 "./util/configparser.y" + case 614: +#line 3227 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6580,11 +6597,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6584 "util/configparser.c" +#line 6601 "util/configparser.c" break; - case 613: -#line 3227 "./util/configparser.y" + case 615: +#line 3239 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6595,11 +6612,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6599 "util/configparser.c" +#line 6616 "util/configparser.c" break; - case 614: -#line 3239 "./util/configparser.y" + case 616: +#line 3251 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6613,11 +6630,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6617 "util/configparser.c" +#line 6634 "util/configparser.c" break; - case 615: -#line 3254 "./util/configparser.y" + case 617: +#line 3266 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6629,11 +6646,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6633 "util/configparser.c" +#line 6650 "util/configparser.c" break; - case 616: -#line 3267 "./util/configparser.y" + case 618: +#line 3279 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6645,11 +6662,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6649 "util/configparser.c" +#line 6666 "util/configparser.c" break; - case 617: -#line 3280 "./util/configparser.y" + case 619: +#line 3292 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6659,19 +6676,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6663 "util/configparser.c" +#line 6680 "util/configparser.c" break; - case 618: -#line 3291 "./util/configparser.y" + case 620: +#line 3303 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6671 "util/configparser.c" +#line 6688 "util/configparser.c" break; - case 623: -#line 3300 "./util/configparser.y" + case 625: +#line 3312 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6685,11 +6702,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6689 "util/configparser.c" +#line 6706 "util/configparser.c" break; - case 624: -#line 3315 "./util/configparser.y" + case 626: +#line 3327 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6703,11 +6720,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6707 "util/configparser.c" +#line 6724 "util/configparser.c" break; -#line 6711 "util/configparser.c" +#line 6728 "util/configparser.c" default: break; } @@ -6939,7 +6956,7 @@ yyreturn: #endif return yyresult; } -#line 3329 "./util/configparser.y" +#line 3341 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index eb576e91d..3a5ea579d 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -344,7 +344,8 @@ extern int yydebug; VAR_RPZ_LOG_NAME = 550, VAR_DYNLIB = 551, VAR_DYNLIB_FILE = 552, - VAR_EDNS_CLIENT_TAG = 553 + VAR_EDNS_CLIENT_TAG = 553, + VAR_EDNS_CLIENT_TAG_OPCODE = 554 }; #endif /* Tokens. */ @@ -644,6 +645,7 @@ extern int yydebug; #define VAR_DYNLIB 551 #define VAR_DYNLIB_FILE 552 #define VAR_EDNS_CLIENT_TAG 553 +#define VAR_EDNS_CLIENT_TAG_OPCODE 554 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -653,7 +655,7 @@ union YYSTYPE char* str; -#line 657 "util/configparser.h" +#line 659 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 4419bbc7b..43a886f24 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -178,7 +178,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_IPSET VAR_IPSET_NAME_V4 VAR_IPSET_NAME_V6 %token VAR_TLS_SESSION_TICKET_KEYS VAR_RPZ VAR_TAGS VAR_RPZ_ACTION_OVERRIDE %token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME -%token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_TAG +%token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_TAG VAR_EDNS_CLIENT_TAG_OPCODE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -291,7 +291,8 @@ content_server: server_num_threads | server_verbosity | server_port | server_unknown_server_time_limit | server_log_tag_queryreply | server_stream_wait_size | server_tls_ciphers | server_tls_ciphersuites | server_tls_session_ticket_keys | - server_tls_use_sni | server_edns_client_tag + server_tls_use_sni | server_edns_client_tag | + server_edns_client_tag_opcode ; stubstart: VAR_STUB_ZONE { @@ -2479,6 +2480,17 @@ server_edns_client_tag: VAR_EDNS_CLIENT_TAG STRING_ARG STRING_ARG "edns-client-tag"); } ; +server_edns_client_tag_opcode: VAR_EDNS_CLIENT_TAG_OPCODE STRING_ARG + { + OUTYY(("P(edns_client_tag_opcode:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("option code expected"); + else if(atoi($2) > 65535 || atoi($2) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->edns_client_tag_opcode = atoi($2); + + } + ; stub_name: VAR_NAME STRING_ARG { OUTYY(("P(name:%s)\n", $2)); diff --git a/util/edns.c b/util/edns.c index db33212c0..c83a4a545 100644 --- a/util/edns.c +++ b/util/edns.c @@ -112,6 +112,7 @@ int edns_tags_apply_cfg(struct edns_tags* edns_tags, return 0; } } + edns_tags->client_tag_opcode = config->edns_client_tag_opcode; addr_tree_init_parents(&edns_tags->client_tags); return 1; diff --git a/util/edns.h b/util/edns.h index c92b1ba5e..cf9f8707e 100644 --- a/util/edns.h +++ b/util/edns.h @@ -56,6 +56,8 @@ struct edns_tags { /** Tree of EDNS client tags to use in upstream queries, per address * prefix. Contains nodes of type edns_tag_addr. */ rbtree_type client_tags; + /** EDNS opcode to use for client tags */ + uint16_t client_tag_opcode; /** region to allocate tree nodes in */ struct regional* region; };