From 16029281a87bc6f79c8133a2eeecb18743bfdf91 Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Thu, 23 Jul 2020 17:17:44 +0200 Subject: [PATCH 1/9] Start of EDNS client tags implementation. --- daemon/daemon.c | 15 +++++++++++ services/outside_network.c | 12 +++++++++ sldns/rrdef.h | 3 ++- util/edns.c | 38 ++++++++++++++++++++++++++ util/edns.h | 55 ++++++++++++++++++++++++++++++++++++++ util/module.h | 1 + 6 files changed, 123 insertions(+), 1 deletion(-) diff --git a/daemon/daemon.c b/daemon/daemon.c index 5d4279259..34f7bfda1 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -77,6 +77,7 @@ #include "util/storage/lookup3.h" #include "util/storage/slabhash.h" #include "util/tcp_conn_limit.h" +#include "util/edns.h" #include "services/listen_dnsport.h" #include "services/cache/rrset.h" #include "services/cache/infra.h" @@ -290,6 +291,15 @@ daemon_init(void) free(daemon); return NULL; } + if(!(daemon->env->edns_tags = edns_tags_create())) { + auth_zones_delete(daemon->env->auth_zones); + acl_list_delete(daemon->acl); + tcl_list_delete(daemon->tcl); + edns_known_options_delete(daemon->env); + free(daemon->env); + free(daemon); + return NULL; + } return daemon; } @@ -619,6 +629,10 @@ daemon_fork(struct daemon* daemon) &daemon->use_rpz)) fatal_exit("auth_zones could not be setup"); + /* Set-up EDNS tags */ + if(!edns_tags_apply_cfg(daemon->env->edns_tags, daemon->cfg)) + fatal_exit("Could not set up EDNS tags"); + /* setup modules */ daemon_setup_modules(daemon); @@ -750,6 +764,7 @@ daemon_delete(struct daemon* daemon) rrset_cache_delete(daemon->env->rrset_cache); infra_delete(daemon->env->infra_cache); edns_known_options_delete(daemon->env); + edns_tags_delete(daemon->env->edns_tags); auth_zones_delete(daemon->env->auth_zones); } ub_randfree(daemon->rand); diff --git a/services/outside_network.c b/services/outside_network.c index 44e01d745..b7ac5ef60 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -58,6 +58,7 @@ #include "util/net_help.h" #include "util/random.h" #include "util/fptr_wlist.h" +#include "util/edns.h" #include "sldns/sbuffer.h" #include "dnstap/dnstap.h" #ifdef HAVE_OPENSSL_SSL_H @@ -2111,9 +2112,20 @@ outnet_serviced_query(struct outside_network* outnet, { struct serviced_query* sq; struct service_callback* cb; + struct edns_tag_addr* client_tag_addr; + if(!inplace_cb_query_call(env, qinfo, flags, addr, addrlen, zone, zonelen, qstate, qstate->region)) return NULL; + + if((client_tag_addr = edns_tag_addr_lookup(env->edns_tags->client_tags, + 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, + (uint8_t*)&client_tag, qstate->region); + } + serviced_gen_query(buff, qinfo->qname, qinfo->qname_len, qinfo->qtype, qinfo->qclass, flags); sq = lookup_serviced(outnet, buff, dnssec, addr, addrlen, diff --git a/sldns/rrdef.h b/sldns/rrdef.h index 4e7fef574..e084f354a 100644 --- a/sldns/rrdef.h +++ b/sldns/rrdef.h @@ -426,7 +426,8 @@ enum sldns_enum_edns_option LDNS_EDNS_N3U = 7, /* RFC6975 */ LDNS_EDNS_CLIENT_SUBNET = 8, /* RFC7871 */ LDNS_EDNS_KEEPALIVE = 11, /* draft-ietf-dnsop-edns-tcp-keepalive*/ - LDNS_EDNS_PADDING = 12 /* RFC7830 */ + LDNS_EDNS_PADDING = 12, /* RFC7830 */ + LDNS_EDNS_CLIENT_TAG = 16 /* draft-bellis-dnsop-edns-tags-01 */ }; typedef enum sldns_enum_edns_option sldns_edns_option; diff --git a/util/edns.c b/util/edns.c index d19952df0..0ab00cf7c 100644 --- a/util/edns.c +++ b/util/edns.c @@ -47,6 +47,44 @@ #include "util/data/msgparse.h" #include "util/data/msgreply.h" +struct edns_tags* edns_tags_create(void) +{ + struct edns_tags* edns_tags = calloc(1, sizeof(struct edns_tags)); + if(!edns_tags) + return NULL; + if(!(edns_tags->region = regional_create())) { + edns_tags_delete(edns_tags); + return NULL; + } + return edns_tags; +} + +void edns_tags_delete(struct edns_tags* edns_tags) +{ + if(!edns_tags) + return; + regional_destroy(edns_tags->region); + free(edns_tags); +} + +int edns_tags_apply_cfg(struct edns_tags* edns_tags, + struct config_file* config) +{ + regional_free_all(edns_tags->region); + addr_tree_init(&edns_tags->client_tags); + + /* TODO walk over config, create and insert node. */ + + return 1; +} + +struct edns_tag_addr* +edns_tag_addr_lookup(rbtree_type tree, struct sockaddr_storage* addr, + socklen_t addrlen) +{ + return (struct edns_tag_addr*)addr_tree_lookup(&tree, addr, addrlen); +} + static int edns_keepalive(struct edns_data* edns_out, struct edns_data* edns_in, struct comm_point* c, struct regional* region) { diff --git a/util/edns.h b/util/edns.h index a4ee7def6..310ba1cd2 100644 --- a/util/edns.h +++ b/util/edns.h @@ -42,11 +42,66 @@ #ifndef UTIL_EDNS_H #define UTIL_EDNS_H +#include "util/storage/dnstree.h" + struct edns_data; struct config_file; struct comm_point; struct regional; +/** + * Structure containing all EDNS tags. + */ +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; + /** region to allocate tree nodes in */ + struct regional* region; +}; + +/** + * EDNS tag. Node of rbtree, containing tag and prefix. + */ +struct edns_tag_addr { + /** node in address tree, used for tree lookups. Need to be the first + * member of this struct. */ + struct addr_tree_node node; + /** tag data, in host byte ordering */ + uint16_t tag_data; +}; + +/** + * Create structure to hold EDNS tags + * @return: newly created edns_tags, NULL on alloc failure. + */ +struct edns_tags* edns_tags_create(void); + +/** Delete ENDS tags structure + * @param edns_tags: struct to delete + */ +void edns_tags_delete(struct edns_tags* edns_tags); + +/** + * Add configured EDNS tags + * @param edns_tags: edns tags to apply config to + * @param config: struct containing EDNS tags configuration + * @return 0 on error + */ +int edns_tags_apply_cfg(struct edns_tags* edns_tags, + struct config_file* config); + +/** + * Find tag for address. + * @param tree: tree containing EDNS tags per address prefix. + * @param addr: address to use for tree lookup + * @param addrlen: length of address + * @return: matching tree node, NULL otherwise + */ +struct edns_tag_addr* +edns_tag_addr_lookup(rbtree_type tree, struct sockaddr_storage* addr, + socklen_t addrlen); + /** * Apply common EDNS options. * diff --git a/util/module.h b/util/module.h index fa89c647e..1d696ed0a 100644 --- a/util/module.h +++ b/util/module.h @@ -520,6 +520,7 @@ struct module_env { struct edns_known_option* edns_known_options; /* Number of known edns options */ size_t edns_known_options_num; + struct edns_tags* edns_tags; /* Make every mesh state unique, do not aggregate mesh states. */ int unique_mesh; From 64806a0d146aeef89aac2d8670bb0b796820c22d Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Fri, 24 Jul 2020 14:52:04 +0200 Subject: [PATCH 2/9] Add edns-client-tag configuration option --- doc/unbound.conf.5.in | 6 + util/config_file.c | 3 + util/config_file.h | 3 + util/configlexer.c | 4128 +++++++++++++++++++++-------------------- util/configlexer.lex | 1 + util/configparser.c | 2075 +++++++++++---------- util/configparser.h | 10 +- util/configparser.y | 19 +- util/edns.c | 1 + 9 files changed, 3156 insertions(+), 3090 deletions(-) diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index cd43f04ea..2b2f909da 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1516,6 +1516,12 @@ servers set. The default for fast\-server\-permil is 0. Set the number of servers that should be used for fast server selection. Only use the fastest specified number of servers with the fast\-server\-permil option, that turns this on or off. The default is to use the fastest 3 servers. +.TP 5 +.B edns\-client\-tag: \fI +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. .SS "Remote Control Options" In the .B remote\-control: diff --git a/util/config_file.c b/util/config_file.c index 0e9ee471b..0ab8614a3 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -315,6 +315,7 @@ config_create(void) cfg->qname_minimisation_strict = 0; cfg->shm_enable = 0; cfg->shm_key = 11777; + cfg->edns_client_tags = NULL; cfg->dnscrypt = 0; cfg->dnscrypt_port = 0; cfg->dnscrypt_provider = NULL; @@ -1130,6 +1131,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LS3(opt, "access-control-tag-action", acl_tag_actions) else O_LS3(opt, "access-control-tag-data", acl_tag_datas) else O_LS2(opt, "access-control-view", acl_view) + else O_LS2(opt, "edns_client_tags", edns_client_tags) #ifdef USE_IPSECMOD else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled) else O_YNO(opt, "ipsecmod-ignore-bogus", ipsecmod_ignore_bogus) @@ -1499,6 +1501,7 @@ config_delete(struct config_file* cfg) config_deldblstrlist(cfg->ratelimit_below_domain); config_delstrlist(cfg->python_script); config_delstrlist(cfg->dynlib_file); + config_deldblstrlist(cfg->edns_client_tags); #ifdef USE_IPSECMOD free(cfg->ipsecmod_hook); config_delstrlist(cfg->ipsecmod_whitelist); diff --git a/util/config_file.h b/util/config_file.h index 66e5025d0..e61257a39 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -553,6 +553,9 @@ struct config_file { /** SHM data - key for the shm */ int shm_key; + /** list of EDNS client tag entries, linked list */ + struct config_str2list* edns_client_tags; + /** DNSCrypt */ /** true to enable dnscrypt */ int dnscrypt; diff --git a/util/configlexer.c b/util/configlexer.c index cd505dfda..46022f656 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -1,7 +1,7 @@ #include "config.h" #include "util/configyyrename.h" -#line 2 "" +#line 3 "" #define YY_INT_ALIGNED short int @@ -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 323 -#define YY_END_OF_BUFFER 324 +#define YY_NUM_RULES 324 +#define YY_END_OF_BUFFER 325 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,353 +363,354 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3137] = +static const flex_int16_t yy_accept[3148] = { 0, - 1, 1, 297, 297, 301, 301, 305, 305, 309, 309, - 1, 1, 313, 313, 317, 317, 324, 321, 1, 295, - 295, 322, 2, 322, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 297, 298, 298, 299, - 322, 301, 302, 302, 303, 322, 308, 305, 306, 306, - 307, 322, 309, 310, 310, 311, 322, 320, 296, 2, - 300, 322, 320, 316, 313, 314, 314, 315, 322, 317, - 318, 318, 319, 322, 321, 0, 1, 2, 2, 2, - 2, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 1, 1, 298, 298, 302, 302, 306, 306, 310, 310, + 1, 1, 314, 314, 318, 318, 325, 322, 1, 296, + 296, 323, 2, 323, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 298, 299, 299, 300, + 323, 302, 303, 303, 304, 323, 309, 306, 307, 307, + 308, 323, 310, 311, 311, 312, 323, 321, 297, 2, + 301, 323, 321, 317, 314, 315, 315, 316, 323, 318, + 319, 319, 320, 323, 322, 0, 1, 2, 2, 2, + 2, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 297, 0, 301, 0, - 308, 0, 305, 309, 0, 320, 0, 2, 2, 320, - 316, 0, 313, 317, 0, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 298, 0, 302, 0, + 309, 0, 306, 310, 0, 321, 0, 2, 2, 321, + 317, 0, 314, 318, 0, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 320, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 321, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 115, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 123, - 321, 321, 321, 321, 321, 321, 321, 320, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 115, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 123, + 322, 322, 322, 322, 322, 322, 322, 321, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 99, 321, 321, 321, 321, 321, - 321, 8, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 116, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 99, 322, 322, 322, 322, 322, + 322, 8, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 116, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 128, 321, 320, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 290, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 128, 322, 321, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 290, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 320, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 57, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 321, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 57, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 227, 321, 14, 15, 321, 19, 18, 321, 321, 211, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 122, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 209, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 227, 322, 14, 15, 322, 19, 18, 322, 322, + 211, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 122, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 209, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 3, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 320, 321, 321, - 321, 321, 321, 321, 321, 284, 321, 321, 283, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 3, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 321, + 322, 322, 322, 322, 322, 322, 322, 284, 322, 322, + 283, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 304, 321, 321, - 321, 321, 321, 321, 321, 56, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 60, 321, 258, 321, 321, 321, 321, 321, - 321, 321, 321, 291, 292, 321, 321, 321, 321, 321, - 61, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 119, 321, 321, - 321, 321, 321, 321, 321, 321, 198, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 305, 322, 322, 322, 322, 322, 322, 322, 56, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 60, 322, 258, 322, 322, + 322, 322, 322, 322, 322, 322, 291, 292, 322, 322, + 322, 322, 322, 61, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 119, 322, 322, 322, 322, 322, 322, 322, 322, 198, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 21, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 147, 321, 321, 320, - 304, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 97, 321, 321, 321, 321, 321, 321, 321, 266, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 170, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 21, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 147, + 322, 322, 321, 305, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 97, 322, 322, 322, 322, 322, + 322, 322, 266, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 170, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 146, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 96, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 32, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 33, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 146, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 96, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 32, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 58, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 121, 320, 321, 321, 321, 321, - 321, 114, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 59, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 231, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 171, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 33, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 58, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 121, 321, + 322, 322, 322, 322, 322, 114, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 59, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 231, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 171, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 47, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 249, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 51, 321, 52, 321, 321, 321, 321, 321, 100, - 321, 101, 321, 321, 321, 321, 98, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 47, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 249, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 51, 322, 52, 322, + 322, 322, 322, 322, 100, 322, 101, 322, 322, 322, + 322, 98, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 7, 321, 320, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 220, 321, 321, 321, 321, - 149, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 232, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 48, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 7, 322, 321, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 220, 322, 322, 322, 322, 149, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 232, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 190, - 321, 189, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 16, 17, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 62, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 197, 321, 321, 321, 321, - 321, 321, 103, 321, 102, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 181, 321, 321, 321, + 322, 48, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 190, 322, 189, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 16, 17, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 62, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 197, 322, 322, 322, 322, 322, 322, 103, 322, + 102, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 129, 320, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 81, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 210, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 85, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 55, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 181, 322, 322, 322, 322, 322, 322, 322, + 322, 129, 321, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 81, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 210, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 85, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 55, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 184, 185, 321, 321, 321, 260, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 6, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 264, 321, 321, 321, 321, 321, 321, - 285, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 42, 321, 321, 321, 321, 44, 321, 321, 321, - 321, 321, 321, 321, 321, 45, 321, 321, 321, 321, - 321, 321, 321, 320, 321, 177, 321, 321, 321, 124, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 184, 185, 322, 322, 322, 260, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 6, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 264, 322, 322, 322, 322, 322, 322, 285, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 42, 322, + 322, 322, 322, 44, 322, 322, 322, 322, 322, 322, + 322, 322, 45, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 202, 321, 178, 321, 321, 321, 217, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 46, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 126, 108, 321, - 109, 321, 321, 321, 107, 321, 321, 321, 321, 321, - 321, 321, 321, 144, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 248, 321, 321, 321, - 321, 321, 321, 321, 321, 179, 321, 321, 321, 321, - 321, 182, 321, 188, 321, 321, 321, 321, 321, 216, + 321, 322, 177, 322, 322, 322, 124, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 202, 322, 178, + 322, 322, 322, 217, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 46, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 126, 108, 322, 109, 322, + 322, 322, 107, 322, 322, 322, 322, 322, 322, 322, + 322, 144, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 248, 322, 322, 322, 322, 322, + 322, 322, 322, 179, 322, 322, 322, 322, 322, 182, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 95, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 120, 321, 321, 321, 321, 321, 321, - 53, 321, 321, 321, 26, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 20, 321, 321, 321, 321, 321, - 321, 27, 36, 321, 154, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 320, 321, - 321, 321, 321, 321, 321, 70, 72, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 188, 322, 322, 322, 322, 322, 216, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 95, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 120, 322, 322, 322, 322, 322, 322, 53, 322, + 322, 322, 26, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 20, 322, 322, 322, 322, 322, 322, 27, + 36, 322, 154, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 321, 322, 322, 322, + 322, 322, 322, 70, 72, 322, 322, 322, 322, 322, - 268, 321, 321, 321, 321, 228, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 110, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 143, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 279, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 148, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 208, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 288, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 268, 322, + 322, 322, 322, 228, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 110, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 143, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 279, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 148, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 208, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 165, - 321, 321, 321, 321, 321, 321, 321, 321, 104, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 160, 321, - 172, 321, 321, 321, 321, 320, 321, 132, 321, 321, - 321, 321, 321, 91, 321, 321, 321, 321, 200, 321, - 321, 321, 321, 321, 321, 218, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 240, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 125, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 288, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 165, 322, + 322, 322, 322, 322, 322, 322, 322, 104, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 160, 322, 172, + 322, 322, 322, 322, 321, 322, 132, 322, 322, 322, + 322, 322, 91, 322, 322, 322, 322, 200, 322, 322, + 322, 322, 322, 322, 218, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 240, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 164, 321, 321, 321, 321, 321, 321, - 73, 74, 321, 321, 321, 321, 321, 54, 321, 321, - 321, 321, 321, 80, 173, 321, 191, 321, 221, 321, - 321, 183, 261, 321, 321, 321, 321, 321, 66, 321, - 175, 321, 321, 321, 321, 321, 9, 321, 321, 321, - 94, 321, 321, 321, 321, 253, 321, 321, 321, 321, - 199, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 125, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 164, 322, 322, 322, 322, 322, 322, + 73, 74, 322, 322, 322, 322, 322, 54, 322, 322, + 322, 322, 322, 80, 173, 322, 191, 322, 221, 322, + 322, 183, 261, 322, 322, 322, 322, 322, 66, 322, + 175, 322, 322, 322, 322, 322, 9, 322, 322, 322, + 94, 322, 322, 322, 322, 253, 322, 322, 322, 322, + 199, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 320, 321, 321, 321, - 321, 163, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 150, 321, 267, 321, 321, 321, 321, 321, - 239, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 212, 321, 321, 321, 321, 259, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 282, 321, 174, 321, 321, 321, 321, - 321, 321, 321, 65, 67, 321, 321, 321, 321, 321, - 321, 321, 93, 321, 321, 321, 321, 251, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 321, 322, 322, 322, + 322, 163, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 150, 322, 267, 322, 322, 322, 322, 322, + 239, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 212, 322, 295, 322, 322, 322, 259, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 282, 322, 174, 322, 322, 322, + 322, 322, 322, 322, 65, 67, 322, 322, 322, 322, - 321, 321, 263, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 204, 34, 28, 30, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 35, 321, 29, - 31, 321, 321, 321, 321, 321, 321, 321, 321, 90, - 321, 321, 321, 321, 321, 321, 320, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 206, 203, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 64, 321, - 321, 127, 321, 111, 321, 321, 321, 321, 321, 321, - 321, 321, 145, 312, 13, 321, 321, 321, 321, 321, + 322, 322, 322, 93, 322, 322, 322, 322, 251, 322, + 322, 322, 322, 263, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 204, 34, 28, 30, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 35, 322, + 29, 31, 322, 322, 322, 322, 322, 322, 322, 322, + 90, 322, 322, 322, 322, 322, 322, 321, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 206, + 203, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 64, + 322, 322, 127, 322, 111, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 277, 321, 280, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 12, 321, 321, - 22, 321, 321, 321, 257, 321, 321, 321, 321, 265, - 321, 321, 321, 68, 321, 214, 321, 321, 321, 321, - 205, 321, 321, 63, 321, 321, 321, 321, 23, 321, - 43, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 159, 158, 312, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 207, 201, 321, 219, 321, - 321, 269, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 145, 313, 13, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 277, 322, 280, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 12, 322, + 322, 22, 322, 322, 322, 257, 322, 322, 322, 322, + 265, 322, 322, 322, 68, 322, 214, 322, 322, 322, + 322, 205, 322, 322, 63, 322, 322, 322, 322, 23, + 322, 43, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 159, 158, 313, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 207, 201, 322, 219, + 322, 322, 269, 322, 322, 322, 322, 322, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 75, 321, 321, 321, 252, 321, 321, 321, 321, 187, - 321, 321, 321, 321, 213, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 286, 287, 156, 321, 321, 69, - 321, 321, 321, 321, 166, 321, 321, 105, 106, 321, - 321, 321, 321, 151, 321, 153, 321, 192, 321, 321, - 321, 321, 157, 321, 321, 222, 321, 321, 321, 321, - 321, 321, 321, 134, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 230, 321, 321, 321, - 321, 321, 321, 321, 24, 321, 262, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 75, 322, 322, 322, 252, 322, 322, 322, 322, + 187, 322, 322, 322, 322, 213, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 286, 287, 156, 322, 322, + 69, 322, 322, 322, 322, 166, 322, 322, 105, 106, + 322, 322, 322, 322, 151, 322, 153, 322, 192, 322, + 322, 322, 322, 157, 322, 322, 222, 322, 322, 322, + 322, 322, 322, 322, 134, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 230, 322, 322, - 321, 321, 321, 321, 321, 321, 321, 321, 193, 321, - 321, 250, 321, 281, 321, 186, 321, 321, 321, 321, - 49, 321, 321, 321, 321, 4, 321, 321, 321, 321, - 118, 133, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 225, 37, 38, 321, 321, 321, 321, 321, 321, 321, - 270, 321, 321, 321, 321, 321, 321, 321, 238, 321, - 321, 321, 321, 321, 321, 321, 196, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 78, 321, 50, 256, - 321, 226, 321, 321, 321, 321, 11, 321, 321, 321, + 322, 322, 322, 322, 322, 24, 322, 262, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 193, + 322, 322, 250, 322, 281, 322, 186, 322, 322, 322, + 322, 49, 322, 322, 322, 322, 4, 322, 322, 322, + 322, 118, 133, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 225, 37, 38, 322, 322, 322, 322, 322, 322, + 322, 270, 322, 322, 322, 322, 322, 322, 322, 238, + 322, 322, 322, 322, 322, 322, 322, 196, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 78, 322, 50, - 321, 321, 321, 117, 321, 321, 321, 321, 194, 82, - 321, 40, 321, 321, 321, 321, 321, 321, 321, 321, - 162, 321, 321, 321, 321, 321, 136, 321, 321, 321, - 321, 229, 321, 321, 321, 321, 321, 237, 321, 321, - 321, 321, 130, 321, 321, 112, 113, 321, 321, 321, - 84, 88, 83, 321, 76, 321, 321, 321, 321, 321, - 10, 321, 321, 321, 254, 289, 321, 321, 321, 321, - 294, 39, 321, 321, 321, 321, 321, 161, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 256, 322, 226, 322, 322, 322, 322, 11, 322, 322, + 322, 322, 322, 322, 117, 322, 322, 322, 322, 194, + 82, 322, 40, 322, 322, 322, 322, 322, 322, 322, + 322, 162, 322, 322, 322, 322, 322, 136, 322, 322, + 322, 322, 229, 322, 322, 322, 322, 322, 237, 322, + 322, 322, 322, 130, 322, 322, 112, 113, 322, 322, + 322, 84, 88, 83, 322, 76, 322, 322, 322, 322, + 322, 10, 322, 322, 322, 254, 289, 322, 322, 322, + 322, 294, 39, 322, 322, 322, 322, 322, 161, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 89, 87, 321, 77, 278, 321, 321, 321, 321, 321, - 321, 321, 180, 321, 321, 321, 321, 321, 195, 321, - 321, 321, 321, 321, 321, 321, 321, 152, 71, 321, - 321, 321, 321, 321, 271, 321, 321, 321, 321, 321, - 321, 321, 234, 321, 321, 233, 131, 321, 86, 137, - 138, 141, 142, 139, 140, 79, 321, 255, 321, 321, - 321, 321, 155, 321, 321, 321, 321, 321, 224, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 168, 167, 41, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 89, 87, 322, 77, 278, 322, 322, 322, 322, + 322, 322, 322, 180, 322, 322, 322, 322, 322, 195, + 322, 322, 322, 322, 322, 322, 322, 322, 152, 71, + 322, 322, 322, 322, 322, 271, 322, 322, 322, 322, + 322, 322, 322, 234, 322, 322, 233, 131, 322, 86, + 137, 138, 141, 142, 139, 140, 79, 322, 255, 322, + 322, 322, 322, 155, 322, 322, 322, 322, 322, 224, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 168, 167, 41, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 92, 321, 223, 321, 247, 275, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 5, 321, 321, 215, 321, 321, 276, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 235, 25, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 236, 321, 321, 321, 135, 321, 321, 321, 321, - 321, 321, 321, 321, 169, 321, 176, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 272, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 92, 322, 223, 322, 247, 275, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 5, 322, 322, 215, 322, 322, 276, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 235, 25, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 236, 322, 322, 322, 135, 322, 322, 322, + 322, 322, 322, 322, 322, 169, 322, 176, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 272, 322, 322, - 321, 321, 321, 321, 293, 321, 321, 243, 321, 321, - 321, 321, 321, 273, 321, 321, 321, 321, 321, 321, - 274, 321, 321, 321, 241, 321, 244, 245, 321, 321, - 321, 321, 321, 242, 246, 0 + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 293, 322, 322, 243, 322, + 322, 322, 322, 322, 273, 322, 322, 322, 322, 322, + 322, 274, 322, 322, 322, 241, 322, 244, 245, 322, + 322, 322, 322, 322, 242, 246, 0 } ; static const YY_CHAR yy_ec[256] = @@ -752,17 +753,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[3155] = +static const flex_int16_t yy_base[3166] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4335, 3834, 81, 6133, - 6133, 6133, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 3174, 3068, 81, 6159, + 6159, 6159, 129, 52, 130, 63, 131, 152, 70, 140, 144, 156, 57, 88, 76, 173, 175, 95, 184, 135, - 185, 205, 147, 204, 178, 123, 3717, 6133, 6133, 6133, - 107, 3426, 6133, 6133, 6133, 178, 3362, 3153, 6133, 6133, - 6133, 224, 2654, 6133, 6133, 6133, 204, 2276, 6133, 238, - 6133, 242, 197, 2238, 1962, 6133, 6133, 6133, 246, 1833, - 6133, 6133, 6133, 216, 1673, 252, 166, 0, 256, 0, + 185, 205, 147, 204, 178, 123, 2844, 6159, 6159, 6159, + 107, 2406, 6159, 6159, 6159, 178, 2248, 2125, 6159, 6159, + 6159, 224, 2071, 6159, 6159, 6159, 204, 2005, 6159, 238, + 6159, 242, 197, 1902, 1688, 6159, 6159, 6159, 246, 1637, + 6159, 6159, 6159, 216, 1370, 252, 166, 0, 256, 0, 0, 216, 248, 162, 241, 250, 254, 258, 92, 259, 262, 263, 260, 264, 265, 272, 267, 273, 271, 282, @@ -770,7 +771,7 @@ static const flex_int16_t yy_base[3155] = 311, 300, 316, 191, 321, 315, 323, 304, 325, 327, 326, 337, 329, 338, 340, 348, 341, 345, 347, 350, 357, 227, 351, 354, 358, 362, 369, 359, 373, 379, - 374, 377, 383, 385, 387, 384, 1618, 403, 1352, 406, + 374, 377, 383, 385, 387, 384, 1072, 403, 947, 406, 814, 416, 740, 688, 410, 600, 420, 424, 0, 416, 501, 430, 464, 442, 435, 422, 434, 429, 430, 431, 433, 397, 432, 435, 436, 437, 440, 454, 438, 453, @@ -791,670 +792,672 @@ static const flex_int16_t yy_base[3155] = 719, 717, 725, 713, 718, 733, 723, 737, 726, 745, 743, 730, 758, 744, 747, 749, 759, 748, 750, 756, 769, 761, 779, 766, 773, 781, 784, 792, 789, 795, - 785, 797, 787, 798, 801, 803, 810, 808, 6133, 805, + 785, 797, 787, 798, 801, 803, 810, 808, 6159, 805, 807, 819, 822, 823, 826, 816, 832, 806, 836, 839, - 841, 838, 846, 868, 824, 842, 845, 847, 850, 6133, + 841, 838, 846, 868, 824, 842, 845, 847, 850, 6159, 854, 852, 892, 861, 856, 878, 874, 858, 881, 870, 888, 882, 896, 883, 893, 898, 916, 899, 903, 905, 902, 914, 915, 924, 926, 921, 928, 929, 937, 932, 933, 934, 938, 942, 944, 945, 950, 946, 951, 952, - 954, 965, 955, 963, 959, 967, 968, 970, 972, 983, - 976, 977, 993, 984, 989, 994, 996, 997, 991, 1000, - 1003, 1007, 1004, 1008, 1012, 1020, 1015, 1010, 1017, 1018, - 1022, 1028, 1024, 1026, 1030, 1031, 1032, 1040, 1033, 1041, - 1034, 1047, 1049, 752, 6133, 1051, 1053, 1054, 1055, 1056, - 1057, 6133, 1059, 1058, 1061, 1066, 1063, 1071, 1080, 1067, - 1082, 1070, 1083, 1084, 1092, 1087, 1088, 1095, 1094, 1096, - 947, 1098, 1100, 1105, 1102, 1106, 1109, 1103, 1114, 1128, - 6133, 1112, 1115, 1116, 1118, 1123, 1131, 1140, 1126, 1133, + 955, 965, 958, 963, 967, 968, 970, 972, 973, 975, + 985, 979, 993, 969, 991, 995, 998, 1000, 976, 1002, + 1004, 1007, 1008, 1009, 1010, 1018, 1015, 1014, 1016, 1020, + 1021, 1023, 1027, 1028, 1031, 1030, 1033, 1034, 1035, 1040, + 1045, 1043, 1051, 752, 6159, 1053, 1044, 1055, 1057, 1056, + 1046, 6159, 1059, 1060, 1061, 1068, 1069, 1073, 1081, 1070, + 1074, 1087, 1083, 1088, 1095, 1071, 1093, 1098, 1094, 1099, + 1100, 1102, 1101, 1106, 1109, 1107, 1110, 1113, 1114, 1133, + 6159, 1115, 1121, 1125, 1118, 1128, 1138, 1145, 1131, 1143, - 1143, 1146, 1156, 1151, 1121, 1152, 1153, 1157, 1160, 1163, - 1165, 1166, 1168, 1169, 1170, 1171, 1172, 1174, 1179, 1184, - 6133, 1177, 1187, 1195, 1196, 1182, 1198, 1199, 1200, 1201, - 1202, 1203, 1205, 1204, 1210, 1220, 1211, 1224, 1221, 1222, - 1226, 1227, 1229, 1228, 1230, 1232, 1244, 1237, 1236, 1252, - 1247, 1254, 1256, 1263, 1265, 1245, 1258, 1262, 1260, 1268, - 1269, 1270, 1271, 1273, 1274, 1283, 1280, 1281, 1282, 1285, - 1295, 1286, 1288, 1298, 1290, 1296, 1293, 1300, 1304, 1307, - 1303, 1313, 6133, 1320, 1315, 1318, 1319, 1322, 1326, 1325, - 1331, 1332, 1333, 1335, 1334, 1336, 1338, 1342, 1341, 1343, + 1151, 1155, 1163, 1140, 1117, 1158, 1160, 1161, 1165, 1171, + 1169, 1166, 1173, 1174, 1175, 1177, 1176, 1179, 1186, 1183, + 6159, 1187, 1191, 1200, 1192, 1199, 1202, 1203, 1205, 1206, + 1207, 1209, 1208, 1215, 1213, 1225, 1216, 1232, 1218, 1231, + 1227, 1229, 1233, 1236, 1237, 1235, 1248, 1245, 1250, 1255, + 1263, 1260, 1262, 1270, 1272, 1252, 1265, 1240, 1269, 1267, + 1268, 1275, 1279, 1280, 1281, 1283, 1288, 1285, 1290, 1291, + 1292, 1299, 1297, 1295, 1298, 1304, 1313, 1305, 1311, 1315, + 1316, 1317, 1318, 6159, 1325, 1326, 1329, 1324, 1334, 1337, + 1336, 1330, 1338, 1342, 1294, 1343, 1344, 1352, 1345, 1347, - 1344, 1346, 1355, 1357, 1361, 1368, 1367, 1369, 1354, 1362, - 1377, 1373, 1381, 1379, 1380, 1389, 1384, 1386, 1387, 1396, - 1391, 1393, 1395, 1394, 1403, 1398, 1408, 1415, 1401, 1412, - 1422, 1418, 1420, 1423, 1424, 1427, 1428, 1430, 1431, 1432, - 1433, 1440, 1435, 1438, 1437, 1441, 1436, 1442, 1450, 1444, - 1463, 1455, 1458, 1460, 1464, 1467, 1466, 1465, 1468, 1472, - 1473, 1475, 1474, 1476, 1478, 1485, 875, 1487, 1489, 1493, - 1495, 1497, 1496, 1500, 1499, 1502, 1508, 1498, 1511, 1512, - 1515, 1517, 1519, 1520, 1524, 1528, 1522, 1530, 1523, 1533, - 1534, 1541, 1542, 1545, 1537, 6133, 1535, 1556, 1548, 1549, + 1353, 1358, 1359, 1361, 1357, 1362, 1375, 1374, 1376, 1360, + 1368, 1385, 1383, 1386, 1384, 1389, 1396, 1391, 1392, 1393, + 1403, 1399, 1400, 1401, 1402, 1407, 1410, 1411, 1421, 1416, + 1419, 1426, 1430, 1423, 1432, 1427, 1433, 1436, 1437, 1438, + 1439, 1440, 1447, 1445, 1442, 1444, 1450, 1443, 1452, 1457, + 1453, 1470, 1462, 1463, 1466, 1467, 1473, 1472, 1478, 1474, + 1479, 1480, 1482, 1481, 1483, 1489, 1488, 875, 1491, 1496, + 1500, 1502, 1504, 1503, 1506, 1508, 1509, 1513, 1512, 1519, + 1520, 1522, 1523, 1525, 1528, 1524, 1531, 1534, 1538, 1539, + 1541, 1540, 1543, 1544, 1550, 1551, 6159, 1546, 1558, 1556, - 1552, 1557, 1558, 1565, 1561, 1560, 1562, 1563, 1566, 1589, - 6133, 1570, 6133, 6133, 1573, 6133, 6133, 1572, 1571, 6133, - 1578, 1579, 1583, 1574, 1592, 1596, 1597, 1599, 1600, 1610, - 1621, 1612, 1603, 1614, 1602, 1616, 1635, 1630, 1605, 1626, - 1642, 1631, 1644, 1645, 1649, 1651, 1646, 1638, 1652, 1654, - 1659, 1655, 1660, 1662, 1665, 1666, 1664, 1668, 1669, 1676, - 1681, 1672, 1689, 6133, 1685, 1693, 1698, 1694, 1701, 1697, - 1696, 1703, 1705, 1707, 1708, 1709, 1710, 1712, 1713, 1718, - 1675, 1714, 1726, 1721, 6133, 1724, 1725, 1723, 1730, 1728, - 1736, 1738, 1731, 1729, 1741, 1742, 1752, 1748, 1744, 1753, + 1559, 1557, 1562, 1564, 1572, 1567, 1570, 1568, 1571, 1573, + 1597, 6159, 1574, 6159, 6159, 1578, 6159, 6159, 1579, 1584, + 6159, 1585, 1583, 1594, 1600, 1580, 1607, 1119, 1603, 1598, + 1605, 1620, 1626, 1613, 1601, 1611, 1615, 1631, 1642, 1632, + 1623, 1635, 1646, 1643, 1649, 1651, 1654, 1655, 1658, 1659, + 1660, 1661, 1663, 1665, 1666, 1662, 1669, 1671, 1668, 1675, + 1674, 1685, 1684, 1691, 1694, 6159, 1692, 1701, 1704, 1700, + 1708, 1703, 1707, 1709, 1711, 1715, 1712, 1716, 1718, 1719, + 1680, 1722, 1724, 1727, 1731, 1728, 6159, 1729, 1730, 1732, + 1736, 1737, 1740, 1744, 1745, 1742, 1748, 1750, 1761, 1751, - 1756, 1757, 1758, 6133, 1760, 1764, 1766, 1768, 1767, 1770, - 1771, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1789, 1784, - 1786, 1792, 1794, 1801, 1802, 1804, 1806, 1803, 1810, 1812, - 1813, 1814, 1815, 1817, 1818, 1826, 1828, 1825, 1830, 1827, - 1835, 1846, 1841, 1831, 1842, 1843, 1844, 1851, 1855, 1853, - 1857, 1858, 1866, 1859, 1864, 1867, 1868, 1878, 1861, 1870, - 1880, 1869, 1882, 1883, 1884, 6133, 1886, 1887, 6133, 1889, - 1890, 1912, 1892, 1894, 1899, 1896, 1897, 1900, 1905, 1913, - 1919, 1916, 1932, 1925, 1929, 1935, 1937, 1940, 1906, 1936, - 1942, 1938, 1944, 1948, 1947, 1960, 1967, 1908, 1968, 1970, + 1753, 1754, 1762, 1758, 1766, 6159, 1770, 1765, 1774, 1775, + 1776, 1778, 1779, 1781, 1784, 1783, 1785, 1786, 1787, 1788, + 1800, 1793, 1789, 1791, 1806, 1809, 1811, 1812, 1814, 1796, + 1818, 1819, 1821, 1822, 1823, 1824, 1826, 1834, 1836, 1833, + 1837, 1832, 1841, 1844, 1849, 1840, 1848, 1850, 1851, 1856, + 1864, 1862, 1861, 1854, 1869, 1866, 1871, 1873, 1875, 1882, + 1874, 1883, 1877, 1884, 1885, 1888, 1890, 6159, 1892, 1894, + 6159, 1895, 1896, 1918, 1897, 1899, 1904, 1901, 1907, 1910, + 1911, 1922, 1920, 1924, 1941, 1928, 1930, 1942, 1933, 1945, + 1931, 1947, 1949, 1951, 1953, 1955, 1956, 1954, 1971, 1974, - 1949, 1946, 1962, 1981, 1966, 1969, 1972, 1973, 1975, 1979, - 1983, 1988, 1977, 1990, 1993, 1994, 1997, 6133, 2005, 2003, - 2004, 2008, 2016, 2013, 2011, 6133, 2015, 2019, 2020, 2031, - 2026, 2014, 2022, 2012, 2029, 2034, 2037, 2038, 2039, 2040, - 2041, 2050, 6133, 2045, 6133, 2042, 2051, 2053, 2052, 2055, - 2059, 2057, 2060, 6133, 6133, 2063, 2067, 2069, 2081, 2064, - 6133, 2078, 2085, 2082, 2087, 2088, 2080, 2089, 2091, 2093, - 2092, 2101, 2096, 2103, 2098, 2099, 2108, 6133, 2111, 2110, - 2112, 2115, 2118, 2119, 2121, 2123, 6133, 2127, 2125, 2130, - 2138, 2129, 2137, 2139, 2140, 2144, 2142, 2147, 2148, 2149, + 1913, 1966, 1975, 1957, 1970, 1973, 1992, 1976, 1977, 1980, + 1978, 1983, 1981, 1987, 1985, 1996, 1997, 2002, 2003, 2004, + 6159, 2014, 2010, 2009, 2017, 2025, 2021, 2020, 6159, 2022, + 2023, 2027, 2035, 2033, 2034, 2036, 2037, 2038, 2040, 2044, + 2045, 2046, 2058, 2048, 2067, 6159, 2047, 6159, 2059, 2049, + 2051, 2062, 2050, 2066, 2072, 2074, 6159, 6159, 2075, 2078, + 2082, 2090, 2085, 6159, 2086, 2094, 2091, 2096, 2089, 2097, + 2100, 2101, 2105, 2106, 2110, 2107, 2114, 2109, 2115, 2111, + 6159, 2123, 2112, 2129, 2130, 2122, 2131, 2132, 2128, 6159, + 2139, 2141, 2142, 2149, 2147, 2144, 2150, 2151, 2155, 2152, - 2150, 2159, 2161, 2151, 2162, 2164, 2171, 6133, 2154, 2158, - 2176, 2174, 2181, 2173, 2175, 2177, 2183, 2185, 2186, 2187, - 2190, 2191, 2192, 2199, 2200, 2197, 2196, 2205, 2206, 2207, - 2210, 2213, 2214, 2215, 2216, 2217, 6133, 2218, 2220, 2223, - 391, 2226, 2229, 2227, 2228, 2236, 2231, 2234, 2247, 2252, - 2248, 2249, 2250, 2256, 2257, 2258, 2259, 2260, 2261, 2262, - 2264, 6133, 2266, 2267, 2269, 2273, 2272, 2275, 2280, 6133, - 2282, 2289, 2292, 2301, 2284, 2293, 2302, 2298, 2303, 2304, - 2306, 2308, 2310, 2309, 2312, 2315, 6133, 2319, 2320, 2324, - 2316, 2326, 2328, 2330, 2333, 2335, 2337, 2340, 2338, 2342, + 2158, 2159, 2160, 2161, 2171, 2172, 2162, 2164, 2173, 2181, + 6159, 2176, 2180, 2188, 2184, 2186, 2183, 2187, 2190, 2191, + 2195, 2199, 2193, 2197, 2201, 2203, 2211, 2212, 2209, 2214, + 2217, 2207, 2218, 2221, 2227, 2220, 2225, 2228, 2229, 6159, + 2230, 2236, 2231, 391, 2239, 2237, 2243, 2240, 2241, 2257, + 2242, 2264, 2265, 2261, 2244, 2263, 2260, 2267, 2270, 2269, + 2271, 2272, 2273, 2276, 6159, 2278, 2280, 2282, 2283, 2285, + 2286, 2296, 6159, 2289, 2302, 2287, 2305, 2307, 2297, 2313, + 2299, 2308, 2319, 2317, 2320, 2309, 2324, 2323, 2325, 2327, + 6159, 2331, 2333, 2335, 2332, 2342, 2341, 2334, 2344, 2348, - 2343, 2341, 2344, 2345, 2351, 2346, 2347, 2354, 2359, 6133, - 2364, 2362, 2366, 2370, 2369, 2371, 2372, 2387, 2373, 2379, - 2375, 2382, 2394, 2385, 2391, 2396, 2404, 2401, 2409, 2414, - 2410, 2411, 2419, 2412, 2421, 2423, 2424, 2425, 2427, 2429, - 2430, 2431, 2432, 2440, 2447, 2437, 2448, 2446, 2438, 2456, - 2457, 6133, 2459, 2458, 2451, 2461, 2477, 2465, 2467, 2475, - 2472, 2478, 2479, 2481, 2482, 2490, 2491, 2485, 2483, 2494, - 2488, 2495, 2501, 2503, 2505, 2507, 2508, 2512, 2395, 6133, - 2513, 2509, 2515, 2517, 2521, 2518, 2525, 2529, 2522, 2531, - 2532, 2536, 2537, 2539, 2540, 2541, 2545, 2547, 2533, 6133, + 2349, 2350, 2351, 2353, 2355, 2354, 2356, 2357, 2358, 2361, + 2365, 2369, 2370, 6159, 2378, 2371, 2374, 2382, 2380, 2387, + 2381, 2397, 2383, 2384, 2394, 2403, 2408, 2399, 2401, 2411, + 2414, 2418, 2419, 2426, 2424, 2425, 2432, 2422, 2434, 2436, + 2437, 2438, 2440, 2442, 2445, 2395, 2446, 2453, 2454, 2455, + 2459, 2452, 2473, 2478, 2458, 6159, 2467, 2465, 2477, 2479, + 2487, 2482, 2483, 2484, 2485, 2492, 2490, 2493, 2494, 2502, + 2497, 2503, 2500, 2510, 2504, 2507, 2506, 2513, 2517, 2520, + 2521, 2526, 2527, 6159, 2528, 2530, 2523, 2532, 2534, 2537, + 2540, 2543, 2545, 2546, 2547, 2549, 2551, 2552, 2553, 2554, - 2555, 2544, 2543, 2550, 2556, 2562, 2563, 2566, 2572, 2569, - 2565, 2575, 2577, 2567, 6133, 2582, 2585, 2586, 2593, 2588, - 2589, 2590, 2595, 2578, 6133, 2592, 2596, 2599, 2606, 2609, - 2604, 6133, 2611, 2612, 2613, 2602, 2615, 2617, 2618, 2620, - 2621, 2623, 2625, 2628, 2624, 2631, 6133, 2634, 2643, 2638, - 2639, 2644, 2645, 2649, 2650, 2655, 2657, 2667, 2658, 6133, - 2676, 2671, 2651, 2679, 2661, 2674, 2677, 2681, 2682, 2683, - 2684, 2685, 6133, 2688, 2690, 2691, 2692, 2694, 2696, 2697, - 2710, 2699, 2703, 2706, 2712, 2713, 2707, 2718, 2717, 2725, - 2715, 2729, 2731, 2719, 2735, 2721, 2736, 2739, 2746, 2748, + 2556, 2558, 2561, 6159, 2563, 2562, 2564, 2570, 2575, 2574, + 2576, 2578, 2585, 2587, 2572, 2588, 2444, 2589, 6159, 2597, + 2599, 2595, 2604, 2596, 2601, 2603, 2607, 2608, 6159, 2609, + 2610, 2611, 2618, 2619, 2615, 6159, 2622, 2617, 2623, 2626, + 2625, 2627, 2632, 2629, 2635, 2636, 2641, 2648, 2640, 2650, + 6159, 2642, 2657, 2644, 2658, 2664, 2652, 2653, 2659, 2665, + 2669, 2679, 2671, 6159, 2682, 2680, 2675, 2689, 2687, 2690, + 2691, 2692, 2693, 2694, 2695, 2696, 2699, 6159, 2700, 2702, + 2703, 2704, 2707, 2708, 2710, 2723, 2713, 2718, 2722, 2724, + 2727, 2728, 2730, 2731, 2740, 2732, 2734, 2748, 2741, 2746, - 2749, 2751, 6133, 2754, 2743, 2755, 2745, 2756, 2758, 2759, - 2760, 2762, 2767, 2769, 2765, 2768, 2777, 2784, 2772, 2780, - 2785, 2786, 2788, 2789, 2790, 2791, 2795, 2799, 2796, 2798, - 2806, 2802, 2808, 2816, 2803, 2807, 2812, 2815, 2818, 2817, - 2820, 2827, 2830, 2825, 2840, 2842, 2843, 2819, 2836, 2844, - 2845, 2850, 6133, 2829, 2846, 2855, 2854, 2857, 2860, 2861, - 2868, 2863, 2864, 2867, 2871, 2876, 2865, 2879, 2881, 2888, - 2884, 6133, 2886, 6133, 2887, 2889, 2890, 2898, 2893, 6133, - 2896, 6133, 2899, 2906, 2900, 2903, 6133, 2907, 2909, 2911, - 2914, 2912, 2917, 2918, 2921, 2922, 2923, 2925, 2928, 2930, + 2744, 2733, 2753, 2757, 2761, 2762, 2764, 6159, 2767, 2768, + 2769, 2759, 2770, 2771, 2773, 2774, 2776, 2779, 2783, 2781, + 2782, 2791, 2798, 2789, 2793, 2799, 2800, 2802, 2803, 2804, + 2805, 2806, 2813, 2810, 2812, 2820, 2816, 2821, 2828, 2817, + 2826, 2829, 2830, 2832, 2831, 2839, 2833, 2837, 2841, 2843, + 2851, 2855, 2857, 2856, 2858, 2859, 2862, 6159, 2847, 2866, + 2863, 2870, 2873, 2875, 2877, 2885, 2876, 2880, 2883, 2892, + 2894, 2884, 2887, 2886, 2901, 2900, 6159, 2897, 6159, 2902, + 2903, 2909, 2913, 2911, 6159, 2917, 6159, 2918, 2920, 2912, + 2914, 6159, 2922, 2924, 2926, 2932, 2927, 2929, 2934, 2936, - 2931, 2932, 2935, 2939, 2942, 2940, 2944, 2948, 2941, 2950, - 2953, 2954, 2958, 2959, 2963, 6133, 2967, 2960, 2964, 2969, - 2970, 2971, 2972, 2973, 2979, 2980, 2981, 2977, 2987, 2988, - 2991, 2994, 3002, 2995, 3004, 6133, 3003, 3006, 3007, 3010, - 6133, 3009, 3011, 3012, 3018, 3020, 3021, 3022, 3024, 3028, - 3023, 3030, 3025, 3040, 3038, 3031, 3044, 6133, 3048, 3049, - 3050, 3052, 3060, 3062, 3061, 3064, 3067, 3076, 3069, 3071, - 3033, 3053, 3073, 3077, 3085, 3087, 3078, 3088, 3086, 3089, - 3091, 3092, 3095, 3096, 3098, 3100, 3101, 3099, 3105, 3106, - 3108, 3103, 3104, 3107, 3110, 6133, 3126, 3112, 3122, 3128, + 2937, 2938, 2940, 2943, 2945, 2946, 2947, 2952, 2954, 2957, + 2955, 2959, 2963, 2956, 2964, 2968, 2969, 2973, 2974, 2978, + 6159, 2982, 2975, 2979, 2984, 2985, 2986, 2987, 2988, 2994, + 2995, 2996, 2992, 3002, 3003, 3006, 3009, 3017, 3010, 3019, + 6159, 3018, 3021, 3022, 3025, 6159, 3024, 3026, 3027, 3033, + 3035, 3036, 3037, 3039, 3043, 3038, 3045, 3040, 3055, 3053, + 3046, 3059, 6159, 3063, 3064, 3065, 3067, 3075, 3077, 3082, + 3079, 3080, 3085, 3089, 3087, 3088, 3048, 3091, 3093, 3094, + 3102, 3104, 3095, 3105, 3103, 3106, 3108, 3109, 3112, 3115, + 3116, 3117, 3118, 3121, 3122, 3124, 3125, 3120, 3123, 3127, - 3120, 3130, 3133, 3134, 3136, 3138, 3139, 3142, 3140, 6133, - 3143, 6133, 3137, 3147, 3149, 3160, 3155, 3161, 3165, 3170, - 3164, 3166, 3171, 3173, 3172, 3174, 3175, 3180, 3183, 3187, - 3188, 3194, 3181, 3189, 3186, 3197, 3198, 3200, 6133, 6133, - 3203, 3205, 3206, 3208, 3209, 3210, 3216, 3213, 3221, 3219, - 3220, 3227, 3235, 6133, 3230, 3232, 3233, 3238, 3242, 3239, - 3249, 3246, 3251, 3258, 3253, 6133, 3250, 3254, 3266, 3261, - 3262, 3269, 6133, 3264, 6133, 3267, 3273, 3275, 3276, 3277, - 3278, 3279, 3280, 3282, 3295, 3302, 3284, 3288, 3298, 3299, - 3300, 3301, 3310, 3305, 3306, 3307, 6133, 3309, 3311, 3312, + 3128, 6159, 3139, 3142, 3145, 3146, 3129, 3151, 3148, 3152, + 3154, 3153, 3157, 3166, 3155, 6159, 3159, 6159, 3156, 3158, + 3177, 3183, 3173, 3169, 3186, 3191, 3167, 3184, 3188, 3192, + 3194, 3195, 3196, 3198, 3200, 3199, 3207, 3215, 3202, 3206, + 3210, 3204, 3216, 3221, 6159, 6159, 3220, 3223, 3224, 3226, + 3227, 3229, 3237, 3231, 3230, 3239, 3244, 3246, 3254, 6159, + 3247, 3251, 3249, 3250, 3262, 3258, 3260, 3269, 3267, 3274, + 3273, 6159, 3270, 3275, 3283, 3278, 3284, 3286, 6159, 3288, + 6159, 3281, 3282, 3294, 3295, 3285, 3292, 3297, 3299, 3307, + 3309, 3314, 3310, 3316, 3312, 3317, 3318, 3320, 3325, 3321, - 3315, 3321, 3323, 3324, 3313, 6133, 3329, 3330, 3335, 3332, - 3337, 3338, 3340, 3342, 3343, 3346, 3347, 3344, 3348, 3360, - 3352, 3353, 3355, 3366, 3367, 3373, 6133, 3369, 3375, 3382, - 3378, 3379, 3381, 3385, 3380, 3386, 3387, 3389, 3390, 3392, - 3393, 3394, 3396, 3398, 3401, 3399, 3404, 3412, 3413, 3415, - 3424, 3420, 6133, 3421, 3422, 3425, 3427, 3430, 3431, 3434, - 3436, 3437, 3443, 3447, 3439, 3449, 3451, 3452, 3459, 3455, - 6133, 3467, 3454, 3468, 3463, 3466, 3465, 3473, 3471, 3481, - 3477, 3478, 3479, 3486, 3482, 6133, 3493, 3483, 3501, 3484, - 3485, 3510, 3505, 3506, 3494, 3508, 3509, 3511, 3513, 3516, + 3322, 3324, 6159, 3327, 3329, 3330, 3331, 3339, 3340, 3341, + 3346, 6159, 3347, 3348, 3352, 3353, 3354, 3355, 3357, 3361, + 3358, 3364, 3367, 3362, 3360, 3377, 3370, 3368, 3378, 3388, + 3389, 3391, 6159, 3393, 3385, 3401, 3397, 3399, 3400, 3403, + 3404, 3383, 3407, 3408, 3409, 3410, 3412, 3416, 3417, 3413, + 3420, 3419, 3422, 3430, 3423, 3437, 3446, 3431, 6159, 3441, + 3433, 3443, 3444, 3445, 3449, 3450, 3455, 3457, 3448, 3462, + 3466, 3458, 3469, 3471, 3472, 3480, 3475, 6159, 3483, 3473, + 3487, 3482, 3485, 3493, 3494, 3484, 3502, 3486, 3497, 3501, + 3509, 3504, 6159, 3512, 3508, 3513, 3514, 3516, 3526, 3510, - 3517, 3520, 3521, 6133, 6133, 3523, 3524, 3525, 6133, 3527, - 3529, 3537, 3540, 3530, 3528, 3545, 3544, 3532, 3546, 3542, - 3548, 6133, 3554, 3561, 3556, 3560, 3563, 3571, 3570, 3572, - 3566, 3562, 3573, 3574, 3578, 3579, 3580, 3583, 3591, 3593, - 3588, 3589, 3590, 6133, 3595, 3596, 3598, 3600, 3601, 3602, - 6133, 3605, 3607, 3613, 3612, 3623, 3625, 3616, 3631, 3614, - 3626, 3609, 3633, 3634, 3636, 3643, 3642, 3639, 3646, 3647, - 3649, 6133, 3641, 3651, 3652, 3659, 6133, 3661, 3669, 3670, - 3671, 3655, 3673, 3674, 3682, 6133, 3675, 3679, 3677, 3666, - 3690, 3680, 3694, 3692, 3693, 6133, 3695, 3685, 3696, 6133, + 3518, 3523, 3528, 3529, 3532, 3530, 3534, 3535, 3540, 3537, + 6159, 6159, 3542, 3543, 3545, 6159, 3549, 3546, 3553, 3552, + 3548, 3559, 3563, 3562, 3560, 3564, 3561, 3566, 6159, 3572, + 3579, 3575, 3576, 3584, 3591, 3581, 3588, 3589, 3590, 3592, + 3594, 3596, 3597, 3600, 3601, 3609, 3613, 3604, 3605, 3608, + 6159, 3614, 3616, 3617, 3619, 3621, 3627, 6159, 3625, 3629, + 3630, 3623, 3646, 3631, 3637, 3650, 3639, 3641, 3643, 3647, + 3651, 3654, 3663, 3658, 3656, 3665, 3666, 3668, 6159, 3669, + 3659, 3676, 3680, 6159, 3682, 3689, 3690, 3691, 3677, 3687, + 3686, 3699, 6159, 3694, 3697, 3695, 3700, 3708, 3704, 3711, - 3700, 3698, 3709, 3711, 3706, 3718, 3713, 3715, 3716, 3714, - 6133, 3724, 6133, 3725, 3721, 3730, 6133, 3727, 3732, 3735, - 3737, 3734, 3741, 3742, 3745, 3750, 3738, 3751, 3752, 3753, - 3755, 3756, 3763, 3762, 3764, 3765, 3754, 6133, 3766, 3769, - 3775, 3776, 3779, 3774, 3771, 3785, 3781, 6133, 6133, 3796, - 6133, 3797, 3782, 3789, 6133, 3791, 3793, 3808, 3799, 3803, - 3809, 3813, 3810, 6133, 3814, 3801, 3815, 3819, 3817, 3822, - 3824, 3825, 3827, 3828, 3829, 3832, 6133, 3830, 3833, 3841, - 3831, 3842, 3852, 3848, 3846, 6133, 3856, 3857, 3847, 3858, - 3860, 6133, 3864, 6133, 3868, 3869, 3870, 3872, 3871, 6133, + 3709, 3710, 6159, 3712, 3713, 3715, 6159, 3716, 3717, 3728, + 3730, 3721, 3737, 3733, 3735, 3736, 3734, 6159, 3744, 6159, + 3745, 3738, 3746, 6159, 3751, 3752, 3753, 3755, 3756, 3757, + 3761, 3767, 3760, 3768, 3769, 3771, 3772, 3773, 3774, 3781, + 3776, 3783, 3780, 3782, 6159, 3785, 3784, 3790, 3800, 3803, + 3805, 3795, 3787, 3806, 3809, 6159, 6159, 3813, 6159, 3815, + 3810, 3816, 6159, 3819, 3817, 3827, 3820, 3823, 3828, 3836, + 3825, 6159, 3838, 3829, 3839, 3840, 3843, 3842, 3844, 3846, + 3848, 3847, 3849, 3855, 6159, 3850, 3853, 3867, 3854, 3857, + 3868, 3875, 3862, 6159, 3876, 3883, 3869, 3879, 3886, 6159, - 3875, 3879, 3881, 3876, 3883, 3885, 3884, 3891, 3892, 3894, - 3901, 3898, 3899, 3897, 6133, 3900, 3904, 3907, 3908, 3911, - 3913, 3921, 3917, 3923, 3916, 3920, 3930, 3927, 3931, 3937, - 3935, 3940, 3924, 6133, 3941, 3946, 3943, 3955, 3947, 3951, - 6133, 3957, 3960, 3961, 6133, 3958, 3952, 3959, 3974, 3962, - 3967, 3970, 3975, 3976, 6133, 3978, 3981, 3977, 3979, 3982, - 3983, 6133, 6133, 3988, 6133, 3995, 3996, 3998, 3999, 4000, - 4002, 4004, 4005, 4009, 4010, 4012, 4015, 4018, 4006, 4027, - 4030, 4038, 4033, 4034, 4023, 6133, 6133, 4040, 4044, 4037, - 4048, 4049, 4041, 4051, 4058, 4055, 4056, 4062, 4063, 4071, + 3888, 6159, 3878, 3889, 3890, 3892, 3891, 6159, 3899, 3895, + 3904, 3900, 3906, 3905, 3908, 3912, 3914, 3915, 3922, 3918, + 3920, 3919, 6159, 3921, 3924, 3929, 3930, 3934, 3925, 3942, + 3939, 3941, 3937, 3946, 3948, 3951, 3952, 3956, 3950, 3960, + 3958, 6159, 3961, 3964, 3967, 3975, 3968, 3971, 6159, 3972, + 3980, 3981, 6159, 3978, 3979, 3987, 3990, 3982, 3992, 3993, + 3994, 3997, 6159, 3995, 4001, 3998, 4006, 4014, 4015, 6159, + 6159, 4016, 6159, 4017, 4002, 4005, 4003, 4004, 4027, 4031, + 4028, 4033, 4026, 4034, 4039, 4040, 4041, 4048, 4049, 4052, + 4051, 4050, 4055, 6159, 6159, 4057, 4059, 4061, 4065, 4066, - 6133, 4072, 4054, 4073, 4064, 6133, 4066, 4075, 4067, 4078, - 4081, 4079, 4082, 4083, 4087, 4085, 4089, 4095, 4094, 4096, - 4100, 4102, 4104, 4105, 4022, 4106, 4112, 6133, 4108, 4113, - 4115, 4117, 4118, 4119, 4120, 4121, 4122, 6133, 4129, 4128, - 4125, 4136, 4135, 4131, 4137, 4146, 4152, 4154, 4149, 4155, - 4156, 4158, 4160, 4161, 6133, 4169, 4162, 4163, 4165, 4172, - 4176, 4173, 4179, 4180, 4185, 4181, 4186, 4188, 4190, 4193, - 4194, 4195, 4197, 6133, 4199, 4201, 4202, 4206, 4208, 4211, - 4210, 4214, 4219, 4212, 4220, 4222, 4224, 6133, 4225, 4227, - 4228, 4229, 4237, 4232, 4234, 4238, 4240, 6133, 4247, 4242, + 4068, 4069, 4077, 4073, 4081, 4084, 4086, 4094, 6159, 4072, + 4079, 4089, 4090, 6159, 4092, 4095, 4096, 4097, 4098, 4102, + 4105, 4104, 4101, 4107, 4109, 4111, 4113, 4118, 4114, 4125, + 4122, 4116, 4126, 4130, 4127, 4137, 6159, 4133, 4138, 4139, + 4142, 4144, 4147, 4146, 4148, 4149, 6159, 4154, 4151, 4156, + 4152, 4159, 4162, 4164, 4173, 4179, 4181, 4171, 4175, 4182, + 4184, 4190, 4187, 6159, 4194, 4185, 4191, 4195, 4198, 4201, + 4202, 4204, 4206, 4209, 4210, 4212, 4214, 4216, 4218, 4219, + 4220, 4222, 6159, 4226, 4230, 4223, 4236, 4227, 4233, 4237, + 4243, 4247, 4238, 4248, 4249, 4251, 6159, 4252, 4253, 4254, - 4249, 4244, 4248, 4252, 4254, 4259, 4263, 4265, 4261, 6133, - 4257, 4268, 4271, 4274, 4275, 4277, 4278, 4282, 6133, 4284, - 4285, 4286, 4293, 4291, 4300, 4292, 4302, 4295, 4296, 4303, - 4304, 4305, 4310, 4315, 4311, 4322, 4323, 4326, 6133, 4318, - 6133, 4327, 4328, 4337, 4332, 4334, 4335, 6133, 4340, 4342, - 4344, 4345, 4350, 6133, 4349, 4346, 4348, 4352, 6133, 4351, - 4365, 4347, 4366, 4369, 4371, 6133, 4374, 4376, 4375, 4383, - 4387, 4382, 4385, 4386, 4388, 4390, 4392, 4393, 4394, 4403, - 4396, 4399, 6133, 4401, 4408, 4414, 4415, 4398, 4409, 4417, - 4419, 4422, 6133, 4423, 4416, 4424, 4425, 4426, 4427, 4432, + 4256, 4262, 4255, 4265, 4258, 4264, 6159, 4267, 4271, 4275, + 4278, 4277, 4280, 4281, 4283, 4285, 4286, 4290, 6159, 4287, + 4296, 4297, 4289, 4300, 4303, 4304, 4305, 6159, 4306, 4312, + 4315, 4322, 4318, 4325, 4321, 4323, 4320, 4327, 4329, 4333, + 4334, 4335, 4337, 4336, 4347, 4354, 4349, 6159, 4338, 6159, + 4351, 4355, 4363, 4361, 4359, 4352, 6159, 4365, 4366, 4368, + 4369, 4371, 6159, 4373, 4375, 4377, 4376, 6159, 4383, 4389, + 4378, 4387, 4396, 4400, 6159, 4403, 4390, 4404, 4411, 4412, + 4407, 4414, 4408, 4417, 4415, 4410, 4419, 4420, 4429, 4425, + 4426, 6159, 4428, 4430, 4435, 4436, 4443, 4437, 4440, 4444, - 4440, 4442, 4431, 6133, 4433, 4438, 4441, 4456, 4443, 4453, - 6133, 6133, 4452, 4457, 4459, 4460, 4463, 6133, 4461, 4473, - 4468, 4470, 4472, 6133, 6133, 4475, 6133, 4471, 6133, 4476, - 4477, 6133, 6133, 4478, 4479, 4482, 4491, 4485, 6133, 4495, - 6133, 4498, 4499, 4488, 4497, 4501, 6133, 4502, 4503, 4508, - 6133, 4509, 4516, 4511, 4512, 6133, 4514, 4517, 4522, 4524, - 6133, 4525, 4531, 4523, 4532, 4534, 4533, 4535, 4539, 4540, - 4536, 4544, 4545, 4546, 4556, 4558, 4560, 4562, 4552, 4563, - 4566, 4567, 4569, 4572, 4573, 4574, 4575, 4577, 4578, 4580, - 4583, 4587, 4588, 4586, 4589, 4590, 4599, 4592, 4595, 4603, + 4450, 4445, 6159, 4447, 4451, 4453, 4454, 4455, 4456, 4457, + 4467, 4463, 4379, 6159, 4465, 4464, 4470, 4472, 4474, 4479, + 6159, 6159, 4478, 4483, 4485, 4486, 4489, 6159, 4487, 4499, + 4494, 4496, 4498, 6159, 6159, 4501, 6159, 4497, 6159, 4502, + 4503, 6159, 6159, 4504, 4505, 4508, 4517, 4511, 6159, 4521, + 6159, 4524, 4525, 4514, 4523, 4527, 6159, 4528, 4529, 4534, + 6159, 4535, 4542, 4537, 4538, 6159, 4540, 4543, 4548, 4550, + 6159, 4551, 4557, 4549, 4558, 4560, 4559, 4561, 4565, 4566, + 4562, 4570, 4571, 4572, 4582, 4584, 4586, 4588, 4578, 4589, + 4592, 4593, 4595, 4598, 4599, 4600, 4601, 4603, 4604, 4606, - 4596, 4606, 4607, 4608, 4609, 4611, 4614, 4616, 4613, 4619, - 4620, 6133, 4618, 4623, 4624, 4628, 4629, 4637, 4639, 4641, - 4649, 4650, 6133, 4652, 6133, 4654, 4638, 4646, 4658, 4659, - 6133, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4670, - 4671, 4675, 6133, 4682, 4669, 4686, 4693, 6133, 4690, 4697, - 4694, 4698, 4700, 4702, 4701, 4703, 4704, 4705, 4709, 4711, - 4714, 4678, 4715, 4722, 4706, 4718, 4726, 4727, 4729, 4728, - 4732, 4736, 4740, 6133, 4735, 6133, 4741, 4742, 4743, 4744, - 4748, 4745, 4749, 6133, 6133, 4751, 4756, 4758, 4752, 4760, - 4763, 4766, 6133, 4769, 4772, 4774, 4775, 6133, 4777, 4779, + 4609, 4613, 4614, 4612, 4615, 4616, 4625, 4618, 4621, 4629, + 4622, 4632, 4633, 4634, 4635, 4637, 4640, 4642, 4639, 4645, + 4646, 6159, 4644, 4649, 4650, 4654, 4655, 4663, 4665, 4667, + 4675, 4676, 6159, 4678, 6159, 4680, 4664, 4672, 4684, 4685, + 6159, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4696, + 4697, 4701, 6159, 4708, 6159, 4695, 4712, 4719, 6159, 4716, + 4723, 4720, 4724, 4726, 4728, 4727, 4729, 4730, 4731, 4735, + 4737, 4740, 4704, 4741, 4748, 4732, 4744, 4752, 4753, 4755, + 4754, 4758, 4762, 4766, 6159, 4761, 6159, 4767, 4768, 4769, + 4770, 4774, 4771, 4775, 6159, 6159, 4777, 4782, 4784, 4778, - 4780, 4782, 6133, 4783, 4785, 4786, 4797, 4787, 4802, 4793, - 4803, 4789, 4804, 4808, 6133, 6133, 6133, 6133, 4809, 4791, - 4815, 4811, 4817, 4818, 4819, 4821, 4822, 6133, 4826, 6133, - 6133, 4829, 4831, 4832, 4833, 4835, 4823, 4839, 4841, 6133, - 4840, 4845, 4847, 4844, 4854, 4857, 4861, 4851, 4862, 4863, - 4864, 4871, 4868, 4869, 4872, 4874, 4876, 4878, 6133, 6133, - 4880, 4884, 4885, 4892, 4889, 4890, 4896, 4903, 4898, 4899, - 4900, 4901, 4905, 4906, 4914, 4917, 4907, 4918, 6133, 4915, - 4919, 6133, 4921, 6133, 4923, 4924, 4925, 4926, 4931, 4932, - 4934, 4936, 6133, 6133, 6133, 4937, 4938, 4942, 4947, 4944, + 4786, 4789, 4792, 6159, 4795, 4798, 4800, 4801, 6159, 4803, + 4805, 4806, 4808, 6159, 4809, 4811, 4812, 4823, 4813, 4828, + 4819, 4829, 4815, 4830, 4834, 6159, 6159, 6159, 6159, 4835, + 4817, 4841, 4837, 4843, 4844, 4845, 4847, 4848, 6159, 4852, + 6159, 6159, 4855, 4857, 4858, 4859, 4861, 4849, 4865, 4867, + 6159, 4866, 4871, 4873, 4870, 4880, 4883, 4887, 4877, 4888, + 4889, 4890, 4897, 4894, 4895, 4898, 4900, 4902, 4904, 6159, + 6159, 4906, 4910, 4911, 4918, 4915, 4916, 4922, 4929, 4924, + 4925, 4926, 4927, 4931, 4932, 4940, 4943, 4933, 4944, 6159, + 4941, 4945, 6159, 4947, 6159, 4949, 4950, 4951, 4952, 4957, - 4948, 4949, 4951, 4952, 6133, 4953, 6133, 4954, 4955, 4966, - 4960, 4973, 4975, 4976, 4978, 4972, 4979, 6133, 4981, 4982, - 6133, 4983, 4986, 4988, 6133, 4991, 4989, 4994, 4997, 6133, - 4999, 5001, 5004, 6133, 5011, 6133, 5002, 5008, 5006, 5020, - 6133, 5012, 5015, 6133, 5024, 5026, 5027, 5021, 6133, 5017, - 6133, 5028, 5037, 5038, 5041, 5029, 5043, 5033, 5031, 5045, - 5053, 5051, 5052, 6133, 6133, 181, 5061, 5054, 5058, 5062, - 5057, 5070, 5065, 5067, 5069, 6133, 6133, 5074, 6133, 5072, - 5073, 6133, 5066, 5081, 5085, 5075, 5083, 5087, 5089, 5094, - 5096, 5097, 5099, 5098, 5100, 5106, 5121, 5103, 5117, 5123, + 4958, 4960, 4962, 6159, 6159, 6159, 4963, 4964, 4968, 4973, + 4970, 4974, 4975, 4977, 4978, 6159, 4979, 6159, 4980, 4981, + 4992, 4986, 4999, 5001, 5002, 5004, 4998, 5005, 6159, 5007, + 5008, 6159, 5009, 5012, 5014, 6159, 5017, 5015, 5020, 5023, + 6159, 5025, 5027, 5030, 6159, 5037, 6159, 5028, 5034, 5032, + 5046, 6159, 5038, 5041, 6159, 5050, 5052, 5053, 5047, 6159, + 5043, 6159, 5054, 5063, 5064, 5067, 5055, 5069, 5059, 5057, + 5071, 5079, 5077, 5078, 6159, 6159, 181, 5087, 5080, 5084, + 5088, 5083, 5096, 5091, 5093, 5095, 6159, 6159, 5100, 6159, + 5098, 5099, 6159, 5092, 5107, 5111, 5101, 5109, 5113, 5115, - 5125, 5127, 5129, 5118, 5131, 5113, 5132, 5135, 5137, 5139, - 6133, 5141, 5101, 5138, 6133, 5143, 5145, 5147, 5148, 6133, - 5150, 5151, 5154, 5155, 6133, 5161, 5166, 5167, 5168, 5169, - 5176, 5172, 5173, 5174, 6133, 6133, 6133, 5181, 5188, 6133, - 5190, 5180, 5183, 5191, 6133, 5192, 5193, 6133, 6133, 5195, - 5197, 5196, 5204, 6133, 5199, 6133, 5200, 6133, 5202, 5210, - 5212, 5214, 6133, 5217, 5224, 6133, 5219, 5227, 5230, 5231, - 5232, 5234, 5233, 6133, 5241, 5237, 5239, 5246, 5236, 5243, - 5247, 5251, 5248, 5263, 5249, 5259, 6133, 5260, 5262, 5265, - 5271, 5250, 5261, 5273, 6133, 5278, 6133, 5275, 5279, 5280, + 5120, 5122, 5123, 5125, 5124, 5126, 5132, 5147, 5129, 5143, + 5149, 5151, 5153, 5155, 5144, 5157, 5139, 5158, 5161, 5163, + 5165, 6159, 5167, 5127, 5164, 6159, 5169, 5171, 5173, 5174, + 6159, 5176, 5177, 5180, 5181, 6159, 5187, 5192, 5193, 5194, + 5195, 5202, 5198, 5199, 5200, 6159, 6159, 6159, 5207, 5214, + 6159, 5216, 5206, 5209, 5217, 6159, 5218, 5219, 6159, 6159, + 5221, 5223, 5222, 5230, 6159, 5225, 6159, 5226, 6159, 5228, + 5236, 5238, 5240, 6159, 5243, 5250, 6159, 5245, 5253, 5256, + 5257, 5258, 5260, 5259, 6159, 5267, 5263, 5265, 5272, 5262, + 5269, 5273, 5277, 5274, 5289, 5275, 5285, 6159, 5286, 5288, - 5281, 5282, 5283, 5286, 5291, 5285, 5300, 5287, 6133, 5304, - 5308, 6133, 5289, 6133, 5313, 6133, 5301, 5305, 5309, 5314, - 6133, 5316, 5318, 5297, 5322, 6133, 5323, 5326, 5327, 5329, - 6133, 6133, 5330, 5337, 5334, 5332, 5336, 5343, 5333, 5345, - 5347, 5348, 5349, 5361, 5351, 5356, 5352, 5360, 5362, 5366, - 6133, 6133, 6133, 5363, 5371, 5379, 5377, 5378, 5380, 5382, - 6133, 5383, 5385, 5387, 5386, 5395, 5390, 5394, 6133, 5397, - 5396, 5398, 5399, 5402, 5403, 5404, 6133, 5411, 5416, 5419, - 5406, 5421, 5418, 5428, 5430, 5431, 6133, 5433, 6133, 6133, - 5425, 6133, 5434, 5435, 5437, 5438, 6133, 5441, 5446, 5442, + 5291, 5297, 5276, 5287, 5299, 6159, 5304, 6159, 5301, 5305, + 5306, 5307, 5308, 5309, 5312, 5317, 5311, 5326, 5313, 6159, + 5330, 5334, 6159, 5315, 6159, 5339, 6159, 5327, 5331, 5335, + 5340, 6159, 5342, 5344, 5323, 5348, 6159, 5349, 5352, 5353, + 5355, 6159, 6159, 5356, 5363, 5360, 5358, 5362, 5369, 5359, + 5371, 5373, 5374, 5375, 5387, 5377, 5382, 5378, 5386, 5388, + 5392, 6159, 6159, 6159, 5389, 5397, 5405, 5403, 5404, 5406, + 5408, 6159, 5409, 5411, 5413, 5412, 5421, 5416, 5420, 6159, + 5423, 5422, 5424, 5425, 5428, 5429, 5430, 6159, 5437, 5442, + 5445, 5432, 5447, 5444, 5454, 5456, 5457, 6159, 5459, 6159, - 5443, 5448, 5450, 6133, 5451, 5453, 5455, 5458, 6133, 6133, - 5465, 6133, 5467, 5470, 5454, 5477, 5469, 5472, 5479, 5482, - 6133, 5476, 5483, 5484, 5485, 5486, 6133, 5490, 5488, 5491, - 5493, 6133, 5494, 5499, 5500, 5495, 5501, 6133, 5504, 5502, - 5514, 5505, 6133, 5519, 5520, 6133, 6133, 5524, 5526, 5527, - 6133, 6133, 6133, 5529, 6133, 5535, 5540, 5544, 5548, 5532, - 6133, 5550, 5543, 5551, 6133, 6133, 5547, 5552, 5553, 5555, - 6133, 6133, 5556, 5557, 5559, 5521, 5560, 6133, 5562, 5568, - 5569, 5574, 5579, 5571, 5582, 5576, 5590, 5597, 5583, 5592, - 5593, 5594, 5595, 5596, 5602, 5604, 5603, 5606, 5611, 5612, + 6159, 5451, 6159, 5460, 5461, 5463, 5464, 6159, 5467, 5472, + 5468, 5469, 5474, 5476, 6159, 5477, 5479, 5481, 5484, 6159, + 6159, 5491, 6159, 5493, 5496, 5480, 5503, 5495, 5498, 5505, + 5508, 6159, 5502, 5509, 5510, 5511, 5512, 6159, 5516, 5514, + 5517, 5519, 6159, 5520, 5525, 5526, 5521, 5527, 6159, 5530, + 5528, 5540, 5531, 6159, 5545, 5546, 6159, 6159, 5550, 5552, + 5553, 6159, 6159, 6159, 5555, 6159, 5561, 5566, 5570, 5574, + 5558, 6159, 5576, 5569, 5577, 6159, 6159, 5573, 5578, 5579, + 5581, 6159, 6159, 5582, 5583, 5585, 5547, 5586, 6159, 5588, + 5594, 5595, 5600, 5605, 5597, 5608, 5602, 5616, 5623, 5609, - 6133, 6133, 5619, 6133, 6133, 5621, 5623, 5625, 5627, 5629, - 5631, 5633, 6133, 5634, 5636, 5637, 5638, 5639, 6133, 5641, - 5645, 5640, 5648, 5642, 5651, 5647, 5657, 6133, 6133, 5649, - 5613, 5653, 5663, 5658, 6133, 5665, 5672, 5669, 5670, 5671, - 5673, 5677, 6133, 5674, 5678, 6133, 6133, 5681, 6133, 6133, - 6133, 6133, 6133, 6133, 6133, 6133, 5682, 6133, 5684, 5689, - 5695, 5699, 6133, 5686, 5692, 5700, 5702, 5703, 6133, 5705, - 5707, 5706, 5708, 5712, 5713, 5716, 5715, 5719, 5720, 5721, - 5723, 5724, 5730, 5726, 5725, 5735, 6133, 6133, 6133, 5739, - 5731, 5744, 5732, 5749, 5754, 5757, 5759, 5750, 5752, 5760, + 5618, 5619, 5620, 5621, 5622, 5628, 5630, 5629, 5632, 5637, + 5638, 6159, 6159, 5645, 6159, 6159, 5647, 5649, 5651, 5653, + 5655, 5657, 5659, 6159, 5660, 5662, 5663, 5664, 5665, 6159, + 5667, 5671, 5666, 5674, 5668, 5677, 5673, 5683, 6159, 6159, + 5675, 5639, 5679, 5689, 5684, 6159, 5691, 5698, 5695, 5696, + 5697, 5699, 5703, 6159, 5700, 5704, 6159, 6159, 5707, 6159, + 6159, 6159, 6159, 6159, 6159, 6159, 6159, 5708, 6159, 5710, + 5715, 5721, 5725, 6159, 5712, 5718, 5726, 5728, 5729, 6159, + 5731, 5733, 5732, 5734, 5738, 5739, 5742, 5741, 5745, 5746, + 5747, 5749, 5750, 5756, 5752, 5751, 5761, 6159, 6159, 6159, - 5761, 5762, 5764, 5765, 5774, 5770, 5771, 5773, 5775, 5777, - 5779, 5781, 5786, 6133, 5782, 6133, 5787, 6133, 6133, 5791, - 5792, 5788, 5798, 5807, 5808, 5799, 5803, 5804, 5806, 5810, - 5815, 6133, 5812, 5818, 6133, 5820, 5821, 6133, 5819, 5822, - 5824, 5828, 5829, 5826, 5830, 5831, 5847, 6133, 6133, 5832, - 5837, 5840, 5849, 5851, 5850, 5853, 5857, 5858, 5860, 5861, - 5870, 6133, 5867, 5868, 5872, 6133, 5874, 5869, 5875, 5876, - 5877, 5885, 5881, 5884, 6133, 5886, 6133, 5890, 5892, 5893, - 5883, 5891, 5894, 5905, 5903, 5899, 6133, 5909, 5913, 5911, - 5915, 5917, 5919, 5920, 5921, 5923, 5926, 5932, 5929, 5936, + 5765, 5757, 5770, 5758, 5775, 5780, 5783, 5785, 5776, 5778, + 5786, 5787, 5788, 5790, 5791, 5800, 5796, 5797, 5799, 5801, + 5803, 5805, 5807, 5812, 6159, 5808, 6159, 5813, 6159, 6159, + 5817, 5818, 5814, 5824, 5833, 5834, 5825, 5829, 5830, 5832, + 5836, 5841, 6159, 5838, 5844, 6159, 5846, 5847, 6159, 5845, + 5848, 5850, 5854, 5855, 5852, 5856, 5857, 5873, 6159, 6159, + 5858, 5863, 5866, 5875, 5877, 5876, 5879, 5883, 5884, 5886, + 5887, 5896, 6159, 5893, 5894, 5898, 6159, 5900, 5895, 5901, + 5902, 5903, 5911, 5907, 5910, 6159, 5912, 6159, 5916, 5918, + 5919, 5909, 5917, 5920, 5931, 5929, 5925, 6159, 5935, 5939, - 5937, 5933, 5941, 5938, 6133, 5948, 5939, 6133, 5945, 5949, - 5942, 5951, 5955, 6133, 5960, 5953, 5962, 5963, 5966, 5967, - 6133, 5969, 5976, 5971, 6133, 5977, 6133, 6133, 5979, 5973, - 5980, 5986, 5988, 6133, 6133, 6133, 6013, 6020, 6027, 6034, - 6041, 6048, 6055, 88, 6062, 6069, 6076, 6083, 6090, 6097, - 6104, 6111, 6118, 6125 + 5937, 5941, 5943, 5945, 5946, 5947, 5949, 5952, 5958, 5955, + 5962, 5963, 5959, 5967, 5964, 6159, 5974, 5965, 6159, 5971, + 5975, 5968, 5977, 5981, 6159, 5986, 5979, 5988, 5989, 5992, + 5993, 6159, 5995, 6002, 5997, 6159, 6003, 6159, 6159, 6005, + 5999, 6006, 6012, 6014, 6159, 6159, 6159, 6039, 6046, 6053, + 6060, 6067, 6074, 6081, 88, 6088, 6095, 6102, 6109, 6116, + 6123, 6130, 6137, 6144, 6151 } ; -static const flex_int16_t yy_def[3155] = +static const flex_int16_t yy_def[3166] = { 0, - 3136, 1, 3137, 3137, 3138, 3138, 3139, 3139, 3140, 3140, - 3141, 3141, 3142, 3142, 3143, 3143, 3136, 3144, 3136, 3136, - 3136, 3136, 3145, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3146, 3136, 3136, 3136, - 3146, 3147, 3136, 3136, 3136, 3147, 3148, 3136, 3136, 3136, - 3136, 3148, 3149, 3136, 3136, 3136, 3149, 3150, 3136, 3151, - 3136, 3150, 3150, 3152, 3136, 3136, 3136, 3136, 3152, 3153, - 3136, 3136, 3136, 3153, 3144, 3144, 3136, 3154, 3145, 3154, - 3145, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3147, 1, 3148, 3148, 3149, 3149, 3150, 3150, 3151, 3151, + 3152, 3152, 3153, 3153, 3154, 3154, 3147, 3155, 3147, 3147, + 3147, 3147, 3156, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3157, 3147, 3147, 3147, + 3157, 3158, 3147, 3147, 3147, 3158, 3159, 3147, 3147, 3147, + 3147, 3159, 3160, 3147, 3147, 3147, 3160, 3161, 3147, 3162, + 3147, 3161, 3161, 3163, 3147, 3147, 3147, 3147, 3163, 3164, + 3147, 3147, 3147, 3164, 3155, 3155, 3147, 3165, 3156, 3165, + 3156, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3146, 3146, 3147, 3147, - 3148, 3148, 3136, 3149, 3149, 3150, 3150, 3151, 3151, 3150, - 3152, 3152, 3136, 3153, 3153, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3157, 3157, 3158, 3158, + 3159, 3159, 3147, 3160, 3160, 3161, 3161, 3162, 3162, 3161, + 3163, 3163, 3147, 3164, 3164, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3150, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3161, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3150, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3161, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3150, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3161, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3150, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3161, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3136, 3136, 3144, 3136, 3136, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3147, 3147, 3155, 3147, 3147, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3150, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3161, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3136, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3150, - 3150, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3161, 3161, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3150, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3161, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3150, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3161, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3136, 3150, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3161, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3136, 3136, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3150, 3144, 3136, 3144, 3144, 3144, 3136, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3147, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3144, - 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3136, + 3161, 3155, 3147, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3155, 3147, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3150, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3147, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3161, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3147, 3155, 3155, 3155, 3155, 3155, - 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3136, 3144, 3144, 3144, 3144, 3150, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, + 3155, 3155, 3155, 3155, 3161, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3136, 3136, 3144, 3136, 3144, 3136, 3144, - 3144, 3136, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3147, 3147, 3155, 3147, 3155, 3147, 3155, + 3155, 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3150, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3161, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3147, 3155, 3155, 3155, 3155, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3136, 3136, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3136, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3150, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3136, 3136, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3147, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3161, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3136, 3150, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3144, 3136, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3147, 3147, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3147, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3147, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3147, 3161, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3155, 3147, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3136, 3136, 3144, 3144, 3136, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3136, 3136, 3144, - 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3136, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3147, 3155, 3155, + 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3147, 3147, + 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3136, 3144, 3136, 3144, 3136, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3136, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3136, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3136, 3136, - 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3147, 3155, 3147, 3155, 3147, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3136, 3136, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3136, 3136, 3144, 3144, 3144, - 3136, 3136, 3136, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3136, 3136, 3144, 3144, 3144, 3144, - 3136, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3147, 3155, 3147, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3147, + 3147, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3147, 3147, 3155, 3155, + 3155, 3147, 3147, 3147, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3147, 3147, 3155, 3155, 3155, + 3155, 3147, 3147, 3155, 3155, 3155, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, - 3136, 3136, 3144, 3136, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3136, 3136, 3144, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3144, 3136, 3144, 3144, - 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3147, 3155, 3147, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3147, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3147, 3147, 3155, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3155, 3147, 3155, + 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3147, 3147, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3136, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3136, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3136, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, - 3144, 3136, 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3136, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3144, - 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, 3144, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3147, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3147, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3147, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3147, 3155, 3155, 3155, 3147, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3147, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, - 3144, 3144, 3144, 3144, 3136, 3144, 3144, 3136, 3144, 3144, - 3144, 3144, 3144, 3136, 3144, 3144, 3144, 3144, 3144, 3144, - 3136, 3144, 3144, 3144, 3136, 3144, 3136, 3136, 3144, 3144, - 3144, 3144, 3144, 3136, 3136, 0, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136 + 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, + 3155, 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3147, 3155, + 3155, 3155, 3155, 3155, 3147, 3155, 3155, 3155, 3155, 3155, + 3155, 3147, 3155, 3155, 3155, 3147, 3155, 3147, 3147, 3155, + 3155, 3155, 3155, 3155, 3147, 3147, 0, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147 } ; -static const flex_int16_t yy_nxt[6174] = +static const flex_int16_t yy_nxt[6200] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1541,7 +1544,7 @@ static const flex_int16_t yy_nxt[6174] = 86, 433, 434, 431, 430, 436, 86, 86, 86, 435, 86, 86, 86, 86, 449, 86, 443, 445, 454, 86, 432, 86, 86, 455, 86, 446, 450, 447, 444, 86, - 437, 451, 86, 438, 452, 453, 86, 606, 439, 440, + 437, 451, 86, 438, 452, 453, 86, 607, 439, 440, 441, 442, 86, 448, 86, 456, 457, 86, 86, 458, 86, 459, 86, 460, 462, 86, 461, 463, 86, 464, @@ -1553,7 +1556,7 @@ static const flex_int16_t yy_nxt[6174] = 86, 485, 493, 86, 486, 86, 487, 86, 494, 86, 508, 167, 495, 505, 86, 506, 504, 507, 519, 510, 496, 86, 497, 86, 498, 520, 509, 86, 86, 518, - 521, 86, 523, 522, 86, 86, 86, 499, 525, 841, + 521, 86, 523, 522, 86, 86, 86, 499, 525, 843, 500, 86, 501, 528, 502, 86, 86, 511, 512, 86, 526, 86, 86, 524, 527, 86, 86, 513, 86, 514, @@ -1561,583 +1564,586 @@ static const flex_int16_t yy_nxt[6174] = 537, 540, 538, 533, 86, 534, 535, 86, 536, 86, 541, 86, 86, 539, 545, 86, 86, 86, 549, 550, 86, 86, 548, 543, 542, 86, 544, 86, 86, 86, - 86, 555, 547, 86, 86, 86, 556, 86, 86, 558, - 546, 559, 86, 552, 553, 551, 86, 554, 86, 561, - 86, 86, 634, 86, 557, 86, 560, 562, 564, 86, - 86, 563, 567, 572, 570, 566, 86, 86, 565, 573, + 160, 555, 547, 86, 86, 86, 556, 557, 86, 559, + 546, 86, 560, 552, 553, 551, 86, 554, 86, 562, + 86, 86, 86, 86, 558, 86, 86, 561, 86, 86, + 563, 564, 86, 572, 568, 571, 565, 567, 86, 566, - 574, 571, 86, 568, 86, 569, 86, 86, 576, 86, - 86, 577, 578, 86, 581, 579, 86, 86, 575, 583, - 86, 86, 584, 86, 580, 86, 586, 587, 86, 582, - 86, 86, 588, 86, 585, 86, 591, 86, 589, 86, - 592, 86, 593, 86, 86, 86, 86, 86, 599, 595, - 594, 590, 603, 86, 86, 602, 598, 600, 601, 596, - 86, 597, 86, 605, 86, 607, 86, 86, 86, 86, - 86, 86, 86, 617, 86, 609, 86, 610, 619, 86, - 86, 604, 612, 86, 86, 618, 624, 608, 616, 611, - 613, 615, 614, 86, 621, 86, 86, 86, 620, 627, + 575, 574, 573, 576, 86, 569, 86, 570, 86, 581, + 577, 86, 578, 86, 579, 86, 582, 86, 580, 584, + 86, 86, 86, 86, 587, 588, 585, 86, 86, 86, + 583, 86, 589, 86, 86, 586, 86, 594, 592, 593, + 86, 86, 590, 86, 86, 595, 86, 86, 86, 600, + 591, 601, 596, 86, 603, 599, 86, 86, 86, 86, + 602, 597, 598, 604, 86, 606, 86, 608, 86, 86, + 86, 613, 86, 86, 86, 618, 610, 605, 609, 611, + 620, 86, 86, 86, 86, 158, 86, 86, 617, 612, + 614, 619, 615, 616, 86, 623, 86, 622, 624, 621, - 86, 86, 630, 622, 629, 86, 623, 86, 86, 86, - 625, 86, 626, 86, 633, 86, 86, 636, 86, 86, - 628, 632, 86, 637, 639, 86, 631, 86, 86, 86, - 638, 86, 635, 653, 86, 641, 86, 667, 640, 86, - 642, 86, 643, 652, 86, 651, 86, 644, 656, 645, - 654, 660, 655, 86, 659, 646, 86, 647, 657, 86, - 648, 649, 658, 664, 86, 86, 86, 650, 663, 86, - 86, 670, 661, 86, 665, 662, 86, 672, 86, 86, - 666, 86, 86, 86, 86, 86, 669, 86, 668, 678, - 86, 674, 86, 673, 679, 86, 675, 86, 671, 683, + 86, 86, 628, 625, 629, 631, 86, 86, 86, 630, + 626, 86, 86, 86, 86, 86, 627, 634, 637, 86, + 86, 633, 86, 86, 638, 640, 86, 86, 86, 632, + 86, 86, 86, 668, 86, 635, 636, 639, 86, 641, + 643, 86, 654, 903, 86, 642, 86, 644, 652, 653, + 655, 86, 645, 86, 646, 657, 86, 656, 86, 660, + 647, 661, 648, 658, 86, 649, 650, 659, 86, 667, + 665, 86, 651, 86, 86, 671, 86, 664, 86, 86, + 662, 666, 86, 663, 86, 673, 86, 86, 86, 86, + 86, 675, 86, 670, 669, 679, 86, 674, 680, 86, - 167, 676, 685, 682, 684, 677, 680, 681, 86, 86, - 687, 86, 86, 86, 86, 86, 86, 86, 86, 692, - 694, 686, 696, 86, 86, 695, 689, 697, 690, 693, - 688, 699, 691, 86, 86, 86, 698, 86, 701, 86, - 86, 86, 86, 86, 705, 86, 700, 704, 713, 86, - 86, 710, 706, 702, 715, 703, 711, 86, 86, 707, - 86, 709, 708, 712, 714, 86, 716, 86, 717, 86, - 718, 86, 719, 86, 722, 86, 86, 720, 86, 721, - 723, 86, 86, 86, 86, 726, 86, 86, 727, 725, - 731, 730, 724, 86, 86, 86, 86, 732, 86, 86, + 86, 676, 683, 672, 167, 86, 677, 686, 685, 684, + 678, 681, 86, 86, 682, 86, 86, 687, 86, 86, + 86, 86, 86, 695, 693, 697, 86, 688, 86, 86, + 690, 86, 698, 691, 689, 694, 696, 692, 86, 700, + 86, 699, 86, 701, 86, 86, 86, 702, 86, 86, + 86, 705, 706, 86, 703, 711, 724, 704, 86, 707, + 712, 86, 714, 86, 710, 86, 708, 715, 86, 709, + 716, 713, 717, 86, 718, 86, 86, 719, 86, 720, + 86, 86, 86, 86, 721, 86, 722, 725, 86, 727, + 723, 728, 86, 86, 86, 733, 86, 729, 86, 726, - 734, 86, 736, 86, 737, 729, 86, 728, 86, 86, - 743, 86, 733, 86, 739, 738, 86, 86, 735, 740, - 86, 742, 746, 741, 744, 747, 86, 750, 86, 745, - 748, 86, 86, 86, 752, 86, 753, 751, 86, 86, - 755, 749, 756, 757, 86, 86, 86, 86, 86, 86, - 764, 86, 762, 760, 86, 86, 86, 86, 754, 86, - 758, 761, 770, 759, 765, 160, 768, 86, 86, 763, - 86, 769, 767, 766, 86, 86, 771, 772, 773, 774, - 86, 86, 86, 775, 779, 777, 86, 776, 781, 778, - 86, 780, 86, 86, 86, 782, 784, 86, 783, 86, + 732, 86, 734, 86, 86, 86, 738, 86, 86, 736, + 86, 86, 86, 731, 741, 739, 730, 86, 86, 742, + 763, 735, 740, 743, 86, 737, 86, 745, 86, 86, + 86, 86, 752, 748, 749, 744, 746, 86, 86, 86, + 747, 755, 86, 86, 750, 754, 751, 86, 753, 86, + 86, 86, 757, 758, 759, 86, 86, 86, 86, 760, + 86, 764, 762, 756, 766, 86, 86, 767, 772, 761, + 86, 86, 86, 86, 86, 86, 773, 765, 774, 768, + 770, 86, 769, 86, 771, 775, 776, 86, 86, 86, + 777, 779, 781, 783, 778, 780, 86, 86, 86, 86, - 86, 785, 86, 791, 86, 788, 86, 86, 86, 86, - 786, 86, 787, 794, 86, 793, 86, 796, 797, 789, - 790, 86, 800, 792, 798, 86, 801, 795, 86, 803, - 802, 86, 805, 86, 804, 86, 86, 86, 807, 799, - 86, 86, 809, 86, 86, 86, 86, 815, 86, 86, - 86, 86, 816, 86, 86, 86, 808, 86, 806, 810, - 817, 811, 812, 86, 813, 818, 814, 820, 86, 819, - 824, 86, 823, 86, 821, 822, 86, 86, 86, 86, - 86, 86, 825, 826, 829, 86, 86, 86, 86, 86, - 838, 86, 827, 836, 831, 839, 828, 830, 86, 832, + 784, 782, 86, 786, 86, 86, 86, 785, 787, 86, + 793, 790, 86, 86, 86, 86, 86, 788, 789, 796, + 86, 798, 795, 86, 86, 791, 792, 800, 802, 86, + 799, 794, 86, 805, 86, 797, 86, 804, 806, 86, + 86, 803, 801, 86, 807, 86, 86, 809, 811, 86, + 86, 86, 86, 86, 817, 86, 86, 86, 86, 810, + 86, 808, 818, 86, 819, 86, 86, 812, 813, 814, + 86, 815, 820, 816, 822, 86, 86, 826, 821, 86, + 86, 825, 824, 86, 823, 86, 86, 86, 828, 827, + 831, 86, 86, 86, 86, 86, 86, 840, 829, 830, - 86, 837, 86, 833, 834, 835, 86, 843, 86, 86, - 86, 86, 86, 86, 842, 86, 847, 840, 848, 849, - 850, 86, 844, 846, 86, 86, 851, 845, 86, 852, - 86, 853, 86, 167, 854, 86, 86, 86, 858, 856, - 859, 86, 855, 86, 857, 860, 86, 86, 86, 861, - 86, 863, 862, 866, 86, 86, 867, 869, 86, 870, - 864, 86, 86, 872, 868, 86, 874, 871, 865, 86, - 86, 86, 878, 86, 86, 86, 86, 875, 86, 86, - 880, 873, 879, 86, 86, 86, 86, 86, 898, 877, - 894, 86, 86, 881, 893, 876, 86, 895, 891, 883, + 838, 86, 86, 832, 86, 834, 841, 833, 839, 86, + 835, 836, 837, 86, 845, 86, 86, 86, 844, 86, + 842, 86, 86, 849, 850, 86, 86, 852, 851, 846, + 848, 853, 86, 86, 847, 86, 86, 86, 86, 855, + 861, 167, 856, 854, 86, 858, 860, 86, 862, 857, + 859, 86, 86, 86, 86, 868, 86, 86, 869, 86, + 864, 863, 871, 86, 86, 874, 870, 865, 866, 86, + 86, 86, 86, 872, 867, 86, 876, 86, 873, 880, + 86, 86, 877, 86, 86, 86, 86, 86, 881, 875, + 882, 86, 86, 86, 901, 879, 86, 86, 86, 883, - 897, 882, 86, 892, 884, 86, 899, 885, 896, 86, - 86, 886, 86, 86, 887, 86, 86, 904, 86, 920, - 900, 888, 889, 86, 890, 86, 902, 86, 901, 86, - 912, 158, 916, 903, 86, 905, 906, 913, 907, 86, - 915, 908, 917, 86, 86, 914, 909, 918, 86, 923, - 919, 86, 910, 911, 921, 86, 922, 86, 86, 86, - 924, 926, 86, 925, 86, 86, 927, 86, 86, 930, - 929, 928, 86, 86, 934, 86, 933, 86, 86, 86, - 937, 86, 86, 941, 943, 86, 86, 931, 86, 86, - 935, 932, 936, 939, 86, 938, 944, 962, 86, 942, + 878, 895, 893, 896, 897, 898, 885, 86, 894, 884, + 86, 86, 886, 86, 86, 887, 86, 900, 86, 888, + 86, 902, 889, 899, 86, 905, 86, 907, 86, 890, + 891, 915, 892, 86, 904, 916, 86, 923, 906, 86, + 908, 909, 917, 910, 86, 86, 911, 919, 86, 920, + 175, 912, 922, 918, 921, 86, 86, 913, 914, 86, + 925, 926, 86, 924, 86, 927, 929, 86, 86, 928, + 930, 86, 86, 86, 86, 86, 86, 933, 86, 86, + 937, 86, 86, 931, 86, 940, 936, 86, 86, 173, + 938, 932, 944, 86, 934, 935, 939, 86, 86, 941, - 947, 945, 86, 946, 940, 948, 86, 86, 950, 86, - 86, 86, 949, 951, 86, 952, 86, 954, 86, 955, - 86, 86, 86, 86, 953, 86, 86, 86, 958, 956, - 961, 86, 959, 964, 86, 963, 86, 86, 86, 86, - 957, 86, 86, 86, 86, 960, 966, 967, 969, 86, - 970, 86, 971, 965, 86, 86, 972, 86, 973, 977, - 968, 86, 979, 975, 978, 86, 86, 974, 976, 86, - 86, 86, 980, 86, 984, 986, 987, 86, 982, 86, - 86, 86, 985, 86, 86, 981, 989, 86, 86, 86, - 86, 86, 86, 86, 983, 997, 1000, 86, 995, 86, + 942, 947, 945, 946, 86, 86, 948, 86, 950, 943, + 949, 951, 963, 86, 86, 953, 86, 86, 952, 954, + 86, 86, 86, 957, 86, 86, 955, 958, 86, 86, + 956, 86, 86, 959, 964, 86, 961, 86, 967, 962, + 86, 86, 86, 86, 86, 86, 965, 960, 966, 86, + 86, 969, 970, 86, 972, 86, 974, 86, 86, 973, + 968, 86, 975, 86, 86, 982, 86, 86, 980, 971, + 978, 86, 976, 981, 86, 86, 979, 990, 86, 86, + 977, 983, 987, 86, 985, 989, 984, 86, 86, 86, + 988, 86, 86, 992, 86, 986, 86, 86, 86, 86, - 988, 990, 86, 991, 992, 86, 1001, 86, 994, 993, - 998, 1002, 999, 996, 86, 86, 86, 86, 1008, 86, - 1005, 1004, 1007, 86, 1003, 86, 86, 86, 86, 1006, - 86, 86, 1010, 1017, 1012, 1018, 1009, 1020, 86, 86, - 86, 86, 1022, 86, 86, 1011, 175, 1013, 86, 1015, - 1014, 1016, 1019, 1023, 86, 86, 86, 86, 1024, 86, - 1021, 1028, 1031, 1025, 86, 1030, 86, 1026, 86, 1032, - 86, 86, 86, 1035, 86, 1027, 1037, 86, 1029, 86, - 86, 86, 86, 86, 1034, 1040, 1039, 1043, 1033, 1042, - 1041, 167, 1036, 86, 1044, 86, 86, 86, 1038, 86, + 86, 86, 86, 1000, 86, 998, 86, 1003, 991, 86, + 993, 994, 995, 86, 1005, 1004, 996, 997, 1001, 86, + 1002, 999, 86, 1006, 86, 86, 1011, 86, 1008, 1012, + 1010, 86, 86, 1007, 86, 86, 86, 86, 1009, 86, + 1013, 1020, 1015, 1021, 1023, 86, 86, 86, 1025, 86, + 86, 1026, 1014, 86, 86, 1016, 1018, 86, 1017, 1019, + 1022, 86, 86, 86, 86, 1024, 1027, 86, 1031, 86, + 1033, 1034, 1028, 1029, 86, 86, 1038, 86, 1035, 86, + 1037, 1030, 86, 1040, 86, 1032, 86, 86, 86, 1043, + 86, 1047, 1036, 1042, 1044, 167, 86, 86, 86, 1039, - 86, 1047, 86, 86, 1045, 86, 1059, 86, 1062, 86, - 86, 1060, 86, 86, 1050, 1046, 1048, 1064, 86, 86, - 1087, 86, 1051, 1049, 1052, 86, 86, 1061, 1053, 86, - 1054, 1078, 86, 1065, 1055, 1063, 1056, 1067, 86, 1069, - 1066, 1057, 86, 1068, 1070, 86, 1058, 1071, 86, 86, - 86, 86, 1073, 86, 1079, 86, 1072, 86, 1076, 86, - 86, 86, 86, 173, 1074, 1075, 1084, 1085, 1077, 1080, - 1083, 1082, 1081, 86, 1086, 86, 1088, 1089, 1091, 86, - 86, 86, 86, 86, 1090, 86, 86, 1101, 86, 1104, - 86, 1100, 86, 1092, 86, 1093, 86, 1105, 1103, 1102, + 1046, 86, 1045, 86, 1041, 86, 1050, 86, 86, 86, + 86, 1062, 86, 1065, 86, 172, 1063, 86, 1049, 1048, + 86, 1053, 1051, 86, 86, 1091, 86, 1067, 1054, 1052, + 1055, 86, 1064, 86, 1056, 86, 1057, 86, 1070, 1068, + 1058, 86, 1059, 86, 86, 1066, 86, 1060, 1072, 1069, + 1074, 1071, 1061, 1073, 86, 86, 1081, 1075, 86, 1076, + 86, 1078, 86, 1079, 86, 1082, 86, 86, 86, 86, + 86, 1077, 1088, 1080, 1092, 1087, 1083, 1086, 1089, 86, + 1085, 1090, 1093, 86, 86, 1084, 86, 86, 86, 86, + 86, 86, 1094, 86, 86, 1105, 86, 1108, 86, 1109, - 1094, 86, 1095, 86, 1106, 1110, 86, 86, 1096, 1108, - 86, 1111, 1113, 1097, 1098, 1107, 86, 86, 86, 1114, - 1099, 86, 1109, 1117, 86, 86, 86, 86, 86, 86, - 1112, 1118, 86, 86, 1116, 86, 1115, 1120, 1123, 86, - 1126, 1121, 86, 1119, 86, 1127, 1125, 86, 1124, 1122, - 86, 86, 86, 86, 86, 86, 1128, 1135, 86, 1133, - 1131, 1132, 1130, 86, 86, 86, 86, 1129, 86, 1137, - 86, 1134, 86, 86, 1136, 1143, 86, 86, 1144, 1140, - 86, 1145, 86, 1147, 1138, 1139, 1141, 1142, 1148, 1146, - 1149, 86, 1151, 86, 86, 86, 1153, 1152, 86, 1154, + 86, 1104, 1095, 1107, 1096, 86, 1097, 1106, 1110, 86, + 86, 1098, 1111, 1099, 1114, 86, 86, 86, 167, 1100, + 1115, 1117, 86, 86, 1101, 1102, 1118, 86, 1112, 1113, + 86, 1103, 1121, 86, 86, 86, 86, 1116, 86, 1122, + 86, 1119, 1127, 1120, 1124, 1125, 86, 86, 86, 86, + 86, 86, 1123, 86, 1130, 1128, 1126, 86, 86, 86, + 86, 86, 86, 86, 86, 1132, 1129, 1135, 1136, 1134, + 1131, 86, 86, 1133, 1139, 86, 1140, 1137, 1138, 86, + 86, 1145, 1142, 1143, 165, 86, 1141, 86, 86, 1144, + 1147, 86, 1148, 1149, 1146, 86, 1151, 1152, 86, 86, - 86, 86, 86, 1155, 86, 86, 86, 1150, 1162, 86, - 1164, 86, 86, 1157, 86, 1156, 86, 1166, 1158, 1160, - 1161, 86, 1159, 86, 86, 86, 1165, 1168, 86, 1163, - 1170, 86, 86, 1171, 86, 1167, 86, 1173, 86, 1174, - 86, 1180, 86, 86, 1169, 1179, 1176, 1172, 1175, 1178, - 86, 86, 86, 86, 1177, 86, 1183, 86, 1184, 1181, - 86, 86, 86, 86, 86, 1188, 1190, 86, 1191, 1192, - 1182, 86, 86, 1185, 86, 86, 1189, 86, 1195, 1186, - 1193, 1187, 1194, 1198, 86, 1196, 86, 86, 86, 86, - 86, 1197, 1199, 1200, 86, 1201, 86, 1202, 86, 86, + 1150, 1155, 86, 86, 86, 1157, 1156, 86, 1158, 86, + 86, 1153, 1159, 86, 86, 1154, 1160, 1166, 86, 86, + 86, 1168, 86, 86, 86, 86, 163, 86, 86, 1162, + 1161, 1164, 1163, 1170, 1165, 86, 86, 1169, 1171, 1172, + 1167, 86, 86, 86, 86, 86, 1173, 1174, 1175, 1177, + 1178, 1176, 86, 1179, 86, 86, 1183, 86, 1180, 1184, + 86, 1182, 86, 86, 86, 86, 1185, 1187, 86, 1188, + 1181, 86, 86, 86, 86, 86, 1192, 86, 1194, 1195, + 1196, 1186, 1197, 1189, 86, 86, 86, 1193, 1199, 86, + 1190, 1198, 1191, 86, 86, 1202, 86, 86, 1204, 86, - 86, 1205, 1206, 86, 86, 86, 1211, 1212, 1203, 86, - 86, 1207, 86, 86, 1214, 1204, 1209, 1215, 86, 86, - 86, 1208, 1219, 86, 1210, 1213, 86, 86, 86, 86, - 86, 86, 1225, 86, 1217, 1218, 167, 1221, 1216, 86, - 86, 86, 86, 1232, 86, 1220, 1230, 86, 1222, 86, - 1224, 172, 1229, 1227, 1234, 1223, 1226, 1228, 1231, 1235, - 86, 86, 86, 86, 1237, 86, 1236, 1233, 1238, 86, - 86, 86, 86, 86, 86, 86, 1241, 86, 1247, 86, - 86, 1244, 86, 1239, 1240, 86, 86, 1242, 86, 167, - 1245, 1251, 1243, 86, 1248, 86, 1246, 86, 1253, 1257, + 86, 86, 1203, 86, 86, 1205, 86, 1200, 86, 1206, + 86, 1209, 86, 1201, 86, 1210, 86, 1211, 1215, 1216, + 86, 1207, 86, 1208, 86, 86, 1213, 86, 1212, 1219, + 86, 86, 1218, 86, 86, 1214, 1223, 1217, 86, 1220, + 86, 86, 86, 86, 167, 1221, 1222, 1225, 1229, 86, + 86, 1224, 86, 86, 86, 86, 86, 86, 1234, 1241, + 1226, 162, 1228, 1235, 1230, 1232, 1231, 1227, 1233, 1236, + 86, 1238, 1239, 86, 86, 1237, 86, 86, 86, 1240, + 86, 1242, 86, 86, 86, 86, 86, 1243, 1245, 86, + 1251, 86, 1248, 86, 1244, 86, 86, 1246, 86, 86, - 1249, 1250, 86, 1258, 1261, 86, 86, 1254, 1252, 1255, - 1259, 86, 1256, 1260, 86, 86, 86, 86, 1263, 86, - 1262, 86, 86, 86, 1267, 86, 1266, 1270, 86, 86, - 1264, 1273, 86, 86, 1265, 1269, 1271, 86, 1274, 86, - 1268, 86, 1275, 86, 1277, 1278, 86, 1272, 86, 1276, - 86, 86, 1279, 86, 86, 86, 86, 86, 86, 86, - 86, 1280, 1285, 1281, 86, 1283, 1284, 86, 1286, 1282, - 1290, 1295, 86, 1287, 1291, 86, 1289, 86, 1288, 86, - 1292, 1294, 86, 86, 86, 86, 86, 1293, 86, 1300, - 1296, 1298, 86, 1297, 1302, 86, 1307, 1301, 86, 1303, + 86, 1249, 86, 1247, 1255, 1263, 1261, 1252, 1250, 86, + 86, 1254, 86, 1253, 1257, 86, 1262, 1264, 86, 1256, + 86, 86, 86, 1258, 1266, 1259, 86, 1265, 1260, 1267, + 86, 1268, 86, 86, 1273, 1271, 86, 86, 86, 1269, + 86, 1270, 1274, 1278, 86, 86, 86, 86, 86, 1276, + 1275, 1279, 1272, 1280, 86, 86, 1284, 86, 1283, 1277, + 1282, 86, 86, 86, 86, 1281, 86, 86, 86, 86, + 86, 86, 1285, 1290, 86, 1288, 1286, 1295, 86, 1289, + 1291, 1287, 86, 86, 86, 1300, 1292, 86, 1294, 1296, + 1293, 86, 1299, 86, 86, 86, 86, 86, 1297, 1301, - 86, 1306, 1299, 1316, 86, 1304, 1305, 86, 86, 86, - 1375, 1314, 1308, 1315, 86, 1309, 1310, 86, 1317, 1318, - 1311, 1320, 86, 86, 86, 86, 1312, 86, 1321, 1322, - 1313, 1319, 86, 1323, 86, 1325, 86, 86, 86, 1326, - 86, 1327, 86, 86, 86, 86, 1324, 1335, 1332, 1330, - 86, 86, 1344, 86, 1336, 1337, 1329, 1328, 1333, 86, - 86, 86, 1331, 1334, 86, 1338, 1345, 1346, 1339, 86, - 86, 86, 86, 1340, 86, 1341, 1348, 1342, 86, 1343, - 86, 1347, 1350, 1351, 1352, 86, 1349, 1354, 86, 1353, - 86, 86, 86, 1356, 86, 86, 86, 1362, 86, 1357, + 86, 1302, 1298, 1303, 1307, 1305, 1306, 86, 86, 1308, + 86, 1310, 86, 1304, 86, 1309, 86, 1312, 1321, 160, + 1311, 86, 1338, 1320, 86, 1319, 1313, 86, 1322, 1314, + 1315, 86, 86, 1325, 1316, 86, 1323, 86, 86, 86, + 1317, 1324, 1326, 1327, 1318, 86, 1328, 86, 1330, 86, + 86, 86, 1331, 86, 1332, 86, 1329, 86, 86, 86, + 1340, 1341, 1335, 1337, 1412, 86, 86, 86, 86, 1334, + 1333, 86, 86, 1342, 1344, 1336, 1343, 1339, 86, 1345, + 86, 1346, 1352, 1347, 1353, 1348, 86, 1349, 1350, 1351, + 86, 86, 86, 1354, 1357, 86, 86, 86, 86, 1358, - 1358, 86, 1355, 86, 86, 1363, 1364, 86, 86, 1361, - 1365, 1359, 1366, 1360, 86, 1367, 86, 1368, 86, 1372, - 86, 86, 86, 1371, 1374, 86, 86, 1377, 86, 1376, - 86, 86, 1369, 1380, 86, 86, 1373, 1382, 86, 1379, - 1384, 1370, 86, 1383, 86, 86, 86, 1378, 1387, 86, - 86, 1381, 86, 86, 86, 1389, 86, 86, 86, 1391, - 86, 1397, 1393, 86, 1394, 1385, 1386, 1392, 86, 86, - 1388, 1395, 1396, 1390, 1399, 86, 86, 1398, 86, 86, - 86, 1401, 86, 1400, 1402, 86, 1403, 1404, 86, 1409, - 86, 86, 1410, 1408, 1406, 86, 1405, 1407, 86, 86, + 86, 1356, 1361, 86, 1359, 86, 86, 86, 1355, 1367, + 86, 1368, 1362, 86, 1363, 86, 86, 86, 1360, 86, + 86, 1366, 1364, 86, 1369, 1365, 86, 1370, 1371, 1373, + 86, 1372, 1377, 86, 86, 1376, 86, 1374, 1379, 86, + 86, 86, 1380, 86, 1381, 86, 1385, 86, 1382, 1378, + 86, 1375, 1387, 86, 1384, 1383, 86, 1388, 86, 86, + 86, 1392, 86, 1389, 86, 86, 86, 86, 1394, 86, + 1386, 86, 1396, 1398, 86, 86, 86, 86, 1397, 1400, + 1390, 1391, 1402, 86, 1393, 86, 1395, 86, 86, 86, + 1401, 86, 1399, 1404, 1406, 1405, 1407, 1403, 86, 1408, - 1412, 86, 86, 86, 1411, 167, 86, 1416, 86, 86, - 1413, 1417, 86, 1421, 1415, 86, 1422, 86, 1424, 86, - 1418, 1414, 86, 1423, 86, 86, 86, 1428, 86, 1419, - 86, 86, 1431, 86, 86, 1420, 86, 86, 86, 1425, - 1436, 86, 1429, 1435, 86, 1426, 1427, 86, 1430, 1438, - 1440, 86, 86, 1432, 1434, 1441, 86, 86, 86, 1433, - 1437, 1443, 86, 86, 86, 1444, 1439, 165, 86, 1442, - 86, 86, 1445, 1449, 86, 1456, 1450, 1446, 1447, 1451, - 86, 1448, 1452, 1454, 86, 1453, 1457, 86, 1455, 86, - 86, 1458, 86, 1459, 86, 86, 86, 86, 86, 1462, + 86, 86, 86, 1410, 1414, 1409, 1415, 1411, 86, 86, + 86, 1417, 86, 1416, 86, 1413, 86, 86, 1418, 1421, + 86, 86, 167, 86, 86, 1426, 1427, 1420, 86, 1429, + 86, 86, 86, 1419, 1428, 86, 86, 1423, 86, 86, + 86, 1422, 86, 1424, 1430, 86, 1436, 1425, 86, 86, + 1431, 1433, 1434, 86, 86, 86, 1432, 86, 1435, 1440, + 1441, 86, 1437, 86, 1445, 86, 86, 1439, 1443, 1446, + 86, 86, 86, 1438, 1444, 1447, 1442, 86, 86, 1450, + 1448, 1451, 86, 1454, 86, 1449, 1455, 1452, 86, 1459, + 1453, 1456, 86, 86, 1457, 86, 1462, 1460, 1458, 1461, - 1463, 86, 1465, 86, 86, 86, 1470, 86, 1461, 86, - 86, 1471, 86, 1460, 1464, 1467, 86, 1474, 1466, 86, - 86, 1468, 1469, 86, 1475, 86, 86, 1472, 86, 1473, - 86, 86, 86, 1477, 86, 1476, 1481, 1482, 86, 1480, - 1478, 1479, 86, 1483, 86, 1486, 1484, 1487, 86, 86, - 1489, 1485, 86, 1492, 1488, 1493, 86, 1491, 86, 86, - 1497, 86, 86, 1494, 86, 1495, 1496, 86, 86, 86, - 1490, 86, 86, 86, 1503, 86, 1499, 1498, 86, 1502, - 86, 86, 86, 1500, 1509, 86, 1501, 1506, 1505, 1510, - 86, 1511, 1507, 86, 1514, 1504, 1512, 86, 86, 86, + 86, 1463, 86, 86, 86, 86, 86, 86, 86, 86, + 1467, 1468, 86, 86, 1471, 86, 86, 86, 1476, 1464, + 86, 86, 1466, 86, 1477, 1469, 86, 1473, 1470, 1465, + 1480, 86, 1472, 1474, 1475, 86, 86, 86, 1481, 1478, + 86, 86, 1479, 86, 86, 86, 86, 86, 1487, 1483, + 1482, 1488, 1484, 86, 86, 1485, 1491, 86, 1489, 86, + 1486, 86, 1492, 1490, 1498, 1494, 86, 1496, 1499, 1493, + 86, 1497, 86, 1495, 86, 86, 1500, 86, 1501, 1502, + 86, 86, 86, 86, 86, 1503, 86, 86, 1509, 86, + 1505, 1504, 86, 1508, 86, 86, 86, 1506, 1515, 1507, - 1508, 86, 86, 86, 86, 1513, 1522, 1518, 86, 86, - 1517, 86, 86, 1525, 1523, 86, 86, 1515, 1516, 86, - 86, 86, 1519, 1528, 1520, 86, 1521, 1527, 86, 86, - 86, 86, 86, 86, 1526, 1529, 1542, 1524, 86, 1530, - 86, 1536, 86, 86, 1531, 1533, 1537, 1532, 1535, 86, - 1538, 1534, 1539, 86, 1540, 86, 86, 86, 86, 86, - 1549, 1541, 1543, 86, 1550, 1546, 1544, 86, 86, 1547, - 86, 1545, 1554, 86, 86, 1556, 86, 86, 86, 1555, - 86, 86, 1548, 1551, 86, 1559, 1553, 1552, 1560, 86, - 1558, 1557, 86, 1561, 86, 1565, 1566, 86, 1562, 86, + 1511, 1512, 86, 1516, 86, 1517, 86, 1520, 1513, 1510, + 1518, 86, 86, 86, 1514, 86, 86, 86, 86, 86, + 1528, 1524, 1519, 86, 1523, 86, 86, 1531, 1529, 86, + 86, 1521, 1522, 86, 86, 1534, 1525, 1527, 1526, 86, + 1533, 86, 86, 86, 86, 86, 86, 1542, 1532, 1535, + 86, 1530, 86, 1543, 86, 1545, 86, 158, 1536, 1539, + 86, 1537, 1538, 1546, 86, 1540, 1544, 1541, 86, 86, + 86, 86, 86, 1547, 1548, 86, 86, 1552, 1555, 86, + 1550, 1553, 1549, 86, 1556, 1551, 86, 1560, 86, 86, + 86, 1557, 1562, 86, 1554, 1561, 86, 86, 86, 86, - 86, 86, 86, 86, 1570, 1571, 86, 1569, 1573, 86, - 1563, 86, 86, 86, 1564, 1574, 86, 1567, 1575, 86, - 86, 1568, 86, 1578, 86, 86, 1572, 86, 1581, 1576, - 86, 86, 1577, 1580, 86, 86, 86, 1587, 86, 1585, - 1582, 86, 1579, 86, 86, 86, 1592, 1588, 86, 1586, - 1584, 1583, 86, 86, 86, 86, 1597, 86, 1590, 1589, - 1595, 86, 1593, 86, 1600, 1598, 86, 86, 1596, 1591, - 1594, 86, 86, 167, 1599, 1603, 86, 86, 1602, 1606, - 86, 1605, 86, 86, 86, 86, 86, 1614, 1601, 1607, - 86, 1604, 86, 86, 86, 1608, 1609, 1615, 1612, 1618, + 86, 1565, 1559, 1558, 1563, 86, 1564, 86, 1571, 1566, + 86, 1567, 1572, 86, 86, 86, 86, 1568, 1569, 1570, + 1577, 1575, 86, 1576, 86, 86, 86, 86, 1573, 1579, + 86, 86, 1581, 86, 1580, 86, 1574, 86, 1584, 86, + 86, 1582, 86, 1583, 1578, 86, 1587, 86, 1586, 86, + 86, 86, 1593, 86, 1591, 1588, 86, 1585, 86, 86, + 86, 1598, 1594, 1589, 1592, 86, 1590, 86, 86, 86, + 86, 1603, 86, 1596, 1595, 1601, 86, 86, 1606, 1599, + 1604, 86, 86, 1602, 1597, 1600, 86, 86, 167, 1605, + 1609, 86, 86, 1608, 1612, 86, 1611, 86, 86, 86, - 86, 86, 1610, 1611, 86, 1619, 1621, 86, 86, 1623, - 1613, 1625, 1622, 1616, 1617, 86, 86, 86, 1627, 86, - 86, 1620, 86, 86, 86, 86, 1632, 1630, 1624, 1629, - 1626, 86, 1633, 86, 86, 86, 86, 86, 86, 1628, - 1637, 86, 1638, 86, 86, 1645, 86, 1634, 1631, 1646, - 1636, 86, 1635, 86, 1639, 1640, 1642, 86, 1641, 1643, - 1647, 86, 86, 86, 1661, 86, 86, 1650, 1652, 1654, - 1649, 1644, 1653, 86, 86, 86, 1648, 86, 1656, 1655, - 86, 1657, 86, 1658, 86, 1662, 86, 1659, 1651, 86, - 86, 86, 1665, 1664, 1666, 1668, 1667, 1660, 86, 86, + 86, 86, 1620, 1607, 1613, 86, 1610, 86, 86, 86, + 1614, 1615, 1621, 1618, 1624, 86, 86, 1616, 1617, 86, + 1625, 1627, 86, 86, 1629, 1619, 1631, 1628, 1622, 1623, + 86, 86, 86, 1633, 86, 86, 1626, 86, 86, 86, + 86, 1638, 1636, 1630, 1635, 1632, 86, 1639, 86, 86, + 86, 86, 86, 86, 1634, 1643, 86, 1644, 86, 86, + 1651, 86, 1640, 1637, 1652, 1642, 86, 1641, 86, 1645, + 1646, 1648, 86, 1647, 1649, 1653, 86, 86, 86, 1668, + 86, 86, 1656, 1658, 1660, 1655, 1650, 1659, 86, 1661, + 86, 1654, 86, 86, 1663, 86, 1665, 1662, 86, 1664, - 86, 86, 86, 1671, 86, 86, 1663, 1670, 86, 86, - 1672, 86, 86, 86, 86, 1681, 86, 86, 86, 86, - 86, 86, 1669, 86, 1678, 86, 1673, 1676, 1677, 1674, - 1679, 1675, 1680, 86, 1684, 86, 1682, 1683, 1686, 86, - 1688, 86, 1689, 86, 1685, 1687, 86, 86, 1690, 86, - 86, 86, 86, 86, 163, 86, 86, 1691, 1694, 1696, - 86, 1704, 86, 1703, 1697, 1693, 1695, 1698, 86, 1699, - 1692, 1700, 1705, 86, 86, 1702, 1701, 86, 86, 86, - 1706, 1708, 1709, 86, 86, 86, 86, 86, 86, 1712, - 1710, 1713, 1707, 86, 86, 1721, 86, 1716, 1711, 86, + 86, 86, 86, 1657, 86, 1666, 86, 86, 86, 1672, + 1671, 1673, 1675, 1674, 1667, 86, 86, 86, 86, 86, + 1678, 86, 86, 1669, 1677, 86, 1670, 1679, 86, 86, + 86, 86, 1688, 86, 86, 86, 86, 86, 86, 1676, + 86, 86, 86, 1680, 1683, 1684, 1685, 1686, 1681, 1682, + 1687, 1693, 86, 1689, 1691, 86, 1690, 1697, 86, 86, + 1696, 86, 1692, 1695, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 3147, 1710, 1694, 1701, 1703, 1698, 86, + 86, 1702, 86, 1700, 1706, 1699, 86, 1707, 1704, 1711, + 86, 1705, 1708, 1717, 1709, 1712, 86, 86, 1713, 86, - 86, 86, 86, 1715, 1714, 1718, 1722, 86, 1719, 1720, - 86, 86, 1717, 86, 1723, 1724, 86, 1725, 86, 86, - 1731, 86, 86, 86, 1726, 1728, 86, 1727, 1734, 86, - 1735, 1733, 86, 86, 86, 1737, 1730, 1732, 1738, 1739, - 86, 1729, 1743, 86, 1736, 86, 86, 1744, 86, 1749, - 1740, 86, 86, 1752, 1741, 86, 1748, 1745, 1742, 86, - 1746, 1751, 86, 86, 86, 1754, 86, 86, 1747, 1753, - 1750, 86, 1755, 1758, 86, 86, 1762, 86, 1760, 86, - 86, 1757, 86, 1756, 1761, 1763, 86, 1759, 86, 86, - 86, 86, 86, 86, 1772, 86, 1766, 86, 1767, 1764, + 1714, 86, 1715, 1716, 86, 86, 1719, 86, 86, 86, + 1720, 86, 86, 86, 1728, 86, 1718, 86, 1723, 86, + 86, 1727, 1725, 86, 1722, 1726, 1721, 1729, 86, 86, + 1724, 1733, 1731, 86, 86, 1730, 86, 86, 1738, 86, + 86, 1732, 86, 86, 86, 1734, 1735, 1741, 1746, 1740, + 86, 1742, 86, 1744, 1737, 1739, 1745, 86, 1736, 86, + 86, 1750, 86, 86, 86, 1743, 1751, 86, 1755, 1756, + 1747, 86, 1758, 86, 1752, 86, 1759, 1749, 1748, 1753, + 86, 1761, 86, 86, 1754, 1760, 86, 86, 86, 1757, + 1765, 86, 1762, 1769, 86, 86, 86, 86, 86, 86, - 1777, 86, 1774, 1768, 1769, 1765, 1770, 1771, 86, 1775, - 1776, 86, 86, 86, 86, 86, 1773, 1782, 86, 86, - 86, 1786, 86, 86, 86, 86, 86, 1781, 86, 1788, - 1779, 1778, 1780, 1789, 86, 1784, 86, 86, 1785, 1790, - 1783, 1791, 167, 86, 1787, 86, 1792, 1796, 86, 1793, - 86, 86, 1800, 86, 1794, 86, 86, 86, 1795, 86, - 86, 86, 1798, 1802, 1797, 86, 86, 1807, 86, 1801, - 1799, 1803, 1804, 86, 1810, 162, 1805, 1808, 1811, 86, - 86, 1806, 86, 1812, 1809, 1813, 86, 1814, 86, 1816, - 1817, 86, 86, 86, 86, 86, 1819, 1815, 86, 86, + 1767, 86, 1764, 1763, 1766, 86, 1768, 86, 86, 1770, + 86, 1775, 86, 1771, 1772, 1773, 1781, 1774, 1776, 1779, + 86, 1782, 86, 86, 1777, 86, 1778, 86, 1784, 86, + 86, 86, 1789, 86, 86, 86, 1783, 86, 86, 1793, + 86, 1780, 86, 86, 86, 1785, 1788, 1795, 1786, 1796, + 1787, 1791, 86, 86, 86, 1792, 1790, 1797, 1798, 86, + 167, 86, 1794, 1799, 1803, 86, 86, 86, 86, 1807, + 86, 86, 1801, 86, 86, 86, 1802, 86, 1809, 1805, + 86, 86, 1800, 86, 1814, 1804, 3147, 1806, 1808, 1810, + 86, 86, 1811, 1813, 1812, 1815, 86, 1817, 86, 1816, - 86, 1820, 86, 86, 1818, 86, 86, 86, 1825, 86, - 1826, 86, 86, 1821, 86, 1827, 1830, 86, 1823, 1828, - 1824, 1822, 1834, 1831, 1829, 86, 86, 1838, 86, 1835, - 1836, 1839, 1833, 86, 86, 86, 1832, 86, 86, 160, - 86, 1837, 1844, 86, 86, 1847, 1848, 86, 1849, 86, - 86, 1842, 86, 1841, 1840, 1851, 86, 1845, 1843, 1846, - 86, 1852, 86, 1855, 86, 86, 1857, 86, 86, 1856, - 1850, 1858, 86, 1853, 1859, 1861, 86, 1864, 86, 86, - 86, 86, 1863, 1854, 86, 1860, 86, 1865, 1867, 1866, - 86, 86, 86, 1874, 86, 86, 86, 86, 86, 86, + 1818, 86, 86, 1820, 86, 1819, 86, 1822, 1823, 1824, + 86, 1821, 86, 86, 86, 1826, 86, 86, 1829, 1827, + 86, 86, 86, 86, 1825, 86, 86, 1832, 1833, 86, + 86, 1837, 86, 86, 1834, 86, 86, 1828, 1830, 1831, + 1841, 1835, 1838, 86, 86, 1836, 86, 1842, 1843, 1845, + 86, 1844, 1840, 1846, 86, 1839, 86, 86, 86, 86, + 1852, 86, 86, 86, 1855, 1847, 1849, 1856, 86, 1857, + 86, 86, 1850, 1848, 1859, 86, 1853, 1851, 1854, 86, + 1860, 1858, 86, 1863, 86, 86, 86, 1865, 86, 1864, + 1867, 1866, 1861, 86, 1869, 86, 86, 86, 86, 86, - 1876, 1862, 1868, 1869, 1870, 1877, 86, 86, 1880, 1871, - 1878, 1872, 1873, 1881, 86, 1875, 1879, 1882, 86, 86, - 1886, 86, 86, 86, 86, 1888, 86, 1883, 1885, 86, - 86, 1891, 1892, 86, 86, 1894, 86, 86, 86, 1884, - 86, 86, 86, 86, 1899, 86, 1889, 1896, 1887, 1897, - 86, 1890, 1900, 86, 1893, 86, 1902, 86, 86, 86, - 1906, 86, 1895, 1898, 1901, 1903, 1904, 86, 1910, 86, - 1913, 1905, 1909, 86, 86, 86, 86, 1908, 1914, 86, - 1912, 1907, 1915, 86, 86, 86, 86, 86, 1917, 1911, - 1916, 86, 86, 86, 1921, 1918, 86, 1924, 1925, 1920, + 86, 1871, 1874, 1862, 1868, 1872, 86, 86, 1873, 1875, + 86, 1876, 1877, 1878, 86, 86, 1882, 86, 1879, 1884, + 1870, 86, 86, 86, 1885, 86, 86, 86, 1887, 86, + 1880, 86, 1891, 1890, 1881, 1886, 86, 1883, 1888, 86, + 1894, 86, 86, 86, 1889, 86, 1896, 86, 86, 1899, + 86, 1892, 1900, 86, 1902, 86, 86, 1893, 86, 86, + 1907, 86, 86, 1897, 1908, 86, 86, 1904, 1895, 1898, + 1901, 1905, 86, 86, 86, 86, 86, 86, 1914, 86, + 1906, 1903, 1909, 1911, 1912, 86, 1918, 1910, 86, 86, + 1917, 1921, 86, 1923, 86, 1916, 1920, 86, 1922, 1913, - 1926, 86, 86, 86, 86, 1919, 86, 1929, 86, 86, - 1922, 86, 1934, 86, 86, 86, 1933, 1928, 86, 1923, - 86, 1927, 86, 1930, 1938, 86, 86, 86, 1931, 86, - 1936, 1932, 1939, 1935, 1940, 1941, 86, 1937, 86, 86, - 1943, 1948, 1942, 1945, 86, 1944, 86, 86, 1946, 86, - 1952, 1949, 86, 1947, 86, 86, 86, 1954, 1955, 86, - 86, 1956, 86, 1958, 86, 86, 1957, 1950, 86, 1951, - 1953, 1962, 86, 1963, 86, 1959, 1964, 1966, 1967, 86, - 1960, 1965, 86, 86, 86, 1961, 86, 86, 86, 1971, - 86, 1969, 86, 86, 1968, 86, 1973, 1976, 86, 1970, + 1915, 86, 86, 86, 86, 86, 1924, 86, 1919, 86, + 86, 1925, 1929, 86, 86, 1932, 1933, 86, 86, 1928, + 1934, 86, 86, 1926, 1927, 1937, 86, 86, 1930, 86, + 86, 1942, 86, 1936, 86, 1941, 86, 1935, 86, 1931, + 86, 1938, 86, 86, 86, 1948, 1946, 1939, 1950, 1947, + 86, 1940, 86, 1943, 86, 1944, 86, 1945, 1949, 86, + 86, 1951, 1953, 86, 86, 1957, 1952, 86, 1955, 86, + 1960, 86, 86, 1954, 1962, 1956, 86, 1963, 86, 86, + 1964, 86, 86, 1967, 1958, 1965, 1961, 1959, 1968, 86, + 86, 1966, 1970, 86, 1971, 86, 1972, 1974, 1975, 86, - 1972, 1978, 1974, 86, 1975, 167, 86, 86, 86, 86, - 1979, 86, 1985, 86, 1983, 1977, 1984, 1982, 1980, 86, - 1981, 1986, 86, 1987, 86, 1989, 86, 86, 86, 86, - 158, 86, 1990, 1991, 86, 1992, 1993, 86, 86, 1988, - 86, 1995, 1994, 86, 1997, 86, 1996, 86, 86, 2001, - 86, 86, 1998, 2000, 86, 86, 2002, 1999, 86, 2003, - 2004, 2005, 2006, 86, 86, 86, 86, 86, 86, 86, - 2013, 2007, 2011, 2008, 2012, 86, 86, 86, 86, 86, - 2018, 2017, 86, 2009, 86, 2010, 2015, 86, 86, 86, - 2022, 2019, 86, 2014, 86, 86, 2016, 2021, 86, 2024, + 86, 1973, 86, 86, 86, 1977, 1979, 86, 86, 1969, + 86, 1978, 86, 86, 1981, 1984, 1976, 86, 1986, 1980, + 1982, 86, 167, 86, 86, 86, 86, 1987, 86, 86, + 86, 1993, 1992, 1991, 86, 1988, 3147, 1989, 1983, 1985, + 1994, 86, 1995, 86, 1997, 1990, 86, 86, 86, 86, + 86, 86, 1998, 1999, 1996, 2000, 2001, 86, 86, 86, + 2005, 2003, 2002, 2004, 86, 86, 86, 2009, 86, 86, + 86, 2008, 2014, 86, 86, 2011, 2006, 2007, 2010, 2012, + 86, 86, 86, 2013, 86, 86, 86, 86, 2021, 86, + 2019, 2016, 2020, 86, 86, 86, 86, 86, 86, 2026, - 2020, 2023, 86, 2026, 86, 2025, 86, 2027, 2028, 86, - 86, 2030, 86, 2029, 86, 2034, 86, 2036, 2031, 2032, - 2033, 86, 86, 86, 2037, 2038, 86, 86, 86, 2035, - 86, 2039, 86, 2043, 2040, 86, 2041, 86, 86, 2044, - 86, 86, 86, 86, 86, 86, 86, 86, 2042, 2046, - 2047, 2051, 2048, 2055, 86, 86, 2045, 2050, 2054, 86, - 86, 86, 2056, 2053, 2052, 86, 2059, 2049, 2058, 86, - 86, 86, 2062, 86, 2061, 2057, 2064, 86, 2063, 2060, - 2065, 86, 86, 86, 86, 86, 2066, 2070, 86, 86, - 2072, 2068, 86, 2074, 86, 2069, 86, 86, 86, 2067, + 86, 2015, 2017, 86, 2018, 2023, 3147, 2022, 86, 2025, + 2027, 2024, 2029, 86, 2030, 2028, 86, 2031, 86, 86, + 2033, 2034, 86, 86, 2035, 2037, 86, 2032, 86, 86, + 86, 2038, 86, 86, 2043, 2036, 86, 2045, 86, 2039, + 86, 86, 86, 2046, 2042, 2040, 2048, 2041, 2047, 86, + 2044, 86, 86, 86, 2052, 86, 86, 86, 2049, 86, + 86, 86, 86, 86, 2050, 2053, 86, 86, 86, 2055, + 86, 2056, 2051, 2057, 2060, 86, 2054, 2059, 2063, 2064, + 86, 86, 86, 2062, 2067, 2065, 2058, 2061, 86, 86, + 2066, 86, 86, 2068, 2070, 2069, 86, 2073, 2071, 86, - 2077, 2076, 2078, 2071, 86, 86, 2073, 86, 2082, 2079, - 86, 86, 86, 86, 86, 2075, 2083, 86, 2085, 2088, - 86, 86, 2089, 2080, 86, 2084, 86, 2081, 2092, 86, - 86, 2087, 2086, 86, 86, 2093, 86, 86, 2094, 2090, - 86, 2096, 2098, 86, 86, 2100, 2091, 2095, 86, 2097, - 86, 2101, 2099, 86, 86, 2104, 86, 2102, 2103, 86, - 86, 2107, 2109, 2105, 86, 86, 2106, 2110, 86, 2111, - 86, 86, 86, 86, 86, 86, 2112, 2108, 2114, 2115, - 86, 2118, 2113, 86, 2116, 2117, 2119, 86, 86, 86, - 86, 86, 86, 2120, 86, 86, 86, 2128, 2121, 2122, + 2072, 86, 86, 86, 86, 86, 2074, 2079, 86, 2076, + 2075, 2077, 86, 86, 2081, 2078, 2083, 86, 86, 86, + 2086, 86, 2082, 2080, 2085, 86, 2087, 86, 86, 2091, + 2088, 86, 86, 86, 86, 86, 2092, 86, 86, 2084, + 2094, 2097, 86, 86, 2098, 2089, 2093, 86, 2090, 2101, + 86, 2096, 86, 2095, 86, 86, 2103, 2102, 2100, 86, + 2107, 86, 2099, 86, 86, 86, 2109, 2105, 2104, 86, + 2110, 86, 2111, 86, 86, 2106, 2108, 86, 2112, 2116, + 86, 86, 2118, 2114, 86, 86, 2115, 2119, 86, 2113, + 2120, 86, 86, 86, 86, 86, 2121, 2122, 2123, 2124, - 2129, 86, 2123, 2125, 2124, 2130, 2126, 2131, 86, 86, - 2127, 86, 86, 86, 2133, 86, 2139, 86, 86, 167, - 2132, 2141, 86, 86, 2138, 86, 2135, 2140, 86, 2143, - 2136, 86, 2134, 2144, 2147, 86, 86, 2149, 2137, 2148, - 86, 2146, 2142, 86, 2145, 2150, 86, 86, 2191, 2151, - 86, 86, 2154, 86, 86, 2152, 2153, 86, 2155, 2158, - 2159, 86, 86, 2160, 86, 2163, 2161, 86, 86, 86, - 2165, 86, 2156, 2164, 2166, 86, 86, 86, 2168, 86, - 86, 2167, 2162, 2157, 86, 86, 86, 2170, 86, 2169, - 2171, 86, 86, 2174, 86, 86, 86, 2172, 86, 2177, + 86, 2117, 2128, 86, 2125, 86, 86, 86, 86, 2127, + 86, 86, 2126, 2129, 86, 86, 86, 86, 86, 86, + 2134, 2132, 2131, 2130, 2137, 2133, 2135, 86, 86, 86, + 86, 2136, 2138, 2144, 2145, 2140, 2142, 2139, 2143, 86, + 86, 86, 2146, 2148, 86, 2150, 86, 86, 2141, 2147, + 2149, 2152, 86, 86, 167, 2156, 2158, 2153, 2151, 2159, + 2157, 86, 86, 86, 86, 86, 2154, 2160, 86, 2163, + 86, 2161, 86, 2164, 86, 3147, 2155, 2168, 86, 86, + 2169, 86, 86, 2167, 2172, 86, 86, 2165, 2162, 2178, + 86, 2173, 86, 2170, 86, 2174, 2175, 86, 2166, 86, - 86, 2183, 86, 2175, 2173, 2181, 2176, 86, 86, 86, - 2178, 2179, 2184, 86, 2186, 86, 2180, 86, 86, 86, - 2182, 86, 2185, 2190, 2193, 86, 86, 2188, 86, 2194, - 86, 86, 86, 86, 86, 86, 2189, 2192, 86, 2187, - 2204, 86, 86, 2205, 86, 2195, 2201, 2196, 86, 86, - 86, 2199, 2206, 2197, 2200, 2198, 2202, 2203, 2208, 86, - 2210, 2207, 86, 2209, 2211, 86, 2212, 86, 86, 86, - 2215, 86, 2218, 86, 86, 86, 86, 2213, 86, 2219, - 2216, 2214, 86, 2217, 2224, 86, 86, 2220, 2225, 86, - 2223, 2227, 86, 86, 86, 2221, 2222, 2229, 86, 86, + 2171, 2177, 86, 86, 2176, 86, 2180, 86, 86, 86, + 86, 86, 2179, 2183, 86, 86, 2186, 86, 86, 2190, + 86, 2192, 86, 2181, 86, 2185, 86, 86, 2193, 86, + 2182, 86, 2184, 2187, 2188, 86, 2195, 2189, 86, 86, + 86, 2194, 2191, 86, 2200, 2197, 86, 2198, 2199, 2203, + 86, 86, 86, 2196, 2204, 86, 2201, 86, 2202, 86, + 86, 86, 86, 2214, 86, 86, 3147, 86, 2216, 86, + 2205, 2206, 86, 2211, 2215, 86, 3147, 86, 2207, 2209, + 2210, 2208, 2213, 2212, 86, 2217, 86, 2220, 86, 2218, + 2219, 2221, 86, 2222, 86, 86, 2225, 86, 86, 2223, - 2232, 86, 2233, 86, 2231, 2226, 86, 86, 86, 2230, - 86, 2228, 86, 2239, 86, 86, 2235, 2238, 2241, 86, - 2234, 86, 2236, 86, 86, 86, 2244, 86, 2245, 2237, - 2243, 2247, 86, 86, 2240, 86, 2251, 86, 86, 2242, - 86, 86, 86, 2246, 2248, 86, 2255, 86, 2249, 2256, - 86, 86, 2258, 86, 2250, 86, 2254, 86, 2252, 2261, - 86, 86, 86, 2253, 2257, 86, 2259, 86, 2260, 2263, - 86, 2264, 86, 2268, 86, 2262, 86, 2271, 86, 2265, - 2270, 86, 2274, 2266, 86, 2269, 2275, 86, 86, 2276, - 86, 86, 2272, 2267, 2273, 86, 2280, 86, 86, 86, + 86, 2224, 2228, 86, 86, 2229, 2226, 86, 86, 2227, + 2234, 86, 2230, 2235, 86, 86, 2237, 86, 2231, 86, + 2233, 2239, 86, 86, 2232, 86, 2242, 86, 2243, 86, + 2241, 86, 86, 86, 2236, 86, 86, 2238, 2240, 86, + 86, 2245, 2249, 86, 2248, 2244, 86, 2246, 2251, 86, + 86, 86, 2253, 2254, 2247, 2250, 86, 2255, 2252, 2257, + 86, 86, 86, 2261, 86, 86, 86, 86, 86, 86, + 2258, 86, 2256, 2265, 2266, 86, 2259, 86, 86, 2271, + 86, 2260, 2264, 2268, 86, 2262, 2269, 2267, 86, 2263, + 86, 86, 2270, 86, 86, 2273, 86, 2278, 86, 86, - 2285, 2278, 2282, 2283, 86, 86, 86, 2287, 86, 86, - 2288, 2279, 2277, 86, 2284, 86, 86, 86, 86, 2292, - 2289, 2281, 2291, 86, 86, 2286, 2293, 2294, 86, 2298, - 2299, 86, 2295, 2290, 3136, 86, 86, 2296, 2297, 86, - 86, 86, 2303, 2300, 2304, 86, 2305, 167, 86, 2302, - 86, 2301, 2307, 86, 2306, 86, 2312, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 3136, 2319, 2308, 2310, - 2309, 2311, 2314, 2313, 2315, 2316, 2317, 2318, 86, 86, - 2321, 2323, 86, 2320, 86, 2324, 2325, 86, 86, 86, - 2328, 2322, 2326, 2327, 2329, 86, 86, 2331, 86, 86, + 86, 2280, 86, 86, 2272, 2274, 2281, 2279, 2275, 86, + 86, 2276, 2284, 86, 2285, 2286, 86, 86, 86, 86, + 2277, 2282, 2290, 2283, 2292, 86, 2288, 2287, 86, 2295, + 2293, 86, 2297, 86, 86, 86, 86, 2289, 86, 2298, + 86, 2299, 86, 2294, 2291, 2302, 86, 86, 86, 86, + 86, 86, 2296, 2301, 2308, 2303, 2304, 2305, 2300, 2306, + 86, 2309, 86, 2307, 86, 86, 2310, 86, 86, 2313, + 2314, 2311, 167, 2312, 86, 2315, 86, 2317, 86, 86, + 2322, 86, 86, 2316, 86, 2318, 86, 2319, 86, 86, + 86, 86, 86, 2324, 2320, 2321, 86, 2323, 2325, 2329, - 86, 86, 2333, 86, 2330, 86, 86, 86, 2337, 86, - 2338, 86, 86, 2332, 86, 2334, 86, 2340, 2341, 2335, - 2345, 86, 86, 2339, 2342, 2336, 2343, 86, 86, 86, - 86, 2348, 86, 2344, 2347, 86, 86, 86, 86, 86, - 86, 2350, 2346, 2354, 86, 86, 86, 2357, 2349, 2351, - 2356, 86, 2353, 86, 86, 86, 86, 2352, 2360, 2362, - 2355, 2358, 2359, 2363, 2364, 86, 86, 2361, 2365, 86, - 86, 2367, 86, 86, 86, 2368, 86, 2370, 2371, 2366, - 2372, 86, 2374, 86, 86, 86, 86, 2376, 86, 86, - 86, 86, 86, 2373, 2375, 86, 2380, 2384, 86, 2369, + 86, 2328, 86, 86, 2326, 2327, 2336, 2330, 2333, 86, + 2370, 2331, 2332, 86, 2334, 2335, 86, 86, 2338, 2339, + 86, 86, 2337, 86, 86, 86, 2341, 86, 86, 2340, + 86, 2343, 86, 86, 2347, 2342, 2348, 2345, 86, 86, + 2344, 86, 86, 86, 2350, 2351, 2352, 2353, 86, 86, + 86, 2346, 2349, 86, 2354, 2355, 86, 86, 86, 2356, + 86, 2358, 2359, 86, 86, 2361, 86, 86, 86, 86, + 86, 2360, 2365, 2357, 2368, 2367, 86, 86, 86, 2374, + 86, 2364, 2369, 86, 2362, 86, 2363, 86, 2373, 2366, + 2371, 86, 86, 2372, 2376, 2375, 86, 2378, 86, 86, - 2382, 86, 2377, 2378, 86, 2386, 2379, 2385, 86, 2383, - 86, 86, 86, 2387, 86, 86, 86, 2388, 2381, 2390, - 2393, 86, 86, 2395, 86, 86, 2398, 86, 2392, 86, - 86, 2394, 2389, 2399, 2391, 86, 86, 86, 86, 2402, - 2397, 2404, 2396, 2403, 86, 86, 86, 86, 86, 86, - 2408, 2407, 86, 86, 2400, 2401, 2406, 86, 86, 86, - 3136, 2411, 2412, 2405, 2414, 86, 2409, 2410, 2415, 86, - 2416, 86, 2417, 86, 2418, 86, 86, 2419, 2413, 86, - 86, 2422, 86, 2423, 2421, 86, 86, 86, 86, 2428, - 86, 86, 2430, 86, 2420, 2431, 86, 2424, 2425, 86, + 86, 2379, 86, 2381, 2382, 2377, 2383, 86, 2385, 86, + 86, 86, 86, 2387, 86, 86, 86, 86, 86, 2384, + 2386, 86, 2391, 2395, 86, 2380, 2393, 86, 2388, 2389, + 86, 2397, 2390, 2396, 86, 2394, 86, 86, 86, 2398, + 86, 86, 86, 2399, 2392, 2401, 2404, 86, 86, 2406, + 86, 86, 2409, 86, 2403, 86, 86, 2405, 2400, 2410, + 2402, 86, 86, 86, 86, 2413, 2408, 2415, 2407, 2414, + 86, 86, 86, 86, 86, 86, 2419, 2418, 86, 86, + 2411, 2412, 2417, 86, 86, 86, 3147, 2422, 2423, 2416, + 2425, 86, 2420, 2421, 2426, 86, 2427, 86, 2428, 86, - 86, 86, 86, 86, 2427, 86, 2434, 2426, 86, 86, - 2429, 2432, 86, 2433, 2435, 2440, 86, 2437, 2441, 86, - 86, 86, 86, 2436, 86, 2438, 86, 167, 2439, 86, - 2448, 86, 86, 86, 2444, 2449, 86, 86, 2446, 2447, - 2443, 86, 86, 3136, 2455, 2442, 2445, 2450, 2451, 2452, - 86, 86, 86, 2459, 86, 2457, 2456, 2458, 2453, 86, - 2454, 2460, 86, 86, 2461, 86, 2462, 86, 2463, 2464, - 2465, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 2474, 86, 86, 86, 2496, 2472, 2467, 86, 2478, - 2466, 86, 2469, 2468, 2479, 86, 2471, 2470, 2473, 86, + 2429, 86, 86, 2430, 2424, 86, 86, 2433, 86, 2434, + 2432, 86, 86, 86, 86, 2439, 86, 86, 2441, 86, + 2431, 2442, 86, 2435, 2436, 86, 86, 86, 86, 86, + 2438, 86, 2445, 2437, 86, 86, 2440, 2443, 86, 2444, + 2446, 2451, 86, 2448, 2452, 86, 86, 86, 86, 2447, + 86, 2449, 86, 167, 2450, 86, 2459, 86, 86, 86, + 2455, 2460, 86, 86, 2457, 2458, 2454, 86, 86, 3147, + 2466, 2453, 2456, 2461, 2462, 2463, 86, 86, 86, 2470, + 86, 2468, 2467, 2469, 2464, 86, 2465, 2471, 86, 86, + 2472, 86, 2473, 86, 2474, 2475, 2476, 86, 86, 86, - 2475, 2476, 2477, 86, 2480, 2482, 86, 86, 2481, 2484, - 86, 86, 2483, 86, 86, 86, 86, 86, 86, 86, - 2487, 2493, 86, 2494, 86, 2485, 2495, 86, 86, 2486, - 2488, 86, 2489, 2491, 2490, 86, 2500, 2492, 2499, 86, - 86, 86, 86, 2504, 2505, 86, 2497, 2503, 86, 86, - 2498, 2506, 2507, 86, 86, 86, 86, 86, 86, 2501, - 2502, 86, 86, 2509, 86, 86, 2513, 2508, 2511, 86, - 2518, 86, 2517, 86, 2510, 2521, 86, 2512, 2514, 86, - 2519, 2515, 86, 2522, 2516, 86, 2525, 86, 86, 2524, - 86, 2520, 86, 86, 2530, 86, 86, 2523, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 2485, 86, 86, + 86, 2507, 2483, 2478, 86, 2489, 2477, 86, 2480, 2479, + 2490, 86, 2482, 2481, 2484, 86, 2486, 2487, 2488, 86, + 2491, 2493, 86, 86, 2492, 2495, 86, 86, 2494, 86, + 86, 86, 86, 86, 86, 86, 2498, 2504, 86, 2505, + 86, 2496, 2506, 86, 86, 2497, 2499, 86, 2500, 2502, + 2501, 86, 2511, 2503, 2510, 86, 86, 86, 86, 2515, + 2516, 86, 2508, 2514, 86, 86, 2509, 2517, 2518, 86, + 86, 86, 86, 86, 86, 2512, 2513, 86, 86, 2520, + 86, 86, 2524, 2519, 2522, 86, 2529, 86, 2528, 86, - 86, 2526, 86, 2533, 86, 2527, 86, 2532, 2531, 2534, - 86, 2537, 2528, 2529, 2536, 86, 86, 86, 2539, 2535, - 2541, 86, 86, 2542, 86, 2538, 2543, 2544, 86, 2540, - 86, 86, 86, 2549, 86, 86, 86, 2545, 2551, 86, - 2547, 2548, 86, 2546, 86, 86, 86, 2552, 86, 2553, - 2550, 2555, 86, 86, 86, 2557, 2556, 86, 86, 2554, - 86, 2558, 2559, 2561, 86, 2562, 2564, 86, 2560, 2565, - 86, 2567, 2563, 2566, 167, 86, 86, 86, 2571, 3136, - 2568, 86, 86, 2573, 86, 86, 2572, 86, 2576, 86, - 2577, 86, 2575, 86, 2569, 2570, 2579, 86, 86, 2581, + 2521, 2532, 86, 2523, 2525, 86, 2530, 2526, 86, 2533, + 2527, 86, 2536, 86, 86, 2535, 86, 2531, 86, 86, + 2541, 86, 86, 2534, 86, 86, 86, 2537, 86, 2544, + 86, 2538, 86, 2543, 2542, 2545, 86, 2548, 2539, 2540, + 2547, 86, 86, 86, 2550, 2546, 2552, 86, 86, 2553, + 86, 2549, 2554, 2555, 86, 2551, 86, 86, 86, 2560, + 86, 86, 86, 2556, 2562, 86, 2558, 2559, 86, 2557, + 86, 86, 86, 2563, 86, 2564, 2561, 2566, 86, 86, + 86, 2568, 2567, 86, 86, 2565, 86, 2569, 2570, 2572, + 86, 2573, 2575, 86, 2571, 2576, 86, 2578, 2574, 2577, - 2574, 2580, 86, 86, 2582, 86, 2578, 2583, 2584, 86, - 2586, 86, 86, 86, 86, 2587, 86, 2588, 86, 86, - 86, 2593, 2589, 2585, 2594, 2595, 2591, 86, 86, 2590, - 86, 86, 86, 2597, 86, 2598, 86, 86, 86, 86, - 2592, 2600, 2601, 2596, 86, 86, 2599, 86, 2606, 86, - 86, 86, 2603, 2604, 2605, 86, 2602, 86, 2607, 2611, - 86, 86, 86, 2615, 86, 86, 86, 86, 86, 2608, - 2613, 2609, 2619, 86, 2610, 3136, 2612, 2614, 2620, 86, - 2622, 2617, 2623, 2624, 2616, 86, 86, 2618, 86, 86, - 2625, 86, 86, 2626, 86, 86, 86, 2627, 2621, 86, + 167, 86, 86, 86, 2582, 3147, 2579, 86, 86, 2584, + 86, 86, 2583, 86, 2587, 86, 2588, 86, 2586, 86, + 2580, 2581, 2590, 86, 86, 2592, 2585, 2591, 86, 86, + 2593, 86, 2589, 2594, 2595, 86, 2597, 86, 86, 86, + 86, 2598, 86, 2599, 86, 86, 86, 2604, 2600, 2596, + 2605, 2606, 2602, 86, 86, 2601, 86, 86, 86, 2608, + 86, 2609, 86, 86, 86, 86, 2603, 2611, 2612, 2607, + 86, 86, 2610, 86, 2617, 86, 86, 86, 2614, 2615, + 2616, 86, 2613, 86, 2618, 2622, 86, 86, 86, 2626, + 86, 86, 86, 86, 86, 2619, 2624, 2620, 2630, 86, - 2630, 86, 86, 2628, 86, 2633, 2635, 86, 2629, 2636, - 86, 2637, 86, 2631, 86, 86, 2632, 86, 2638, 86, - 2634, 86, 2639, 2640, 86, 86, 2642, 2644, 86, 2647, - 86, 2643, 2645, 86, 86, 2641, 2648, 86, 2649, 86, - 86, 86, 86, 2650, 86, 2646, 86, 2651, 2652, 2654, - 86, 86, 2655, 2656, 86, 2658, 86, 2657, 86, 2659, - 2662, 2653, 2660, 2663, 86, 86, 86, 86, 2665, 2664, - 86, 86, 2661, 2666, 86, 86, 2670, 2671, 86, 86, - 86, 2674, 86, 86, 2673, 86, 86, 86, 86, 2677, - 2667, 2668, 2675, 2676, 86, 2669, 86, 2679, 86, 2680, + 2621, 3147, 2623, 2625, 2631, 86, 2633, 2628, 2634, 2635, + 2627, 86, 86, 2629, 86, 86, 2636, 86, 86, 2637, + 86, 86, 86, 2638, 2632, 86, 2641, 86, 86, 2639, + 86, 2644, 2646, 86, 2640, 2647, 86, 2648, 86, 2642, + 86, 86, 2643, 86, 2649, 86, 2645, 86, 2650, 2651, + 86, 86, 2653, 2655, 86, 2658, 86, 2654, 2656, 86, + 86, 2652, 2659, 86, 2660, 86, 86, 86, 86, 2661, + 86, 2657, 86, 2662, 2663, 2665, 86, 86, 2666, 2667, + 86, 2669, 86, 2668, 86, 2670, 2673, 2664, 2671, 2674, + 86, 86, 86, 86, 2676, 2675, 86, 86, 2672, 2677, - 86, 2683, 86, 2672, 2678, 2681, 2682, 86, 2687, 86, - 86, 86, 86, 86, 86, 2689, 86, 2710, 2684, 86, - 3136, 2686, 2685, 2690, 2688, 2691, 86, 2693, 2694, 2697, - 86, 86, 2692, 2695, 86, 2696, 86, 2698, 86, 2699, - 86, 2700, 86, 2701, 86, 86, 2704, 2702, 86, 2703, - 86, 86, 86, 2709, 86, 2712, 86, 2706, 86, 2714, - 86, 86, 2716, 86, 86, 2713, 2715, 86, 86, 2711, - 2707, 2705, 2708, 2717, 86, 3136, 2718, 2719, 2721, 86, - 86, 86, 86, 2725, 2722, 86, 86, 86, 2726, 86, - 2723, 2729, 2720, 86, 86, 2728, 86, 2724, 2727, 2730, + 86, 86, 2681, 2682, 86, 86, 86, 2685, 86, 86, + 2684, 86, 86, 86, 86, 2688, 2678, 2679, 2686, 2687, + 86, 2680, 86, 2690, 86, 2691, 86, 2694, 86, 2683, + 2689, 2692, 2693, 86, 2698, 86, 86, 86, 86, 86, + 86, 2700, 86, 2721, 2695, 86, 3147, 2697, 2696, 2701, + 2699, 2702, 86, 2704, 2705, 2708, 86, 86, 2703, 2706, + 86, 2707, 86, 2709, 86, 2710, 86, 2711, 86, 2712, + 86, 86, 2715, 2713, 86, 2714, 86, 86, 86, 2720, + 86, 2723, 86, 2717, 86, 2725, 86, 86, 2727, 86, + 86, 2724, 2726, 86, 86, 2722, 2718, 2716, 2719, 2728, - 2731, 86, 2732, 86, 86, 86, 86, 2733, 86, 86, - 86, 2741, 86, 86, 2736, 86, 3136, 86, 2737, 2739, - 2744, 2734, 2735, 86, 2742, 86, 2746, 86, 2745, 2740, - 86, 2751, 86, 2738, 2743, 2748, 2747, 86, 2749, 2752, - 86, 2750, 2753, 86, 86, 86, 86, 86, 2758, 86, - 86, 2757, 86, 2754, 86, 2759, 86, 2760, 2761, 86, - 86, 86, 86, 86, 86, 2755, 2756, 2762, 2763, 2765, - 2767, 2769, 86, 86, 86, 86, 86, 2770, 86, 2766, - 2771, 2764, 2774, 2772, 86, 2773, 86, 2768, 86, 2775, - 2777, 86, 86, 86, 86, 86, 86, 2780, 86, 86, + 86, 3147, 2729, 2730, 2732, 86, 86, 86, 86, 2736, + 2733, 86, 86, 86, 2737, 86, 2734, 2740, 2731, 86, + 86, 2739, 86, 2735, 2738, 2741, 2742, 86, 2743, 86, + 86, 86, 86, 2744, 86, 86, 86, 2752, 86, 86, + 2747, 86, 3147, 86, 2748, 2750, 2755, 2745, 2746, 86, + 2753, 86, 2757, 86, 2756, 2751, 86, 2762, 86, 2749, + 2754, 2759, 2758, 86, 2760, 2763, 86, 2761, 2764, 86, + 86, 86, 86, 86, 2769, 86, 86, 2768, 86, 2765, + 86, 2770, 86, 2771, 2772, 86, 86, 86, 86, 86, + 86, 2766, 2767, 2773, 2774, 2776, 2778, 2780, 86, 86, - 86, 2778, 86, 2781, 86, 2779, 2776, 2784, 3136, 2785, - 86, 2782, 2787, 86, 86, 2783, 2789, 86, 86, 2788, - 2790, 86, 86, 2791, 2786, 2792, 86, 86, 2797, 86, - 2793, 86, 2796, 2799, 2794, 86, 86, 2801, 2795, 86, - 86, 2804, 86, 86, 2806, 86, 86, 86, 2809, 86, - 86, 2798, 2807, 2802, 2800, 2810, 86, 2812, 86, 2803, - 86, 86, 86, 2805, 86, 86, 2811, 2808, 2817, 86, - 2815, 2814, 2821, 86, 86, 86, 86, 2813, 2822, 86, - 2823, 2819, 2816, 2818, 86, 2820, 2826, 2829, 2824, 2827, - 86, 86, 86, 86, 2828, 86, 86, 2832, 86, 86, + 86, 86, 86, 2781, 86, 2777, 2782, 2775, 2785, 2783, + 86, 2784, 86, 2779, 86, 2786, 2788, 86, 86, 86, + 86, 86, 86, 2791, 86, 86, 86, 2789, 86, 2792, + 86, 2790, 2787, 2795, 3147, 2796, 86, 2793, 2798, 86, + 86, 2794, 2800, 86, 86, 2799, 2801, 86, 86, 2802, + 2797, 2803, 86, 86, 2808, 86, 2804, 86, 2807, 2810, + 2805, 86, 86, 2812, 2806, 86, 86, 2815, 86, 86, + 2817, 86, 86, 86, 2820, 86, 86, 2809, 2818, 2813, + 2811, 2821, 86, 2823, 86, 2814, 86, 86, 86, 2816, + 86, 86, 2822, 2819, 2828, 86, 2826, 2825, 2832, 86, - 86, 2831, 2835, 86, 2825, 2833, 2838, 86, 86, 86, - 86, 86, 86, 2830, 2843, 86, 86, 86, 2834, 86, - 2836, 2837, 2839, 2846, 86, 2842, 2845, 2840, 2847, 86, - 2851, 86, 86, 2849, 86, 2844, 2841, 2848, 86, 2850, - 2852, 86, 2853, 86, 86, 2855, 86, 86, 86, 2854, - 86, 86, 2860, 2861, 86, 86, 86, 2856, 2867, 86, - 2865, 86, 2866, 86, 86, 2864, 86, 86, 86, 2857, - 2858, 86, 2859, 2862, 3136, 2863, 2870, 2871, 86, 2872, - 86, 2874, 86, 86, 2875, 86, 2868, 2869, 2873, 86, - 86, 2878, 86, 2877, 2876, 86, 86, 86, 86, 86, + 86, 86, 86, 2824, 2833, 86, 2834, 2830, 2827, 2829, + 86, 2831, 2837, 2840, 2835, 2838, 86, 86, 86, 86, + 2839, 86, 86, 2843, 86, 86, 86, 2842, 2846, 86, + 2836, 2844, 2849, 86, 86, 86, 86, 86, 86, 2841, + 2854, 86, 86, 86, 2845, 86, 2847, 2848, 2850, 2857, + 86, 2853, 2856, 2851, 2858, 86, 2862, 86, 86, 2860, + 86, 2855, 2852, 2859, 86, 2861, 2863, 86, 2864, 86, + 86, 2866, 86, 86, 86, 2865, 86, 86, 2871, 2872, + 86, 86, 86, 2867, 2878, 86, 2876, 86, 2877, 86, + 86, 2875, 86, 86, 86, 2868, 2869, 86, 2870, 2873, - 2879, 86, 2882, 86, 86, 2884, 86, 86, 86, 2880, - 2883, 2885, 86, 86, 86, 86, 2881, 86, 86, 2894, - 2886, 2897, 2895, 2898, 2887, 2889, 2888, 86, 2890, 2893, - 2891, 2892, 86, 86, 86, 2896, 2901, 86, 2902, 86, - 86, 2904, 86, 2923, 2903, 86, 2900, 2905, 86, 2912, - 2906, 2907, 2899, 86, 2908, 2909, 86, 86, 2910, 2911, - 86, 86, 2913, 86, 86, 86, 86, 2919, 86, 86, - 86, 2918, 86, 86, 2914, 86, 2922, 2921, 2915, 3136, - 2916, 86, 86, 2927, 86, 2917, 2928, 86, 2924, 86, - 2926, 2929, 86, 2925, 2920, 86, 86, 2934, 2932, 2930, + 3147, 2874, 2881, 2882, 86, 2883, 86, 2885, 86, 86, + 2886, 86, 2879, 2880, 2884, 86, 86, 2889, 86, 2888, + 2887, 86, 86, 86, 86, 86, 2890, 86, 2893, 86, + 86, 2895, 86, 86, 86, 2891, 2894, 2896, 86, 86, + 86, 86, 2892, 86, 86, 2905, 2897, 2908, 2906, 2909, + 2898, 2900, 2899, 86, 2901, 2904, 2902, 2903, 86, 86, + 86, 2907, 2912, 86, 2913, 86, 86, 2915, 86, 2934, + 2914, 86, 2911, 2916, 86, 2923, 2917, 2918, 2910, 86, + 2919, 2920, 86, 86, 2921, 2922, 86, 86, 2924, 86, + 86, 86, 86, 2930, 86, 86, 86, 2929, 86, 86, - 2931, 2933, 2935, 86, 2936, 86, 86, 86, 86, 86, - 86, 2944, 2940, 2941, 2943, 86, 86, 86, 2946, 86, - 2938, 2937, 2945, 2947, 86, 86, 86, 2939, 2942, 2971, - 2948, 2949, 86, 2950, 86, 2951, 86, 2952, 86, 2953, - 86, 2954, 86, 2955, 86, 2956, 86, 86, 2958, 86, - 86, 86, 86, 86, 86, 86, 2957, 2963, 86, 2959, - 86, 86, 86, 2960, 86, 2967, 86, 2966, 2964, 2969, - 86, 86, 2961, 2962, 2965, 2968, 86, 2973, 86, 2976, - 2970, 2975, 86, 86, 86, 86, 86, 86, 2978, 2974, - 86, 86, 2972, 2982, 86, 86, 2977, 86, 2985, 86, + 2925, 86, 2933, 2932, 2926, 3147, 2927, 86, 86, 2938, + 86, 2928, 2939, 86, 2935, 86, 2937, 2940, 86, 2936, + 2931, 86, 86, 2945, 2943, 2941, 2942, 2944, 2946, 86, + 2947, 86, 86, 86, 86, 86, 86, 2955, 2951, 2952, + 2954, 86, 86, 86, 2957, 86, 2949, 2948, 2956, 2958, + 86, 86, 86, 2950, 2953, 2982, 2959, 2960, 86, 2961, + 86, 2962, 86, 2963, 86, 2964, 86, 2965, 86, 2966, + 86, 2967, 86, 86, 2969, 86, 86, 86, 86, 86, + 86, 86, 2968, 2974, 86, 2970, 86, 86, 86, 2971, + 86, 2978, 86, 2977, 2975, 2980, 86, 86, 2972, 2973, - 2983, 2987, 86, 2979, 2980, 86, 2981, 2988, 86, 2984, - 2986, 2989, 86, 86, 2991, 86, 86, 2992, 86, 86, - 86, 86, 2990, 2998, 2997, 86, 86, 3000, 86, 86, - 2994, 2996, 86, 86, 86, 2993, 86, 86, 86, 86, - 2999, 2995, 3001, 86, 86, 86, 3007, 3002, 86, 3004, - 3003, 3006, 86, 3011, 3015, 3008, 3014, 86, 3010, 3005, - 3009, 3016, 86, 86, 3013, 86, 3012, 86, 3017, 3018, - 86, 3019, 86, 86, 86, 86, 3022, 86, 86, 3023, - 3024, 3027, 3020, 86, 86, 3021, 86, 86, 86, 3032, - 86, 3030, 86, 3026, 86, 86, 3029, 3028, 3035, 86, + 2976, 2979, 86, 2984, 86, 2987, 2981, 2986, 86, 86, + 86, 86, 86, 86, 2989, 2985, 86, 86, 2983, 2993, + 86, 86, 2988, 86, 2996, 86, 2994, 2998, 86, 2990, + 2991, 86, 2992, 2999, 86, 2995, 2997, 3000, 86, 86, + 3002, 86, 86, 3003, 86, 86, 86, 86, 3001, 3009, + 3008, 86, 86, 3011, 86, 86, 3005, 3007, 86, 86, + 86, 3004, 86, 86, 86, 86, 3010, 3006, 3012, 86, + 86, 86, 3018, 3013, 86, 3015, 3014, 3017, 86, 3022, + 3026, 3019, 3025, 86, 3021, 3016, 3020, 3027, 86, 86, + 3024, 86, 3023, 86, 3028, 3029, 86, 3030, 86, 86, - 86, 86, 3025, 3038, 86, 86, 3039, 3033, 3031, 3040, - 3036, 86, 86, 3034, 3042, 3043, 86, 86, 3037, 86, - 86, 86, 3048, 86, 3047, 86, 3044, 3049, 86, 3045, - 3041, 86, 86, 86, 86, 86, 3046, 86, 3053, 86, - 3055, 86, 86, 86, 86, 86, 3050, 3052, 3060, 3061, - 86, 3051, 3054, 86, 3057, 3058, 3056, 3068, 3059, 3062, - 86, 3066, 86, 86, 86, 3063, 86, 3069, 3064, 3067, - 86, 86, 3065, 86, 86, 3070, 3071, 3074, 3072, 3075, - 86, 86, 86, 86, 3077, 86, 3076, 86, 86, 86, - 86, 3078, 3083, 3073, 86, 3080, 86, 86, 86, 86, + 86, 86, 3033, 86, 86, 3034, 3035, 3038, 3031, 86, + 86, 3032, 86, 86, 86, 3043, 86, 3041, 86, 3037, + 86, 86, 3040, 3039, 3046, 86, 86, 86, 3036, 3049, + 86, 86, 3050, 3044, 3042, 3051, 3047, 86, 86, 3045, + 3053, 3054, 86, 86, 3048, 86, 86, 86, 3059, 86, + 3058, 86, 3055, 3060, 86, 3056, 3052, 86, 86, 86, + 86, 86, 3057, 86, 3064, 86, 3066, 86, 86, 86, + 86, 86, 3061, 3063, 3071, 3072, 86, 3062, 3065, 86, + 3068, 3069, 3067, 3079, 3070, 3073, 86, 3077, 86, 86, + 86, 3074, 86, 3080, 3075, 3078, 86, 86, 3076, 86, - 3086, 3079, 3087, 86, 86, 86, 86, 86, 3081, 3082, - 3085, 3090, 86, 3084, 3088, 3091, 86, 3089, 86, 3094, - 3093, 3095, 86, 3092, 86, 3096, 86, 3098, 86, 3100, - 86, 3101, 86, 86, 86, 3105, 86, 3102, 3136, 86, - 3103, 3108, 86, 3099, 3106, 86, 86, 3107, 3097, 86, - 86, 86, 86, 3104, 86, 86, 3109, 3110, 86, 3112, - 3114, 86, 86, 3116, 86, 3111, 86, 3117, 86, 3120, - 3113, 3115, 3121, 86, 3118, 86, 86, 3124, 3125, 86, - 86, 3127, 86, 3119, 86, 3122, 86, 3126, 3128, 86, - 86, 3129, 86, 86, 3123, 3130, 3136, 3131, 3134, 86, + 86, 3081, 3082, 3085, 3083, 3086, 86, 86, 86, 86, + 3088, 86, 3087, 86, 86, 86, 86, 3089, 3094, 3084, + 86, 3091, 86, 86, 86, 86, 3097, 3090, 3098, 86, + 86, 86, 86, 86, 3092, 3093, 3096, 3101, 86, 3095, + 3099, 3102, 86, 3100, 86, 3105, 3104, 3106, 86, 3103, + 86, 3107, 86, 3109, 86, 3111, 86, 3112, 86, 86, + 86, 3116, 86, 3113, 3147, 86, 3114, 3119, 86, 3110, + 3117, 86, 86, 3118, 3108, 86, 86, 86, 86, 3115, + 86, 86, 3120, 3121, 86, 3123, 3125, 86, 86, 3127, + 86, 3122, 86, 3128, 86, 3131, 3124, 3126, 3132, 86, - 3135, 86, 3136, 3136, 3136, 3132, 3136, 3136, 3136, 3136, - 3136, 3136, 3133, 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, 3136, 89, 89, 89, 89, 157, - 157, 3136, 3136, 3136, 157, 157, 159, 159, 3136, 3136, - 159, 3136, 159, 161, 3136, 3136, 3136, 3136, 3136, 161, - 164, 164, 3136, 3136, 3136, 164, 164, 166, 3136, 3136, + 3129, 86, 86, 3135, 3136, 86, 86, 3138, 86, 3130, + 86, 3133, 86, 3137, 3139, 86, 86, 3140, 86, 86, + 3134, 3141, 3147, 3142, 3145, 86, 3146, 86, 3147, 3147, + 3147, 3143, 3147, 3147, 3147, 3147, 3147, 3147, 3144, 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, + 3147, 89, 89, 89, 89, 157, 157, 3147, 3147, 3147, + + 157, 157, 159, 159, 3147, 3147, 159, 3147, 159, 161, + 3147, 3147, 3147, 3147, 3147, 161, 164, 164, 3147, 3147, + 3147, 164, 164, 166, 3147, 3147, 3147, 3147, 3147, 166, + 168, 168, 3147, 168, 168, 168, 168, 171, 3147, 3147, + 3147, 3147, 3147, 171, 174, 174, 3147, 3147, 3147, 174, + 174, 90, 90, 3147, 90, 90, 90, 90, 17, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147 - 3136, 3136, 3136, 166, 168, 168, 3136, 168, 168, 168, - 168, 171, 3136, 3136, 3136, 3136, 3136, 171, 174, 174, - 3136, 3136, 3136, 174, 174, 90, 90, 3136, 90, 90, - 90, 90, 17, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136 } ; -static const flex_int16_t yy_chk[6174] = +static const flex_int16_t yy_chk[6200] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2147,7 +2153,7 @@ static const flex_int16_t yy_chk[6174] = 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, 3144, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3155, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, @@ -2159,7 +2165,7 @@ static const flex_int16_t yy_chk[6174] = 43, 43, 40, 43, 25, 28, 31, 87, 30, 32, 28, 87, 43, 32, 28, 94, 32, 28, 43, 28, 28, 56, 94, 32, 56, 32, 36, 36, 37, 37, - 28, 45, 45, 37, 2566, 36, 45, 39, 41, 41, + 28, 45, 45, 37, 2577, 36, 45, 39, 41, 41, 45, 36, 39, 41, 124, 36, 39, 67, 67, 37, 73, 124, 39, 41, 41, 39, 41, 44, 42, 84, @@ -2183,7 +2189,7 @@ static const flex_int16_t yy_chk[6174] = 136, 140, 147, 141, 138, 144, 149, 151, 144, 145, 152, 146, 150, 148, 150, 152, 153, 156, 154, 151, - 155, 147, 149, 150, 1041, 155, 158, 158, 153, 160, + 155, 147, 149, 150, 1044, 155, 158, 158, 153, 160, 182, 156, 160, 165, 165, 150, 154, 162, 182, 162, 162, 167, 162, 167, 167, 168, 167, 168, 168, 170, 168, 172, 170, 172, 172, 176, 172, 168, 175, 175, @@ -2235,8 +2241,8 @@ static const flex_int16_t yy_chk[6174] = 359, 362, 360, 361, 361, 366, 362, 365, 367, 363, 368, 357, 363, 369, 357, 372, 357, 371, 363, 375, 371, 378, 363, 367, 374, 368, 366, 369, 375, 372, - 363, 364, 364, 380, 364, 376, 371, 377, 667, 374, - 376, 376, 378, 377, 379, 382, 384, 364, 380, 667, + 363, 364, 364, 380, 364, 376, 371, 377, 668, 374, + 376, 376, 378, 377, 379, 382, 384, 364, 380, 668, 364, 381, 364, 383, 364, 373, 385, 373, 373, 383, 381, 386, 388, 379, 382, 391, 389, 373, 390, 373, @@ -2244,580 +2250,583 @@ static const flex_int16_t yy_chk[6174] = 391, 394, 392, 387, 396, 388, 389, 394, 390, 395, 395, 397, 398, 393, 399, 400, 401, 402, 403, 403, 399, 403, 402, 397, 396, 404, 398, 405, 406, 408, - 481, 408, 401, 407, 409, 410, 409, 411, 413, 410, - 400, 411, 415, 405, 406, 404, 414, 407, 412, 412, - 416, 417, 481, 418, 409, 419, 411, 413, 415, 421, - 422, 414, 418, 421, 419, 417, 420, 424, 416, 422, + 159, 408, 401, 407, 409, 410, 409, 409, 411, 410, + 400, 413, 411, 405, 406, 404, 414, 407, 412, 412, + 415, 416, 424, 417, 409, 418, 419, 411, 420, 429, + 413, 414, 422, 420, 418, 419, 415, 417, 421, 416, - 423, 420, 425, 418, 429, 418, 423, 426, 425, 427, - 428, 426, 427, 430, 430, 428, 431, 433, 424, 432, - 432, 434, 433, 438, 429, 435, 435, 436, 437, 431, - 439, 440, 437, 436, 434, 441, 440, 443, 438, 444, - 441, 442, 442, 445, 446, 447, 449, 451, 447, 443, - 442, 439, 451, 448, 450, 450, 446, 448, 449, 444, - 452, 445, 453, 453, 456, 456, 457, 458, 459, 460, - 461, 464, 463, 466, 465, 458, 467, 459, 468, 466, - 470, 452, 461, 472, 468, 467, 472, 457, 465, 460, - 463, 464, 463, 469, 470, 471, 473, 474, 469, 475, + 423, 422, 421, 424, 425, 418, 423, 418, 426, 429, + 425, 427, 426, 428, 427, 430, 430, 431, 428, 432, + 432, 433, 434, 435, 435, 436, 433, 438, 437, 439, + 431, 436, 437, 440, 441, 434, 442, 442, 440, 441, + 443, 444, 438, 446, 445, 442, 447, 448, 449, 447, + 439, 448, 443, 450, 450, 446, 452, 457, 451, 461, + 449, 444, 445, 451, 453, 453, 456, 456, 458, 460, + 459, 461, 463, 464, 465, 466, 458, 452, 457, 459, + 468, 466, 467, 470, 476, 157, 468, 471, 465, 460, + 463, 467, 463, 464, 469, 471, 473, 470, 471, 469, - 476, 477, 478, 471, 477, 475, 471, 479, 478, 480, - 473, 482, 474, 483, 480, 485, 488, 483, 484, 486, - 476, 479, 487, 484, 486, 492, 478, 489, 493, 494, - 485, 495, 482, 494, 505, 488, 496, 505, 487, 499, - 489, 490, 490, 493, 497, 492, 500, 490, 497, 490, - 495, 500, 496, 498, 499, 490, 501, 490, 498, 502, - 490, 490, 498, 503, 504, 506, 507, 490, 502, 503, - 508, 508, 501, 509, 503, 501, 510, 510, 511, 512, - 504, 513, 514, 515, 516, 517, 507, 518, 506, 516, - 522, 512, 519, 511, 517, 526, 513, 520, 509, 522, + 472, 474, 475, 472, 476, 478, 477, 479, 475, 477, + 473, 478, 480, 481, 483, 482, 474, 480, 483, 484, + 486, 479, 485, 487, 484, 486, 488, 489, 492, 478, + 505, 495, 728, 505, 493, 481, 482, 485, 494, 487, + 489, 496, 494, 728, 499, 488, 490, 490, 492, 493, + 495, 497, 490, 504, 490, 497, 500, 496, 498, 499, + 490, 500, 490, 498, 501, 490, 490, 498, 502, 504, + 503, 506, 490, 507, 508, 508, 503, 502, 509, 512, + 501, 503, 511, 501, 510, 510, 513, 514, 515, 517, + 516, 512, 518, 507, 506, 516, 520, 511, 517, 519, - 523, 514, 524, 520, 523, 515, 518, 519, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 534, 533, 531, - 533, 525, 535, 535, 537, 534, 528, 536, 529, 532, - 527, 538, 530, 536, 539, 540, 537, 538, 540, 541, - 542, 544, 543, 545, 544, 546, 539, 543, 549, 549, - 548, 547, 545, 541, 551, 542, 547, 547, 556, 545, - 551, 546, 545, 548, 550, 550, 552, 552, 553, 553, - 554, 557, 555, 559, 557, 558, 554, 555, 555, 556, - 558, 560, 561, 562, 563, 561, 564, 565, 562, 560, - 566, 565, 559, 567, 568, 569, 566, 567, 570, 572, + 522, 513, 520, 509, 523, 525, 514, 524, 523, 522, + 515, 518, 526, 524, 519, 527, 528, 525, 529, 530, + 531, 533, 532, 533, 531, 535, 535, 526, 534, 537, + 528, 539, 536, 529, 527, 532, 534, 530, 536, 538, + 541, 537, 542, 539, 540, 538, 543, 540, 546, 544, + 545, 543, 544, 558, 541, 547, 558, 542, 548, 545, + 547, 547, 549, 549, 546, 556, 545, 550, 550, 545, + 551, 548, 552, 552, 553, 553, 551, 554, 557, 555, + 560, 561, 559, 554, 555, 555, 556, 559, 562, 561, + 557, 562, 563, 564, 565, 567, 566, 563, 568, 560, - 569, 573, 571, 575, 572, 564, 577, 563, 571, 576, - 576, 574, 568, 578, 574, 573, 581, 579, 570, 574, - 580, 575, 579, 574, 577, 580, 582, 584, 585, 578, - 581, 586, 587, 584, 586, 588, 587, 585, 590, 589, - 588, 582, 589, 590, 591, 592, 593, 595, 594, 596, - 597, 597, 595, 593, 599, 598, 600, 601, 587, 602, - 591, 594, 603, 592, 598, 159, 601, 609, 603, 596, - 604, 602, 600, 599, 605, 610, 604, 605, 606, 606, - 607, 606, 608, 607, 611, 609, 612, 608, 613, 610, - 611, 612, 614, 615, 613, 614, 616, 617, 615, 618, + 566, 567, 568, 569, 570, 571, 572, 595, 574, 570, + 573, 575, 572, 565, 575, 573, 564, 576, 578, 575, + 595, 569, 574, 575, 579, 571, 577, 577, 580, 581, + 582, 583, 585, 580, 581, 576, 578, 588, 585, 586, + 579, 588, 587, 592, 582, 587, 583, 589, 586, 591, + 590, 593, 589, 590, 591, 594, 596, 597, 599, 592, + 600, 596, 594, 588, 598, 598, 601, 599, 604, 593, + 605, 602, 603, 610, 604, 606, 605, 597, 606, 600, + 602, 611, 601, 85, 603, 607, 607, 608, 607, 609, + 608, 610, 612, 614, 609, 611, 613, 615, 612, 614, - 619, 616, 616, 620, 621, 619, 622, 624, 623, 620, - 617, 626, 618, 623, 629, 622, 625, 625, 626, 619, - 619, 627, 628, 621, 627, 630, 629, 624, 628, 631, - 630, 632, 632, 633, 631, 631, 634, 635, 634, 627, - 636, 637, 636, 638, 639, 640, 641, 642, 643, 647, - 645, 644, 643, 642, 646, 648, 635, 650, 633, 637, - 644, 638, 639, 649, 640, 645, 641, 647, 652, 646, - 651, 653, 650, 654, 648, 649, 651, 655, 658, 657, - 656, 659, 652, 653, 656, 660, 661, 663, 662, 664, - 664, 665, 654, 662, 658, 665, 655, 657, 666, 659, + 615, 613, 616, 617, 618, 619, 620, 616, 617, 617, + 621, 620, 622, 623, 624, 625, 621, 618, 619, 624, + 626, 626, 623, 627, 628, 620, 620, 628, 629, 630, + 627, 622, 631, 632, 629, 625, 634, 631, 632, 632, + 636, 630, 628, 633, 633, 635, 637, 635, 637, 638, + 639, 640, 641, 642, 643, 645, 648, 646, 644, 636, + 643, 634, 644, 647, 645, 649, 651, 638, 639, 640, + 650, 641, 646, 642, 648, 653, 654, 652, 647, 655, + 656, 651, 650, 652, 649, 658, 657, 660, 654, 653, + 657, 659, 661, 662, 664, 663, 665, 665, 655, 656, - 668, 663, 669, 660, 660, 661, 670, 669, 671, 673, - 672, 678, 675, 674, 668, 676, 673, 666, 674, 675, - 676, 677, 670, 672, 679, 680, 677, 671, 681, 678, - 682, 679, 683, 684, 680, 687, 689, 685, 684, 682, - 685, 686, 681, 688, 683, 686, 690, 691, 697, 687, - 695, 689, 688, 692, 692, 693, 693, 694, 694, 695, - 690, 699, 700, 698, 693, 701, 700, 697, 691, 698, - 702, 703, 704, 706, 705, 707, 708, 701, 704, 709, - 706, 699, 705, 712, 719, 718, 715, 724, 724, 703, - 719, 721, 722, 707, 718, 702, 723, 721, 712, 709, + 663, 667, 666, 658, 669, 660, 666, 659, 664, 670, + 661, 661, 662, 671, 670, 672, 674, 673, 669, 675, + 667, 676, 677, 674, 675, 679, 678, 677, 676, 671, + 673, 678, 680, 681, 672, 682, 683, 686, 684, 680, + 686, 685, 681, 679, 687, 683, 685, 688, 687, 682, + 684, 689, 690, 692, 691, 693, 693, 694, 694, 698, + 689, 688, 695, 695, 696, 699, 694, 690, 691, 700, + 702, 699, 701, 696, 692, 703, 701, 704, 698, 705, + 706, 708, 702, 707, 709, 705, 710, 713, 706, 700, + 707, 716, 719, 726, 726, 704, 723, 720, 722, 708, - 723, 708, 710, 715, 710, 725, 725, 710, 722, 726, - 727, 710, 728, 729, 710, 735, 733, 730, 739, 739, - 726, 710, 710, 730, 710, 732, 728, 734, 727, 736, - 732, 157, 736, 729, 731, 731, 731, 733, 731, 740, - 735, 731, 737, 738, 742, 734, 731, 737, 737, 742, - 738, 748, 731, 731, 740, 741, 741, 743, 744, 747, - 743, 745, 745, 744, 746, 749, 746, 750, 752, 749, - 748, 747, 751, 753, 753, 754, 752, 757, 755, 756, - 756, 758, 759, 760, 762, 762, 85, 750, 781, 760, - 754, 751, 755, 758, 761, 757, 763, 781, 765, 761, + 703, 719, 713, 720, 722, 723, 710, 724, 716, 709, + 711, 730, 711, 725, 735, 711, 729, 725, 731, 711, + 727, 727, 711, 724, 736, 730, 734, 732, 737, 711, + 711, 734, 711, 732, 729, 735, 741, 741, 731, 733, + 733, 733, 736, 733, 738, 740, 733, 738, 742, 739, + 80, 733, 740, 737, 739, 739, 744, 733, 733, 743, + 743, 744, 745, 742, 746, 745, 747, 747, 748, 746, + 748, 749, 750, 751, 752, 756, 753, 751, 754, 755, + 755, 759, 757, 749, 758, 758, 754, 761, 760, 75, + 756, 750, 762, 781, 752, 753, 757, 763, 762, 759, - 766, 763, 763, 765, 759, 767, 766, 768, 769, 771, - 770, 767, 768, 770, 769, 771, 772, 773, 773, 774, - 774, 775, 776, 777, 772, 778, 779, 782, 777, 775, - 780, 780, 778, 783, 784, 782, 788, 786, 787, 783, - 776, 790, 794, 789, 793, 779, 786, 787, 789, 791, - 790, 792, 791, 784, 795, 796, 792, 799, 793, 797, - 788, 798, 798, 795, 797, 797, 800, 794, 796, 801, - 802, 803, 799, 805, 803, 805, 806, 806, 801, 807, - 809, 808, 803, 810, 811, 800, 808, 812, 813, 814, - 815, 816, 817, 818, 802, 816, 819, 820, 814, 821, + 760, 765, 763, 764, 764, 767, 765, 765, 768, 761, + 767, 769, 781, 770, 768, 771, 772, 769, 770, 772, + 773, 771, 774, 775, 775, 777, 773, 776, 776, 778, + 774, 779, 780, 777, 782, 782, 779, 783, 785, 780, + 784, 786, 788, 789, 785, 790, 783, 778, 784, 791, + 792, 788, 789, 793, 791, 796, 793, 794, 795, 792, + 786, 797, 794, 798, 800, 800, 801, 802, 799, 790, + 797, 804, 795, 799, 799, 803, 798, 808, 808, 805, + 796, 801, 805, 807, 803, 807, 802, 809, 810, 811, + 805, 812, 813, 810, 814, 804, 816, 815, 817, 818, - 807, 809, 819, 810, 811, 822, 820, 823, 813, 812, - 817, 821, 818, 815, 824, 825, 828, 826, 827, 827, - 824, 823, 826, 829, 822, 830, 831, 832, 833, 825, - 834, 835, 829, 836, 831, 837, 828, 839, 838, 836, - 840, 837, 841, 839, 844, 830, 80, 832, 841, 834, - 833, 835, 838, 842, 843, 845, 846, 847, 843, 842, - 840, 846, 849, 844, 848, 848, 850, 845, 849, 850, - 851, 852, 854, 853, 859, 845, 855, 855, 847, 853, - 856, 857, 862, 860, 852, 858, 857, 860, 851, 859, - 858, 858, 854, 861, 861, 863, 864, 865, 856, 867, + 819, 820, 823, 818, 824, 816, 822, 821, 809, 830, + 811, 812, 813, 821, 823, 822, 814, 815, 819, 825, + 820, 817, 826, 824, 827, 828, 829, 829, 826, 830, + 828, 831, 832, 825, 833, 834, 835, 836, 827, 837, + 831, 838, 833, 839, 841, 842, 840, 838, 843, 839, + 841, 844, 832, 846, 843, 834, 836, 844, 835, 837, + 840, 847, 845, 848, 849, 842, 845, 854, 848, 850, + 850, 851, 846, 847, 853, 852, 855, 851, 852, 856, + 854, 847, 855, 857, 857, 849, 858, 861, 859, 860, + 863, 863, 853, 859, 860, 860, 862, 864, 865, 856, - 868, 864, 870, 871, 862, 873, 873, 874, 876, 876, - 877, 874, 875, 878, 868, 863, 865, 878, 879, 889, - 898, 898, 870, 867, 871, 872, 880, 875, 872, 882, - 872, 889, 881, 879, 872, 877, 872, 881, 884, 883, - 880, 872, 885, 882, 883, 883, 872, 884, 886, 890, - 887, 892, 886, 888, 890, 891, 885, 893, 888, 902, - 895, 894, 901, 75, 886, 887, 895, 896, 888, 891, - 894, 893, 892, 896, 897, 903, 899, 900, 902, 905, - 897, 899, 906, 900, 901, 907, 908, 906, 909, 909, - 913, 905, 910, 903, 904, 904, 911, 910, 908, 907, + 862, 866, 861, 867, 858, 869, 866, 870, 872, 873, + 875, 875, 876, 878, 878, 74, 876, 877, 865, 864, + 879, 870, 867, 880, 881, 901, 901, 880, 872, 869, + 873, 874, 877, 883, 874, 882, 874, 884, 883, 881, + 874, 886, 874, 887, 891, 879, 889, 874, 885, 882, + 886, 884, 874, 885, 885, 888, 891, 887, 890, 888, + 892, 889, 893, 890, 894, 892, 895, 898, 896, 897, + 904, 888, 898, 890, 902, 897, 893, 896, 899, 902, + 895, 900, 903, 905, 899, 894, 906, 900, 903, 908, + 909, 911, 904, 910, 913, 909, 912, 912, 915, 913, - 904, 912, 904, 914, 911, 915, 915, 916, 904, 913, - 917, 916, 919, 904, 904, 912, 920, 921, 919, 920, - 904, 922, 914, 923, 925, 934, 924, 932, 927, 923, - 917, 924, 928, 929, 922, 933, 921, 927, 930, 931, - 933, 928, 935, 925, 930, 934, 932, 936, 931, 929, - 937, 938, 939, 940, 941, 946, 935, 942, 944, 940, - 938, 939, 937, 942, 947, 949, 948, 936, 950, 946, - 952, 941, 951, 953, 944, 952, 956, 960, 953, 949, - 957, 956, 958, 958, 947, 948, 950, 951, 959, 957, - 960, 962, 963, 967, 959, 964, 964, 963, 963, 964, + 914, 908, 905, 911, 906, 907, 907, 910, 914, 916, + 917, 907, 915, 907, 918, 918, 919, 920, 68, 907, + 919, 922, 924, 923, 907, 907, 923, 922, 916, 917, + 925, 907, 926, 928, 927, 930, 931, 920, 926, 927, + 932, 924, 933, 925, 930, 931, 934, 935, 933, 936, + 937, 938, 928, 939, 936, 934, 932, 940, 941, 942, + 947, 944, 950, 953, 951, 938, 935, 941, 942, 940, + 937, 943, 949, 939, 945, 952, 947, 943, 944, 954, + 945, 953, 950, 951, 63, 955, 949, 956, 959, 952, + 955, 960, 956, 959, 954, 961, 961, 962, 963, 965, - 965, 966, 968, 965, 969, 971, 970, 962, 972, 973, - 974, 975, 976, 967, 972, 966, 974, 976, 968, 970, - 971, 977, 969, 980, 979, 981, 975, 979, 982, 973, - 981, 983, 984, 982, 985, 977, 986, 984, 989, 985, - 988, 992, 992, 990, 980, 991, 988, 983, 986, 990, - 993, 991, 994, 995, 989, 997, 995, 996, 996, 993, - 998, 999, 1000, 1001, 1004, 1000, 1002, 1009, 1003, 1004, - 994, 1010, 1002, 997, 1003, 1005, 1001, 1006, 1007, 998, - 1005, 999, 1006, 1011, 1007, 1009, 1014, 1012, 1015, 1011, - 1016, 1010, 1012, 1013, 1013, 1014, 1017, 1015, 1018, 1019, + 960, 966, 969, 962, 967, 967, 966, 966, 967, 968, + 970, 963, 968, 971, 972, 965, 969, 975, 973, 974, + 976, 977, 978, 975, 980, 983, 58, 977, 979, 971, + 970, 973, 972, 979, 974, 986, 982, 978, 980, 982, + 976, 989, 984, 985, 987, 988, 983, 984, 985, 987, + 988, 986, 991, 989, 992, 993, 994, 996, 991, 995, + 995, 993, 994, 997, 998, 1000, 996, 998, 999, 999, + 992, 1001, 1002, 1003, 1004, 1007, 1003, 1008, 1005, 1006, + 1007, 997, 1008, 1000, 1005, 1006, 1009, 1004, 1010, 1012, + 1001, 1009, 1002, 1013, 1010, 1014, 1017, 1015, 1016, 1016, - 1020, 1018, 1019, 1021, 1022, 1023, 1024, 1025, 1016, 1027, - 1026, 1020, 1024, 1025, 1027, 1017, 1022, 1028, 1028, 1029, - 1030, 1021, 1032, 1031, 1023, 1026, 1032, 1033, 1034, 1035, - 1036, 1038, 1039, 1039, 1030, 1031, 1040, 1034, 1029, 1042, - 1044, 1045, 1043, 1047, 1047, 1033, 1045, 1048, 1035, 1046, - 1038, 74, 1044, 1042, 1049, 1036, 1040, 1043, 1046, 1050, - 1049, 1051, 1052, 1053, 1052, 1050, 1051, 1048, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1056, 1061, 1063, 1063, - 1064, 1059, 1065, 1054, 1055, 1067, 1066, 1057, 1068, 68, - 1060, 1067, 1058, 1069, 1064, 1071, 1061, 1075, 1069, 1071, + 1018, 1014, 1015, 1019, 1020, 1017, 1023, 1012, 1021, 1018, + 1024, 1021, 1022, 1013, 1025, 1022, 1026, 1023, 1027, 1028, + 1032, 1019, 1029, 1020, 1027, 1028, 1025, 1030, 1024, 1031, + 1031, 1033, 1030, 1036, 1034, 1026, 1035, 1029, 1037, 1032, + 1035, 1038, 1039, 1041, 1043, 1033, 1034, 1037, 1042, 1042, + 1046, 1036, 1045, 1048, 1049, 1051, 1047, 1055, 1048, 1055, + 1038, 57, 1041, 1049, 1043, 1046, 1045, 1039, 1047, 1050, + 1050, 1052, 1053, 1057, 1054, 1051, 1056, 1052, 1053, 1054, + 1058, 1056, 1060, 1059, 1061, 1062, 1063, 1057, 1059, 1064, + 1066, 1066, 1062, 1067, 1058, 1068, 1069, 1060, 1070, 1071, - 1065, 1066, 1072, 1072, 1075, 1073, 1076, 1069, 1068, 1069, - 1073, 1078, 1069, 1074, 1074, 1077, 1079, 1080, 1077, 1081, - 1076, 1082, 1084, 1083, 1081, 1085, 1080, 1084, 1086, 1091, - 1078, 1088, 1088, 1089, 1079, 1083, 1085, 1090, 1089, 1092, - 1082, 1093, 1090, 1094, 1092, 1093, 1095, 1086, 1096, 1091, - 1097, 1099, 1094, 1098, 1102, 1100, 1101, 1103, 1104, 1106, - 1107, 1095, 1100, 1096, 1105, 1098, 1099, 1108, 1101, 1097, - 1105, 1111, 1109, 1102, 1106, 1112, 1104, 1111, 1103, 1113, - 1107, 1109, 1115, 1114, 1116, 1117, 1119, 1108, 1121, 1116, - 1112, 1114, 1120, 1113, 1118, 1122, 1122, 1117, 1124, 1118, + 1076, 1063, 1074, 1061, 1070, 1076, 1074, 1067, 1064, 1072, + 1079, 1069, 1081, 1068, 1072, 1075, 1075, 1077, 1077, 1071, + 1078, 1082, 1086, 1072, 1079, 1072, 1080, 1078, 1072, 1080, + 1084, 1081, 1083, 1085, 1086, 1084, 1088, 1087, 1089, 1082, + 1090, 1083, 1087, 1092, 1092, 1095, 1093, 1098, 1094, 1089, + 1088, 1093, 1085, 1094, 1097, 1096, 1098, 1099, 1097, 1090, + 1096, 1100, 1101, 1102, 1103, 1095, 1104, 1106, 1105, 1107, + 1108, 1109, 1099, 1104, 1110, 1102, 1100, 1109, 1111, 1103, + 1105, 1101, 1112, 1113, 1116, 1115, 1106, 1117, 1108, 1110, + 1107, 1115, 1113, 1119, 1121, 1118, 1123, 1124, 1111, 1116, - 1118, 1121, 1115, 1126, 1125, 1119, 1120, 1123, 1179, 1126, - 1179, 1124, 1123, 1125, 1128, 1123, 1123, 1127, 1127, 1128, - 1123, 1130, 1129, 1131, 1132, 1134, 1123, 1130, 1131, 1132, - 1123, 1129, 1133, 1133, 1135, 1135, 1136, 1137, 1138, 1136, - 1139, 1136, 1140, 1141, 1142, 1143, 1134, 1144, 1141, 1139, - 1146, 1149, 1149, 1144, 1145, 1146, 1138, 1137, 1142, 1148, - 1145, 1147, 1140, 1143, 1155, 1147, 1150, 1150, 1148, 1150, - 1151, 1154, 1153, 1148, 1156, 1148, 1153, 1148, 1158, 1148, - 1159, 1151, 1155, 1156, 1157, 1161, 1154, 1158, 1160, 1157, - 1157, 1162, 1163, 1160, 1164, 1165, 1169, 1166, 1168, 1161, + 1120, 1117, 1112, 1118, 1122, 1120, 1121, 1125, 1146, 1122, + 1122, 1124, 1128, 1119, 1129, 1123, 1126, 1126, 1130, 52, + 1125, 1127, 1146, 1129, 1130, 1128, 1127, 1131, 1131, 1127, + 1127, 1132, 1133, 1134, 1127, 1138, 1132, 1135, 1136, 1134, + 1127, 1133, 1135, 1136, 1127, 1137, 1137, 1139, 1139, 1140, + 1141, 1142, 1140, 1143, 1140, 1144, 1138, 1217, 1145, 1147, + 1148, 1149, 1143, 1145, 1217, 1152, 1148, 1149, 1150, 1142, + 1141, 1155, 1151, 1150, 1152, 1144, 1151, 1147, 1158, 1152, + 1157, 1152, 1155, 1152, 1157, 1152, 1153, 1153, 1154, 1154, + 1159, 1154, 1160, 1158, 1161, 1162, 1163, 1164, 1165, 1161, - 1162, 1171, 1159, 1166, 1167, 1167, 1168, 1170, 1172, 1165, - 1169, 1163, 1170, 1164, 1173, 1171, 1174, 1172, 1175, 1176, - 1176, 1177, 1182, 1175, 1178, 1178, 1181, 1182, 1183, 1181, - 1184, 1186, 1173, 1185, 1185, 1189, 1177, 1187, 1187, 1184, - 1189, 1174, 1188, 1188, 1190, 1191, 1199, 1183, 1192, 1192, - 1193, 1186, 1194, 1195, 1196, 1194, 1203, 1202, 1197, 1196, - 1198, 1203, 1198, 1204, 1199, 1190, 1191, 1197, 1201, 1205, - 1193, 1201, 1202, 1195, 1205, 1206, 1207, 1204, 1211, 1208, - 1214, 1207, 1210, 1206, 1208, 1209, 1209, 1210, 1212, 1216, - 1213, 1224, 1217, 1214, 1212, 1216, 1211, 1213, 1217, 1218, + 1161, 1160, 1164, 1167, 1162, 1166, 1168, 1169, 1159, 1170, + 1171, 1171, 1165, 1173, 1166, 1170, 1172, 1175, 1163, 1177, + 1176, 1169, 1167, 1174, 1172, 1168, 1178, 1173, 1174, 1176, + 1179, 1175, 1180, 1180, 1181, 1179, 1187, 1177, 1182, 1182, + 1183, 1185, 1183, 1186, 1185, 1188, 1189, 1189, 1186, 1181, + 1190, 1178, 1191, 1191, 1188, 1187, 1192, 1192, 1193, 1194, + 1195, 1196, 1196, 1193, 1197, 1198, 1199, 1200, 1198, 1201, + 1190, 1202, 1200, 1202, 1203, 1206, 1205, 1207, 1201, 1205, + 1194, 1195, 1207, 1208, 1197, 1215, 1199, 1210, 1209, 1211, + 1206, 1212, 1203, 1209, 1211, 1210, 1212, 1208, 1213, 1213, - 1219, 1220, 1221, 1222, 1218, 1226, 1219, 1223, 1223, 1227, - 1220, 1224, 1228, 1229, 1222, 1236, 1230, 1231, 1233, 1229, - 1226, 1221, 1230, 1231, 1233, 1234, 1235, 1236, 1237, 1227, - 1238, 1239, 1239, 1240, 1241, 1228, 1242, 1245, 1243, 1234, - 1244, 1244, 1237, 1243, 1246, 1234, 1235, 1248, 1238, 1246, - 1249, 1250, 1251, 1240, 1242, 1249, 1249, 1252, 1253, 1241, - 1245, 1251, 1254, 1255, 1263, 1252, 1248, 63, 1256, 1250, - 1257, 1259, 1253, 1256, 1265, 1263, 1256, 1254, 1255, 1257, - 1258, 1255, 1258, 1261, 1262, 1259, 1264, 1266, 1262, 1261, - 1267, 1264, 1264, 1265, 1268, 1269, 1270, 1271, 1272, 1268, + 1214, 1216, 1218, 1215, 1220, 1214, 1221, 1216, 1222, 1224, + 1220, 1223, 1221, 1222, 1225, 1218, 1226, 1223, 1224, 1227, + 1227, 1228, 1230, 1231, 1232, 1233, 1234, 1226, 1235, 1237, + 1238, 1233, 1234, 1225, 1235, 1237, 1239, 1230, 1241, 1240, + 1242, 1228, 1244, 1231, 1238, 1243, 1243, 1232, 1245, 1246, + 1238, 1240, 1241, 1249, 1247, 1252, 1239, 1254, 1242, 1247, + 1248, 1248, 1244, 1250, 1253, 1257, 1258, 1246, 1250, 1253, + 1253, 1255, 1259, 1245, 1252, 1254, 1249, 1256, 1260, 1257, + 1255, 1258, 1261, 1260, 1263, 1256, 1260, 1259, 1267, 1265, + 1259, 1261, 1262, 1266, 1262, 1265, 1268, 1266, 1263, 1267, - 1269, 1274, 1271, 1275, 1276, 1277, 1277, 1278, 1267, 1279, - 1280, 1278, 1282, 1266, 1270, 1274, 1283, 1281, 1272, 1284, - 1287, 1275, 1276, 1281, 1282, 1285, 1286, 1279, 1291, 1280, - 1289, 1288, 1294, 1284, 1296, 1283, 1288, 1289, 1290, 1287, - 1285, 1286, 1292, 1290, 1293, 1293, 1291, 1294, 1295, 1297, - 1296, 1292, 1298, 1299, 1295, 1300, 1305, 1298, 1307, 1299, - 1305, 1300, 1301, 1301, 1302, 1302, 1304, 1304, 1306, 1308, - 1297, 1309, 1310, 1311, 1311, 1312, 1307, 1306, 1315, 1310, - 1313, 1316, 1314, 1308, 1317, 1319, 1309, 1314, 1313, 1317, - 1317, 1318, 1315, 1320, 1320, 1312, 1318, 1318, 1321, 1322, + 1269, 1268, 1268, 1270, 1271, 1272, 1273, 1274, 1275, 1276, + 1272, 1273, 1277, 1279, 1276, 1280, 1281, 1282, 1282, 1269, + 1283, 1284, 1271, 1285, 1283, 1274, 1287, 1279, 1275, 1270, + 1286, 1288, 1277, 1280, 1281, 1289, 1286, 1290, 1287, 1284, + 1291, 1292, 1285, 1293, 1294, 1296, 1302, 1297, 1293, 1289, + 1288, 1294, 1290, 1295, 1299, 1291, 1297, 1301, 1295, 1300, + 1292, 1298, 1298, 1296, 1304, 1300, 1303, 1302, 1305, 1299, + 1304, 1303, 1312, 1301, 1305, 1306, 1306, 1307, 1307, 1309, + 1309, 1310, 1311, 1313, 1314, 1310, 1315, 1316, 1316, 1317, + 1312, 1311, 1318, 1315, 1320, 1321, 1319, 1313, 1322, 1314, - 1316, 1323, 1324, 1325, 1326, 1319, 1328, 1324, 1327, 1329, - 1323, 1330, 1328, 1331, 1329, 1332, 1335, 1321, 1322, 1331, - 1336, 1333, 1325, 1334, 1326, 1337, 1327, 1333, 1338, 1334, - 1340, 1339, 1348, 1341, 1332, 1335, 1348, 1330, 1344, 1336, - 1342, 1342, 1354, 1343, 1337, 1339, 1343, 1338, 1341, 1349, - 1344, 1340, 1345, 1345, 1346, 1346, 1347, 1350, 1351, 1355, - 1354, 1347, 1349, 1352, 1355, 1352, 1350, 1357, 1356, 1352, - 1358, 1351, 1359, 1359, 1360, 1361, 1362, 1363, 1367, 1360, - 1364, 1361, 1352, 1356, 1365, 1364, 1358, 1357, 1365, 1366, - 1363, 1362, 1368, 1366, 1369, 1370, 1371, 1371, 1367, 1373, + 1318, 1319, 1324, 1322, 1322, 1323, 1325, 1325, 1320, 1317, + 1323, 1323, 1326, 1327, 1321, 1328, 1329, 1330, 1331, 1332, + 1333, 1329, 1324, 1334, 1328, 1335, 1333, 1336, 1334, 1337, + 1340, 1326, 1327, 1336, 1338, 1339, 1330, 1332, 1331, 1341, + 1338, 1339, 1342, 1343, 1345, 1344, 1347, 1347, 1337, 1340, + 1348, 1335, 1346, 1348, 1349, 1350, 1350, 47, 1341, 1344, + 1359, 1342, 1343, 1351, 1351, 1345, 1349, 1346, 1352, 1354, + 1353, 1355, 1356, 1352, 1353, 1357, 1361, 1357, 1359, 1360, + 1355, 1357, 1354, 1362, 1360, 1356, 1363, 1364, 1364, 1367, + 1365, 1361, 1366, 1368, 1357, 1365, 1369, 1372, 1366, 1374, - 1375, 1370, 1376, 1377, 1377, 1378, 1379, 1376, 1381, 1381, - 1368, 1378, 1383, 1385, 1369, 1383, 1386, 1373, 1384, 1384, - 1388, 1375, 1389, 1388, 1390, 1392, 1379, 1391, 1391, 1385, - 1393, 1394, 1386, 1390, 1395, 1396, 1397, 1397, 1398, 1395, - 1392, 1399, 1389, 1400, 1401, 1402, 1402, 1398, 1403, 1396, - 1394, 1393, 1404, 1406, 1409, 1405, 1407, 1407, 1400, 1399, - 1405, 1408, 1403, 1410, 1410, 1408, 1411, 1412, 1406, 1401, - 1404, 1413, 1414, 1418, 1409, 1413, 1415, 1419, 1412, 1417, - 1417, 1415, 1420, 1421, 1422, 1423, 1424, 1424, 1411, 1418, - 1428, 1414, 1425, 1426, 1427, 1419, 1420, 1425, 1422, 1428, + 1373, 1369, 1363, 1362, 1367, 1370, 1368, 1371, 1375, 1370, + 1378, 1371, 1376, 1376, 1375, 1380, 1381, 1372, 1373, 1374, + 1383, 1381, 1382, 1382, 1384, 1390, 1383, 1391, 1378, 1386, + 1386, 1388, 1389, 1389, 1388, 1393, 1380, 1394, 1393, 1395, + 1397, 1390, 1398, 1391, 1384, 1396, 1396, 1399, 1395, 1400, + 1401, 1402, 1402, 1403, 1400, 1397, 1404, 1394, 1405, 1406, + 1407, 1407, 1403, 1398, 1401, 1408, 1399, 1409, 1411, 1414, + 1410, 1412, 1412, 1405, 1404, 1410, 1413, 1415, 1415, 1408, + 1413, 1416, 1417, 1411, 1406, 1409, 1418, 1419, 1423, 1414, + 1418, 1420, 1424, 1417, 1422, 1422, 1420, 1425, 1426, 1427, - 1429, 1430, 1421, 1421, 1431, 1429, 1431, 1432, 1434, 1433, - 1423, 1435, 1432, 1426, 1427, 1433, 1437, 1435, 1438, 1438, - 1439, 1430, 1442, 1440, 1443, 1444, 1444, 1442, 1434, 1440, - 1437, 1445, 1445, 1446, 1447, 1448, 1451, 1449, 1453, 1439, - 1449, 1450, 1450, 1452, 1456, 1455, 1471, 1446, 1443, 1456, - 1448, 1455, 1447, 1454, 1451, 1452, 1454, 1457, 1453, 1454, - 1457, 1459, 1460, 1461, 1471, 1462, 1472, 1460, 1462, 1464, - 1459, 1454, 1463, 1463, 1465, 1464, 1457, 1466, 1466, 1465, - 1467, 1467, 1469, 1468, 1470, 1472, 1473, 1469, 1461, 1468, - 1474, 1477, 1475, 1474, 1476, 1478, 1477, 1470, 1475, 1479, + 1428, 1429, 1429, 1416, 1423, 1433, 1419, 1430, 1431, 1432, + 1424, 1425, 1430, 1427, 1433, 1434, 1435, 1426, 1426, 1436, + 1434, 1436, 1437, 1439, 1438, 1428, 1440, 1437, 1431, 1432, + 1438, 1442, 1440, 1443, 1443, 1444, 1435, 1447, 1445, 1448, + 1449, 1449, 1447, 1439, 1445, 1442, 1450, 1450, 1451, 1452, + 1453, 1456, 1454, 1458, 1444, 1454, 1455, 1455, 1457, 1461, + 1460, 1477, 1451, 1448, 1461, 1453, 1460, 1452, 1459, 1456, + 1457, 1459, 1462, 1458, 1459, 1462, 1464, 1465, 1466, 1477, + 1467, 18, 1465, 1467, 1469, 1464, 1459, 1468, 1468, 1470, + 1469, 1462, 1471, 1472, 1472, 1470, 1474, 1471, 1473, 1473, - 1476, 1478, 1480, 1481, 1481, 1482, 1473, 1480, 1483, 1484, - 1482, 1485, 1488, 1486, 1487, 1491, 1492, 1493, 1489, 1490, - 1494, 1491, 1479, 1495, 1488, 1498, 1483, 1486, 1487, 1484, - 1489, 1485, 1490, 1501, 1494, 1499, 1492, 1493, 1497, 1497, - 1499, 1500, 1500, 1502, 1495, 1498, 1503, 1504, 1501, 1505, - 1513, 1506, 1507, 1509, 58, 1508, 1511, 1502, 1505, 1507, - 1514, 1515, 1515, 1514, 1508, 1504, 1506, 1508, 1517, 1509, - 1503, 1511, 1516, 1516, 1518, 1513, 1511, 1521, 1519, 1522, - 1517, 1519, 1520, 1520, 1523, 1525, 1524, 1526, 1527, 1523, - 1521, 1524, 1518, 1528, 1533, 1531, 1529, 1527, 1522, 1535, + 1475, 1476, 1474, 1466, 1478, 1475, 1479, 1480, 1483, 1481, + 1480, 1482, 1484, 1483, 1476, 1481, 1485, 1482, 1484, 1486, + 1487, 1487, 1488, 1478, 1486, 1489, 1479, 1488, 1490, 1491, + 1492, 1493, 1497, 1498, 1494, 1495, 1499, 1496, 1497, 1485, + 1500, 1501, 1507, 1489, 1492, 1493, 1494, 1495, 1490, 1491, + 1496, 1503, 1503, 1498, 1500, 1504, 1499, 1507, 1505, 1506, + 1506, 1509, 1501, 1505, 1508, 1510, 1512, 1511, 1515, 1519, + 1513, 1520, 1517, 17, 1520, 1504, 1511, 1513, 1508, 1514, + 1527, 1512, 1524, 1510, 1515, 1509, 1523, 1517, 1514, 1521, + 1521, 1514, 1517, 1527, 1519, 1522, 1522, 1528, 1523, 1525, - 1530, 1531, 1534, 1526, 1525, 1529, 1532, 1532, 1529, 1530, - 1536, 1537, 1528, 1538, 1533, 1534, 1541, 1535, 1542, 1543, - 1543, 1544, 1545, 1546, 1536, 1538, 1548, 1537, 1546, 1547, - 1547, 1545, 1550, 1551, 1549, 1548, 1542, 1544, 1548, 1549, - 1552, 1541, 1553, 1555, 1547, 1556, 1557, 1553, 1553, 1559, - 1550, 1558, 1560, 1562, 1551, 1559, 1558, 1555, 1552, 1562, - 1556, 1561, 1561, 1567, 1563, 1564, 1565, 1568, 1557, 1563, - 1560, 1564, 1565, 1569, 1570, 1571, 1572, 1574, 1571, 1569, - 1576, 1568, 1572, 1567, 1571, 1574, 1577, 1570, 1578, 1579, - 1580, 1581, 1582, 1583, 1584, 1584, 1578, 1587, 1579, 1576, + 1524, 1529, 1525, 1526, 1526, 1530, 1529, 1531, 1532, 1533, + 1530, 1534, 1536, 1535, 1537, 1539, 1528, 1542, 1533, 1540, + 1537, 1536, 1535, 1541, 1532, 1535, 1531, 1538, 1538, 1543, + 1534, 1542, 1540, 1547, 1544, 1539, 1548, 1549, 1549, 1550, + 1551, 1541, 1552, 1555, 1554, 1543, 1544, 1552, 1555, 1551, + 1553, 1553, 1556, 1554, 1548, 1550, 1554, 1557, 1547, 1558, + 1561, 1559, 1563, 1564, 1562, 1553, 1559, 1559, 1564, 1565, + 1556, 1566, 1567, 1567, 1561, 1565, 1568, 1558, 1557, 1562, + 1569, 1570, 1568, 1573, 1563, 1569, 1571, 1570, 1574, 1566, + 1575, 1576, 1571, 1578, 1582, 1583, 1575, 1577, 1586, 1578, - 1588, 1588, 1585, 1580, 1581, 1577, 1582, 1583, 1585, 1586, - 1587, 1589, 1590, 1591, 1592, 1586, 1584, 1593, 1594, 1595, - 1596, 1598, 1598, 1593, 1599, 1600, 1605, 1592, 1601, 1600, - 1590, 1589, 1591, 1601, 1602, 1595, 1603, 1604, 1596, 1602, - 1594, 1603, 1607, 1608, 1599, 1610, 1604, 1609, 1609, 1605, - 1611, 1612, 1613, 1613, 1607, 1614, 1615, 1618, 1608, 1616, - 1617, 1619, 1611, 1615, 1610, 1621, 1622, 1620, 1623, 1614, - 1612, 1616, 1617, 1620, 1623, 57, 1618, 1621, 1624, 1624, - 1625, 1619, 1628, 1625, 1622, 1626, 1626, 1628, 1629, 1630, - 1631, 1631, 1632, 1635, 1633, 1630, 1633, 1629, 1634, 1636, + 1577, 1580, 1574, 1573, 1576, 1587, 1577, 1584, 1585, 1580, + 1588, 1586, 1589, 1582, 1583, 1584, 1591, 1585, 1587, 1590, + 1590, 1592, 1591, 1593, 1588, 1595, 1589, 1592, 1594, 1594, + 1596, 1597, 1599, 1598, 1600, 1601, 1593, 1602, 1599, 1604, + 1604, 1590, 1605, 1606, 1607, 1595, 1598, 1606, 1596, 1607, + 1597, 1601, 1608, 1609, 1610, 1602, 1600, 1608, 1609, 1611, + 1613, 1614, 1605, 1610, 1615, 1615, 1616, 1617, 1618, 1619, + 1619, 1621, 1613, 1625, 1620, 1624, 1614, 1622, 1621, 1617, + 1623, 1628, 1611, 1627, 1626, 1616, 0, 1618, 1620, 1622, + 1626, 1629, 1623, 1625, 1624, 1627, 1642, 1629, 1635, 1628, - 1637, 1634, 1638, 1639, 1632, 1640, 1641, 1642, 1639, 1643, - 1640, 1644, 1646, 1635, 1645, 1641, 1644, 1647, 1637, 1642, - 1638, 1636, 1647, 1645, 1643, 1648, 1649, 1650, 1650, 1647, - 1648, 1651, 1646, 1652, 1654, 1655, 1645, 1651, 1656, 52, - 1657, 1649, 1657, 1658, 1659, 1659, 1660, 1660, 1661, 1661, - 1662, 1655, 1665, 1654, 1652, 1663, 1663, 1658, 1656, 1658, - 1664, 1664, 1666, 1667, 1667, 1668, 1669, 1673, 1670, 1668, - 1662, 1670, 1669, 1665, 1672, 1674, 1675, 1677, 1677, 1676, - 1672, 1674, 1676, 1666, 1679, 1673, 1678, 1678, 1680, 1679, - 1681, 1682, 1683, 1684, 1680, 1685, 1688, 1690, 1691, 1684, + 1630, 1630, 1631, 1632, 1632, 1631, 1634, 1635, 1636, 1637, + 1637, 1634, 1638, 1639, 1636, 1639, 1640, 1641, 1642, 1640, + 1643, 1644, 1645, 1646, 1638, 1647, 1650, 1645, 1646, 1648, + 1649, 1650, 1652, 1651, 1647, 1653, 1655, 1641, 1643, 1644, + 1653, 1648, 1651, 1654, 1658, 1649, 1661, 1653, 1654, 1656, + 1656, 1655, 1652, 1657, 1660, 1651, 1662, 1663, 1664, 1657, + 1664, 1669, 1665, 1666, 1666, 1658, 1661, 1667, 1667, 1668, + 1668, 1672, 1662, 1660, 1670, 1670, 1665, 1663, 1665, 1671, + 1671, 1669, 1673, 1674, 1674, 1675, 1680, 1676, 1677, 1675, + 1679, 1677, 1672, 1676, 1681, 1682, 1679, 1686, 1683, 1688, - 1687, 1675, 1681, 1681, 1681, 1687, 1687, 1695, 1690, 1681, - 1688, 1682, 1683, 1691, 1689, 1685, 1689, 1692, 1693, 1694, - 1696, 1696, 1697, 1692, 1698, 1698, 1699, 1693, 1695, 1700, - 1701, 1701, 1702, 1702, 1703, 1706, 1706, 1707, 1708, 1694, - 1710, 1715, 1711, 1714, 1712, 1718, 1699, 1708, 1697, 1710, - 1712, 1700, 1713, 1713, 1703, 1720, 1715, 1717, 1716, 1719, - 1719, 1721, 1707, 1711, 1714, 1716, 1717, 1723, 1724, 1725, - 1727, 1718, 1723, 1726, 1724, 1732, 1727, 1721, 1728, 1731, - 1726, 1720, 1729, 1729, 1728, 1730, 1733, 1734, 1731, 1725, - 1730, 1735, 1736, 1737, 1735, 1732, 1738, 1738, 1739, 1734, + 1681, 1683, 1686, 1673, 1680, 1684, 1684, 1685, 1685, 1687, + 1689, 1688, 1688, 1688, 1690, 1687, 1691, 1692, 1688, 1694, + 1682, 1695, 1691, 1700, 1694, 1694, 1696, 1697, 1696, 1698, + 1689, 1701, 1700, 1699, 1690, 1695, 1702, 1692, 1697, 1699, + 1703, 1703, 1704, 1706, 1698, 1705, 1705, 1707, 1708, 1708, + 1710, 1701, 1709, 1709, 1713, 1713, 1714, 1702, 1715, 1718, + 1719, 1721, 1717, 1706, 1720, 1720, 1719, 1715, 1704, 1707, + 1710, 1717, 1722, 1725, 1727, 1724, 1723, 1726, 1726, 1728, + 1718, 1714, 1721, 1723, 1724, 1730, 1731, 1722, 1732, 1733, + 1730, 1734, 1731, 1736, 1736, 1728, 1733, 1734, 1735, 1725, - 1740, 1741, 1742, 1743, 1739, 1733, 1740, 1743, 1745, 1746, - 1736, 1747, 1748, 1748, 1749, 1750, 1747, 1742, 1752, 1737, - 1753, 1741, 1762, 1743, 1753, 1755, 1754, 1760, 1745, 1758, - 1750, 1746, 1754, 1749, 1755, 1756, 1756, 1752, 1757, 1761, - 1758, 1762, 1757, 1759, 1759, 1758, 1763, 1764, 1760, 1765, - 1766, 1763, 1768, 1761, 1773, 1767, 1766, 1768, 1769, 1769, - 1770, 1770, 1771, 1773, 1774, 1775, 1771, 1764, 1782, 1765, - 1767, 1776, 1776, 1778, 1778, 1774, 1779, 1780, 1781, 1790, - 1774, 1779, 1779, 1780, 1781, 1775, 1783, 1784, 1787, 1785, - 1789, 1783, 1788, 1792, 1782, 1785, 1788, 1791, 1798, 1784, + 1727, 1737, 1738, 1739, 1735, 1740, 1737, 1741, 1732, 1742, + 1743, 1738, 1742, 1744, 1745, 1745, 1746, 1748, 1749, 1741, + 1747, 1750, 1746, 1739, 1740, 1750, 1747, 1752, 1743, 1753, + 1754, 1755, 1755, 1749, 1756, 1754, 1762, 1748, 1759, 1744, + 1757, 1750, 1760, 1761, 1764, 1762, 1760, 1752, 1764, 1761, + 1765, 1753, 1767, 1756, 1768, 1757, 1769, 1759, 1763, 1763, + 1770, 1765, 1766, 1766, 1771, 1770, 1765, 1772, 1768, 1775, + 1773, 1774, 1781, 1767, 1775, 1769, 1773, 1776, 1776, 1777, + 1777, 1778, 1780, 1781, 1771, 1778, 1774, 1772, 1781, 1782, + 1789, 1780, 1783, 1783, 1785, 1785, 1786, 1787, 1788, 1791, - 1787, 1793, 1789, 1791, 1790, 1794, 1795, 1793, 1797, 1799, - 1794, 1802, 1802, 1801, 1799, 1792, 1801, 1798, 1795, 1805, - 1797, 1803, 1803, 1804, 1804, 1806, 1807, 1810, 1808, 1809, - 47, 1806, 1807, 1808, 1815, 1809, 1810, 1812, 1814, 1805, - 1818, 1814, 1812, 1816, 1816, 1819, 1815, 1822, 1820, 1821, - 1821, 1827, 1818, 1820, 1823, 1824, 1822, 1819, 1825, 1823, - 1824, 1825, 1826, 1826, 1828, 1829, 1830, 1837, 1831, 1832, - 1833, 1827, 1831, 1828, 1832, 1834, 1833, 1835, 1836, 1839, - 1839, 1837, 1840, 1829, 1845, 1830, 1835, 1844, 1841, 1842, - 1842, 1839, 1843, 1834, 1847, 1853, 1836, 1841, 1846, 1844, + 1790, 1786, 1786, 1787, 1788, 1790, 1792, 1794, 1796, 1782, + 1795, 1791, 1792, 1797, 1795, 1798, 1789, 1799, 1800, 1794, + 1796, 1798, 1801, 1802, 1800, 1804, 1805, 1801, 1806, 1808, + 1809, 1809, 1808, 1806, 1812, 1802, 0, 1804, 1797, 1799, + 1810, 1810, 1811, 1811, 1813, 1805, 1814, 1817, 1815, 1816, + 1813, 1822, 1814, 1815, 1812, 1816, 1817, 1819, 1821, 1823, + 1823, 1821, 1819, 1822, 1825, 1826, 1827, 1828, 1828, 1829, + 1830, 1827, 1833, 1833, 1831, 1830, 1825, 1826, 1829, 1831, + 1832, 1834, 1835, 1832, 1836, 1837, 1838, 1839, 1840, 1841, + 1838, 1835, 1839, 1843, 1840, 1844, 1842, 1847, 1846, 1846, - 1840, 1843, 1854, 1846, 1856, 1845, 1857, 1847, 1850, 1850, - 1852, 1853, 1859, 1852, 1866, 1858, 1860, 1860, 1854, 1856, - 1857, 1858, 1861, 1863, 1861, 1862, 1862, 1865, 1867, 1859, - 1869, 1863, 1868, 1868, 1865, 1870, 1866, 1871, 1872, 1869, - 1873, 1874, 1875, 1878, 1881, 1876, 1879, 18, 1867, 1871, - 1872, 1876, 1873, 1880, 1880, 1882, 1870, 1875, 1879, 1885, - 1889, 1884, 1881, 1878, 1876, 1883, 1884, 1874, 1883, 1887, - 1888, 1890, 1888, 1891, 1887, 1882, 1890, 1893, 1889, 1885, - 1891, 1895, 1896, 1897, 1899, 1898, 1893, 1898, 1901, 1904, - 1901, 1896, 1902, 1903, 1903, 1897, 1905, 1907, 1906, 1895, + 1853, 1834, 1836, 1848, 1837, 1842, 0, 1841, 1852, 1844, + 1846, 1843, 1848, 1849, 1849, 1847, 1850, 1850, 1851, 1854, + 1852, 1853, 1855, 1861, 1854, 1858, 1858, 1851, 1860, 1862, + 1865, 1860, 1864, 1867, 1866, 1855, 1868, 1868, 1871, 1861, + 1866, 1869, 1874, 1869, 1865, 1862, 1871, 1864, 1870, 1870, + 1867, 1873, 1875, 1876, 1876, 1878, 1877, 1879, 1873, 1880, + 1882, 1881, 1883, 1886, 1874, 1877, 1887, 1889, 1884, 1879, + 1890, 1880, 1875, 1881, 1884, 1893, 1878, 1883, 1887, 1888, + 1888, 1891, 1897, 1886, 1891, 1889, 1882, 1884, 1892, 1895, + 1890, 1903, 1898, 1892, 1895, 1893, 1896, 1898, 1896, 1899, - 1906, 1905, 1907, 1899, 1908, 1909, 1902, 1910, 1911, 1908, - 1914, 1912, 1913, 1916, 1911, 1904, 1912, 1917, 1914, 1918, - 1918, 1919, 1919, 1909, 1920, 1913, 1921, 1910, 1922, 1925, - 1923, 1917, 1916, 1926, 1922, 1923, 1924, 1933, 1924, 1920, - 1928, 1926, 1927, 1927, 1929, 1929, 1921, 1925, 1931, 1926, - 1930, 1930, 1928, 1932, 1935, 1933, 1937, 1931, 1932, 1936, - 1939, 1936, 1938, 1935, 1940, 1947, 1935, 1938, 1938, 1939, - 1942, 1946, 1948, 1943, 1944, 1950, 1940, 1937, 1943, 1944, - 1951, 1948, 1942, 1952, 1946, 1947, 1949, 1949, 1953, 1954, - 1958, 1956, 1959, 1950, 1957, 1960, 1961, 1959, 1951, 1952, + 1897, 1901, 1904, 1905, 1907, 1906, 1899, 1906, 1910, 1903, + 1901, 1904, 1909, 1912, 1909, 1905, 1911, 1911, 1914, 1913, + 1914, 1915, 1910, 1907, 1913, 1916, 1915, 1917, 1918, 1919, + 1916, 1920, 1922, 1921, 1924, 1919, 1920, 1925, 1929, 1912, + 1922, 1926, 1926, 1927, 1927, 1917, 1921, 1928, 1918, 1930, + 1933, 1925, 1931, 1924, 1932, 1930, 1932, 1931, 1929, 1934, + 1935, 1935, 1928, 1939, 1936, 1937, 1937, 1934, 1933, 1938, + 1938, 1941, 1939, 1940, 1943, 1934, 1936, 1944, 1940, 1944, + 1945, 1947, 1946, 1943, 1948, 1950, 1943, 1946, 1946, 1941, + 1947, 1954, 1955, 1951, 1952, 1958, 1948, 1950, 1951, 1952, - 1960, 1964, 1953, 1956, 1954, 1961, 1957, 1964, 1966, 1967, - 1958, 1968, 1969, 1970, 1966, 1971, 1972, 1972, 1973, 1979, - 1964, 1974, 1974, 1975, 1971, 1976, 1968, 1973, 1977, 1976, - 1969, 1978, 1967, 1977, 1980, 2025, 1985, 1981, 1970, 1980, - 1980, 1979, 1975, 1981, 1978, 1982, 1983, 1984, 2025, 1983, - 1990, 1982, 1988, 1988, 1993, 1984, 1985, 1989, 1989, 1990, - 1991, 1991, 1992, 1992, 1994, 1995, 1993, 2003, 1996, 1997, - 1997, 1995, 1989, 1996, 1998, 1998, 1999, 2005, 2000, 2007, - 2009, 1999, 1994, 1989, 2000, 2002, 2004, 2003, 2008, 2002, - 2004, 2010, 2012, 2008, 2011, 2013, 2014, 2005, 2016, 2011, + 1956, 1945, 1957, 1957, 1954, 1959, 1960, 1961, 1964, 1956, + 1962, 1966, 1955, 1958, 1965, 1975, 1977, 1978, 1976, 1967, + 1964, 1961, 1960, 1959, 1967, 1962, 1965, 1968, 1969, 1972, + 1974, 1966, 1968, 1976, 1977, 1972, 1974, 1969, 1975, 1983, + 1979, 1981, 1978, 1980, 1980, 1982, 1982, 1984, 1972, 1979, + 1981, 1984, 1985, 1986, 1987, 1988, 1989, 1985, 1983, 1990, + 1988, 1988, 1989, 1992, 1991, 1990, 1986, 1991, 1993, 1996, + 1996, 1992, 1997, 1997, 1998, 0, 1987, 1999, 1999, 2000, + 2000, 2001, 2002, 1998, 2003, 2010, 2004, 1997, 1993, 2010, + 2003, 2004, 2011, 2001, 2005, 2005, 2006, 2006, 1997, 2007, - 2015, 2017, 2017, 2009, 2007, 2015, 2010, 2019, 2018, 2020, - 2012, 2013, 2018, 2021, 2020, 2022, 2014, 2023, 2024, 2026, - 2016, 2029, 2019, 2024, 2027, 2027, 2030, 2022, 2031, 2029, - 2032, 2033, 2034, 2035, 2036, 2037, 2023, 2026, 2041, 2021, - 2040, 2040, 2039, 2041, 2044, 2030, 2036, 2031, 2043, 2042, - 2045, 2034, 2042, 2032, 2035, 2033, 2037, 2039, 2044, 2046, - 2046, 2043, 2049, 2045, 2047, 2047, 2048, 2048, 2050, 2051, - 2051, 2052, 2053, 2053, 2054, 2057, 2058, 2049, 2059, 2054, - 2052, 2050, 2056, 2052, 2060, 2060, 2062, 2056, 2061, 2061, - 2059, 2063, 2063, 2064, 2066, 2057, 2058, 2065, 2065, 2067, + 2002, 2008, 2012, 2013, 2007, 2015, 2012, 2008, 2016, 2017, + 2018, 2019, 2011, 2016, 2023, 2020, 2019, 2022, 2021, 2023, + 2024, 2025, 2025, 2013, 2026, 2018, 2027, 2029, 2026, 2032, + 2015, 2028, 2017, 2020, 2021, 2031, 2028, 2022, 2030, 2033, + 2035, 2027, 2024, 2034, 2033, 2030, 2038, 2031, 2032, 2036, + 2036, 2039, 2040, 2029, 2038, 2041, 2034, 2042, 2035, 2044, + 2043, 2045, 2046, 2049, 2049, 2051, 0, 2048, 2051, 2050, + 2039, 2040, 2052, 2045, 2050, 2053, 0, 2054, 2041, 2043, + 2044, 2042, 2048, 2046, 2058, 2052, 2055, 2055, 2059, 2053, + 2054, 2056, 2056, 2057, 2057, 2060, 2060, 2061, 2066, 2058, - 2068, 2068, 2069, 2069, 2067, 2062, 2070, 2071, 2072, 2066, - 2073, 2064, 2075, 2076, 2076, 2077, 2071, 2075, 2078, 2078, - 2070, 2079, 2072, 2081, 2080, 2084, 2081, 2082, 2082, 2073, - 2080, 2083, 2083, 2085, 2077, 2086, 2087, 2087, 2089, 2079, - 2090, 2091, 2092, 2082, 2084, 2094, 2092, 2095, 2085, 2093, - 2093, 2096, 2095, 2097, 2086, 2100, 2091, 2102, 2089, 2099, - 2099, 2103, 2101, 2090, 2094, 2104, 2096, 2105, 2097, 2101, - 2111, 2102, 2106, 2106, 2109, 2100, 2107, 2109, 2108, 2103, - 2108, 2112, 2111, 2104, 2113, 2107, 2112, 2114, 2115, 2113, - 2116, 2117, 2109, 2105, 2109, 2118, 2117, 2120, 2121, 2122, + 2063, 2059, 2062, 2062, 2067, 2063, 2061, 2065, 2068, 2061, + 2069, 2069, 2065, 2070, 2070, 2071, 2072, 2072, 2066, 2073, + 2068, 2074, 2074, 2075, 2067, 2076, 2077, 2077, 2078, 2078, + 2076, 2079, 2080, 2081, 2071, 2082, 2086, 2073, 2075, 2084, + 2088, 2080, 2085, 2085, 2084, 2079, 2089, 2081, 2087, 2087, + 2090, 2093, 2089, 2090, 2082, 2086, 2091, 2091, 2088, 2092, + 2092, 2094, 2095, 2096, 2096, 2098, 2099, 2100, 2103, 2101, + 2093, 2105, 2091, 2101, 2102, 2102, 2094, 2106, 2104, 2108, + 2108, 2095, 2100, 2104, 2109, 2098, 2105, 2103, 2110, 2099, + 2112, 2111, 2106, 2113, 2114, 2110, 2115, 2115, 2116, 2117, - 2123, 2115, 2120, 2121, 2124, 2126, 2123, 2125, 2128, 2129, - 2126, 2116, 2114, 2125, 2122, 2127, 2130, 2131, 2132, 2130, - 2127, 2118, 2129, 2133, 2135, 2124, 2131, 2132, 2134, 2136, - 2137, 2140, 2133, 2128, 17, 2136, 2137, 2134, 2135, 2138, - 2142, 2143, 2143, 2138, 2144, 2145, 2145, 2146, 2147, 2142, - 2144, 2140, 2146, 2149, 2145, 2150, 2151, 2151, 2152, 2156, - 2162, 2157, 2155, 2153, 2160, 2158, 0, 2160, 2147, 2149, - 2147, 2150, 2153, 2152, 2155, 2156, 2157, 2158, 2161, 2163, - 2162, 2164, 2164, 2161, 2165, 2165, 2167, 2167, 2169, 2168, - 2170, 2163, 2168, 2169, 2171, 2172, 2170, 2173, 2173, 2174, + 2120, 2117, 2123, 2118, 2109, 2111, 2118, 2116, 2112, 2121, + 2122, 2113, 2120, 2124, 2121, 2122, 2125, 2126, 2127, 2129, + 2114, 2118, 2126, 2118, 2129, 2130, 2124, 2123, 2131, 2132, + 2130, 2133, 2134, 2137, 2135, 2132, 2136, 2125, 2134, 2135, + 2138, 2136, 2139, 2131, 2127, 2139, 2140, 2141, 2142, 2144, + 2143, 2149, 2133, 2138, 2145, 2140, 2141, 2142, 2137, 2143, + 2145, 2146, 2147, 2144, 2151, 2156, 2147, 2146, 2152, 2152, + 2153, 2149, 2155, 2151, 2154, 2154, 2153, 2155, 2158, 2159, + 2160, 2160, 2161, 2154, 2162, 2156, 2164, 2156, 2165, 2167, + 2166, 2171, 2213, 2162, 2158, 2159, 2169, 2161, 2164, 2169, - 2171, 2175, 2175, 2176, 2172, 2177, 2178, 2179, 2179, 2181, - 2180, 2188, 2182, 2174, 2184, 2176, 2180, 2182, 2184, 2177, - 2188, 2185, 2189, 2181, 2185, 2178, 2186, 2186, 2187, 2195, - 2190, 2191, 2191, 2187, 2190, 2192, 2194, 2196, 2197, 2198, - 2199, 2194, 2189, 2198, 2203, 2200, 2205, 2201, 2192, 2195, - 2200, 2206, 2197, 2201, 2207, 2202, 2209, 2196, 2205, 2207, - 2199, 2202, 2203, 2208, 2209, 2213, 2210, 2206, 2210, 2208, - 2214, 2214, 2215, 2216, 2219, 2215, 2217, 2217, 2219, 2213, - 2220, 2221, 2222, 2222, 2228, 2223, 2220, 2226, 2226, 2230, - 2231, 2234, 2235, 2221, 2223, 2236, 2234, 2238, 2238, 2216, + 2172, 2167, 2170, 2177, 2165, 2166, 2177, 2170, 2173, 2173, + 2213, 2171, 2172, 2174, 2174, 2176, 2176, 2178, 2179, 2180, + 2181, 2183, 2178, 2186, 2179, 2180, 2182, 2182, 2185, 2181, + 2184, 2184, 2187, 2188, 2188, 2183, 2189, 2186, 2190, 2191, + 2185, 2193, 2189, 2194, 2191, 2193, 2194, 2195, 2195, 2196, + 2198, 2187, 2190, 2199, 2196, 2197, 2197, 2200, 2202, 2198, + 2204, 2200, 2201, 2201, 2205, 2204, 2206, 2207, 2208, 2209, + 2210, 2202, 2208, 2199, 2211, 2210, 2212, 2216, 2215, 2218, + 2211, 2207, 2212, 2217, 2205, 2218, 2206, 2219, 2217, 2209, + 2215, 2223, 2220, 2216, 2220, 2219, 2224, 2224, 2225, 2226, - 2236, 2244, 2228, 2230, 2237, 2242, 2231, 2240, 2240, 2237, - 2245, 2242, 2243, 2243, 2246, 2248, 2249, 2244, 2235, 2246, - 2250, 2250, 2252, 2253, 2254, 2255, 2257, 2257, 2249, 2253, - 2258, 2252, 2245, 2258, 2248, 2259, 2264, 2260, 2262, 2262, - 2255, 2264, 2254, 2263, 2263, 2265, 2267, 2266, 2268, 2271, - 2268, 2267, 2269, 2270, 2259, 2260, 2266, 2272, 2273, 2274, - 0, 2271, 2272, 2265, 2274, 2279, 2269, 2270, 2275, 2275, - 2276, 2276, 2277, 2277, 2278, 2278, 2280, 2279, 2273, 2281, - 2282, 2282, 2283, 2283, 2281, 2284, 2285, 2286, 2287, 2288, - 2288, 2289, 2290, 2290, 2280, 2291, 2291, 2284, 2285, 2294, + 2229, 2225, 2227, 2227, 2229, 2223, 2230, 2231, 2232, 2232, + 2238, 2233, 2230, 2236, 2236, 2240, 2241, 2244, 2245, 2231, + 2233, 2246, 2244, 2248, 2248, 2226, 2246, 2254, 2238, 2240, + 2247, 2252, 2241, 2250, 2250, 2247, 2255, 2252, 2253, 2253, + 2256, 2258, 2259, 2254, 2245, 2256, 2260, 2260, 2262, 2263, + 2264, 2265, 2267, 2267, 2259, 2263, 2268, 2262, 2255, 2268, + 2258, 2269, 2274, 2270, 2272, 2272, 2265, 2274, 2264, 2273, + 2273, 2275, 2277, 2276, 2278, 2281, 2278, 2277, 2279, 2280, + 2269, 2270, 2276, 2282, 2283, 2284, 0, 2281, 2282, 2275, + 2284, 2289, 2279, 2280, 2285, 2285, 2286, 2286, 2287, 2287, - 2292, 2293, 2295, 2296, 2287, 2298, 2294, 2286, 2299, 2301, - 2289, 2292, 2297, 2293, 2295, 2300, 2300, 2297, 2301, 2302, - 2303, 2304, 2305, 2296, 2306, 2298, 2309, 2307, 2299, 2308, - 2308, 2313, 2310, 2311, 2304, 2309, 2314, 2315, 2306, 2307, - 2303, 2316, 2317, 0, 2316, 2302, 2305, 2310, 2311, 2313, - 2318, 2327, 2319, 2320, 2320, 2318, 2317, 2319, 2314, 2328, - 2315, 2321, 2321, 2322, 2322, 2324, 2324, 2326, 2326, 2327, - 2328, 2329, 2330, 2332, 2333, 2334, 2335, 2336, 2337, 2338, - 2339, 2338, 2345, 2340, 2341, 2362, 2336, 2330, 2342, 2342, - 2329, 2362, 2333, 2332, 2344, 2344, 2335, 2334, 2337, 2346, + 2288, 2288, 2290, 2289, 2283, 2291, 2292, 2292, 2293, 2293, + 2291, 2294, 2295, 2296, 2297, 2298, 2298, 2299, 2300, 2300, + 2290, 2301, 2301, 2294, 2295, 2304, 2302, 2303, 2305, 2306, + 2297, 2308, 2304, 2296, 2309, 2311, 2299, 2302, 2307, 2303, + 2305, 2310, 2310, 2307, 2311, 2312, 2313, 2314, 2315, 2306, + 2316, 2308, 2319, 2317, 2309, 2318, 2318, 2323, 2320, 2321, + 2314, 2319, 2324, 2325, 2316, 2317, 2313, 2326, 2327, 0, + 2326, 2312, 2315, 2320, 2321, 2323, 2328, 2337, 2329, 2330, + 2330, 2328, 2327, 2329, 2324, 2338, 2325, 2331, 2331, 2332, + 2332, 2334, 2334, 2336, 2336, 2337, 2338, 2339, 2340, 2342, - 2339, 2340, 2341, 2349, 2345, 2347, 2347, 2351, 2346, 2350, - 2350, 2352, 2349, 2353, 2355, 2354, 2356, 2357, 2358, 2365, - 2353, 2359, 2359, 2360, 2360, 2351, 2361, 2361, 2363, 2352, - 2354, 2366, 2355, 2357, 2356, 2364, 2366, 2358, 2365, 2367, - 2368, 2370, 2369, 2370, 2371, 2371, 2363, 2369, 2375, 2372, - 2364, 2372, 2373, 2373, 2377, 2378, 2379, 2380, 2382, 2367, - 2368, 2381, 2383, 2377, 2386, 2389, 2381, 2375, 2379, 2387, - 2388, 2388, 2387, 2390, 2378, 2391, 2391, 2380, 2382, 2392, - 2389, 2383, 2394, 2392, 2386, 2395, 2396, 2396, 2397, 2395, - 2399, 2390, 2400, 2401, 2402, 2402, 2404, 2394, 2405, 2406, + 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2348, 2356, 2350, + 2351, 2373, 2346, 2340, 2352, 2352, 2339, 2373, 2343, 2342, + 2354, 2354, 2345, 2344, 2347, 2357, 2349, 2350, 2351, 2360, + 2356, 2358, 2358, 2362, 2357, 2361, 2361, 2363, 2360, 2364, + 2366, 2365, 2367, 2368, 2369, 2376, 2364, 2370, 2370, 2371, + 2371, 2362, 2372, 2372, 2374, 2363, 2365, 2377, 2366, 2368, + 2367, 2375, 2377, 2369, 2376, 2378, 2379, 2381, 2380, 2381, + 2382, 2382, 2374, 2380, 2386, 2383, 2375, 2383, 2384, 2384, + 2388, 2389, 2390, 2391, 2393, 2378, 2379, 2392, 2394, 2388, + 2397, 2400, 2392, 2386, 2390, 2398, 2399, 2399, 2398, 2401, - 2408, 2397, 2412, 2406, 2420, 2399, 2410, 2405, 2404, 2407, - 2407, 2410, 2400, 2401, 2409, 2409, 2411, 2413, 2412, 2408, - 2414, 2414, 2419, 2419, 2422, 2411, 2420, 2421, 2421, 2413, - 2423, 2424, 2425, 2426, 2426, 2427, 2437, 2422, 2429, 2429, - 2424, 2425, 2432, 2423, 2433, 2434, 2435, 2432, 2436, 2433, - 2427, 2435, 2438, 2441, 2439, 2437, 2436, 2444, 2442, 2434, - 2443, 2438, 2439, 2442, 2448, 2443, 2445, 2445, 2441, 2446, - 2446, 2448, 2444, 2447, 2447, 2449, 2450, 2451, 2452, 0, - 2449, 2453, 2454, 2454, 2452, 2455, 2453, 2456, 2457, 2457, - 2458, 2458, 2456, 2461, 2450, 2451, 2462, 2462, 2463, 2464, + 2389, 2402, 2402, 2391, 2393, 2403, 2400, 2394, 2405, 2403, + 2397, 2406, 2407, 2407, 2408, 2406, 2410, 2401, 2411, 2412, + 2413, 2413, 2415, 2405, 2416, 2417, 2419, 2408, 2423, 2417, + 2431, 2410, 2421, 2416, 2415, 2418, 2418, 2421, 2411, 2412, + 2420, 2420, 2422, 2424, 2423, 2419, 2425, 2425, 2430, 2430, + 2433, 2422, 2431, 2432, 2432, 2424, 2434, 2435, 2436, 2437, + 2437, 2438, 2448, 2433, 2440, 2440, 2435, 2436, 2443, 2434, + 2444, 2445, 2446, 2443, 2447, 2444, 2438, 2446, 2449, 2452, + 2450, 2448, 2447, 2455, 2453, 2445, 2454, 2449, 2450, 2453, + 2459, 2454, 2456, 2456, 2452, 2457, 2457, 2459, 2455, 2458, - 2455, 2463, 2465, 2466, 2464, 2464, 2461, 2465, 2466, 2467, - 2468, 2469, 2470, 2471, 2472, 2469, 2468, 2470, 2473, 2474, - 2477, 2475, 2471, 2467, 2476, 2477, 2473, 2475, 2480, 2472, - 2476, 2478, 2481, 2480, 2483, 2481, 2485, 2486, 2487, 2488, - 2474, 2485, 2486, 2478, 2489, 2490, 2483, 2491, 2491, 2492, - 2496, 2497, 2488, 2489, 2490, 2498, 2487, 2500, 2492, 2499, - 2499, 2501, 2502, 2503, 2503, 2504, 2506, 2508, 2509, 2496, - 2501, 2497, 2509, 2511, 2498, 0, 2500, 2502, 2510, 2510, - 2512, 2506, 2513, 2514, 2504, 2516, 2512, 2508, 2513, 2514, - 2515, 2515, 2517, 2516, 2519, 2520, 2522, 2517, 2511, 2523, + 2458, 2460, 2461, 2462, 2463, 0, 2460, 2464, 2465, 2465, + 2463, 2466, 2464, 2467, 2468, 2468, 2469, 2469, 2467, 2472, + 2461, 2462, 2473, 2473, 2474, 2475, 2466, 2474, 2476, 2477, + 2475, 2475, 2472, 2476, 2477, 2478, 2479, 2480, 2481, 2482, + 2483, 2480, 2479, 2481, 2484, 2485, 2488, 2486, 2482, 2478, + 2487, 2488, 2484, 2486, 2491, 2483, 2487, 2489, 2492, 2491, + 2494, 2492, 2496, 2497, 2498, 2499, 2485, 2496, 2497, 2489, + 2500, 2501, 2494, 2502, 2502, 2503, 2507, 2508, 2499, 2500, + 2501, 2509, 2498, 2511, 2503, 2510, 2510, 2512, 2513, 2514, + 2514, 2515, 2517, 2519, 2520, 2507, 2512, 2508, 2520, 2522, - 2522, 2524, 2527, 2519, 2526, 2526, 2528, 2528, 2520, 2529, - 2529, 2531, 2531, 2523, 2532, 2537, 2524, 2533, 2532, 2539, - 2527, 2538, 2533, 2535, 2535, 2542, 2538, 2540, 2543, 2543, - 2550, 2539, 2540, 2540, 2548, 2537, 2545, 2545, 2546, 2546, - 2547, 2552, 2556, 2547, 2559, 2542, 2558, 2548, 2550, 2553, - 2553, 2554, 2554, 2555, 2555, 2557, 2557, 2556, 2560, 2558, - 2561, 2552, 2559, 2562, 2562, 2563, 2561, 2568, 2567, 2563, - 2571, 2569, 2560, 2567, 2567, 2570, 2571, 2572, 2573, 2583, - 2574, 2575, 2575, 2572, 2574, 2580, 2581, 2578, 2586, 2581, - 2568, 2569, 2578, 2580, 2584, 2570, 2587, 2584, 2585, 2585, + 2509, 0, 2511, 2513, 2521, 2521, 2523, 2517, 2524, 2525, + 2515, 2527, 2523, 2519, 2524, 2525, 2526, 2526, 2528, 2527, + 2530, 2531, 2533, 2528, 2522, 2534, 2533, 2535, 2538, 2530, + 2537, 2537, 2539, 2539, 2531, 2540, 2540, 2542, 2542, 2534, + 2543, 2548, 2535, 2544, 2543, 2550, 2538, 2549, 2544, 2546, + 2546, 2553, 2549, 2551, 2554, 2554, 2561, 2550, 2551, 2551, + 2559, 2548, 2556, 2556, 2557, 2557, 2558, 2563, 2567, 2558, + 2570, 2553, 2569, 2559, 2561, 2564, 2564, 2565, 2565, 2566, + 2566, 2568, 2568, 2567, 2571, 2569, 2572, 2563, 2570, 2573, + 2573, 2574, 2572, 2579, 2578, 2574, 2582, 2580, 2571, 2578, - 2588, 2587, 2589, 2573, 2583, 2586, 2586, 2590, 2591, 2591, - 2592, 2594, 2593, 2595, 2613, 2593, 2598, 2613, 2588, 2596, - 0, 2590, 2589, 2593, 2592, 2594, 2606, 2596, 2597, 2599, - 2599, 2604, 2595, 2597, 2597, 2598, 2600, 2600, 2601, 2601, - 2602, 2602, 2603, 2603, 2605, 2607, 2606, 2604, 2608, 2605, - 2609, 2614, 2610, 2612, 2612, 2616, 2616, 2608, 2617, 2618, - 2618, 2619, 2621, 2621, 2622, 2617, 2619, 2623, 2624, 2614, - 2609, 2607, 2610, 2622, 2626, 0, 2623, 2624, 2627, 2627, - 2628, 2629, 2630, 2631, 2628, 2632, 2633, 2634, 2631, 2631, - 2629, 2634, 2626, 2642, 2638, 2633, 2643, 2630, 2632, 2638, + 2578, 2581, 2582, 2583, 2584, 2594, 2585, 2586, 2586, 2583, + 2585, 2591, 2592, 2589, 2597, 2592, 2579, 2580, 2589, 2591, + 2595, 2581, 2598, 2595, 2596, 2596, 2599, 2598, 2600, 2584, + 2594, 2597, 2597, 2601, 2602, 2602, 2603, 2605, 2604, 2606, + 2624, 2604, 2609, 2624, 2599, 2607, 0, 2601, 2600, 2604, + 2603, 2605, 2617, 2607, 2608, 2610, 2610, 2615, 2606, 2608, + 2608, 2609, 2611, 2611, 2612, 2612, 2613, 2613, 2614, 2614, + 2616, 2618, 2617, 2615, 2619, 2616, 2620, 2625, 2621, 2623, + 2623, 2627, 2627, 2619, 2628, 2629, 2629, 2630, 2632, 2632, + 2633, 2628, 2630, 2634, 2635, 2625, 2620, 2618, 2621, 2633, - 2639, 2639, 2641, 2641, 2644, 2646, 2647, 2642, 2650, 2652, - 2651, 2653, 2655, 2657, 2646, 2659, 0, 2653, 2647, 2651, - 2659, 2643, 2644, 2660, 2655, 2661, 2661, 2662, 2660, 2652, - 2664, 2667, 2667, 2650, 2657, 2664, 2662, 2665, 2665, 2668, - 2668, 2665, 2669, 2669, 2670, 2671, 2673, 2672, 2675, 2679, - 2676, 2673, 2677, 2670, 2675, 2676, 2680, 2677, 2678, 2678, - 2681, 2683, 2685, 2692, 2682, 2671, 2672, 2679, 2680, 2682, - 2684, 2686, 2686, 2688, 2693, 2689, 2684, 2688, 2690, 2683, - 2689, 2681, 2692, 2690, 2691, 2691, 2694, 2685, 2698, 2693, - 2696, 2696, 2699, 2700, 2701, 2702, 2703, 2700, 2706, 2704, + 2637, 0, 2634, 2635, 2638, 2638, 2639, 2640, 2641, 2642, + 2639, 2643, 2644, 2645, 2642, 2642, 2640, 2645, 2637, 2653, + 2649, 2644, 2654, 2641, 2643, 2649, 2650, 2650, 2652, 2652, + 2655, 2657, 2658, 2653, 2661, 2663, 2662, 2664, 2666, 2668, + 2657, 2670, 0, 2664, 2658, 2662, 2670, 2654, 2655, 2671, + 2666, 2672, 2672, 2673, 2671, 2663, 2675, 2678, 2678, 2661, + 2668, 2675, 2673, 2676, 2676, 2679, 2679, 2676, 2680, 2680, + 2681, 2682, 2684, 2683, 2686, 2690, 2687, 2684, 2688, 2681, + 2686, 2687, 2691, 2688, 2689, 2689, 2692, 2694, 2696, 2703, + 2693, 2682, 2683, 2690, 2691, 2693, 2695, 2697, 2697, 2699, - 2708, 2698, 2713, 2701, 2705, 2699, 2694, 2704, 0, 2705, - 2724, 2702, 2707, 2707, 2717, 2703, 2710, 2710, 2718, 2708, - 2711, 2711, 2719, 2713, 2706, 2715, 2715, 2720, 2722, 2722, - 2717, 2723, 2720, 2724, 2718, 2725, 2727, 2727, 2719, 2728, - 2729, 2730, 2730, 2733, 2734, 2736, 2739, 2735, 2737, 2737, - 2734, 2723, 2735, 2728, 2725, 2738, 2738, 2740, 2740, 2729, - 2741, 2742, 2743, 2733, 2745, 2747, 2739, 2736, 2744, 2746, - 2742, 2741, 2748, 2748, 2744, 2749, 2754, 2740, 2749, 2750, - 2750, 2746, 2743, 2745, 2755, 2747, 2756, 2759, 2754, 2757, - 2757, 2758, 2756, 2759, 2758, 2760, 2762, 2763, 2763, 2765, + 2704, 2700, 2695, 2699, 2701, 2694, 2700, 2692, 2703, 2701, + 2702, 2702, 2705, 2696, 2709, 2704, 2707, 2707, 2710, 2711, + 2712, 2713, 2714, 2711, 2717, 2715, 2719, 2709, 2724, 2712, + 2716, 2710, 2705, 2715, 0, 2716, 2735, 2713, 2718, 2718, + 2728, 2714, 2721, 2721, 2729, 2719, 2722, 2722, 2730, 2724, + 2717, 2726, 2726, 2731, 2733, 2733, 2728, 2734, 2731, 2735, + 2729, 2736, 2738, 2738, 2730, 2739, 2740, 2741, 2741, 2744, + 2745, 2747, 2750, 2746, 2748, 2748, 2745, 2734, 2746, 2739, + 2736, 2749, 2749, 2751, 2751, 2740, 2752, 2753, 2754, 2744, + 2756, 2758, 2750, 2747, 2755, 2757, 2753, 2752, 2759, 2759, - 2764, 2762, 2766, 2767, 2755, 2764, 2768, 2768, 2766, 2771, - 2770, 2772, 2773, 2760, 2774, 2774, 2775, 2776, 2765, 2781, - 2767, 2767, 2770, 2778, 2778, 2773, 2776, 2771, 2779, 2779, - 2783, 2783, 2780, 2781, 2782, 2775, 2772, 2780, 2791, 2782, - 2784, 2784, 2785, 2785, 2786, 2788, 2788, 2793, 2794, 2786, - 2795, 2796, 2796, 2798, 2798, 2800, 2801, 2791, 2805, 2799, - 2802, 2802, 2803, 2803, 2805, 2801, 2806, 2815, 2807, 2793, - 2794, 2808, 2795, 2799, 0, 2800, 2808, 2811, 2811, 2813, - 2813, 2815, 2817, 2814, 2816, 2818, 2806, 2807, 2814, 2822, - 2816, 2819, 2819, 2818, 2817, 2820, 2823, 2824, 2825, 2826, + 2755, 2760, 2765, 2751, 2760, 2761, 2761, 2757, 2754, 2756, + 2766, 2758, 2767, 2770, 2765, 2768, 2768, 2769, 2767, 2770, + 2769, 2771, 2773, 2774, 2774, 2776, 2775, 2773, 2777, 2778, + 2766, 2775, 2779, 2779, 2777, 2782, 2781, 2783, 2784, 2771, + 2785, 2785, 2786, 2787, 2776, 2792, 2778, 2778, 2781, 2789, + 2789, 2784, 2787, 2782, 2790, 2790, 2794, 2794, 2791, 2792, + 2793, 2786, 2783, 2791, 2802, 2793, 2795, 2795, 2796, 2796, + 2797, 2799, 2799, 2804, 2805, 2797, 2806, 2807, 2807, 2809, + 2809, 2811, 2812, 2802, 2816, 2810, 2813, 2813, 2814, 2814, + 2816, 2812, 2817, 2826, 2818, 2804, 2805, 2819, 2806, 2810, - 2820, 2829, 2824, 2828, 2830, 2826, 2831, 2833, 2836, 2822, - 2825, 2828, 2834, 2835, 2837, 2840, 2823, 2839, 2842, 2837, - 2829, 2841, 2839, 2842, 2830, 2833, 2831, 2841, 2834, 2836, - 2835, 2835, 2844, 2845, 2876, 2840, 2848, 2848, 2849, 2849, - 2850, 2854, 2854, 2876, 2850, 2860, 2845, 2856, 2856, 2860, - 2857, 2857, 2844, 2857, 2858, 2858, 2863, 2858, 2859, 2859, - 2867, 2859, 2862, 2862, 2864, 2868, 2869, 2870, 2870, 2873, - 2874, 2869, 2875, 2877, 2863, 2879, 2875, 2874, 2864, 0, - 2867, 2880, 2881, 2881, 2884, 2868, 2882, 2882, 2877, 2886, - 2880, 2883, 2883, 2879, 2873, 2885, 2889, 2887, 2886, 2884, + 0, 2811, 2819, 2822, 2822, 2824, 2824, 2826, 2828, 2825, + 2827, 2829, 2817, 2818, 2825, 2833, 2827, 2830, 2830, 2829, + 2828, 2831, 2834, 2835, 2836, 2837, 2831, 2840, 2835, 2839, + 2841, 2837, 2842, 2844, 2847, 2833, 2836, 2839, 2845, 2846, + 2848, 2851, 2834, 2850, 2853, 2848, 2840, 2852, 2850, 2853, + 2841, 2844, 2842, 2852, 2845, 2847, 2846, 2846, 2855, 2856, + 2887, 2851, 2859, 2859, 2860, 2860, 2861, 2865, 2865, 2887, + 2861, 2871, 2856, 2867, 2867, 2871, 2868, 2868, 2855, 2868, + 2869, 2869, 2874, 2869, 2870, 2870, 2878, 2870, 2873, 2873, + 2875, 2879, 2880, 2881, 2881, 2884, 2885, 2880, 2886, 2888, - 2885, 2886, 2887, 2887, 2888, 2890, 2891, 2892, 2893, 2894, - 2888, 2896, 2892, 2893, 2895, 2895, 2897, 2896, 2898, 2898, - 2890, 2889, 2897, 2899, 2899, 2900, 2931, 2891, 2894, 2931, - 2900, 2903, 2903, 2906, 2906, 2907, 2907, 2908, 2908, 2909, - 2909, 2910, 2910, 2911, 2911, 2912, 2912, 2914, 2915, 2915, - 2916, 2917, 2918, 2922, 2920, 2924, 2914, 2921, 2921, 2916, - 2926, 2923, 2930, 2917, 2925, 2925, 2932, 2924, 2922, 2927, - 2927, 2934, 2918, 2920, 2923, 2926, 2933, 2933, 2936, 2937, - 2930, 2936, 2938, 2939, 2940, 2937, 2941, 2944, 2939, 2934, - 2942, 2945, 2932, 2944, 2948, 2957, 2938, 2959, 2957, 2964, + 2874, 2890, 2886, 2885, 2875, 0, 2878, 2891, 2892, 2892, + 2895, 2879, 2893, 2893, 2888, 2897, 2891, 2894, 2894, 2890, + 2884, 2896, 2900, 2898, 2897, 2895, 2896, 2897, 2898, 2898, + 2899, 2901, 2902, 2903, 2904, 2905, 2899, 2907, 2903, 2904, + 2906, 2906, 2908, 2907, 2909, 2909, 2901, 2900, 2908, 2910, + 2910, 2911, 2942, 2902, 2905, 2942, 2911, 2914, 2914, 2917, + 2917, 2918, 2918, 2919, 2919, 2920, 2920, 2921, 2921, 2922, + 2922, 2923, 2923, 2925, 2926, 2926, 2927, 2928, 2929, 2933, + 2931, 2935, 2925, 2932, 2932, 2927, 2937, 2934, 2941, 2928, + 2936, 2936, 2943, 2935, 2933, 2938, 2938, 2945, 2929, 2931, - 2945, 2960, 2960, 2940, 2941, 2965, 2942, 2961, 2961, 2948, - 2959, 2962, 2962, 2966, 2965, 2967, 2968, 2966, 2970, 2972, - 2971, 2973, 2964, 2973, 2972, 2974, 2975, 2975, 2977, 2976, - 2968, 2971, 2978, 2979, 2980, 2967, 2981, 2982, 2985, 2984, - 2974, 2970, 2976, 2983, 2991, 2993, 2982, 2977, 2986, 2979, - 2978, 2981, 2990, 2986, 2993, 2983, 2992, 2992, 2985, 2980, - 2984, 2994, 2994, 2998, 2991, 2999, 2990, 2995, 2995, 2996, - 2996, 2997, 2997, 3000, 3001, 3002, 3000, 3003, 3004, 3001, - 3002, 3005, 2998, 3006, 3007, 2999, 3008, 3005, 3009, 3010, - 3010, 3008, 3011, 3004, 3012, 3015, 3007, 3006, 3013, 3013, + 2934, 2937, 2944, 2944, 2947, 2948, 2941, 2947, 2949, 2950, + 2951, 2948, 2952, 2955, 2950, 2945, 2953, 2956, 2943, 2955, + 2959, 2968, 2949, 2970, 2968, 2975, 2956, 2971, 2971, 2951, + 2952, 2976, 2953, 2972, 2972, 2959, 2970, 2973, 2973, 2977, + 2976, 2978, 2979, 2977, 2981, 2983, 2982, 2984, 2975, 2984, + 2983, 2985, 2986, 2986, 2988, 2987, 2979, 2982, 2989, 2990, + 2991, 2978, 2992, 2993, 2996, 2995, 2985, 2981, 2987, 2994, + 3002, 3004, 2993, 2988, 2997, 2990, 2989, 2992, 3001, 2997, + 3004, 2994, 3003, 3003, 2996, 2991, 2995, 3005, 3005, 3009, + 3002, 3010, 3001, 3006, 3006, 3007, 3007, 3008, 3008, 3011, - 3017, 3022, 3003, 3020, 3020, 3021, 3021, 3011, 3009, 3022, - 3015, 3023, 3026, 3012, 3024, 3025, 3027, 3028, 3017, 3029, - 3024, 3025, 3030, 3030, 3029, 3033, 3026, 3031, 3031, 3027, - 3023, 3034, 3039, 3036, 3037, 3040, 3028, 3041, 3037, 3044, - 3040, 3042, 3043, 3045, 3046, 3050, 3033, 3036, 3045, 3046, - 3051, 3034, 3039, 3052, 3042, 3043, 3041, 3055, 3044, 3047, - 3047, 3053, 3053, 3055, 3054, 3050, 3056, 3056, 3051, 3054, - 3057, 3058, 3052, 3059, 3060, 3057, 3058, 3061, 3059, 3063, - 3063, 3064, 3068, 3061, 3065, 3065, 3064, 3067, 3069, 3070, - 3071, 3067, 3072, 3060, 3073, 3069, 3081, 3074, 3072, 3076, + 3012, 3013, 3011, 3014, 3015, 3012, 3013, 3016, 3009, 3017, + 3018, 3010, 3019, 3016, 3020, 3021, 3021, 3019, 3022, 3015, + 3023, 3026, 3018, 3017, 3024, 3024, 3028, 3033, 3014, 3031, + 3031, 3032, 3032, 3022, 3020, 3033, 3026, 3034, 3037, 3023, + 3035, 3036, 3038, 3039, 3028, 3040, 3035, 3036, 3041, 3041, + 3040, 3044, 3037, 3042, 3042, 3038, 3034, 3045, 3050, 3047, + 3048, 3051, 3039, 3052, 3048, 3055, 3051, 3053, 3054, 3056, + 3057, 3061, 3044, 3047, 3056, 3057, 3062, 3045, 3050, 3063, + 3053, 3054, 3052, 3066, 3055, 3058, 3058, 3064, 3064, 3066, + 3065, 3061, 3067, 3067, 3062, 3065, 3068, 3069, 3063, 3070, - 3076, 3068, 3078, 3078, 3082, 3079, 3080, 3083, 3070, 3071, - 3074, 3080, 3086, 3073, 3079, 3081, 3085, 3079, 3084, 3084, - 3083, 3085, 3088, 3082, 3090, 3086, 3089, 3089, 3091, 3091, - 3092, 3092, 3093, 3094, 3095, 3096, 3096, 3093, 0, 3097, - 3094, 3099, 3099, 3090, 3097, 3098, 3102, 3098, 3088, 3100, - 3101, 3104, 3107, 3095, 3103, 3111, 3100, 3101, 3109, 3103, - 3106, 3106, 3110, 3109, 3112, 3102, 3116, 3110, 3113, 3113, - 3104, 3107, 3115, 3115, 3111, 3117, 3118, 3118, 3119, 3119, - 3120, 3122, 3122, 3112, 3124, 3116, 3130, 3120, 3123, 3123, - 3126, 3124, 3129, 3131, 3117, 3126, 0, 3129, 3132, 3132, + 3071, 3068, 3069, 3072, 3070, 3074, 3074, 3075, 3079, 3072, + 3076, 3076, 3075, 3078, 3080, 3081, 3082, 3078, 3083, 3071, + 3084, 3080, 3092, 3085, 3083, 3087, 3087, 3079, 3089, 3089, + 3093, 3090, 3091, 3094, 3081, 3082, 3085, 3091, 3097, 3084, + 3090, 3092, 3096, 3090, 3095, 3095, 3094, 3096, 3099, 3093, + 3101, 3097, 3100, 3100, 3102, 3102, 3103, 3103, 3104, 3105, + 3106, 3107, 3107, 3104, 0, 3108, 3105, 3110, 3110, 3101, + 3108, 3109, 3113, 3109, 3099, 3111, 3112, 3115, 3118, 3106, + 3114, 3122, 3111, 3112, 3120, 3114, 3117, 3117, 3121, 3120, + 3123, 3113, 3127, 3121, 3124, 3124, 3115, 3118, 3126, 3126, - 3133, 3133, 0, 0, 0, 3130, 0, 0, 0, 0, - 0, 0, 3131, 3137, 3137, 3137, 3137, 3137, 3137, 3137, - 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3139, 3139, 3139, - 3139, 3139, 3139, 3139, 3140, 3140, 3140, 3140, 3140, 3140, - 3140, 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3142, 3142, - 3142, 3142, 3142, 3142, 3142, 3143, 3143, 3143, 3143, 3143, - 3143, 3143, 3145, 3145, 0, 3145, 3145, 3145, 3145, 3146, - 3146, 0, 0, 0, 3146, 3146, 3147, 3147, 0, 0, - 3147, 0, 3147, 3148, 0, 0, 0, 0, 0, 3148, - 3149, 3149, 0, 0, 0, 3149, 3149, 3150, 0, 0, + 3122, 3128, 3129, 3129, 3130, 3130, 3131, 3133, 3133, 3123, + 3135, 3127, 3141, 3131, 3134, 3134, 3137, 3135, 3140, 3142, + 3128, 3137, 0, 3140, 3143, 3143, 3144, 3144, 0, 0, + 0, 3141, 0, 0, 0, 0, 0, 0, 3142, 3148, + 3148, 3148, 3148, 3148, 3148, 3148, 3149, 3149, 3149, 3149, + 3149, 3149, 3149, 3150, 3150, 3150, 3150, 3150, 3150, 3150, + 3151, 3151, 3151, 3151, 3151, 3151, 3151, 3152, 3152, 3152, + 3152, 3152, 3152, 3152, 3153, 3153, 3153, 3153, 3153, 3153, + 3153, 3154, 3154, 3154, 3154, 3154, 3154, 3154, 3156, 3156, + 0, 3156, 3156, 3156, 3156, 3157, 3157, 0, 0, 0, + + 3157, 3157, 3158, 3158, 0, 0, 3158, 0, 3158, 3159, + 0, 0, 0, 0, 0, 3159, 3160, 3160, 0, 0, + 0, 3160, 3160, 3161, 0, 0, 0, 0, 0, 3161, + 3162, 3162, 0, 3162, 3162, 3162, 3162, 3163, 0, 0, + 0, 0, 0, 3163, 3164, 3164, 0, 0, 0, 3164, + 3164, 3165, 3165, 0, 3165, 3165, 3165, 3165, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, + 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147 - 0, 0, 0, 3150, 3151, 3151, 0, 3151, 3151, 3151, - 3151, 3152, 0, 0, 0, 0, 0, 3152, 3153, 3153, - 0, 0, 0, 3153, 3153, 3154, 3154, 0, 3154, 3154, - 3154, 3154, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, - 3136, 3136, 3136 } ; static yy_state_type yy_last_accepting_state; @@ -3023,7 +3032,7 @@ static void config_end_include(void) } #endif -#line 3024 "" +#line 3034 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3032,9 +3041,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3033 "" +#line 3043 "" -#line 3035 "" +#line 3045 "" #define INITIAL 0 #define quotedstring 1 @@ -3258,7 +3267,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3259 "" +#line 3269 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3291,13 +3300,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 >= 3137 ) + if ( yy_current_state >= 3148 ) 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] != 6133 ); + while ( yy_base[yy_current_state] != 6159 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4806,40 +4815,45 @@ YY_RULE_SETUP { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 295: -/* rule 295 can match eol */ YY_RULE_SETUP #line 520 "./util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_TAG) } + YY_BREAK +case 296: +/* rule 296 can match eol */ +YY_RULE_SETUP +#line 521 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 296: +case 297: YY_RULE_SETUP -#line 523 "./util/configlexer.lex" +#line 524 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 524 "./util/configlexer.lex" +#line 525 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 297: -YY_RULE_SETUP -#line 529 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 298: -/* rule 298 can match eol */ YY_RULE_SETUP #line 530 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 299: +/* rule 299 can match eol */ +YY_RULE_SETUP +#line 531 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 299: +case 300: YY_RULE_SETUP -#line 532 "./util/configlexer.lex" +#line 533 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4852,34 +4866,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 300: +case 301: YY_RULE_SETUP -#line 544 "./util/configlexer.lex" +#line 545 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 545 "./util/configlexer.lex" +#line 546 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 301: -YY_RULE_SETUP -#line 550 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 302: -/* rule 302 can match eol */ YY_RULE_SETUP #line 551 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 303: +/* rule 303 can match eol */ +YY_RULE_SETUP +#line 552 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 303: +case 304: YY_RULE_SETUP -#line 553 "./util/configlexer.lex" +#line 554 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4892,38 +4906,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 304: +case 305: YY_RULE_SETUP -#line 565 "./util/configlexer.lex" +#line 566 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 567 "./util/configlexer.lex" +#line 568 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 305: -YY_RULE_SETUP -#line 571 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 306: -/* rule 306 can match eol */ YY_RULE_SETUP #line 572 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 307: +/* rule 307 can match eol */ YY_RULE_SETUP #line 573 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 308: YY_RULE_SETUP #line 574 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 309: +YY_RULE_SETUP +#line 575 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -4931,27 +4945,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 579 "./util/configlexer.lex" +#line 580 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 309: -YY_RULE_SETUP -#line 583 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 310: -/* rule 310 can match eol */ YY_RULE_SETUP #line 584 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 311: +/* rule 311 can match eol */ +YY_RULE_SETUP +#line 585 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 311: +case 312: YY_RULE_SETUP -#line 586 "./util/configlexer.lex" +#line 587 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4961,7 +4975,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 592 "./util/configlexer.lex" +#line 593 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4976,39 +4990,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 312: +case 313: YY_RULE_SETUP -#line 606 "./util/configlexer.lex" +#line 607 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 609 "./util/configlexer.lex" +#line 610 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 313: -YY_RULE_SETUP -#line 613 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK case 314: -/* rule 314 can match eol */ YY_RULE_SETUP #line 614 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 315: +/* rule 315 can match eol */ YY_RULE_SETUP #line 615 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK case 316: YY_RULE_SETUP #line 616 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 317: +YY_RULE_SETUP +#line 617 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5017,29 +5031,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 622 "./util/configlexer.lex" +#line 623 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 317: -YY_RULE_SETUP -#line 626 "./util/configlexer.lex" -{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } - YY_BREAK case 318: -/* rule 318 can match eol */ YY_RULE_SETUP #line 627 "./util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 319: +/* rule 319 can match eol */ +YY_RULE_SETUP +#line 628 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 319: +case 320: YY_RULE_SETUP -#line 631 "./util/configlexer.lex" +#line 632 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5048,33 +5062,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 320: +case 321: YY_RULE_SETUP -#line 639 "./util/configlexer.lex" +#line 640 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 321: +case 322: YY_RULE_SETUP -#line 643 "./util/configlexer.lex" +#line 644 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 322: +case 323: YY_RULE_SETUP -#line 647 "./util/configlexer.lex" +#line 648 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 323: +case 324: YY_RULE_SETUP -#line 651 "./util/configlexer.lex" +#line 652 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5075 "" +#line 5090 "" case YY_END_OF_BUFFER: { @@ -5369,7 +5383,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 >= 3137 ) + if ( yy_current_state >= 3148 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5397,11 +5411,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 >= 3137 ) + if ( yy_current_state >= 3148 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3136); + yy_is_jam = (yy_current_state == 3147); return yy_is_jam ? 0 : yy_current_state; } @@ -6040,6 +6054,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 651 "./util/configlexer.lex" +#line 652 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 83cea4b99..79a0edcad 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -517,6 +517,7 @@ name-v4{COLON} { YDVAR(1, VAR_IPSET_NAME_V4) } 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) } {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 2c9af619a..1d5be9fa0 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -48,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.5" +#define YYBISON_VERSION "3.5.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -431,7 +431,8 @@ extern int yydebug; VAR_RPZ_LOG = 543, VAR_RPZ_LOG_NAME = 544, VAR_DYNLIB = 545, - VAR_DYNLIB_FILE = 546 + VAR_DYNLIB_FILE = 546, + VAR_EDNS_CLIENT_TAG = 547 }; #endif /* Tokens. */ @@ -724,6 +725,7 @@ extern int yydebug; #define VAR_RPZ_LOG_NAME 544 #define VAR_DYNLIB 545 #define VAR_DYNLIB_FILE 546 +#define VAR_EDNS_CLIENT_TAG 547 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -733,7 +735,7 @@ union YYSTYPE char* str; -#line 737 "util/configparser.c" +#line 739 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -1052,19 +1054,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 620 +#define YYLAST 622 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 292 +#define YYNTOKENS 293 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 317 +#define YYNNTS 318 /* YYNRULES -- Number of rules. */ -#define YYNRULES 610 +#define YYNRULES 612 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 905 +#define YYNSTATES 909 #define YYUNDEFTOK 2 -#define YYMAXUTOK 546 +#define YYMAXUTOK 547 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1130,7 +1132,7 @@ static const yytype_int16 yytranslate[] = 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 + 285, 286, 287, 288, 289, 290, 291, 292 }; #if YYDEBUG @@ -1158,47 +1160,47 @@ static const yytype_int16 yyrline[] = 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 276, 277, 278, 278, 279, 279, 280, 280, 281, 281, 282, 282, 282, 283, 283, 283, 284, 284, 284, 285, - 285, 286, 286, 287, 287, 288, 290, 302, 303, 304, - 304, 304, 304, 304, 305, 305, 307, 319, 320, 321, - 321, 321, 321, 322, 322, 324, 338, 339, 340, 340, - 340, 340, 341, 341, 341, 343, 360, 361, 362, 362, - 362, 362, 363, 363, 363, 364, 367, 386, 403, 411, - 421, 429, 446, 447, 448, 448, 448, 448, 448, 449, - 449, 449, 450, 450, 452, 461, 470, 481, 490, 499, - 508, 519, 528, 540, 554, 569, 580, 597, 614, 631, - 648, 663, 678, 691, 706, 715, 724, 733, 742, 751, - 760, 769, 778, 787, 796, 805, 814, 823, 832, 845, - 854, 867, 876, 885, 894, 901, 908, 917, 924, 933, - 941, 948, 955, 963, 972, 981, 990, 1004, 1013, 1022, - 1031, 1040, 1049, 1058, 1065, 1072, 1098, 1106, 1113, 1120, - 1127, 1134, 1142, 1150, 1158, 1165, 1176, 1187, 1194, 1203, - 1212, 1221, 1228, 1235, 1243, 1251, 1261, 1271, 1281, 1295, - 1303, 1316, 1327, 1335, 1348, 1357, 1366, 1375, 1385, 1395, - 1403, 1416, 1425, 1433, 1442, 1450, 1463, 1472, 1479, 1489, - 1499, 1509, 1519, 1529, 1539, 1549, 1559, 1566, 1573, 1580, - 1589, 1598, 1607, 1616, 1623, 1633, 1653, 1660, 1678, 1691, - 1704, 1713, 1722, 1731, 1740, 1750, 1760, 1771, 1780, 1789, - 1798, 1807, 1816, 1825, 1838, 1851, 1860, 1867, 1876, 1885, - 1894, 1903, 1911, 1924, 1932, 1973, 1980, 1995, 2005, 2015, - 2022, 2029, 2036, 2045, 2053, 2067, 2088, 2109, 2121, 2133, - 2145, 2154, 2175, 2185, 2194, 2202, 2210, 2223, 2236, 2251, - 2266, 2275, 2284, 2290, 2299, 2308, 2318, 2328, 2341, 2354, - 2366, 2380, 2392, 2406, 2416, 2423, 2430, 2439, 2448, 2458, - 2468, 2478, 2485, 2492, 2501, 2510, 2520, 2530, 2537, 2544, - 2551, 2559, 2569, 2579, 2589, 2599, 2638, 2648, 2656, 2664, - 2679, 2688, 2693, 2694, 2695, 2695, 2695, 2696, 2696, 2696, - 2697, 2697, 2699, 2709, 2718, 2725, 2732, 2739, 2746, 2753, - 2760, 2765, 2766, 2767, 2767, 2767, 2768, 2768, 2768, 2769, - 2770, 2770, 2771, 2771, 2772, 2772, 2773, 2774, 2775, 2776, - 2777, 2778, 2780, 2789, 2799, 2806, 2813, 2822, 2829, 2836, - 2843, 2850, 2859, 2868, 2875, 2882, 2892, 2902, 2912, 2922, - 2932, 2942, 2947, 2948, 2949, 2951, 2957, 2962, 2963, 2964, - 2966, 2972, 2982, 2989, 2998, 3006, 3011, 3012, 3014, 3014, - 3014, 3015, 3015, 3016, 3017, 3018, 3019, 3020, 3022, 3032, - 3041, 3048, 3057, 3064, 3073, 3081, 3094, 3102, 3115, 3120, - 3121, 3122, 3122, 3123, 3123, 3123, 3124, 3126, 3138, 3150, - 3162, 3177, 3190, 3203, 3214, 3219, 3220, 3221, 3221, 3223, - 3238 + 285, 286, 286, 287, 287, 288, 288, 290, 302, 303, + 304, 304, 304, 304, 304, 305, 305, 307, 319, 320, + 321, 321, 321, 321, 322, 322, 324, 338, 339, 340, + 340, 340, 340, 341, 341, 341, 343, 360, 361, 362, + 362, 362, 362, 363, 363, 363, 364, 367, 386, 403, + 411, 421, 429, 446, 447, 448, 448, 448, 448, 448, + 449, 449, 449, 450, 450, 452, 461, 470, 481, 490, + 499, 508, 519, 528, 540, 554, 569, 580, 597, 614, + 631, 648, 663, 678, 691, 706, 715, 724, 733, 742, + 751, 760, 769, 778, 787, 796, 805, 814, 823, 832, + 845, 854, 867, 876, 885, 894, 901, 908, 917, 924, + 933, 941, 948, 955, 963, 972, 981, 990, 1004, 1013, + 1022, 1031, 1040, 1049, 1058, 1065, 1072, 1098, 1106, 1113, + 1120, 1127, 1134, 1142, 1150, 1158, 1165, 1176, 1187, 1194, + 1203, 1212, 1221, 1228, 1235, 1243, 1251, 1261, 1271, 1281, + 1295, 1303, 1316, 1327, 1335, 1348, 1357, 1366, 1375, 1385, + 1395, 1403, 1416, 1425, 1433, 1442, 1450, 1463, 1472, 1479, + 1489, 1499, 1509, 1519, 1529, 1539, 1549, 1559, 1566, 1573, + 1580, 1589, 1598, 1607, 1616, 1623, 1633, 1653, 1660, 1678, + 1691, 1704, 1713, 1722, 1731, 1740, 1750, 1760, 1771, 1780, + 1789, 1798, 1807, 1816, 1825, 1838, 1851, 1860, 1867, 1876, + 1885, 1894, 1903, 1911, 1924, 1932, 1973, 1980, 1995, 2005, + 2015, 2022, 2029, 2036, 2045, 2053, 2067, 2088, 2109, 2121, + 2133, 2145, 2154, 2175, 2185, 2194, 2202, 2210, 2223, 2236, + 2251, 2266, 2275, 2284, 2290, 2299, 2308, 2318, 2328, 2341, + 2354, 2366, 2380, 2392, 2406, 2421, 2431, 2438, 2445, 2454, + 2463, 2473, 2483, 2493, 2500, 2507, 2516, 2525, 2535, 2545, + 2552, 2559, 2566, 2574, 2584, 2594, 2604, 2614, 2653, 2663, + 2671, 2679, 2694, 2703, 2708, 2709, 2710, 2710, 2710, 2711, + 2711, 2711, 2712, 2712, 2714, 2724, 2733, 2740, 2747, 2754, + 2761, 2768, 2775, 2780, 2781, 2782, 2782, 2782, 2783, 2783, + 2783, 2784, 2785, 2785, 2786, 2786, 2787, 2787, 2788, 2789, + 2790, 2791, 2792, 2793, 2795, 2804, 2814, 2821, 2828, 2837, + 2844, 2851, 2858, 2865, 2874, 2883, 2890, 2897, 2907, 2917, + 2927, 2937, 2947, 2957, 2962, 2963, 2964, 2966, 2972, 2977, + 2978, 2979, 2981, 2987, 2997, 3004, 3013, 3021, 3026, 3027, + 3029, 3029, 3029, 3030, 3030, 3031, 3032, 3033, 3034, 3035, + 3037, 3047, 3056, 3063, 3072, 3079, 3088, 3096, 3109, 3117, + 3130, 3135, 3136, 3137, 3137, 3138, 3138, 3138, 3139, 3141, + 3153, 3165, 3177, 3192, 3205, 3218, 3229, 3234, 3235, 3236, + 3236, 3238, 3253 }; #endif @@ -1314,17 +1316,17 @@ 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", "$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", "$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", @@ -1403,11 +1405,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", "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", "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", @@ -1477,7 +1480,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 + 545, 546, 547 }; # endif @@ -1518,7 +1521,7 @@ static const yytype_int16 yypact[] = 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, - 273, 275, 276, 277, 279, 313, 314, 315, 316, -285, + 273, 275, 276, 277, 279, 313, 314, 315, 316, 320, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, @@ -1538,54 +1541,54 @@ static const yytype_int16 yypact[] = -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 320, 321, 322, 364, 365, 366, - 367, -285, -285, -285, -285, -285, -285, -285, -285, 368, - 369, 370, 371, 372, 376, -285, -285, -285, -285, -285, - -285, -285, 380, 381, 406, 407, 408, 410, 421, -285, - -285, -285, -285, -285, -285, -285, -285, 422, 423, 424, - 425, 426, 427, 428, 429, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 430, 431, 432, 433, 434, -285, + -285, -285, -285, -285, -285, -285, 321, 322, 364, 365, + 366, 367, 368, -285, -285, -285, -285, -285, -285, -285, + -285, 369, 370, 371, 372, 376, 380, -285, -285, -285, + -285, -285, -285, -285, 381, 406, 407, 408, 410, 421, + 422, -285, -285, -285, -285, -285, -285, -285, -285, 423, + 424, 425, 426, 427, 428, 429, 430, -285, -285, -285, + -285, -285, -285, -285, -285, -285, 431, 432, 433, 434, + 435, -285, -285, -285, -285, -285, -285, -285, -285, -285, + -285, -285, 436, 437, 438, 439, 440, 480, 482, 498, + -285, -285, -285, -285, -285, -285, -285, -285, -285, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 515, + 516, 517, 518, 519, 520, 521, 523, 524, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - 435, 436, 437, 438, 439, 440, 480, 482, -285, -285, - -285, -285, -285, -285, -285, -285, -285, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 515, 516, - 517, 518, 519, 520, 521, 523, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, 524, -285, -285, 525, - -285, -285, 526, 527, 528, 529, 532, 535, 538, 539, - 548, 549, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, 550, 552, 553, 554, 555, 556, -285, - -285, -285, -285, -285, -285, -285, 557, 558, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, 525, -285, + -285, 526, -285, -285, 527, 528, 529, 532, 535, 538, + 539, 548, 549, 550, -285, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, 552, 553, 554, 555, 556, + 557, -285, -285, -285, -285, -285, -285, -285, 558, 559, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, 559, 560, -285, -285, -285, -285, -285, -285, -285, + -285, -285, -285, 561, 562, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, 561, 562, - 563, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, 564, 565, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, 566, 567, 568, 569, 570, 571, -285, -285, + 563, 564, 565, -285, -285, -285, -285, -285, -285, -285, + -285, -285, -285, 566, 567, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, + -285, -285, -285, -285, 568, 569, 570, 571, 572, 573, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, 572, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, 574, -285, -285, + -285, -285, -285, -285, -285, -285, -285, 575, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, 573, - -285, -285, 574, 575, -285, -285, -285, -285, -285, -285, + -285, -285, 576, -285, -285, 577, 578, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 576, 577, 578, -285, -285, -285, - -285, -285, -285, -285, -285 + -285, -285, -285, -285, -285, -285, -285, 579, 580, 581, + -285, -285, -285, -285, -285, -285, -285, -285, -285 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1593,10 +1596,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 216, 226, 491, 551, 510, - 235, 565, 588, 245, 604, 261, 556, 3, 17, 21, - 218, 228, 237, 247, 263, 493, 512, 553, 558, 567, - 590, 606, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 217, 227, 493, 553, 512, + 236, 567, 590, 246, 606, 262, 558, 3, 17, 21, + 219, 229, 238, 248, 264, 495, 514, 555, 560, 569, + 592, 608, 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, @@ -1616,74 +1619,74 @@ 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, 0, 0, 0, 20, - 22, 23, 86, 89, 98, 186, 187, 24, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 37, 77, - 25, 90, 91, 48, 70, 85, 26, 27, 30, 31, - 28, 29, 32, 33, 34, 35, 36, 121, 198, 122, - 124, 125, 126, 200, 205, 201, 212, 213, 214, 215, - 182, 87, 76, 102, 119, 120, 210, 207, 123, 38, - 39, 40, 41, 42, 78, 92, 93, 108, 64, 74, - 65, 190, 191, 103, 58, 59, 189, 60, 61, 112, - 116, 130, 139, 165, 142, 211, 113, 71, 43, 44, - 45, 100, 131, 132, 133, 46, 47, 49, 50, 52, - 53, 51, 137, 54, 55, 56, 62, 81, 117, 95, - 138, 88, 161, 96, 97, 114, 115, 208, 101, 57, - 79, 82, 63, 66, 104, 105, 80, 162, 106, 67, - 68, 69, 199, 118, 175, 176, 177, 178, 179, 180, - 188, 107, 75, 109, 110, 111, 163, 72, 73, 94, - 83, 84, 99, 127, 128, 209, 129, 134, 135, 136, - 166, 167, 169, 171, 172, 170, 173, 183, 140, 141, - 145, 146, 143, 144, 147, 148, 150, 149, 202, 204, - 203, 164, 174, 192, 194, 193, 195, 196, 197, 168, - 181, 184, 185, 206, 0, 0, 0, 0, 0, 0, - 0, 217, 219, 220, 221, 223, 224, 225, 222, 0, - 0, 0, 0, 0, 0, 227, 229, 230, 231, 232, - 233, 234, 0, 0, 0, 0, 0, 0, 0, 236, - 238, 239, 242, 243, 240, 244, 241, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 248, 249, 250, 251, - 255, 252, 253, 254, 0, 0, 0, 0, 0, 266, - 270, 271, 272, 273, 262, 264, 265, 267, 268, 269, - 0, 0, 0, 0, 0, 0, 0, 0, 492, 494, - 496, 495, 501, 497, 498, 499, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 511, 513, 515, 514, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 0, 552, 554, 0, - 557, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 568, 569, 570, 572, 573, 571, 574, - 575, 576, 577, 0, 0, 0, 0, 0, 0, 589, - 591, 592, 593, 594, 595, 596, 0, 0, 605, 607, - 608, 275, 274, 281, 294, 292, 304, 300, 301, 305, - 302, 303, 306, 307, 308, 309, 310, 333, 334, 335, - 336, 337, 362, 363, 364, 369, 370, 297, 371, 372, - 375, 373, 374, 377, 378, 379, 393, 348, 349, 351, - 352, 380, 396, 342, 344, 397, 403, 404, 405, 298, - 361, 421, 422, 343, 416, 326, 293, 338, 394, 400, - 381, 0, 0, 425, 299, 276, 325, 385, 277, 295, - 296, 339, 340, 423, 383, 387, 388, 278, 426, 365, - 392, 327, 347, 398, 399, 402, 415, 341, 419, 417, - 418, 353, 360, 389, 390, 354, 355, 382, 407, 328, - 329, 332, 311, 313, 314, 315, 316, 317, 427, 428, - 430, 366, 367, 368, 376, 431, 432, 433, 0, 0, - 0, 384, 356, 358, 561, 442, 446, 444, 443, 447, - 445, 0, 0, 450, 451, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 386, 401, 420, 455, 456, - 357, 434, 0, 0, 0, 0, 0, 0, 408, 409, - 410, 411, 412, 413, 414, 562, 350, 345, 406, 324, - 279, 280, 346, 457, 459, 458, 460, 461, 462, 312, - 319, 452, 454, 453, 318, 0, 331, 391, 429, 330, - 359, 320, 321, 323, 322, 463, 464, 465, 469, 468, - 466, 467, 470, 471, 472, 473, 475, 474, 484, 0, - 488, 489, 0, 0, 490, 476, 482, 477, 478, 479, - 481, 483, 480, 256, 257, 258, 259, 260, 502, 504, - 503, 506, 507, 508, 509, 505, 532, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 533, 543, 544, 545, - 546, 547, 548, 549, 550, 555, 560, 578, 579, 580, - 583, 581, 582, 584, 585, 586, 587, 597, 598, 599, - 600, 601, 602, 609, 610, 395, 424, 441, 563, 564, - 448, 449, 435, 436, 0, 0, 0, 440, 603, 485, - 486, 487, 439, 437, 438 + 20, 22, 23, 86, 89, 98, 186, 187, 24, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 37, + 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, + 31, 28, 29, 32, 33, 34, 35, 36, 121, 198, + 122, 124, 125, 126, 200, 205, 201, 212, 213, 214, + 215, 182, 87, 76, 102, 119, 120, 210, 207, 123, + 38, 39, 40, 41, 42, 78, 92, 93, 108, 64, + 74, 65, 190, 191, 103, 58, 59, 189, 60, 61, + 112, 116, 130, 139, 165, 142, 211, 113, 71, 43, + 44, 45, 100, 131, 132, 133, 46, 47, 49, 50, + 52, 53, 51, 137, 54, 55, 56, 62, 81, 117, + 95, 138, 88, 161, 96, 97, 114, 115, 208, 101, + 57, 79, 82, 63, 66, 104, 105, 80, 162, 106, + 67, 68, 69, 199, 118, 175, 176, 177, 178, 179, + 180, 188, 107, 75, 109, 110, 111, 163, 72, 73, + 94, 83, 84, 99, 127, 128, 209, 129, 134, 135, + 136, 166, 167, 169, 171, 172, 170, 173, 183, 140, + 141, 145, 146, 143, 144, 147, 148, 150, 149, 202, + 204, 203, 164, 174, 192, 194, 193, 195, 196, 197, + 216, 168, 181, 184, 185, 206, 0, 0, 0, 0, + 0, 0, 0, 218, 220, 221, 222, 224, 225, 226, + 223, 0, 0, 0, 0, 0, 0, 228, 230, 231, + 232, 233, 234, 235, 0, 0, 0, 0, 0, 0, + 0, 237, 239, 240, 243, 244, 241, 245, 242, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 249, 250, + 251, 252, 256, 253, 254, 255, 0, 0, 0, 0, + 0, 267, 271, 272, 273, 274, 263, 265, 266, 268, + 269, 270, 0, 0, 0, 0, 0, 0, 0, 0, + 494, 496, 498, 497, 503, 499, 500, 501, 502, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 513, 515, + 517, 516, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 554, + 556, 0, 559, 561, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 568, 570, 571, 572, 574, 575, + 573, 576, 577, 578, 579, 0, 0, 0, 0, 0, + 0, 591, 593, 594, 595, 596, 597, 598, 0, 0, + 607, 609, 610, 276, 275, 282, 295, 293, 305, 301, + 302, 306, 303, 304, 307, 308, 309, 310, 311, 334, + 335, 336, 337, 338, 363, 364, 365, 370, 371, 298, + 372, 373, 376, 374, 375, 378, 379, 380, 394, 349, + 350, 352, 353, 381, 397, 343, 345, 398, 404, 405, + 406, 299, 362, 422, 423, 344, 417, 327, 294, 339, + 395, 401, 382, 0, 0, 426, 300, 277, 326, 386, + 278, 296, 297, 340, 341, 424, 384, 388, 389, 279, + 427, 366, 393, 328, 348, 399, 400, 403, 416, 342, + 420, 418, 419, 354, 361, 390, 391, 355, 356, 383, + 408, 329, 330, 333, 312, 314, 315, 316, 317, 318, + 428, 429, 431, 367, 368, 369, 377, 432, 433, 434, + 0, 0, 0, 385, 357, 359, 563, 443, 447, 445, + 444, 448, 446, 0, 0, 451, 452, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 387, 402, 421, + 456, 457, 358, 435, 0, 0, 0, 0, 0, 0, + 409, 410, 411, 412, 413, 414, 415, 564, 351, 346, + 407, 325, 280, 281, 347, 458, 460, 459, 461, 462, + 463, 313, 320, 453, 455, 454, 319, 0, 332, 392, + 430, 331, 360, 321, 322, 324, 323, 0, 465, 466, + 467, 471, 470, 468, 469, 472, 473, 474, 475, 477, + 476, 486, 0, 490, 491, 0, 0, 492, 478, 484, + 479, 480, 481, 483, 485, 482, 257, 258, 259, 260, + 261, 504, 506, 505, 508, 509, 510, 511, 507, 534, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 535, + 545, 546, 547, 548, 549, 550, 551, 552, 557, 562, + 580, 581, 582, 585, 583, 584, 586, 587, 588, 589, + 599, 600, 601, 602, 603, 604, 611, 612, 396, 425, + 442, 565, 566, 449, 450, 436, 437, 0, 0, 0, + 441, 605, 464, 487, 488, 489, 440, 438, 439 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1711,8 +1714,8 @@ static const yytype_int16 yypgoto[] = -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, 579, - 580, 581, 582, 583, -285, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, + 560, 582, 583, 584, 585, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, @@ -1720,44 +1723,44 @@ static const yytype_int16 yypgoto[] = -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285 + -285, -285, -285, -285, -285, -285, -285, -285 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 239, 20, 33, 441, - 21, 34, 455, 22, 35, 469, 23, 36, 485, 499, - 500, 501, 502, 503, 24, 37, 504, 240, 241, 242, - 243, 244, 245, 246, 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, 442, 443, 444, 445, - 446, 447, 448, 456, 457, 458, 459, 460, 461, 486, - 487, 488, 489, 490, 491, 492, 493, 470, 471, 472, - 473, 474, 475, 476, 25, 38, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 26, 39, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 27, 40, 567, - 568, 28, 41, 570, 571, 429, 430, 431, 432, 29, - 42, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 30, 43, 599, 600, 601, 602, 603, 604, - 605, 433, 31, 44, 608, 609, 610 + -1, 1, 17, 18, 19, 32, 240, 20, 33, 443, + 21, 34, 457, 22, 35, 471, 23, 36, 487, 501, + 502, 503, 504, 505, 24, 37, 506, 241, 242, 243, + 244, 245, 246, 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, 444, 445, 446, + 447, 448, 449, 450, 458, 459, 460, 461, 462, 463, + 488, 489, 490, 491, 492, 493, 494, 495, 472, 473, + 474, 475, 476, 477, 478, 25, 38, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 26, 39, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 27, 40, + 569, 570, 28, 41, 572, 573, 431, 432, 433, 434, + 29, 42, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 30, 43, 601, 602, 603, 604, 605, + 606, 607, 435, 31, 44, 610, 611, 612 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1765,69 +1768,69 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 477, 462, 434, 566, 435, 436, 569, 449, 606, - 607, 3, 4, 611, 612, 613, 450, 451, 593, 594, - 595, 596, 597, 598, 477, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 614, 615, 616, 463, 464, - 617, 618, 619, 620, 621, 622, 5, 623, 624, 625, - 626, 627, 6, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 465, 638, 639, 437, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 510, 511, 512, 513, - 514, 515, 516, 517, 640, 641, 7, 438, 642, 643, - 439, 452, 644, 453, 645, 646, 647, 648, 649, 650, - 651, 652, 8, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 466, 467, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 9, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 468, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 10, 479, 480, 481, 748, 749, 750, 751, - 752, 753, 754, 484, 755, 756, 757, 758, 759, 440, - 11, 760, 761, 454, 478, 762, 479, 480, 481, 482, - 483, 494, 495, 496, 497, 498, 484, 12, 763, 764, - 765, 766, 767, 768, 769, 770, 13, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 14, 794, 795, 796, 15, 797, 798, 799, 0, 800, + 2, 479, 464, 436, 568, 437, 438, 571, 451, 608, + 609, 3, 4, 613, 614, 615, 452, 453, 595, 596, + 597, 598, 599, 600, 479, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 616, 617, 618, 465, 466, + 619, 620, 621, 622, 623, 624, 5, 625, 626, 627, + 628, 629, 6, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 467, 640, 641, 439, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 512, 513, 514, 515, + 516, 517, 518, 519, 642, 643, 7, 440, 644, 645, + 441, 454, 646, 455, 647, 648, 649, 650, 651, 652, + 653, 654, 8, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 468, 469, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 9, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 470, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 10, 481, 482, 483, 750, 751, 752, 753, + 754, 755, 756, 486, 757, 758, 759, 760, 761, 442, + 11, 762, 763, 456, 480, 764, 481, 482, 483, 484, + 485, 496, 497, 498, 499, 500, 486, 12, 765, 766, + 767, 768, 769, 770, 771, 772, 13, 773, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 14, 796, 797, 798, 15, 799, 800, 801, 0, 802, 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, 801, 802, 803, 804, 77, 78, 79, - 805, 806, 807, 80, 81, 82, 83, 84, 85, 86, + 74, 75, 76, 803, 804, 805, 806, 77, 78, 79, + 807, 808, 809, 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, 808, 809, 810, 811, 812, 813, - 814, 815, 816, 121, 122, 123, 817, 124, 125, 126, - 818, 819, 127, 128, 129, 130, 131, 132, 133, 134, + 117, 118, 119, 120, 810, 811, 812, 813, 814, 815, + 816, 817, 818, 121, 122, 123, 819, 124, 125, 126, + 820, 821, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 820, 821, 822, 151, - 823, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 824, 825, 826, 827, 828, 829, 830, 831, 832, - 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 145, 146, 147, 148, 149, 150, 822, 823, 824, 151, + 825, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 826, 827, 828, 829, 830, 831, 832, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 844, 201, 845, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 846, 847, - 848, 849, 850, 851, 852, 853, 854, 855, 856, 217, - 218, 219, 220, 221, 222, 857, 858, 859, 860, 861, - 862, 863, 223, 864, 865, 866, 867, 868, 869, 870, - 224, 225, 871, 226, 227, 872, 228, 229, 873, 874, - 230, 231, 232, 233, 234, 235, 236, 237, 875, 876, - 877, 238, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 899, 900, 901, 902, 903, 904, 0, + 846, 201, 847, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 848, 849, + 850, 851, 852, 853, 854, 855, 856, 857, 858, 217, + 218, 219, 220, 221, 222, 859, 860, 861, 862, 863, + 864, 865, 223, 866, 867, 868, 869, 870, 871, 872, + 224, 225, 873, 226, 227, 874, 228, 229, 875, 876, + 230, 231, 232, 233, 234, 235, 236, 237, 877, 878, + 879, 238, 880, 881, 882, 883, 884, 885, 886, 887, + 239, 888, 889, 890, 891, 892, 893, 894, 895, 896, + 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, + 907, 908, 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 505, 506, 507, 508, - 509 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 508, + 509, 510, 511 }; static const yytype_int16 yycheck[] = @@ -1889,23 +1892,23 @@ static const yytype_int16 yycheck[] = 262, 263, 10, 265, 266, 10, 268, 269, 10, 10, 272, 273, 274, 275, 276, 277, 278, 279, 10, 10, 10, 283, 10, 10, 10, 10, 10, 10, 10, 10, + 292, 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, -1, + 10, 10, -1, -1, -1, -1, -1, 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, 37, 37, 37, 37, - 37 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 293, 0, 11, 12, 46, 52, 96, 112, 153, - 212, 230, 247, 256, 280, 284, 290, 294, 295, 296, - 299, 302, 305, 308, 316, 536, 547, 569, 573, 581, - 594, 604, 297, 300, 303, 306, 309, 317, 537, 548, - 570, 574, 582, 595, 605, 13, 14, 15, 16, 17, + 0, 294, 0, 11, 12, 46, 52, 96, 112, 153, + 212, 230, 247, 256, 280, 284, 290, 295, 296, 297, + 300, 303, 306, 309, 317, 538, 549, 571, 575, 583, + 596, 606, 298, 301, 304, 307, 310, 318, 539, 550, + 572, 576, 584, 597, 607, 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, @@ -1924,8 +1927,8 @@ static const yytype_int16 yystos[] = 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 241, 242, 243, 244, 245, 246, 254, 262, 263, 265, 266, 268, 269, - 272, 273, 274, 275, 276, 277, 278, 279, 283, 298, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 272, 273, 274, 275, 276, 277, 278, 279, 283, 292, + 299, 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, @@ -1943,26 +1946,26 @@ static const yytype_int16 yystos[] = 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 577, - 578, 579, 580, 603, 45, 47, 48, 108, 139, 142, - 271, 301, 508, 509, 510, 511, 512, 513, 514, 45, - 53, 54, 138, 140, 270, 304, 515, 516, 517, 518, - 519, 520, 45, 81, 82, 106, 174, 175, 214, 307, - 529, 530, 531, 532, 533, 534, 535, 45, 255, 257, - 258, 259, 260, 261, 267, 310, 521, 522, 523, 524, - 525, 526, 527, 528, 285, 286, 287, 288, 289, 311, - 312, 313, 314, 315, 318, 521, 522, 523, 524, 525, - 97, 98, 99, 100, 101, 102, 103, 104, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 549, 550, 551, 552, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 579, 580, 581, 582, 605, 45, 47, 48, 108, + 139, 142, 271, 302, 510, 511, 512, 513, 514, 515, + 516, 45, 53, 54, 138, 140, 270, 305, 517, 518, + 519, 520, 521, 522, 45, 81, 82, 106, 174, 175, + 214, 308, 531, 532, 533, 534, 535, 536, 537, 45, + 255, 257, 258, 259, 260, 261, 267, 311, 523, 524, + 525, 526, 527, 528, 529, 530, 285, 286, 287, 288, + 289, 312, 313, 314, 315, 316, 319, 523, 524, 525, + 526, 527, 97, 98, 99, 100, 101, 102, 103, 104, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 113, 571, 572, 291, - 575, 576, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 248, 249, 250, 251, 252, 253, 596, - 597, 598, 599, 600, 601, 602, 281, 282, 606, 607, - 608, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 563, 564, 565, 566, 567, 568, 569, 570, 113, 573, + 574, 291, 577, 578, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 248, 249, 250, 251, 252, + 253, 598, 599, 600, 601, 602, 603, 604, 281, 282, + 608, 609, 610, 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, @@ -1991,40 +1994,40 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 292, 293, 293, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 295, 296, - 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 299, 300, 300, 301, - 301, 301, 301, 301, 301, 301, 302, 303, 303, 304, - 304, 304, 304, 304, 304, 305, 306, 306, 307, 307, - 307, 307, 307, 307, 307, 308, 309, 309, 310, 310, - 310, 310, 310, 310, 310, 310, 311, 312, 313, 314, - 315, 316, 317, 317, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 319, 320, 321, 322, 323, 324, + 0, 293, 294, 294, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 296, 297, + 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 300, 301, 301, + 302, 302, 302, 302, 302, 302, 302, 303, 304, 304, + 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, 311, 311, 312, 313, 314, + 315, 316, 317, 318, 318, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 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, @@ -2046,19 +2049,19 @@ static const yytype_int16 yyr1[] = 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 537, 538, 538, 538, 538, 538, 538, - 538, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 548, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 535, 536, 537, 538, 539, 539, 540, 540, 540, 540, + 540, 540, 540, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 550, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, + 551, 551, 551, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 570, 571, 572, 573, 574, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 582, 583, 583, - 583, 583, 583, 583, 583, 583, 583, 583, 584, 585, + 568, 569, 570, 571, 572, 572, 573, 574, 575, 576, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 584, + 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 595, 596, 596, 596, 596, 596, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 605, 606, 606, 607, - 608 + 596, 597, 597, 598, 598, 598, 598, 598, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 607, 608, + 608, 609, 610 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2085,13 +2088,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, 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, + 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, 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, @@ -2103,29 +2106,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, 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, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 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, 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, 1, 1, 1, 1, + 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, 2, 2, 2, 2, + 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, 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 }; @@ -2272,7 +2275,7 @@ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], + yystos[+yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); @@ -2450,7 +2453,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, */ if (yytoken != YYEMPTY) { - int yyn = yypact[*yyssp]; + int yyn = yypact[+*yyssp]; YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); yysize = yysize0; yyarg[yycount++] = yytname[yytoken]; @@ -2825,7 +2828,7 @@ yyreduce: { OUTYY(("\nP(force-toplevel)\n")); } -#line 2829 "util/configparser.c" +#line 2832 "util/configparser.c" break; case 19: @@ -2833,10 +2836,10 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2837 "util/configparser.c" +#line 2840 "util/configparser.c" break; - case 216: + case 217: #line 291 "./util/configparser.y" { struct config_stub* s; @@ -2848,10 +2851,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2852 "util/configparser.c" +#line 2855 "util/configparser.c" break; - case 226: + case 227: #line 308 "./util/configparser.y" { struct config_stub* s; @@ -2863,10 +2866,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2867 "util/configparser.c" +#line 2870 "util/configparser.c" break; - case 235: + case 236: #line 325 "./util/configparser.y" { struct config_view* s; @@ -2880,10 +2883,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2884 "util/configparser.c" +#line 2887 "util/configparser.c" break; - case 245: + case 246: #line 344 "./util/configparser.y" { struct config_auth* s; @@ -2900,10 +2903,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2904 "util/configparser.c" +#line 2907 "util/configparser.c" break; - case 256: + case 257: #line 368 "./util/configparser.y" { uint8_t* bitlist; @@ -2921,10 +2924,10 @@ yyreduce: } } -#line 2925 "util/configparser.c" +#line 2928 "util/configparser.c" break; - case 257: + case 258: #line 387 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); @@ -2940,20 +2943,20 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2944 "util/configparser.c" +#line 2947 "util/configparser.c" break; - case 258: + case 259: #line 404 "./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 2954 "util/configparser.c" +#line 2957 "util/configparser.c" break; - case 259: + case 260: #line 412 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); @@ -2962,20 +2965,20 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2966 "util/configparser.c" +#line 2969 "util/configparser.c" break; - case 260: + case 261: #line 422 "./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 2976 "util/configparser.c" +#line 2979 "util/configparser.c" break; - case 261: + case 262: #line 430 "./util/configparser.y" { struct config_auth* s; @@ -2992,10 +2995,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2996 "util/configparser.c" +#line 2999 "util/configparser.c" break; - case 274: + case 275: #line 453 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); @@ -3004,10 +3007,10 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3008 "util/configparser.c" +#line 3011 "util/configparser.c" break; - case 275: + case 276: #line 462 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); @@ -3016,10 +3019,10 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3020 "util/configparser.c" +#line 3023 "util/configparser.c" break; - case 276: + case 277: #line 471 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); @@ -3030,10 +3033,10 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3034 "util/configparser.c" +#line 3037 "util/configparser.c" break; - case 277: + case 278: #line 482 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); @@ -3042,10 +3045,10 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3046 "util/configparser.c" +#line 3049 "util/configparser.c" break; - case 278: + case 279: #line 491 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); @@ -3054,10 +3057,10 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3058 "util/configparser.c" +#line 3061 "util/configparser.c" break; - case 279: + case 280: #line 500 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); @@ -3066,10 +3069,10 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3070 "util/configparser.c" +#line 3073 "util/configparser.c" break; - case 280: + case 281: #line 509 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); @@ -3080,10 +3083,10 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3084 "util/configparser.c" +#line 3087 "util/configparser.c" break; - case 281: + case 282: #line 520 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); @@ -3092,10 +3095,10 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3096 "util/configparser.c" +#line 3099 "util/configparser.c" break; - case 282: + case 283: #line 529 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3107,10 +3110,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3111 "util/configparser.c" +#line 3114 "util/configparser.c" break; - case 283: + case 284: #line 541 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3123,10 +3126,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3127 "util/configparser.c" +#line 3130 "util/configparser.c" break; - case 284: + case 285: #line 555 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3141,10 +3144,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3145 "util/configparser.c" +#line 3148 "util/configparser.c" break; - case 285: + case 286: #line 570 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3155,10 +3158,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3159 "util/configparser.c" +#line 3162 "util/configparser.c" break; - case 286: + case 287: #line 581 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3175,10 +3178,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3179 "util/configparser.c" +#line 3182 "util/configparser.c" break; - case 287: + case 288: #line 598 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3195,10 +3198,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3199 "util/configparser.c" +#line 3202 "util/configparser.c" break; - case 288: + case 289: #line 615 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3215,10 +3218,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3219 "util/configparser.c" +#line 3222 "util/configparser.c" break; - case 289: + case 290: #line 632 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3235,10 +3238,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3239 "util/configparser.c" +#line 3242 "util/configparser.c" break; - case 290: + case 291: #line 649 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3253,10 +3256,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3257 "util/configparser.c" +#line 3260 "util/configparser.c" break; - case 291: + case 292: #line 664 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3271,10 +3274,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3275 "util/configparser.c" +#line 3278 "util/configparser.c" break; - case 292: + case 293: #line 679 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); @@ -3287,10 +3290,10 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3291 "util/configparser.c" +#line 3294 "util/configparser.c" break; - case 293: + case 294: #line 692 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); @@ -3305,10 +3308,10 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3309 "util/configparser.c" +#line 3312 "util/configparser.c" break; - case 294: + case 295: #line 707 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); @@ -3317,10 +3320,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3321 "util/configparser.c" +#line 3324 "util/configparser.c" break; - case 295: + case 296: #line 716 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); @@ -3329,10 +3332,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3333 "util/configparser.c" +#line 3336 "util/configparser.c" break; - case 296: + case 297: #line 725 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); @@ -3341,10 +3344,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3345 "util/configparser.c" +#line 3348 "util/configparser.c" break; - case 297: + case 298: #line 734 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); @@ -3353,10 +3356,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3357 "util/configparser.c" +#line 3360 "util/configparser.c" break; - case 298: + case 299: #line 743 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); @@ -3365,10 +3368,10 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3369 "util/configparser.c" +#line 3372 "util/configparser.c" break; - case 299: + case 300: #line 752 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); @@ -3377,10 +3380,10 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3381 "util/configparser.c" +#line 3384 "util/configparser.c" break; - case 300: + case 301: #line 761 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); @@ -3389,10 +3392,10 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3393 "util/configparser.c" +#line 3396 "util/configparser.c" break; - case 301: + case 302: #line 770 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); @@ -3401,10 +3404,10 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3405 "util/configparser.c" +#line 3408 "util/configparser.c" break; - case 302: + case 303: #line 779 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); @@ -3413,10 +3416,10 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3417 "util/configparser.c" +#line 3420 "util/configparser.c" break; - case 303: + case 304: #line 788 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); @@ -3425,10 +3428,10 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3429 "util/configparser.c" +#line 3432 "util/configparser.c" break; - case 304: + case 305: #line 797 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); @@ -3437,10 +3440,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3441 "util/configparser.c" +#line 3444 "util/configparser.c" break; - case 305: + case 306: #line 806 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); @@ -3449,10 +3452,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3453 "util/configparser.c" +#line 3456 "util/configparser.c" break; - case 306: + case 307: #line 815 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -3461,10 +3464,10 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3465 "util/configparser.c" +#line 3468 "util/configparser.c" break; - case 307: + case 308: #line 824 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -3473,10 +3476,10 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3477 "util/configparser.c" +#line 3480 "util/configparser.c" break; - case 308: + case 309: #line 833 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); @@ -3489,10 +3492,10 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3493 "util/configparser.c" +#line 3496 "util/configparser.c" break; - case 309: + case 310: #line 846 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); @@ -3501,10 +3504,10 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3505 "util/configparser.c" +#line 3508 "util/configparser.c" break; - case 310: + case 311: #line 855 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); @@ -3517,10 +3520,10 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3521 "util/configparser.c" +#line 3524 "util/configparser.c" break; - case 311: + case 312: #line 868 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); @@ -3529,10 +3532,10 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3533 "util/configparser.c" +#line 3536 "util/configparser.c" break; - case 312: + case 313: #line 877 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); @@ -3541,10 +3544,10 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3545 "util/configparser.c" +#line 3548 "util/configparser.c" break; - case 313: + case 314: #line 886 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); @@ -3553,30 +3556,30 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3557 "util/configparser.c" +#line 3560 "util/configparser.c" break; - case 314: + case 315: #line 895 "./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 3567 "util/configparser.c" +#line 3570 "util/configparser.c" break; - case 315: + case 316: #line 902 "./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 3577 "util/configparser.c" +#line 3580 "util/configparser.c" break; - case 316: + case 317: #line 909 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); @@ -3585,20 +3588,20 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3589 "util/configparser.c" +#line 3592 "util/configparser.c" break; - case 317: + case 318: #line 918 "./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 3599 "util/configparser.c" +#line 3602 "util/configparser.c" break; - case 318: + case 319: #line 925 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); @@ -3607,10 +3610,10 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3611 "util/configparser.c" +#line 3614 "util/configparser.c" break; - case 319: + case 320: #line 934 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); @@ -3618,30 +3621,30 @@ yyreduce: (yyvsp[0].str))) yyerror("out of memory"); } -#line 3622 "util/configparser.c" +#line 3625 "util/configparser.c" break; - case 320: + case 321: #line 942 "./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 3632 "util/configparser.c" +#line 3635 "util/configparser.c" break; - case 321: + case 322: #line 949 "./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 3642 "util/configparser.c" +#line 3645 "util/configparser.c" break; - case 322: + case 323: #line 956 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); @@ -3649,10 +3652,10 @@ yyreduce: (yyvsp[0].str))) yyerror("out of memory"); } -#line 3653 "util/configparser.c" +#line 3656 "util/configparser.c" break; - case 323: + case 324: #line 964 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); @@ -3661,10 +3664,10 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3665 "util/configparser.c" +#line 3668 "util/configparser.c" break; - case 324: + case 325: #line 973 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); @@ -3673,10 +3676,10 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3677 "util/configparser.c" +#line 3680 "util/configparser.c" break; - case 325: + case 326: #line 982 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); @@ -3685,10 +3688,10 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3689 "util/configparser.c" +#line 3692 "util/configparser.c" break; - case 326: + case 327: #line 991 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); @@ -3702,10 +3705,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3706 "util/configparser.c" +#line 3709 "util/configparser.c" break; - case 327: + case 328: #line 1005 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); @@ -3714,10 +3717,10 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3718 "util/configparser.c" +#line 3721 "util/configparser.c" break; - case 328: + case 329: #line 1014 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); @@ -3726,10 +3729,10 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3730 "util/configparser.c" +#line 3733 "util/configparser.c" break; - case 329: + case 330: #line 1023 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); @@ -3738,10 +3741,10 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3742 "util/configparser.c" +#line 3745 "util/configparser.c" break; - case 330: + case 331: #line 1032 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); @@ -3750,10 +3753,10 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3754 "util/configparser.c" +#line 3757 "util/configparser.c" break; - case 331: + case 332: #line 1041 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); @@ -3762,10 +3765,10 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3766 "util/configparser.c" +#line 3769 "util/configparser.c" break; - case 332: + case 333: #line 1050 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); @@ -3774,30 +3777,30 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3778 "util/configparser.c" +#line 3781 "util/configparser.c" break; - case 333: + case 334: #line 1059 "./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 3788 "util/configparser.c" +#line 3791 "util/configparser.c" break; - case 334: + case 335: #line 1066 "./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 3798 "util/configparser.c" +#line 3801 "util/configparser.c" break; - case 335: + case 336: #line 1073 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); @@ -3823,10 +3826,10 @@ yyreduce: } } } -#line 3827 "util/configparser.c" +#line 3830 "util/configparser.c" break; - case 336: + case 337: #line 1099 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); @@ -3834,50 +3837,50 @@ yyreduce: cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3838 "util/configparser.c" +#line 3841 "util/configparser.c" break; - case 337: + case 338: #line 1107 "./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 3848 "util/configparser.c" +#line 3851 "util/configparser.c" break; - case 338: + case 339: #line 1114 "./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 3858 "util/configparser.c" +#line 3861 "util/configparser.c" break; - case 339: + case 340: #line 1121 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dlv_anchor_file); cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); } -#line 3868 "util/configparser.c" +#line 3871 "util/configparser.c" break; - case 340: + case 341: #line 1128 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3878 "util/configparser.c" +#line 3881 "util/configparser.c" break; - case 341: + case 342: #line 1135 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); @@ -3885,10 +3888,10 @@ yyreduce: auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3889 "util/configparser.c" +#line 3892 "util/configparser.c" break; - case 342: + case 343: #line 1143 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); @@ -3896,10 +3899,10 @@ yyreduce: trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3900 "util/configparser.c" +#line 3903 "util/configparser.c" break; - case 343: + case 344: #line 1151 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); @@ -3907,20 +3910,20 @@ yyreduce: trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3911 "util/configparser.c" +#line 3914 "util/configparser.c" break; - case 344: + case 345: #line 1159 "./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 3921 "util/configparser.c" +#line 3924 "util/configparser.c" break; - case 345: + case 346: #line 1166 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); @@ -3931,10 +3934,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3935 "util/configparser.c" +#line 3938 "util/configparser.c" break; - case 346: + case 347: #line 1177 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); @@ -3945,20 +3948,20 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3949 "util/configparser.c" +#line 3952 "util/configparser.c" break; - case 347: + case 348: #line 1188 "./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 3959 "util/configparser.c" +#line 3962 "util/configparser.c" break; - case 348: + case 349: #line 1195 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); @@ -3967,10 +3970,10 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3971 "util/configparser.c" +#line 3974 "util/configparser.c" break; - case 349: + case 350: #line 1204 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); @@ -3979,10 +3982,10 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3983 "util/configparser.c" +#line 3986 "util/configparser.c" break; - case 350: + case 351: #line 1213 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); @@ -3991,30 +3994,30 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3995 "util/configparser.c" +#line 3998 "util/configparser.c" break; - case 351: + case 352: #line 1222 "./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 4005 "util/configparser.c" +#line 4008 "util/configparser.c" break; - case 352: + case 353: #line 1229 "./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 4015 "util/configparser.c" +#line 4018 "util/configparser.c" break; - case 353: + case 354: #line 1236 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); @@ -4022,10 +4025,10 @@ yyreduce: yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4026 "util/configparser.c" +#line 4029 "util/configparser.c" break; - case 354: + case 355: #line 1244 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); @@ -4033,10 +4036,10 @@ yyreduce: yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4037 "util/configparser.c" +#line 4040 "util/configparser.c" break; - case 355: + case 356: #line 1252 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); @@ -4046,10 +4049,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4050 "util/configparser.c" +#line 4053 "util/configparser.c" break; - case 356: + case 357: #line 1262 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); @@ -4059,10 +4062,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4063 "util/configparser.c" +#line 4066 "util/configparser.c" break; - case 357: + case 358: #line 1272 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); @@ -4072,10 +4075,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4076 "util/configparser.c" +#line 4079 "util/configparser.c" break; - case 358: + case 359: #line 1282 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); @@ -4089,10 +4092,10 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4093 "util/configparser.c" +#line 4096 "util/configparser.c" break; - case 359: + case 360: #line 1296 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); @@ -4100,10 +4103,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4104 "util/configparser.c" +#line 4107 "util/configparser.c" break; - case 360: + case 361: #line 1304 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4116,10 +4119,10 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4120 "util/configparser.c" +#line 4123 "util/configparser.c" break; - case 361: + case 362: #line 1317 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4130,10 +4133,10 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4134 "util/configparser.c" +#line 4137 "util/configparser.c" break; - case 362: + case 363: #line 1328 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); @@ -4141,10 +4144,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4145 "util/configparser.c" +#line 4148 "util/configparser.c" break; - case 363: + case 364: #line 1336 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -4157,10 +4160,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4161 "util/configparser.c" +#line 4164 "util/configparser.c" break; - case 364: + case 365: #line 1349 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); @@ -4169,10 +4172,10 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4173 "util/configparser.c" +#line 4176 "util/configparser.c" break; - case 365: + case 366: #line 1358 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); @@ -4181,10 +4184,10 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4185 "util/configparser.c" +#line 4188 "util/configparser.c" break; - case 366: + case 367: #line 1367 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); @@ -4193,10 +4196,10 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4197 "util/configparser.c" +#line 4200 "util/configparser.c" break; - case 367: + case 368: #line 1376 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); @@ -4206,10 +4209,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4210 "util/configparser.c" +#line 4213 "util/configparser.c" break; - case 368: + case 369: #line 1386 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); @@ -4219,10 +4222,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4223 "util/configparser.c" +#line 4226 "util/configparser.c" break; - case 369: + case 370: #line 1396 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); @@ -4230,10 +4233,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4234 "util/configparser.c" +#line 4237 "util/configparser.c" break; - case 370: + case 371: #line 1404 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -4246,10 +4249,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4250 "util/configparser.c" +#line 4253 "util/configparser.c" break; - case 371: + case 372: #line 1417 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); @@ -4258,10 +4261,10 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4262 "util/configparser.c" +#line 4265 "util/configparser.c" break; - case 372: + case 373: #line 1426 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); @@ -4269,10 +4272,10 @@ yyreduce: "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4273 "util/configparser.c" +#line 4276 "util/configparser.c" break; - case 373: + case 374: #line 1434 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); @@ -4281,10 +4284,10 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4285 "util/configparser.c" +#line 4288 "util/configparser.c" break; - case 374: + case 375: #line 1443 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); @@ -4292,10 +4295,10 @@ yyreduce: "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4296 "util/configparser.c" +#line 4299 "util/configparser.c" break; - case 375: + case 376: #line 1451 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -4308,10 +4311,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4312 "util/configparser.c" +#line 4315 "util/configparser.c" break; - case 376: + case 377: #line 1464 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); @@ -4320,20 +4323,20 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4324 "util/configparser.c" +#line 4327 "util/configparser.c" break; - case 377: + case 378: #line 1473 "./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 4334 "util/configparser.c" +#line 4337 "util/configparser.c" break; - case 378: + case 379: #line 1480 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); @@ -4343,10 +4346,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4347 "util/configparser.c" +#line 4350 "util/configparser.c" break; - case 379: + case 380: #line 1490 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); @@ -4356,10 +4359,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4360 "util/configparser.c" +#line 4363 "util/configparser.c" break; - case 380: + case 381: #line 1500 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); @@ -4369,10 +4372,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" +#line 4376 "util/configparser.c" break; - case 381: + case 382: #line 1510 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); @@ -4382,10 +4385,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4386 "util/configparser.c" +#line 4389 "util/configparser.c" break; - case 382: + case 383: #line 1520 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); @@ -4395,10 +4398,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" +#line 4402 "util/configparser.c" break; - case 383: + case 384: #line 1530 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); @@ -4408,10 +4411,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4412 "util/configparser.c" +#line 4415 "util/configparser.c" break; - case 384: + case 385: #line 1540 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); @@ -4421,10 +4424,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4425 "util/configparser.c" +#line 4428 "util/configparser.c" break; - case 385: + case 386: #line 1550 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); @@ -4434,40 +4437,40 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4438 "util/configparser.c" +#line 4441 "util/configparser.c" break; - case 386: + case 387: #line 1560 "./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 4448 "util/configparser.c" +#line 4451 "util/configparser.c" break; - case 387: + case 388: #line 1567 "./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 4458 "util/configparser.c" +#line 4461 "util/configparser.c" break; - case 388: + case 389: #line 1574 "./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 4468 "util/configparser.c" +#line 4471 "util/configparser.c" break; - case 389: + case 390: #line 1581 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); @@ -4476,10 +4479,10 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4480 "util/configparser.c" +#line 4483 "util/configparser.c" break; - case 390: + case 391: #line 1590 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); @@ -4488,10 +4491,10 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4492 "util/configparser.c" +#line 4495 "util/configparser.c" break; - case 391: + case 392: #line 1599 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); @@ -4500,10 +4503,10 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4504 "util/configparser.c" +#line 4507 "util/configparser.c" break; - case 392: + case 393: #line 1608 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); @@ -4512,20 +4515,20 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4516 "util/configparser.c" +#line 4519 "util/configparser.c" break; - case 393: + case 394: #line 1617 "./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 4526 "util/configparser.c" +#line 4529 "util/configparser.c" break; - case 394: + case 395: #line 1624 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); @@ -4535,10 +4538,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4539 "util/configparser.c" +#line 4542 "util/configparser.c" break; - case 395: + case 396: #line 1634 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -4558,20 +4561,20 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4562 "util/configparser.c" +#line 4565 "util/configparser.c" break; - case 396: + case 397: #line 1654 "./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 4572 "util/configparser.c" +#line 4575 "util/configparser.c" break; - case 397: + case 398: #line 1661 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); @@ -4589,10 +4592,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4593 "util/configparser.c" +#line 4596 "util/configparser.c" break; - case 398: + case 399: #line 1679 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); @@ -4605,10 +4608,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4609 "util/configparser.c" +#line 4612 "util/configparser.c" break; - case 399: + case 400: #line 1692 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); @@ -4621,10 +4624,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4625 "util/configparser.c" +#line 4628 "util/configparser.c" break; - case 400: + case 401: #line 1705 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4633,10 +4636,10 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4637 "util/configparser.c" +#line 4640 "util/configparser.c" break; - case 401: + case 402: #line 1714 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); @@ -4645,10 +4648,10 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4649 "util/configparser.c" +#line 4652 "util/configparser.c" break; - case 402: + case 403: #line 1723 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); @@ -4657,10 +4660,10 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4661 "util/configparser.c" +#line 4664 "util/configparser.c" break; - case 403: + case 404: #line 1732 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); @@ -4669,10 +4672,10 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4673 "util/configparser.c" +#line 4676 "util/configparser.c" break; - case 404: + case 405: #line 1741 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); @@ -4682,10 +4685,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4686 "util/configparser.c" +#line 4689 "util/configparser.c" break; - case 405: + case 406: #line 1751 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); @@ -4695,10 +4698,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 4702 "util/configparser.c" break; - case 406: + case 407: #line 1761 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); @@ -4709,10 +4712,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4713 "util/configparser.c" +#line 4716 "util/configparser.c" break; - case 407: + case 408: #line 1772 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); @@ -4721,10 +4724,10 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4725 "util/configparser.c" +#line 4728 "util/configparser.c" break; - case 408: + case 409: #line 1781 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); @@ -4733,10 +4736,10 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4737 "util/configparser.c" +#line 4740 "util/configparser.c" break; - case 409: + case 410: #line 1790 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); @@ -4745,10 +4748,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4749 "util/configparser.c" +#line 4752 "util/configparser.c" break; - case 410: + case 411: #line 1799 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); @@ -4757,10 +4760,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4761 "util/configparser.c" +#line 4764 "util/configparser.c" break; - case 411: + case 412: #line 1808 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); @@ -4769,10 +4772,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4773 "util/configparser.c" +#line 4776 "util/configparser.c" break; - case 412: + case 413: #line 1817 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); @@ -4781,10 +4784,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4785 "util/configparser.c" +#line 4788 "util/configparser.c" break; - case 413: + case 414: #line 1826 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); @@ -4797,10 +4800,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4801 "util/configparser.c" +#line 4804 "util/configparser.c" break; - case 414: + case 415: #line 1839 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); @@ -4813,10 +4816,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4817 "util/configparser.c" +#line 4820 "util/configparser.c" break; - case 415: + case 416: #line 1852 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); @@ -4825,20 +4828,20 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4829 "util/configparser.c" +#line 4832 "util/configparser.c" break; - case 416: + case 417: #line 1861 "./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 4839 "util/configparser.c" +#line 4842 "util/configparser.c" break; - case 417: + case 418: #line 1868 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); @@ -4847,10 +4850,10 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4851 "util/configparser.c" +#line 4854 "util/configparser.c" break; - case 418: + case 419: #line 1877 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); @@ -4859,10 +4862,10 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4863 "util/configparser.c" +#line 4866 "util/configparser.c" break; - case 419: + case 420: #line 1886 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); @@ -4871,10 +4874,10 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4875 "util/configparser.c" +#line 4878 "util/configparser.c" break; - case 420: + case 421: #line 1895 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); @@ -4884,10 +4887,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4888 "util/configparser.c" +#line 4891 "util/configparser.c" break; - case 421: + case 422: #line 1904 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); @@ -4895,10 +4898,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4899 "util/configparser.c" +#line 4902 "util/configparser.c" break; - case 422: + case 423: #line 1912 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -4911,10 +4914,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4915 "util/configparser.c" +#line 4918 "util/configparser.c" break; - case 423: + case 424: #line 1925 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); @@ -4922,10 +4925,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4926 "util/configparser.c" +#line 4929 "util/configparser.c" break; - case 424: + case 425: #line 1933 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -4966,20 +4969,20 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4970 "util/configparser.c" +#line 4973 "util/configparser.c" break; - case 425: + case 426: #line 1974 "./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 4980 "util/configparser.c" +#line 4983 "util/configparser.c" break; - case 426: + case 427: #line 1981 "./util/configparser.y" { char* ptr; @@ -4994,10 +4997,10 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4998 "util/configparser.c" +#line 5001 "util/configparser.c" break; - case 427: + case 428: #line 1996 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); @@ -5007,10 +5010,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5011 "util/configparser.c" +#line 5014 "util/configparser.c" break; - case 428: + case 429: #line 2006 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); @@ -5020,40 +5023,40 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5024 "util/configparser.c" +#line 5027 "util/configparser.c" break; - case 429: + case 430: #line 2016 "./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 5034 "util/configparser.c" +#line 5037 "util/configparser.c" break; - case 430: + case 431: #line 2023 "./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 5044 "util/configparser.c" +#line 5047 "util/configparser.c" break; - case 431: + case 432: #line 2030 "./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 5054 "util/configparser.c" +#line 5057 "util/configparser.c" break; - case 432: + case 433: #line 2037 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); @@ -5062,10 +5065,10 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5066 "util/configparser.c" +#line 5069 "util/configparser.c" break; - case 433: + case 434: #line 2046 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); @@ -5073,10 +5076,10 @@ yyreduce: (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5077 "util/configparser.c" +#line 5080 "util/configparser.c" break; - case 434: + case 435: #line 2054 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); @@ -5090,10 +5093,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5094 "util/configparser.c" +#line 5097 "util/configparser.c" break; - case 435: + case 436: #line 2068 "./util/configparser.y" { size_t len = 0; @@ -5114,10 +5117,10 @@ yyreduce: } } } -#line 5118 "util/configparser.c" +#line 5121 "util/configparser.c" break; - case 436: + case 437: #line 2089 "./util/configparser.y" { size_t len = 0; @@ -5138,10 +5141,10 @@ yyreduce: } } } -#line 5142 "util/configparser.c" +#line 5145 "util/configparser.c" break; - case 437: + case 438: #line 2110 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); @@ -5153,10 +5156,10 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5157 "util/configparser.c" +#line 5160 "util/configparser.c" break; - case 438: + case 439: #line 2122 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); @@ -5168,10 +5171,10 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5172 "util/configparser.c" +#line 5175 "util/configparser.c" break; - case 439: + case 440: #line 2134 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); @@ -5183,10 +5186,10 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5187 "util/configparser.c" +#line 5190 "util/configparser.c" break; - case 440: + case 441: #line 2146 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5195,10 +5198,10 @@ yyreduce: yyerror("out of memory"); } } -#line 5199 "util/configparser.c" +#line 5202 "util/configparser.c" break; - case 441: + case 442: #line 2155 "./util/configparser.y" { size_t len = 0; @@ -5219,10 +5222,10 @@ yyreduce: } } } -#line 5223 "util/configparser.c" +#line 5226 "util/configparser.c" break; - case 442: + case 443: #line 2176 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); @@ -5231,10 +5234,10 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5235 "util/configparser.c" +#line 5238 "util/configparser.c" break; - case 443: + case 444: #line 2186 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); @@ -5243,10 +5246,10 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5247 "util/configparser.c" +#line 5250 "util/configparser.c" break; - case 444: + case 445: #line 2195 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); @@ -5254,10 +5257,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5258 "util/configparser.c" +#line 5261 "util/configparser.c" break; - case 445: + case 446: #line 2203 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); @@ -5265,10 +5268,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5269 "util/configparser.c" +#line 5272 "util/configparser.c" break; - case 446: + case 447: #line 2211 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); @@ -5281,10 +5284,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5285 "util/configparser.c" +#line 5288 "util/configparser.c" break; - case 447: + case 448: #line 2224 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); @@ -5297,10 +5300,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5301 "util/configparser.c" +#line 5304 "util/configparser.c" break; - case 448: + case 449: #line 2237 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5315,10 +5318,10 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5319 "util/configparser.c" +#line 5322 "util/configparser.c" break; - case 449: + case 450: #line 2252 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5333,10 +5336,10 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5337 "util/configparser.c" +#line 5340 "util/configparser.c" break; - case 450: + case 451: #line 2267 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); @@ -5345,10 +5348,10 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5349 "util/configparser.c" +#line 5352 "util/configparser.c" break; - case 451: + case 452: #line 2276 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); @@ -5357,19 +5360,19 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5361 "util/configparser.c" +#line 5364 "util/configparser.c" break; - case 452: + case 453: #line 2285 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5370 "util/configparser.c" +#line 5373 "util/configparser.c" break; - case 453: + case 454: #line 2291 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); @@ -5378,10 +5381,10 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5382 "util/configparser.c" +#line 5385 "util/configparser.c" break; - case 454: + case 455: #line 2300 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); @@ -5390,10 +5393,10 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5394 "util/configparser.c" +#line 5397 "util/configparser.c" break; - case 455: + case 456: #line 2309 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); @@ -5403,10 +5406,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5407 "util/configparser.c" +#line 5410 "util/configparser.c" break; - case 456: + case 457: #line 2319 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); @@ -5416,10 +5419,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5420 "util/configparser.c" +#line 5423 "util/configparser.c" break; - case 457: + case 458: #line 2329 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5432,10 +5435,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5436 "util/configparser.c" +#line 5439 "util/configparser.c" break; - case 458: + case 459: #line 2342 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5448,10 +5451,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5452 "util/configparser.c" +#line 5455 "util/configparser.c" break; - case 459: + case 460: #line 2355 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5463,10 +5466,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5467 "util/configparser.c" +#line 5470 "util/configparser.c" break; - case 460: + case 461: #line 2367 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5480,10 +5483,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5484 "util/configparser.c" +#line 5487 "util/configparser.c" break; - case 461: + case 462: #line 2381 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5495,10 +5498,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5499 "util/configparser.c" +#line 5502 "util/configparser.c" break; - case 462: + case 463: #line 2393 "./util/configparser.y" { #ifdef USE_IPSECMOD @@ -5512,11 +5515,29 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5516 "util/configparser.c" +#line 5519 "util/configparser.c" break; - case 463: + case 464: #line 2407 "./util/configparser.y" + { + int tag_data; + OUTYY(("P(server_edns_client_tag:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + tag_data = atoi((yyvsp[0].str)); + if(tag_data > 65535 || tag_data < 0 || + (tag_data == 0 && (strlen((yyvsp[0].str)) != 1 || (yyvsp[0].str)[0] != '0'))) + yyerror("edns-client-tag data invalid, needs to be a " + "number from 0 to 65535"); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_tags, (yyvsp[-1].str), (yyvsp[0].str))) + fatal_exit("out of memory adding " + "edns-client-tag"); + } +#line 5537 "util/configparser.c" + break; + + case 465: +#line 2422 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5525,31 +5546,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5529 "util/configparser.c" +#line 5550 "util/configparser.c" break; - case 464: -#line 2417 "./util/configparser.y" + case 466: +#line 2432 "./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 5539 "util/configparser.c" +#line 5560 "util/configparser.c" break; - case 465: -#line 2424 "./util/configparser.y" + case 467: +#line 2439 "./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 5549 "util/configparser.c" +#line 5570 "util/configparser.c" break; - case 466: -#line 2431 "./util/configparser.y" + case 468: +#line 2446 "./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) @@ -5557,11 +5578,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5561 "util/configparser.c" +#line 5582 "util/configparser.c" break; - case 467: -#line 2440 "./util/configparser.y" + case 469: +#line 2455 "./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) @@ -5569,11 +5590,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5573 "util/configparser.c" +#line 5594 "util/configparser.c" break; - case 468: -#line 2449 "./util/configparser.y" + case 470: +#line 2464 "./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) @@ -5582,11 +5603,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5586 "util/configparser.c" +#line 5607 "util/configparser.c" break; - case 469: -#line 2459 "./util/configparser.y" + case 471: +#line 2474 "./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) @@ -5595,11 +5616,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5599 "util/configparser.c" +#line 5620 "util/configparser.c" break; - case 470: -#line 2469 "./util/configparser.y" + case 472: +#line 2484 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5608,31 +5629,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5612 "util/configparser.c" +#line 5633 "util/configparser.c" break; - case 471: -#line 2479 "./util/configparser.y" + case 473: +#line 2494 "./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 5622 "util/configparser.c" +#line 5643 "util/configparser.c" break; - case 472: -#line 2486 "./util/configparser.y" + case 474: +#line 2501 "./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 5632 "util/configparser.c" +#line 5653 "util/configparser.c" break; - case 473: -#line 2493 "./util/configparser.y" + case 475: +#line 2508 "./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) @@ -5640,11 +5661,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5644 "util/configparser.c" +#line 5665 "util/configparser.c" break; - case 474: -#line 2502 "./util/configparser.y" + case 476: +#line 2517 "./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) @@ -5652,11 +5673,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5656 "util/configparser.c" +#line 5677 "util/configparser.c" break; - case 475: -#line 2511 "./util/configparser.y" + case 477: +#line 2526 "./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) @@ -5665,11 +5686,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5669 "util/configparser.c" +#line 5690 "util/configparser.c" break; - case 476: -#line 2521 "./util/configparser.y" + case 478: +#line 2536 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5678,45 +5699,24 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5682 "util/configparser.c" +#line 5703 "util/configparser.c" break; - case 477: -#line 2531 "./util/configparser.y" + case 479: +#line 2546 "./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 5692 "util/configparser.c" - break; - - case 478: -#line 2538 "./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 5702 "util/configparser.c" - break; - - case 479: -#line 2545 "./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 5712 "util/configparser.c" +#line 5713 "util/configparser.c" break; case 480: -#line 2552 "./util/configparser.y" +#line 2553 "./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))) + 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 5723 "util/configparser.c" @@ -5724,6 +5724,27 @@ yyreduce: case 481: #line 2560 "./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 5733 "util/configparser.c" + break; + + case 482: +#line 2567 "./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 5744 "util/configparser.c" + break; + + case 483: +#line 2575 "./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) @@ -5732,11 +5753,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5736 "util/configparser.c" +#line 5757 "util/configparser.c" break; - case 482: -#line 2570 "./util/configparser.y" + case 484: +#line 2585 "./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) @@ -5745,11 +5766,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5749 "util/configparser.c" +#line 5770 "util/configparser.c" break; - case 483: -#line 2580 "./util/configparser.y" + case 485: +#line 2595 "./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) @@ -5758,11 +5779,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5762 "util/configparser.c" +#line 5783 "util/configparser.c" break; - case 484: -#line 2590 "./util/configparser.y" + case 486: +#line 2605 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5771,11 +5792,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5775 "util/configparser.c" +#line 5796 "util/configparser.c" break; - case 485: -#line 2600 "./util/configparser.y" + case 487: +#line 2615 "./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 && @@ -5813,11 +5834,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5817 "util/configparser.c" +#line 5838 "util/configparser.c" break; - case 486: -#line 2639 "./util/configparser.y" + case 488: +#line 2654 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5826,33 +5847,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5830 "util/configparser.c" +#line 5851 "util/configparser.c" break; - case 487: -#line 2649 "./util/configparser.y" + case 489: +#line 2664 "./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 5841 "util/configparser.c" +#line 5862 "util/configparser.c" break; - case 488: -#line 2657 "./util/configparser.y" + case 490: +#line 2672 "./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 5852 "util/configparser.c" +#line 5873 "util/configparser.c" break; - case 489: -#line 2665 "./util/configparser.y" + case 491: +#line 2680 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5866,11 +5887,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5870 "util/configparser.c" +#line 5891 "util/configparser.c" break; - case 490: -#line 2680 "./util/configparser.y" + case 492: +#line 2695 "./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) @@ -5878,19 +5899,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5882 "util/configparser.c" +#line 5903 "util/configparser.c" break; - case 491: -#line 2689 "./util/configparser.y" + case 493: +#line 2704 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 5890 "util/configparser.c" +#line 5911 "util/configparser.c" break; - case 502: -#line 2700 "./util/configparser.y" + case 504: +#line 2715 "./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) @@ -5899,11 +5920,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5903 "util/configparser.c" +#line 5924 "util/configparser.c" break; - case 503: -#line 2710 "./util/configparser.y" + case 505: +#line 2725 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5911,79 +5932,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5915 "util/configparser.c" +#line 5936 "util/configparser.c" break; - case 504: -#line 2719 "./util/configparser.y" + case 506: +#line 2734 "./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 5925 "util/configparser.c" +#line 5946 "util/configparser.c" break; - case 505: -#line 2726 "./util/configparser.y" + case 507: +#line 2741 "./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 5935 "util/configparser.c" +#line 5956 "util/configparser.c" break; - case 506: -#line 2733 "./util/configparser.y" + case 508: +#line 2748 "./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 5945 "util/configparser.c" +#line 5966 "util/configparser.c" break; - case 507: -#line 2740 "./util/configparser.y" + case 509: +#line 2755 "./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 5955 "util/configparser.c" +#line 5976 "util/configparser.c" break; - case 508: -#line 2747 "./util/configparser.y" + case 510: +#line 2762 "./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 5965 "util/configparser.c" +#line 5986 "util/configparser.c" break; - case 509: -#line 2754 "./util/configparser.y" + case 511: +#line 2769 "./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 5975 "util/configparser.c" +#line 5996 "util/configparser.c" break; - case 510: -#line 2761 "./util/configparser.y" + case 512: +#line 2776 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 5983 "util/configparser.c" +#line 6004 "util/configparser.c" break; - case 532: -#line 2781 "./util/configparser.y" + case 534: +#line 2796 "./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) @@ -5991,11 +6012,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5995 "util/configparser.c" +#line 6016 "util/configparser.c" break; - case 533: -#line 2790 "./util/configparser.y" + case 535: +#line 2805 "./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) @@ -6004,31 +6025,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6008 "util/configparser.c" +#line 6029 "util/configparser.c" break; - case 534: -#line 2800 "./util/configparser.y" + case 536: +#line 2815 "./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 6018 "util/configparser.c" +#line 6039 "util/configparser.c" break; - case 535: -#line 2807 "./util/configparser.y" + case 537: +#line 2822 "./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 6028 "util/configparser.c" +#line 6049 "util/configparser.c" break; - case 536: -#line 2814 "./util/configparser.y" + case 538: +#line 2829 "./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) @@ -6036,51 +6057,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6040 "util/configparser.c" +#line 6061 "util/configparser.c" break; - case 537: -#line 2823 "./util/configparser.y" + case 539: +#line 2838 "./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 6050 "util/configparser.c" +#line 6071 "util/configparser.c" break; - case 538: -#line 2830 "./util/configparser.y" + case 540: +#line 2845 "./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 6060 "util/configparser.c" +#line 6081 "util/configparser.c" break; - case 539: -#line 2837 "./util/configparser.y" + case 541: +#line 2852 "./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 6070 "util/configparser.c" +#line 6091 "util/configparser.c" break; - case 540: -#line 2844 "./util/configparser.y" + case 542: +#line 2859 "./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 6080 "util/configparser.c" +#line 6101 "util/configparser.c" break; - case 541: -#line 2851 "./util/configparser.y" + case 543: +#line 2866 "./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) @@ -6088,11 +6109,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6092 "util/configparser.c" +#line 6113 "util/configparser.c" break; - case 542: -#line 2860 "./util/configparser.y" + case 544: +#line 2875 "./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) @@ -6100,31 +6121,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6104 "util/configparser.c" +#line 6125 "util/configparser.c" break; - case 543: -#line 2869 "./util/configparser.y" + case 545: +#line 2884 "./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 6114 "util/configparser.c" +#line 6135 "util/configparser.c" break; - case 544: -#line 2876 "./util/configparser.y" + case 546: +#line 2891 "./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 6124 "util/configparser.c" +#line 6145 "util/configparser.c" break; - case 545: -#line 2883 "./util/configparser.y" + case 547: +#line 2898 "./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) @@ -6133,11 +6154,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6137 "util/configparser.c" +#line 6158 "util/configparser.c" break; - case 546: -#line 2893 "./util/configparser.y" + case 548: +#line 2908 "./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) @@ -6146,11 +6167,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6150 "util/configparser.c" +#line 6171 "util/configparser.c" break; - case 547: -#line 2903 "./util/configparser.y" + case 549: +#line 2918 "./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) @@ -6159,11 +6180,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6163 "util/configparser.c" +#line 6184 "util/configparser.c" break; - case 548: -#line 2913 "./util/configparser.y" + case 550: +#line 2928 "./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) @@ -6172,11 +6193,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6176 "util/configparser.c" +#line 6197 "util/configparser.c" break; - case 549: -#line 2923 "./util/configparser.y" + case 551: +#line 2938 "./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) @@ -6185,11 +6206,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6189 "util/configparser.c" +#line 6210 "util/configparser.c" break; - case 550: -#line 2933 "./util/configparser.y" + case 552: +#line 2948 "./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) @@ -6198,47 +6219,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6202 "util/configparser.c" +#line 6223 "util/configparser.c" break; - case 551: -#line 2943 "./util/configparser.y" + case 553: +#line 2958 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6210 "util/configparser.c" +#line 6231 "util/configparser.c" break; - case 555: -#line 2952 "./util/configparser.y" + case 557: +#line 2967 "./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 6220 "util/configparser.c" +#line 6241 "util/configparser.c" break; - case 556: -#line 2958 "./util/configparser.y" + case 558: +#line 2973 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6228 "util/configparser.c" +#line 6249 "util/configparser.c" break; - case 560: -#line 2967 "./util/configparser.y" + case 562: +#line 2982 "./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 6238 "util/configparser.c" +#line 6259 "util/configparser.c" break; - case 561: -#line 2973 "./util/configparser.y" + case 563: +#line 2988 "./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) @@ -6247,21 +6268,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6251 "util/configparser.c" +#line 6272 "util/configparser.c" break; - case 562: -#line 2983 "./util/configparser.y" + case 564: +#line 2998 "./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 6261 "util/configparser.c" +#line 6282 "util/configparser.c" break; - case 563: -#line 2990 "./util/configparser.y" + case 565: +#line 3005 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6269,30 +6290,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6273 "util/configparser.c" +#line 6294 "util/configparser.c" break; - case 564: -#line 2999 "./util/configparser.y" + case 566: +#line 3014 "./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 6284 "util/configparser.c" +#line 6305 "util/configparser.c" break; - case 565: -#line 3007 "./util/configparser.y" + case 567: +#line 3022 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6292 "util/configparser.c" +#line 6313 "util/configparser.c" break; - case 578: -#line 3023 "./util/configparser.y" + case 580: +#line 3038 "./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) @@ -6300,11 +6321,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6304 "util/configparser.c" +#line 6325 "util/configparser.c" break; - case 579: -#line 3033 "./util/configparser.y" + case 581: +#line 3048 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6312,21 +6333,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6316 "util/configparser.c" +#line 6337 "util/configparser.c" break; - case 580: -#line 3042 "./util/configparser.y" + case 582: +#line 3057 "./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 6326 "util/configparser.c" +#line 6347 "util/configparser.c" break; - case 581: -#line 3049 "./util/configparser.y" + case 583: +#line 3064 "./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))) @@ -6334,21 +6355,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 6338 "util/configparser.c" +#line 6359 "util/configparser.c" break; - case 582: -#line 3058 "./util/configparser.y" + case 584: +#line 3073 "./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 6348 "util/configparser.c" +#line 6369 "util/configparser.c" break; - case 583: -#line 3065 "./util/configparser.y" + case 585: +#line 3080 "./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))) @@ -6356,22 +6377,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 6360 "util/configparser.c" +#line 6381 "util/configparser.c" break; - case 584: -#line 3074 "./util/configparser.y" + case 586: +#line 3089 "./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 6371 "util/configparser.c" +#line 6392 "util/configparser.c" break; - case 585: -#line 3082 "./util/configparser.y" + case 587: +#line 3097 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6383,22 +6404,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6387 "util/configparser.c" +#line 6408 "util/configparser.c" break; - case 586: -#line 3095 "./util/configparser.y" + case 588: +#line 3110 "./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 6398 "util/configparser.c" +#line 6419 "util/configparser.c" break; - case 587: -#line 3103 "./util/configparser.y" + case 589: +#line 3118 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6410,19 +6431,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6414 "util/configparser.c" +#line 6435 "util/configparser.c" break; - case 588: -#line 3116 "./util/configparser.y" + case 590: +#line 3131 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6422 "util/configparser.c" +#line 6443 "util/configparser.c" break; - case 597: -#line 3127 "./util/configparser.y" + case 599: +#line 3142 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6433,11 +6454,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6437 "util/configparser.c" +#line 6458 "util/configparser.c" break; - case 598: -#line 3139 "./util/configparser.y" + case 600: +#line 3154 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6448,11 +6469,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6452 "util/configparser.c" +#line 6473 "util/configparser.c" break; - case 599: -#line 3151 "./util/configparser.y" + case 601: +#line 3166 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6463,11 +6484,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6467 "util/configparser.c" +#line 6488 "util/configparser.c" break; - case 600: -#line 3163 "./util/configparser.y" + case 602: +#line 3178 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6481,11 +6502,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6485 "util/configparser.c" +#line 6506 "util/configparser.c" break; - case 601: -#line 3178 "./util/configparser.y" + case 603: +#line 3193 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6497,11 +6518,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6501 "util/configparser.c" +#line 6522 "util/configparser.c" break; - case 602: -#line 3191 "./util/configparser.y" + case 604: +#line 3206 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6513,11 +6534,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6517 "util/configparser.c" +#line 6538 "util/configparser.c" break; - case 603: -#line 3204 "./util/configparser.y" + case 605: +#line 3219 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6527,19 +6548,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6531 "util/configparser.c" +#line 6552 "util/configparser.c" break; - case 604: -#line 3215 "./util/configparser.y" + case 606: +#line 3230 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6539 "util/configparser.c" +#line 6560 "util/configparser.c" break; - case 609: -#line 3224 "./util/configparser.y" + case 611: +#line 3239 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6553,11 +6574,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6557 "util/configparser.c" +#line 6578 "util/configparser.c" break; - case 610: -#line 3239 "./util/configparser.y" + case 612: +#line 3254 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6571,11 +6592,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6575 "util/configparser.c" +#line 6596 "util/configparser.c" break; -#line 6579 "util/configparser.c" +#line 6600 "util/configparser.c" default: break; } @@ -6794,7 +6815,7 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[+*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -6807,7 +6828,7 @@ yyreturn: #endif return yyresult; } -#line 3253 "./util/configparser.y" +#line 3268 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 2a86ce512..2083891f9 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5. */ +/* A Bison parser, made by GNU Bison 3.5.1. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -337,7 +337,8 @@ extern int yydebug; VAR_RPZ_LOG = 543, VAR_RPZ_LOG_NAME = 544, VAR_DYNLIB = 545, - VAR_DYNLIB_FILE = 546 + VAR_DYNLIB_FILE = 546, + VAR_EDNS_CLIENT_TAG = 547 }; #endif /* Tokens. */ @@ -630,6 +631,7 @@ extern int yydebug; #define VAR_RPZ_LOG_NAME 544 #define VAR_DYNLIB 545 #define VAR_DYNLIB_FILE 546 +#define VAR_EDNS_CLIENT_TAG 547 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -639,7 +641,7 @@ union YYSTYPE char* str; -#line 643 "util/configparser.h" +#line 645 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index fe600a999..1d0e86580 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -175,7 +175,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 +%token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_TAG %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -285,7 +285,7 @@ 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_tls_use_sni | server_edns_client_tag ; stubstart: VAR_STUB_ZONE { @@ -2403,6 +2403,21 @@ server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG #endif } ; +server_edns_client_tag: VAR_EDNS_CLIENT_TAG STRING_ARG STRING_ARG + { + int tag_data; + OUTYY(("P(server_edns_client_tag:%s %s)\n", $2, $3)); + tag_data = atoi($3); + if(tag_data > 65535 || tag_data < 0 || + (tag_data == 0 && (strlen($3) != 1 || $3[0] != '0'))) + yyerror("edns-client-tag data invalid, needs to be a " + "number from 0 to 65535"); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_tags, $2, $3)) + fatal_exit("out of memory adding " + "edns-client-tag"); + } + ; stub_name: VAR_NAME STRING_ARG { OUTYY(("P(name:%s)\n", $2)); diff --git a/util/edns.c b/util/edns.c index 0ab00cf7c..341b7f90a 100644 --- a/util/edns.c +++ b/util/edns.c @@ -75,6 +75,7 @@ int edns_tags_apply_cfg(struct edns_tags* edns_tags, /* TODO walk over config, create and insert node. */ + addr_tree_init_parents(&edns_tags->client_tags); return 1; } From 2fe398f4bf04dbb66b4224c72e61d916a3948990 Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Fri, 24 Jul 2020 16:00:13 +0200 Subject: [PATCH 3/9] EDNS client tags - insert configured tags into tree --- services/outside_network.c | 2 +- util/edns.c | 44 +++++++++++++++++++++++++++++++++++--- util/edns.h | 2 +- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/services/outside_network.c b/services/outside_network.c index b7ac5ef60..67eca05ed 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -2118,7 +2118,7 @@ outnet_serviced_query(struct outside_network* outnet, qstate, qstate->region)) return NULL; - if((client_tag_addr = edns_tag_addr_lookup(env->edns_tags->client_tags, + if((client_tag_addr = edns_tag_addr_lookup(&env->edns_tags->client_tags, addr, addrlen))) { uint16_t client_tag = htons(client_tag_addr->tag_data); edns_opt_list_append(&qstate->edns_opts_back_out, diff --git a/util/edns.c b/util/edns.c index 341b7f90a..db33212c0 100644 --- a/util/edns.c +++ b/util/edns.c @@ -43,6 +43,7 @@ #include "util/edns.h" #include "util/config_file.h" #include "util/netevent.h" +#include "util/net_help.h" #include "util/regional.h" #include "util/data/msgparse.h" #include "util/data/msgreply.h" @@ -67,23 +68,60 @@ void edns_tags_delete(struct edns_tags* edns_tags) free(edns_tags); } +static int +edns_tags_client_insert(struct edns_tags* edns_tags, + struct sockaddr_storage* addr, socklen_t addrlen, int net, + uint16_t tag_data) +{ + struct edns_tag_addr* eta = regional_alloc_zero(edns_tags->region, + sizeof(struct edns_tag_addr)); + if(!eta) + return 0; + eta->tag_data = tag_data; + if(!addr_tree_insert(&edns_tags->client_tags, &eta->node, addr, addrlen, + net)) { + verbose(VERB_QUERY, "duplicate EDNS client tag ignored."); + } + return 1; +} + int edns_tags_apply_cfg(struct edns_tags* edns_tags, struct config_file* config) { + struct config_str2list* c; regional_free_all(edns_tags->region); addr_tree_init(&edns_tags->client_tags); - /* TODO walk over config, create and insert node. */ + for(c=config->edns_client_tags; c; c=c->next) { + struct sockaddr_storage addr; + socklen_t addrlen; + int net; + uint16_t tag_data; + log_assert(c->str && c->str2); + + if(!netblockstrtoaddr(c->str, UNBOUND_DNS_PORT, &addr, &addrlen, + &net)) { + log_err("cannot parse EDNS client tag IP netblock: %s", + c->str); + return 0; + } + tag_data = atoi(c->str2); /* validated in config parser */ + if(!edns_tags_client_insert(edns_tags, &addr, addrlen, net, + tag_data)) { + log_err("out of memory while adding EDNS tags"); + return 0; + } + } addr_tree_init_parents(&edns_tags->client_tags); return 1; } struct edns_tag_addr* -edns_tag_addr_lookup(rbtree_type tree, struct sockaddr_storage* addr, +edns_tag_addr_lookup(rbtree_type* tree, struct sockaddr_storage* addr, socklen_t addrlen) { - return (struct edns_tag_addr*)addr_tree_lookup(&tree, addr, addrlen); + return (struct edns_tag_addr*)addr_tree_lookup(tree, addr, addrlen); } static int edns_keepalive(struct edns_data* edns_out, struct edns_data* edns_in, diff --git a/util/edns.h b/util/edns.h index 310ba1cd2..ee0e3de54 100644 --- a/util/edns.h +++ b/util/edns.h @@ -99,7 +99,7 @@ int edns_tags_apply_cfg(struct edns_tags* edns_tags, * @return: matching tree node, NULL otherwise */ struct edns_tag_addr* -edns_tag_addr_lookup(rbtree_type tree, struct sockaddr_storage* addr, +edns_tag_addr_lookup(rbtree_type* tree, struct sockaddr_storage* addr, socklen_t addrlen); /** From fa892b2456020b41a7e077cdd4ea5b3e8f2d201d Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Mon, 27 Jul 2020 15:54:43 +0200 Subject: [PATCH 4/9] - Add EDNS client tag test --- testcode/fake_event.c | 14 +++- testdata/edns_client_tag.rpl | 151 +++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 testdata/edns_client_tag.rpl diff --git a/testcode/fake_event.c b/testcode/fake_event.c index d89eedce8..59df27f57 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -52,6 +52,7 @@ #include "util/data/msgreply.h" #include "util/data/msgencode.h" #include "util/data/dname.h" +#include "util/edns.h" #include "util/config_file.h" #include "services/listen_dnsport.h" #include "services/outside_network.h" @@ -1180,7 +1181,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, socklen_t addrlen, uint8_t* zone, size_t zonelen, struct module_qstate* qstate, comm_point_callback_type* callback, void* callback_arg, sldns_buffer* ATTR_UNUSED(buff), - struct module_env* ATTR_UNUSED(env)) + struct module_env* env) { struct replay_runtime* runtime = (struct replay_runtime*)outnet->base; struct fake_pending* pend = (struct fake_pending*)calloc(1, @@ -1209,6 +1210,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, sldns_buffer_flip(pend->buffer); if(1) { struct edns_data edns; + struct edns_tag_addr* client_tag_addr; if(!inplace_cb_query_call(env, qinfo, flags, addr, addrlen, zone, zonelen, qstate, qstate->region)) { free(pend); @@ -1220,9 +1222,17 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, edns.edns_version = EDNS_ADVERTISED_VERSION; edns.udp_size = EDNS_ADVERTISED_SIZE; edns.bits = 0; - edns.opt_list = qstate->edns_opts_back_out; if(dnssec) edns.bits = EDNS_DO; + if((client_tag_addr = edns_tag_addr_lookup( + &env->edns_tags->client_tags, + 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, + (uint8_t*)&client_tag, qstate->region); + } + edns.opt_list = qstate->edns_opts_back_out; attach_edns_record(pend->buffer, &edns); } memcpy(&pend->addr, addr, addrlen); diff --git a/testdata/edns_client_tag.rpl b/testdata/edns_client_tag.rpl new file mode 100644 index 000000000..767652c26 --- /dev/null +++ b/testdata/edns_client_tag.rpl @@ -0,0 +1,151 @@ +; config options +server: + edns-client-tag: 10.0.0.0/24 1234 + edns-client-tag: 10.0.0.10/32 5678 + +stub-zone: + name: "tag1234." + stub-addr: 10.0.0.1 + +stub-zone: + name: "tag5678." + stub-addr: 10.0.0.10 + +stub-zone: + name: "notag." + stub-addr: 10.10.0.1 + +CONFIG_END + +SCENARIO_BEGIN Test EDNS client tag option + +RANGE_BEGIN 0 1000 + ADDRESS 10.0.0.1 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +tag1234. IN A +SECTION ANSWER +tag1234. IN A 10.20.30.40 +SECTION ADDITIONAL +ENTRY_END +RANGE_END + +RANGE_BEGIN 0 1000 + ADDRESS 10.0.0.10 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +tag5678. IN A +SECTION ANSWER +tag5678. IN A 10.20.30.40 +SECTION ADDITIONAL +ENTRY_END +RANGE_END + +RANGE_BEGIN 0 1000 + ADDRESS 10.10.0.1 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +notag. IN A +SECTION ANSWER +notag. IN A 10.20.30.40 +SECTION ADDITIONAL +ENTRY_END +RANGE_END + +STEP 10 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +tag1234. IN A +ENTRY_END + +STEP 20 CHECK_OUT_QUERY +ENTRY_BEGIN +MATCH qname qtype opcode ednsdata +SECTION QUESTION +tag1234. IN A +SECTION ADDITIONAL + HEX_EDNSDATA_BEGIN + 00 10 ; Opcode 16 + 00 02 ; Length 2 + 04 d2 ; 1234 + HEX_EDNSDATA_END +ENTRY_END + +STEP 30 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +tag1234. IN A +SECTION ANSWER +tag1234. IN A 10.20.30.40 +ENTRY_END + +STEP 110 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +tag5678. IN A +ENTRY_END + +STEP 120 CHECK_OUT_QUERY +ENTRY_BEGIN +MATCH qname qtype opcode ednsdata +SECTION QUESTION +tag5678. IN A +SECTION ADDITIONAL + HEX_EDNSDATA_BEGIN + 00 10 ; Opcode 16 + 00 02 ; Length 2 + 16 2e ; 5678 + HEX_EDNSDATA_END +ENTRY_END + +STEP 130 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +tag5678. IN A +SECTION ANSWER +tag5678. IN A 10.20.30.40 +ENTRY_END + +STEP 210 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +notag. IN A +ENTRY_END + +STEP 220 CHECK_OUT_QUERY +ENTRY_BEGIN +MATCH qname qtype opcode ednsdata +SECTION QUESTION +notag. IN A +SECTION ADDITIONAL + HEX_EDNSDATA_BEGIN + HEX_EDNSDATA_END +ENTRY_END + +STEP 230 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +notag. IN A +SECTION ANSWER +notag. IN A 10.20.30.40 +ENTRY_END + +SCENARIO_END From 9bc30967d29dd13441eca2a003048ee7975181f7 Mon Sep 17 00:00:00 2001 From: Felipe Gasper Date: Mon, 3 Aug 2020 14:37:00 -0400 Subject: [PATCH 5/9] Make tvOS & watchOS checks verify truthiness as well as definedness. --- daemon/unbound.c | 2 +- libunbound/libworker.c | 2 +- smallapp/unbound-control.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/daemon/unbound.c b/daemon/unbound.c index 3f96603c4..cd0fd69f2 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -92,7 +92,7 @@ #include #endif -#if defined(TARGET_OS_TV) || defined(TARGET_OS_WATCH) +#if (defined(TARGET_OS_TV) && TARGET_OS_TV) || (defined(TARGET_OS_WATCH) && TARGET_OS_WATCH) #undef HAVE_FORK #endif diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 44b8d7905..bd42462e1 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -78,7 +78,7 @@ #include #endif -#if defined(TARGET_OS_TV) || defined(TARGET_OS_WATCH) +#if (defined(TARGET_OS_TV) && TARGET_OS_TV) || (defined(TARGET_OS_WATCH) && TARGET_OS_WATCH) #undef HAVE_FORK #endif diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c index c2b42e951..4662c7cb6 100644 --- a/smallapp/unbound-control.c +++ b/smallapp/unbound-control.c @@ -886,7 +886,7 @@ int main(int argc, char* argv[]) if(argc == 0) usage(); if(argc >= 1 && strcmp(argv[0], "start")==0) { -#if defined(TARGET_OS_TV) || defined(TARGET_OS_WATCH) +#if (defined(TARGET_OS_TV) && TARGET_OS_TV) || (defined(TARGET_OS_WATCH) && TARGET_OS_WATCH) fatal_exit("could not exec unbound: %s", strerror(ENOSYS)); #else From 764a0dc765c96310c611bde80c14893b0814163d Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 Aug 2020 12:49:43 +0200 Subject: [PATCH 6/9] - Improve error log message when inserting rpz RR. --- doc/Changelog | 3 +++ services/rpz.c | 14 ++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 9638d242f..f673908c3 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +4 August 2020: George + - Improve error log message when inserting rpz RR. + 4 August 2020: Wouter - Fix mini_event.h on OpenBSD cannot find fd_set. diff --git a/services/rpz.c b/services/rpz.c index 105f238d0..ba5dd186d 100644 --- a/services/rpz.c +++ b/services/rpz.c @@ -597,8 +597,18 @@ rpz_insert_rr(struct rpz* r, uint8_t* azname, size_t aznamelen, uint8_t* dname, uint8_t* policydname; if(!dname_subdomain_c(dname, azname)) { - log_err("RPZ: name of record to insert into RPZ is not a " - "subdomain of the configured name of the RPZ zone"); + char* dname_str = sldns_wire2str_dname(dname, dnamelen); + char* azname_str = sldns_wire2str_dname(azname, aznamelen); + if(dname_str && azname_str) { + log_err("RPZ: name of record (%s) to insert into RPZ is not a " + "subdomain of the configured name of the RPZ zone (%s)", + dname_str, azname_str); + } else { + log_err("RPZ: name of record to insert into RPZ is not a " + "subdomain of the configured name of the RPZ zone"); + } + free(dname_str); + free(azname_str); return 0; } From 70c8d09edd5f7009988160defe901158eb1cb463 Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Wed, 5 Aug 2020 15:56:45 +0200 Subject: [PATCH 7/9] - Process EDNS client tag review feedback --- util/edns.h | 2 +- util/module.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/util/edns.h b/util/edns.h index ee0e3de54..c92b1ba5e 100644 --- a/util/edns.h +++ b/util/edns.h @@ -77,7 +77,7 @@ struct edns_tag_addr { */ struct edns_tags* edns_tags_create(void); -/** Delete ENDS tags structure +/** Delete EDNS tags structure * @param edns_tags: struct to delete */ void edns_tags_delete(struct edns_tags* edns_tags); diff --git a/util/module.h b/util/module.h index 1d696ed0a..1eed21300 100644 --- a/util/module.h +++ b/util/module.h @@ -520,6 +520,7 @@ struct module_env { struct edns_known_option* edns_known_options; /* Number of known edns options */ size_t edns_known_options_num; + /** EDNS client tag information */ struct edns_tags* edns_tags; /* Make every mesh state unique, do not aggregate mesh states. */ From ce0b39007de4c4cf8203b7bfcc9b48541bb22d26 Mon Sep 17 00:00:00 2001 From: Ralph Dolmans Date: Wed, 5 Aug 2020 16:10:10 +0200 Subject: [PATCH 8/9] - Changelog entry for EDNS client tag functionality --- doc/Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 4dd1f15e6..9cd6df49f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +5 August 2020: Ralph + - Merge PR #272: Add EDNS client tag functionality. + 4 August 2020: George - Improve error log message when inserting rpz RR. - Merge PR #280, Make tvOS & watchOS checks verify truthiness as well as From 50091d49eae537f6fd328e852bc5818193633164 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 5 Aug 2020 16:33:48 +0200 Subject: [PATCH 9/9] - contrib/aaaa-filter-iterator.patch file renewed diff content to apply cleanly to the current coderepo for the current code version. --- contrib/aaaa-filter-iterator.patch | 164 ++++++++++++++--------------- doc/Changelog | 4 + 2 files changed, 86 insertions(+), 82 deletions(-) diff --git a/contrib/aaaa-filter-iterator.patch b/contrib/aaaa-filter-iterator.patch index 9881bde89..f51de2a40 100644 --- a/contrib/aaaa-filter-iterator.patch +++ b/contrib/aaaa-filter-iterator.patch @@ -1,10 +1,10 @@ -Index: trunk/doc/unbound.conf.5.in -=================================================================== ---- trunk/doc/unbound.conf.5.in (revision 4357) -+++ trunk/doc/unbound.conf.5.in (working copy) -@@ -701,6 +701,13 @@ +diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in +index f426ac5f..147fbfa9 100644 +--- a/doc/unbound.conf.5.in ++++ b/doc/unbound.conf.5.in +@@ -872,6 +872,13 @@ potentially broken nameservers. A lot of domains will not be resolvable when this option in enabled. Only use if you know what you are doing. - This option only has effect when qname-minimisation is enabled. Default is off. + This option only has effect when qname-minimisation is enabled. Default is no. .TP +.B aaaa\-filter: \fI +Activate behavior similar to BIND's AAAA-filter. @@ -16,14 +16,15 @@ Index: trunk/doc/unbound.conf.5.in .B aggressive\-nsec: \fI Aggressive NSEC uses the DNSSEC NSEC chain to synthesize NXDOMAIN and other denials, using information from previous NXDOMAINs answers. -Index: trunk/iterator/iter_scrub.c -=================================================================== ---- trunk/iterator/iter_scrub.c (revision 4357) -+++ trunk/iterator/iter_scrub.c (working copy) -@@ -617,6 +617,32 @@ +diff --git a/iterator/iter_scrub.c b/iterator/iter_scrub.c +index aae934dd..55c55de0 100644 +--- a/iterator/iter_scrub.c ++++ b/iterator/iter_scrub.c +@@ -667,6 +667,32 @@ static int sanitize_nsec_is_overreach(struct rrset_parse* rrset, + return 0; } - /** ++/** + * ASN: Lookup A records from rrset cache. + * @param qinfo: the question originally asked. + * @param env: module environment with config and cache. @@ -49,11 +50,10 @@ Index: trunk/iterator/iter_scrub.c + return 0; +} + -+/** + /** * Given a response event, remove suspect RRsets from the response. * "Suspect" rrsets are potentially poison. Note that this routine expects - * the response to be in a "normalized" state -- that is, all "irrelevant" -@@ -635,6 +661,7 @@ +@@ -686,6 +712,7 @@ scrub_sanitize(sldns_buffer* pkt, struct msg_parse* msg, struct query_info* qinfo, uint8_t* zonename, struct module_env* env, struct iter_env* ie) { @@ -61,7 +61,7 @@ Index: trunk/iterator/iter_scrub.c int del_addi = 0; /* if additional-holding rrsets are deleted, we do not trust the normalized additional-A-AAAA any more */ struct rrset_parse* rrset, *prev; -@@ -670,6 +697,13 @@ +@@ -721,6 +748,13 @@ scrub_sanitize(sldns_buffer* pkt, struct msg_parse* msg, rrset = rrset->rrset_all_next; } @@ -75,11 +75,10 @@ Index: trunk/iterator/iter_scrub.c /* At this point, we brutally remove ALL rrsets that aren't * children of the originating zone. The idea here is that, * as far as we know, the server that we contacted is ONLY -@@ -680,6 +714,24 @@ - prev = NULL; +@@ -732,6 +766,24 @@ scrub_sanitize(sldns_buffer* pkt, struct msg_parse* msg, rrset = msg->rrset_first; while(rrset) { -+ + + /* ASN: For AAAA records only... */ + if((ie->aaaa_filter) && (rrset->type == LDNS_RR_TYPE_AAAA)) { + /* ASN: If this is not a AAAA query, then remove AAAA @@ -97,14 +96,15 @@ Index: trunk/iterator/iter_scrub.c + LDNS_RR_TYPE_AAAA, qinfo->qclass); + } + /* ASN: End of added code */ - ++ /* remove private addresses */ if( (rrset->type == LDNS_RR_TYPE_A || -Index: trunk/iterator/iter_utils.c -=================================================================== ---- trunk/iterator/iter_utils.c (revision 4357) -+++ trunk/iterator/iter_utils.c (working copy) -@@ -175,6 +175,7 @@ + rrset->type == LDNS_RR_TYPE_AAAA)) { +diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c +index 7bc67da6..e10f547a 100644 +--- a/iterator/iter_utils.c ++++ b/iterator/iter_utils.c +@@ -175,6 +175,7 @@ iter_apply_cfg(struct iter_env* iter_env, struct config_file* cfg) } iter_env->supports_ipv6 = cfg->do_ip6; iter_env->supports_ipv4 = cfg->do_ip4; @@ -112,11 +112,11 @@ Index: trunk/iterator/iter_utils.c return 1; } -Index: trunk/iterator/iterator.c -=================================================================== ---- trunk/iterator/iterator.c (revision 4357) -+++ trunk/iterator/iterator.c (working copy) -@@ -1847,6 +1847,53 @@ +diff --git a/iterator/iterator.c b/iterator/iterator.c +index 23b07ea9..ca29b48c 100644 +--- a/iterator/iterator.c ++++ b/iterator/iterator.c +@@ -2127,6 +2127,53 @@ processDSNSFind(struct module_qstate* qstate, struct iter_qstate* iq, int id) return 0; } @@ -170,7 +170,7 @@ Index: trunk/iterator/iterator.c /** * This is the request event state where the request will be sent to one of -@@ -1894,6 +1941,13 @@ +@@ -2186,6 +2233,13 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq, return error_response(qstate, id, LDNS_RCODE_SERVFAIL); } @@ -184,7 +184,7 @@ Index: trunk/iterator/iterator.c /* Make sure we have a delegation point, otherwise priming failed * or another failure occurred */ if(!iq->dp) { -@@ -3095,6 +3149,61 @@ +@@ -3574,6 +3628,61 @@ processFinished(struct module_qstate* qstate, struct iter_qstate* iq, return 0; } @@ -246,7 +246,7 @@ Index: trunk/iterator/iterator.c /* * Return priming query results to interested super querystates. * -@@ -3114,6 +3223,9 @@ +@@ -3593,6 +3702,9 @@ iter_inform_super(struct module_qstate* qstate, int id, else if(super->qinfo.qtype == LDNS_RR_TYPE_DS && ((struct iter_qstate*) super->minfo[id])->state == DSNS_FIND_STATE) processDSNSResponse(qstate, id, super); @@ -256,7 +256,7 @@ Index: trunk/iterator/iterator.c else if(qstate->return_rcode != LDNS_RCODE_NOERROR) error_supers(qstate, id, super); else if(qstate->is_priming) -@@ -3151,6 +3263,9 @@ +@@ -3630,6 +3742,9 @@ iter_handle(struct module_qstate* qstate, struct iter_qstate* iq, case INIT_REQUEST_3_STATE: cont = processInitRequest3(qstate, iq, id); break; @@ -266,7 +266,7 @@ Index: trunk/iterator/iterator.c case QUERYTARGETS_STATE: cont = processQueryTargets(qstate, iq, ie, id); break; -@@ -3460,6 +3575,8 @@ +@@ -3961,6 +4076,8 @@ iter_state_to_string(enum iter_state state) return "INIT REQUEST STATE (stage 2)"; case INIT_REQUEST_3_STATE: return "INIT REQUEST STATE (stage 3)"; @@ -275,7 +275,7 @@ Index: trunk/iterator/iterator.c case QUERYTARGETS_STATE : return "QUERY TARGETS STATE"; case PRIME_RESP_STATE : -@@ -3484,6 +3601,7 @@ +@@ -3985,6 +4102,7 @@ iter_state_is_responsestate(enum iter_state s) case INIT_REQUEST_STATE : case INIT_REQUEST_2_STATE : case INIT_REQUEST_3_STATE : @@ -283,11 +283,11 @@ Index: trunk/iterator/iterator.c case QUERYTARGETS_STATE : case COLLECT_CLASS_STATE : return 0; -Index: trunk/iterator/iterator.h -=================================================================== ---- trunk/iterator/iterator.h (revision 4357) -+++ trunk/iterator/iterator.h (working copy) -@@ -130,6 +130,9 @@ +diff --git a/iterator/iterator.h b/iterator/iterator.h +index 342ac207..731948d1 100644 +--- a/iterator/iterator.h ++++ b/iterator/iterator.h +@@ -135,6 +135,9 @@ struct iter_env { */ int* target_fetch_policy; @@ -297,10 +297,11 @@ Index: trunk/iterator/iterator.h /** lock on ratelimit counter */ lock_basic_type queries_ratelimit_lock; /** number of queries that have been ratelimited */ -@@ -182,6 +185,14 @@ +@@ -186,6 +189,14 @@ enum iter_state { + */ INIT_REQUEST_3_STATE, - /** ++ /** + * This state is responsible for intercepting AAAA queries, + * and launch a A subquery on the same target, to populate the + * cache with A records, so the AAAA filter scrubbing logic can @@ -308,29 +309,28 @@ Index: trunk/iterator/iterator.h + */ + ASN_FETCH_A_FOR_AAAA_STATE, + -+ /** + /** * Each time a delegation point changes for a given query or a * query times out and/or wakes up, this state is (re)visited. - * This state is responsible for iterating through a list of -@@ -364,6 +375,13 @@ - * be used when creating the state. A higher one will be attempted. +@@ -375,6 +386,13 @@ struct iter_qstate { */ int refetch_glue; -+ + + /** + * ASN: This is a flag that, if true, means that this query is + * for fetching A records to populate cache and determine if we must + * return AAAA records or not. + */ + int fetch_a_for_aaaa; - ++ /** list of pending queries to authoritative servers. */ struct outbound_list outlist; -Index: trunk/pythonmod/interface.i -=================================================================== ---- trunk/pythonmod/interface.i (revision 4357) -+++ trunk/pythonmod/interface.i (working copy) -@@ -851,6 +851,7 @@ + +diff --git a/pythonmod/interface.i b/pythonmod/interface.i +index f08b575d..47f1bb2e 100644 +--- a/pythonmod/interface.i ++++ b/pythonmod/interface.i +@@ -975,6 +975,7 @@ struct config_file { int harden_dnssec_stripped; int harden_referral_path; int use_caps_bits_for_id; @@ -338,11 +338,11 @@ Index: trunk/pythonmod/interface.i struct config_strlist* private_address; struct config_strlist* private_domain; size_t unwanted_threshold; -Index: trunk/util/config_file.c -=================================================================== ---- trunk/util/config_file.c (revision 4357) -+++ trunk/util/config_file.c (working copy) -@@ -195,6 +195,7 @@ +diff --git a/util/config_file.c b/util/config_file.c +index 0ab8614a..729fb147 100644 +--- a/util/config_file.c ++++ b/util/config_file.c +@@ -218,6 +218,7 @@ config_create(void) cfg->harden_referral_path = 0; cfg->harden_algo_downgrade = 0; cfg->use_caps_bits_for_id = 0; @@ -350,11 +350,11 @@ Index: trunk/util/config_file.c cfg->caps_whitelist = NULL; cfg->private_address = NULL; cfg->private_domain = NULL; -Index: trunk/util/config_file.h -=================================================================== ---- trunk/util/config_file.h (revision 4357) -+++ trunk/util/config_file.h (working copy) -@@ -209,6 +209,8 @@ +diff --git a/util/config_file.h b/util/config_file.h +index e61257a3..dabaa7bb 100644 +--- a/util/config_file.h ++++ b/util/config_file.h +@@ -260,6 +260,8 @@ struct config_file { int harden_algo_downgrade; /** use 0x20 bits in query as random ID bits */ int use_caps_bits_for_id; @@ -363,11 +363,11 @@ Index: trunk/util/config_file.h /** 0x20 whitelist, domains that do not use capsforid */ struct config_strlist* caps_whitelist; /** strip away these private addrs from answers, no DNS Rebinding */ -Index: trunk/util/configlexer.lex -=================================================================== ---- trunk/util/configlexer.lex (revision 4357) -+++ trunk/util/configlexer.lex (working copy) -@@ -279,6 +279,7 @@ +diff --git a/util/configlexer.lex b/util/configlexer.lex +index 79a0edca..4eaec678 100644 +--- a/util/configlexer.lex ++++ b/util/configlexer.lex +@@ -304,6 +304,7 @@ harden-algo-downgrade{COLON} { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } use-caps-for-id{COLON} { YDVAR(1, VAR_USE_CAPS_FOR_ID) } caps-whitelist{COLON} { YDVAR(1, VAR_CAPS_WHITELIST) } unwanted-reply-threshold{COLON} { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } @@ -375,11 +375,11 @@ Index: trunk/util/configlexer.lex private-address{COLON} { YDVAR(1, VAR_PRIVATE_ADDRESS) } private-domain{COLON} { YDVAR(1, VAR_PRIVATE_DOMAIN) } prefetch-key{COLON} { YDVAR(1, VAR_PREFETCH_KEY) } -Index: trunk/util/configparser.y -=================================================================== ---- trunk/util/configparser.y (revision 4357) -+++ trunk/util/configparser.y (working copy) -@@ -95,6 +95,7 @@ +diff --git a/util/configparser.y b/util/configparser.y +index 1d0e8658..f284dd43 100644 +--- a/util/configparser.y ++++ b/util/configparser.y +@@ -97,6 +97,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_STATISTICS_CUMULATIVE VAR_OUTGOING_PORT_PERMIT %token VAR_OUTGOING_PORT_AVOID VAR_DLV_ANCHOR_FILE VAR_DLV_ANCHOR %token VAR_NEG_CACHE_SIZE VAR_HARDEN_REFERRAL_PATH VAR_PRIVATE_ADDRESS @@ -387,7 +387,7 @@ Index: trunk/util/configparser.y %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE -@@ -203,6 +204,7 @@ +@@ -233,6 +234,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_dlv_anchor_file | server_dlv_anchor | server_neg_cache_size | server_harden_referral_path | server_private_address | server_private_domain | server_extended_statistics | @@ -395,12 +395,10 @@ Index: trunk/util/configparser.y server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | server_domain_insecure | server_val_sig_skew_min | -@@ -1183,6 +1185,15 @@ - OUTYY(("P(server_caps_whitelist:%s)\n", $2)); - if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, $2)) +@@ -1563,6 +1565,15 @@ server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG yyerror("out of memory"); -+ } -+ ; + } + ; +server_aaaa_filter: VAR_AAAA_FILTER STRING_ARG + { + OUTYY(("P(server_aaaa_filter:%s)\n", $2)); @@ -408,6 +406,8 @@ Index: trunk/util/configparser.y + yyerror("expected yes or no."); + else cfg_parser->cfg->aaaa_filter = (strcmp($2, "yes")==0); + free($2); - } - ; ++ } ++ ; server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG + { + OUTYY(("P(server_private_address:%s)\n", $2)); diff --git a/doc/Changelog b/doc/Changelog index 9cd6df49f..763bf51a6 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +5 August 2020: Wouter + - contrib/aaaa-filter-iterator.patch file renewed diff content to + apply cleanly to the current coderepo for the current code version. + 5 August 2020: Ralph - Merge PR #272: Add EDNS client tag functionality.