aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/config_file.c98
-rw-r--r--util/config_file.h22
-rw-r--r--util/configlexer.c4558
-rw-r--r--util/configlexer.lex8
-rw-r--r--util/configparser.c2340
-rw-r--r--util/configparser.h150
-rw-r--r--util/configparser.y113
-rw-r--r--util/data/msgencode.c12
-rw-r--r--util/data/msgparse.c2
-rw-r--r--util/fptr_wlist.c34
-rw-r--r--util/fptr_wlist.h9
-rw-r--r--util/iana_ports.inc5
-rw-r--r--util/log.c8
-rw-r--r--util/module.h31
-rw-r--r--util/netevent.c84
-rw-r--r--util/netevent.h10
-rw-r--r--util/shm_side/shm_main.c79
-rw-r--r--util/shm_side/shm_main.h26
-rw-r--r--util/timehist.c8
-rw-r--r--util/timehist.h4
20 files changed, 4100 insertions, 3501 deletions
diff --git a/util/config_file.c b/util/config_file.c
index af176929dc35..d0fdb2daaa25 100644
--- a/util/config_file.c
+++ b/util/config_file.c
@@ -178,6 +178,7 @@ config_create(void)
cfg->forwards = NULL;
#ifdef CLIENT_SUBNET
cfg->client_subnet = NULL;
+ cfg->client_subnet_zone = NULL;
cfg->client_subnet_opcode = LDNS_EDNS_CLIENT_SUBNET;
cfg->client_subnet_always_forward = 0;
cfg->max_client_subnet_ipv4 = 24;
@@ -206,6 +207,7 @@ config_create(void)
cfg->trust_anchor_file_list = NULL;
cfg->trust_anchor_list = NULL;
cfg->trusted_keys_file_list = NULL;
+ cfg->trust_anchor_signaling = 0;
cfg->dlv_anchor_file = NULL;
cfg->dlv_anchor_list = NULL;
cfg->domain_insecure = NULL;
@@ -227,6 +229,7 @@ config_create(void)
cfg->neg_cache_size = 1 * 1024 * 1024;
cfg->local_zones = NULL;
cfg->local_zones_nodefault = NULL;
+ cfg->local_zones_disable_default = 0;
cfg->local_data = NULL;
cfg->local_zone_overrides = NULL;
cfg->unblock_lan_zones = 0;
@@ -279,6 +282,14 @@ config_create(void)
cfg->dnscrypt_provider = NULL;
cfg->dnscrypt_provider_cert = NULL;
cfg->dnscrypt_secret_key = NULL;
+#ifdef USE_IPSECMOD
+ cfg->ipsecmod_enabled = 1;
+ cfg->ipsecmod_ignore_bogus = 0;
+ cfg->ipsecmod_hook = NULL;
+ cfg->ipsecmod_max_ttl = 3600;
+ cfg->ipsecmod_whitelist = NULL;
+ cfg->ipsecmod_strict = 0;
+#endif
return cfg;
error_exit:
config_delete(cfg);
@@ -480,6 +491,7 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_STRLIST("trust-anchor-file:", trust_anchor_file_list)
else S_STRLIST("trust-anchor:", trust_anchor_list)
else S_STRLIST("trusted-keys-file:", trusted_keys_file_list)
+ else S_YNO("trust-anchor-signaling:", trust_anchor_signaling)
else S_STR("dlv-anchor-file:", dlv_anchor_file)
else S_STRLIST("dlv-anchor:", dlv_anchor_list)
else S_STRLIST("domain-insecure:", domain_insecure)
@@ -523,6 +535,33 @@ int config_set_option(struct config_file* cfg, const char* opt,
/* No client-subnet-always-forward here, module registration depends on
* this option. */
#endif
+#ifdef USE_DNSTAP
+ else S_YNO("dnstap-enable:", dnstap)
+ else S_STR("dnstap-socket-path:", dnstap_socket_path)
+ else S_YNO("dnstap-send-identity:", dnstap_send_identity)
+ else S_YNO("dnstap-send-version:", dnstap_send_version)
+ else S_STR("dnstap-identity:", dnstap_identity)
+ else S_STR("dnstap-version:", dnstap_version)
+ else S_YNO("dnstap-log-resolver-query-messages:",
+ dnstap_log_resolver_query_messages)
+ else S_YNO("dnstap-log-resolver-response-messages:",
+ dnstap_log_resolver_response_messages)
+ else S_YNO("dnstap-log-client-query-messages:",
+ dnstap_log_client_query_messages)
+ else S_YNO("dnstap-log-client-response-messages:",
+ dnstap_log_client_response_messages)
+ else S_YNO("dnstap-log-forwarder-query-messages:",
+ dnstap_log_forwarder_query_messages)
+ else S_YNO("dnstap-log-forwarder-response-messages:",
+ dnstap_log_forwarder_response_messages)
+#endif
+#ifdef USE_DNSCRYPT
+ else S_YNO("dnscrypt-enable:", dnscrypt)
+ else S_NUMBER_NONZERO("dnscrypt-port:", dnscrypt_port)
+ else S_STR("dnscrypt-provider:", dnscrypt_provider)
+ else S_STRLIST("dnscrypt-provider-cert:", dnscrypt_provider_cert)
+ else S_STRLIST("dnscrypt-secret-key:", dnscrypt_secret_key)
+#endif
else if(strcmp(opt, "ip-ratelimit:") == 0) {
IS_NUMBER_OR_ZERO; cfg->ip_ratelimit = atoi(val);
infra_ip_ratelimit=cfg->ip_ratelimit;
@@ -539,6 +578,13 @@ int config_set_option(struct config_file* cfg, const char* opt,
else S_NUMBER_OR_ZERO("ratelimit-factor:", ratelimit_factor)
else S_YNO("qname-minimisation:", qname_minimisation)
else S_YNO("qname-minimisation-strict:", qname_minimisation_strict)
+#ifdef USE_IPSECMOD
+ else S_YNO("ipsecmod-enabled:", ipsecmod_enabled)
+ else S_YNO("ipsecmod-ignore-bogus:", ipsecmod_ignore_bogus)
+ else if(strcmp(opt, "ipsecmod-max-ttl:") == 0)
+ { IS_NUMBER_OR_ZERO; cfg->ipsecmod_max_ttl = atoi(val); }
+ else S_YNO("ipsecmod-strict:", ipsecmod_strict)
+#endif
else if(strcmp(opt, "define-tag:") ==0) {
return config_add_tag(cfg, val);
/* val_sig_skew_min and max are copied into val_env during init,
@@ -560,15 +606,16 @@ int config_set_option(struct config_file* cfg, const char* opt,
cfg->out_ifs = oi;
} else {
/* unknown or unsupported (from the set_option interface):
- * interface, outgoing-interface, access-control,
+ * interface, outgoing-interface, access-control,
* stub-zone, name, stub-addr, stub-host, stub-prime
* forward-first, stub-first, forward-ssl-upstream,
* stub-ssl-upstream, forward-zone,
* name, forward-addr, forward-host,
* ratelimit-for-domain, ratelimit-below-domain,
- * local-zone-tag, access-control-view
- * send-client-subnet client-subnet-always-forward
- * max-client-subnet-ipv4 max-client-subnet-ipv6 */
+ * local-zone-tag, access-control-view,
+ * send-client-subnet, client-subnet-always-forward,
+ * max-client-subnet-ipv4, max-client-subnet-ipv6, ipsecmod_hook,
+ * ipsecmod_whitelist. */
return 0;
}
return 1;
@@ -834,6 +881,7 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_LST(opt, "trust-anchor-file", trust_anchor_file_list)
else O_LST(opt, "trust-anchor", trust_anchor_list)
else O_LST(opt, "trusted-keys-file", trusted_keys_file_list)
+ else O_YNO(opt, "trust-anchor-signaling", trust_anchor_signaling)
else O_LST(opt, "dlv-anchor", dlv_anchor_list)
else O_LST(opt, "control-interface", control_ifs)
else O_LST(opt, "domain-insecure", domain_insecure)
@@ -842,11 +890,39 @@ config_get_option(struct config_file* cfg, const char* opt,
else O_YNO(opt, "rrset-roundrobin", rrset_roundrobin)
#ifdef CLIENT_SUBNET
else O_LST(opt, "send-client-subnet", client_subnet)
+ else O_LST(opt, "client-subnet-zone", client_subnet_zone)
else O_DEC(opt, "max-client-subnet-ipv4", max_client_subnet_ipv4)
else O_DEC(opt, "max-client-subnet-ipv6", max_client_subnet_ipv6)
else O_YNO(opt, "client-subnet-always-forward:",
client_subnet_always_forward)
#endif
+#ifdef USE_DNSTAP
+ else O_YNO(opt, "dnstap-enable", dnstap)
+ else O_STR(opt, "dnstap-socket-path", dnstap_socket_path)
+ else O_YNO(opt, "dnstap-send-identity", dnstap_send_identity)
+ else O_YNO(opt, "dnstap-send-version", dnstap_send_version)
+ else O_STR(opt, "dnstap-identity", dnstap_identity)
+ else O_STR(opt, "dnstap-version", dnstap_version)
+ else O_YNO(opt, "dnstap-log-resolver-query-messages",
+ dnstap_log_resolver_query_messages)
+ else O_YNO(opt, "dnstap-log-resolver-response-messages",
+ dnstap_log_resolver_response_messages)
+ else O_YNO(opt, "dnstap-log-client-query-messages",
+ dnstap_log_client_query_messages)
+ else O_YNO(opt, "dnstap-log-client-response-messages",
+ dnstap_log_client_response_messages)
+ else O_YNO(opt, "dnstap-log-forwarder-query-messages",
+ dnstap_log_forwarder_query_messages)
+ else O_YNO(opt, "dnstap-log-forwarder-response-messages",
+ dnstap_log_forwarder_response_messages)
+#endif
+#ifdef USE_DNSCRYPT
+ else O_YNO(opt, "dnscrypt-enable", dnscrypt)
+ else O_DEC(opt, "dnscrypt-port", dnscrypt_port)
+ else O_STR(opt, "dnscrypt-provider", dnscrypt_provider)
+ else O_LST(opt, "dnscrypt-provider-cert", dnscrypt_provider_cert)
+ else O_LST(opt, "dnscrypt-secret-key", dnscrypt_secret_key)
+#endif
else O_YNO(opt, "unblock-lan-zones", unblock_lan_zones)
else O_YNO(opt, "insecure-lan-zones", insecure_lan_zones)
else O_DEC(opt, "max-udp-size", max_udp_size)
@@ -874,6 +950,14 @@ 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)
+#ifdef USE_IPSECMOD
+ else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled)
+ else O_YNO(opt, "ipsecmod-ignore-bogus", ipsecmod_ignore_bogus)
+ else O_STR(opt, "ipsecmod-hook", ipsecmod_hook)
+ else O_DEC(opt, "ipsecmod-max-ttl", ipsecmod_max_ttl)
+ else O_LST(opt, "ipsecmod-whitelist", ipsecmod_whitelist)
+ else O_YNO(opt, "ipsecmod-strict", ipsecmod_strict)
+#endif
/* not here:
* outgoing-permit, outgoing-avoid - have list of ports
* local-zone - zones and nodefault variables
@@ -1131,11 +1215,13 @@ config_delete(struct config_file* cfg)
config_delstrlist(cfg->root_hints);
#ifdef CLIENT_SUBNET
config_delstrlist(cfg->client_subnet);
+ config_delstrlist(cfg->client_subnet_zone);
#endif
free(cfg->identity);
free(cfg->version);
free(cfg->module_conf);
free(cfg->outgoing_avail_ports);
+ free(cfg->python_script);
config_delstrlist(cfg->caps_whitelist);
config_delstrlist(cfg->private_address);
config_delstrlist(cfg->private_domain);
@@ -1169,6 +1255,10 @@ config_delete(struct config_file* cfg)
free(cfg->dnstap_version);
config_deldblstrlist(cfg->ratelimit_for_domain);
config_deldblstrlist(cfg->ratelimit_below_domain);
+#ifdef USE_IPSECMOD
+ free(cfg->ipsecmod_hook);
+ config_delstrlist(cfg->ipsecmod_whitelist);
+#endif
free(cfg);
}
diff --git a/util/config_file.h b/util/config_file.h
index 79b094894022..bb7a292050b4 100644
--- a/util/config_file.h
+++ b/util/config_file.h
@@ -176,6 +176,8 @@ struct config_file {
/** list of servers we send edns-client-subnet option to and
* accept option from, linked list */
struct config_strlist* client_subnet;
+ /** list of zones we send edns-client-subnet option for */
+ struct config_strlist* client_subnet_zone;
/** opcode assigned by IANA for edns0-client-subnet option */
uint16_t client_subnet_opcode;
/** Do not check whitelist if incoming query contains an ECS record */
@@ -274,6 +276,8 @@ struct config_file {
struct config_strlist* dlv_anchor_list;
/** insecure domain list */
struct config_strlist* domain_insecure;
+ /** send key tag query */
+ int trust_anchor_signaling;
/** if not 0, this value is the validation date for RRSIGs */
int32_t val_date_override;
@@ -317,6 +321,8 @@ struct config_file {
struct config_str2list* local_zones;
/** local zones nodefault list */
struct config_strlist* local_zones_nodefault;
+ /** do not add any default local zone */
+ int local_zones_disable_default;
/** local data RRs configured */
struct config_strlist* local_data;
/** local zone override types per netblock */
@@ -458,6 +464,22 @@ struct config_file {
struct config_strlist* dnscrypt_secret_key;
/** dnscrypt provider certs 1.cert */
struct config_strlist* dnscrypt_provider_cert;
+
+ /** IPsec module */
+#ifdef USE_IPSECMOD
+ /** false to bypass the IPsec module */
+ int ipsecmod_enabled;
+ /** whitelisted domains for ipsecmod */
+ struct config_strlist* ipsecmod_whitelist;
+ /** path to external hook */
+ char* ipsecmod_hook;
+ /** true to proceed even with a bogus IPSECKEY */
+ int ipsecmod_ignore_bogus;
+ /** max TTL for the A/AAAA records that call the hook */
+ int ipsecmod_max_ttl;
+ /** false to proceed even when ipsecmod_hook fails */
+ int ipsecmod_strict;
+#endif
};
/** from cfg username, after daemonise setup performed */
diff --git a/util/configlexer.c b/util/configlexer.c
index 0043165c2d2f..b180068c5392 100644
--- a/util/configlexer.c
+++ b/util/configlexer.c
@@ -378,8 +378,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 221
-#define YY_END_OF_BUFFER 222
+#define YY_NUM_RULES 229
+#define YY_END_OF_BUFFER 230
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -387,246 +387,254 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[2165] =
+static yyconst flex_int16_t yy_accept[2238] =
{ 0,
- 1, 1, 203, 203, 207, 207, 211, 211, 215, 215,
- 1, 1, 222, 219, 1, 201, 201, 220, 2, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 220,
- 203, 204, 204, 205, 220, 207, 208, 208, 209, 220,
- 214, 211, 212, 212, 213, 220, 215, 216, 216, 217,
- 220, 218, 202, 2, 206, 218, 220, 219, 0, 1,
- 2, 2, 2, 2, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 203, 0, 207, 0, 214, 0, 211, 215, 0, 218,
- 0, 2, 2, 218, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 218, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 218, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 77, 219, 219, 219,
- 219, 219, 219, 8, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 88, 218, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 218,
- 219, 219, 219, 219, 219, 37, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 168, 219,
- 14, 15, 219, 18, 17, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 154, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 3, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 218, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 210, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 40, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 41, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 143, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 20, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 102, 219, 210, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 195, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 118, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 101, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 75, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 25, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 38, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 39, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 119, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 28, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 183, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 32, 219, 33,
- 219, 219, 219, 78, 219, 79, 219, 219, 76, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 7, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 161, 219, 219, 219, 219, 104, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 29, 219, 219, 219,
-
- 219, 219, 219, 219, 135, 219, 134, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 16, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 42, 219, 219,
- 219, 219, 219, 219, 142, 219, 219, 219, 219, 81,
- 80, 219, 219, 219, 219, 219, 219, 219, 219, 129,
- 219, 219, 219, 219, 219, 219, 219, 219, 89, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 60, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 64, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 36, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 132,
- 133, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 6, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 193, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 26, 219, 219, 219, 219, 219, 219, 219, 219, 125,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 147, 219, 126, 219, 219, 159, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 27, 219, 219, 219, 219, 84, 219, 85, 219, 83,
- 219, 219, 219, 219, 219, 219, 219, 219, 99, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 182, 219, 219, 127, 219, 219, 219, 219, 219, 130,
- 219, 219, 158, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 74, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 34, 219, 219, 22, 219,
- 219, 219, 219, 19, 219, 109, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 49, 51, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 197, 219, 219, 169, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 86, 219, 219, 219, 219, 219, 219, 219, 98, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 103, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 153, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 117, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 113, 219, 120, 219, 219, 219,
- 219, 219, 92, 219, 219, 70, 219, 219, 219, 145,
- 219, 219, 219, 219, 219, 160, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 174, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 116, 219, 219, 219, 219, 219, 52, 53, 219, 219,
- 219, 219, 219, 35, 59, 121, 219, 136, 219, 162,
-
- 131, 219, 219, 219, 45, 219, 123, 219, 219, 219,
- 219, 219, 9, 219, 219, 219, 73, 219, 219, 219,
- 219, 187, 219, 144, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 105, 196, 219, 219, 173, 219, 219, 219, 219, 219,
- 219, 219, 219, 155, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 122, 219, 219, 219, 44, 46,
-
- 219, 219, 219, 219, 219, 219, 219, 72, 219, 219,
- 219, 219, 185, 219, 192, 219, 219, 219, 219, 219,
- 149, 23, 24, 219, 219, 219, 219, 219, 219, 219,
- 219, 69, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 151, 148, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 43,
- 219, 219, 219, 219, 219, 219, 219, 219, 100, 13,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 12, 219, 219, 21, 219, 219,
- 219, 191, 219, 194, 47, 219, 157, 219, 150, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 112, 111, 219, 219, 219, 219, 219, 219, 152,
- 146, 219, 219, 198, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 54, 219, 219, 219, 186, 219,
- 219, 219, 156, 219, 219, 219, 219, 219, 219, 219,
- 219, 48, 219, 219, 219, 82, 219, 106, 108, 137,
- 219, 219, 219, 110, 219, 219, 163, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 170, 219, 219, 219, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 138, 219, 219, 184, 219,
- 219, 219, 30, 219, 219, 219, 219, 4, 219, 219,
- 93, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 166, 219, 219, 219, 219, 219, 219, 199, 219, 219,
- 219, 219, 219, 172, 219, 219, 141, 219, 219, 219,
- 219, 219, 219, 219, 219, 57, 219, 31, 190, 167,
- 219, 219, 11, 219, 219, 219, 219, 219, 219, 139,
- 61, 219, 219, 219, 115, 219, 219, 219, 219, 219,
- 95, 219, 219, 219, 219, 219, 219, 219, 171, 90,
- 219, 87, 219, 219, 219, 63, 67, 62, 219, 55,
-
- 219, 219, 10, 219, 219, 219, 188, 219, 219, 114,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 68, 66, 219, 56, 219,
- 219, 219, 128, 219, 219, 140, 219, 219, 219, 219,
- 107, 50, 219, 219, 200, 219, 219, 219, 219, 219,
- 219, 91, 65, 96, 97, 58, 219, 189, 219, 219,
- 219, 165, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 71, 219, 164, 219, 181, 219, 219,
- 219, 219, 219, 219, 5, 219, 219, 219, 219, 219,
-
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 94, 219, 219, 219, 219, 219, 219, 124,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 177, 219,
- 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
- 219, 219, 175, 219, 178, 179, 219, 219, 219, 219,
- 219, 176, 180, 0
+ 1, 1, 211, 211, 215, 215, 219, 219, 223, 223,
+ 1, 1, 230, 227, 1, 209, 209, 228, 2, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 228,
+ 211, 212, 212, 213, 228, 215, 216, 216, 217, 228,
+ 222, 219, 220, 220, 221, 228, 223, 224, 224, 225,
+ 228, 226, 210, 2, 214, 226, 228, 227, 0, 1,
+ 2, 2, 2, 2, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 211, 0, 215, 0, 222, 0, 219, 223, 0, 226,
+ 0, 2, 2, 226, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 226, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 226, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 77,
+ 227, 227, 227, 227, 227, 227, 8, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 88, 226, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 226, 227, 227, 227, 227, 227, 37,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 170, 227, 14, 15, 227, 18, 17, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 156,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 3, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 226, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 218,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 40, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 41, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 145,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 20, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 103, 227, 218, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 197, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 120,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 102, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 75, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 25, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 38,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 39, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 121, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 28, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 185,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 32, 227, 33, 227, 227, 227, 78, 227, 79, 227,
+ 227, 76, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 7, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 163, 227, 227, 227, 227, 105,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 29,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 137, 227, 136, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 16, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 42, 227, 227, 227,
+ 227, 227, 227, 144, 227, 227, 227, 227, 81, 80,
+ 227, 227, 227, 227, 227, 227, 227, 227, 131, 227,
+ 227, 227, 227, 227, 227, 227, 227, 89, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 60, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 64, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 36, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 134, 135, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 6, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 195, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 26, 227, 227, 227, 227,
+ 227, 227, 227, 227, 127, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 149, 227, 128, 227, 227,
+ 161, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 27, 227, 227, 227, 227,
+ 84, 227, 85, 227, 83, 227, 227, 227, 227, 227,
+ 227, 227, 227, 100, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 184, 227, 227, 227, 227,
+ 227, 227, 227, 227, 129, 227, 227, 227, 227, 227,
+
+ 132, 227, 227, 160, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 74, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 34, 227, 227, 22,
+ 227, 227, 227, 227, 19, 227, 110, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 49, 51, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 199, 227, 227, 171, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 86, 227, 227, 227, 227, 227, 227, 227, 99,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 205, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 104,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 155, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 119, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 115, 227, 122, 227, 227, 227, 227, 227,
+ 92, 227, 227, 70, 227, 227, 227, 227, 147, 227,
+ 227, 227, 227, 227, 162, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 176, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 118,
+ 227, 227, 227, 227, 227, 52, 53, 227, 227, 227,
+ 227, 227, 35, 227, 227, 227, 227, 227, 59, 123,
+ 227, 138, 227, 164, 133, 227, 227, 227, 45, 227,
+ 125, 227, 227, 227, 227, 227, 9, 227, 227, 227,
+ 73, 227, 227, 227, 227, 189, 227, 146, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 106, 198, 227, 227,
+ 175, 227, 227, 227, 227, 227, 227, 227, 227, 157,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 208, 227, 124, 227, 227, 227, 44,
+ 46, 227, 227, 227, 227, 227, 227, 227, 72, 227,
+ 227, 227, 227, 187, 227, 194, 227, 227, 227, 227,
+ 227, 151, 23, 24, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 69, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 153,
+
+ 150, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 43, 227, 227, 227, 227, 227, 227, 227,
+ 227, 101, 13, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 203, 227, 206, 227, 227, 227, 227, 227,
+ 227, 12, 227, 227, 21, 227, 227, 227, 193, 227,
+ 196, 47, 227, 159, 227, 152, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 114,
+ 113, 227, 227, 227, 227, 227, 227, 227, 154, 148,
+ 227, 227, 200, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 54, 227, 227, 227, 188, 227, 227,
+ 227, 227, 227, 158, 227, 227, 227, 227, 227, 227,
+ 227, 227, 48, 227, 227, 227, 82, 227, 107, 227,
+ 109, 139, 227, 227, 227, 112, 227, 227, 165, 227,
+ 227, 227, 227, 227, 94, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 172, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 140, 227,
+ 227, 186, 227, 207, 227, 227, 227, 30, 227, 227,
+ 227, 227, 4, 227, 227, 93, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 168, 227, 227, 227,
+
+ 227, 227, 227, 201, 227, 227, 227, 227, 227, 174,
+ 227, 227, 143, 227, 227, 227, 227, 227, 227, 227,
+ 227, 57, 227, 31, 192, 227, 169, 227, 227, 11,
+ 227, 227, 227, 227, 227, 227, 141, 61, 227, 227,
+ 227, 227, 117, 227, 227, 227, 227, 227, 96, 227,
+ 227, 227, 227, 227, 227, 227, 173, 90, 227, 87,
+ 227, 227, 227, 63, 67, 62, 227, 55, 227, 227,
+ 227, 10, 227, 227, 227, 190, 227, 227, 227, 116,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 68, 66, 227, 56, 204,
+
+ 227, 227, 227, 130, 227, 227, 142, 227, 227, 227,
+ 227, 227, 108, 50, 227, 227, 202, 227, 227, 227,
+ 227, 227, 227, 91, 65, 97, 98, 58, 227, 191,
+ 111, 227, 227, 227, 167, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 71, 227, 166, 227,
+ 183, 227, 227, 227, 227, 227, 227, 5, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 95, 227, 227, 227, 227,
+ 227, 227, 126, 227, 227, 227, 227, 227, 227, 227,
+
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 179, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 177, 227, 180, 181, 227,
+ 227, 227, 227, 227, 178, 182, 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -672,493 +680,511 @@ static yyconst YY_CHAR yy_meta[67] =
1, 1, 1, 1, 1, 1
} ;
-static yyconst flex_uint16_t yy_base[2179] =
+static yyconst flex_uint16_t yy_base[2252] =
{ 0,
0, 0, 64, 67, 70, 72, 78, 84, 89, 92,
- 131, 137, 473, 390, 96, 6214, 6214, 6214, 109, 111,
+ 131, 137, 420, 366, 96, 6399, 6399, 6399, 109, 111,
142, 180, 86, 133, 138, 172, 50, 151, 91, 181,
197, 124, 241, 187, 225, 289, 233, 228, 253, 307,
- 385, 6214, 6214, 6214, 95, 362, 6214, 6214, 6214, 102,
- 331, 364, 6214, 6214, 6214, 311, 317, 6214, 6214, 6214,
- 116, 245, 6214, 321, 6214, 265, 328, 221, 334, 160,
+ 362, 6399, 6399, 6399, 95, 359, 6399, 6399, 6399, 102,
+ 326, 355, 6399, 6399, 6399, 311, 245, 6399, 6399, 6399,
+ 116, 221, 6399, 321, 6399, 265, 328, 212, 334, 160,
0, 338, 0, 0, 141, 206, 184, 330, 322, 255,
323, 335, 324, 222, 268, 350, 325, 334, 344, 357,
- 358, 352, 367, 364, 389, 160, 361, 388, 394, 214,
-
- 373, 400, 391, 383, 399, 416, 410, 414, 407, 421,
- 437, 424, 448, 425, 434, 178, 431, 464, 441, 460,
- 458, 462, 461, 468, 263, 490, 488, 487, 476, 491,
- 212, 171, 170, 241, 164, 533, 146, 85, 284, 77,
- 539, 543, 0, 509, 511, 534, 526, 536, 523, 530,
- 546, 527, 539, 554, 553, 559, 557, 580, 624, 561,
- 571, 572, 586, 569, 589, 597, 581, 579, 619, 585,
- 609, 610, 646, 612, 627, 570, 622, 661, 630, 626,
- 642, 653, 670, 673, 681, 671, 669, 677, 665, 680,
- 662, 679, 688, 690, 703, 700, 699, 715, 717, 702,
-
- 704, 714, 708, 729, 723, 727, 728, 738, 741, 735,
- 763, 742, 764, 744, 758, 755, 765, 745, 772, 769,
- 760, 784, 761, 789, 778, 782, 792, 810, 813, 578,
- 797, 816, 819, 802, 806, 823, 824, 822, 832, 838,
- 837, 834, 849, 841, 836, 839, 846, 847, 868, 872,
- 853, 866, 859, 881, 873, 876, 883, 886, 878, 902,
- 897, 904, 899, 909, 938, 359, 924, 915, 928, 936,
- 944, 901, 951, 949, 942, 955, 946, 917, 959, 966,
- 961, 971, 970, 984, 987, 977, 994, 996, 999, 998,
- 1007, 980, 997, 1017, 1026, 1019, 1071, 1021, 1032, 1043,
-
- 1030, 1035, 1034, 1044, 1040, 1042, 1055, 1057, 1078, 1084,
- 1079, 1100, 1076, 1095, 1101, 1102, 1099, 1092, 1104, 1134,
- 1098, 1114, 1121, 1125, 1136, 1140, 1143, 1128, 1142, 1159,
- 1149, 1145, 1171, 1151, 1164, 1161, 1174, 1186, 1187, 1173,
- 1183, 1189, 1039, 1195, 1202, 1199, 1191, 1200, 1206, 1213,
- 1216, 1220, 1230, 1229, 1214, 1236, 6214, 1243, 1227, 1238,
- 1240, 1233, 1247, 6214, 1261, 1257, 1255, 1209, 1263, 1273,
- 1271, 1260, 1288, 1286, 1296, 1280, 1292, 1295, 1282, 1298,
- 1305, 1306, 1310, 1308, 1354, 1316, 1312, 1318, 1345, 1339,
- 1329, 1265, 1332, 1347, 1337, 1356, 1363, 1366, 1364, 1383,
-
- 1387, 1375, 1377, 1393, 6214, 1397, 1376, 1404, 1283, 1395,
- 1390, 979, 1411, 1406, 1414, 1415, 1426, 1417, 1425, 1431,
- 1420, 1421, 1451, 1442, 1440, 1449, 1465, 1450, 1462, 1470,
- 1447, 1466, 1453, 1467, 1469, 1484, 1477, 1483, 1480, 1486,
- 1488, 1482, 1476, 1513, 1500, 1504, 1502, 1514, 1517, 1509,
- 1529, 1526, 1527, 1533, 1534, 1546, 1542, 1550, 1560, 1561,
- 1552, 1555, 1547, 1566, 1573, 1577, 1578, 1557, 1582, 1586,
- 1584, 1603, 1588, 1601, 1617, 1595, 1607, 1619, 1602, 1615,
- 1622, 1614, 1627, 1636, 1637, 1618, 1648, 1639, 1653, 1642,
- 1644, 1649, 1652, 1657, 1647, 1663, 1673, 1667, 1666, 1697,
-
- 1677, 1679, 1700, 1699, 1704, 1702, 1693, 1692, 1708, 1705,
- 1717, 1726, 1732, 1735, 1723, 1736, 1738, 1731, 1742, 1749,
- 1752, 1753, 1725, 1774, 1762, 6214, 1758, 1761, 1766, 1787,
- 1778, 1776, 1792, 1788, 1779, 1782, 1800, 1843, 6214, 1784,
- 6214, 6214, 1795, 6214, 6214, 1822, 1802, 1826, 1815, 1832,
- 1805, 1892, 1836, 1819, 1827, 1839, 1847, 1844, 1849, 1860,
- 1858, 1879, 1876, 1875, 1885, 1895, 1874, 1906, 1889, 1908,
- 1907, 1913, 1903, 1929, 1921, 1920, 1923, 1944, 1941, 1842,
- 1934, 1948, 1947, 1949, 1950, 1942, 1959, 1955, 1969, 1963,
- 1956, 1971, 1954, 1974, 6214, 1985, 1986, 1996, 1992, 1989,
-
- 2001, 1990, 1991, 1980, 2022, 6214, 2007, 2008, 2016, 2034,
- 2017, 2020, 2019, 2028, 2036, 2046, 2024, 2035, 2044, 2047,
- 2043, 2052, 2056, 2062, 2064, 2081, 2092, 2084, 2071, 2083,
- 2089, 2072, 2096, 2101, 2099, 2086, 2087, 2106, 2098, 2107,
- 2114, 2112, 2120, 2133, 2117, 2116, 2124, 2122, 2125, 2171,
- 2156, 2144, 2139, 2143, 2173, 2163, 2167, 2175, 2158, 2179,
- 2184, 2181, 2207, 2186, 2183, 2200, 2203, 2219, 2231, 2228,
- 75, 2258, 2223, 2224, 2226, 2230, 2244, 2233, 2246, 2247,
- 2249, 2251, 2236, 2271, 6214, 2252, 2279, 2273, 2267, 2288,
- 2285, 2286, 2287, 2294, 2283, 2307, 2301, 2313, 2302, 2310,
-
- 2311, 2326, 2327, 2306, 6214, 2325, 2323, 2328, 2329, 2343,
- 2352, 2354, 2351, 2340, 2366, 2361, 6214, 2349, 2377, 2379,
- 2382, 2375, 2370, 2376, 2369, 2378, 2392, 2373, 2403, 2397,
- 2406, 2409, 2415, 6214, 2393, 2407, 2422, 2429, 2430, 2419,
- 2440, 2426, 2432, 2425, 2434, 2436, 2453, 2455, 6214, 2450,
- 2459, 2454, 2457, 2478, 2480, 2461, 2474, 2483, 2471, 2477,
- 2481, 291, 2482, 2485, 2492, 2472, 6214, 2495, 68, 2488,
- 2498, 2496, 2531, 2533, 2525, 2532, 2537, 2521, 2522, 2539,
- 2538, 2527, 2540, 2541, 2551, 2545, 2561, 2558, 2571, 2559,
- 2589, 6214, 2554, 2582, 2583, 2585, 2588, 2566, 2586, 2596,
-
- 2573, 2602, 2606, 6214, 2620, 2623, 2615, 2616, 2611, 2621,
- 2632, 2628, 2618, 2635, 2626, 2643, 2645, 2641, 2653, 2665,
- 6214, 2651, 2655, 2667, 2657, 2676, 2678, 2691, 2666, 2683,
- 2682, 2688, 2686, 2698, 2684, 2705, 2709, 2710, 2715, 2716,
- 2722, 2708, 2718, 2724, 2717, 2712, 2743, 2745, 2747, 2749,
- 2772, 2766, 153, 2751, 6214, 2756, 2758, 2750, 2755, 2771,
- 2770, 2787, 2782, 2794, 2789, 2791, 2795, 2806, 2785, 2815,
- 2807, 2811, 2825, 6214, 2832, 2822, 2817, 2839, 2821, 2840,
- 2838, 2829, 2845, 2837, 2853, 2847, 2856, 2859, 2851, 2865,
- 2866, 2862, 6214, 2881, 2884, 2885, 2886, 2882, 2876, 2883,
-
- 2897, 2879, 2887, 2878, 2909, 2905, 2896, 2903, 2906, 2911,
- 2926, 2917, 2914, 2913, 2930, 2945, 2928, 2943, 6214, 2940,
- 2965, 2941, 2953, 2949, 2956, 2964, 2977, 2967, 2978, 2980,
- 2976, 2966, 2973, 2991, 2990, 2992, 2993, 6214, 2998, 2997,
- 2970, 3011, 3007, 3012, 3016, 3014, 3025, 3028, 3039, 3029,
- 3036, 3048, 3038, 3040, 3043, 3054, 3056, 3066, 3067, 3076,
- 6214, 3069, 3074, 3070, 3071, 3080, 3073, 3063, 3113, 3115,
- 3072, 3098, 3099, 3101, 3107, 3095, 3104, 3105, 3129, 3108,
- 3114, 3124, 3130, 3125, 3132, 3131, 3135, 3134, 3155, 3165,
- 3163, 3170, 3156, 3162, 3159, 3185, 6214, 3158, 3184, 3175,
-
- 3176, 3189, 3186, 3192, 3195, 3182, 3207, 6214, 3199, 6214,
- 3216, 3222, 3229, 6214, 3225, 6214, 3228, 3214, 6214, 3232,
- 3237, 3224, 3220, 3226, 3231, 3246, 3254, 3256, 3248, 3269,
- 3249, 3263, 3273, 3259, 3275, 6214, 3279, 3264, 3285, 3283,
- 3287, 3288, 3293, 3294, 3311, 3297, 3320, 3318, 3298, 3307,
- 3333, 6214, 3315, 3331, 3332, 3330, 6214, 3328, 3338, 3340,
- 3319, 3346, 3345, 3350, 3349, 3368, 3358, 3365, 3372, 3375,
- 3357, 3384, 3388, 3389, 3373, 3385, 3383, 3398, 3400, 3399,
- 3396, 3401, 3420, 3416, 3411, 3414, 3415, 3410, 3422, 3427,
- 3431, 3445, 3430, 3432, 3441, 3443, 6214, 3453, 3440, 3468,
-
- 3454, 3458, 3466, 3467, 6214, 3484, 6214, 3449, 3486, 3488,
- 3487, 3470, 3493, 3491, 3494, 3500, 3497, 3513, 3517, 3508,
- 3512, 3510, 3511, 3514, 3526, 3531, 6214, 3520, 3530, 3550,
- 3536, 3553, 3549, 3559, 3555, 3565, 3566, 6214, 3570, 3572,
- 3573, 3579, 3576, 3582, 6214, 3575, 3578, 3585, 3604, 6214,
- 6214, 3577, 3600, 3601, 3602, 3597, 3623, 3603, 3615, 6214,
- 3621, 3612, 3622, 3631, 3639, 3640, 3628, 3629, 6214, 3642,
- 3638, 3647, 3655, 3656, 3658, 3654, 3660, 3659, 3663, 3674,
- 3671, 3651, 3688, 3676, 6214, 3689, 3684, 3696, 3687, 3703,
- 3686, 3690, 3704, 3719, 3700, 3698, 3713, 3729, 3726, 3718,
-
- 3727, 3741, 3749, 3731, 3740, 3723, 3747, 3737, 3760, 3745,
- 3763, 3767, 3778, 3774, 6214, 3783, 3762, 3786, 3770, 3779,
- 3785, 3787, 3796, 3805, 3800, 3801, 3804, 3806, 6214, 3808,
- 3802, 3809, 3811, 3813, 3833, 3822, 3828, 3836, 3825, 6214,
- 6214, 3832, 3835, 3854, 3843, 3860, 3862, 3846, 3864, 3848,
- 3863, 6214, 3873, 3881, 3866, 3875, 3885, 3889, 3888, 3890,
- 3887, 3877, 3884, 3898, 3904, 3900, 3893, 3920, 3911, 3924,
- 6214, 3913, 3914, 3916, 3938, 3927, 3930, 3936, 3956, 3949,
- 3931, 3947, 3948, 3955, 3964, 3978, 3975, 3954, 3965, 3989,
- 6214, 3973, 3982, 3981, 3962, 3995, 3974, 4002, 3991, 6214,
-
- 4007, 3997, 4006, 4011, 3999, 4020, 4015, 4012, 4022, 4018,
- 6214, 4026, 6214, 4029, 4023, 6214, 4024, 4040, 4041, 4034,
- 4055, 4057, 4044, 4056, 4048, 4050, 4068, 4071, 4078, 4067,
- 6214, 4073, 4062, 4077, 4079, 6214, 4090, 6214, 4093, 6214,
- 4087, 4083, 4116, 4101, 4120, 4117, 4122, 4115, 6214, 4124,
- 4105, 4126, 4128, 4112, 4129, 4145, 4147, 4108, 4148, 4160,
- 6214, 4142, 4150, 6214, 4168, 4138, 4153, 4176, 4175, 6214,
- 4169, 4183, 6214, 4174, 4191, 4187, 4189, 4190, 4199, 4202,
- 4193, 4203, 4227, 4219, 4212, 4220, 6214, 4214, 4218, 4235,
- 4236, 4229, 4222, 4241, 4238, 4246, 4245, 4252, 4260, 4265,
-
- 4256, 4255, 4266, 4269, 4279, 6214, 4262, 4281, 6214, 4282,
- 4270, 4280, 4283, 6214, 4294, 6214, 4296, 4297, 4289, 4306,
- 4311, 4310, 4320, 4309, 4326, 4327, 4318, 4340, 4335, 4324,
- 6214, 6214, 4334, 4348, 4341, 4352, 4355, 4353, 4342, 4369,
- 4361, 4372, 4368, 6214, 4370, 4358, 6214, 4359, 4376, 4371,
- 4387, 4386, 4388, 4393, 4389, 4400, 4392, 4405, 4396, 4398,
- 6214, 4411, 4401, 4415, 4416, 4419, 4414, 4427, 6214, 4432,
- 4445, 4449, 4437, 4441, 4443, 4457, 4460, 4461, 4454, 4465,
- 4462, 4482, 4471, 4473, 4480, 4474, 4486, 4477, 4497, 4499,
- 4488, 4484, 6214, 4501, 4508, 4498, 4510, 4496, 4513, 4509,
-
- 4515, 4527, 4526, 4523, 4528, 4532, 6214, 4529, 4525, 4536,
- 4530, 4560, 4543, 4564, 4546, 4561, 4553, 4570, 4558, 4575,
- 6214, 4557, 4576, 4565, 4573, 4578, 4596, 4602, 4594, 4603,
- 4605, 4597, 4588, 4606, 6214, 4598, 6214, 4613, 4615, 4624,
- 4626, 4628, 6214, 4629, 4637, 6214, 4640, 4604, 4645, 6214,
- 4655, 4654, 4641, 4651, 4660, 6214, 4665, 4664, 4671, 4670,
- 4662, 4673, 4668, 4679, 4675, 4682, 6214, 4695, 4701, 4705,
- 4703, 4691, 4692, 4700, 4709, 4696, 4710, 4722, 4718, 4707,
- 6214, 4717, 4741, 4734, 4739, 4748, 6214, 6214, 4740, 4752,
- 4755, 4730, 4761, 6214, 6214, 6214, 4759, 6214, 4745, 6214,
-
- 6214, 4760, 4764, 4770, 6214, 4771, 6214, 4781, 4777, 4768,
- 4772, 4788, 6214, 4782, 4790, 4800, 6214, 4797, 4808, 4789,
- 4795, 6214, 4812, 6214, 4813, 4818, 4820, 4817, 4809, 4816,
- 4821, 4831, 4832, 4838, 4837, 4824, 4853, 4843, 4844, 4848,
- 4857, 4841, 4863, 4858, 4846, 4859, 4864, 4868, 4882, 4873,
- 4884, 4880, 4875, 4885, 4900, 4905, 4909, 4878, 4913, 4915,
- 6214, 6214, 4899, 4907, 6214, 4901, 4904, 4911, 4919, 4920,
- 4930, 4934, 4953, 6214, 4951, 4946, 4940, 4956, 4944, 4947,
- 4957, 4960, 4943, 4964, 4968, 4974, 4970, 4978, 4977, 4967,
- 4980, 4986, 5003, 5007, 6214, 4989, 4990, 4992, 6214, 6214,
-
- 4994, 5015, 5012, 5013, 5004, 5024, 5025, 6214, 5017, 5039,
- 5026, 5033, 6214, 5047, 6214, 5048, 5031, 5054, 5052, 5061,
- 6214, 6214, 6214, 5062, 5042, 5055, 5056, 5066, 5067, 5059,
- 5077, 6214, 5081, 5075, 5082, 5086, 5076, 5097, 5093, 5105,
- 5111, 5112, 5114, 5103, 5116, 5119, 6214, 6214, 5108, 5131,
- 5120, 5127, 5129, 5135, 5141, 5134, 5128, 5146, 5145, 6214,
- 5156, 5148, 5147, 5158, 5155, 5160, 5178, 5161, 6214, 6214,
- 5162, 5173, 5175, 5190, 5176, 5192, 5184, 5204, 5188, 5205,
- 5139, 5210, 5206, 5208, 6214, 5203, 5211, 6214, 5219, 5202,
- 5227, 6214, 5217, 6214, 6214, 5225, 6214, 5228, 6214, 5229,
-
- 5246, 5253, 5254, 5258, 5259, 5260, 5243, 5250, 5267, 5263,
- 5262, 6214, 6214, 5272, 5255, 5265, 5270, 5275, 5279, 6214,
- 6214, 5290, 5293, 6214, 5276, 5291, 5299, 5289, 5292, 5297,
- 5313, 5302, 5306, 5318, 5324, 5329, 5331, 5326, 5338, 5327,
- 5323, 5335, 5340, 5341, 6214, 5346, 5352, 5345, 6214, 5366,
- 5370, 5368, 6214, 5362, 5378, 5379, 5372, 5369, 5391, 5385,
- 5392, 6214, 5394, 5400, 5402, 6214, 5388, 6214, 6214, 6214,
- 5411, 5419, 5408, 6214, 5418, 5429, 6214, 5422, 5415, 5412,
- 5407, 5443, 5436, 5447, 5437, 5434, 5449, 5440, 5467, 5441,
- 5465, 6214, 5450, 5456, 5472, 5460, 5474, 5475, 5464, 5470,
-
- 5482, 5481, 5477, 5488, 5487, 6214, 5495, 5510, 6214, 5512,
- 5502, 5514, 6214, 5520, 5501, 5500, 5505, 6214, 5525, 5517,
- 6214, 5513, 5534, 5536, 5530, 5542, 5539, 5538, 5540, 5555,
- 6214, 5548, 5544, 5547, 5568, 5569, 5561, 6214, 5573, 5558,
- 5585, 5575, 5584, 6214, 5589, 5571, 6214, 5594, 5596, 5583,
- 5598, 5607, 5608, 5609, 5610, 6214, 5613, 6214, 6214, 6214,
- 5600, 5617, 6214, 5614, 5612, 5611, 5620, 5632, 5628, 6214,
- 6214, 5635, 5646, 5645, 6214, 5634, 5637, 5647, 5636, 5659,
- 6214, 5658, 5649, 5653, 5651, 5670, 5662, 5663, 6214, 6214,
- 5679, 6214, 5682, 5691, 5696, 6214, 6214, 6214, 5701, 6214,
-
- 5704, 5703, 6214, 5705, 5690, 5697, 6214, 5712, 5698, 6214,
- 5702, 5710, 5715, 5721, 5722, 5718, 5731, 5741, 5725, 5729,
- 5730, 5748, 5749, 5740, 5755, 6214, 6214, 5761, 6214, 5762,
- 5764, 5765, 6214, 5757, 5769, 6214, 5758, 5771, 5768, 5773,
- 6214, 6214, 5776, 5784, 6214, 5779, 5788, 5785, 5782, 5786,
- 5789, 6214, 6214, 6214, 6214, 6214, 5815, 6214, 5803, 5799,
- 5806, 6214, 5800, 5797, 5809, 5821, 5825, 5828, 5812, 5826,
- 5831, 5838, 5845, 5856, 5858, 5857, 5855, 5861, 5848, 5847,
- 5868, 5863, 5869, 6214, 5864, 6214, 5874, 6214, 5875, 5881,
- 5885, 5883, 5886, 5884, 6214, 5891, 5910, 5888, 5896, 5904,
-
- 5901, 5911, 5922, 5906, 5929, 5934, 5937, 5940, 5941, 5931,
- 5944, 5948, 6214, 5952, 5936, 5938, 5956, 5947, 5963, 6214,
- 5965, 5961, 5962, 5972, 5977, 5982, 5975, 5990, 5995, 5993,
- 5999, 5992, 6000, 6003, 6008, 5997, 6023, 6012, 6214, 6024,
- 6027, 6017, 6021, 6033, 6022, 6026, 6046, 6052, 6050, 6062,
- 6064, 6058, 6214, 6061, 6214, 6214, 6070, 6059, 6063, 6069,
- 6071, 6214, 6214, 6214, 6122, 6129, 6136, 6143, 6150, 100,
- 6157, 6164, 6171, 6178, 6185, 6192, 6199, 6206
+ 358, 352, 367, 364, 389, 385, 369, 393, 394, 214,
+
+ 373, 402, 128, 400, 403, 419, 414, 399, 435, 420,
+ 443, 422, 449, 431, 441, 178, 436, 453, 459, 416,
+ 461, 463, 456, 469, 263, 487, 488, 480, 477, 497,
+ 170, 284, 164, 241, 160, 514, 174, 85, 367, 77,
+ 534, 541, 0, 514, 504, 518, 512, 513, 515, 523,
+ 542, 526, 540, 556, 550, 551, 548, 560, 604, 561,
+ 539, 559, 565, 571, 568, 588, 582, 585, 590, 583,
+ 606, 609, 636, 617, 599, 623, 576, 633, 652, 621,
+ 644, 638, 635, 650, 648, 662, 660, 657, 666, 668,
+ 684, 651, 683, 679, 669, 687, 682, 685, 699, 703,
+
+ 686, 721, 709, 725, 713, 720, 716, 726, 718, 712,
+ 740, 743, 747, 744, 735, 745, 750, 748, 749, 754,
+ 770, 751, 765, 762, 768, 783, 773, 784, 792, 800,
+ 804, 781, 802, 811, 789, 807, 810, 816, 806, 809,
+ 821, 828, 823, 836, 849, 825, 838, 832, 833, 857,
+ 851, 843, 860, 848, 868, 859, 871, 855, 862, 876,
+ 878, 891, 883, 894, 886, 895, 926, 676, 913, 903,
+ 910, 905, 922, 912, 939, 932, 930, 941, 936, 934,
+ 947, 956, 949, 970, 959, 973, 974, 953, 966, 981,
+ 975, 983, 986, 996, 1003, 1005, 1017, 1008, 1062, 1006,
+
+ 1015, 1055, 1004, 1010, 1012, 1033, 1043, 1034, 1039, 1048,
+ 1052, 1066, 1058, 1045, 1063, 1075, 1082, 1093, 1072, 1090,
+ 1102, 1113, 1095, 1100, 1103, 1104, 1123, 1117, 1122, 1110,
+ 1124, 1147, 1127, 1130, 1154, 1150, 1137, 1139, 1155, 1166,
+ 1168, 1151, 1174, 1163, 1179, 1178, 1188, 1152, 1195, 1183,
+ 1187, 1198, 1196, 1197, 1213, 1211, 1215, 1200, 1227, 6399,
+ 1229, 1216, 1224, 1236, 1226, 1238, 6399, 1240, 1241, 1235,
+ 1257, 1262, 1264, 1252, 1267, 1279, 1277, 1283, 1256, 1276,
+ 1268, 1265, 1278, 1284, 1295, 1296, 1297, 1343, 1294, 1306,
+ 1302, 1341, 1327, 1311, 1333, 1315, 1336, 1305, 1338, 1357,
+
+ 1329, 1352, 1361, 1371, 1363, 1368, 1375, 6399, 1387, 1358,
+ 1385, 1376, 1379, 1396, 1400, 1360, 1393, 1416, 1401, 1412,
+ 1402, 1420, 1419, 1414, 1410, 1450, 1421, 1435, 1436, 1443,
+ 1451, 1454, 1460, 1437, 1461, 1440, 1448, 1464, 1470, 1465,
+ 1453, 1467, 1462, 1478, 1474, 1476, 1499, 1486, 1509, 1494,
+ 1495, 1503, 1501, 1505, 1489, 1514, 1516, 1529, 1513, 1539,
+ 1532, 1536, 1546, 1543, 1537, 1542, 1530, 1556, 1558, 1564,
+ 1560, 1550, 1570, 1563, 1569, 1577, 1583, 1588, 1603, 1587,
+ 1589, 1604, 1590, 1596, 1615, 1595, 1614, 1626, 1611, 1610,
+ 1622, 1621, 1623, 1629, 1636, 1638, 1639, 1651, 1634, 1649,
+
+ 1650, 1652, 1658, 1663, 1653, 1656, 1686, 1665, 1677, 1684,
+ 1678, 1674, 1690, 1699, 1692, 1700, 1704, 1705, 1711, 1701,
+ 1713, 1698, 1714, 1737, 1740, 1741, 1725, 1750, 1735, 6399,
+ 1728, 1753, 1734, 1756, 1763, 1739, 1758, 1768, 1761, 1764,
+ 1772, 1815, 6399, 1767, 6399, 6399, 1781, 6399, 6399, 1787,
+ 1795, 1808, 1803, 1816, 1770, 1864, 1806, 1805, 1818, 1788,
+ 1843, 1821, 1822, 1851, 1835, 1857, 1854, 1869, 1862, 1873,
+ 1878, 1861, 1870, 1884, 1887, 1900, 1911, 1898, 1901, 1842,
+ 1907, 1916, 1918, 1917, 1925, 1928, 1923, 1924, 1929, 1933,
+ 1936, 1942, 1951, 1940, 1961, 1953, 1957, 1971, 1956, 6399,
+
+ 1963, 1964, 1967, 1974, 1968, 1976, 1978, 1987, 1983, 2005,
+ 6399, 2009, 2012, 1992, 2010, 1997, 2001, 1995, 2006, 2020,
+ 2023, 2028, 2022, 2042, 2040, 2043, 2053, 2031, 2044, 2047,
+ 2035, 2065, 2062, 2056, 2070, 2067, 2060, 2076, 2068, 2093,
+ 2080, 2087, 2106, 2085, 2110, 2095, 2111, 2101, 2114, 2102,
+ 2107, 2112, 2115, 2103, 2160, 2145, 2143, 2137, 2130, 2157,
+ 2141, 2162, 2164, 2159, 2166, 2173, 2170, 2194, 2190, 2187,
+ 2189, 2188, 2200, 2216, 2213, 75, 2243, 2207, 2215, 2204,
+ 2211, 2229, 2227, 2231, 2234, 2233, 2236, 2241, 2260, 6399,
+ 2240, 2250, 2246, 2259, 2279, 2276, 2266, 2274, 2275, 2278,
+
+ 2293, 2286, 2271, 2292, 2280, 2301, 2289, 2305, 2316, 2323,
+ 6399, 2312, 2310, 2313, 2318, 2330, 2339, 2341, 2338, 2348,
+ 2328, 2321, 6399, 2343, 2369, 2350, 2360, 2353, 2352, 2368,
+ 2387, 2364, 2382, 2371, 2388, 2373, 2396, 2397, 2391, 6399,
+ 2398, 2390, 2399, 2407, 2412, 2395, 2424, 2417, 2418, 2416,
+ 2425, 2446, 2442, 2444, 6399, 2432, 2452, 2445, 2441, 2451,
+ 2462, 2443, 2461, 2460, 2448, 2470, 2469, 291, 2468, 2482,
+ 2471, 2474, 6399, 2473, 68, 2488, 2489, 2483, 2510, 2511,
+ 2507, 2518, 2509, 2508, 2513, 2516, 2517, 2506, 2535, 2531,
+ 2534, 2523, 2537, 2538, 2549, 2540, 2552, 6399, 2562, 2561,
+
+ 2565, 2567, 2574, 2573, 2576, 2570, 2586, 2601, 2588, 6399,
+ 2596, 2610, 2600, 2602, 2592, 2615, 2613, 2604, 2626, 2625,
+ 2621, 2629, 2634, 2631, 2640, 2641, 6399, 2627, 2655, 2656,
+ 2643, 2654, 2653, 2679, 2666, 2657, 2662, 2687, 2711, 2681,
+ 2686, 2702, 2698, 2696, 2691, 2704, 2705, 2732, 2715, 2731,
+ 2712, 2727, 2737, 2750, 2753, 2744, 2748, 2774, 2768, 153,
+ 2759, 6399, 2762, 2757, 2760, 2764, 2803, 2793, 2795, 2787,
+ 2800, 2797, 2798, 2809, 2805, 2801, 2824, 2813, 2822, 2816,
+ 6399, 2838, 2839, 2827, 2842, 2828, 2847, 2852, 2840, 2858,
+ 2843, 2854, 2864, 2855, 2875, 2862, 2871, 2885, 2870, 6399,
+
+ 2758, 2867, 2873, 2898, 2886, 2882, 2897, 2896, 2891, 2894,
+ 2893, 2920, 2912, 2907, 2917, 2919, 2913, 2935, 2910, 2923,
+ 2924, 2940, 2949, 2938, 2947, 6399, 2951, 2971, 2946, 2956,
+ 2954, 2962, 2979, 2983, 2972, 2992, 2989, 2990, 2975, 2982,
+ 2978, 2995, 2997, 2998, 6399, 2999, 3011, 3012, 3020, 3019,
+ 3021, 3022, 3024, 3035, 3007, 3039, 3034, 3041, 3053, 3042,
+ 3049, 3051, 3060, 3058, 3078, 3073, 3082, 6399, 3075, 3084,
+ 3077, 3071, 3076, 3079, 3100, 3092, 3098, 3087, 3103, 3109,
+ 3105, 3131, 3133, 3117, 3119, 3120, 3121, 3102, 3115, 3130,
+ 3146, 3148, 3134, 3135, 3136, 3150, 3145, 3157, 3156, 3173,
+
+ 3167, 3175, 3185, 3183, 3186, 3176, 3182, 3179, 3202, 6399,
+ 3200, 3195, 3199, 3218, 3203, 3205, 3206, 3216, 3233, 3237,
+ 6399, 3222, 6399, 3234, 3241, 3246, 6399, 3244, 6399, 3253,
+ 3238, 6399, 3252, 3256, 3243, 3247, 3248, 3271, 3263, 3259,
+ 3273, 3267, 3290, 3266, 3281, 3293, 3282, 3302, 6399, 3295,
+ 3294, 3296, 3305, 3308, 3311, 3316, 3317, 3320, 3321, 3328,
+ 3322, 3347, 3339, 3350, 6399, 3337, 3346, 3342, 3354, 6399,
+ 3338, 3355, 3366, 3352, 3357, 3368, 3363, 3365, 3397, 3381,
+ 3386, 3387, 3399, 3380, 3398, 3411, 3408, 3392, 3402, 3413,
+ 3416, 3412, 3425, 3418, 3429, 3422, 3442, 3428, 3430, 3431,
+
+ 3439, 3440, 3452, 3449, 3468, 3445, 3455, 3456, 3463, 6399,
+ 3459, 3467, 3466, 3495, 3473, 3485, 3477, 3489, 3494, 3490,
+ 3502, 3515, 3492, 6399, 3498, 6399, 3506, 3510, 3520, 3535,
+ 3522, 3534, 3528, 3537, 3529, 3551, 3543, 3555, 3553, 3547,
+ 3556, 3554, 3562, 3561, 3573, 6399, 3532, 3568, 3590, 3581,
+ 3583, 3588, 3601, 3613, 3587, 3606, 6399, 3603, 3608, 3612,
+ 3604, 3628, 3615, 6399, 3607, 3642, 3631, 3638, 6399, 6399,
+ 3632, 3637, 3633, 3639, 3643, 3655, 3640, 3658, 6399, 3611,
+ 3659, 3671, 3672, 3682, 3683, 3654, 3668, 6399, 3665, 3693,
+ 3686, 3689, 3685, 3699, 3698, 3674, 3710, 3707, 3704, 3702,
+
+ 3728, 3727, 3732, 6399, 3731, 3724, 3739, 3729, 3738, 3723,
+ 3720, 3734, 3748, 3755, 3750, 3756, 3767, 3765, 3758, 3761,
+ 3773, 3786, 3763, 3777, 3775, 3793, 3788, 3797, 3785, 3807,
+ 3805, 3791, 3813, 6399, 3815, 3799, 3824, 3800, 3818, 3828,
+ 3829, 3834, 3846, 3819, 3827, 3836, 3842, 6399, 3872, 3823,
+ 3851, 3857, 3855, 3854, 3866, 3856, 3850, 3879, 3864, 3887,
+ 3874, 3878, 3895, 3904, 6399, 6399, 3898, 3889, 3908, 3897,
+ 3902, 3911, 3892, 3925, 3906, 3914, 6399, 3923, 3916, 3922,
+ 3933, 3949, 3951, 3948, 3953, 3945, 3936, 3943, 3952, 3963,
+ 3947, 3960, 3967, 3946, 3978, 6399, 3977, 3984, 3981, 3993,
+
+ 3995, 3994, 4002, 4020, 4006, 3989, 4005, 3987, 4017, 4015,
+ 4040, 4022, 4012, 4029, 4023, 6399, 4033, 4039, 4042, 4026,
+ 4053, 4030, 4060, 4047, 6399, 4058, 4063, 4062, 4071, 4055,
+ 4078, 4070, 4072, 4086, 4074, 6399, 4079, 6399, 4090, 4082,
+ 6399, 4088, 4095, 4096, 4099, 4109, 4112, 4098, 4115, 4110,
+ 4111, 4125, 4126, 4121, 4119, 6399, 4142, 4122, 4123, 4135,
+ 6399, 4147, 6399, 4145, 6399, 4148, 4150, 4170, 4149, 4167,
+ 4171, 4178, 4172, 6399, 4175, 4159, 4183, 4176, 4187, 4177,
+ 4201, 4203, 4191, 4204, 4214, 6399, 4202, 4209, 4196, 4207,
+ 4212, 4223, 4238, 4231, 6399, 4240, 4235, 4236, 4250, 4249,
+
+ 6399, 4248, 4259, 6399, 4252, 4268, 4247, 4264, 4278, 4282,
+ 4284, 4267, 4270, 4197, 4293, 4279, 4291, 6399, 4283, 4294,
+ 4301, 4303, 4300, 4312, 4276, 4317, 4311, 4321, 4323, 4335,
+ 4325, 4339, 4326, 4343, 4345, 4344, 6399, 4350, 4352, 6399,
+ 4360, 4338, 4349, 4353, 6399, 4372, 6399, 4380, 4374, 4363,
+ 4366, 4392, 4394, 4395, 4379, 4393, 4399, 4396, 4417, 4400,
+ 4412, 6399, 6399, 4410, 4427, 4402, 4414, 4433, 4431, 4422,
+ 4438, 4441, 4445, 4447, 6399, 4444, 4430, 6399, 4437, 4451,
+ 4458, 4461, 4477, 4466, 4470, 4463, 4483, 4479, 4490, 4465,
+ 4480, 6399, 4493, 4473, 4474, 4497, 4506, 4503, 4507, 6399,
+
+ 4504, 4502, 4529, 4522, 4523, 4525, 4539, 4536, 4541, 4530,
+ 4531, 4546, 4566, 4553, 4555, 6399, 4556, 4549, 4550, 4567,
+ 4581, 4584, 4571, 4585, 4568, 4589, 4591, 4587, 4573, 6399,
+ 4594, 4603, 4588, 4604, 4602, 4616, 4606, 4623, 4610, 4608,
+ 4617, 4619, 4625, 6399, 4621, 4630, 4640, 4652, 4642, 4643,
+ 4645, 4644, 4651, 4634, 4672, 4654, 4674, 6399, 4665, 4670,
+ 4659, 4680, 4667, 4690, 4691, 4683, 4697, 4699, 4700, 4702,
+ 4710, 4715, 6399, 4694, 6399, 4703, 4727, 4718, 4731, 4729,
+ 6399, 4723, 4725, 6399, 4735, 4737, 4733, 4745, 6399, 4741,
+ 4758, 4746, 4765, 4769, 6399, 4770, 4774, 4786, 4782, 4773,
+
+ 4788, 4771, 4780, 4772, 4801, 6399, 4799, 4792, 4805, 4806,
+ 4797, 4800, 4798, 4804, 4814, 4818, 4841, 4831, 4822, 6399,
+ 4826, 4838, 4851, 4844, 4846, 6399, 6399, 4845, 4853, 4857,
+ 4829, 4861, 6399, 4870, 4856, 4864, 4863, 4868, 6399, 6399,
+ 4866, 6399, 4867, 6399, 6399, 4887, 4891, 4898, 6399, 4899,
+ 6399, 4905, 4901, 4890, 4886, 4904, 6399, 4888, 4910, 4911,
+ 6399, 4912, 4915, 4923, 4925, 6399, 4916, 6399, 4919, 4924,
+ 4939, 4928, 4931, 4942, 4948, 4927, 4959, 4960, 4949, 4946,
+ 4962, 4958, 4965, 4967, 4966, 4976, 4975, 4979, 4973, 4972,
+ 4987, 4983, 4988, 4997, 5015, 5004, 4999, 5005, 5006, 5018,
+
+ 5014, 5025, 5031, 5019, 5020, 5034, 6399, 6399, 5032, 5026,
+ 6399, 5040, 5047, 5044, 5048, 5042, 5052, 5055, 5069, 6399,
+ 5049, 5071, 5063, 5076, 5074, 5067, 5084, 5088, 5086, 5091,
+ 5106, 5093, 5096, 5094, 5098, 5119, 5107, 5108, 5121, 5120,
+ 5130, 5135, 5138, 6399, 5123, 6399, 5131, 5125, 5141, 6399,
+ 6399, 5136, 5158, 5139, 5144, 5152, 5173, 5171, 6399, 5162,
+ 5172, 5174, 5165, 6399, 5180, 6399, 5181, 5163, 5184, 5186,
+ 5193, 6399, 6399, 6399, 5194, 5188, 5199, 5187, 5201, 5202,
+ 5214, 5198, 5222, 6399, 5209, 5226, 5227, 5220, 5234, 5238,
+ 5233, 5237, 5250, 5243, 5251, 5241, 5258, 5255, 5266, 6399,
+
+ 6399, 5259, 5276, 5268, 5279, 5277, 5275, 5278, 5269, 5283,
+ 5289, 5285, 6399, 5295, 5296, 5299, 5300, 5306, 5310, 5308,
+ 5311, 6399, 6399, 5312, 5314, 5324, 5329, 5326, 5321, 5335,
+ 5332, 5333, 6399, 5339, 6399, 5344, 5351, 5368, 5349, 5357,
+ 5362, 6399, 5360, 5361, 6399, 5371, 5359, 5370, 6399, 5379,
+ 6399, 6399, 5383, 6399, 5384, 6399, 5388, 5389, 5393, 5396,
+ 5403, 5412, 5405, 5409, 5400, 5407, 5419, 5422, 5420, 6399,
+ 6399, 5433, 5402, 5431, 5443, 5416, 5438, 5444, 6399, 6399,
+ 5445, 5451, 6399, 5428, 5439, 5458, 5449, 5455, 5447, 5459,
+ 5460, 5465, 5470, 5490, 5492, 5494, 5480, 5498, 5481, 5478,
+
+ 5500, 5506, 5512, 6399, 5510, 5508, 5497, 6399, 5513, 5507,
+ 5529, 5538, 5535, 6399, 5527, 5546, 5547, 5539, 5534, 5552,
+ 5537, 5554, 6399, 5555, 5558, 5556, 6399, 5559, 6399, 5575,
+ 6399, 6399, 5564, 5579, 5583, 6399, 5588, 5596, 6399, 5589,
+ 5590, 5578, 5582, 5603, 6399, 5609, 5607, 5613, 5610, 5616,
+ 5611, 5623, 5617, 5622, 6399, 5614, 5630, 5632, 5634, 5648,
+ 5637, 5635, 5636, 5657, 5649, 5640, 5653, 5658, 6399, 5668,
+ 5670, 6399, 5662, 6399, 5671, 5672, 5681, 6399, 5687, 5674,
+ 5673, 5684, 6399, 5689, 5691, 6399, 5680, 5706, 5709, 5710,
+ 5693, 5713, 5704, 5722, 5723, 5727, 6399, 5729, 5715, 5732,
+
+ 5734, 5740, 5720, 6399, 5739, 5745, 5750, 5756, 5748, 6399,
+ 5757, 5759, 6399, 5758, 5755, 5749, 5775, 5769, 5779, 5781,
+ 5783, 6399, 5789, 6399, 6399, 5776, 6399, 5770, 5793, 6399,
+ 5798, 5785, 5784, 5800, 5813, 5812, 6399, 6399, 5810, 5806,
+ 5818, 5823, 6399, 5815, 5826, 5825, 5820, 5837, 6399, 5821,
+ 5834, 5831, 5844, 5848, 5842, 5862, 6399, 6399, 5852, 6399,
+ 5868, 5874, 5873, 6399, 6399, 6399, 5878, 6399, 5880, 5884,
+ 5881, 6399, 5886, 5870, 5882, 6399, 5891, 5895, 5883, 6399,
+ 5899, 5894, 5905, 5914, 5916, 5904, 5915, 5924, 5909, 5912,
+ 5928, 5930, 5932, 5921, 5938, 6399, 6399, 5945, 6399, 6399,
+
+ 5950, 5952, 5953, 6399, 5947, 5958, 6399, 5960, 5951, 5965,
+ 5954, 5968, 6399, 6399, 5955, 5967, 6399, 5976, 5961, 5979,
+ 5972, 5971, 5985, 6399, 6399, 6399, 6399, 6399, 5983, 6399,
+ 6399, 6000, 5987, 5994, 6399, 5982, 6006, 6002, 6003, 6018,
+ 6010, 5998, 6024, 6020, 6019, 6029, 6041, 6042, 6048, 6047,
+ 6049, 6030, 6044, 6063, 6046, 6061, 6399, 6057, 6399, 6062,
+ 6399, 6058, 6067, 6069, 6064, 6070, 6073, 6399, 6079, 6091,
+ 6082, 6085, 6089, 6084, 6108, 6109, 6096, 6117, 6120, 6119,
+ 6122, 6126, 6118, 6138, 6132, 6399, 6136, 6133, 6142, 6139,
+ 6148, 6144, 6399, 6145, 6149, 6154, 6165, 6155, 6169, 6166,
+
+ 6179, 6186, 6184, 6183, 6172, 6197, 6195, 6196, 6200, 6193,
+ 6207, 6399, 6204, 6210, 6213, 6214, 6220, 6216, 6225, 6227,
+ 6238, 6242, 6239, 6245, 6243, 6399, 6246, 6399, 6399, 6252,
+ 6237, 6248, 6258, 6261, 6399, 6399, 6399, 6307, 6314, 6321,
+ 6328, 6335, 100, 6342, 6349, 6356, 6363, 6370, 6377, 6384,
+ 6391
} ;
-static yyconst flex_int16_t yy_def[2179] =
+static yyconst flex_int16_t yy_def[2252] =
{ 0,
- 2164, 1, 2165, 2165, 2166, 2166, 2167, 2167, 2168, 2168,
- 2169, 2169, 2164, 2170, 2164, 2164, 2164, 2164, 2171, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2172, 2164, 2164, 2164, 2172, 2173, 2164, 2164, 2164, 2173,
- 2174, 2164, 2164, 2164, 2164, 2174, 2175, 2164, 2164, 2164,
- 2175, 2176, 2164, 2177, 2164, 2176, 2176, 2170, 2170, 2164,
- 2178, 2171, 2178, 2171, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2172, 2172, 2173, 2173, 2174, 2174, 2164, 2175, 2175, 2176,
- 2176, 2177, 2177, 2176, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2176, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2176, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2164, 2176, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2176,
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2164, 2164, 2170, 2164, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2176, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2176, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2164,
- 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2164,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2164,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2164, 2164, 2170, 2170,
- 2170, 2170, 2170, 2164, 2164, 2164, 2170, 2164, 2170, 2164,
-
- 2164, 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2164, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2164, 2164,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170,
- 2170, 2170, 2164, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2164, 2164, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2164, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170,
- 2170, 2164, 2170, 2164, 2164, 2170, 2164, 2170, 2164, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2164, 2170, 2164, 2164, 2164,
- 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2164, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2164, 2170, 2164, 2164, 2164,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2164, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2164,
- 2170, 2164, 2170, 2170, 2170, 2164, 2164, 2164, 2170, 2164,
-
- 2170, 2170, 2164, 2170, 2170, 2170, 2164, 2170, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2164, 2164, 2170, 2164, 2170,
- 2170, 2170, 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170,
- 2164, 2164, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
- 2170, 2164, 2164, 2164, 2164, 2164, 2170, 2164, 2170, 2170,
- 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2164, 2170, 2164, 2170, 2164, 2170, 2170,
- 2170, 2170, 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170,
-
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2170, 2170, 2170, 2170, 2170, 2164,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2164, 2170,
- 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170,
- 2170, 2170, 2164, 2170, 2164, 2164, 2170, 2170, 2170, 2170,
- 2170, 2164, 2164, 0, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164
+ 2237, 1, 2238, 2238, 2239, 2239, 2240, 2240, 2241, 2241,
+ 2242, 2242, 2237, 2243, 2237, 2237, 2237, 2237, 2244, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2245, 2237, 2237, 2237, 2245, 2246, 2237, 2237, 2237, 2246,
+ 2247, 2237, 2237, 2237, 2237, 2247, 2248, 2237, 2237, 2237,
+ 2248, 2249, 2237, 2250, 2237, 2249, 2249, 2243, 2243, 2237,
+ 2251, 2244, 2251, 2244, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2245, 2245, 2246, 2246, 2247, 2247, 2237, 2248, 2248, 2249,
+ 2249, 2250, 2250, 2249, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2249, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2249, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2249, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2249, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2237, 2237, 2243, 2237, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2249, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2249, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2237, 2243,
+ 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+
+ 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2237,
+ 2243, 2237, 2243, 2237, 2237, 2243, 2243, 2243, 2237, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2237,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243,
+ 2237, 2237, 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2237, 2243,
+ 2237, 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2237, 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2243, 2237, 2237, 2243, 2237, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2237,
+ 2243, 2243, 2243, 2237, 2237, 2237, 2243, 2237, 2243, 2243,
+ 2243, 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2237,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2237, 2243, 2237, 2237,
+
+ 2243, 2243, 2243, 2237, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2237, 2243, 2243, 2237, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2237, 2237, 2237, 2237, 2237, 2243, 2237,
+ 2237, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2243,
+ 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+
+ 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2237, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
+ 2243, 2243, 2243, 2243, 2243, 2237, 2243, 2237, 2237, 2243,
+ 2243, 2243, 2243, 2243, 2237, 2237, 0, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237
} ;
-static yyconst flex_uint16_t yy_nxt[6281] =
+static yyconst flex_uint16_t yy_nxt[6466] =
{ 0,
14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
14, 14, 18, 20, 14, 21, 22, 23, 24, 14,
@@ -1168,691 +1194,712 @@ static yyconst flex_uint16_t yy_nxt[6281] =
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 14, 14, 14, 14, 42, 43, 44, 42,
43, 44, 47, 48, 47, 48, 49, 97, 49, 52,
- 53, 54, 55, 805, 18, 52, 53, 54, 55, 69,
+ 53, 54, 55, 811, 18, 52, 53, 54, 55, 69,
18, 58, 59, 60, 58, 59, 60, 70, 131, 131,
68, 71, 87, 45, 97, 133, 45, 141, 133, 50,
73, 50, 73, 73, 69, 73, 141, 56, 99, 138,
138, 73, 88, 56, 139, 69, 75, 76, 61, 87,
69, 61, 15, 16, 17, 63, 64, 65, 15, 16,
- 17, 63, 64, 65, 77, 99, 89, 137, 74, 88,
+ 17, 63, 64, 65, 77, 99, 89, 183, 74, 88,
69, 91, 66, 75, 76, 78, 145, 107, 66, 92,
- 90, 70, 79, 69, 990, 71, 80, 173, 98, 81,
- 67, 77, 69, 89, 131, 131, 67, 69, 91, 66,
+ 90, 70, 79, 69, 1003, 71, 80, 69, 98, 81,
+ 67, 77, 69, 89, 183, 137, 67, 69, 91, 66,
69, 69, 78, 145, 107, 66, 92, 90, 93, 79,
- 69, 94, 69, 80, 100, 98, 81, 82, 95, 69,
+ 69, 94, 69, 80, 100, 98, 81, 82, 95, 136,
- 96, 83, 101, 136, 84, 197, 85, 86, 102, 134,
+ 96, 83, 101, 134, 84, 198, 85, 86, 102, 132,
104, 69, 103, 113, 105, 93, 147, 69, 94, 69,
69, 100, 146, 69, 82, 95, 69, 96, 83, 101,
- 106, 84, 197, 85, 86, 102, 69, 104, 114, 103,
+ 106, 84, 198, 85, 86, 102, 69, 104, 114, 103,
113, 105, 115, 147, 133, 69, 123, 133, 124, 146,
- 179, 132, 116, 69, 126, 117, 157, 106, 108, 127,
- 69, 69, 109, 125, 69, 114, 128, 69, 110, 115,
- 129, 111, 69, 123, 130, 124, 151, 179, 112, 116,
- 69, 126, 117, 157, 141, 108, 127, 138, 138, 109,
- 125, 144, 69, 128, 69, 110, 208, 129, 111, 158,
+ 180, 69, 116, 69, 126, 117, 157, 106, 108, 127,
+ 141, 69, 109, 125, 69, 114, 128, 69, 110, 115,
+ 129, 111, 69, 123, 130, 124, 151, 180, 112, 116,
+ 69, 126, 117, 157, 139, 108, 127, 131, 131, 109,
+ 125, 144, 69, 128, 69, 110, 209, 129, 111, 158,
- 897, 130, 69, 151, 141, 112, 118, 69, 68, 119,
+ 904, 130, 69, 151, 141, 112, 118, 69, 68, 119,
68, 68, 135, 68, 135, 135, 120, 135, 144, 68,
- 121, 122, 73, 208, 73, 73, 158, 73, 69, 140,
+ 121, 122, 73, 209, 73, 73, 158, 73, 69, 140,
69, 140, 140, 118, 140, 68, 119, 68, 68, 73,
68, 73, 73, 120, 73, 148, 68, 121, 122, 152,
- 73, 161, 150, 153, 155, 156, 139, 159, 149, 154,
- 143, 69, 69, 69, 69, 137, 162, 163, 166, 69,
- 136, 357, 148, 69, 69, 160, 152, 74, 161, 150,
+ 73, 161, 150, 153, 155, 156, 137, 159, 149, 154,
+ 143, 69, 69, 69, 69, 136, 162, 163, 166, 69,
+ 138, 138, 148, 69, 69, 160, 152, 74, 161, 150,
153, 155, 156, 69, 167, 149, 154, 164, 165, 69,
- 168, 69, 174, 162, 163, 166, 69, 69, 69, 180,
-
- 69, 134, 160, 69, 169, 175, 69, 170, 183, 177,
- 182, 167, 69, 178, 164, 165, 181, 168, 184, 174,
- 171, 172, 69, 188, 132, 176, 180, 69, 69, 69,
- 69, 169, 175, 69, 170, 183, 177, 182, 69, 69,
- 178, 185, 186, 181, 187, 184, 69, 171, 172, 69,
- 188, 189, 176, 69, 190, 69, 192, 194, 191, 195,
- 69, 193, 198, 69, 69, 196, 201, 202, 185, 186,
- 69, 187, 2164, 69, 2164, 204, 69, 2164, 189, 2164,
- 69, 190, 203, 192, 194, 191, 195, 69, 193, 198,
- 199, 206, 196, 201, 200, 205, 207, 69, 2164, 69,
-
- 69, 69, 204, 69, 209, 211, 213, 69, 214, 203,
- 2164, 212, 2164, 2164, 2164, 69, 2164, 199, 206, 2164,
- 2164, 200, 205, 207, 215, 210, 69, 69, 216, 69,
- 69, 209, 211, 213, 135, 214, 135, 135, 212, 135,
- 140, 217, 140, 140, 73, 140, 73, 73, 141, 73,
- 69, 215, 210, 218, 220, 216, 219, 221, 2164, 223,
- 224, 225, 69, 222, 229, 69, 69, 226, 2164, 69,
- 227, 2164, 228, 69, 238, 69, 2164, 258, 69, 2164,
- 218, 220, 143, 219, 221, 69, 223, 224, 316, 240,
- 222, 230, 69, 69, 226, 231, 69, 227, 69, 228,
-
- 69, 238, 239, 241, 242, 243, 246, 245, 69, 69,
- 69, 69, 232, 2164, 244, 249, 240, 69, 69, 69,
- 69, 2164, 231, 2164, 69, 69, 250, 251, 69, 239,
- 241, 242, 243, 246, 245, 259, 69, 262, 2164, 232,
- 233, 244, 249, 247, 256, 234, 248, 263, 69, 69,
- 235, 69, 2164, 250, 251, 257, 236, 237, 69, 252,
- 265, 69, 259, 69, 253, 69, 69, 233, 260, 69,
- 247, 256, 234, 248, 263, 264, 254, 235, 255, 261,
- 267, 69, 257, 236, 237, 69, 252, 266, 268, 2164,
- 269, 253, 69, 2164, 270, 271, 274, 272, 273, 275,
-
- 69, 69, 264, 254, 69, 255, 261, 277, 69, 69,
- 69, 284, 69, 276, 266, 287, 69, 269, 69, 69,
- 69, 270, 271, 274, 272, 273, 275, 69, 279, 69,
- 278, 280, 281, 282, 277, 291, 283, 289, 69, 69,
- 276, 69, 69, 69, 285, 286, 290, 69, 294, 297,
- 2164, 2164, 304, 69, 69, 279, 69, 278, 280, 281,
- 282, 288, 69, 283, 289, 293, 69, 69, 69, 292,
- 295, 285, 286, 290, 69, 294, 306, 69, 298, 300,
- 69, 69, 301, 69, 69, 303, 302, 307, 288, 305,
- 2164, 309, 293, 296, 69, 299, 292, 141, 311, 69,
-
- 69, 2164, 69, 69, 69, 298, 300, 313, 69, 301,
- 308, 69, 303, 302, 307, 310, 305, 69, 309, 312,
- 296, 69, 299, 69, 314, 311, 315, 317, 69, 318,
- 320, 69, 319, 321, 313, 2164, 69, 308, 322, 325,
- 323, 69, 310, 324, 327, 69, 312, 328, 330, 69,
- 2164, 314, 69, 315, 317, 69, 318, 320, 69, 319,
- 321, 69, 69, 69, 326, 322, 329, 323, 331, 332,
- 324, 69, 334, 69, 328, 69, 69, 69, 69, 333,
- 69, 335, 338, 337, 2164, 69, 69, 336, 69, 339,
- 343, 326, 69, 329, 340, 331, 332, 2164, 69, 334,
-
- 342, 344, 345, 341, 2164, 69, 333, 69, 335, 338,
- 337, 69, 69, 364, 336, 69, 339, 69, 350, 351,
- 69, 340, 69, 346, 353, 69, 2164, 342, 344, 345,
- 341, 347, 348, 354, 349, 2164, 69, 352, 69, 358,
- 69, 69, 2164, 69, 359, 350, 351, 360, 69, 370,
- 346, 353, 355, 356, 69, 361, 69, 362, 347, 348,
- 354, 349, 366, 69, 352, 363, 358, 69, 365, 367,
- 369, 359, 368, 372, 360, 69, 370, 69, 374, 355,
- 356, 69, 361, 69, 362, 69, 371, 375, 69, 366,
- 69, 526, 363, 373, 69, 365, 367, 369, 69, 368,
-
- 69, 376, 378, 380, 379, 69, 385, 377, 2164, 69,
- 69, 2164, 389, 371, 375, 386, 69, 384, 69, 69,
- 373, 2164, 381, 69, 390, 382, 69, 383, 376, 378,
- 380, 379, 387, 69, 377, 69, 69, 69, 69, 389,
- 388, 392, 386, 391, 384, 394, 69, 410, 402, 381,
- 404, 390, 382, 403, 383, 405, 69, 393, 69, 387,
- 69, 408, 2164, 406, 452, 69, 407, 388, 392, 141,
- 391, 69, 394, 69, 69, 402, 409, 411, 69, 69,
- 403, 69, 69, 69, 393, 395, 396, 412, 408, 413,
- 406, 452, 2164, 407, 69, 397, 69, 398, 399, 400,
-
- 2164, 415, 401, 409, 411, 414, 416, 417, 418, 421,
- 69, 2164, 395, 396, 412, 69, 413, 69, 69, 419,
- 423, 424, 397, 69, 398, 399, 400, 420, 415, 401,
- 427, 69, 414, 416, 69, 418, 422, 69, 69, 69,
- 69, 69, 428, 69, 425, 426, 419, 423, 424, 429,
- 431, 430, 2164, 69, 420, 2164, 432, 427, 435, 433,
- 69, 2164, 441, 422, 69, 2164, 2164, 69, 436, 428,
- 440, 444, 443, 69, 434, 69, 429, 431, 430, 69,
- 437, 69, 69, 432, 69, 435, 433, 442, 69, 441,
- 69, 438, 446, 439, 445, 436, 450, 440, 69, 443,
-
- 69, 434, 447, 69, 448, 449, 451, 437, 453, 454,
- 69, 2164, 69, 69, 442, 455, 476, 457, 438, 446,
- 439, 445, 69, 450, 456, 69, 69, 458, 69, 447,
- 69, 448, 449, 451, 69, 453, 461, 459, 69, 69,
- 460, 69, 455, 462, 457, 69, 463, 464, 69, 465,
- 2164, 456, 69, 69, 458, 69, 466, 2164, 468, 69,
- 467, 469, 2164, 461, 459, 470, 69, 460, 69, 69,
- 462, 471, 69, 463, 464, 69, 465, 69, 507, 69,
- 480, 475, 69, 466, 477, 468, 69, 467, 469, 474,
- 478, 472, 470, 473, 69, 481, 69, 479, 471, 69,
-
- 69, 482, 69, 483, 69, 507, 485, 480, 475, 486,
- 69, 477, 69, 523, 489, 488, 474, 478, 472, 69,
- 473, 69, 69, 491, 479, 69, 484, 69, 482, 487,
- 2164, 69, 490, 485, 69, 69, 486, 69, 492, 493,
- 523, 489, 488, 501, 69, 69, 502, 69, 500, 69,
- 491, 69, 503, 484, 505, 69, 487, 69, 2164, 490,
- 509, 506, 504, 2164, 510, 492, 493, 494, 69, 508,
- 501, 69, 495, 502, 496, 500, 69, 2164, 69, 2164,
- 511, 505, 497, 521, 69, 498, 69, 509, 506, 504,
- 512, 510, 499, 69, 494, 69, 508, 513, 514, 495,
-
- 515, 496, 69, 69, 518, 69, 517, 511, 516, 497,
- 525, 519, 498, 520, 69, 69, 69, 512, 527, 499,
- 524, 529, 69, 2164, 513, 514, 69, 515, 522, 69,
- 528, 518, 69, 517, 69, 516, 141, 525, 519, 530,
- 520, 531, 533, 69, 532, 69, 534, 524, 535, 537,
- 69, 536, 541, 69, 69, 522, 69, 528, 538, 69,
- 69, 542, 544, 539, 69, 69, 530, 540, 531, 533,
- 69, 532, 543, 534, 545, 535, 537, 546, 536, 69,
- 547, 69, 2164, 548, 549, 551, 69, 550, 69, 69,
- 69, 552, 69, 553, 540, 557, 2164, 555, 2164, 558,
-
- 2164, 69, 559, 2164, 69, 69, 69, 547, 69, 69,
- 548, 549, 551, 554, 550, 69, 69, 564, 556, 69,
- 553, 69, 69, 69, 555, 69, 558, 69, 560, 559,
- 563, 566, 565, 561, 567, 568, 569, 562, 2164, 69,
- 554, 69, 571, 69, 564, 556, 2164, 570, 69, 572,
- 2164, 574, 69, 69, 582, 560, 69, 563, 566, 565,
- 561, 567, 568, 575, 562, 69, 69, 2164, 69, 571,
- 576, 573, 69, 69, 570, 577, 572, 578, 574, 581,
- 580, 69, 579, 2164, 583, 69, 69, 587, 584, 69,
- 575, 69, 585, 589, 69, 586, 69, 576, 573, 69,
-
- 69, 590, 577, 592, 578, 69, 581, 580, 588, 579,
- 591, 583, 69, 2164, 587, 584, 69, 69, 593, 585,
- 596, 69, 586, 69, 594, 69, 598, 69, 590, 595,
- 592, 2164, 597, 599, 69, 588, 600, 601, 603, 2164,
- 69, 69, 69, 605, 604, 593, 69, 596, 606, 2164,
- 607, 2164, 602, 69, 69, 608, 69, 69, 69, 597,
- 599, 69, 609, 600, 601, 603, 69, 611, 617, 2164,
- 610, 604, 612, 616, 613, 69, 69, 607, 69, 602,
- 614, 69, 608, 69, 615, 2164, 69, 69, 69, 609,
- 618, 69, 69, 621, 611, 617, 69, 610, 620, 612,
-
- 616, 613, 69, 619, 622, 69, 69, 614, 623, 2164,
- 624, 615, 69, 625, 2164, 626, 69, 618, 69, 628,
- 621, 629, 2164, 630, 632, 620, 2164, 627, 2164, 2164,
- 619, 69, 69, 631, 633, 623, 69, 624, 69, 69,
- 625, 69, 626, 69, 69, 634, 628, 69, 629, 635,
- 630, 632, 636, 637, 627, 638, 69, 640, 645, 639,
- 631, 633, 69, 641, 69, 69, 642, 643, 650, 644,
- 69, 69, 634, 2164, 69, 69, 635, 69, 2164, 636,
- 637, 69, 638, 648, 640, 645, 639, 646, 141, 649,
- 641, 69, 69, 642, 643, 647, 644, 69, 651, 655,
-
- 69, 69, 653, 652, 2164, 69, 654, 2164, 656, 657,
- 648, 665, 672, 69, 646, 69, 649, 69, 69, 658,
- 668, 69, 647, 69, 666, 651, 69, 69, 670, 653,
- 652, 69, 659, 654, 69, 656, 657, 2164, 665, 69,
- 2164, 69, 669, 667, 69, 671, 658, 668, 2164, 707,
- 2164, 666, 681, 680, 69, 670, 685, 682, 69, 659,
- 660, 69, 684, 2164, 661, 69, 69, 662, 686, 669,
- 667, 69, 671, 687, 663, 69, 683, 664, 69, 681,
- 680, 69, 69, 69, 682, 688, 69, 660, 69, 684,
- 691, 661, 689, 690, 662, 686, 2164, 69, 694, 69,
-
- 687, 663, 692, 683, 664, 673, 674, 2164, 675, 693,
- 2164, 676, 688, 69, 69, 69, 677, 691, 69, 689,
- 690, 696, 678, 679, 69, 694, 699, 698, 69, 692,
- 700, 69, 673, 674, 69, 675, 693, 695, 676, 697,
- 704, 708, 69, 677, 703, 69, 69, 69, 696, 678,
- 679, 702, 69, 699, 698, 701, 705, 700, 706, 69,
- 69, 720, 69, 709, 695, 710, 697, 704, 69, 711,
- 712, 703, 713, 69, 715, 717, 714, 718, 702, 2164,
- 69, 69, 701, 69, 2164, 706, 69, 69, 69, 69,
- 709, 719, 710, 69, 69, 69, 711, 712, 69, 713,
-
- 716, 715, 69, 714, 718, 721, 722, 723, 69, 725,
- 69, 724, 729, 69, 727, 726, 730, 728, 719, 69,
- 734, 733, 2164, 2164, 69, 69, 2164, 716, 69, 69,
- 69, 69, 721, 722, 723, 69, 725, 731, 724, 729,
- 69, 727, 726, 730, 728, 732, 69, 69, 733, 735,
- 737, 736, 738, 739, 743, 69, 69, 741, 69, 69,
- 740, 69, 742, 69, 731, 745, 744, 69, 749, 747,
- 748, 746, 732, 69, 69, 69, 735, 737, 736, 738,
- 739, 743, 69, 69, 741, 69, 69, 740, 752, 742,
- 751, 69, 745, 744, 750, 69, 747, 748, 746, 753,
-
- 754, 69, 755, 69, 2164, 759, 758, 756, 761, 760,
- 69, 69, 764, 765, 762, 757, 763, 751, 2164, 767,
- 69, 750, 69, 69, 769, 69, 69, 754, 69, 755,
- 766, 69, 759, 758, 756, 69, 760, 69, 69, 764,
- 69, 762, 757, 763, 768, 69, 69, 770, 772, 771,
- 774, 141, 773, 69, 775, 69, 69, 766, 776, 69,
- 784, 69, 2164, 69, 69, 791, 785, 2164, 2164, 783,
- 792, 768, 69, 2164, 770, 772, 771, 774, 69, 773,
- 786, 775, 69, 69, 789, 776, 777, 784, 778, 787,
- 788, 2164, 779, 785, 780, 69, 783, 69, 2164, 781,
-
- 794, 790, 69, 798, 782, 793, 69, 786, 795, 799,
- 69, 789, 69, 777, 69, 778, 787, 788, 69, 779,
- 69, 780, 69, 69, 796, 69, 781, 794, 790, 801,
- 798, 782, 793, 800, 797, 795, 799, 802, 803, 69,
- 804, 812, 69, 2164, 2164, 2164, 69, 811, 821, 2164,
- 816, 796, 813, 2164, 814, 2164, 801, 815, 69, 823,
- 800, 797, 69, 69, 802, 69, 817, 69, 812, 69,
- 69, 806, 69, 818, 811, 69, 807, 816, 808, 813,
- 819, 814, 820, 69, 815, 69, 69, 822, 69, 809,
- 69, 69, 826, 817, 824, 827, 810, 69, 806, 2164,
-
- 818, 2164, 828, 807, 825, 808, 69, 819, 830, 820,
- 69, 832, 69, 841, 822, 831, 809, 829, 69, 826,
- 2164, 824, 69, 810, 69, 69, 69, 69, 833, 828,
- 835, 825, 834, 69, 836, 830, 837, 2164, 832, 2164,
- 69, 69, 831, 838, 829, 69, 69, 839, 840, 69,
- 69, 842, 69, 850, 843, 833, 845, 835, 844, 834,
- 846, 836, 69, 837, 69, 69, 69, 69, 69, 847,
- 838, 848, 849, 851, 839, 840, 862, 853, 842, 69,
- 850, 843, 69, 845, 854, 844, 852, 846, 69, 855,
- 69, 69, 856, 69, 2164, 857, 847, 858, 848, 849,
-
- 69, 859, 860, 861, 853, 69, 865, 864, 69, 69,
- 863, 871, 69, 852, 69, 69, 69, 69, 69, 856,
- 866, 69, 857, 868, 858, 867, 869, 2164, 859, 860,
- 861, 69, 69, 865, 864, 872, 69, 863, 871, 870,
- 873, 874, 69, 882, 2164, 69, 69, 866, 69, 876,
- 868, 875, 867, 869, 69, 877, 878, 880, 69, 881,
- 2164, 69, 872, 879, 69, 69, 870, 873, 69, 69,
- 883, 69, 884, 69, 886, 69, 876, 887, 875, 69,
- 885, 888, 877, 878, 880, 889, 881, 890, 891, 69,
- 879, 892, 69, 69, 69, 893, 69, 883, 69, 884,
-
- 69, 886, 894, 895, 887, 896, 899, 885, 888, 901,
- 69, 69, 898, 69, 903, 891, 69, 69, 892, 69,
- 69, 69, 69, 900, 69, 904, 902, 69, 905, 894,
- 895, 69, 896, 899, 69, 69, 901, 69, 906, 898,
- 907, 903, 908, 2164, 2164, 2164, 909, 911, 912, 2164,
- 900, 2164, 904, 902, 910, 905, 913, 919, 915, 916,
- 69, 69, 2164, 2164, 69, 914, 69, 927, 917, 908,
- 69, 69, 69, 909, 911, 912, 69, 69, 69, 69,
- 69, 910, 918, 913, 69, 915, 916, 920, 921, 922,
- 69, 923, 914, 69, 927, 917, 932, 69, 69, 928,
-
- 69, 2164, 929, 931, 935, 69, 924, 933, 2164, 918,
- 69, 930, 69, 934, 920, 921, 922, 925, 923, 936,
- 926, 69, 69, 932, 69, 69, 928, 69, 69, 929,
- 931, 935, 938, 924, 933, 69, 940, 937, 930, 939,
- 934, 69, 942, 941, 925, 69, 936, 926, 943, 946,
- 69, 944, 945, 2164, 69, 69, 948, 69, 954, 69,
- 69, 949, 69, 940, 937, 69, 939, 69, 947, 942,
- 941, 69, 950, 951, 69, 943, 946, 2164, 944, 945,
- 69, 955, 69, 948, 69, 952, 953, 956, 949, 957,
- 69, 968, 69, 958, 69, 947, 69, 962, 960, 950,
-
- 951, 965, 959, 961, 69, 69, 69, 964, 955, 963,
- 2164, 966, 952, 953, 956, 69, 957, 69, 969, 967,
- 958, 69, 69, 69, 962, 69, 970, 69, 965, 959,
- 69, 971, 972, 973, 964, 974, 963, 69, 966, 976,
- 975, 977, 979, 978, 69, 969, 967, 69, 69, 69,
- 980, 69, 981, 970, 69, 69, 69, 69, 971, 972,
- 973, 69, 974, 69, 982, 983, 976, 975, 977, 979,
- 978, 2164, 992, 2164, 991, 2164, 995, 2164, 996, 989,
- 994, 2164, 69, 997, 69, 993, 69, 2164, 69, 69,
- 69, 982, 983, 984, 69, 69, 998, 69, 985, 992,
-
- 986, 991, 987, 995, 988, 69, 989, 994, 999, 69,
- 69, 69, 993, 1000, 1001, 1002, 1004, 1003, 2164, 1008,
- 984, 69, 1006, 998, 69, 985, 69, 986, 69, 987,
- 69, 988, 1007, 69, 69, 999, 1005, 1010, 1009, 1012,
- 1000, 1001, 1002, 1004, 1003, 69, 69, 1011, 1013, 1006,
- 69, 1014, 1016, 1015, 69, 1017, 69, 1019, 2164, 1007,
- 69, 69, 1018, 1005, 69, 1009, 1012, 1022, 69, 1020,
- 1021, 69, 1024, 1023, 1011, 1013, 69, 69, 69, 69,
- 1015, 1025, 1017, 1026, 69, 1027, 69, 1028, 1029, 1018,
- 69, 1030, 69, 1032, 1022, 69, 1020, 1021, 69, 1024,
-
- 1023, 69, 1031, 1033, 69, 69, 1035, 1034, 1025, 1036,
- 1026, 1037, 1027, 1039, 1028, 69, 1040, 69, 69, 1038,
- 69, 69, 69, 69, 69, 69, 69, 1044, 1043, 1031,
- 1033, 1041, 1045, 1035, 1034, 69, 69, 1042, 1037, 1047,
- 1039, 1046, 69, 1050, 69, 69, 1038, 1051, 69, 1048,
- 69, 1049, 69, 69, 1044, 1043, 69, 1052, 1041, 1045,
- 1054, 2164, 1058, 1053, 1042, 69, 1047, 69, 1046, 69,
- 1050, 1055, 1056, 1059, 1051, 1060, 1048, 1057, 1049, 69,
- 69, 1063, 69, 1061, 69, 1066, 1062, 1054, 69, 1058,
- 1053, 1064, 69, 1065, 2164, 69, 1067, 1069, 1055, 1068,
-
- 1059, 1077, 1060, 69, 69, 69, 69, 1072, 1063, 69,
- 1061, 1070, 69, 1062, 1075, 69, 69, 69, 1064, 69,
- 1065, 1071, 1073, 1067, 1069, 1074, 1068, 1076, 1077, 69,
- 69, 69, 69, 1079, 1072, 1078, 69, 69, 1070, 1080,
- 2164, 1075, 1083, 1081, 2164, 1082, 69, 1084, 1071, 1073,
- 69, 69, 1074, 69, 1076, 69, 1085, 1087, 1090, 1086,
- 1079, 1088, 1078, 1093, 69, 1089, 1080, 69, 69, 1083,
- 1081, 1092, 1082, 1094, 1084, 69, 1091, 69, 69, 69,
- 1095, 1097, 69, 1085, 1087, 1090, 1086, 69, 1088, 1096,
- 1098, 1099, 1089, 69, 1103, 69, 2164, 1101, 1092, 1102,
-
- 2164, 1100, 69, 1091, 1108, 69, 69, 1095, 69, 69,
- 69, 69, 69, 69, 1112, 69, 1096, 1098, 1099, 69,
- 1104, 1103, 1106, 1115, 1101, 1105, 1102, 1107, 1100, 1109,
- 1110, 1108, 1111, 1113, 69, 1114, 1116, 69, 69, 1117,
- 69, 2164, 2164, 69, 69, 1118, 69, 69, 1124, 1125,
- 1115, 1121, 69, 69, 69, 1119, 1109, 1110, 1123, 1111,
- 1113, 1120, 1114, 69, 69, 1122, 1117, 2164, 69, 69,
- 69, 69, 1118, 69, 69, 1124, 1125, 1127, 1121, 1126,
- 1128, 1130, 1119, 1131, 1132, 1123, 1129, 1138, 1120, 1144,
- 1136, 2164, 1122, 1139, 69, 69, 2164, 69, 69, 1133,
-
- 2164, 69, 69, 1134, 69, 1140, 1126, 1128, 1130, 69,
- 1131, 1132, 1137, 1129, 69, 69, 1135, 1136, 1141, 1145,
- 1139, 69, 1142, 69, 69, 69, 1133, 1143, 69, 1146,
- 1134, 69, 1140, 1147, 69, 1148, 1149, 1150, 69, 1137,
- 1151, 2164, 1152, 1135, 2164, 1141, 69, 1153, 1158, 1142,
- 1154, 1155, 1157, 69, 1143, 69, 1146, 1156, 2164, 69,
- 1147, 69, 1148, 69, 69, 69, 1160, 69, 69, 1152,
- 69, 69, 1161, 1159, 1153, 1158, 69, 1154, 1155, 1157,
- 1162, 2164, 1163, 1164, 1156, 69, 1165, 69, 69, 1166,
- 1167, 1169, 1168, 69, 1170, 69, 1172, 2164, 69, 1161,
-
- 1159, 2164, 69, 69, 1173, 1181, 2164, 1162, 69, 1163,
- 1164, 1171, 69, 1165, 69, 1176, 1166, 1167, 69, 1168,
- 1174, 1170, 69, 1172, 69, 1175, 69, 69, 1177, 1178,
- 2164, 1173, 69, 69, 1179, 1180, 69, 69, 1171, 1182,
- 1183, 1184, 1176, 1185, 2164, 2164, 69, 1174, 1187, 1191,
- 69, 1189, 1175, 1190, 69, 1177, 1178, 69, 69, 69,
- 1193, 1179, 1180, 1186, 1188, 1199, 1182, 69, 1184, 69,
- 69, 69, 69, 1192, 1194, 1187, 1191, 69, 1189, 69,
- 1190, 1195, 1200, 1196, 69, 69, 1197, 1193, 69, 69,
- 1186, 1188, 1202, 1201, 1203, 1205, 69, 69, 1198, 1204,
-
- 1192, 1194, 1206, 1207, 69, 1210, 1212, 69, 1195, 1200,
- 1196, 69, 69, 1197, 69, 1209, 1208, 1211, 1214, 1202,
- 1201, 1203, 69, 69, 69, 1198, 1204, 69, 69, 1206,
- 1207, 1213, 1215, 1216, 2164, 69, 1220, 69, 69, 69,
- 69, 1217, 1209, 1208, 1211, 1214, 1218, 1219, 1221, 69,
- 69, 1222, 1224, 69, 69, 69, 1223, 2164, 1213, 69,
- 1216, 69, 1225, 1220, 1226, 1229, 69, 1227, 1217, 69,
- 69, 69, 1230, 1218, 1219, 1221, 1228, 1233, 1222, 69,
- 69, 1232, 69, 1223, 69, 1231, 1239, 1234, 69, 1225,
- 1235, 1226, 69, 69, 1227, 1236, 2164, 69, 1240, 1230,
-
- 1241, 1243, 1242, 1228, 1233, 69, 69, 69, 1232, 69,
- 1244, 1237, 1231, 1239, 1234, 1246, 1238, 1235, 1248, 1245,
- 1252, 1249, 1236, 69, 1251, 69, 69, 69, 1243, 1242,
- 69, 1247, 69, 69, 1250, 1254, 69, 1244, 1237, 69,
- 1256, 1255, 1246, 1238, 1253, 1248, 1245, 69, 1249, 69,
- 69, 69, 69, 69, 1257, 1258, 69, 1259, 1247, 69,
- 1260, 1250, 1254, 1261, 1262, 69, 1264, 1256, 1255, 69,
- 69, 1253, 1265, 1270, 1263, 69, 1267, 1272, 1271, 1268,
- 1274, 1257, 1258, 1276, 1259, 1279, 1266, 1260, 69, 69,
- 1261, 1262, 69, 1264, 69, 1269, 1275, 2164, 69, 1265,
-
- 1277, 1263, 1273, 1267, 69, 69, 1268, 1278, 1283, 69,
- 1280, 69, 69, 1266, 69, 69, 69, 69, 69, 1281,
- 1284, 69, 1269, 1275, 69, 1282, 1285, 1277, 1287, 1273,
- 1288, 1289, 1286, 1291, 1278, 1283, 69, 1280, 1293, 69,
- 69, 69, 69, 69, 1292, 1290, 1281, 1284, 1294, 1297,
- 1300, 69, 1282, 1285, 69, 1287, 1295, 1296, 1289, 1286,
- 69, 69, 69, 1311, 1298, 1293, 1307, 69, 69, 1299,
- 69, 1292, 1290, 1301, 1302, 1294, 1297, 69, 69, 69,
- 1303, 69, 1304, 1295, 1296, 1305, 69, 1308, 1313, 1310,
- 69, 1298, 1306, 69, 69, 69, 1299, 69, 69, 69,
-
- 1301, 1302, 69, 1312, 1309, 1315, 1314, 1303, 1316, 1304,
- 69, 1317, 1305, 69, 1308, 69, 1310, 1318, 1319, 1306,
- 2164, 1323, 1324, 69, 1320, 69, 69, 69, 69, 69,
- 1312, 1309, 1315, 1314, 1321, 69, 1322, 69, 1317, 69,
- 1325, 2164, 69, 69, 1318, 1319, 1326, 1327, 1323, 1324,
- 1329, 1320, 69, 1331, 1330, 1335, 1332, 69, 69, 1336,
- 1328, 1321, 69, 1322, 1333, 69, 69, 1325, 69, 1337,
- 69, 1334, 1338, 1326, 1327, 1340, 69, 1329, 1339, 69,
- 69, 1330, 1335, 1341, 69, 1342, 69, 1328, 69, 1343,
- 1344, 1333, 1345, 1346, 1348, 2164, 1337, 1349, 1334, 69,
-
- 1350, 69, 69, 1351, 2164, 1339, 69, 1347, 2164, 69,
- 1341, 1358, 2164, 69, 2164, 1360, 1343, 69, 69, 1345,
- 1361, 1348, 69, 1364, 69, 69, 69, 1350, 1362, 1352,
- 1353, 1354, 1356, 1357, 1347, 69, 1355, 1370, 1359, 69,
- 69, 69, 1363, 69, 69, 69, 1366, 69, 69, 1369,
- 69, 1365, 69, 1371, 1367, 1362, 1352, 1353, 1354, 1356,
- 1357, 69, 1368, 1355, 69, 1359, 1373, 69, 1372, 1363,
- 1374, 69, 69, 1366, 69, 69, 1369, 1378, 1365, 1375,
- 1371, 1367, 69, 1376, 1377, 69, 1379, 69, 1382, 1368,
- 1381, 1380, 1385, 69, 1384, 1372, 1386, 1374, 1383, 69,
-
- 1387, 69, 69, 69, 1378, 69, 1375, 1388, 1389, 1390,
- 1376, 1377, 69, 1379, 69, 1391, 69, 1381, 1380, 1393,
- 69, 1384, 1392, 69, 69, 1383, 69, 69, 69, 69,
- 1394, 1395, 69, 1396, 1388, 1389, 1390, 69, 1397, 69,
- 1398, 1401, 1391, 69, 1400, 1404, 1393, 1402, 1406, 1392,
- 69, 1405, 69, 69, 1403, 69, 1399, 1394, 1395, 69,
- 1396, 1409, 1413, 69, 1410, 1397, 69, 1398, 1401, 69,
- 69, 1400, 1404, 1411, 1402, 69, 1414, 69, 1405, 1407,
- 1412, 1403, 1417, 1399, 1408, 1415, 69, 69, 69, 1419,
- 1416, 1410, 1418, 69, 69, 69, 1420, 1421, 1422, 1424,
-
- 1411, 69, 1425, 69, 69, 1423, 1407, 1412, 1426, 1427,
- 1430, 1408, 69, 69, 69, 1428, 1419, 69, 1431, 1418,
- 69, 69, 1429, 1432, 1421, 1422, 1424, 1434, 69, 1436,
- 69, 1433, 1423, 1435, 69, 1426, 69, 1430, 69, 1438,
- 1437, 69, 1428, 1439, 1440, 69, 69, 1441, 1442, 1429,
- 69, 69, 2164, 1444, 69, 1445, 1436, 69, 1433, 69,
- 1435, 69, 69, 69, 1443, 69, 1438, 1437, 69, 1447,
- 1439, 1440, 1446, 69, 1441, 1442, 1448, 1449, 1450, 69,
- 69, 1451, 1445, 69, 1452, 1454, 1456, 69, 1453, 69,
- 2164, 1443, 1458, 1455, 69, 69, 69, 1457, 1459, 1446,
-
- 1460, 69, 1461, 1448, 1449, 1450, 69, 69, 1451, 1464,
- 69, 1452, 69, 1456, 1463, 1453, 69, 69, 69, 1458,
- 1455, 1462, 69, 1465, 1457, 1459, 69, 1460, 2164, 69,
- 1466, 1468, 69, 1467, 1469, 1470, 1464, 1472, 2164, 1473,
- 69, 1463, 2164, 1471, 69, 1475, 1479, 69, 1462, 1474,
- 2164, 69, 1486, 1476, 69, 69, 69, 1466, 1468, 69,
- 1467, 69, 1470, 69, 1472, 69, 1473, 69, 69, 1477,
- 1471, 1478, 1475, 1479, 1483, 1480, 1474, 69, 1481, 1486,
- 1476, 69, 1484, 1487, 69, 1485, 69, 69, 2164, 69,
- 1490, 1482, 69, 1488, 1489, 2164, 1477, 1491, 1478, 69,
-
- 1492, 1483, 1480, 1493, 1496, 1481, 1495, 69, 69, 1484,
- 1487, 2164, 1485, 69, 69, 69, 1497, 1490, 1482, 1498,
- 1488, 1489, 69, 1499, 1491, 1494, 69, 1492, 69, 69,
- 69, 1496, 69, 1495, 1501, 1500, 1502, 1503, 69, 2164,
- 1504, 69, 69, 1497, 1506, 1505, 1498, 1507, 1511, 1508,
- 1499, 69, 1494, 69, 1510, 1512, 1509, 69, 69, 69,
- 1513, 69, 1500, 1502, 1503, 1515, 69, 1504, 69, 1514,
- 1519, 1506, 1505, 1516, 69, 69, 1508, 69, 1521, 1524,
- 69, 1510, 1512, 1509, 69, 69, 1517, 1513, 1520, 1518,
- 1522, 69, 1515, 2164, 69, 69, 1514, 1519, 1525, 69,
-
- 1516, 69, 1527, 1523, 69, 69, 1524, 1526, 69, 69,
- 1528, 1529, 1530, 1517, 1531, 1520, 1518, 1522, 69, 69,
- 69, 69, 69, 1535, 1532, 1525, 1533, 1534, 69, 1527,
- 1523, 1536, 1537, 69, 1526, 69, 69, 1528, 1529, 1530,
- 1538, 1531, 1539, 1541, 1540, 69, 1546, 1542, 69, 69,
- 69, 1532, 1543, 1533, 1534, 1544, 1545, 69, 1536, 69,
- 2164, 1547, 1549, 69, 1550, 69, 69, 1538, 1551, 1539,
- 1541, 1540, 1553, 69, 69, 1548, 1554, 1552, 1555, 69,
- 69, 69, 1544, 1545, 1556, 1557, 1558, 69, 1547, 1549,
- 1559, 69, 69, 1561, 69, 1551, 1560, 69, 69, 1553,
-
- 69, 1567, 1548, 1564, 1552, 1555, 1562, 69, 69, 69,
- 69, 69, 1557, 1558, 1563, 69, 1568, 1559, 1565, 1569,
- 1561, 1566, 1570, 1560, 2164, 69, 69, 69, 69, 1572,
- 1564, 69, 69, 1562, 1571, 69, 1574, 69, 1578, 69,
- 69, 1563, 1573, 1568, 69, 1565, 1569, 1576, 1566, 1570,
- 69, 1575, 1577, 69, 69, 69, 1572, 1581, 69, 1580,
- 1579, 1571, 1583, 1574, 1582, 1578, 69, 1584, 1585, 1573,
- 1586, 69, 1587, 1588, 1576, 1591, 69, 2164, 1575, 1577,
- 69, 1589, 69, 1594, 69, 1595, 1580, 1579, 69, 1583,
- 1590, 1582, 1596, 69, 1584, 1585, 69, 1586, 1598, 69,
-
- 69, 69, 1591, 1592, 69, 1597, 1593, 1599, 1589, 1600,
- 69, 1601, 69, 69, 1602, 1603, 69, 1590, 1604, 69,
- 1605, 69, 1607, 69, 1610, 69, 1608, 69, 1611, 1606,
- 1592, 1609, 1597, 1593, 1599, 69, 69, 69, 69, 1613,
- 69, 1602, 1603, 1612, 1617, 1604, 1621, 69, 69, 69,
- 1615, 1610, 69, 1608, 69, 1611, 1606, 1614, 1609, 1616,
- 1619, 1618, 69, 1620, 69, 69, 69, 69, 69, 69,
- 1612, 69, 1622, 1621, 1623, 69, 1624, 1615, 1625, 1629,
- 1626, 1631, 69, 1628, 1614, 69, 1616, 1619, 1618, 1630,
- 1620, 1627, 69, 1632, 2164, 1642, 69, 69, 1634, 69,
-
- 69, 1623, 1633, 69, 69, 1625, 1629, 1626, 1631, 69,
- 1628, 1635, 69, 1636, 69, 69, 1630, 69, 1627, 1637,
- 1632, 1638, 1643, 1641, 1639, 1634, 1640, 69, 1646, 1633,
- 1644, 1647, 1655, 69, 1645, 69, 69, 69, 1635, 1648,
- 1636, 69, 69, 69, 69, 69, 1637, 1649, 1638, 1643,
- 1641, 1639, 69, 1640, 69, 1646, 1652, 1644, 1653, 1655,
- 1650, 1645, 1651, 69, 1654, 69, 1648, 69, 69, 1656,
- 1657, 1658, 1661, 1659, 1649, 1660, 69, 1662, 1664, 69,
- 69, 1663, 1665, 1652, 69, 1653, 1667, 1650, 1666, 1651,
- 69, 1654, 1668, 69, 69, 1671, 1656, 1657, 1658, 69,
-
- 1659, 69, 1660, 69, 69, 1669, 1670, 69, 1663, 69,
- 69, 1672, 69, 1667, 69, 1666, 1673, 1674, 69, 1668,
- 1675, 69, 1671, 1676, 1677, 1679, 1678, 1681, 1680, 1682,
- 69, 69, 1669, 1670, 69, 69, 1683, 1684, 1672, 69,
- 69, 1687, 69, 1673, 69, 1685, 69, 1675, 69, 69,
- 1676, 1677, 1679, 1678, 1681, 1680, 69, 69, 1686, 1688,
- 2164, 69, 1689, 1683, 1684, 1691, 1690, 2164, 1693, 69,
- 1692, 1695, 1685, 69, 1694, 1696, 2164, 1697, 69, 69,
- 69, 1698, 1699, 1700, 69, 1686, 1688, 69, 1701, 1689,
- 1702, 69, 1691, 1690, 69, 1693, 1703, 1692, 69, 69,
-
- 69, 1694, 1696, 69, 1697, 1705, 1704, 69, 1698, 69,
- 69, 69, 1708, 1706, 1707, 1710, 69, 1702, 1709, 1711,
- 69, 69, 1712, 1703, 1713, 2164, 1714, 69, 69, 69,
- 1715, 1717, 1705, 1704, 69, 1718, 69, 1716, 1720, 69,
- 1706, 1707, 1719, 1721, 1722, 1709, 1711, 69, 69, 1712,
- 1723, 69, 69, 1714, 1725, 69, 69, 69, 1717, 69,
- 69, 1724, 1718, 69, 1716, 1720, 1726, 1727, 1728, 1719,
- 69, 69, 1729, 1731, 1730, 1732, 69, 69, 2164, 1733,
- 69, 1725, 69, 69, 1734, 69, 1739, 69, 1724, 1736,
- 1747, 1735, 69, 1726, 1727, 1728, 69, 69, 69, 1729,
-
- 1731, 1730, 69, 69, 1737, 1740, 1733, 69, 1738, 1742,
- 1741, 1734, 69, 1739, 69, 1744, 1736, 69, 1735, 69,
- 1743, 69, 1745, 69, 69, 1748, 1746, 2164, 1749, 1750,
- 1751, 1737, 1740, 1752, 1753, 1738, 1742, 1741, 69, 69,
- 69, 1756, 1744, 69, 69, 1754, 69, 1743, 69, 1745,
- 69, 1755, 69, 1746, 69, 1749, 1750, 1751, 69, 69,
- 1752, 1753, 1757, 1760, 1758, 2164, 1759, 1761, 1756, 69,
- 1762, 1764, 1754, 69, 1768, 1763, 1769, 1765, 1755, 69,
- 1770, 1771, 69, 69, 1775, 69, 69, 1766, 1767, 1757,
- 69, 1758, 69, 1759, 1761, 69, 69, 1762, 1764, 69,
-
- 1772, 1768, 1763, 69, 1765, 1773, 69, 69, 1774, 69,
- 1780, 1775, 1776, 69, 1766, 1767, 69, 69, 1777, 69,
- 1778, 1779, 1781, 1782, 1785, 69, 1783, 1772, 69, 69,
- 1784, 69, 1773, 69, 1787, 1774, 1788, 1780, 1792, 1776,
- 1786, 1789, 69, 69, 1790, 1777, 69, 1778, 1779, 1781,
- 1782, 69, 69, 1783, 69, 1791, 69, 1784, 1793, 1794,
- 1795, 1787, 1796, 69, 69, 69, 1797, 1786, 1789, 1798,
- 69, 1790, 69, 1799, 2164, 1800, 1801, 1803, 69, 2164,
- 1802, 69, 1791, 1804, 1805, 1793, 69, 69, 1812, 1796,
- 1806, 69, 1809, 69, 69, 69, 1798, 1807, 69, 1810,
-
- 69, 69, 1800, 1801, 1803, 69, 69, 1802, 1808, 1813,
- 1804, 1805, 1814, 1811, 69, 69, 69, 1806, 1816, 1809,
- 69, 69, 1815, 2164, 1807, 69, 1810, 1818, 1820, 1817,
- 1819, 1821, 69, 1822, 1826, 1808, 69, 1825, 1823, 1814,
- 1811, 2164, 69, 1824, 69, 1827, 1852, 69, 1831, 1815,
- 69, 69, 1828, 69, 1818, 69, 1817, 1819, 69, 69,
- 1822, 1830, 1829, 1832, 1825, 1835, 69, 69, 69, 1833,
- 69, 1834, 1827, 69, 69, 1831, 1838, 1836, 69, 1828,
- 69, 1839, 1841, 1837, 69, 69, 69, 69, 1830, 1829,
- 1832, 1840, 1835, 1842, 69, 69, 1833, 69, 1834, 69,
-
- 69, 69, 1845, 1838, 1836, 1843, 1844, 1846, 1839, 1841,
- 1837, 1848, 69, 1847, 69, 69, 1849, 69, 1840, 1850,
- 1842, 1851, 1853, 69, 1856, 1855, 1854, 69, 1859, 69,
- 1861, 69, 1843, 1844, 1846, 1858, 1857, 1862, 1848, 2164,
- 1847, 69, 69, 69, 69, 69, 1850, 69, 1851, 69,
- 69, 1856, 1855, 1854, 1860, 1859, 69, 1861, 69, 1865,
- 1863, 1864, 1858, 1857, 69, 1866, 69, 69, 69, 1867,
- 1868, 1869, 1870, 1871, 1873, 1874, 1872, 1880, 1875, 1876,
- 2164, 1860, 69, 1879, 1877, 69, 1865, 1863, 1864, 69,
- 1878, 2164, 69, 69, 69, 1882, 1867, 69, 69, 69,
-
- 1871, 69, 69, 1872, 69, 1875, 69, 1883, 1884, 69,
- 1879, 69, 1881, 1885, 69, 69, 1888, 1878, 69, 1889,
- 1886, 1887, 1882, 1891, 1890, 1892, 1894, 2164, 69, 69,
- 69, 69, 69, 1893, 1883, 1884, 69, 1896, 69, 1881,
- 1885, 69, 1897, 1888, 1898, 69, 1889, 1886, 1887, 1895,
- 1891, 1890, 69, 1894, 1899, 1900, 1903, 69, 1906, 1901,
- 1893, 1902, 69, 69, 1896, 69, 69, 1907, 69, 1897,
- 69, 1898, 1904, 1905, 69, 1908, 1895, 69, 1909, 69,
- 69, 1899, 1900, 1903, 69, 69, 1901, 1910, 1902, 1911,
- 1913, 69, 1912, 1915, 1907, 1914, 1916, 2164, 1917, 1904,
-
- 1905, 69, 1908, 1918, 2164, 69, 1921, 69, 69, 69,
- 1919, 69, 2164, 1920, 1910, 2164, 1911, 69, 69, 1912,
- 1915, 1922, 1914, 1916, 69, 1924, 1923, 69, 1925, 1927,
- 69, 69, 1926, 69, 1931, 1928, 1932, 1919, 1934, 69,
- 1920, 69, 1929, 1936, 1933, 1930, 69, 69, 1922, 1938,
- 69, 69, 1924, 1923, 69, 1925, 1927, 69, 69, 1926,
- 1935, 69, 1928, 1932, 1937, 1934, 1940, 1939, 69, 1929,
- 1941, 1933, 1930, 69, 1942, 69, 69, 1944, 1943, 69,
- 69, 1945, 69, 1946, 1947, 1948, 69, 1935, 69, 69,
- 1949, 1937, 1951, 1940, 1939, 69, 1950, 1941, 1954, 69,
-
- 1956, 1952, 1953, 69, 69, 1943, 69, 1958, 1945, 69,
- 1946, 69, 1948, 69, 69, 1955, 69, 1949, 1957, 1951,
- 69, 69, 1959, 1950, 1960, 1954, 69, 69, 1952, 1953,
- 1961, 1962, 1963, 1964, 69, 1965, 1966, 2164, 1967, 69,
- 69, 69, 1955, 1968, 69, 1957, 1970, 1969, 1971, 69,
- 1975, 69, 69, 69, 1980, 1976, 69, 1961, 1962, 69,
- 1964, 1972, 1965, 1966, 69, 1967, 1973, 2164, 1977, 69,
- 1968, 1974, 1978, 69, 1969, 69, 1979, 69, 69, 69,
- 1981, 69, 1976, 69, 1982, 2164, 69, 69, 1972, 1985,
- 1984, 1983, 1986, 1973, 69, 1977, 1989, 69, 1974, 1978,
-
- 69, 1990, 1991, 1979, 1987, 1988, 1992, 69, 69, 1994,
- 69, 1982, 69, 1993, 69, 1995, 1985, 1984, 1983, 1996,
- 1997, 1998, 69, 69, 69, 2000, 2003, 1999, 69, 1991,
- 2002, 1987, 1988, 69, 2001, 69, 1994, 69, 2004, 69,
- 1993, 2006, 1995, 2005, 2007, 2008, 69, 69, 69, 69,
- 69, 69, 69, 69, 1999, 2009, 69, 2002, 2010, 69,
- 2015, 2001, 2011, 2164, 2014, 2004, 2012, 69, 2006, 2013,
- 2005, 69, 2008, 69, 69, 69, 69, 2016, 2017, 2020,
- 2024, 2018, 2009, 2019, 69, 69, 69, 2015, 69, 2011,
- 69, 2014, 69, 2012, 2026, 2023, 2013, 69, 69, 2021,
-
- 2022, 69, 69, 2027, 2016, 2017, 2020, 2024, 2018, 69,
- 2019, 2025, 2028, 2029, 2030, 2031, 2164, 2033, 69, 2032,
- 2034, 69, 2023, 2035, 2036, 2037, 2021, 2022, 2040, 69,
- 69, 2039, 2038, 2041, 2042, 69, 69, 69, 2025, 2028,
- 69, 69, 69, 69, 69, 2043, 2032, 2034, 2044, 69,
- 2035, 69, 2037, 2045, 69, 2040, 2047, 69, 2039, 2038,
- 69, 69, 2046, 2048, 69, 2049, 2050, 2052, 69, 69,
- 69, 2051, 2043, 2053, 2054, 2044, 2055, 2056, 2057, 69,
- 69, 2058, 2059, 2047, 2060, 2062, 2065, 69, 69, 2046,
- 2048, 2164, 2049, 2050, 69, 2061, 69, 69, 2051, 2064,
-
- 69, 69, 2067, 69, 69, 2057, 2063, 69, 69, 2059,
- 69, 2060, 69, 2068, 2066, 69, 2069, 2070, 69, 2072,
- 2076, 69, 2061, 69, 69, 69, 2064, 69, 69, 2067,
- 2071, 2073, 2074, 2063, 2077, 2075, 69, 2164, 69, 69,
- 2068, 2066, 69, 2069, 2070, 69, 2072, 2076, 69, 2081,
- 2084, 69, 2078, 2082, 69, 2079, 2080, 2071, 2073, 2074,
- 69, 2077, 2075, 2083, 69, 69, 2085, 69, 2086, 2088,
- 69, 2087, 2089, 2164, 2092, 2093, 2081, 69, 2090, 2078,
- 2082, 2095, 2079, 2080, 69, 2091, 69, 69, 2099, 2094,
- 2083, 2096, 2100, 2085, 69, 69, 69, 69, 2087, 2089,
-
- 69, 2092, 69, 69, 2097, 2090, 2098, 69, 69, 2101,
- 2164, 2102, 2091, 69, 69, 2103, 2094, 2104, 2096, 2106,
- 69, 2107, 69, 69, 69, 69, 2105, 69, 2110, 2108,
- 69, 2097, 2109, 2098, 2164, 69, 2101, 2112, 2102, 2111,
- 69, 2113, 2103, 69, 2104, 69, 2106, 2114, 2107, 69,
- 69, 2119, 2164, 2105, 2115, 2110, 2108, 2116, 2117, 2109,
- 2120, 69, 2118, 2124, 2112, 2164, 2111, 2122, 69, 2123,
- 69, 2121, 2164, 69, 2114, 69, 69, 69, 2125, 69,
- 69, 2115, 2127, 69, 2116, 2117, 69, 69, 2126, 2118,
- 2131, 69, 2128, 2129, 2122, 69, 2123, 2130, 2121, 2132,
-
- 69, 69, 69, 2134, 69, 2125, 2133, 2164, 2135, 2127,
- 2136, 69, 2139, 2164, 69, 2126, 69, 2131, 2137, 2128,
- 2129, 69, 2140, 2138, 2130, 2164, 2132, 2141, 2142, 69,
- 2134, 69, 69, 2133, 69, 2135, 69, 2136, 69, 69,
- 2143, 2145, 69, 2144, 2146, 2137, 2149, 69, 2147, 2140,
- 2138, 69, 2148, 2150, 2141, 2142, 69, 2151, 2164, 2152,
- 69, 69, 69, 69, 2153, 69, 69, 2143, 2145, 2154,
- 2144, 2146, 69, 2149, 2155, 2147, 2156, 2157, 2158, 2148,
- 2150, 2162, 2164, 2163, 2151, 69, 2152, 2159, 2164, 69,
- 2160, 69, 2164, 2164, 2161, 2164, 2154, 69, 69, 2164,
-
- 69, 69, 69, 69, 2157, 2158, 2164, 2164, 69, 69,
- 69, 2164, 2164, 2164, 2159, 2164, 2164, 2160, 2164, 2164,
- 2164, 2161, 41, 41, 41, 41, 41, 41, 41, 46,
- 46, 46, 46, 46, 46, 46, 51, 51, 51, 51,
- 51, 51, 51, 57, 57, 57, 57, 57, 57, 57,
- 62, 62, 62, 62, 62, 62, 62, 72, 72, 2164,
- 72, 72, 72, 72, 131, 131, 2164, 2164, 2164, 131,
- 131, 133, 133, 2164, 2164, 133, 2164, 133, 135, 2164,
- 2164, 2164, 2164, 2164, 135, 138, 138, 2164, 2164, 2164,
- 138, 138, 140, 2164, 2164, 2164, 2164, 2164, 140, 142,
-
- 142, 2164, 142, 142, 142, 142, 73, 73, 2164, 73,
- 73, 73, 73, 13, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164
+ 168, 69, 173, 162, 163, 166, 69, 69, 134, 181,
+
+ 175, 132, 160, 69, 169, 69, 69, 170, 69, 178,
+ 176, 167, 69, 179, 164, 165, 174, 168, 182, 2237,
+ 171, 172, 185, 203, 69, 184, 181, 175, 69, 188,
+ 177, 169, 69, 69, 170, 2237, 178, 176, 69, 69,
+ 179, 69, 69, 174, 186, 182, 187, 171, 172, 185,
+ 190, 189, 184, 69, 193, 69, 188, 177, 69, 69,
+ 191, 69, 194, 195, 192, 2237, 196, 199, 2237, 2237,
+ 69, 186, 197, 187, 69, 69, 205, 190, 189, 200,
+ 69, 193, 69, 201, 202, 204, 207, 191, 69, 194,
+ 195, 192, 69, 196, 199, 69, 206, 208, 69, 197,
+
+ 69, 210, 69, 205, 213, 212, 200, 214, 69, 2237,
+ 201, 202, 204, 207, 215, 135, 69, 135, 135, 69,
+ 135, 217, 211, 206, 208, 218, 69, 69, 210, 216,
+ 2237, 213, 212, 220, 214, 140, 69, 140, 140, 219,
+ 140, 215, 73, 69, 73, 73, 221, 73, 217, 211,
+ 222, 69, 69, 141, 69, 230, 216, 69, 224, 223,
+ 220, 225, 69, 226, 229, 69, 219, 228, 2237, 227,
+ 240, 231, 2237, 221, 239, 232, 241, 222, 69, 69,
+ 143, 69, 242, 260, 244, 224, 223, 69, 225, 69,
+ 69, 229, 233, 2237, 228, 69, 227, 240, 69, 69,
+
+ 69, 239, 232, 241, 69, 245, 243, 69, 246, 242,
+ 69, 244, 247, 250, 248, 69, 2237, 249, 2237, 233,
+ 234, 69, 69, 251, 69, 235, 252, 69, 264, 69,
+ 236, 258, 245, 243, 257, 246, 237, 238, 69, 247,
+ 250, 248, 267, 69, 249, 69, 261, 234, 69, 253,
+ 251, 259, 235, 252, 254, 269, 69, 236, 258, 262,
+ 69, 257, 69, 237, 238, 265, 255, 268, 256, 270,
+ 263, 266, 69, 261, 69, 69, 253, 69, 259, 271,
+ 2237, 254, 272, 69, 273, 276, 279, 69, 360, 69,
+ 69, 69, 265, 255, 268, 256, 69, 263, 266, 69,
+
+ 274, 69, 275, 277, 278, 69, 271, 69, 69, 272,
+ 281, 273, 276, 279, 280, 69, 283, 282, 69, 284,
+ 285, 69, 69, 69, 69, 69, 69, 274, 286, 275,
+ 277, 278, 289, 293, 291, 292, 295, 281, 69, 287,
+ 288, 280, 69, 283, 282, 290, 284, 285, 69, 294,
+ 297, 69, 69, 296, 299, 69, 306, 69, 300, 69,
+ 69, 291, 292, 295, 69, 69, 287, 288, 305, 303,
+ 302, 307, 290, 298, 69, 301, 294, 308, 309, 69,
+ 296, 304, 69, 69, 141, 300, 69, 69, 69, 69,
+ 69, 310, 311, 69, 312, 305, 303, 302, 307, 315,
+
+ 298, 69, 301, 313, 69, 309, 316, 69, 304, 69,
+ 314, 319, 69, 317, 318, 320, 327, 322, 310, 311,
+ 69, 312, 69, 69, 321, 324, 315, 326, 69, 2237,
+ 313, 69, 325, 316, 323, 329, 330, 314, 319, 69,
+ 317, 69, 320, 69, 322, 69, 69, 328, 69, 69,
+ 69, 321, 324, 331, 326, 69, 332, 333, 336, 325,
+ 69, 323, 69, 330, 69, 335, 338, 69, 334, 346,
+ 337, 69, 69, 339, 328, 69, 340, 69, 341, 345,
+ 331, 342, 69, 2237, 333, 336, 344, 69, 69, 343,
+ 69, 347, 335, 338, 69, 334, 69, 337, 69, 69,
+
+ 339, 69, 348, 340, 353, 341, 345, 69, 342, 354,
+ 69, 356, 349, 344, 2237, 69, 343, 69, 347, 357,
+ 350, 351, 69, 352, 367, 69, 365, 355, 361, 348,
+ 69, 353, 362, 69, 69, 363, 354, 364, 356, 349,
+ 358, 359, 69, 366, 69, 369, 357, 350, 351, 69,
+ 352, 69, 69, 365, 355, 361, 368, 370, 371, 362,
+ 372, 69, 363, 375, 364, 69, 373, 358, 359, 69,
+ 366, 69, 369, 69, 374, 69, 378, 377, 69, 383,
+ 69, 376, 388, 368, 370, 371, 69, 372, 69, 381,
+ 379, 382, 69, 373, 384, 69, 380, 385, 69, 386,
+
+ 389, 374, 387, 378, 2237, 69, 383, 2237, 376, 69,
+ 2237, 390, 69, 69, 69, 2237, 381, 379, 382, 391,
+ 69, 384, 69, 380, 385, 69, 386, 389, 392, 387,
+ 393, 394, 395, 405, 397, 69, 406, 409, 390, 411,
+ 2237, 410, 69, 141, 69, 69, 391, 69, 396, 69,
+ 413, 69, 420, 2237, 69, 392, 69, 393, 394, 395,
+ 405, 397, 407, 406, 409, 412, 411, 408, 410, 414,
+ 2237, 415, 69, 69, 2237, 396, 398, 399, 69, 417,
+ 416, 2237, 69, 418, 69, 419, 400, 69, 401, 402,
+ 403, 69, 412, 404, 69, 421, 414, 69, 415, 422,
+
+ 424, 69, 69, 398, 399, 69, 417, 416, 423, 425,
+ 418, 69, 419, 400, 69, 401, 402, 403, 426, 427,
+ 404, 69, 421, 428, 429, 2237, 422, 430, 431, 69,
+ 433, 432, 69, 435, 69, 423, 425, 434, 436, 69,
+ 438, 69, 69, 69, 447, 426, 427, 444, 443, 69,
+ 439, 2237, 69, 437, 430, 431, 69, 433, 432, 458,
+ 435, 69, 69, 69, 434, 436, 69, 438, 440, 69,
+ 445, 446, 448, 449, 444, 443, 69, 439, 69, 441,
+ 437, 442, 450, 452, 2237, 451, 69, 453, 454, 69,
+ 69, 69, 2237, 69, 69, 440, 455, 445, 446, 448,
+
+ 449, 457, 69, 456, 461, 69, 441, 69, 442, 450,
+ 452, 459, 451, 69, 453, 454, 460, 69, 69, 462,
+ 463, 464, 69, 455, 466, 2237, 69, 69, 457, 465,
+ 456, 461, 467, 468, 69, 69, 69, 69, 459, 69,
+ 469, 2237, 470, 460, 472, 2237, 462, 463, 464, 471,
+ 69, 466, 69, 2237, 69, 69, 465, 473, 474, 467,
+ 468, 479, 475, 69, 480, 69, 69, 469, 69, 470,
+ 476, 472, 477, 478, 69, 69, 471, 69, 483, 69,
+ 69, 482, 489, 481, 473, 474, 485, 484, 479, 475,
+ 487, 69, 486, 490, 493, 69, 69, 476, 492, 477,
+
+ 478, 69, 491, 69, 69, 483, 69, 69, 482, 489,
+ 481, 494, 495, 488, 484, 69, 69, 69, 69, 486,
+ 490, 493, 69, 69, 496, 492, 504, 2237, 497, 491,
+ 506, 2237, 514, 69, 69, 69, 69, 505, 494, 495,
+ 488, 69, 509, 510, 69, 69, 511, 2237, 507, 513,
+ 69, 496, 512, 504, 69, 497, 498, 506, 508, 514,
+ 517, 499, 515, 500, 505, 525, 69, 531, 69, 509,
+ 510, 501, 69, 511, 502, 69, 513, 69, 519, 512,
+ 69, 503, 69, 498, 516, 508, 518, 517, 499, 515,
+ 500, 69, 520, 523, 521, 522, 69, 69, 501, 69,
+
+ 69, 502, 69, 524, 528, 519, 527, 69, 503, 526,
+ 69, 516, 530, 518, 69, 69, 529, 532, 69, 520,
+ 523, 521, 522, 533, 69, 534, 141, 535, 2237, 536,
+ 524, 528, 69, 527, 538, 69, 526, 537, 541, 69,
+ 69, 69, 539, 529, 532, 540, 544, 545, 546, 69,
+ 547, 69, 534, 69, 535, 69, 536, 542, 69, 69,
+ 69, 538, 543, 548, 537, 541, 549, 550, 554, 539,
+ 551, 553, 540, 544, 69, 69, 69, 556, 552, 69,
+ 555, 557, 69, 558, 559, 561, 2237, 69, 2237, 69,
+ 69, 562, 69, 69, 560, 554, 574, 551, 553, 69,
+
+ 69, 69, 563, 69, 69, 552, 69, 555, 557, 69,
+ 558, 559, 570, 69, 564, 69, 567, 69, 562, 565,
+ 571, 560, 568, 566, 569, 69, 2237, 572, 69, 563,
+ 579, 576, 573, 69, 69, 575, 2237, 587, 69, 570,
+ 69, 564, 69, 567, 69, 577, 565, 571, 69, 568,
+ 566, 569, 69, 69, 572, 69, 580, 579, 576, 573,
+ 581, 582, 575, 583, 584, 585, 586, 578, 69, 69,
+ 594, 69, 577, 589, 588, 69, 69, 591, 69, 590,
+ 592, 69, 69, 580, 596, 69, 595, 581, 582, 69,
+ 583, 584, 585, 586, 578, 69, 593, 69, 597, 69,
+
+ 589, 588, 69, 69, 591, 598, 590, 592, 69, 69,
+ 599, 603, 601, 595, 602, 600, 69, 605, 2237, 608,
+ 2237, 604, 69, 593, 612, 597, 69, 69, 69, 69,
+ 606, 609, 598, 610, 69, 69, 614, 616, 611, 601,
+ 2237, 602, 69, 69, 605, 607, 608, 613, 604, 69,
+ 69, 612, 615, 69, 69, 622, 2237, 606, 609, 617,
+ 69, 69, 69, 614, 616, 69, 618, 621, 69, 619,
+ 627, 620, 607, 69, 613, 69, 623, 69, 69, 615,
+ 624, 631, 622, 625, 628, 626, 617, 629, 69, 69,
+ 69, 69, 69, 618, 621, 69, 619, 69, 620, 630,
+
+ 632, 633, 69, 623, 69, 635, 634, 624, 631, 638,
+ 625, 628, 626, 69, 629, 636, 69, 69, 637, 639,
+ 643, 640, 641, 69, 645, 69, 630, 632, 633, 69,
+ 2237, 69, 635, 634, 644, 646, 638, 69, 69, 69,
+ 69, 642, 636, 69, 69, 637, 639, 643, 640, 641,
+ 69, 645, 69, 69, 647, 648, 653, 649, 650, 654,
+ 655, 644, 646, 651, 69, 660, 656, 69, 642, 659,
+ 2237, 652, 657, 69, 69, 2237, 141, 677, 69, 69,
+ 69, 647, 648, 653, 649, 650, 654, 658, 661, 69,
+ 651, 662, 69, 656, 670, 69, 659, 69, 652, 657,
+
+ 69, 663, 69, 69, 664, 2237, 69, 69, 672, 69,
+ 671, 69, 2237, 673, 658, 661, 675, 2237, 662, 2237,
+ 69, 670, 2237, 685, 674, 688, 69, 69, 663, 676,
+ 2237, 664, 665, 690, 69, 672, 666, 671, 686, 667,
+ 673, 691, 69, 675, 69, 69, 668, 69, 687, 669,
+ 685, 674, 688, 2237, 69, 69, 676, 69, 689, 665,
+ 69, 69, 693, 666, 692, 686, 667, 2237, 691, 2237,
+ 694, 695, 708, 668, 69, 687, 669, 678, 679, 697,
+ 680, 69, 69, 681, 696, 689, 701, 698, 682, 693,
+ 69, 692, 700, 69, 683, 684, 69, 694, 695, 708,
+
+ 69, 69, 699, 69, 678, 679, 697, 680, 69, 69,
+ 681, 696, 69, 701, 698, 682, 702, 69, 703, 700,
+ 704, 683, 684, 69, 705, 706, 69, 707, 2237, 699,
+ 711, 709, 713, 710, 712, 714, 2237, 69, 715, 69,
+ 69, 2237, 716, 702, 2237, 703, 69, 704, 2237, 717,
+ 69, 705, 706, 718, 707, 69, 69, 69, 709, 720,
+ 710, 712, 69, 69, 69, 715, 719, 69, 69, 716,
+ 721, 722, 69, 723, 724, 69, 717, 725, 726, 69,
+ 718, 69, 730, 2237, 728, 729, 720, 727, 2237, 733,
+ 69, 731, 69, 719, 732, 69, 69, 721, 722, 2237,
+
+ 69, 724, 69, 69, 725, 734, 69, 69, 735, 730,
+ 69, 728, 729, 69, 727, 69, 733, 69, 731, 736,
+ 737, 732, 69, 739, 740, 741, 69, 742, 738, 745,
+ 743, 69, 734, 744, 69, 735, 69, 2237, 746, 748,
+ 69, 747, 758, 755, 69, 69, 736, 737, 69, 69,
+ 739, 69, 741, 750, 742, 738, 745, 743, 749, 69,
+ 744, 69, 69, 751, 752, 746, 748, 69, 747, 753,
+ 69, 754, 759, 757, 69, 767, 756, 2237, 760, 69,
+ 750, 69, 69, 69, 764, 749, 69, 761, 2237, 766,
+ 751, 752, 69, 765, 762, 69, 753, 2237, 754, 69,
+
+ 757, 69, 763, 756, 69, 760, 69, 69, 768, 69,
+ 769, 764, 770, 771, 761, 69, 766, 772, 2237, 69,
+ 765, 762, 773, 775, 69, 774, 69, 2237, 776, 763,
+ 777, 2237, 69, 778, 69, 768, 782, 769, 780, 770,
+ 69, 69, 69, 779, 772, 69, 69, 781, 2237, 69,
+ 141, 69, 774, 69, 69, 776, 2237, 777, 789, 790,
+ 778, 2237, 2237, 782, 791, 780, 797, 792, 794, 69,
+ 779, 798, 2237, 793, 781, 783, 69, 784, 2237, 795,
+ 69, 785, 69, 786, 69, 789, 790, 2237, 787, 800,
+ 796, 791, 799, 788, 792, 794, 69, 801, 69, 69,
+
+ 793, 69, 783, 69, 784, 69, 795, 804, 785, 69,
+ 786, 802, 69, 805, 807, 787, 800, 796, 808, 799,
+ 788, 803, 806, 809, 801, 810, 69, 69, 69, 69,
+ 819, 817, 818, 69, 804, 820, 2237, 2237, 802, 69,
+ 805, 807, 821, 69, 822, 808, 69, 829, 803, 806,
+ 69, 823, 69, 827, 69, 69, 812, 819, 817, 818,
+ 824, 813, 820, 814, 825, 830, 69, 826, 69, 821,
+ 69, 822, 69, 69, 815, 69, 828, 831, 823, 69,
+ 69, 816, 69, 812, 832, 69, 833, 824, 813, 69,
+ 814, 825, 830, 834, 826, 836, 837, 835, 69, 69,
+
+ 839, 815, 841, 828, 831, 69, 838, 840, 816, 842,
+ 69, 832, 843, 69, 69, 69, 2237, 69, 69, 69,
+ 834, 845, 836, 837, 835, 69, 846, 844, 69, 841,
+ 848, 69, 69, 838, 840, 858, 842, 847, 849, 843,
+ 69, 850, 2237, 851, 69, 852, 859, 853, 845, 69,
+ 2237, 69, 69, 846, 844, 69, 854, 69, 855, 856,
+ 69, 857, 69, 863, 847, 849, 864, 69, 850, 69,
+ 851, 860, 852, 859, 853, 865, 861, 69, 69, 866,
+ 69, 862, 69, 854, 867, 855, 856, 69, 857, 69,
+ 863, 69, 69, 864, 869, 868, 870, 871, 860, 69,
+
+ 2237, 874, 865, 69, 872, 873, 866, 69, 69, 2237,
+ 69, 867, 69, 875, 876, 877, 878, 880, 879, 881,
+ 2237, 69, 868, 870, 871, 883, 69, 69, 874, 69,
+ 69, 872, 873, 882, 69, 69, 69, 69, 69, 884,
+ 875, 876, 877, 878, 880, 879, 69, 885, 887, 886,
+ 888, 69, 883, 889, 2237, 69, 69, 69, 896, 890,
+ 882, 891, 892, 69, 69, 895, 884, 893, 894, 897,
+ 898, 69, 900, 2237, 885, 887, 886, 888, 899, 901,
+ 69, 69, 69, 69, 69, 69, 890, 69, 891, 892,
+ 69, 69, 895, 903, 893, 894, 902, 898, 905, 69,
+
+ 69, 69, 907, 906, 909, 899, 901, 69, 69, 69,
+ 69, 908, 69, 69, 910, 912, 911, 913, 914, 2237,
+ 903, 69, 69, 902, 915, 905, 917, 69, 69, 907,
+ 906, 909, 916, 920, 918, 926, 2237, 922, 908, 919,
+ 2237, 910, 912, 911, 921, 69, 69, 69, 69, 69,
+ 69, 915, 69, 917, 923, 69, 69, 69, 924, 916,
+ 920, 918, 69, 927, 922, 925, 919, 929, 928, 931,
+ 69, 921, 930, 69, 69, 934, 69, 69, 935, 69,
+ 932, 923, 2237, 933, 936, 924, 2237, 941, 69, 938,
+ 927, 69, 925, 937, 929, 928, 931, 940, 2237, 930,
+
+ 69, 69, 934, 939, 69, 935, 69, 932, 945, 69,
+ 933, 936, 69, 69, 941, 69, 938, 942, 943, 944,
+ 937, 947, 2237, 949, 940, 69, 946, 69, 952, 948,
+ 939, 69, 951, 2237, 961, 69, 2237, 2237, 2237, 69,
+ 69, 69, 950, 69, 942, 943, 944, 956, 947, 69,
+ 949, 955, 69, 946, 69, 952, 948, 953, 954, 951,
+ 69, 957, 960, 958, 69, 69, 69, 2237, 69, 950,
+ 69, 965, 959, 69, 956, 964, 963, 966, 955, 69,
+ 69, 962, 69, 970, 953, 954, 967, 971, 957, 960,
+ 958, 968, 69, 69, 69, 69, 69, 969, 965, 959,
+
+ 972, 69, 964, 963, 966, 69, 979, 980, 962, 981,
+ 970, 982, 984, 983, 971, 2237, 2237, 2237, 69, 2237,
+ 69, 985, 986, 2237, 969, 69, 69, 972, 973, 990,
+ 69, 974, 975, 979, 980, 69, 976, 69, 982, 984,
+ 983, 69, 977, 69, 69, 987, 978, 988, 985, 986,
+ 69, 69, 989, 991, 69, 973, 990, 993, 974, 975,
+ 994, 995, 2237, 976, 996, 1042, 69, 992, 2237, 977,
+ 69, 69, 987, 978, 988, 2237, 69, 2237, 1005, 989,
+ 991, 1002, 1004, 69, 1006, 1008, 2237, 69, 995, 69,
+ 1007, 996, 69, 2237, 992, 997, 69, 69, 69, 69,
+
+ 998, 69, 999, 69, 1000, 1005, 1001, 69, 1002, 1004,
+ 1009, 1006, 1008, 69, 2237, 1010, 1012, 1007, 1013, 1011,
+ 1014, 2237, 997, 1015, 1016, 1021, 69, 998, 1023, 999,
+ 1017, 1000, 69, 1001, 69, 1018, 69, 69, 1019, 69,
+ 69, 1020, 69, 1012, 69, 1013, 1011, 1014, 69, 1022,
+ 1015, 1016, 69, 1024, 1027, 69, 1025, 1017, 1026, 1029,
+ 1028, 69, 1018, 69, 2237, 1019, 69, 69, 1020, 1030,
+ 1032, 1034, 1036, 1031, 1043, 1033, 1022, 69, 69, 69,
+ 1024, 69, 69, 1025, 1035, 1026, 69, 1028, 1037, 1039,
+ 1044, 69, 1038, 69, 69, 1041, 1030, 69, 1034, 1036,
+
+ 1031, 69, 1033, 69, 1040, 1045, 69, 1046, 1049, 69,
+ 69, 1035, 69, 1047, 69, 1037, 1039, 1044, 2237, 1038,
+ 1048, 69, 1041, 1050, 69, 69, 1051, 1053, 1052, 2237,
+ 69, 1040, 69, 69, 1046, 69, 69, 69, 1054, 1056,
+ 1047, 1057, 1061, 1059, 1055, 1058, 69, 1048, 1060, 69,
+ 1050, 69, 69, 1051, 1063, 1052, 69, 1064, 69, 69,
+ 1062, 1065, 69, 69, 1067, 1054, 1056, 1071, 1057, 1061,
+ 1059, 1055, 1058, 1066, 69, 1060, 1072, 69, 1069, 69,
+ 1073, 1063, 1068, 1070, 1064, 69, 69, 1062, 69, 1074,
+ 69, 1067, 1075, 69, 1071, 69, 1076, 1077, 1078, 1079,
+
+ 1066, 69, 2237, 1072, 2237, 1080, 1082, 1073, 1084, 1068,
+ 69, 69, 1085, 1081, 69, 1088, 1074, 69, 69, 1075,
+ 1083, 69, 69, 1076, 1077, 1078, 1097, 1086, 69, 69,
+ 1087, 69, 1080, 1082, 69, 1084, 69, 69, 69, 1085,
+ 1081, 1089, 1088, 1090, 1091, 1092, 69, 1083, 1093, 1094,
+ 69, 69, 1096, 1097, 1086, 1095, 1098, 1087, 69, 69,
+ 69, 69, 1100, 69, 1099, 1106, 1101, 1103, 1089, 1102,
+ 1090, 1091, 1092, 69, 69, 1093, 1094, 1105, 69, 1096,
+ 69, 69, 1095, 1098, 1104, 1107, 1108, 1110, 69, 1100,
+ 69, 1099, 69, 1101, 1103, 1109, 1102, 69, 1112, 69,
+
+ 1111, 1113, 1114, 2237, 1105, 1117, 1115, 1119, 2237, 1131,
+ 69, 1104, 69, 1108, 69, 69, 69, 69, 69, 1116,
+ 1120, 69, 1109, 69, 2237, 1112, 69, 1111, 1113, 1114,
+ 1118, 69, 1117, 1115, 1119, 1121, 1122, 69, 1123, 69,
+ 1125, 69, 69, 1124, 69, 1126, 1116, 1120, 69, 1127,
+ 1128, 1129, 1130, 1132, 69, 1135, 69, 1118, 69, 69,
+ 69, 1133, 1121, 1122, 1134, 1136, 1137, 1138, 2237, 69,
+ 69, 1140, 69, 69, 69, 69, 1127, 1128, 1129, 1130,
+ 1132, 1139, 1144, 1142, 69, 69, 1143, 69, 1133, 69,
+ 1141, 1134, 1136, 1137, 1138, 69, 69, 1146, 1140, 1145,
+
+ 1147, 1149, 1148, 1150, 1151, 2237, 69, 2237, 1139, 1144,
+ 1142, 1157, 69, 1143, 69, 69, 1152, 1141, 69, 1159,
+ 1153, 69, 69, 1156, 69, 69, 1145, 1147, 1149, 1148,
+ 1150, 1151, 1155, 1154, 69, 1158, 1161, 1160, 69, 69,
+ 1163, 69, 69, 1152, 69, 69, 1159, 1153, 1162, 1164,
+ 1156, 1166, 1165, 1168, 1167, 69, 1169, 69, 2237, 1155,
+ 1154, 69, 1158, 1161, 1160, 1170, 1171, 1172, 2237, 1173,
+ 1174, 1179, 69, 69, 1176, 1162, 69, 69, 1166, 1165,
+ 69, 1167, 69, 69, 1175, 69, 69, 69, 1177, 1180,
+ 1178, 69, 69, 1171, 1172, 69, 1173, 1174, 69, 1181,
+
+ 1183, 1176, 69, 1182, 1184, 69, 69, 1188, 2237, 1185,
+ 69, 1175, 69, 1186, 2237, 1177, 1180, 1178, 1191, 1187,
+ 69, 69, 1190, 2237, 1189, 1192, 1181, 1183, 2237, 69,
+ 1182, 1184, 69, 69, 69, 69, 1185, 1196, 1195, 1199,
+ 1186, 69, 1198, 1193, 69, 1191, 1187, 69, 1194, 1190,
+ 69, 1189, 1192, 1197, 1200, 69, 69, 1202, 1204, 69,
+ 69, 69, 2237, 1203, 1196, 1195, 1199, 69, 1208, 1198,
+ 1193, 1201, 1206, 1205, 1207, 1194, 69, 69, 69, 1209,
+ 1197, 69, 1210, 1212, 1211, 69, 69, 1213, 1218, 69,
+ 1203, 69, 2237, 69, 69, 1208, 69, 1214, 1201, 1206,
+
+ 1205, 1207, 69, 1219, 69, 69, 1209, 69, 1220, 1210,
+ 1212, 1211, 1215, 1223, 1213, 1216, 1221, 1222, 1224, 69,
+ 69, 1225, 1226, 1229, 1214, 69, 69, 1217, 2237, 1230,
+ 1219, 69, 1231, 1227, 1234, 1220, 69, 69, 69, 1215,
+ 1223, 69, 1216, 1221, 1222, 1228, 1233, 69, 1225, 1226,
+ 69, 69, 69, 1232, 1217, 69, 1230, 69, 1236, 1235,
+ 1227, 69, 1237, 1238, 69, 1239, 1240, 69, 69, 69,
+ 69, 1248, 1228, 1233, 1242, 1243, 1241, 1244, 69, 69,
+ 1232, 69, 1246, 1250, 69, 1236, 1235, 1245, 69, 1237,
+ 1238, 69, 1239, 1240, 69, 69, 1247, 2237, 69, 1249,
+
+ 1252, 1242, 69, 1241, 1244, 69, 69, 69, 1251, 1246,
+ 1250, 1253, 69, 1254, 1245, 1256, 69, 1257, 2237, 1255,
+ 1261, 1258, 1265, 1247, 69, 1262, 1249, 1252, 69, 69,
+ 1263, 69, 1266, 69, 69, 1251, 1259, 69, 1253, 1260,
+ 1254, 69, 1256, 1264, 1257, 69, 1255, 1261, 1258, 69,
+ 1267, 1269, 1262, 1268, 69, 2237, 1270, 1263, 1271, 69,
+ 1272, 69, 1276, 1259, 1275, 1277, 1260, 69, 69, 1284,
+ 1264, 69, 1273, 69, 69, 1274, 69, 1267, 1269, 1278,
+ 1268, 1279, 69, 1270, 1280, 1271, 69, 1272, 1281, 1282,
+ 69, 1275, 69, 69, 69, 69, 1284, 1283, 1285, 1273,
+
+ 69, 69, 1274, 1286, 1288, 1289, 1278, 69, 1279, 1287,
+ 1297, 1280, 69, 1295, 1290, 1281, 1282, 1294, 1296, 1299,
+ 69, 1300, 69, 1316, 1283, 1285, 69, 69, 1291, 69,
+ 1286, 1288, 1289, 1302, 1292, 1301, 1287, 1293, 1298, 1303,
+ 69, 1290, 69, 69, 1294, 69, 69, 69, 1300, 1304,
+ 69, 69, 69, 1306, 69, 1291, 1305, 1309, 1310, 1307,
+ 1302, 1292, 1313, 1308, 1293, 1298, 1303, 69, 1314, 1311,
+ 69, 69, 69, 2237, 1312, 1322, 69, 69, 69, 69,
+ 1306, 69, 69, 1305, 1309, 1310, 1307, 1318, 1315, 1319,
+ 1308, 1317, 1324, 69, 69, 1314, 1311, 69, 69, 1320,
+
+ 1321, 1312, 1322, 1323, 69, 1325, 1331, 69, 1327, 1328,
+ 69, 69, 1326, 69, 1318, 1315, 1319, 1332, 1317, 1324,
+ 1335, 69, 69, 1329, 69, 69, 1320, 1321, 69, 1330,
+ 1323, 1333, 69, 1331, 1334, 1327, 1328, 69, 69, 1326,
+ 1336, 69, 1337, 69, 1338, 1340, 69, 1335, 1339, 69,
+ 1329, 1341, 1343, 1342, 1345, 1344, 1330, 2237, 1333, 69,
+ 2237, 1334, 69, 69, 1346, 1347, 69, 69, 69, 1337,
+ 69, 69, 1340, 69, 1349, 1339, 1348, 69, 69, 1343,
+ 1342, 1345, 1344, 1350, 1351, 1356, 1352, 69, 1355, 69,
+ 1354, 1346, 1347, 1357, 69, 69, 1358, 69, 1367, 1353,
+
+ 69, 1349, 69, 1348, 69, 1361, 69, 1360, 1359, 1363,
+ 1350, 1351, 69, 1352, 69, 1355, 69, 1354, 1364, 1365,
+ 1362, 1366, 1369, 1358, 69, 69, 1353, 69, 1368, 1370,
+ 69, 1371, 69, 1373, 1360, 1359, 69, 1372, 69, 69,
+ 1374, 1376, 1375, 1383, 69, 1364, 69, 1362, 1366, 1387,
+ 2237, 1381, 69, 2237, 69, 1368, 1370, 69, 69, 1382,
+ 1373, 1391, 69, 69, 1372, 1388, 69, 69, 69, 1375,
+ 1377, 1378, 1379, 69, 1384, 69, 1387, 1380, 1381, 1385,
+ 1389, 69, 1390, 1394, 1386, 69, 1382, 1392, 1393, 69,
+ 69, 1395, 1388, 69, 69, 69, 69, 1377, 1378, 1379,
+
+ 1397, 1384, 1396, 69, 1380, 69, 1398, 1389, 1400, 1390,
+ 1394, 69, 1399, 69, 1392, 1393, 1401, 69, 69, 1402,
+ 1404, 1406, 1403, 1413, 1405, 2237, 69, 1397, 69, 1396,
+ 1408, 69, 1407, 1398, 69, 1400, 69, 69, 1409, 1399,
+ 1412, 69, 1411, 69, 1410, 69, 1402, 69, 1406, 1403,
+ 69, 1405, 1415, 69, 1414, 69, 1416, 1408, 1417, 1407,
+ 1418, 69, 69, 2237, 69, 1409, 1420, 1412, 1421, 1411,
+ 1419, 1410, 69, 1428, 1422, 69, 1423, 1425, 1424, 1415,
+ 1427, 1414, 69, 2237, 69, 69, 69, 69, 69, 2237,
+ 69, 69, 69, 1420, 1429, 1421, 2237, 1419, 1426, 69,
+
+ 1428, 1422, 69, 1423, 1425, 1424, 69, 1427, 1431, 1434,
+ 1430, 1432, 1433, 1435, 1437, 1436, 69, 69, 1440, 1443,
+ 69, 1429, 1441, 69, 1444, 1426, 69, 1445, 69, 1448,
+ 1451, 1442, 69, 69, 69, 1431, 1434, 1430, 1432, 1433,
+ 1435, 69, 1436, 1438, 69, 69, 1443, 1446, 1439, 1441,
+ 1449, 69, 1447, 1450, 69, 1453, 69, 1452, 1442, 69,
+ 1456, 69, 69, 1455, 1457, 69, 1454, 1458, 69, 69,
+ 1438, 1459, 69, 1460, 1462, 1439, 1461, 1449, 69, 69,
+ 1450, 69, 1453, 1463, 1452, 1465, 69, 1464, 1466, 1467,
+ 1455, 1457, 69, 1454, 69, 1469, 1470, 69, 1459, 69,
+
+ 1460, 69, 69, 1461, 1468, 1471, 1472, 2237, 1475, 69,
+ 69, 69, 1473, 69, 1464, 1466, 1467, 69, 69, 1474,
+ 1476, 69, 1469, 1470, 1478, 69, 1477, 69, 1485, 69,
+ 1479, 1468, 1471, 1472, 69, 69, 1480, 69, 69, 1473,
+ 1481, 1483, 1482, 1484, 1490, 1486, 1474, 1476, 69, 69,
+ 69, 69, 1489, 1477, 69, 1487, 1491, 1479, 69, 1492,
+ 69, 69, 69, 1480, 69, 69, 1488, 1481, 1483, 1482,
+ 1484, 1490, 1486, 1493, 69, 1494, 1495, 1496, 1497, 1489,
+ 1498, 69, 1487, 1491, 69, 1499, 69, 69, 69, 69,
+ 1500, 1503, 1501, 1488, 1502, 2237, 1504, 1505, 69, 2237,
+
+ 1493, 1507, 1494, 1495, 1538, 1497, 69, 1498, 1516, 69,
+ 69, 69, 1499, 2237, 69, 69, 69, 69, 1503, 1501,
+ 1506, 1502, 69, 1504, 1505, 1508, 69, 1509, 1507, 1510,
+ 69, 1511, 1512, 1515, 1514, 69, 69, 1517, 1519, 2237,
+ 69, 69, 69, 69, 1518, 1513, 69, 1506, 69, 1523,
+ 2237, 69, 1508, 69, 1509, 1520, 1510, 1522, 1511, 1512,
+ 1515, 1514, 69, 1521, 1517, 1519, 1524, 1525, 1526, 1527,
+ 69, 1518, 1513, 1528, 69, 69, 1523, 69, 1529, 69,
+ 1530, 1532, 1520, 1548, 1522, 1531, 69, 69, 69, 69,
+ 1521, 69, 1533, 1524, 1525, 1526, 1527, 1536, 69, 1534,
+
+ 1528, 1535, 1537, 69, 1540, 1529, 69, 69, 1532, 69,
+ 1539, 1541, 1531, 1544, 1542, 69, 1545, 69, 69, 1533,
+ 1543, 69, 69, 69, 1536, 1550, 1534, 1546, 1535, 1537,
+ 69, 1540, 69, 69, 1549, 2237, 1552, 1539, 1541, 69,
+ 69, 1542, 69, 1545, 1547, 1551, 1554, 1543, 1553, 1555,
+ 69, 69, 1550, 1556, 1546, 1558, 69, 2237, 2237, 1557,
+ 69, 1549, 69, 1552, 69, 69, 1559, 1561, 1560, 1562,
+ 1564, 1547, 1551, 1554, 69, 1553, 1555, 69, 69, 1565,
+ 1556, 1566, 69, 69, 69, 1563, 1557, 1572, 69, 69,
+ 1567, 69, 69, 1559, 1561, 1560, 1562, 1564, 1569, 69,
+
+ 1571, 1570, 69, 1568, 1573, 69, 1565, 1575, 1566, 1577,
+ 1576, 69, 1563, 69, 1572, 1574, 1578, 1567, 69, 69,
+ 1582, 1579, 1584, 1588, 1580, 1569, 1589, 1571, 1570, 1581,
+ 1568, 69, 69, 69, 69, 69, 1577, 1576, 69, 69,
+ 1585, 69, 1574, 1578, 1583, 1593, 1590, 1582, 1579, 69,
+ 1588, 69, 1592, 69, 1586, 1591, 69, 1595, 1594, 2237,
+ 1597, 69, 1598, 2237, 1596, 1587, 69, 1585, 1600, 69,
+ 69, 1583, 69, 1590, 1599, 1606, 69, 69, 2237, 1592,
+ 69, 1586, 1591, 69, 69, 1594, 69, 1597, 1602, 1598,
+ 69, 1596, 1587, 1601, 1603, 1600, 1604, 69, 1605, 1607,
+
+ 69, 1599, 69, 1610, 69, 69, 1608, 1609, 1613, 69,
+ 1614, 1611, 69, 69, 1620, 1602, 69, 2237, 69, 69,
+ 1601, 1603, 69, 1604, 1612, 1605, 1607, 1617, 1615, 69,
+ 1610, 1619, 69, 1608, 1609, 1613, 69, 1614, 1611, 1616,
+ 1618, 69, 69, 69, 1621, 69, 69, 1622, 1626, 1623,
+ 1624, 1612, 1625, 1627, 1617, 1615, 1629, 1628, 1619, 1630,
+ 2237, 69, 69, 2237, 69, 1633, 1616, 1618, 69, 69,
+ 69, 1621, 1634, 1635, 1622, 69, 1623, 1624, 69, 1625,
+ 69, 1636, 1637, 1629, 1628, 69, 1630, 1631, 69, 69,
+ 1632, 1638, 69, 1639, 69, 69, 1640, 1642, 1643, 1634,
+
+ 1635, 1644, 1641, 1645, 1647, 69, 69, 69, 1636, 1637,
+ 69, 1648, 69, 1646, 1631, 1649, 1651, 1632, 1638, 1650,
+ 69, 1654, 1657, 69, 69, 1643, 69, 69, 69, 1641,
+ 69, 1647, 1652, 69, 1653, 2237, 1655, 1661, 1648, 1658,
+ 1646, 69, 69, 69, 1659, 69, 1650, 69, 1654, 69,
+ 1660, 1656, 2237, 1662, 1666, 69, 69, 1668, 69, 1652,
+ 69, 1653, 69, 1655, 69, 1663, 1658, 1664, 1665, 69,
+ 1670, 1659, 1671, 69, 1667, 1673, 1669, 1660, 1656, 69,
+ 1662, 69, 69, 69, 69, 1672, 2237, 1676, 1674, 1675,
+ 69, 69, 1663, 69, 1664, 1665, 1677, 1670, 69, 1671,
+
+ 1679, 1667, 1673, 1669, 69, 1678, 69, 1680, 1681, 69,
+ 1682, 69, 1672, 69, 1676, 1674, 1675, 1687, 1683, 69,
+ 1684, 1685, 69, 1677, 1690, 1692, 1689, 1679, 1686, 69,
+ 69, 1688, 1678, 69, 1680, 1681, 69, 1682, 69, 69,
+ 1691, 69, 69, 2237, 1693, 1683, 1698, 1684, 1685, 69,
+ 1697, 1690, 1694, 1689, 69, 1686, 1703, 69, 1688, 1699,
+ 1701, 1695, 69, 1696, 69, 1700, 69, 1691, 69, 1702,
+ 69, 1693, 69, 1698, 69, 1704, 69, 1697, 1705, 1694,
+ 69, 1707, 1708, 1703, 69, 69, 1699, 1701, 1695, 1706,
+ 1696, 1709, 1700, 1710, 1711, 1714, 1702, 69, 2237, 1712,
+
+ 2237, 1713, 1704, 1716, 69, 1705, 1715, 1719, 69, 69,
+ 69, 69, 69, 69, 1717, 1718, 1706, 1720, 1709, 69,
+ 1725, 69, 1714, 1721, 1724, 69, 1712, 69, 1713, 1722,
+ 1716, 69, 1723, 1715, 1719, 1727, 69, 69, 69, 69,
+ 69, 1717, 1718, 69, 69, 69, 1726, 1725, 1728, 1729,
+ 1721, 1724, 1730, 69, 1731, 1732, 1722, 69, 1733, 1723,
+ 1735, 69, 1727, 1742, 1734, 69, 1737, 1739, 69, 2237,
+ 69, 1736, 1738, 1726, 1740, 1744, 1729, 69, 1746, 1730,
+ 69, 1731, 1732, 69, 69, 69, 1741, 1735, 1743, 1745,
+ 69, 1734, 69, 1737, 1739, 69, 69, 1747, 1736, 1738,
+
+ 69, 1740, 69, 69, 1748, 69, 69, 69, 1749, 69,
+ 1750, 1751, 1752, 1741, 1753, 1743, 1745, 2237, 1754, 1757,
+ 1755, 1756, 1761, 1759, 1747, 69, 69, 69, 1764, 69,
+ 69, 1748, 1765, 1760, 1758, 1749, 1766, 69, 69, 1772,
+ 69, 1753, 1768, 69, 69, 1754, 1757, 1755, 1756, 69,
+ 69, 69, 1763, 1762, 69, 69, 1767, 1769, 69, 1765,
+ 1760, 1758, 69, 69, 69, 1771, 69, 69, 1770, 1768,
+ 69, 1773, 1774, 1775, 2237, 1777, 1776, 2237, 69, 1763,
+ 1762, 69, 1778, 1767, 1769, 69, 1780, 69, 69, 1779,
+ 1781, 1784, 1771, 1782, 1785, 1770, 2237, 69, 69, 69,
+
+ 1775, 69, 1777, 1776, 69, 69, 69, 1783, 1788, 1778,
+ 1786, 69, 69, 1780, 69, 69, 1779, 1781, 69, 1787,
+ 1782, 1785, 69, 1790, 1789, 1792, 69, 69, 1791, 1793,
+ 2237, 1800, 1801, 1796, 1783, 1788, 69, 1786, 69, 1794,
+ 1797, 1795, 1798, 69, 69, 69, 1787, 1802, 1799, 1804,
+ 1790, 1789, 1792, 69, 69, 1791, 1793, 69, 69, 69,
+ 1796, 1813, 1803, 1809, 69, 69, 1794, 1797, 1795, 1798,
+ 69, 69, 1805, 69, 1802, 1799, 1804, 1806, 1807, 69,
+ 1808, 69, 1812, 69, 1810, 1811, 69, 69, 69, 1803,
+ 1809, 69, 1814, 1815, 69, 1816, 2237, 1818, 2237, 1805,
+
+ 1824, 1817, 69, 1822, 1806, 1807, 69, 1808, 69, 1812,
+ 69, 1810, 1811, 69, 1819, 69, 1820, 1821, 1823, 1814,
+ 1815, 1826, 1816, 69, 1818, 69, 1825, 69, 1817, 1827,
+ 69, 2237, 69, 69, 1832, 69, 1828, 69, 1831, 1829,
+ 1830, 1819, 1833, 1820, 1821, 69, 69, 69, 1826, 1834,
+ 1835, 1842, 1837, 1825, 1836, 2237, 1827, 1838, 69, 69,
+ 69, 1832, 69, 1828, 69, 1831, 1829, 1830, 1840, 69,
+ 69, 1843, 1839, 1841, 69, 69, 1834, 69, 69, 1837,
+ 69, 1836, 1844, 69, 1838, 1845, 1849, 1846, 1848, 1847,
+ 1850, 69, 1851, 1852, 1853, 1840, 1854, 69, 1843, 1839,
+
+ 1841, 69, 69, 1855, 69, 1856, 2237, 1857, 1860, 1844,
+ 69, 69, 69, 69, 1846, 1848, 1847, 1850, 1861, 69,
+ 69, 1853, 1858, 69, 1859, 69, 69, 69, 1862, 1864,
+ 1855, 1863, 69, 69, 1857, 1860, 1866, 69, 69, 2237,
+ 69, 69, 1865, 1867, 1868, 1861, 1870, 1869, 69, 1858,
+ 1871, 1859, 1872, 69, 1873, 1862, 1864, 1874, 1863, 69,
+ 1875, 69, 2237, 1866, 1876, 69, 69, 1879, 1877, 1865,
+ 1867, 1868, 69, 69, 1869, 1878, 69, 69, 1880, 1872,
+ 69, 1873, 69, 1882, 1881, 1884, 1885, 1875, 1883, 69,
+ 69, 1876, 1887, 1886, 69, 1877, 1889, 69, 69, 1888,
+
+ 2237, 2237, 1878, 1890, 2237, 69, 1891, 69, 69, 1892,
+ 1893, 1881, 1884, 1894, 69, 69, 69, 69, 69, 1887,
+ 1886, 1899, 69, 1889, 69, 1896, 1888, 1897, 69, 1895,
+ 1890, 1898, 1900, 1891, 69, 69, 1892, 1893, 69, 69,
+ 1894, 1904, 1906, 1901, 1908, 69, 1902, 69, 1899, 69,
+ 69, 69, 1896, 69, 1897, 1903, 1895, 1905, 1898, 1900,
+ 69, 1914, 1907, 69, 1909, 69, 1910, 1912, 69, 1906,
+ 1901, 69, 69, 1902, 69, 1913, 1911, 1915, 69, 1916,
+ 2237, 1917, 1903, 69, 1905, 1920, 1918, 1919, 69, 1907,
+ 69, 1909, 1922, 1910, 1912, 1923, 69, 1921, 69, 69,
+
+ 69, 69, 1926, 1911, 1915, 1927, 1916, 69, 1917, 69,
+ 69, 1928, 1920, 1918, 1919, 1929, 1924, 1931, 69, 1922,
+ 1925, 1932, 69, 69, 1921, 1930, 1935, 69, 69, 1926,
+ 1933, 2237, 69, 1934, 1936, 69, 1937, 1940, 1928, 69,
+ 1938, 69, 69, 1924, 69, 1939, 69, 1925, 69, 1941,
+ 1942, 69, 1930, 1943, 1944, 69, 1945, 1933, 69, 69,
+ 1934, 69, 1946, 1937, 1940, 1948, 1947, 69, 1949, 1950,
+ 69, 1955, 69, 1954, 2237, 1951, 1941, 69, 69, 1952,
+ 1943, 1944, 69, 69, 69, 1957, 69, 1953, 69, 1946,
+ 69, 1956, 1948, 1947, 69, 1949, 1950, 69, 69, 69,
+
+ 1954, 1958, 1951, 1959, 69, 1960, 1952, 1961, 1962, 69,
+ 2237, 2237, 1957, 1964, 1953, 1963, 1965, 69, 1956, 69,
+ 69, 1966, 1969, 1970, 2237, 1972, 1973, 1971, 1958, 69,
+ 1959, 69, 1960, 69, 1961, 1962, 69, 69, 1967, 69,
+ 1964, 1974, 1963, 1965, 1968, 69, 69, 69, 1966, 69,
+ 1970, 69, 69, 1973, 1971, 1975, 1976, 1977, 1978, 1982,
+ 1980, 1981, 1984, 1979, 1983, 1967, 69, 1986, 69, 2237,
+ 2237, 1968, 2237, 69, 69, 1985, 69, 69, 69, 1987,
+ 1988, 1991, 1975, 1976, 1977, 69, 69, 1980, 1981, 1984,
+ 1979, 69, 1992, 69, 69, 69, 1989, 69, 69, 1990,
+
+ 2237, 1997, 1985, 69, 1993, 1994, 1987, 1988, 1991, 1995,
+ 1999, 1998, 1996, 2000, 69, 2237, 2002, 69, 69, 1992,
+ 2001, 69, 69, 1989, 2003, 2004, 1990, 69, 69, 69,
+ 2008, 1993, 1994, 2006, 2010, 69, 1995, 1999, 1998, 1996,
+ 2000, 2007, 69, 2005, 2013, 2011, 69, 2001, 69, 69,
+ 69, 2003, 69, 69, 2009, 69, 69, 2012, 2016, 2014,
+ 2006, 69, 69, 2017, 2015, 2022, 2020, 2018, 2007, 69,
+ 2005, 69, 2011, 69, 69, 69, 69, 2019, 2021, 69,
+ 2024, 2009, 2025, 2027, 2012, 2016, 2014, 69, 69, 2023,
+ 2017, 2015, 69, 2020, 2018, 2026, 69, 69, 2029, 2030,
+
+ 2028, 69, 2034, 2237, 2019, 2021, 2031, 69, 2032, 69,
+ 69, 69, 69, 69, 2036, 2033, 2023, 2035, 2037, 69,
+ 69, 2038, 2026, 69, 2040, 2029, 69, 2028, 69, 2034,
+ 69, 2039, 69, 2031, 2043, 2032, 2042, 2041, 2044, 2048,
+ 2045, 2036, 2033, 69, 2035, 69, 2049, 2047, 69, 69,
+ 2051, 2040, 69, 2046, 69, 2050, 2052, 2054, 2039, 69,
+ 2057, 69, 69, 2042, 2041, 2044, 69, 2045, 69, 2058,
+ 2060, 69, 2061, 69, 2047, 2062, 2053, 2051, 69, 69,
+ 2046, 2064, 2050, 2052, 69, 2055, 2056, 69, 69, 69,
+ 2059, 2065, 2063, 2066, 69, 69, 69, 69, 69, 2061,
+
+ 2067, 2068, 2062, 2053, 2070, 2237, 2071, 2069, 69, 69,
+ 2072, 2073, 2055, 2056, 69, 69, 2074, 2059, 69, 2063,
+ 69, 2075, 69, 69, 69, 2076, 2079, 2067, 69, 2077,
+ 2080, 2070, 69, 2071, 2069, 2237, 2078, 69, 2073, 69,
+ 2081, 2087, 2084, 2074, 2085, 69, 2237, 2082, 2075, 69,
+ 2237, 69, 69, 2079, 69, 2086, 2077, 69, 2083, 69,
+ 69, 2089, 69, 2078, 69, 69, 2088, 2081, 2087, 2084,
+ 69, 2085, 2090, 69, 2082, 2093, 69, 2091, 2092, 2094,
+ 2096, 69, 2086, 69, 2095, 2083, 2097, 69, 2089, 2098,
+ 2099, 69, 2100, 2088, 2101, 2102, 2237, 2103, 2104, 2090,
+
+ 2105, 69, 2093, 2107, 2091, 2092, 2094, 69, 2106, 69,
+ 2109, 2095, 69, 69, 2108, 2111, 2098, 69, 2112, 69,
+ 69, 69, 69, 69, 2103, 69, 2113, 2105, 2114, 2110,
+ 69, 2115, 2116, 69, 69, 2106, 2117, 2109, 69, 2119,
+ 2237, 2108, 2111, 69, 69, 2112, 2118, 2121, 69, 2122,
+ 2124, 69, 2123, 69, 69, 69, 2110, 2125, 2115, 2116,
+ 69, 2120, 2126, 69, 2127, 2128, 2119, 69, 2129, 69,
+ 2130, 69, 2131, 2118, 2121, 2132, 2122, 69, 2133, 2123,
+ 2135, 2134, 2137, 2138, 69, 2136, 69, 2139, 2120, 69,
+ 69, 69, 69, 69, 69, 2129, 2140, 69, 2144, 69,
+
+ 69, 2142, 2132, 2141, 69, 2133, 69, 69, 2134, 2137,
+ 69, 69, 2136, 2143, 2139, 69, 2145, 2148, 69, 2146,
+ 2147, 69, 69, 2140, 69, 2144, 69, 2150, 2142, 2149,
+ 2141, 2157, 2237, 69, 2151, 2154, 2237, 69, 2153, 69,
+ 2143, 69, 69, 2145, 2148, 69, 2146, 2147, 2152, 69,
+ 2158, 2155, 2156, 2159, 2150, 2160, 2149, 69, 69, 69,
+ 2161, 2151, 2154, 69, 2162, 2153, 2163, 2164, 69, 69,
+ 2166, 2165, 2167, 2168, 2172, 2152, 2173, 2158, 2155, 2156,
+ 69, 69, 2160, 69, 2169, 69, 69, 69, 69, 2171,
+ 2174, 2162, 2170, 2163, 2164, 2175, 69, 69, 2165, 2167,
+
+ 69, 69, 69, 69, 2176, 2177, 69, 2178, 69, 69,
+ 2180, 2169, 69, 2179, 2181, 2182, 2171, 2174, 69, 2170,
+ 2237, 69, 2175, 69, 69, 2183, 2184, 2185, 69, 2186,
+ 69, 2176, 2177, 2187, 2178, 69, 2188, 2180, 2237, 2189,
+ 2179, 2181, 2182, 2190, 2193, 2192, 2197, 69, 69, 2191,
+ 2237, 2237, 2183, 2184, 2185, 2194, 69, 69, 69, 69,
+ 2187, 69, 2200, 2188, 2195, 69, 2189, 2237, 2204, 2199,
+ 2190, 69, 69, 2196, 2237, 69, 2191, 69, 69, 2198,
+ 2201, 69, 2194, 69, 69, 2202, 2205, 69, 69, 2200,
+ 2203, 2195, 2207, 69, 69, 2204, 2199, 2206, 2237, 2208,
+
+ 2196, 2209, 2210, 2211, 69, 69, 2198, 2201, 69, 2212,
+ 2216, 69, 2202, 2205, 2213, 2214, 2237, 2203, 69, 2207,
+ 2237, 2218, 69, 69, 2206, 69, 2208, 2219, 2209, 2210,
+ 2211, 2215, 69, 2222, 69, 69, 69, 2216, 2217, 69,
+ 2225, 2213, 2214, 69, 2220, 2221, 69, 2223, 2218, 69,
+ 2226, 2228, 69, 69, 2219, 69, 2224, 2229, 2215, 69,
+ 2222, 2227, 2230, 2231, 69, 2217, 69, 2225, 2233, 2232,
+ 2235, 2220, 2221, 2236, 2223, 2237, 69, 69, 69, 2234,
+ 2237, 69, 69, 2224, 69, 69, 2237, 69, 2227, 2230,
+ 2231, 69, 2237, 2237, 2237, 2233, 2232, 69, 2237, 2237,
+
+ 69, 2237, 2237, 2237, 2237, 2237, 2234, 41, 41, 41,
+ 41, 41, 41, 41, 46, 46, 46, 46, 46, 46,
+ 46, 51, 51, 51, 51, 51, 51, 51, 57, 57,
+ 57, 57, 57, 57, 57, 62, 62, 62, 62, 62,
+ 62, 62, 72, 72, 2237, 72, 72, 72, 72, 131,
+ 131, 2237, 2237, 2237, 131, 131, 133, 133, 2237, 2237,
+ 133, 2237, 133, 135, 2237, 2237, 2237, 2237, 2237, 135,
+ 138, 138, 2237, 2237, 2237, 138, 138, 140, 2237, 2237,
+ 2237, 2237, 2237, 140, 142, 142, 2237, 142, 142, 142,
+ 142, 73, 73, 2237, 73, 73, 73, 73, 13, 2237,
+
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237
} ;
-static yyconst flex_int16_t yy_chk[6281] =
+static yyconst flex_int16_t yy_chk[6466] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1862,688 +1909,709 @@ static yyconst flex_int16_t yy_chk[6281] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 3, 3, 3, 4,
4, 4, 5, 5, 6, 6, 5, 27, 6, 7,
- 7, 7, 7, 671, 7, 8, 8, 8, 8, 27,
+ 7, 7, 7, 676, 7, 8, 8, 8, 8, 27,
8, 9, 9, 9, 10, 10, 10, 15, 45, 45,
- 2170, 15, 23, 3, 27, 50, 4, 769, 50, 5,
- 19, 6, 19, 19, 671, 19, 140, 7, 29, 61,
+ 2243, 15, 23, 3, 27, 50, 4, 775, 50, 5,
+ 19, 6, 19, 19, 676, 19, 140, 7, 29, 61,
61, 19, 23, 8, 138, 23, 20, 20, 9, 23,
29, 10, 11, 11, 11, 11, 11, 11, 12, 12,
- 12, 12, 12, 12, 20, 29, 24, 137, 19, 23,
+ 12, 12, 12, 12, 20, 29, 24, 103, 19, 23,
20, 25, 11, 20, 20, 21, 75, 32, 12, 25,
- 24, 70, 21, 32, 853, 70, 21, 96, 28, 21,
- 11, 20, 24, 24, 132, 132, 12, 25, 25, 11,
+ 24, 70, 21, 32, 860, 70, 21, 103, 28, 21,
+ 11, 20, 24, 24, 103, 137, 12, 25, 25, 11,
75, 21, 21, 75, 32, 12, 25, 24, 26, 21,
- 28, 26, 853, 21, 30, 28, 21, 22, 26, 96,
+ 28, 26, 860, 21, 30, 28, 21, 22, 26, 135,
- 26, 22, 30, 135, 22, 116, 22, 22, 30, 133,
+ 26, 22, 30, 133, 22, 116, 22, 22, 30, 131,
31, 26, 30, 34, 31, 26, 77, 116, 26, 22,
30, 30, 76, 77, 22, 26, 34, 26, 22, 30,
31, 22, 116, 22, 22, 30, 31, 31, 35, 30,
34, 31, 35, 77, 134, 76, 37, 134, 37, 76,
- 100, 131, 35, 100, 38, 35, 84, 31, 33, 38,
- 68, 84, 33, 37, 35, 35, 39, 38, 33, 35,
+ 100, 68, 35, 100, 38, 35, 84, 31, 33, 38,
+ 62, 84, 33, 37, 35, 35, 39, 38, 33, 35,
39, 33, 37, 37, 39, 37, 80, 100, 33, 35,
- 33, 38, 35, 84, 62, 33, 38, 139, 139, 33,
+ 33, 38, 35, 84, 57, 33, 38, 132, 132, 33,
37, 66, 39, 39, 80, 33, 125, 39, 33, 85,
- 762, 39, 125, 80, 66, 33, 36, 85, 40, 36,
+ 768, 39, 125, 80, 66, 33, 36, 85, 40, 36,
40, 40, 56, 40, 56, 56, 36, 56, 66, 40,
36, 36, 64, 125, 64, 64, 85, 64, 36, 67,
- 762, 67, 67, 36, 67, 69, 36, 69, 69, 72,
+ 768, 67, 67, 36, 67, 69, 36, 69, 69, 72,
69, 72, 72, 36, 72, 78, 69, 36, 36, 81,
- 72, 87, 79, 82, 83, 83, 57, 86, 78, 82,
- 64, 79, 81, 83, 87, 52, 88, 89, 92, 78,
- 51, 266, 78, 88, 82, 86, 81, 72, 87, 79,
+ 72, 87, 79, 82, 83, 83, 52, 86, 78, 82,
+ 64, 79, 81, 83, 87, 51, 88, 89, 92, 78,
+ 139, 139, 78, 88, 82, 86, 81, 72, 87, 79,
82, 83, 83, 89, 93, 78, 82, 90, 91, 86,
- 94, 92, 97, 88, 89, 92, 90, 91, 266, 101,
-
- 97, 46, 86, 94, 95, 98, 93, 95, 104, 99,
- 103, 93, 101, 99, 90, 91, 102, 94, 105, 97,
- 95, 95, 104, 109, 41, 98, 101, 98, 95, 14,
- 103, 95, 98, 99, 95, 104, 99, 103, 105, 102,
- 99, 106, 107, 102, 108, 105, 109, 95, 95, 107,
- 109, 110, 98, 108, 111, 106, 112, 114, 111, 115,
- 110, 113, 117, 112, 114, 115, 119, 120, 106, 107,
- 117, 108, 13, 115, 0, 122, 111, 0, 110, 0,
- 119, 111, 121, 112, 114, 111, 115, 113, 113, 117,
- 118, 123, 115, 119, 118, 122, 124, 121, 0, 120,
-
- 123, 122, 122, 118, 126, 127, 129, 124, 130, 121,
- 0, 128, 0, 0, 0, 129, 0, 118, 123, 0,
- 0, 118, 122, 124, 144, 126, 128, 127, 145, 126,
- 130, 126, 127, 129, 136, 130, 136, 136, 128, 136,
- 141, 146, 141, 141, 142, 141, 142, 142, 144, 142,
- 145, 144, 126, 147, 149, 145, 148, 150, 0, 152,
- 153, 154, 149, 151, 157, 147, 152, 154, 0, 150,
- 155, 0, 156, 146, 160, 148, 0, 176, 153, 0,
- 147, 149, 142, 148, 150, 151, 152, 153, 230, 162,
- 151, 158, 155, 154, 154, 158, 157, 155, 156, 156,
-
- 160, 160, 161, 163, 164, 165, 168, 167, 164, 176,
- 161, 162, 158, 0, 166, 170, 162, 230, 168, 158,
- 167, 0, 158, 0, 170, 163, 171, 172, 165, 161,
- 163, 164, 165, 168, 167, 177, 166, 179, 0, 158,
- 159, 166, 170, 169, 174, 159, 169, 180, 171, 172,
- 159, 174, 0, 171, 172, 175, 159, 159, 169, 173,
- 182, 177, 177, 159, 173, 180, 175, 159, 178, 179,
- 169, 174, 159, 169, 180, 181, 173, 159, 173, 178,
- 184, 181, 175, 159, 159, 173, 173, 183, 185, 0,
- 186, 173, 182, 0, 187, 188, 191, 189, 190, 192,
-
- 178, 191, 181, 173, 189, 173, 178, 194, 187, 183,
- 186, 201, 184, 193, 183, 203, 188, 186, 192, 190,
- 185, 187, 188, 191, 189, 190, 192, 193, 196, 194,
- 195, 197, 198, 199, 194, 207, 200, 205, 197, 196,
- 193, 200, 195, 201, 202, 202, 206, 203, 210, 212,
- 0, 0, 218, 202, 198, 196, 199, 195, 197, 198,
- 199, 204, 205, 200, 205, 209, 206, 207, 204, 208,
- 211, 202, 202, 206, 210, 210, 220, 208, 213, 214,
- 209, 212, 215, 214, 218, 217, 216, 221, 204, 219,
- 0, 223, 209, 211, 216, 213, 208, 215, 225, 221,
-
- 223, 0, 211, 213, 217, 213, 214, 227, 220, 215,
- 222, 219, 217, 216, 221, 224, 219, 225, 223, 226,
- 211, 226, 213, 222, 228, 225, 229, 231, 224, 232,
- 234, 227, 233, 235, 227, 0, 231, 222, 236, 239,
- 237, 234, 224, 238, 241, 235, 226, 242, 244, 228,
- 0, 228, 229, 229, 231, 232, 232, 234, 233, 233,
- 235, 238, 236, 237, 240, 236, 243, 237, 245, 246,
- 238, 239, 248, 242, 242, 245, 241, 240, 246, 247,
- 244, 249, 252, 251, 0, 247, 248, 250, 243, 253,
- 257, 240, 251, 243, 254, 245, 246, 0, 253, 248,
-
- 256, 258, 259, 255, 0, 252, 247, 249, 249, 252,
- 251, 250, 255, 272, 250, 256, 253, 259, 261, 262,
- 254, 254, 257, 260, 263, 258, 0, 256, 258, 259,
- 255, 260, 260, 264, 260, 0, 261, 262, 263, 267,
- 272, 260, 0, 262, 268, 261, 262, 268, 264, 278,
- 260, 263, 265, 265, 268, 269, 278, 270, 260, 260,
- 264, 260, 274, 267, 262, 271, 267, 269, 273, 275,
- 277, 268, 276, 280, 268, 270, 278, 265, 282, 265,
- 265, 275, 269, 271, 270, 277, 279, 283, 274, 274,
- 273, 412, 271, 281, 276, 273, 275, 277, 279, 276,
-
- 281, 284, 285, 286, 285, 280, 289, 284, 0, 283,
- 282, 0, 292, 279, 283, 290, 286, 288, 412, 292,
- 281, 0, 287, 284, 293, 287, 285, 287, 284, 285,
- 286, 285, 291, 287, 284, 288, 293, 290, 289, 292,
- 291, 295, 290, 294, 288, 296, 291, 305, 298, 287,
- 300, 293, 287, 299, 287, 300, 294, 295, 296, 291,
- 298, 303, 0, 301, 343, 295, 302, 291, 295, 301,
- 294, 299, 296, 303, 302, 298, 304, 306, 343, 305,
- 299, 306, 300, 304, 295, 297, 297, 307, 303, 308,
- 301, 343, 0, 302, 307, 297, 308, 297, 297, 297,
-
- 0, 310, 297, 304, 306, 309, 311, 312, 313, 316,
- 297, 0, 297, 297, 307, 313, 308, 309, 311, 314,
- 318, 319, 297, 310, 297, 297, 297, 315, 310, 297,
- 321, 318, 309, 311, 314, 313, 317, 321, 317, 312,
- 315, 316, 322, 319, 320, 320, 314, 318, 319, 323,
- 325, 324, 0, 322, 315, 0, 326, 321, 328, 327,
- 323, 0, 332, 317, 324, 0, 0, 328, 329, 322,
- 331, 335, 334, 320, 327, 325, 323, 325, 324, 326,
- 330, 329, 327, 326, 332, 328, 327, 333, 331, 332,
- 334, 330, 337, 330, 336, 329, 341, 331, 330, 334,
-
- 336, 327, 338, 335, 339, 340, 342, 330, 344, 345,
- 333, 0, 340, 337, 333, 346, 368, 348, 330, 337,
- 330, 336, 341, 341, 347, 338, 339, 349, 342, 338,
- 347, 339, 340, 342, 344, 344, 352, 350, 346, 348,
- 351, 345, 346, 353, 348, 349, 354, 355, 368, 356,
- 0, 347, 350, 355, 349, 351, 358, 0, 360, 352,
- 359, 361, 0, 352, 350, 362, 359, 351, 354, 353,
- 353, 363, 362, 354, 355, 356, 356, 360, 392, 361,
- 372, 367, 358, 358, 369, 360, 363, 359, 361, 366,
- 370, 365, 362, 365, 367, 373, 366, 371, 363, 372,
-
- 365, 374, 369, 375, 392, 392, 376, 372, 367, 377,
- 371, 369, 370, 409, 380, 379, 366, 370, 365, 376,
- 365, 379, 409, 382, 371, 374, 375, 373, 374, 378,
- 0, 377, 381, 376, 378, 375, 377, 380, 383, 384,
- 409, 380, 379, 387, 381, 382, 388, 384, 386, 383,
- 382, 387, 389, 375, 390, 386, 378, 388, 0, 381,
- 394, 391, 389, 0, 395, 383, 384, 385, 391, 393,
- 387, 393, 385, 388, 385, 386, 395, 0, 390, 0,
- 396, 390, 385, 407, 389, 385, 394, 394, 391, 389,
- 397, 395, 385, 385, 385, 396, 393, 398, 399, 385,
-
- 400, 385, 397, 399, 403, 398, 402, 396, 401, 385,
- 411, 404, 385, 406, 402, 407, 403, 397, 413, 385,
- 410, 415, 400, 0, 398, 399, 401, 400, 408, 411,
- 414, 403, 404, 402, 410, 401, 406, 411, 404, 416,
- 406, 417, 419, 408, 418, 414, 420, 410, 421, 422,
- 413, 421, 425, 415, 416, 408, 418, 414, 423, 421,
- 422, 426, 428, 423, 419, 417, 416, 424, 417, 419,
- 420, 418, 427, 420, 429, 421, 422, 430, 421, 425,
- 431, 424, 0, 432, 433, 435, 431, 434, 426, 428,
- 423, 436, 433, 437, 424, 441, 0, 439, 0, 442,
-
- 0, 429, 443, 0, 427, 432, 434, 431, 435, 430,
- 432, 433, 435, 438, 434, 443, 437, 446, 440, 439,
- 437, 442, 438, 436, 439, 440, 442, 441, 444, 443,
- 445, 448, 447, 444, 449, 450, 451, 444, 0, 445,
- 438, 447, 453, 446, 446, 440, 0, 452, 450, 454,
- 0, 455, 444, 448, 463, 444, 449, 445, 448, 447,
- 444, 449, 450, 456, 444, 452, 453, 0, 451, 453,
- 457, 454, 454, 455, 452, 458, 454, 459, 455, 462,
- 461, 457, 460, 0, 464, 456, 463, 468, 465, 458,
- 456, 461, 466, 470, 462, 467, 468, 457, 454, 459,
-
- 460, 471, 458, 473, 459, 464, 462, 461, 469, 460,
- 472, 464, 465, 0, 468, 465, 466, 467, 474, 466,
- 476, 469, 467, 471, 475, 470, 478, 473, 471, 475,
- 473, 0, 477, 479, 476, 469, 480, 481, 482, 0,
- 474, 479, 472, 484, 483, 474, 477, 476, 484, 0,
- 485, 0, 481, 482, 480, 486, 475, 486, 478, 477,
- 479, 481, 487, 480, 481, 482, 483, 489, 495, 0,
- 488, 483, 490, 494, 491, 484, 485, 485, 488, 481,
- 492, 490, 486, 491, 493, 0, 495, 487, 492, 487,
- 496, 493, 489, 499, 489, 495, 494, 488, 498, 490,
-
- 494, 491, 496, 497, 500, 499, 498, 492, 501, 0,
- 502, 493, 497, 503, 0, 504, 501, 496, 502, 506,
- 499, 507, 0, 508, 510, 498, 0, 505, 0, 0,
- 497, 508, 507, 509, 511, 501, 500, 502, 504, 503,
- 503, 506, 504, 505, 510, 512, 506, 509, 507, 513,
- 508, 510, 514, 515, 505, 516, 511, 518, 523, 517,
- 509, 511, 515, 519, 523, 512, 520, 521, 528, 522,
- 518, 513, 512, 0, 514, 516, 513, 517, 0, 514,
- 515, 519, 516, 525, 518, 523, 517, 524, 520, 527,
- 519, 521, 522, 520, 521, 524, 522, 527, 529, 533,
-
- 528, 525, 531, 530, 0, 529, 532, 0, 534, 535,
- 525, 540, 551, 524, 524, 532, 527, 531, 535, 536,
- 547, 536, 524, 540, 543, 529, 530, 534, 549, 531,
- 530, 533, 537, 532, 543, 534, 535, 0, 540, 537,
- 0, 547, 548, 546, 551, 550, 536, 547, 0, 580,
- 0, 543, 554, 553, 549, 549, 558, 555, 554, 537,
- 538, 546, 557, 0, 538, 548, 555, 538, 559, 548,
- 546, 550, 550, 560, 538, 553, 556, 538, 556, 554,
- 553, 580, 538, 558, 555, 561, 557, 538, 559, 557,
- 564, 538, 562, 563, 538, 559, 0, 561, 567, 560,
-
- 560, 538, 565, 556, 538, 552, 552, 0, 552, 566,
- 0, 552, 561, 567, 564, 563, 552, 564, 562, 562,
- 563, 569, 552, 552, 565, 567, 572, 571, 569, 565,
- 573, 552, 552, 552, 566, 552, 566, 568, 552, 570,
- 577, 581, 573, 552, 576, 568, 571, 570, 569, 552,
- 552, 575, 572, 572, 571, 574, 578, 573, 579, 576,
- 575, 593, 577, 582, 568, 583, 570, 577, 574, 584,
- 585, 576, 586, 581, 588, 590, 587, 591, 575, 0,
- 579, 586, 574, 578, 0, 579, 583, 582, 584, 585,
- 582, 592, 583, 593, 588, 591, 584, 585, 587, 586,
-
- 589, 588, 590, 587, 591, 594, 596, 597, 589, 599,
- 592, 598, 603, 594, 601, 600, 604, 602, 592, 604,
- 608, 607, 0, 0, 596, 597, 0, 589, 600, 602,
- 603, 599, 594, 596, 597, 598, 599, 605, 598, 603,
- 601, 601, 600, 604, 602, 605, 607, 608, 607, 609,
- 611, 610, 612, 613, 617, 609, 611, 615, 613, 612,
- 614, 605, 616, 617, 605, 619, 618, 614, 623, 621,
- 622, 620, 605, 610, 618, 615, 609, 611, 610, 612,
- 613, 617, 621, 619, 615, 616, 620, 614, 626, 616,
- 625, 622, 619, 618, 624, 623, 621, 622, 620, 627,
-
- 628, 624, 629, 625, 0, 632, 631, 630, 634, 633,
- 629, 632, 637, 638, 635, 630, 636, 625, 0, 640,
- 626, 624, 630, 628, 642, 636, 637, 628, 631, 629,
- 639, 627, 632, 631, 630, 633, 633, 639, 635, 637,
- 634, 635, 630, 636, 641, 638, 640, 643, 645, 644,
- 647, 642, 646, 641, 648, 646, 645, 639, 649, 643,
- 652, 648, 0, 647, 649, 659, 653, 0, 0, 651,
- 659, 641, 644, 0, 643, 645, 644, 647, 653, 646,
- 654, 648, 654, 652, 657, 649, 650, 652, 650, 655,
- 656, 0, 650, 653, 650, 651, 651, 659, 0, 650,
-
- 661, 658, 656, 664, 650, 660, 657, 654, 662, 665,
- 650, 657, 655, 650, 658, 650, 655, 656, 660, 650,
- 662, 650, 665, 661, 663, 664, 650, 661, 658, 667,
- 664, 650, 660, 666, 663, 662, 665, 668, 669, 666,
- 670, 674, 667, 0, 0, 0, 663, 673, 683, 0,
- 678, 663, 675, 0, 676, 0, 667, 677, 668, 686,
- 666, 663, 673, 674, 668, 675, 679, 670, 674, 676,
- 669, 672, 678, 680, 673, 683, 672, 678, 672, 675,
- 681, 676, 682, 677, 677, 679, 680, 684, 681, 672,
- 682, 686, 689, 679, 687, 690, 672, 672, 672, 0,
-
- 680, 0, 691, 672, 688, 672, 689, 681, 693, 682,
- 684, 695, 688, 704, 684, 694, 672, 692, 687, 689,
- 0, 687, 695, 672, 691, 692, 693, 690, 696, 691,
- 698, 688, 697, 694, 699, 693, 700, 0, 695, 0,
- 697, 699, 694, 701, 692, 704, 696, 702, 703, 700,
- 701, 706, 698, 714, 707, 696, 709, 698, 708, 697,
- 710, 699, 707, 700, 706, 702, 703, 708, 709, 711,
- 701, 712, 713, 715, 702, 703, 725, 718, 706, 714,
- 714, 707, 710, 709, 719, 708, 716, 710, 718, 719,
- 713, 711, 720, 712, 0, 720, 711, 721, 712, 713,
-
- 716, 722, 723, 724, 718, 715, 728, 727, 725, 723,
- 726, 735, 728, 716, 722, 724, 719, 726, 720, 720,
- 729, 721, 720, 731, 721, 730, 732, 0, 722, 723,
- 724, 727, 735, 728, 727, 736, 730, 726, 735, 733,
- 737, 738, 729, 746, 0, 731, 736, 729, 732, 740,
- 731, 739, 730, 732, 733, 741, 742, 744, 740, 745,
- 0, 737, 736, 743, 744, 742, 733, 737, 738, 739,
- 747, 743, 748, 745, 751, 746, 740, 752, 739, 741,
- 750, 753, 741, 742, 744, 754, 745, 755, 756, 750,
- 743, 757, 747, 752, 748, 758, 753, 747, 751, 748,
-
- 756, 751, 759, 760, 752, 761, 764, 750, 753, 766,
- 759, 766, 763, 757, 770, 756, 760, 754, 757, 755,
- 761, 763, 758, 765, 764, 771, 768, 770, 772, 759,
- 760, 765, 761, 764, 768, 772, 766, 771, 773, 763,
- 774, 770, 775, 0, 0, 0, 776, 778, 779, 0,
- 765, 0, 771, 768, 777, 772, 780, 786, 782, 783,
- 778, 779, 0, 0, 775, 781, 782, 793, 784, 775,
- 773, 776, 774, 776, 778, 779, 777, 781, 780, 783,
- 784, 777, 785, 780, 786, 782, 783, 787, 788, 789,
- 785, 790, 781, 793, 793, 784, 798, 788, 790, 794,
-
- 787, 0, 795, 797, 801, 798, 791, 799, 0, 785,
- 789, 796, 801, 800, 787, 788, 789, 791, 790, 802,
- 791, 794, 795, 798, 796, 799, 794, 797, 791, 795,
- 797, 801, 805, 791, 799, 800, 807, 803, 796, 806,
- 800, 802, 809, 808, 791, 803, 802, 791, 810, 813,
- 809, 811, 812, 0, 807, 808, 815, 813, 822, 805,
- 810, 816, 806, 807, 803, 815, 806, 812, 814, 809,
- 808, 811, 817, 818, 814, 810, 813, 0, 811, 812,
- 818, 823, 816, 815, 817, 819, 820, 824, 816, 825,
- 822, 835, 819, 826, 823, 814, 825, 829, 828, 817,
-
- 818, 832, 827, 828, 820, 829, 824, 831, 823, 830,
- 0, 833, 819, 820, 824, 826, 825, 827, 836, 834,
- 826, 831, 830, 835, 829, 833, 837, 832, 832, 827,
- 828, 838, 839, 840, 831, 841, 830, 834, 833, 843,
- 842, 844, 846, 845, 836, 836, 834, 842, 837, 838,
- 847, 846, 848, 837, 839, 840, 845, 843, 838, 839,
- 840, 841, 841, 844, 849, 850, 843, 842, 844, 846,
- 845, 0, 856, 0, 854, 0, 859, 0, 860, 852,
- 858, 0, 847, 860, 848, 857, 849, 0, 850, 858,
- 854, 849, 850, 851, 859, 856, 861, 857, 851, 856,
-
- 851, 854, 851, 859, 851, 852, 852, 858, 862, 861,
- 860, 851, 857, 863, 864, 865, 867, 866, 0, 871,
- 851, 863, 869, 861, 869, 851, 862, 851, 865, 851,
- 866, 851, 870, 864, 867, 862, 868, 873, 872, 876,
- 863, 864, 865, 867, 866, 868, 871, 875, 877, 869,
- 872, 878, 880, 879, 870, 881, 877, 883, 0, 870,
- 879, 876, 882, 868, 873, 872, 876, 886, 882, 884,
- 885, 875, 888, 887, 875, 877, 884, 881, 878, 880,
- 879, 889, 881, 890, 883, 891, 886, 892, 894, 882,
- 889, 895, 885, 897, 886, 887, 884, 885, 888, 888,
-
- 887, 892, 896, 898, 890, 891, 900, 899, 889, 901,
- 890, 902, 891, 904, 892, 899, 905, 904, 902, 903,
- 894, 898, 900, 895, 896, 897, 903, 908, 907, 896,
- 898, 906, 909, 900, 899, 907, 901, 906, 902, 911,
- 904, 910, 908, 914, 906, 909, 903, 915, 905, 912,
- 910, 913, 914, 913, 908, 907, 912, 916, 906, 909,
- 918, 0, 922, 917, 906, 911, 911, 917, 910, 915,
- 914, 920, 921, 923, 915, 924, 912, 921, 913, 920,
- 922, 926, 918, 925, 916, 929, 925, 918, 924, 922,
- 917, 927, 923, 928, 0, 925, 930, 932, 920, 931,
-
- 923, 941, 924, 926, 921, 932, 928, 935, 926, 941,
- 925, 933, 933, 925, 939, 931, 927, 929, 927, 930,
- 928, 934, 936, 930, 932, 937, 931, 940, 941, 935,
- 934, 936, 937, 943, 935, 942, 940, 939, 933, 944,
- 0, 939, 947, 945, 0, 946, 943, 948, 934, 936,
- 942, 944, 937, 946, 940, 945, 949, 951, 954, 950,
- 943, 952, 942, 957, 947, 953, 944, 948, 950, 947,
- 945, 956, 946, 958, 948, 951, 955, 953, 949, 954,
- 959, 962, 955, 949, 951, 954, 950, 952, 952, 960,
- 963, 964, 953, 956, 968, 957, 0, 966, 956, 967,
-
- 0, 965, 968, 955, 971, 958, 959, 959, 962, 964,
- 965, 971, 967, 963, 975, 960, 960, 963, 964, 966,
- 969, 968, 970, 978, 966, 969, 967, 970, 965, 972,
- 973, 971, 974, 976, 976, 977, 979, 972, 973, 980,
- 974, 0, 0, 977, 978, 981, 975, 980, 987, 988,
- 978, 984, 969, 981, 970, 982, 972, 973, 986, 974,
- 976, 983, 977, 982, 984, 985, 980, 0, 979, 983,
- 986, 985, 981, 988, 987, 987, 988, 990, 984, 989,
- 991, 993, 982, 994, 995, 986, 992, 1000, 983, 1006,
- 998, 0, 985, 1001, 989, 993, 0, 998, 995, 996,
-
- 0, 994, 991, 996, 990, 1002, 989, 991, 993, 992,
- 994, 995, 999, 992, 1000, 1001, 996, 998, 1003, 1007,
- 1001, 1006, 1004, 999, 996, 1003, 996, 1005, 1002, 1009,
- 996, 1004, 1002, 1011, 1005, 1012, 1013, 1015, 1009, 999,
- 1017, 0, 1018, 996, 0, 1003, 1007, 1020, 1025, 1004,
- 1021, 1022, 1024, 1018, 1005, 1011, 1009, 1023, 0, 1023,
- 1011, 1012, 1012, 1022, 1015, 1024, 1027, 1017, 1013, 1018,
- 1025, 1020, 1028, 1026, 1020, 1025, 1021, 1021, 1022, 1024,
- 1029, 0, 1030, 1031, 1023, 1026, 1032, 1029, 1031, 1033,
- 1034, 1037, 1035, 1027, 1038, 1028, 1040, 0, 1034, 1028,
-
- 1026, 0, 1032, 1038, 1041, 1049, 0, 1029, 1030, 1030,
- 1031, 1039, 1033, 1032, 1035, 1044, 1033, 1034, 1037, 1035,
- 1042, 1038, 1040, 1040, 1039, 1043, 1041, 1042, 1045, 1046,
- 0, 1041, 1043, 1044, 1047, 1048, 1046, 1049, 1039, 1050,
- 1051, 1053, 1044, 1054, 0, 0, 1050, 1042, 1056, 1061,
- 1045, 1059, 1043, 1060, 1053, 1045, 1046, 1048, 1061, 1047,
- 1063, 1047, 1048, 1055, 1058, 1067, 1050, 1058, 1053, 1056,
- 1054, 1055, 1051, 1062, 1064, 1056, 1061, 1059, 1059, 1060,
- 1060, 1065, 1068, 1066, 1063, 1062, 1066, 1063, 1065, 1064,
- 1055, 1058, 1070, 1069, 1071, 1073, 1071, 1067, 1066, 1072,
-
- 1062, 1064, 1074, 1075, 1068, 1078, 1080, 1066, 1065, 1068,
- 1066, 1069, 1075, 1066, 1070, 1077, 1076, 1079, 1082, 1070,
- 1069, 1071, 1077, 1072, 1076, 1066, 1072, 1073, 1074, 1074,
- 1075, 1081, 1083, 1084, 0, 1081, 1088, 1078, 1080, 1079,
- 1082, 1085, 1077, 1076, 1079, 1082, 1086, 1087, 1089, 1088,
- 1085, 1090, 1092, 1086, 1087, 1084, 1091, 0, 1081, 1083,
- 1084, 1089, 1093, 1088, 1094, 1098, 1090, 1095, 1085, 1093,
- 1091, 1094, 1099, 1086, 1087, 1089, 1096, 1102, 1090, 1099,
- 1095, 1101, 1096, 1091, 1092, 1100, 1108, 1103, 1108, 1093,
- 1103, 1094, 1098, 1101, 1095, 1104, 0, 1102, 1109, 1099,
-
- 1110, 1112, 1111, 1096, 1102, 1103, 1104, 1100, 1101, 1112,
- 1113, 1106, 1100, 1108, 1103, 1115, 1106, 1103, 1117, 1114,
- 1120, 1117, 1104, 1106, 1119, 1109, 1111, 1110, 1112, 1111,
- 1114, 1116, 1113, 1115, 1118, 1122, 1117, 1113, 1106, 1116,
- 1124, 1123, 1115, 1106, 1121, 1117, 1114, 1120, 1117, 1122,
- 1123, 1121, 1118, 1124, 1125, 1126, 1119, 1128, 1116, 1128,
- 1129, 1118, 1122, 1130, 1131, 1125, 1133, 1124, 1123, 1129,
- 1126, 1121, 1134, 1137, 1132, 1131, 1135, 1139, 1137, 1135,
- 1141, 1125, 1126, 1143, 1128, 1147, 1134, 1129, 1133, 1130,
- 1130, 1131, 1132, 1133, 1135, 1136, 1142, 0, 1134, 1134,
-
- 1144, 1132, 1140, 1135, 1136, 1137, 1135, 1146, 1152, 1139,
- 1148, 1140, 1141, 1134, 1146, 1143, 1152, 1147, 1142, 1149,
- 1153, 1144, 1136, 1142, 1148, 1149, 1154, 1144, 1156, 1140,
- 1157, 1158, 1155, 1161, 1146, 1152, 1156, 1148, 1163, 1153,
- 1154, 1155, 1158, 1149, 1162, 1159, 1149, 1153, 1164, 1167,
- 1171, 1162, 1149, 1154, 1159, 1156, 1165, 1166, 1158, 1155,
- 1161, 1163, 1157, 1182, 1168, 1163, 1178, 1167, 1168, 1170,
- 1164, 1162, 1159, 1172, 1173, 1164, 1167, 1171, 1165, 1166,
- 1174, 1170, 1175, 1165, 1166, 1176, 1172, 1179, 1184, 1181,
- 1182, 1168, 1177, 1176, 1173, 1174, 1170, 1175, 1178, 1177,
-
- 1172, 1173, 1179, 1183, 1180, 1187, 1186, 1174, 1188, 1175,
- 1181, 1189, 1176, 1180, 1179, 1184, 1181, 1190, 1191, 1177,
- 0, 1195, 1196, 1187, 1192, 1191, 1189, 1183, 1186, 1192,
- 1183, 1180, 1187, 1186, 1193, 1188, 1194, 1196, 1189, 1195,
- 1197, 0, 1190, 1193, 1190, 1191, 1198, 1199, 1195, 1196,
- 1200, 1192, 1197, 1202, 1201, 1206, 1203, 1200, 1194, 1207,
- 1199, 1193, 1206, 1194, 1204, 1199, 1201, 1197, 1198, 1208,
- 1204, 1205, 1209, 1198, 1199, 1211, 1208, 1200, 1210, 1205,
- 1202, 1201, 1206, 1212, 1210, 1213, 1207, 1199, 1203, 1214,
- 1216, 1204, 1217, 1218, 1220, 0, 1208, 1221, 1205, 1209,
-
- 1222, 1217, 1211, 1223, 0, 1210, 1212, 1219, 0, 1219,
- 1212, 1227, 0, 1214, 0, 1230, 1214, 1213, 1220, 1217,
- 1230, 1220, 1216, 1233, 1221, 1218, 1222, 1222, 1231, 1224,
- 1224, 1224, 1225, 1226, 1219, 1223, 1224, 1239, 1228, 1225,
- 1226, 1231, 1232, 1227, 1224, 1228, 1235, 1230, 1232, 1238,
- 1233, 1234, 1234, 1242, 1236, 1231, 1224, 1224, 1224, 1225,
- 1226, 1236, 1237, 1224, 1239, 1228, 1244, 1237, 1243, 1232,
- 1245, 1242, 1235, 1235, 1243, 1238, 1238, 1249, 1234, 1246,
- 1242, 1236, 1245, 1247, 1248, 1248, 1250, 1250, 1254, 1237,
- 1253, 1251, 1257, 1244, 1256, 1243, 1258, 1245, 1255, 1246,
-
- 1259, 1247, 1251, 1249, 1249, 1255, 1246, 1260, 1261, 1262,
- 1247, 1248, 1253, 1250, 1256, 1263, 1262, 1253, 1251, 1265,
- 1254, 1256, 1264, 1263, 1257, 1255, 1261, 1259, 1258, 1260,
- 1266, 1267, 1267, 1268, 1260, 1261, 1262, 1264, 1269, 1266,
- 1270, 1273, 1263, 1265, 1272, 1276, 1265, 1274, 1278, 1264,
- 1269, 1277, 1272, 1273, 1275, 1274, 1270, 1266, 1267, 1268,
- 1268, 1280, 1284, 1270, 1281, 1269, 1276, 1270, 1273, 1277,
- 1281, 1272, 1276, 1282, 1274, 1278, 1285, 1275, 1277, 1279,
- 1283, 1275, 1287, 1270, 1279, 1286, 1282, 1283, 1280, 1289,
- 1286, 1281, 1288, 1288, 1284, 1279, 1290, 1292, 1293, 1295,
-
- 1282, 1295, 1296, 1285, 1289, 1294, 1279, 1283, 1297, 1298,
- 1302, 1279, 1292, 1297, 1287, 1299, 1289, 1286, 1303, 1288,
- 1294, 1293, 1301, 1304, 1292, 1293, 1295, 1306, 1290, 1308,
- 1299, 1305, 1294, 1307, 1296, 1297, 1302, 1302, 1305, 1310,
- 1309, 1298, 1299, 1312, 1314, 1303, 1301, 1315, 1317, 1301,
- 1304, 1308, 0, 1319, 1307, 1320, 1308, 1310, 1305, 1306,
- 1307, 1309, 1315, 1317, 1318, 1312, 1310, 1309, 1314, 1322,
- 1312, 1314, 1321, 1320, 1315, 1317, 1323, 1324, 1325, 1318,
- 1319, 1326, 1320, 1323, 1327, 1329, 1332, 1325, 1328, 1326,
- 0, 1318, 1333, 1330, 1321, 1324, 1322, 1332, 1334, 1321,
-
- 1335, 1333, 1337, 1323, 1324, 1325, 1330, 1327, 1326, 1342,
- 1328, 1327, 1332, 1332, 1341, 1328, 1334, 1329, 1335, 1333,
- 1330, 1339, 1342, 1343, 1332, 1334, 1341, 1335, 0, 1337,
- 1344, 1346, 1339, 1345, 1347, 1348, 1342, 1351, 0, 1352,
- 1344, 1341, 0, 1350, 1351, 1354, 1358, 1358, 1339, 1353,
- 0, 1354, 1366, 1355, 1348, 1343, 1346, 1344, 1346, 1345,
- 1345, 1347, 1348, 1350, 1351, 1352, 1352, 1353, 1355, 1356,
- 1350, 1357, 1354, 1358, 1362, 1359, 1353, 1366, 1360, 1366,
- 1355, 1362, 1363, 1367, 1356, 1365, 1357, 1359, 0, 1363,
- 1371, 1360, 1367, 1368, 1369, 0, 1356, 1372, 1357, 1360,
-
- 1374, 1362, 1359, 1375, 1378, 1360, 1377, 1365, 1371, 1363,
- 1367, 0, 1365, 1374, 1369, 1368, 1379, 1371, 1360, 1380,
- 1368, 1369, 1372, 1381, 1372, 1376, 1376, 1374, 1377, 1378,
- 1375, 1378, 1381, 1377, 1383, 1382, 1384, 1385, 1379, 0,
- 1386, 1380, 1382, 1379, 1389, 1388, 1380, 1390, 1394, 1391,
- 1381, 1385, 1376, 1388, 1393, 1395, 1392, 1389, 1384, 1386,
- 1396, 1393, 1382, 1384, 1385, 1398, 1383, 1386, 1392, 1397,
- 1401, 1389, 1388, 1399, 1390, 1391, 1391, 1395, 1403, 1407,
- 1394, 1393, 1395, 1392, 1397, 1396, 1400, 1396, 1402, 1400,
- 1404, 1398, 1398, 0, 1402, 1401, 1397, 1401, 1408, 1399,
-
- 1399, 1407, 1411, 1405, 1400, 1403, 1407, 1410, 1404, 1411,
- 1412, 1413, 1415, 1400, 1417, 1402, 1400, 1404, 1405, 1412,
- 1408, 1410, 1413, 1421, 1418, 1408, 1419, 1420, 1419, 1411,
- 1405, 1422, 1423, 1415, 1410, 1417, 1418, 1412, 1413, 1415,
- 1424, 1417, 1425, 1427, 1426, 1420, 1433, 1428, 1424, 1422,
- 1421, 1418, 1428, 1419, 1420, 1429, 1430, 1427, 1422, 1423,
- 0, 1434, 1435, 1430, 1436, 1425, 1426, 1424, 1437, 1425,
- 1427, 1426, 1439, 1433, 1429, 1434, 1440, 1438, 1441, 1428,
- 1435, 1439, 1429, 1430, 1442, 1443, 1445, 1434, 1434, 1435,
- 1446, 1436, 1438, 1449, 1437, 1437, 1448, 1446, 1448, 1439,
-
- 1441, 1455, 1434, 1452, 1438, 1441, 1450, 1443, 1440, 1445,
- 1450, 1442, 1443, 1445, 1451, 1449, 1456, 1446, 1453, 1457,
- 1449, 1454, 1458, 1448, 0, 1452, 1451, 1453, 1455, 1460,
- 1452, 1457, 1454, 1450, 1459, 1459, 1463, 1460, 1467, 1456,
- 1463, 1451, 1462, 1456, 1458, 1453, 1457, 1465, 1454, 1458,
- 1462, 1464, 1466, 1467, 1464, 1465, 1460, 1471, 1466, 1470,
- 1468, 1459, 1473, 1463, 1472, 1467, 1468, 1474, 1475, 1462,
- 1476, 1470, 1477, 1478, 1465, 1481, 1473, 0, 1464, 1466,
- 1474, 1479, 1475, 1483, 1471, 1484, 1470, 1468, 1472, 1473,
- 1480, 1472, 1485, 1479, 1474, 1475, 1476, 1476, 1487, 1477,
-
- 1478, 1481, 1481, 1482, 1480, 1486, 1482, 1488, 1479, 1489,
- 1483, 1490, 1484, 1486, 1491, 1492, 1488, 1480, 1494, 1485,
- 1495, 1482, 1497, 1492, 1500, 1487, 1498, 1491, 1501, 1496,
- 1482, 1499, 1486, 1482, 1488, 1498, 1489, 1496, 1490, 1502,
- 1494, 1491, 1492, 1501, 1506, 1494, 1511, 1495, 1500, 1497,
- 1504, 1500, 1499, 1498, 1501, 1501, 1496, 1503, 1499, 1505,
- 1509, 1508, 1504, 1510, 1509, 1503, 1502, 1505, 1508, 1511,
- 1501, 1506, 1512, 1511, 1513, 1510, 1514, 1504, 1515, 1519,
- 1516, 1522, 1513, 1518, 1503, 1515, 1505, 1509, 1508, 1520,
- 1510, 1517, 1517, 1523, 0, 1533, 1522, 1519, 1525, 1512,
-
- 1516, 1513, 1524, 1514, 1524, 1515, 1519, 1516, 1522, 1518,
- 1518, 1526, 1525, 1527, 1520, 1523, 1520, 1526, 1517, 1528,
- 1523, 1529, 1534, 1532, 1530, 1525, 1531, 1533, 1539, 1524,
- 1536, 1540, 1548, 1529, 1538, 1527, 1532, 1536, 1526, 1541,
- 1527, 1528, 1530, 1548, 1531, 1534, 1528, 1541, 1529, 1534,
- 1532, 1530, 1538, 1531, 1539, 1539, 1544, 1536, 1545, 1548,
- 1542, 1538, 1542, 1540, 1547, 1541, 1541, 1542, 1544, 1549,
- 1551, 1552, 1555, 1553, 1541, 1554, 1545, 1557, 1559, 1547,
- 1553, 1558, 1560, 1544, 1549, 1545, 1562, 1542, 1561, 1542,
- 1554, 1547, 1563, 1552, 1551, 1566, 1549, 1551, 1552, 1555,
-
- 1553, 1561, 1554, 1558, 1557, 1564, 1565, 1563, 1558, 1560,
- 1559, 1568, 1562, 1562, 1565, 1561, 1569, 1570, 1564, 1563,
- 1571, 1566, 1566, 1572, 1573, 1575, 1574, 1577, 1576, 1578,
- 1572, 1573, 1564, 1565, 1568, 1576, 1579, 1580, 1568, 1574,
- 1569, 1584, 1571, 1569, 1570, 1582, 1580, 1571, 1575, 1577,
- 1572, 1573, 1575, 1574, 1577, 1576, 1582, 1579, 1583, 1585,
- 0, 1578, 1586, 1579, 1580, 1590, 1589, 0, 1592, 1592,
- 1591, 1597, 1582, 1584, 1593, 1599, 0, 1602, 1585, 1589,
- 1583, 1603, 1604, 1606, 1599, 1583, 1585, 1586, 1608, 1586,
- 1609, 1590, 1590, 1589, 1591, 1592, 1610, 1591, 1597, 1602,
-
- 1593, 1593, 1599, 1603, 1602, 1612, 1611, 1610, 1603, 1604,
- 1606, 1611, 1616, 1614, 1615, 1619, 1609, 1609, 1618, 1620,
- 1608, 1614, 1621, 1610, 1623, 0, 1625, 1612, 1620, 1615,
- 1626, 1628, 1612, 1611, 1621, 1629, 1618, 1627, 1631, 1616,
- 1614, 1615, 1630, 1632, 1633, 1618, 1620, 1619, 1629, 1621,
- 1634, 1623, 1625, 1625, 1636, 1630, 1628, 1626, 1628, 1627,
- 1631, 1635, 1629, 1636, 1627, 1631, 1637, 1638, 1639, 1630,
- 1632, 1633, 1640, 1642, 1641, 1643, 1635, 1634, 0, 1644,
- 1642, 1636, 1638, 1639, 1645, 1645, 1650, 1640, 1635, 1647,
- 1658, 1646, 1637, 1637, 1638, 1639, 1641, 1644, 1646, 1640,
-
- 1642, 1641, 1643, 1647, 1648, 1651, 1644, 1648, 1649, 1653,
- 1652, 1645, 1650, 1650, 1653, 1655, 1647, 1658, 1646, 1652,
- 1654, 1649, 1656, 1651, 1654, 1659, 1657, 0, 1660, 1663,
- 1664, 1648, 1651, 1666, 1667, 1649, 1653, 1652, 1663, 1655,
- 1666, 1670, 1655, 1667, 1656, 1668, 1664, 1654, 1657, 1656,
- 1668, 1669, 1659, 1657, 1660, 1660, 1663, 1664, 1669, 1670,
- 1666, 1667, 1671, 1675, 1672, 0, 1673, 1676, 1670, 1671,
- 1677, 1679, 1668, 1672, 1683, 1678, 1684, 1680, 1669, 1677,
- 1685, 1686, 1683, 1679, 1690, 1676, 1680, 1681, 1682, 1671,
- 1675, 1672, 1673, 1673, 1676, 1678, 1681, 1677, 1679, 1682,
-
- 1687, 1683, 1678, 1684, 1680, 1688, 1690, 1685, 1689, 1687,
- 1696, 1690, 1691, 1686, 1681, 1682, 1689, 1688, 1692, 1691,
- 1693, 1694, 1697, 1698, 1703, 1692, 1701, 1687, 1696, 1697,
- 1702, 1698, 1688, 1701, 1705, 1689, 1706, 1696, 1711, 1691,
- 1704, 1707, 1693, 1705, 1709, 1692, 1694, 1693, 1694, 1697,
- 1698, 1703, 1704, 1701, 1702, 1710, 1709, 1702, 1712, 1714,
- 1716, 1705, 1717, 1706, 1707, 1711, 1718, 1704, 1707, 1719,
- 1717, 1709, 1712, 1720, 0, 1724, 1725, 1727, 1710, 0,
- 1726, 1725, 1710, 1728, 1729, 1712, 1714, 1716, 1737, 1717,
- 1730, 1719, 1734, 1718, 1726, 1727, 1719, 1731, 1730, 1735,
-
- 1720, 1724, 1724, 1725, 1727, 1728, 1729, 1726, 1733, 1738,
- 1728, 1729, 1739, 1736, 1734, 1737, 1731, 1730, 1741, 1734,
- 1733, 1735, 1740, 0, 1731, 1736, 1735, 1743, 1745, 1742,
- 1744, 1746, 1739, 1749, 1752, 1733, 1738, 1751, 1750, 1739,
- 1736, 0, 1744, 1750, 1740, 1753, 1781, 1749, 1757, 1740,
- 1741, 1742, 1754, 1743, 1743, 1745, 1742, 1744, 1746, 1751,
- 1749, 1756, 1755, 1758, 1751, 1762, 1752, 1757, 1753, 1759,
- 1750, 1761, 1753, 1756, 1754, 1757, 1765, 1763, 1781, 1754,
- 1755, 1766, 1768, 1764, 1759, 1758, 1763, 1762, 1756, 1755,
- 1758, 1767, 1762, 1771, 1765, 1761, 1759, 1764, 1761, 1766,
-
- 1768, 1771, 1774, 1765, 1763, 1772, 1773, 1775, 1766, 1768,
- 1764, 1777, 1772, 1776, 1773, 1775, 1778, 1767, 1767, 1779,
- 1771, 1780, 1782, 1777, 1786, 1784, 1783, 1779, 1790, 1774,
- 1793, 1776, 1772, 1773, 1775, 1789, 1787, 1796, 1777, 0,
- 1776, 1790, 1786, 1778, 1780, 1783, 1779, 1784, 1780, 1782,
- 1787, 1786, 1784, 1783, 1791, 1790, 1793, 1793, 1789, 1801,
- 1798, 1800, 1789, 1787, 1796, 1802, 1791, 1798, 1800, 1803,
- 1804, 1805, 1806, 1807, 1809, 1810, 1808, 1817, 1811, 1814,
- 0, 1791, 1807, 1816, 1814, 1801, 1801, 1798, 1800, 1808,
- 1815, 0, 1802, 1803, 1815, 1819, 1803, 1804, 1805, 1806,
-
- 1807, 1811, 1810, 1808, 1816, 1811, 1809, 1822, 1823, 1817,
- 1816, 1814, 1818, 1825, 1818, 1825, 1827, 1815, 1819, 1828,
- 1826, 1826, 1819, 1830, 1829, 1831, 1833, 0, 1828, 1822,
- 1826, 1829, 1823, 1832, 1822, 1823, 1830, 1835, 1827, 1818,
- 1825, 1832, 1836, 1827, 1837, 1833, 1828, 1826, 1826, 1834,
- 1830, 1829, 1831, 1833, 1838, 1839, 1842, 1834, 1846, 1840,
- 1832, 1841, 1841, 1835, 1835, 1838, 1840, 1847, 1836, 1836,
- 1837, 1837, 1843, 1844, 1842, 1848, 1834, 1839, 1850, 1843,
- 1844, 1838, 1839, 1842, 1848, 1846, 1840, 1851, 1841, 1852,
- 1855, 1847, 1854, 1857, 1847, 1856, 1858, 0, 1859, 1843,
-
- 1844, 1854, 1848, 1859, 0, 1850, 1863, 1852, 1858, 1851,
- 1860, 1857, 0, 1861, 1851, 0, 1852, 1855, 1856, 1854,
- 1857, 1864, 1856, 1858, 1860, 1867, 1865, 1867, 1871, 1873,
- 1859, 1861, 1872, 1863, 1878, 1875, 1879, 1860, 1881, 1864,
- 1861, 1865, 1876, 1883, 1880, 1876, 1881, 1873, 1864, 1885,
- 1871, 1880, 1867, 1865, 1879, 1871, 1873, 1875, 1872, 1872,
- 1882, 1878, 1875, 1879, 1884, 1881, 1887, 1886, 1876, 1876,
- 1888, 1880, 1876, 1886, 1889, 1883, 1885, 1891, 1890, 1888,
- 1890, 1893, 1882, 1894, 1895, 1896, 1884, 1882, 1887, 1893,
- 1897, 1884, 1899, 1887, 1886, 1894, 1898, 1888, 1902, 1896,
-
- 1904, 1900, 1901, 1899, 1891, 1890, 1889, 1907, 1893, 1900,
- 1894, 1895, 1896, 1897, 1898, 1903, 1903, 1897, 1905, 1899,
- 1902, 1901, 1908, 1898, 1910, 1902, 1905, 1904, 1900, 1901,
- 1911, 1912, 1914, 1915, 1907, 1916, 1917, 0, 1919, 1916,
- 1915, 1911, 1903, 1920, 1917, 1905, 1923, 1922, 1924, 1908,
- 1928, 1910, 1922, 1912, 1934, 1929, 1920, 1911, 1912, 1914,
- 1915, 1925, 1916, 1917, 1919, 1919, 1926, 0, 1930, 1925,
- 1920, 1927, 1932, 1923, 1922, 1924, 1933, 1928, 1927, 1929,
- 1935, 1926, 1929, 1933, 1936, 0, 1934, 1932, 1925, 1940,
- 1939, 1937, 1941, 1926, 1930, 1930, 1943, 1940, 1927, 1932,
-
- 1937, 1945, 1946, 1933, 1942, 1942, 1948, 1935, 1936, 1950,
- 1946, 1936, 1939, 1949, 1942, 1951, 1940, 1939, 1937, 1952,
- 1953, 1954, 1950, 1943, 1941, 1957, 1964, 1955, 1945, 1946,
- 1962, 1942, 1942, 1948, 1961, 1949, 1950, 1951, 1965, 1961,
- 1949, 1967, 1951, 1966, 1968, 1969, 1952, 1953, 1954, 1955,
- 1966, 1965, 1957, 1964, 1955, 1972, 1962, 1962, 1973, 1967,
- 1979, 1961, 1974, 0, 1978, 1965, 1976, 1969, 1967, 1977,
- 1966, 1968, 1969, 1976, 1972, 1979, 1977, 1980, 1982, 1985,
- 1988, 1983, 1972, 1984, 1974, 1973, 1978, 1979, 1983, 1974,
- 1985, 1978, 1984, 1976, 1993, 1987, 1977, 1982, 1980, 1986,
-
- 1986, 1987, 1988, 1994, 1980, 1982, 1985, 1988, 1983, 1986,
- 1984, 1991, 1995, 1999, 2001, 2001, 0, 2004, 1991, 2002,
- 2005, 1993, 1987, 2006, 2008, 2009, 1986, 1986, 2013, 2005,
- 1994, 2012, 2011, 2014, 2015, 1995, 2006, 2009, 1991, 1995,
- 1999, 2011, 2002, 2001, 2004, 2016, 2002, 2005, 2017, 2012,
- 2006, 2008, 2009, 2018, 2013, 2013, 2020, 2016, 2012, 2011,
- 2014, 2015, 2019, 2021, 2019, 2022, 2023, 2025, 2020, 2021,
- 2017, 2024, 2016, 2028, 2030, 2017, 2031, 2032, 2034, 2024,
- 2018, 2035, 2037, 2020, 2038, 2040, 2046, 2022, 2023, 2019,
- 2021, 0, 2022, 2023, 2025, 2039, 2034, 2037, 2024, 2044,
-
- 2028, 2030, 2048, 2031, 2032, 2034, 2043, 2039, 2035, 2037,
- 2038, 2038, 2040, 2049, 2047, 2043, 2050, 2051, 2046, 2059,
- 2064, 2049, 2039, 2044, 2048, 2050, 2044, 2047, 2051, 2048,
- 2057, 2060, 2061, 2043, 2065, 2063, 2064, 0, 2060, 2063,
- 2049, 2047, 2059, 2050, 2051, 2061, 2059, 2064, 2065, 2069,
- 2072, 2069, 2066, 2070, 2057, 2067, 2068, 2057, 2060, 2061,
- 2066, 2065, 2063, 2071, 2067, 2070, 2073, 2068, 2074, 2076,
- 2071, 2075, 2077, 0, 2080, 2081, 2069, 2072, 2078, 2066,
- 2070, 2083, 2067, 2068, 2073, 2079, 2080, 2079, 2090, 2082,
- 2071, 2085, 2091, 2073, 2077, 2074, 2076, 2075, 2075, 2077,
-
- 2078, 2080, 2082, 2085, 2087, 2078, 2089, 2081, 2083, 2092,
- 0, 2093, 2079, 2087, 2089, 2094, 2082, 2096, 2085, 2098,
- 2090, 2099, 2092, 2094, 2091, 2093, 2097, 2098, 2102, 2100,
- 2096, 2087, 2101, 2089, 0, 2099, 2092, 2104, 2093, 2103,
- 2101, 2105, 2094, 2100, 2096, 2104, 2098, 2106, 2099, 2097,
- 2102, 2111, 0, 2097, 2107, 2102, 2100, 2108, 2109, 2101,
- 2112, 2103, 2110, 2117, 2104, 0, 2103, 2115, 2105, 2116,
- 2110, 2114, 0, 2106, 2106, 2115, 2107, 2116, 2118, 2108,
- 2109, 2107, 2121, 2111, 2108, 2109, 2118, 2112, 2119, 2110,
- 2125, 2114, 2122, 2123, 2115, 2117, 2116, 2124, 2114, 2126,
-
- 2122, 2123, 2119, 2128, 2121, 2118, 2127, 0, 2129, 2121,
- 2130, 2124, 2133, 0, 2127, 2119, 2125, 2125, 2131, 2122,
- 2123, 2126, 2134, 2132, 2124, 0, 2126, 2135, 2136, 2128,
- 2128, 2132, 2130, 2127, 2129, 2129, 2136, 2130, 2131, 2133,
- 2137, 2140, 2134, 2138, 2141, 2131, 2144, 2135, 2142, 2134,
- 2132, 2138, 2143, 2145, 2135, 2136, 2142, 2146, 0, 2147,
- 2143, 2145, 2137, 2140, 2148, 2146, 2141, 2137, 2140, 2149,
- 2138, 2141, 2144, 2144, 2150, 2142, 2151, 2152, 2154, 2143,
- 2145, 2160, 0, 2161, 2146, 2147, 2147, 2157, 0, 2149,
- 2158, 2148, 0, 0, 2159, 0, 2149, 2152, 2158, 0,
-
- 2154, 2150, 2159, 2151, 2152, 2154, 0, 0, 2160, 2157,
- 2161, 0, 0, 0, 2157, 0, 0, 2158, 0, 0,
- 0, 2159, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2166,
- 2166, 2166, 2166, 2166, 2166, 2166, 2167, 2167, 2167, 2167,
- 2167, 2167, 2167, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
- 2169, 2169, 2169, 2169, 2169, 2169, 2169, 2171, 2171, 0,
- 2171, 2171, 2171, 2171, 2172, 2172, 0, 0, 0, 2172,
- 2172, 2173, 2173, 0, 0, 2173, 0, 2173, 2174, 0,
- 0, 0, 0, 0, 2174, 2175, 2175, 0, 0, 0,
- 2175, 2175, 2176, 0, 0, 0, 0, 0, 2176, 2177,
-
- 2177, 0, 2177, 2177, 2177, 2177, 2178, 2178, 0, 2178,
- 2178, 2178, 2178, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164,
- 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164, 2164
+ 94, 92, 96, 88, 89, 92, 90, 91, 46, 101,
+
+ 97, 41, 86, 94, 95, 14, 93, 95, 97, 99,
+ 98, 93, 101, 99, 90, 91, 96, 94, 102, 13,
+ 95, 95, 105, 120, 96, 104, 101, 97, 95, 108,
+ 98, 95, 98, 99, 95, 0, 99, 98, 108, 104,
+ 99, 102, 105, 96, 106, 102, 107, 95, 95, 105,
+ 110, 109, 104, 107, 112, 120, 108, 98, 106, 110,
+ 111, 112, 113, 114, 111, 0, 115, 117, 0, 0,
+ 114, 106, 115, 107, 109, 117, 122, 110, 109, 118,
+ 115, 112, 111, 118, 119, 121, 123, 111, 113, 113,
+ 114, 111, 118, 115, 117, 123, 122, 124, 119, 115,
+
+ 121, 126, 122, 122, 128, 127, 118, 129, 124, 0,
+ 118, 119, 121, 123, 130, 136, 129, 136, 136, 128,
+ 136, 145, 126, 122, 124, 146, 126, 127, 126, 144,
+ 0, 128, 127, 148, 129, 141, 130, 141, 141, 147,
+ 141, 130, 142, 145, 142, 142, 149, 142, 145, 126,
+ 150, 147, 148, 144, 149, 157, 144, 146, 152, 151,
+ 148, 153, 150, 154, 156, 152, 147, 155, 0, 154,
+ 161, 158, 0, 149, 160, 158, 162, 150, 161, 153,
+ 142, 151, 163, 177, 165, 152, 151, 157, 153, 155,
+ 156, 156, 158, 0, 155, 154, 154, 161, 162, 158,
+
+ 160, 160, 158, 162, 163, 166, 164, 165, 167, 163,
+ 164, 165, 168, 170, 169, 177, 0, 169, 0, 158,
+ 159, 167, 170, 171, 168, 159, 172, 166, 180, 169,
+ 159, 175, 166, 164, 174, 167, 159, 159, 175, 168,
+ 170, 169, 183, 159, 169, 171, 178, 159, 172, 173,
+ 171, 176, 159, 172, 173, 185, 174, 159, 175, 179,
+ 180, 174, 176, 159, 159, 181, 173, 184, 173, 186,
+ 179, 182, 178, 178, 183, 173, 173, 182, 176, 187,
+ 0, 173, 188, 181, 189, 192, 195, 185, 268, 184,
+ 192, 179, 181, 173, 184, 173, 188, 179, 182, 187,
+
+ 190, 186, 191, 193, 194, 189, 187, 190, 195, 188,
+ 197, 189, 192, 195, 196, 268, 199, 198, 194, 200,
+ 201, 197, 193, 191, 198, 201, 196, 190, 202, 191,
+ 193, 194, 204, 208, 206, 207, 210, 197, 199, 203,
+ 203, 196, 200, 199, 198, 205, 200, 201, 203, 209,
+ 212, 210, 205, 211, 213, 207, 219, 209, 214, 206,
+ 202, 206, 207, 210, 204, 208, 203, 203, 218, 216,
+ 215, 220, 205, 212, 215, 214, 209, 221, 222, 211,
+ 211, 217, 212, 214, 216, 214, 213, 218, 219, 217,
+ 222, 223, 224, 220, 225, 218, 216, 215, 220, 228,
+
+ 212, 224, 214, 226, 223, 222, 229, 225, 217, 221,
+ 227, 232, 227, 230, 231, 233, 240, 235, 223, 224,
+ 232, 225, 226, 228, 234, 237, 228, 239, 235, 0,
+ 226, 229, 238, 229, 236, 242, 243, 227, 232, 230,
+ 230, 233, 233, 231, 235, 239, 236, 241, 240, 237,
+ 234, 234, 237, 244, 239, 238, 245, 246, 249, 238,
+ 241, 236, 243, 243, 246, 248, 251, 242, 247, 259,
+ 250, 248, 249, 252, 241, 244, 253, 247, 254, 258,
+ 244, 255, 252, 0, 246, 249, 257, 254, 245, 256,
+ 251, 260, 248, 251, 258, 247, 250, 250, 256, 253,
+
+ 252, 259, 261, 253, 263, 254, 258, 255, 255, 264,
+ 257, 265, 262, 257, 0, 260, 256, 261, 260, 266,
+ 262, 262, 263, 262, 274, 265, 272, 264, 269, 261,
+ 262, 263, 270, 264, 266, 270, 264, 271, 265, 262,
+ 267, 267, 270, 273, 272, 276, 266, 262, 262, 271,
+ 262, 274, 269, 272, 264, 269, 275, 277, 278, 270,
+ 279, 273, 270, 282, 271, 267, 280, 267, 267, 277,
+ 273, 276, 276, 280, 281, 279, 285, 284, 275, 288,
+ 278, 283, 291, 275, 277, 278, 281, 279, 283, 287,
+ 286, 287, 288, 280, 289, 282, 286, 289, 285, 289,
+
+ 292, 281, 290, 285, 0, 289, 288, 0, 283, 284,
+ 0, 293, 286, 287, 291, 0, 287, 286, 287, 293,
+ 290, 289, 292, 286, 289, 293, 289, 292, 294, 290,
+ 295, 296, 297, 300, 298, 294, 301, 303, 293, 305,
+ 0, 304, 295, 303, 296, 300, 293, 298, 297, 304,
+ 307, 305, 314, 0, 301, 294, 297, 295, 296, 297,
+ 300, 298, 302, 301, 303, 306, 305, 302, 304, 308,
+ 0, 309, 306, 308, 0, 297, 299, 299, 309, 311,
+ 310, 0, 307, 312, 314, 313, 299, 310, 299, 299,
+ 299, 311, 306, 299, 302, 315, 308, 313, 309, 316,
+
+ 318, 299, 315, 299, 299, 312, 311, 310, 317, 319,
+ 312, 319, 313, 299, 316, 299, 299, 299, 320, 321,
+ 299, 317, 315, 322, 322, 0, 316, 323, 324, 320,
+ 326, 325, 318, 328, 323, 317, 319, 327, 329, 324,
+ 330, 321, 325, 326, 337, 320, 321, 334, 333, 330,
+ 331, 0, 322, 329, 323, 324, 328, 326, 325, 348,
+ 328, 329, 327, 331, 327, 329, 333, 330, 332, 334,
+ 335, 336, 338, 339, 334, 333, 337, 331, 338, 332,
+ 329, 332, 340, 342, 0, 341, 332, 343, 344, 336,
+ 342, 348, 0, 335, 339, 332, 345, 335, 336, 338,
+
+ 339, 347, 344, 346, 351, 340, 332, 341, 332, 340,
+ 342, 349, 341, 343, 343, 344, 350, 346, 345, 352,
+ 353, 354, 350, 345, 356, 0, 351, 347, 347, 355,
+ 346, 351, 357, 358, 349, 353, 354, 352, 349, 358,
+ 359, 0, 361, 350, 363, 0, 352, 353, 354, 362,
+ 356, 356, 355, 0, 357, 362, 355, 364, 365, 357,
+ 358, 370, 366, 363, 371, 365, 359, 359, 361, 361,
+ 368, 363, 368, 369, 370, 364, 362, 366, 374, 368,
+ 369, 373, 379, 372, 364, 365, 376, 375, 370, 366,
+ 378, 374, 377, 380, 383, 379, 371, 368, 382, 368,
+
+ 369, 372, 381, 373, 382, 374, 375, 381, 373, 379,
+ 372, 384, 385, 378, 375, 380, 377, 383, 376, 377,
+ 380, 383, 378, 384, 386, 382, 389, 0, 387, 381,
+ 391, 0, 398, 389, 385, 386, 387, 390, 384, 385,
+ 378, 391, 393, 394, 398, 390, 395, 0, 392, 397,
+ 394, 386, 396, 389, 396, 387, 388, 391, 392, 398,
+ 401, 388, 399, 388, 390, 410, 393, 416, 401, 393,
+ 394, 388, 395, 395, 388, 397, 397, 399, 403, 396,
+ 392, 388, 388, 388, 400, 392, 402, 401, 388, 399,
+ 388, 402, 404, 407, 405, 406, 400, 410, 388, 416,
+
+ 403, 388, 405, 409, 413, 403, 412, 406, 388, 411,
+ 404, 400, 415, 402, 407, 412, 414, 417, 413, 404,
+ 407, 405, 406, 418, 411, 419, 409, 420, 0, 421,
+ 409, 413, 417, 412, 423, 414, 411, 422, 425, 415,
+ 419, 421, 424, 414, 417, 424, 427, 428, 429, 425,
+ 430, 420, 419, 424, 420, 418, 421, 426, 423, 422,
+ 427, 423, 426, 431, 422, 425, 432, 433, 437, 424,
+ 434, 436, 424, 427, 428, 429, 434, 439, 435, 436,
+ 438, 440, 430, 441, 442, 444, 0, 437, 0, 426,
+ 431, 445, 441, 432, 443, 437, 455, 434, 436, 433,
+
+ 435, 443, 446, 438, 440, 435, 442, 438, 440, 439,
+ 441, 442, 451, 445, 447, 446, 448, 444, 445, 447,
+ 452, 443, 449, 447, 450, 448, 0, 453, 455, 446,
+ 459, 457, 454, 450, 451, 456, 0, 467, 447, 451,
+ 453, 447, 452, 448, 454, 458, 447, 452, 449, 449,
+ 447, 450, 459, 456, 453, 457, 460, 459, 457, 454,
+ 461, 462, 456, 463, 464, 465, 466, 458, 458, 467,
+ 474, 461, 458, 469, 468, 462, 465, 471, 460, 470,
+ 472, 466, 464, 460, 476, 463, 475, 461, 462, 472,
+ 463, 464, 465, 466, 458, 468, 473, 469, 477, 471,
+
+ 469, 468, 474, 470, 471, 478, 470, 472, 475, 473,
+ 479, 482, 480, 475, 481, 479, 476, 484, 0, 486,
+ 0, 483, 477, 473, 489, 477, 480, 478, 481, 483,
+ 485, 487, 478, 488, 486, 484, 491, 493, 488, 480,
+ 0, 481, 479, 482, 484, 485, 486, 490, 483, 490,
+ 489, 489, 492, 487, 485, 499, 0, 485, 487, 494,
+ 492, 491, 493, 491, 493, 488, 495, 498, 494, 496,
+ 504, 497, 485, 499, 490, 495, 500, 496, 497, 492,
+ 501, 508, 499, 502, 505, 503, 494, 506, 500, 501,
+ 498, 502, 505, 495, 498, 506, 496, 503, 497, 507,
+
+ 509, 510, 504, 500, 508, 512, 511, 501, 508, 515,
+ 502, 505, 503, 512, 506, 513, 509, 511, 514, 516,
+ 520, 517, 518, 510, 522, 507, 507, 509, 510, 513,
+ 0, 515, 512, 511, 521, 523, 515, 522, 514, 516,
+ 520, 519, 513, 517, 518, 514, 516, 520, 517, 518,
+ 519, 522, 521, 523, 524, 525, 529, 526, 527, 531,
+ 532, 521, 523, 528, 527, 537, 533, 531, 519, 536,
+ 0, 528, 534, 533, 529, 0, 524, 555, 536, 525,
+ 526, 524, 525, 529, 526, 527, 531, 535, 538, 528,
+ 528, 539, 532, 533, 544, 534, 536, 537, 528, 534,
+
+ 539, 540, 535, 540, 541, 0, 544, 538, 550, 555,
+ 547, 541, 0, 551, 535, 538, 553, 0, 539, 0,
+ 547, 544, 0, 557, 552, 560, 550, 560, 540, 554,
+ 0, 541, 542, 562, 551, 550, 542, 547, 558, 542,
+ 551, 563, 553, 553, 558, 557, 542, 552, 559, 542,
+ 557, 552, 560, 0, 542, 554, 554, 559, 561, 542,
+ 562, 563, 565, 542, 564, 558, 542, 0, 563, 0,
+ 566, 567, 580, 542, 565, 559, 542, 556, 556, 569,
+ 556, 580, 561, 556, 568, 561, 573, 570, 556, 565,
+ 564, 564, 572, 567, 556, 556, 566, 566, 567, 580,
+
+ 572, 569, 571, 556, 556, 556, 569, 556, 568, 573,
+ 556, 568, 570, 573, 570, 556, 574, 571, 575, 572,
+ 576, 556, 556, 574, 577, 578, 575, 579, 0, 571,
+ 583, 581, 585, 582, 584, 586, 0, 578, 587, 576,
+ 579, 0, 588, 574, 0, 575, 581, 576, 0, 589,
+ 577, 577, 578, 590, 579, 582, 584, 583, 581, 592,
+ 582, 584, 587, 588, 585, 587, 591, 586, 589, 588,
+ 593, 594, 590, 595, 596, 591, 589, 597, 598, 594,
+ 590, 592, 603, 0, 601, 602, 592, 599, 0, 606,
+ 593, 604, 596, 591, 605, 599, 597, 593, 594, 0,
+
+ 595, 596, 601, 602, 597, 607, 603, 605, 608, 603,
+ 598, 601, 602, 604, 599, 606, 606, 607, 604, 609,
+ 610, 605, 609, 612, 613, 614, 608, 615, 610, 618,
+ 616, 614, 607, 617, 618, 608, 616, 0, 619, 621,
+ 617, 620, 631, 628, 610, 619, 609, 610, 612, 615,
+ 612, 613, 614, 623, 615, 610, 618, 616, 622, 620,
+ 617, 623, 621, 624, 625, 619, 621, 622, 620, 626,
+ 628, 627, 632, 630, 631, 639, 629, 0, 633, 625,
+ 623, 624, 626, 629, 636, 622, 630, 634, 0, 638,
+ 624, 625, 627, 637, 635, 634, 626, 0, 627, 637,
+
+ 630, 633, 635, 629, 632, 633, 636, 639, 640, 635,
+ 641, 636, 642, 643, 634, 638, 638, 644, 0, 641,
+ 637, 635, 645, 647, 644, 646, 642, 0, 648, 635,
+ 649, 0, 640, 650, 646, 640, 654, 641, 652, 642,
+ 648, 650, 654, 651, 644, 643, 651, 653, 0, 645,
+ 647, 652, 646, 649, 653, 648, 0, 649, 656, 657,
+ 650, 0, 0, 654, 658, 652, 664, 659, 661, 659,
+ 651, 664, 0, 660, 653, 655, 658, 655, 0, 662,
+ 661, 655, 657, 655, 656, 656, 657, 0, 655, 666,
+ 663, 658, 665, 655, 659, 661, 660, 667, 664, 655,
+
+ 660, 662, 655, 663, 655, 665, 662, 669, 655, 667,
+ 655, 668, 666, 670, 672, 655, 666, 663, 673, 665,
+ 655, 668, 671, 674, 667, 675, 670, 672, 671, 669,
+ 680, 678, 679, 668, 669, 681, 0, 0, 668, 673,
+ 670, 672, 682, 680, 683, 673, 678, 691, 668, 671,
+ 681, 684, 675, 688, 679, 674, 677, 680, 678, 679,
+ 685, 677, 681, 677, 686, 692, 683, 687, 682, 682,
+ 684, 683, 686, 685, 677, 687, 689, 693, 684, 691,
+ 688, 677, 677, 677, 694, 693, 695, 685, 677, 692,
+ 677, 686, 692, 696, 687, 698, 699, 697, 694, 689,
+
+ 701, 677, 703, 689, 693, 697, 700, 702, 677, 704,
+ 703, 694, 705, 698, 699, 696, 0, 700, 695, 705,
+ 696, 707, 698, 699, 697, 702, 708, 706, 707, 703,
+ 710, 704, 701, 700, 702, 721, 704, 709, 712, 705,
+ 706, 713, 0, 714, 708, 715, 722, 716, 707, 713,
+ 0, 712, 714, 708, 706, 709, 717, 715, 718, 719,
+ 722, 720, 710, 726, 709, 712, 726, 721, 713, 716,
+ 714, 724, 715, 722, 716, 727, 725, 719, 717, 728,
+ 718, 725, 724, 717, 729, 718, 719, 720, 720, 726,
+ 726, 729, 728, 726, 731, 730, 732, 733, 724, 727,
+
+ 0, 736, 727, 732, 734, 735, 728, 730, 725, 0,
+ 734, 729, 736, 737, 738, 739, 741, 743, 742, 744,
+ 0, 733, 730, 732, 733, 746, 731, 735, 736, 742,
+ 739, 734, 735, 745, 746, 737, 738, 741, 743, 747,
+ 737, 738, 739, 741, 743, 742, 744, 748, 750, 749,
+ 751, 745, 746, 752, 0, 750, 748, 749, 760, 753,
+ 745, 754, 756, 747, 751, 759, 747, 757, 758, 761,
+ 762, 756, 764, 0, 748, 750, 749, 751, 763, 765,
+ 759, 753, 762, 754, 758, 752, 753, 765, 754, 756,
+ 760, 757, 759, 767, 757, 758, 766, 762, 769, 764,
+
+ 763, 761, 771, 770, 774, 763, 765, 769, 767, 766,
+ 771, 772, 774, 772, 776, 778, 777, 779, 780, 0,
+ 767, 770, 778, 766, 781, 769, 783, 776, 777, 771,
+ 770, 774, 782, 786, 784, 792, 0, 788, 772, 785,
+ 0, 776, 778, 777, 787, 788, 781, 784, 783, 779,
+ 780, 781, 785, 783, 789, 786, 787, 782, 790, 782,
+ 786, 784, 792, 793, 788, 791, 785, 795, 794, 797,
+ 790, 787, 796, 791, 789, 799, 793, 794, 800, 796,
+ 797, 789, 0, 797, 801, 790, 0, 806, 795, 803,
+ 793, 797, 791, 802, 795, 794, 797, 805, 0, 796,
+
+ 800, 799, 799, 804, 801, 800, 802, 797, 811, 806,
+ 797, 801, 804, 803, 806, 805, 803, 807, 808, 809,
+ 802, 813, 0, 815, 805, 807, 812, 809, 818, 814,
+ 804, 815, 817, 0, 828, 811, 0, 0, 0, 813,
+ 808, 814, 816, 818, 807, 808, 809, 822, 813, 812,
+ 815, 821, 817, 812, 816, 818, 814, 819, 820, 817,
+ 821, 823, 826, 824, 820, 819, 828, 0, 822, 816,
+ 824, 832, 825, 823, 822, 831, 830, 833, 821, 825,
+ 826, 829, 831, 836, 819, 820, 834, 837, 823, 826,
+ 824, 834, 833, 832, 829, 830, 836, 835, 832, 825,
+
+ 838, 837, 831, 830, 833, 835, 840, 841, 829, 842,
+ 836, 843, 845, 844, 837, 0, 0, 0, 834, 0,
+ 840, 846, 847, 0, 835, 841, 838, 838, 839, 851,
+ 845, 839, 839, 840, 841, 844, 839, 843, 843, 845,
+ 844, 842, 839, 846, 847, 848, 839, 849, 846, 847,
+ 839, 851, 850, 852, 849, 839, 851, 854, 839, 839,
+ 855, 856, 0, 839, 857, 901, 852, 853, 0, 839,
+ 850, 848, 848, 839, 849, 0, 853, 0, 863, 850,
+ 852, 859, 861, 856, 864, 866, 0, 857, 856, 854,
+ 865, 857, 855, 0, 853, 858, 864, 901, 861, 865,
+
+ 858, 863, 858, 866, 858, 863, 858, 859, 859, 861,
+ 867, 864, 866, 858, 0, 867, 869, 865, 870, 868,
+ 871, 0, 858, 872, 873, 878, 870, 858, 880, 858,
+ 874, 858, 868, 858, 869, 875, 872, 873, 876, 871,
+ 876, 877, 867, 869, 875, 870, 868, 871, 874, 879,
+ 872, 873, 878, 882, 885, 880, 883, 874, 884, 887,
+ 886, 879, 875, 877, 0, 876, 884, 886, 877, 888,
+ 890, 892, 894, 889, 902, 891, 879, 882, 883, 889,
+ 882, 885, 891, 883, 893, 884, 887, 886, 895, 897,
+ 903, 888, 896, 892, 894, 899, 888, 890, 892, 894,
+
+ 889, 896, 891, 893, 898, 904, 902, 905, 908, 899,
+ 897, 893, 903, 906, 895, 895, 897, 903, 0, 896,
+ 907, 906, 899, 909, 898, 905, 910, 912, 911, 0,
+ 909, 898, 911, 910, 905, 908, 907, 904, 913, 914,
+ 906, 915, 919, 917, 913, 916, 914, 907, 918, 919,
+ 909, 913, 917, 910, 921, 911, 915, 922, 916, 912,
+ 920, 923, 920, 921, 925, 913, 914, 929, 915, 919,
+ 917, 913, 916, 924, 918, 918, 930, 924, 928, 922,
+ 931, 921, 927, 928, 922, 929, 925, 920, 923, 932,
+ 927, 925, 932, 931, 929, 930, 933, 934, 935, 936,
+
+ 924, 932, 0, 930, 0, 937, 939, 931, 941, 927,
+ 928, 935, 942, 938, 939, 946, 932, 941, 933, 932,
+ 940, 940, 934, 933, 934, 935, 955, 943, 937, 938,
+ 944, 936, 937, 939, 942, 941, 943, 944, 946, 942,
+ 938, 947, 946, 948, 949, 950, 955, 940, 951, 952,
+ 947, 948, 954, 955, 943, 953, 956, 944, 950, 949,
+ 951, 952, 958, 953, 957, 964, 959, 961, 947, 960,
+ 948, 949, 950, 957, 954, 951, 952, 963, 956, 954,
+ 958, 960, 953, 956, 962, 965, 966, 969, 961, 958,
+ 962, 957, 959, 959, 961, 967, 960, 964, 971, 963,
+
+ 970, 972, 973, 0, 963, 976, 974, 978, 0, 988,
+ 972, 962, 966, 966, 969, 973, 971, 965, 974, 975,
+ 979, 967, 967, 970, 0, 971, 978, 970, 972, 973,
+ 977, 976, 976, 974, 978, 980, 981, 977, 982, 975,
+ 983, 988, 979, 982, 981, 983, 975, 979, 980, 984,
+ 985, 986, 987, 989, 989, 992, 984, 977, 985, 986,
+ 987, 990, 980, 981, 991, 993, 994, 995, 0, 990,
+ 982, 997, 983, 993, 994, 995, 984, 985, 986, 987,
+ 989, 996, 1001, 999, 997, 991, 1000, 992, 990, 996,
+ 998, 991, 993, 994, 995, 999, 998, 1003, 997, 1002,
+
+ 1004, 1006, 1005, 1007, 1008, 0, 1001, 0, 996, 1001,
+ 999, 1013, 1000, 1000, 1002, 1006, 1009, 998, 1008, 1015,
+ 1009, 1007, 1004, 1012, 1003, 1005, 1002, 1004, 1006, 1005,
+ 1007, 1008, 1011, 1009, 1012, 1014, 1017, 1016, 1013, 1011,
+ 1019, 1009, 1015, 1009, 1016, 1017, 1015, 1009, 1018, 1020,
+ 1012, 1024, 1022, 1026, 1025, 1018, 1028, 1014, 0, 1011,
+ 1009, 1022, 1014, 1017, 1016, 1030, 1031, 1033, 0, 1034,
+ 1035, 1040, 1019, 1024, 1037, 1018, 1020, 1031, 1024, 1022,
+ 1025, 1025, 1035, 1028, 1036, 1026, 1036, 1037, 1038, 1041,
+ 1039, 1033, 1030, 1031, 1033, 1034, 1034, 1035, 1040, 1042,
+
+ 1044, 1037, 1039, 1043, 1045, 1044, 1042, 1050, 0, 1046,
+ 1038, 1036, 1041, 1047, 0, 1038, 1041, 1039, 1053, 1048,
+ 1045, 1047, 1052, 0, 1051, 1054, 1042, 1044, 0, 1043,
+ 1043, 1045, 1046, 1051, 1050, 1052, 1046, 1058, 1057, 1061,
+ 1047, 1048, 1060, 1055, 1053, 1053, 1048, 1054, 1056, 1052,
+ 1055, 1051, 1054, 1059, 1062, 1056, 1057, 1064, 1067, 1058,
+ 1059, 1061, 0, 1066, 1058, 1057, 1061, 1060, 1072, 1060,
+ 1055, 1063, 1069, 1068, 1071, 1056, 1066, 1071, 1063, 1073,
+ 1059, 1068, 1074, 1076, 1075, 1067, 1062, 1077, 1080, 1064,
+ 1066, 1074, 0, 1069, 1072, 1072, 1075, 1078, 1063, 1069,
+
+ 1068, 1071, 1077, 1081, 1078, 1073, 1073, 1076, 1082, 1074,
+ 1076, 1075, 1079, 1085, 1077, 1079, 1083, 1084, 1086, 1084,
+ 1080, 1087, 1088, 1091, 1078, 1081, 1082, 1079, 0, 1092,
+ 1081, 1088, 1093, 1089, 1096, 1082, 1079, 1085, 1083, 1079,
+ 1085, 1089, 1079, 1083, 1084, 1090, 1095, 1087, 1087, 1088,
+ 1086, 1092, 1090, 1094, 1079, 1091, 1092, 1094, 1098, 1097,
+ 1089, 1096, 1099, 1100, 1093, 1101, 1102, 1098, 1095, 1099,
+ 1100, 1111, 1090, 1095, 1104, 1105, 1103, 1106, 1101, 1102,
+ 1094, 1097, 1108, 1113, 1106, 1098, 1097, 1107, 1104, 1099,
+ 1100, 1103, 1101, 1102, 1107, 1108, 1109, 0, 1111, 1112,
+
+ 1115, 1104, 1109, 1103, 1106, 1113, 1112, 1105, 1114, 1108,
+ 1113, 1116, 1115, 1117, 1107, 1119, 1117, 1120, 0, 1118,
+ 1123, 1121, 1128, 1109, 1116, 1125, 1112, 1115, 1118, 1120,
+ 1125, 1123, 1129, 1119, 1114, 1114, 1122, 1125, 1116, 1122,
+ 1117, 1121, 1119, 1127, 1120, 1127, 1118, 1123, 1121, 1128,
+ 1130, 1132, 1125, 1131, 1122, 0, 1133, 1125, 1134, 1129,
+ 1135, 1131, 1138, 1122, 1137, 1139, 1122, 1133, 1135, 1147,
+ 1127, 1147, 1136, 1132, 1130, 1136, 1134, 1130, 1132, 1140,
+ 1131, 1141, 1137, 1133, 1142, 1134, 1140, 1135, 1143, 1144,
+ 1136, 1137, 1139, 1142, 1138, 1141, 1147, 1145, 1148, 1136,
+
+ 1144, 1143, 1136, 1149, 1151, 1152, 1140, 1148, 1141, 1150,
+ 1158, 1142, 1145, 1156, 1153, 1143, 1144, 1155, 1156, 1160,
+ 1150, 1161, 1151, 1180, 1145, 1148, 1155, 1152, 1153, 1149,
+ 1149, 1151, 1152, 1163, 1154, 1162, 1150, 1154, 1159, 1165,
+ 1153, 1153, 1158, 1161, 1155, 1156, 1165, 1159, 1161, 1166,
+ 1180, 1160, 1154, 1168, 1163, 1153, 1167, 1172, 1173, 1168,
+ 1163, 1154, 1176, 1171, 1154, 1159, 1165, 1162, 1177, 1174,
+ 1167, 1171, 1173, 0, 1175, 1186, 1172, 1168, 1174, 1177,
+ 1168, 1166, 1175, 1167, 1172, 1173, 1168, 1182, 1178, 1183,
+ 1171, 1181, 1189, 1186, 1176, 1177, 1174, 1178, 1181, 1184,
+
+ 1185, 1175, 1186, 1187, 1189, 1190, 1196, 1187, 1192, 1193,
+ 1182, 1183, 1191, 1196, 1182, 1178, 1183, 1197, 1181, 1189,
+ 1200, 1184, 1185, 1194, 1193, 1191, 1184, 1185, 1192, 1195,
+ 1187, 1198, 1190, 1196, 1199, 1192, 1193, 1195, 1194, 1191,
+ 1201, 1200, 1202, 1199, 1203, 1206, 1198, 1200, 1205, 1197,
+ 1194, 1207, 1209, 1208, 1211, 1210, 1195, 0, 1198, 1211,
+ 0, 1199, 1210, 1206, 1212, 1213, 1202, 1201, 1208, 1202,
+ 1205, 1203, 1206, 1212, 1215, 1205, 1214, 1209, 1207, 1209,
+ 1208, 1211, 1210, 1216, 1217, 1221, 1218, 1213, 1220, 1215,
+ 1219, 1212, 1213, 1222, 1214, 1216, 1223, 1219, 1232, 1218,
+
+ 1220, 1215, 1223, 1214, 1218, 1226, 1217, 1225, 1224, 1228,
+ 1216, 1217, 1221, 1218, 1225, 1220, 1224, 1219, 1229, 1230,
+ 1227, 1231, 1235, 1223, 1229, 1222, 1218, 1227, 1233, 1236,
+ 1232, 1237, 1226, 1239, 1225, 1224, 1228, 1238, 1236, 1238,
+ 1240, 1242, 1241, 1246, 1231, 1229, 1230, 1227, 1231, 1250,
+ 0, 1244, 1233, 0, 1235, 1233, 1236, 1239, 1244, 1245,
+ 1239, 1254, 1250, 1237, 1238, 1251, 1245, 1240, 1241, 1241,
+ 1243, 1243, 1243, 1242, 1247, 1246, 1250, 1243, 1244, 1249,
+ 1252, 1247, 1253, 1257, 1249, 1243, 1245, 1255, 1256, 1257,
+ 1251, 1258, 1251, 1254, 1253, 1256, 1252, 1243, 1243, 1243,
+
+ 1260, 1247, 1259, 1259, 1243, 1255, 1261, 1252, 1263, 1253,
+ 1257, 1249, 1262, 1261, 1255, 1256, 1264, 1262, 1258, 1267,
+ 1269, 1271, 1268, 1279, 1270, 0, 1260, 1260, 1268, 1259,
+ 1273, 1273, 1272, 1261, 1263, 1263, 1270, 1267, 1274, 1262,
+ 1278, 1271, 1276, 1264, 1275, 1275, 1267, 1269, 1271, 1268,
+ 1272, 1270, 1281, 1276, 1280, 1279, 1282, 1273, 1283, 1272,
+ 1284, 1280, 1278, 0, 1274, 1274, 1286, 1278, 1287, 1276,
+ 1285, 1275, 1281, 1294, 1288, 1287, 1289, 1291, 1290, 1281,
+ 1293, 1280, 1288, 0, 1286, 1294, 1291, 1284, 1282, 0,
+ 1283, 1289, 1285, 1286, 1295, 1287, 0, 1285, 1292, 1292,
+
+ 1294, 1288, 1290, 1289, 1291, 1290, 1293, 1293, 1297, 1300,
+ 1295, 1298, 1299, 1301, 1303, 1302, 1297, 1295, 1305, 1308,
+ 1299, 1295, 1306, 1298, 1309, 1292, 1308, 1310, 1306, 1312,
+ 1315, 1307, 1300, 1302, 1301, 1297, 1300, 1295, 1298, 1299,
+ 1301, 1303, 1302, 1304, 1307, 1305, 1308, 1311, 1304, 1306,
+ 1313, 1313, 1311, 1314, 1310, 1318, 1309, 1317, 1307, 1304,
+ 1321, 1312, 1315, 1320, 1322, 1320, 1319, 1323, 1314, 1322,
+ 1304, 1324, 1317, 1326, 1328, 1304, 1327, 1313, 1318, 1311,
+ 1314, 1319, 1318, 1329, 1317, 1331, 1324, 1330, 1332, 1333,
+ 1320, 1322, 1321, 1319, 1330, 1335, 1337, 1326, 1324, 1323,
+
+ 1326, 1328, 1327, 1327, 1334, 1339, 1340, 0, 1344, 1332,
+ 1329, 1333, 1342, 1335, 1330, 1332, 1333, 1331, 1337, 1343,
+ 1345, 1340, 1335, 1337, 1347, 1334, 1346, 1342, 1354, 1339,
+ 1348, 1334, 1339, 1340, 1343, 1344, 1349, 1348, 1345, 1342,
+ 1350, 1352, 1351, 1353, 1359, 1355, 1343, 1345, 1346, 1350,
+ 1351, 1347, 1358, 1346, 1349, 1357, 1360, 1348, 1355, 1362,
+ 1354, 1358, 1359, 1349, 1352, 1353, 1357, 1350, 1352, 1351,
+ 1353, 1359, 1355, 1364, 1360, 1366, 1367, 1368, 1369, 1358,
+ 1370, 1357, 1357, 1360, 1364, 1371, 1362, 1366, 1369, 1367,
+ 1372, 1376, 1373, 1357, 1375, 0, 1377, 1378, 1376, 0,
+
+ 1364, 1380, 1366, 1367, 1414, 1369, 1370, 1370, 1389, 1368,
+ 1371, 1373, 1371, 0, 1375, 1378, 1380, 1372, 1376, 1373,
+ 1379, 1375, 1377, 1377, 1378, 1381, 1379, 1382, 1380, 1383,
+ 1383, 1384, 1385, 1388, 1387, 1389, 1414, 1390, 1392, 0,
+ 1381, 1387, 1382, 1384, 1391, 1385, 1390, 1379, 1388, 1397,
+ 0, 1391, 1381, 1385, 1382, 1393, 1383, 1396, 1384, 1385,
+ 1388, 1387, 1392, 1394, 1390, 1392, 1398, 1399, 1400, 1402,
+ 1394, 1391, 1385, 1403, 1397, 1398, 1397, 1393, 1405, 1396,
+ 1406, 1408, 1393, 1425, 1396, 1407, 1407, 1402, 1400, 1399,
+ 1394, 1405, 1409, 1398, 1399, 1400, 1402, 1412, 1403, 1410,
+
+ 1403, 1411, 1413, 1408, 1416, 1405, 1412, 1406, 1408, 1413,
+ 1415, 1417, 1407, 1421, 1419, 1425, 1422, 1409, 1416, 1409,
+ 1420, 1410, 1419, 1411, 1412, 1427, 1410, 1423, 1411, 1413,
+ 1417, 1416, 1415, 1420, 1426, 0, 1429, 1415, 1417, 1423,
+ 1421, 1419, 1422, 1422, 1424, 1428, 1431, 1420, 1430, 1431,
+ 1427, 1424, 1427, 1432, 1423, 1434, 1426, 0, 0, 1433,
+ 1428, 1426, 1429, 1429, 1431, 1433, 1435, 1438, 1436, 1439,
+ 1442, 1424, 1428, 1431, 1430, 1430, 1431, 1442, 1432, 1443,
+ 1432, 1444, 1434, 1436, 1435, 1441, 1433, 1451, 1443, 1438,
+ 1446, 1439, 1444, 1435, 1438, 1436, 1439, 1442, 1448, 1441,
+
+ 1450, 1449, 1450, 1446, 1452, 1451, 1443, 1454, 1444, 1456,
+ 1455, 1446, 1441, 1449, 1451, 1453, 1457, 1446, 1455, 1448,
+ 1460, 1458, 1464, 1466, 1459, 1448, 1467, 1450, 1449, 1459,
+ 1446, 1452, 1456, 1453, 1454, 1458, 1456, 1455, 1457, 1460,
+ 1465, 1466, 1453, 1457, 1461, 1471, 1468, 1460, 1458, 1464,
+ 1466, 1461, 1470, 1467, 1465, 1469, 1459, 1473, 1472, 0,
+ 1476, 1470, 1477, 0, 1474, 1465, 1465, 1465, 1480, 1477,
+ 1469, 1461, 1468, 1468, 1479, 1486, 1479, 1471, 0, 1470,
+ 1472, 1465, 1469, 1476, 1473, 1472, 1474, 1476, 1482, 1477,
+ 1480, 1474, 1465, 1481, 1483, 1480, 1484, 1481, 1485, 1487,
+
+ 1482, 1479, 1486, 1490, 1490, 1484, 1488, 1489, 1494, 1485,
+ 1495, 1491, 1494, 1495, 1502, 1482, 1483, 0, 1488, 1491,
+ 1481, 1483, 1487, 1484, 1493, 1485, 1487, 1498, 1496, 1489,
+ 1490, 1501, 1493, 1488, 1489, 1494, 1496, 1495, 1491, 1497,
+ 1499, 1502, 1498, 1501, 1503, 1497, 1499, 1504, 1508, 1505,
+ 1506, 1493, 1507, 1509, 1498, 1496, 1511, 1510, 1501, 1512,
+ 0, 1504, 1505, 0, 1506, 1514, 1497, 1499, 1503, 1510,
+ 1511, 1503, 1515, 1517, 1504, 1508, 1505, 1506, 1507, 1507,
+ 1509, 1518, 1519, 1511, 1510, 1512, 1512, 1513, 1518, 1519,
+ 1513, 1520, 1514, 1521, 1515, 1517, 1522, 1524, 1525, 1515,
+
+ 1517, 1526, 1523, 1527, 1529, 1513, 1520, 1525, 1518, 1519,
+ 1523, 1531, 1529, 1528, 1513, 1532, 1534, 1513, 1520, 1533,
+ 1521, 1537, 1539, 1522, 1524, 1525, 1528, 1533, 1526, 1523,
+ 1527, 1529, 1535, 1531, 1536, 0, 1538, 1543, 1531, 1540,
+ 1528, 1535, 1532, 1534, 1541, 1537, 1533, 1540, 1537, 1539,
+ 1542, 1538, 0, 1545, 1549, 1536, 1541, 1551, 1542, 1535,
+ 1545, 1536, 1538, 1538, 1543, 1546, 1540, 1547, 1548, 1546,
+ 1553, 1541, 1554, 1554, 1550, 1556, 1552, 1542, 1538, 1547,
+ 1545, 1549, 1550, 1552, 1551, 1555, 0, 1560, 1557, 1559,
+ 1553, 1548, 1546, 1556, 1547, 1548, 1561, 1553, 1561, 1554,
+
+ 1563, 1550, 1556, 1552, 1559, 1562, 1563, 1564, 1565, 1560,
+ 1566, 1555, 1555, 1557, 1560, 1557, 1559, 1571, 1567, 1562,
+ 1568, 1569, 1566, 1561, 1576, 1578, 1574, 1563, 1570, 1564,
+ 1565, 1572, 1562, 1574, 1564, 1565, 1567, 1566, 1568, 1569,
+ 1577, 1570, 1576, 0, 1579, 1567, 1583, 1568, 1569, 1571,
+ 1582, 1576, 1579, 1574, 1572, 1570, 1590, 1578, 1572, 1585,
+ 1587, 1580, 1582, 1580, 1583, 1586, 1577, 1577, 1580, 1588,
+ 1579, 1579, 1587, 1583, 1585, 1591, 1586, 1582, 1592, 1579,
+ 1590, 1594, 1596, 1590, 1588, 1592, 1585, 1587, 1580, 1593,
+ 1580, 1597, 1586, 1598, 1599, 1602, 1588, 1591, 0, 1600,
+
+ 0, 1601, 1591, 1604, 1593, 1592, 1603, 1608, 1594, 1596,
+ 1602, 1604, 1600, 1597, 1605, 1607, 1593, 1609, 1597, 1603,
+ 1614, 1599, 1602, 1610, 1613, 1598, 1600, 1601, 1601, 1611,
+ 1604, 1608, 1612, 1603, 1608, 1616, 1611, 1613, 1607, 1612,
+ 1605, 1605, 1607, 1614, 1609, 1610, 1615, 1614, 1617, 1618,
+ 1610, 1613, 1619, 1615, 1621, 1622, 1611, 1616, 1623, 1612,
+ 1625, 1619, 1616, 1635, 1624, 1621, 1629, 1631, 1631, 0,
+ 1618, 1628, 1630, 1615, 1632, 1637, 1618, 1622, 1641, 1619,
+ 1617, 1621, 1622, 1624, 1628, 1625, 1634, 1625, 1636, 1638,
+ 1623, 1624, 1629, 1629, 1631, 1635, 1630, 1643, 1628, 1630,
+
+ 1632, 1632, 1637, 1636, 1646, 1641, 1643, 1638, 1647, 1634,
+ 1648, 1650, 1652, 1634, 1653, 1636, 1638, 0, 1654, 1658,
+ 1655, 1656, 1663, 1660, 1643, 1655, 1646, 1658, 1667, 1654,
+ 1647, 1646, 1669, 1662, 1659, 1647, 1670, 1648, 1650, 1676,
+ 1653, 1653, 1672, 1656, 1652, 1654, 1658, 1655, 1656, 1659,
+ 1660, 1662, 1665, 1664, 1663, 1667, 1671, 1673, 1669, 1669,
+ 1662, 1659, 1664, 1670, 1665, 1675, 1676, 1672, 1674, 1672,
+ 1673, 1677, 1678, 1679, 0, 1681, 1680, 0, 1671, 1665,
+ 1664, 1674, 1682, 1671, 1673, 1680, 1684, 1675, 1679, 1683,
+ 1685, 1688, 1675, 1686, 1689, 1674, 0, 1682, 1677, 1678,
+
+ 1679, 1681, 1681, 1680, 1683, 1685, 1684, 1687, 1692, 1682,
+ 1690, 1690, 1689, 1684, 1687, 1686, 1683, 1685, 1688, 1691,
+ 1686, 1689, 1692, 1694, 1693, 1696, 1691, 1693, 1695, 1697,
+ 0, 1704, 1705, 1700, 1687, 1692, 1694, 1690, 1697, 1698,
+ 1701, 1699, 1702, 1696, 1698, 1699, 1691, 1706, 1703, 1710,
+ 1694, 1693, 1696, 1701, 1695, 1695, 1697, 1700, 1704, 1705,
+ 1700, 1721, 1709, 1716, 1702, 1710, 1698, 1701, 1699, 1702,
+ 1703, 1709, 1712, 1706, 1706, 1703, 1710, 1713, 1714, 1712,
+ 1715, 1716, 1719, 1714, 1717, 1718, 1713, 1715, 1721, 1709,
+ 1716, 1717, 1722, 1723, 1718, 1724, 0, 1726, 0, 1712,
+
+ 1732, 1725, 1723, 1730, 1713, 1714, 1726, 1715, 1719, 1719,
+ 1722, 1717, 1718, 1725, 1727, 1724, 1728, 1729, 1731, 1722,
+ 1723, 1734, 1724, 1727, 1726, 1729, 1733, 1728, 1725, 1735,
+ 1730, 0, 1732, 1734, 1740, 1733, 1736, 1735, 1739, 1737,
+ 1738, 1727, 1741, 1728, 1729, 1731, 1737, 1738, 1734, 1742,
+ 1743, 1754, 1747, 1733, 1745, 0, 1735, 1748, 1736, 1740,
+ 1739, 1740, 1745, 1736, 1748, 1739, 1737, 1738, 1752, 1741,
+ 1747, 1755, 1749, 1753, 1742, 1752, 1742, 1743, 1754, 1747,
+ 1749, 1745, 1756, 1755, 1748, 1757, 1762, 1758, 1761, 1760,
+ 1763, 1756, 1765, 1767, 1768, 1752, 1769, 1753, 1755, 1749,
+
+ 1753, 1760, 1768, 1770, 1763, 1771, 0, 1775, 1778, 1756,
+ 1758, 1761, 1757, 1762, 1758, 1761, 1760, 1763, 1779, 1765,
+ 1767, 1768, 1776, 1769, 1777, 1770, 1778, 1776, 1780, 1782,
+ 1770, 1781, 1771, 1775, 1775, 1778, 1785, 1782, 1777, 0,
+ 1779, 1780, 1783, 1786, 1787, 1779, 1789, 1788, 1785, 1776,
+ 1790, 1777, 1791, 1781, 1792, 1780, 1782, 1793, 1781, 1788,
+ 1794, 1783, 0, 1785, 1795, 1786, 1787, 1798, 1796, 1783,
+ 1786, 1787, 1791, 1789, 1788, 1797, 1792, 1790, 1799, 1791,
+ 1796, 1792, 1794, 1803, 1802, 1804, 1805, 1794, 1803, 1793,
+ 1795, 1795, 1807, 1806, 1798, 1796, 1809, 1797, 1802, 1808,
+
+ 0, 0, 1797, 1810, 0, 1799, 1811, 1804, 1809, 1812,
+ 1814, 1802, 1804, 1815, 1807, 1803, 1806, 1808, 1805, 1807,
+ 1806, 1820, 1810, 1809, 1812, 1817, 1808, 1818, 1811, 1816,
+ 1810, 1819, 1821, 1811, 1814, 1815, 1812, 1814, 1816, 1817,
+ 1815, 1827, 1829, 1824, 1831, 1818, 1825, 1820, 1820, 1819,
+ 1821, 1824, 1817, 1825, 1818, 1826, 1816, 1828, 1819, 1821,
+ 1829, 1839, 1830, 1826, 1832, 1828, 1834, 1837, 1827, 1829,
+ 1824, 1831, 1832, 1825, 1830, 1838, 1836, 1840, 1834, 1841,
+ 0, 1843, 1826, 1836, 1828, 1847, 1844, 1846, 1839, 1830,
+ 1837, 1832, 1850, 1834, 1837, 1853, 1840, 1848, 1847, 1843,
+
+ 1844, 1841, 1858, 1836, 1840, 1859, 1841, 1838, 1843, 1848,
+ 1846, 1860, 1847, 1844, 1846, 1861, 1855, 1863, 1850, 1850,
+ 1857, 1864, 1853, 1855, 1848, 1862, 1867, 1857, 1858, 1858,
+ 1865, 0, 1859, 1866, 1868, 1860, 1869, 1873, 1860, 1865,
+ 1872, 1873, 1861, 1855, 1863, 1872, 1866, 1857, 1864, 1874,
+ 1875, 1862, 1862, 1876, 1877, 1876, 1878, 1865, 1867, 1869,
+ 1866, 1868, 1881, 1869, 1873, 1884, 1882, 1884, 1885, 1885,
+ 1874, 1890, 1872, 1889, 0, 1886, 1874, 1877, 1885, 1887,
+ 1876, 1877, 1875, 1878, 1881, 1892, 1889, 1888, 1887, 1881,
+ 1882, 1891, 1884, 1882, 1888, 1885, 1885, 1886, 1890, 1891,
+
+ 1889, 1893, 1886, 1894, 1892, 1895, 1887, 1896, 1897, 1893,
+ 0, 0, 1892, 1899, 1888, 1898, 1900, 1900, 1891, 1897,
+ 1899, 1901, 1905, 1906, 0, 1909, 1910, 1907, 1893, 1894,
+ 1894, 1895, 1895, 1896, 1896, 1897, 1907, 1898, 1902, 1901,
+ 1899, 1911, 1898, 1900, 1903, 1902, 1910, 1906, 1901, 1905,
+ 1906, 1903, 1909, 1910, 1907, 1912, 1913, 1915, 1916, 1920,
+ 1918, 1919, 1921, 1917, 1920, 1902, 1915, 1924, 1911, 0,
+ 0, 1903, 0, 1919, 1913, 1922, 1921, 1912, 1918, 1925,
+ 1926, 1933, 1912, 1913, 1915, 1916, 1917, 1918, 1919, 1921,
+ 1917, 1920, 1934, 1922, 1924, 1926, 1928, 1925, 1928, 1930,
+
+ 0, 1940, 1922, 1933, 1935, 1937, 1925, 1926, 1933, 1938,
+ 1942, 1941, 1938, 1943, 1930, 0, 1946, 1942, 1934, 1934,
+ 1944, 1943, 1935, 1928, 1947, 1948, 1930, 1937, 1940, 1941,
+ 1952, 1935, 1937, 1950, 1954, 1938, 1938, 1942, 1941, 1938,
+ 1943, 1951, 1944, 1949, 1958, 1956, 1947, 1944, 1946, 1949,
+ 1951, 1947, 1948, 1956, 1953, 1950, 1953, 1957, 1961, 1959,
+ 1950, 1954, 1952, 1962, 1960, 1967, 1965, 1963, 1951, 1957,
+ 1949, 1958, 1956, 1959, 1962, 1963, 1961, 1964, 1966, 1966,
+ 1970, 1953, 1971, 1975, 1957, 1961, 1959, 1960, 1965, 1968,
+ 1962, 1960, 1967, 1965, 1963, 1973, 1964, 1968, 1977, 1979,
+
+ 1976, 1973, 1984, 0, 1964, 1966, 1980, 1970, 1981, 1971,
+ 1975, 1976, 1981, 1980, 1987, 1982, 1968, 1985, 1988, 1987,
+ 1977, 1989, 1973, 1982, 1991, 1977, 1979, 1976, 1984, 1984,
+ 1985, 1990, 1991, 1980, 1994, 1981, 1993, 1992, 1995, 2000,
+ 1996, 1987, 1982, 1993, 1985, 1988, 2001, 1999, 1989, 1990,
+ 2003, 1991, 1992, 1998, 1999, 2002, 2005, 2007, 1990, 2003,
+ 2009, 1994, 1995, 1993, 1992, 1995, 1996, 1996, 1998, 2011,
+ 2014, 2000, 2015, 2001, 1999, 2016, 2006, 2003, 2005, 2002,
+ 1998, 2018, 2002, 2005, 2006, 2008, 2008, 2009, 2016, 2007,
+ 2012, 2019, 2017, 2020, 2015, 2008, 2011, 2014, 2012, 2015,
+
+ 2021, 2023, 2016, 2006, 2028, 0, 2029, 2026, 2018, 2028,
+ 2031, 2032, 2008, 2008, 2017, 2026, 2033, 2012, 2019, 2017,
+ 2020, 2034, 2021, 2033, 2032, 2035, 2040, 2021, 2023, 2036,
+ 2041, 2028, 2029, 2029, 2026, 0, 2039, 2031, 2032, 2034,
+ 2042, 2050, 2046, 2033, 2047, 2040, 0, 2044, 2034, 2039,
+ 0, 2036, 2035, 2040, 2044, 2048, 2036, 2041, 2045, 2047,
+ 2050, 2052, 2042, 2039, 2046, 2045, 2051, 2042, 2050, 2046,
+ 2052, 2047, 2053, 2051, 2044, 2055, 2048, 2054, 2054, 2056,
+ 2061, 2055, 2048, 2053, 2059, 2045, 2062, 2054, 2052, 2063,
+ 2067, 2059, 2069, 2051, 2070, 2070, 0, 2071, 2073, 2053,
+
+ 2074, 2056, 2055, 2077, 2054, 2054, 2056, 2061, 2075, 2074,
+ 2079, 2059, 2063, 2062, 2078, 2082, 2063, 2067, 2083, 2069,
+ 2071, 2075, 2079, 2070, 2071, 2073, 2084, 2074, 2085, 2081,
+ 2077, 2086, 2087, 2082, 2078, 2075, 2088, 2079, 2081, 2090,
+ 0, 2078, 2082, 2086, 2083, 2083, 2089, 2092, 2089, 2093,
+ 2095, 2090, 2094, 2084, 2087, 2085, 2081, 2098, 2086, 2087,
+ 2094, 2091, 2101, 2088, 2102, 2103, 2090, 2091, 2105, 2092,
+ 2106, 2093, 2108, 2089, 2092, 2109, 2093, 2095, 2110, 2094,
+ 2112, 2111, 2116, 2118, 2098, 2115, 2105, 2119, 2091, 2101,
+ 2109, 2102, 2103, 2111, 2115, 2105, 2120, 2106, 2129, 2108,
+
+ 2119, 2122, 2109, 2121, 2110, 2110, 2116, 2112, 2111, 2116,
+ 2122, 2121, 2115, 2123, 2119, 2118, 2132, 2136, 2120, 2133,
+ 2134, 2136, 2129, 2120, 2123, 2129, 2133, 2138, 2122, 2137,
+ 2121, 2145, 0, 2134, 2139, 2142, 0, 2142, 2141, 2132,
+ 2123, 2138, 2139, 2132, 2136, 2137, 2133, 2134, 2140, 2141,
+ 2146, 2143, 2144, 2147, 2138, 2148, 2137, 2140, 2145, 2144,
+ 2149, 2139, 2142, 2143, 2150, 2141, 2151, 2152, 2146, 2152,
+ 2154, 2153, 2155, 2156, 2163, 2140, 2164, 2146, 2143, 2144,
+ 2147, 2148, 2148, 2153, 2158, 2155, 2150, 2149, 2151, 2162,
+ 2165, 2150, 2160, 2151, 2152, 2166, 2158, 2162, 2153, 2155,
+
+ 2156, 2160, 2154, 2165, 2167, 2169, 2163, 2170, 2164, 2166,
+ 2172, 2158, 2167, 2171, 2173, 2174, 2162, 2165, 2169, 2160,
+ 0, 2171, 2166, 2174, 2172, 2175, 2176, 2177, 2173, 2178,
+ 2170, 2167, 2169, 2179, 2170, 2177, 2180, 2172, 0, 2181,
+ 2171, 2173, 2174, 2182, 2185, 2184, 2190, 2175, 2176, 2183,
+ 0, 0, 2175, 2176, 2177, 2187, 2178, 2183, 2180, 2179,
+ 2179, 2181, 2194, 2180, 2188, 2182, 2181, 0, 2198, 2192,
+ 2182, 2185, 2188, 2189, 0, 2187, 2183, 2184, 2190, 2191,
+ 2195, 2189, 2187, 2192, 2194, 2196, 2199, 2191, 2195, 2194,
+ 2197, 2188, 2201, 2196, 2198, 2198, 2192, 2200, 0, 2202,
+
+ 2189, 2203, 2204, 2205, 2197, 2200, 2191, 2195, 2199, 2206,
+ 2210, 2205, 2196, 2199, 2207, 2208, 0, 2197, 2201, 2201,
+ 0, 2213, 2204, 2203, 2200, 2202, 2202, 2214, 2203, 2204,
+ 2205, 2209, 2210, 2217, 2207, 2208, 2206, 2210, 2211, 2209,
+ 2220, 2207, 2208, 2213, 2215, 2216, 2211, 2218, 2213, 2214,
+ 2221, 2223, 2215, 2216, 2214, 2218, 2219, 2224, 2209, 2217,
+ 2217, 2222, 2225, 2227, 2219, 2211, 2220, 2220, 2231, 2230,
+ 2233, 2215, 2216, 2234, 2218, 0, 2231, 2221, 2223, 2232,
+ 0, 2222, 2225, 2219, 2224, 2227, 0, 2232, 2222, 2225,
+ 2227, 2230, 0, 0, 0, 2231, 2230, 2233, 0, 0,
+
+ 2234, 0, 0, 0, 0, 0, 2232, 2238, 2238, 2238,
+ 2238, 2238, 2238, 2238, 2239, 2239, 2239, 2239, 2239, 2239,
+ 2239, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2241, 2241,
+ 2241, 2241, 2241, 2241, 2241, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2244, 2244, 0, 2244, 2244, 2244, 2244, 2245,
+ 2245, 0, 0, 0, 2245, 2245, 2246, 2246, 0, 0,
+ 2246, 0, 2246, 2247, 0, 0, 0, 0, 0, 2247,
+ 2248, 2248, 0, 0, 0, 2248, 2248, 2249, 0, 0,
+ 0, 0, 0, 2249, 2250, 2250, 0, 2250, 2250, 2250,
+ 2250, 2251, 2251, 0, 2251, 2251, 2251, 2251, 2237, 2237,
+
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237, 2237,
+ 2237, 2237, 2237, 2237, 2237
} ;
static yy_state_type yy_last_accepting_state;
@@ -2754,7 +2822,7 @@ static void config_end_include(void)
#define YY_NO_INPUT 1
#endif
-#line 2756 "<stdout>"
+#line 2824 "<stdout>"
#define INITIAL 0
#define quotedstring 1
@@ -2977,7 +3045,7 @@ YY_DECL
{
#line 207 "util/configlexer.lex"
-#line 2979 "<stdout>"
+#line 3047 "<stdout>"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -3010,13 +3078,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 >= 2165 )
+ if ( yy_current_state >= 2238 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 6214 );
+ while ( yy_base[yy_current_state] != 6399 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -3511,580 +3579,620 @@ YY_RULE_SETUP
case 94:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
YY_BREAK
case 95:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
-{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
YY_BREAK
case 96:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
+{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 308 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_IDENTITY) }
+{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_VERSION) }
+{ YDVAR(1, VAR_HIDE_IDENTITY) }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
-{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
+{ YDVAR(1, VAR_HIDE_VERSION) }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
-{ YDVAR(1, VAR_IDENTITY) }
+{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
-{ YDVAR(1, VAR_VERSION) }
+{ YDVAR(1, VAR_IDENTITY) }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
-{ YDVAR(1, VAR_MODULE_CONF) }
+{ YDVAR(1, VAR_VERSION) }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR) }
+{ YDVAR(1, VAR_MODULE_CONF) }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
-{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR) }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
-{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
+{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
-{ YDVAR(1, VAR_TRUST_ANCHOR) }
+{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
YY_BREAK
case 110:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
+{ YDVAR(1, VAR_TRUST_ANCHOR) }
YY_BREAK
case 111:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
+{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
YY_BREAK
case 112:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
+{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
YY_BREAK
case 113:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
-{ YDVAR(1, VAR_BOGUS_TTL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
YY_BREAK
case 114:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
+{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
YY_BREAK
case 115:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
+{ YDVAR(1, VAR_BOGUS_TTL) }
YY_BREAK
case 116:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
-{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
+{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
YY_BREAK
case 117:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVE_EXPIRED) }
+{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
YY_BREAK
case 118:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_DSA) }
+{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
YY_BREAK
case 119:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
-{ YDVAR(1, VAR_FAKE_SHA1) }
+{ YDVAR(1, VAR_SERVE_EXPIRED) }
YY_BREAK
case 120:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
-{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
+{ YDVAR(1, VAR_FAKE_DSA) }
YY_BREAK
case 121:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
+{ YDVAR(1, VAR_FAKE_SHA1) }
YY_BREAK
case 122:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
+{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
YY_BREAK
case 123:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
-{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
+{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
YY_BREAK
case 124:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
-{
- YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
+{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 336 "util/configlexer.lex"
-{ YDVAR(1, VAR_ADD_HOLDDOWN) }
+#line 335 "util/configlexer.lex"
+{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 337 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEL_HOLDDOWN) }
+#line 336 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
YY_BREAK
case 127:
YY_RULE_SETUP
#line 338 "util/configlexer.lex"
-{ YDVAR(1, VAR_KEEP_MISSING) }
+{ YDVAR(1, VAR_ADD_HOLDDOWN) }
YY_BREAK
case 128:
YY_RULE_SETUP
#line 339 "util/configlexer.lex"
-{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
+{ YDVAR(1, VAR_DEL_HOLDDOWN) }
YY_BREAK
case 129:
YY_RULE_SETUP
#line 340 "util/configlexer.lex"
-{ YDVAR(1, VAR_USE_SYSLOG) }
+{ YDVAR(1, VAR_KEEP_MISSING) }
YY_BREAK
case 130:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_IDENTITY) }
+{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
YY_BREAK
case 131:
YY_RULE_SETUP
#line 342 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_TIME_ASCII) }
+{ YDVAR(1, VAR_USE_SYSLOG) }
YY_BREAK
case 132:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_QUERIES) }
+{ YDVAR(1, VAR_LOG_IDENTITY) }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 344 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOG_REPLIES) }
+{ YDVAR(1, VAR_LOG_TIME_ASCII) }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE) }
+{ YDVAR(1, VAR_LOG_QUERIES) }
YY_BREAK
case 135:
YY_RULE_SETUP
#line 346 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA) }
+{ YDVAR(1, VAR_LOG_REPLIES) }
YY_BREAK
case 136:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
-{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
+{ YDVAR(2, VAR_LOCAL_ZONE) }
YY_BREAK
case 137:
YY_RULE_SETUP
#line 348 "util/configlexer.lex"
-{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA) }
YY_BREAK
case 138:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
-{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
+{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
YY_BREAK
case 139:
YY_RULE_SETUP
#line 350 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
+{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
YY_BREAK
case 140:
YY_RULE_SETUP
#line 351 "util/configlexer.lex"
-{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
+{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 352 "util/configlexer.lex"
-{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
+{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 353 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_ENABLE) }
+{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 354 "util/configlexer.lex"
-{ YDVAR(1, VAR_SHM_KEY) }
+{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 355 "util/configlexer.lex"
-{ YDVAR(0, VAR_REMOTE_CONTROL) }
+{ YDVAR(1, VAR_SHM_ENABLE) }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 356 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_ENABLE) }
+{ YDVAR(1, VAR_SHM_KEY) }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 357 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_INTERFACE) }
+{ YDVAR(0, VAR_REMOTE_CONTROL) }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 358 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_PORT) }
+{ YDVAR(1, VAR_CONTROL_ENABLE) }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 359 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_USE_CERT) }
+{ YDVAR(1, VAR_CONTROL_INTERFACE) }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 360 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_KEY_FILE) }
+{ YDVAR(1, VAR_CONTROL_PORT) }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 361 "util/configlexer.lex"
-{ YDVAR(1, VAR_SERVER_CERT_FILE) }
+{ YDVAR(1, VAR_CONTROL_USE_CERT) }
YY_BREAK
case 151:
YY_RULE_SETUP
#line 362 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
+{ YDVAR(1, VAR_SERVER_KEY_FILE) }
YY_BREAK
case 152:
YY_RULE_SETUP
#line 363 "util/configlexer.lex"
-{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
+{ YDVAR(1, VAR_SERVER_CERT_FILE) }
YY_BREAK
case 153:
YY_RULE_SETUP
#line 364 "util/configlexer.lex"
-{ YDVAR(1, VAR_PYTHON_SCRIPT) }
+{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
YY_BREAK
case 154:
YY_RULE_SETUP
#line 365 "util/configlexer.lex"
-{ YDVAR(0, VAR_PYTHON) }
+{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
YY_BREAK
case 155:
YY_RULE_SETUP
#line 366 "util/configlexer.lex"
-{ YDVAR(1, VAR_DOMAIN_INSECURE) }
+{ YDVAR(1, VAR_PYTHON_SCRIPT) }
YY_BREAK
case 156:
YY_RULE_SETUP
#line 367 "util/configlexer.lex"
-{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
+{ YDVAR(0, VAR_PYTHON) }
YY_BREAK
case 157:
YY_RULE_SETUP
#line 368 "util/configlexer.lex"
-{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
+{ YDVAR(1, VAR_DOMAIN_INSECURE) }
YY_BREAK
case 158:
YY_RULE_SETUP
#line 369 "util/configlexer.lex"
-{ YDVAR(1, VAR_MAX_UDP_SIZE) }
+{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
YY_BREAK
case 159:
YY_RULE_SETUP
#line 370 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_PREFIX) }
+{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
YY_BREAK
case 160:
YY_RULE_SETUP
#line 371 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNS64_SYNTHALL) }
+{ YDVAR(1, VAR_MAX_UDP_SIZE) }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 372 "util/configlexer.lex"
-{ YDVAR(1, VAR_DEFINE_TAG) }
+{ YDVAR(1, VAR_DNS64_PREFIX) }
YY_BREAK
case 162:
YY_RULE_SETUP
#line 373 "util/configlexer.lex"
-{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
+{ YDVAR(1, VAR_DNS64_SYNTHALL) }
YY_BREAK
case 163:
YY_RULE_SETUP
#line 374 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
+{ YDVAR(1, VAR_DEFINE_TAG) }
YY_BREAK
case 164:
YY_RULE_SETUP
#line 375 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
+{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
YY_BREAK
case 165:
YY_RULE_SETUP
#line 376 "util/configlexer.lex"
-{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 377 "util/configlexer.lex"
-{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
YY_BREAK
case 167:
YY_RULE_SETUP
#line 378 "util/configlexer.lex"
-{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
+{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
YY_BREAK
case 168:
YY_RULE_SETUP
#line 379 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSTAP) }
+{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 380 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_ENABLE) }
+{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
YY_BREAK
case 170:
YY_RULE_SETUP
#line 381 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
+{ YDVAR(0, VAR_DNSTAP) }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 382 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_ENABLE) }
YY_BREAK
case 172:
YY_RULE_SETUP
#line 383 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
YY_BREAK
case 173:
YY_RULE_SETUP
#line 384 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
+{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
YY_BREAK
case 174:
YY_RULE_SETUP
#line 385 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSTAP_VERSION) }
+{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
YY_BREAK
case 175:
YY_RULE_SETUP
#line 386 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
+{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
YY_BREAK
case 176:
YY_RULE_SETUP
-#line 388 "util/configlexer.lex"
-{
- YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
+#line 387 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSTAP_VERSION) }
YY_BREAK
case 177:
YY_RULE_SETUP
-#line 390 "util/configlexer.lex"
+#line 388 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
YY_BREAK
case 178:
YY_RULE_SETUP
-#line 392 "util/configlexer.lex"
+#line 390 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
YY_BREAK
case 179:
YY_RULE_SETUP
-#line 394 "util/configlexer.lex"
+#line 392 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
YY_BREAK
case 180:
YY_RULE_SETUP
-#line 396 "util/configlexer.lex"
+#line 394 "util/configlexer.lex"
{
- YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
+ YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
YY_BREAK
case 181:
YY_RULE_SETUP
-#line 398 "util/configlexer.lex"
-{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
+#line 396 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 399 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT) }
+#line 398 "util/configlexer.lex"
+{
+ YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
YY_BREAK
case 183:
YY_RULE_SETUP
#line 400 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT) }
+{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
YY_BREAK
case 184:
YY_RULE_SETUP
#line 401 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_IP_RATELIMIT) }
YY_BREAK
case 185:
YY_RULE_SETUP
#line 402 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SLABS) }
+{ YDVAR(1, VAR_RATELIMIT) }
YY_BREAK
case 186:
YY_RULE_SETUP
#line 403 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
YY_BREAK
case 187:
YY_RULE_SETUP
#line 404 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_SIZE) }
+{ YDVAR(1, VAR_RATELIMIT_SLABS) }
YY_BREAK
case 188:
YY_RULE_SETUP
#line 405 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
+{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
YY_BREAK
case 189:
YY_RULE_SETUP
#line 406 "util/configlexer.lex"
-{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
+{ YDVAR(1, VAR_RATELIMIT_SIZE) }
YY_BREAK
case 190:
YY_RULE_SETUP
#line 407 "util/configlexer.lex"
-{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
YY_BREAK
case 191:
YY_RULE_SETUP
#line 408 "util/configlexer.lex"
-{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
+{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
YY_BREAK
case 192:
YY_RULE_SETUP
#line 409 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
+{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
YY_BREAK
case 193:
YY_RULE_SETUP
#line 410 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP) }
+{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
YY_BREAK
case 194:
YY_RULE_SETUP
#line 411 "util/configlexer.lex"
-{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
+{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
YY_BREAK
case 195:
YY_RULE_SETUP
#line 412 "util/configlexer.lex"
-{ YDVAR(0, VAR_DNSCRYPT) }
+{ YDVAR(2, VAR_RESPONSE_IP) }
YY_BREAK
case 196:
YY_RULE_SETUP
#line 413 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
+{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
YY_BREAK
case 197:
YY_RULE_SETUP
#line 414 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PORT) }
+{ YDVAR(0, VAR_DNSCRYPT) }
YY_BREAK
case 198:
YY_RULE_SETUP
#line 415 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
+{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
YY_BREAK
case 199:
YY_RULE_SETUP
#line 416 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
+{ YDVAR(1, VAR_DNSCRYPT_PORT) }
YY_BREAK
case 200:
YY_RULE_SETUP
#line 417 "util/configlexer.lex"
-{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
YY_BREAK
case 201:
-/* rule 201 can match eol */
YY_RULE_SETUP
#line 418 "util/configlexer.lex"
-{ LEXOUT(("NL\n")); cfg_parser->line++; }
+{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
YY_BREAK
-/* Quoted strings. Strip leading and ending quotes */
case 202:
YY_RULE_SETUP
+#line 419 "util/configlexer.lex"
+{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+ YY_BREAK
+case 203:
+YY_RULE_SETUP
+#line 420 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
+ YY_BREAK
+case 204:
+YY_RULE_SETUP
#line 421 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
+ YY_BREAK
+case 205:
+YY_RULE_SETUP
+#line 422 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_HOOK) }
+ YY_BREAK
+case 206:
+YY_RULE_SETUP
+#line 423 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
+ YY_BREAK
+case 207:
+YY_RULE_SETUP
+#line 424 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
+ YY_BREAK
+case 208:
+YY_RULE_SETUP
+#line 425 "util/configlexer.lex"
+{ YDVAR(1, VAR_IPSECMOD_STRICT) }
+ YY_BREAK
+case 209:
+/* rule 209 can match eol */
+YY_RULE_SETUP
+#line 426 "util/configlexer.lex"
+{ LEXOUT(("NL\n")); cfg_parser->line++; }
+ YY_BREAK
+/* Quoted strings. Strip leading and ending quotes */
+case 210:
+YY_RULE_SETUP
+#line 429 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
-#line 422 "util/configlexer.lex"
+#line 430 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 203:
+case 211:
YY_RULE_SETUP
-#line 427 "util/configlexer.lex"
+#line 435 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 204:
-/* rule 204 can match eol */
+case 212:
+/* rule 212 can match eol */
YY_RULE_SETUP
-#line 428 "util/configlexer.lex"
+#line 436 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \"");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 205:
+case 213:
YY_RULE_SETUP
-#line 430 "util/configlexer.lex"
+#line 438 "util/configlexer.lex"
{
LEXOUT(("QE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4097,34 +4205,34 @@ YY_RULE_SETUP
}
YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
-case 206:
+case 214:
YY_RULE_SETUP
-#line 442 "util/configlexer.lex"
+#line 450 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
YY_BREAK
case YY_STATE_EOF(singlequotedstr):
-#line 443 "util/configlexer.lex"
+#line 451 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
if(--num_args == 0) { BEGIN(INITIAL); }
else { BEGIN(val); }
}
YY_BREAK
-case 207:
+case 215:
YY_RULE_SETUP
-#line 448 "util/configlexer.lex"
+#line 456 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 208:
-/* rule 208 can match eol */
+case 216:
+/* rule 216 can match eol */
YY_RULE_SETUP
-#line 449 "util/configlexer.lex"
+#line 457 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '");
cfg_parser->line++; BEGIN(INITIAL); }
YY_BREAK
-case 209:
+case 217:
YY_RULE_SETUP
-#line 451 "util/configlexer.lex"
+#line 459 "util/configlexer.lex"
{
LEXOUT(("SQE "));
if(--num_args == 0) { BEGIN(INITIAL); }
@@ -4137,38 +4245,38 @@ YY_RULE_SETUP
}
YY_BREAK
/* include: directive */
-case 210:
+case 218:
YY_RULE_SETUP
-#line 463 "util/configlexer.lex"
+#line 471 "util/configlexer.lex"
{
LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
-#line 465 "util/configlexer.lex"
+#line 473 "util/configlexer.lex"
{
yyerror("EOF inside include directive");
BEGIN(inc_prev);
}
YY_BREAK
-case 211:
+case 219:
YY_RULE_SETUP
-#line 469 "util/configlexer.lex"
+#line 477 "util/configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
-case 212:
-/* rule 212 can match eol */
+case 220:
+/* rule 220 can match eol */
YY_RULE_SETUP
-#line 470 "util/configlexer.lex"
+#line 478 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
-case 213:
+case 221:
YY_RULE_SETUP
-#line 471 "util/configlexer.lex"
+#line 479 "util/configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
YY_BREAK
-case 214:
+case 222:
YY_RULE_SETUP
-#line 472 "util/configlexer.lex"
+#line 480 "util/configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext);
@@ -4176,27 +4284,27 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
-#line 477 "util/configlexer.lex"
+#line 485 "util/configlexer.lex"
{
yyerror("EOF inside quoted string");
BEGIN(inc_prev);
}
YY_BREAK
-case 215:
+case 223:
YY_RULE_SETUP
-#line 481 "util/configlexer.lex"
+#line 489 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
-case 216:
-/* rule 216 can match eol */
+case 224:
+/* rule 224 can match eol */
YY_RULE_SETUP
-#line 482 "util/configlexer.lex"
+#line 490 "util/configlexer.lex"
{ yyerror("newline before \" in include name");
cfg_parser->line++; BEGIN(inc_prev); }
YY_BREAK
-case 217:
+case 225:
YY_RULE_SETUP
-#line 484 "util/configlexer.lex"
+#line 492 "util/configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
@@ -4206,7 +4314,7 @@ YY_RULE_SETUP
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
-#line 490 "util/configlexer.lex"
+#line 498 "util/configlexer.lex"
{
LEXOUT(("LEXEOF "));
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
@@ -4218,33 +4326,33 @@ case YY_STATE_EOF(val):
}
}
YY_BREAK
-case 218:
+case 226:
YY_RULE_SETUP
-#line 501 "util/configlexer.lex"
+#line 509 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
if(--num_args == 0) { BEGIN(INITIAL); }
yylval.str = strdup(yytext); return STRING_ARG; }
YY_BREAK
-case 219:
+case 227:
YY_RULE_SETUP
-#line 505 "util/configlexer.lex"
+#line 513 "util/configlexer.lex"
{
ub_c_error_msg("unknown keyword '%s'", yytext);
}
YY_BREAK
-case 220:
+case 228:
YY_RULE_SETUP
-#line 509 "util/configlexer.lex"
+#line 517 "util/configlexer.lex"
{
ub_c_error_msg("stray '%s'", yytext);
}
YY_BREAK
-case 221:
+case 229:
YY_RULE_SETUP
-#line 513 "util/configlexer.lex"
+#line 521 "util/configlexer.lex"
ECHO;
YY_BREAK
-#line 4246 "<stdout>"
+#line 4354 "<stdout>"
case YY_END_OF_BUFFER:
{
@@ -4535,7 +4643,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 >= 2165 )
+ if ( yy_current_state >= 2238 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4563,11 +4671,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 >= 2165 )
+ if ( yy_current_state >= 2238 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 2164);
+ yy_is_jam = (yy_current_state == 2237);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -5206,7 +5314,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 513 "util/configlexer.lex"
+#line 521 "util/configlexer.lex"
diff --git a/util/configlexer.lex b/util/configlexer.lex
index a6323f2c1436..d9b8e281c568 100644
--- a/util/configlexer.lex
+++ b/util/configlexer.lex
@@ -301,6 +301,7 @@ do-not-query-address{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
do-not-query-localhost{COLON} { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
access-control{COLON} { YDVAR(2, VAR_ACCESS_CONTROL) }
send-client-subnet{COLON} { YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
+client-subnet-zone{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
client-subnet-always-forward{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
client-subnet-opcode{COLON} { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
max-client-subnet-ipv4{COLON} { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
@@ -317,6 +318,7 @@ trust-anchor-file{COLON} { YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
auto-trust-anchor-file{COLON} { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
trusted-keys-file{COLON} { YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
trust-anchor{COLON} { YDVAR(1, VAR_TRUST_ANCHOR) }
+trust-anchor-signaling{COLON} { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
@@ -415,6 +417,12 @@ dnscrypt-port{COLON} { YDVAR(1, VAR_DNSCRYPT_PORT) }
dnscrypt-provider{COLON} { YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
dnscrypt-secret-key{COLON} { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
dnscrypt-provider-cert{COLON} { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
+ipsecmod-enabled{COLON} { YDVAR(1, VAR_IPSECMOD_ENABLED) }
+ipsecmod-ignore-bogus{COLON} { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
+ipsecmod-hook{COLON} { YDVAR(1, VAR_IPSECMOD_HOOK) }
+ipsecmod-max-ttl{COLON} { YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
+ipsecmod-whitelist{COLON} { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
+ipsecmod-strict{COLON} { YDVAR(1, VAR_IPSECMOD_STRICT) }
<INITIAL,val>{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 f70b948b75d2..9fa436b02886 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -298,39 +298,47 @@ extern int yydebug;
VAR_IP_RATELIMIT_FACTOR = 427,
VAR_RATELIMIT_FACTOR = 428,
VAR_SEND_CLIENT_SUBNET = 429,
- VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 430,
- VAR_CLIENT_SUBNET_OPCODE = 431,
- VAR_MAX_CLIENT_SUBNET_IPV4 = 432,
- VAR_MAX_CLIENT_SUBNET_IPV6 = 433,
- VAR_CAPS_WHITELIST = 434,
- VAR_CACHE_MAX_NEGATIVE_TTL = 435,
- VAR_PERMIT_SMALL_HOLDDOWN = 436,
- VAR_QNAME_MINIMISATION = 437,
- VAR_QNAME_MINIMISATION_STRICT = 438,
- VAR_IP_FREEBIND = 439,
- VAR_DEFINE_TAG = 440,
- VAR_LOCAL_ZONE_TAG = 441,
- VAR_ACCESS_CONTROL_TAG = 442,
- VAR_LOCAL_ZONE_OVERRIDE = 443,
- VAR_ACCESS_CONTROL_TAG_ACTION = 444,
- VAR_ACCESS_CONTROL_TAG_DATA = 445,
- VAR_VIEW = 446,
- VAR_ACCESS_CONTROL_VIEW = 447,
- VAR_VIEW_FIRST = 448,
- VAR_SERVE_EXPIRED = 449,
- VAR_FAKE_DSA = 450,
- VAR_FAKE_SHA1 = 451,
- VAR_LOG_IDENTITY = 452,
- VAR_HIDE_TRUSTANCHOR = 453,
- VAR_USE_SYSTEMD = 454,
- VAR_SHM_ENABLE = 455,
- VAR_SHM_KEY = 456,
- VAR_DNSCRYPT = 457,
- VAR_DNSCRYPT_ENABLE = 458,
- VAR_DNSCRYPT_PORT = 459,
- VAR_DNSCRYPT_PROVIDER = 460,
- VAR_DNSCRYPT_SECRET_KEY = 461,
- VAR_DNSCRYPT_PROVIDER_CERT = 462
+ VAR_CLIENT_SUBNET_ZONE = 430,
+ VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 431,
+ VAR_CLIENT_SUBNET_OPCODE = 432,
+ VAR_MAX_CLIENT_SUBNET_IPV4 = 433,
+ VAR_MAX_CLIENT_SUBNET_IPV6 = 434,
+ VAR_CAPS_WHITELIST = 435,
+ VAR_CACHE_MAX_NEGATIVE_TTL = 436,
+ VAR_PERMIT_SMALL_HOLDDOWN = 437,
+ VAR_QNAME_MINIMISATION = 438,
+ VAR_QNAME_MINIMISATION_STRICT = 439,
+ VAR_IP_FREEBIND = 440,
+ VAR_DEFINE_TAG = 441,
+ VAR_LOCAL_ZONE_TAG = 442,
+ VAR_ACCESS_CONTROL_TAG = 443,
+ VAR_LOCAL_ZONE_OVERRIDE = 444,
+ VAR_ACCESS_CONTROL_TAG_ACTION = 445,
+ VAR_ACCESS_CONTROL_TAG_DATA = 446,
+ VAR_VIEW = 447,
+ VAR_ACCESS_CONTROL_VIEW = 448,
+ VAR_VIEW_FIRST = 449,
+ VAR_SERVE_EXPIRED = 450,
+ VAR_FAKE_DSA = 451,
+ VAR_FAKE_SHA1 = 452,
+ VAR_LOG_IDENTITY = 453,
+ VAR_HIDE_TRUSTANCHOR = 454,
+ VAR_TRUST_ANCHOR_SIGNALING = 455,
+ VAR_USE_SYSTEMD = 456,
+ VAR_SHM_ENABLE = 457,
+ VAR_SHM_KEY = 458,
+ VAR_DNSCRYPT = 459,
+ VAR_DNSCRYPT_ENABLE = 460,
+ VAR_DNSCRYPT_PORT = 461,
+ VAR_DNSCRYPT_PROVIDER = 462,
+ VAR_DNSCRYPT_SECRET_KEY = 463,
+ VAR_DNSCRYPT_PROVIDER_CERT = 464,
+ VAR_IPSECMOD_ENABLED = 465,
+ VAR_IPSECMOD_HOOK = 466,
+ VAR_IPSECMOD_IGNORE_BOGUS = 467,
+ VAR_IPSECMOD_MAX_TTL = 468,
+ VAR_IPSECMOD_WHITELIST = 469,
+ VAR_IPSECMOD_STRICT = 470
};
#endif
/* Tokens. */
@@ -506,39 +514,47 @@ extern int yydebug;
#define VAR_IP_RATELIMIT_FACTOR 427
#define VAR_RATELIMIT_FACTOR 428
#define VAR_SEND_CLIENT_SUBNET 429
-#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 430
-#define VAR_CLIENT_SUBNET_OPCODE 431
-#define VAR_MAX_CLIENT_SUBNET_IPV4 432
-#define VAR_MAX_CLIENT_SUBNET_IPV6 433
-#define VAR_CAPS_WHITELIST 434
-#define VAR_CACHE_MAX_NEGATIVE_TTL 435
-#define VAR_PERMIT_SMALL_HOLDDOWN 436
-#define VAR_QNAME_MINIMISATION 437
-#define VAR_QNAME_MINIMISATION_STRICT 438
-#define VAR_IP_FREEBIND 439
-#define VAR_DEFINE_TAG 440
-#define VAR_LOCAL_ZONE_TAG 441
-#define VAR_ACCESS_CONTROL_TAG 442
-#define VAR_LOCAL_ZONE_OVERRIDE 443
-#define VAR_ACCESS_CONTROL_TAG_ACTION 444
-#define VAR_ACCESS_CONTROL_TAG_DATA 445
-#define VAR_VIEW 446
-#define VAR_ACCESS_CONTROL_VIEW 447
-#define VAR_VIEW_FIRST 448
-#define VAR_SERVE_EXPIRED 449
-#define VAR_FAKE_DSA 450
-#define VAR_FAKE_SHA1 451
-#define VAR_LOG_IDENTITY 452
-#define VAR_HIDE_TRUSTANCHOR 453
-#define VAR_USE_SYSTEMD 454
-#define VAR_SHM_ENABLE 455
-#define VAR_SHM_KEY 456
-#define VAR_DNSCRYPT 457
-#define VAR_DNSCRYPT_ENABLE 458
-#define VAR_DNSCRYPT_PORT 459
-#define VAR_DNSCRYPT_PROVIDER 460
-#define VAR_DNSCRYPT_SECRET_KEY 461
-#define VAR_DNSCRYPT_PROVIDER_CERT 462
+#define VAR_CLIENT_SUBNET_ZONE 430
+#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 431
+#define VAR_CLIENT_SUBNET_OPCODE 432
+#define VAR_MAX_CLIENT_SUBNET_IPV4 433
+#define VAR_MAX_CLIENT_SUBNET_IPV6 434
+#define VAR_CAPS_WHITELIST 435
+#define VAR_CACHE_MAX_NEGATIVE_TTL 436
+#define VAR_PERMIT_SMALL_HOLDDOWN 437
+#define VAR_QNAME_MINIMISATION 438
+#define VAR_QNAME_MINIMISATION_STRICT 439
+#define VAR_IP_FREEBIND 440
+#define VAR_DEFINE_TAG 441
+#define VAR_LOCAL_ZONE_TAG 442
+#define VAR_ACCESS_CONTROL_TAG 443
+#define VAR_LOCAL_ZONE_OVERRIDE 444
+#define VAR_ACCESS_CONTROL_TAG_ACTION 445
+#define VAR_ACCESS_CONTROL_TAG_DATA 446
+#define VAR_VIEW 447
+#define VAR_ACCESS_CONTROL_VIEW 448
+#define VAR_VIEW_FIRST 449
+#define VAR_SERVE_EXPIRED 450
+#define VAR_FAKE_DSA 451
+#define VAR_FAKE_SHA1 452
+#define VAR_LOG_IDENTITY 453
+#define VAR_HIDE_TRUSTANCHOR 454
+#define VAR_TRUST_ANCHOR_SIGNALING 455
+#define VAR_USE_SYSTEMD 456
+#define VAR_SHM_ENABLE 457
+#define VAR_SHM_KEY 458
+#define VAR_DNSCRYPT 459
+#define VAR_DNSCRYPT_ENABLE 460
+#define VAR_DNSCRYPT_PORT 461
+#define VAR_DNSCRYPT_PROVIDER 462
+#define VAR_DNSCRYPT_SECRET_KEY 463
+#define VAR_DNSCRYPT_PROVIDER_CERT 464
+#define VAR_IPSECMOD_ENABLED 465
+#define VAR_IPSECMOD_HOOK 466
+#define VAR_IPSECMOD_IGNORE_BOGUS 467
+#define VAR_IPSECMOD_MAX_TTL 468
+#define VAR_IPSECMOD_WHITELIST 469
+#define VAR_IPSECMOD_STRICT 470
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -549,7 +565,7 @@ union YYSTYPE
char* str;
-#line 553 "util/configparser.c" /* yacc.c:355 */
+#line 569 "util/configparser.c" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
@@ -566,7 +582,7 @@ int yyparse (void);
/* Copy the second part of user declarations. */
-#line 570 "util/configparser.c" /* yacc.c:358 */
+#line 586 "util/configparser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -808,21 +824,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 421
+#define YYLAST 442
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 208
+#define YYNTOKENS 216
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 223
+#define YYNNTS 231
/* YYNRULES -- Number of rules. */
-#define YYNRULES 427
+#define YYNRULES 443
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 643
+#define YYNSTATES 667
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 462
+#define YYMAXUTOK 470
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -877,56 +893,59 @@ static const yytype_uint8 yytranslate[] =
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207
+ 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+ 215
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 149, 149, 149, 150, 150, 151, 151, 152, 152,
- 152, 154, 158, 163, 164, 165, 165, 165, 166, 166,
- 167, 167, 168, 168, 169, 169, 170, 170, 170, 171,
- 171, 171, 172, 172, 173, 173, 174, 174, 175, 175,
- 176, 176, 177, 177, 178, 178, 179, 179, 180, 180,
- 180, 181, 181, 181, 182, 182, 182, 183, 183, 184,
- 184, 185, 185, 186, 186, 187, 187, 187, 188, 188,
- 189, 189, 190, 190, 190, 191, 191, 192, 192, 193,
- 193, 194, 194, 194, 195, 195, 196, 196, 197, 197,
- 198, 198, 199, 199, 200, 200, 200, 201, 201, 202,
- 202, 202, 203, 203, 203, 204, 204, 204, 205, 205,
- 205, 205, 206, 206, 206, 207, 207, 207, 208, 208,
- 209, 209, 210, 210, 211, 211, 212, 212, 212, 213,
- 213, 214, 214, 215, 216, 216, 217, 217, 218, 219,
- 220, 220, 221, 221, 222, 222, 223, 223, 223, 224,
- 224, 225, 225, 226, 226, 227, 227, 228, 228, 228,
- 229, 229, 229, 230, 230, 230, 231, 233, 245, 246,
- 247, 247, 247, 247, 247, 248, 250, 262, 263, 264,
- 264, 264, 264, 265, 267, 281, 282, 283, 283, 283,
- 283, 284, 284, 284, 286, 295, 304, 315, 324, 333,
- 342, 353, 362, 374, 389, 400, 417, 434, 447, 462,
- 471, 480, 489, 498, 507, 516, 525, 534, 543, 552,
- 561, 570, 579, 588, 597, 604, 611, 620, 629, 638,
- 652, 661, 670, 679, 686, 693, 719, 727, 734, 741,
- 748, 755, 763, 771, 779, 786, 793, 802, 811, 820,
- 827, 834, 842, 850, 860, 870, 880, 893, 904, 912,
- 925, 934, 943, 952, 962, 972, 980, 993, 1002, 1010,
- 1019, 1027, 1040, 1049, 1056, 1066, 1076, 1086, 1096, 1106,
- 1116, 1126, 1136, 1143, 1150, 1157, 1166, 1175, 1184, 1191,
- 1201, 1218, 1225, 1243, 1256, 1269, 1278, 1287, 1296, 1305,
- 1315, 1325, 1334, 1343, 1356, 1369, 1378, 1385, 1394, 1403,
- 1412, 1421, 1429, 1442, 1450, 1478, 1485, 1500, 1510, 1520,
- 1527, 1534, 1543, 1557, 1576, 1595, 1607, 1619, 1631, 1642,
- 1661, 1671, 1680, 1688, 1696, 1709, 1722, 1735, 1748, 1757,
- 1766, 1776, 1786, 1796, 1803, 1810, 1819, 1829, 1839, 1849,
- 1856, 1863, 1872, 1882, 1892, 1921, 1931, 1939, 1948, 1963,
- 1972, 1977, 1978, 1979, 1979, 1979, 1980, 1980, 1980, 1981,
- 1981, 1983, 1993, 2002, 2009, 2019, 2026, 2033, 2040, 2047,
- 2052, 2053, 2054, 2054, 2055, 2055, 2056, 2056, 2057, 2058,
- 2059, 2060, 2061, 2062, 2064, 2072, 2079, 2087, 2095, 2102,
- 2109, 2118, 2127, 2136, 2145, 2154, 2163, 2168, 2169, 2170,
- 2172, 2178, 2188, 2195, 2204, 2212, 2218, 2219, 2221, 2221,
- 2221, 2222, 2222, 2224, 2233, 2243, 2250, 2257
+ 0, 151, 151, 151, 152, 152, 153, 153, 154, 154,
+ 154, 156, 160, 165, 166, 167, 167, 167, 168, 168,
+ 169, 169, 170, 170, 171, 171, 172, 172, 172, 173,
+ 173, 173, 174, 174, 175, 175, 176, 176, 177, 177,
+ 178, 178, 179, 179, 180, 180, 181, 181, 182, 182,
+ 182, 183, 183, 183, 184, 184, 184, 185, 185, 186,
+ 186, 187, 187, 188, 188, 189, 189, 189, 190, 190,
+ 191, 191, 192, 192, 192, 193, 193, 194, 194, 195,
+ 195, 196, 196, 196, 197, 197, 198, 198, 199, 199,
+ 200, 200, 201, 201, 202, 202, 202, 203, 203, 204,
+ 204, 204, 205, 205, 205, 206, 206, 206, 207, 207,
+ 207, 207, 208, 208, 208, 209, 209, 209, 210, 210,
+ 211, 211, 212, 212, 213, 213, 214, 214, 214, 215,
+ 215, 216, 216, 217, 218, 218, 219, 219, 220, 220,
+ 221, 222, 222, 223, 223, 224, 224, 225, 225, 225,
+ 226, 226, 227, 227, 228, 228, 229, 229, 230, 230,
+ 230, 231, 231, 231, 232, 232, 232, 233, 233, 234,
+ 234, 235, 235, 236, 236, 238, 250, 251, 252, 252,
+ 252, 252, 252, 253, 255, 267, 268, 269, 269, 269,
+ 269, 270, 272, 286, 287, 288, 288, 288, 288, 289,
+ 289, 289, 291, 300, 309, 320, 329, 338, 347, 358,
+ 367, 378, 391, 406, 417, 434, 451, 464, 479, 488,
+ 497, 506, 515, 524, 533, 542, 551, 560, 569, 578,
+ 587, 596, 605, 614, 621, 628, 637, 646, 655, 669,
+ 678, 687, 696, 703, 710, 736, 744, 751, 758, 765,
+ 772, 780, 788, 796, 803, 814, 821, 830, 839, 848,
+ 855, 862, 870, 878, 888, 898, 908, 921, 932, 940,
+ 953, 962, 971, 980, 990, 1000, 1008, 1021, 1030, 1038,
+ 1047, 1055, 1068, 1077, 1084, 1094, 1104, 1114, 1124, 1134,
+ 1144, 1154, 1164, 1171, 1178, 1185, 1194, 1203, 1212, 1219,
+ 1229, 1246, 1253, 1271, 1284, 1297, 1306, 1315, 1324, 1333,
+ 1343, 1353, 1362, 1371, 1384, 1397, 1406, 1413, 1422, 1431,
+ 1440, 1449, 1457, 1470, 1478, 1506, 1513, 1528, 1538, 1548,
+ 1555, 1562, 1571, 1585, 1604, 1623, 1635, 1647, 1659, 1670,
+ 1689, 1699, 1708, 1716, 1724, 1737, 1750, 1763, 1776, 1785,
+ 1794, 1804, 1814, 1827, 1840, 1851, 1864, 1875, 1888, 1898,
+ 1905, 1912, 1921, 1931, 1941, 1951, 1958, 1965, 1974, 1984,
+ 1994, 2023, 2033, 2041, 2050, 2065, 2074, 2079, 2080, 2081,
+ 2081, 2081, 2082, 2082, 2082, 2083, 2083, 2085, 2095, 2104,
+ 2111, 2121, 2128, 2135, 2142, 2149, 2154, 2155, 2156, 2156,
+ 2157, 2157, 2158, 2158, 2159, 2160, 2161, 2162, 2163, 2164,
+ 2166, 2174, 2181, 2189, 2197, 2204, 2211, 2220, 2229, 2238,
+ 2247, 2256, 2265, 2270, 2271, 2272, 2274, 2280, 2290, 2297,
+ 2306, 2314, 2320, 2321, 2323, 2323, 2323, 2324, 2324, 2326,
+ 2336, 2346, 2353, 2360
};
#endif
@@ -995,30 +1014,33 @@ static const char *const yytname[] =
"VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE",
"VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN",
"VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR",
- "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ALWAYS_FORWARD",
- "VAR_CLIENT_SUBNET_OPCODE", "VAR_MAX_CLIENT_SUBNET_IPV4",
- "VAR_MAX_CLIENT_SUBNET_IPV6", "VAR_CAPS_WHITELIST",
- "VAR_CACHE_MAX_NEGATIVE_TTL", "VAR_PERMIT_SMALL_HOLDDOWN",
- "VAR_QNAME_MINIMISATION", "VAR_QNAME_MINIMISATION_STRICT",
- "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG",
- "VAR_ACCESS_CONTROL_TAG", "VAR_LOCAL_ZONE_OVERRIDE",
- "VAR_ACCESS_CONTROL_TAG_ACTION", "VAR_ACCESS_CONTROL_TAG_DATA",
- "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST",
- "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", "VAR_LOG_IDENTITY",
- "VAR_HIDE_TRUSTANCHOR", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE",
- "VAR_SHM_KEY", "VAR_DNSCRYPT", "VAR_DNSCRYPT_ENABLE",
- "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", "VAR_DNSCRYPT_SECRET_KEY",
- "VAR_DNSCRYPT_PROVIDER_CERT", "$accept", "toplevelvars", "toplevelvar",
- "serverstart", "contents_server", "content_server", "stubstart",
- "contents_stub", "content_stub", "forwardstart", "contents_forward",
- "content_forward", "viewstart", "contents_view", "content_view",
- "server_num_threads", "server_verbosity", "server_statistics_interval",
+ "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE",
+ "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE",
+ "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6",
+ "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL",
+ "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION",
+ "VAR_QNAME_MINIMISATION_STRICT", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG",
+ "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG",
+ "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION",
+ "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW",
+ "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_FAKE_DSA", "VAR_FAKE_SHA1",
+ "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_TRUST_ANCHOR_SIGNALING",
+ "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", "VAR_SHM_KEY", "VAR_DNSCRYPT",
+ "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER",
+ "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT",
+ "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS",
+ "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT",
+ "$accept", "toplevelvars", "toplevelvar", "serverstart",
+ "contents_server", "content_server", "stubstart", "contents_stub",
+ "content_stub", "forwardstart", "contents_forward", "content_forward",
+ "viewstart", "contents_view", "content_view", "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_always_forward",
- "server_client_subnet_opcode", "server_max_client_subnet_ipv4",
- "server_max_client_subnet_ipv6", "server_interface",
- "server_outgoing_interface", "server_outgoing_range",
+ "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_interface", "server_outgoing_interface", "server_outgoing_range",
"server_outgoing_port_permit", "server_outgoing_port_avoid",
"server_outgoing_num_tcp", "server_incoming_num_tcp",
"server_interface_automatic", "server_do_ip4", "server_do_ip6",
@@ -1031,36 +1053,36 @@ static const char *const yytname[] =
"server_pidfile", "server_root_hints", "server_dlv_anchor_file",
"server_dlv_anchor", "server_auto_trust_anchor_file",
"server_trust_anchor_file", "server_trusted_keys_file",
- "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
- "server_hide_version", "server_hide_trustanchor", "server_identity",
- "server_version", "server_so_rcvbuf", "server_so_sndbuf",
- "server_so_reuseport", "server_ip_transparent", "server_ip_freebind",
- "server_edns_buffer_size", "server_msg_buffer_size",
- "server_msg_cache_size", "server_msg_cache_slabs",
- "server_num_queries_per_thread", "server_jostle_timeout",
- "server_delay_close", "server_unblock_lan_zones",
- "server_insecure_lan_zones", "server_rrset_cache_size",
- "server_rrset_cache_slabs", "server_infra_host_ttl",
- "server_infra_lame_ttl", "server_infra_cache_numhosts",
- "server_infra_cache_lame_size", "server_infra_cache_slabs",
- "server_infra_cache_min_rtt", "server_target_fetch_policy",
- "server_harden_short_bufsize", "server_harden_large_queries",
- "server_harden_glue", "server_harden_dnssec_stripped",
- "server_harden_below_nxdomain", "server_harden_referral_path",
- "server_harden_algo_downgrade", "server_use_caps_for_id",
- "server_caps_whitelist", "server_private_address",
- "server_private_domain", "server_prefetch", "server_prefetch_key",
- "server_unwanted_reply_threshold", "server_do_not_query_address",
- "server_do_not_query_localhost", "server_access_control",
- "server_module_conf", "server_val_override_date",
- "server_val_sig_skew_min", "server_val_sig_skew_max",
- "server_cache_max_ttl", "server_cache_max_negative_ttl",
- "server_cache_min_ttl", "server_bogus_ttl",
- "server_val_clean_additional", "server_val_permissive_mode",
- "server_ignore_cd_flag", "server_serve_expired", "server_fake_dsa",
- "server_fake_sha1", "server_val_log_level",
- "server_val_nsec3_keysize_iterations", "server_add_holddown",
- "server_del_holddown", "server_keep_missing",
+ "server_trust_anchor", "server_trust_anchor_signaling",
+ "server_domain_insecure", "server_hide_identity", "server_hide_version",
+ "server_hide_trustanchor", "server_identity", "server_version",
+ "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport",
+ "server_ip_transparent", "server_ip_freebind", "server_edns_buffer_size",
+ "server_msg_buffer_size", "server_msg_cache_size",
+ "server_msg_cache_slabs", "server_num_queries_per_thread",
+ "server_jostle_timeout", "server_delay_close",
+ "server_unblock_lan_zones", "server_insecure_lan_zones",
+ "server_rrset_cache_size", "server_rrset_cache_slabs",
+ "server_infra_host_ttl", "server_infra_lame_ttl",
+ "server_infra_cache_numhosts", "server_infra_cache_lame_size",
+ "server_infra_cache_slabs", "server_infra_cache_min_rtt",
+ "server_target_fetch_policy", "server_harden_short_bufsize",
+ "server_harden_large_queries", "server_harden_glue",
+ "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
+ "server_harden_referral_path", "server_harden_algo_downgrade",
+ "server_use_caps_for_id", "server_caps_whitelist",
+ "server_private_address", "server_private_domain", "server_prefetch",
+ "server_prefetch_key", "server_unwanted_reply_threshold",
+ "server_do_not_query_address", "server_do_not_query_localhost",
+ "server_access_control", "server_module_conf",
+ "server_val_override_date", "server_val_sig_skew_min",
+ "server_val_sig_skew_max", "server_cache_max_ttl",
+ "server_cache_max_negative_ttl", "server_cache_min_ttl",
+ "server_bogus_ttl", "server_val_clean_additional",
+ "server_val_permissive_mode", "server_ignore_cd_flag",
+ "server_serve_expired", "server_fake_dsa", "server_fake_sha1",
+ "server_val_log_level", "server_val_nsec3_keysize_iterations",
+ "server_add_holddown", "server_del_holddown", "server_keep_missing",
"server_permit_small_holddown", "server_key_cache_size",
"server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
"server_local_data", "server_local_data_ptr", "server_minimal_responses",
@@ -1074,18 +1096,21 @@ static const char *const yytname[] =
"server_ratelimit_slabs", "server_ratelimit_for_domain",
"server_ratelimit_below_domain", "server_ip_ratelimit_factor",
"server_ratelimit_factor", "server_qname_minimisation",
- "server_qname_minimisation_strict", "stub_name", "stub_host",
- "stub_addr", "stub_first", "stub_ssl_upstream", "stub_prime",
- "forward_name", "forward_host", "forward_addr", "forward_first",
- "forward_ssl_upstream", "view_name", "view_local_zone",
- "view_response_ip", "view_response_ip_data", "view_local_data",
- "view_local_data_ptr", "view_first", "rcstart", "contents_rc",
- "content_rc", "rc_control_enable", "rc_control_port",
- "rc_control_interface", "rc_control_use_cert", "rc_server_key_file",
- "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file",
- "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable",
- "dt_dnstap_socket_path", "dt_dnstap_send_identity",
- "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version",
+ "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_ssl_upstream", "stub_prime", "forward_name",
+ "forward_host", "forward_addr", "forward_first", "forward_ssl_upstream",
+ "view_name", "view_local_zone", "view_response_ip",
+ "view_response_ip_data", "view_local_data", "view_local_data_ptr",
+ "view_first", "rcstart", "contents_rc", "content_rc",
+ "rc_control_enable", "rc_control_port", "rc_control_interface",
+ "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file",
+ "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt",
+ "content_dt", "dt_dnstap_enable", "dt_dnstap_socket_path",
+ "dt_dnstap_send_identity", "dt_dnstap_send_version",
+ "dt_dnstap_identity", "dt_dnstap_version",
"dt_dnstap_log_resolver_query_messages",
"dt_dnstap_log_resolver_response_messages",
"dt_dnstap_log_client_query_messages",
@@ -1126,14 +1151,15 @@ static const yytype_uint16 yytoknum[] =
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 458, 459, 460, 461, 462
+ 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470
};
# endif
-#define YYPACT_NINF -162
+#define YYPACT_NINF -200
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-162)))
+ (!!((Yystate) == (-200)))
#define YYTABLE_NINF -1
@@ -1144,71 +1170,73 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -162, 0, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- 191, -38, -34, -39, -64, -130, -105, -161, -3, -2,
- -1, 2, 3, 26, 29, 30, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 53, 54, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 82, 83, 84,
- 86, 89, 91, 92, 93, 94, 95, 96, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 136, 137, 138, 139, 140, 141, 142,
- 143, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 221, 222, 223, 224,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, 228, 229, 230, 272, 273, 274, -162,
- -162, -162, -162, -162, -162, -162, 275, 276, 277, 278,
- 279, -162, -162, -162, -162, -162, -162, 280, 284, 288,
- 289, 313, 314, 315, -162, -162, -162, -162, -162, -162,
- -162, -162, 316, 326, 327, 328, 329, 330, 331, 332,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, 333,
- 334, 335, 336, 337, 338, 372, 374, 383, 384, 385,
- 386, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, 387, -162, -162, 388, 389, 390,
- 391, 392, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, 393, 394, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, 395, 396,
- 397, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- 398, 399, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, 400, 401, 402, 403,
- 404, 405, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, 406, -162, -162, 407, 408, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, 409, 410, 411, -162, -162, -162, -162,
- -162, -162, -162
+ -200, 0, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ 96, -39, -35, 248, -65, -131, -106, -199, 2, 25,
+ 26, 27, 28, 29, 30, 32, 33, 34, 35, 36,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 82, 83, 85, 88, 90, 91, 92, 93,
+ 94, 95, 126, 127, 128, 129, 133, 134, 177, 178,
+ 179, 180, 181, 183, 184, 185, 189, 193, 218, 219,
+ 220, 221, 231, 232, 233, 234, 235, 236, 237, 238,
+ 239, 240, 241, 242, 243, 280, 290, 291, 292, 293,
+ 294, 295, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 316, 317, 318, 319, 320, 321,
+ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, 335, 336, 337, 338, 340, 341, 342,
+ 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, 358, 359, 360, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, 361,
+ 362, 363, 364, 365, 366, -200, -200, -200, -200, -200,
+ -200, -200, 367, 368, 369, 370, 371, -200, -200, -200,
+ -200, -200, -200, 372, 373, 374, 375, 376, 377, 378,
+ -200, -200, -200, -200, -200, -200, -200, -200, 379, 380,
+ 381, 382, 383, 384, 385, 386, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, 387, 388, 389, 390, 391,
+ 392, 393, 394, 395, 396, 399, 400, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ 401, -200, -200, 402, 403, 404, 405, 406, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ 407, 408, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, 409, 410, 411, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, 412, 413, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, 414, 415, 416, 417, 418, 419, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, 420, -200, -200, 421,
+ 422, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, 423, 424, 425,
+ -200, -200, -200, -200, -200, -200, -200
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1216,8 +1244,8 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 2, 0, 1, 12, 167, 176, 360, 406, 379, 184,
- 415, 3, 14, 169, 178, 186, 362, 381, 408, 417,
+ 2, 0, 1, 12, 175, 184, 376, 422, 395, 192,
+ 431, 3, 14, 177, 186, 194, 378, 397, 424, 433,
4, 5, 6, 10, 8, 9, 7, 11, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1234,109 +1262,113 @@ static const yytype_uint16 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,
- 13, 15, 16, 75, 78, 87, 163, 164, 17, 137,
- 138, 139, 140, 141, 26, 66, 18, 79, 80, 37,
- 59, 74, 19, 20, 22, 23, 21, 24, 25, 110,
- 111, 112, 113, 114, 159, 76, 65, 91, 108, 109,
- 27, 28, 29, 30, 31, 67, 81, 82, 97, 53,
- 63, 54, 92, 47, 48, 166, 49, 50, 101, 105,
- 118, 126, 146, 102, 60, 32, 33, 34, 89, 119,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 15,
+ 16, 75, 78, 87, 164, 165, 17, 137, 138, 139,
+ 140, 141, 142, 26, 66, 18, 79, 80, 37, 59,
+ 74, 19, 20, 22, 23, 21, 24, 25, 110, 111,
+ 112, 113, 114, 160, 76, 65, 91, 108, 109, 27,
+ 28, 29, 30, 31, 67, 81, 82, 97, 53, 63,
+ 54, 168, 92, 47, 48, 167, 49, 50, 101, 105,
+ 118, 126, 147, 102, 60, 32, 33, 34, 89, 119,
120, 121, 35, 36, 38, 39, 41, 42, 40, 124,
- 43, 44, 45, 51, 70, 106, 84, 125, 77, 142,
+ 43, 44, 45, 51, 70, 106, 84, 125, 77, 143,
85, 86, 103, 104, 90, 46, 68, 71, 52, 55,
- 93, 94, 69, 143, 95, 56, 57, 58, 107, 156,
- 157, 165, 96, 64, 98, 99, 100, 144, 61, 62,
- 83, 72, 73, 88, 115, 116, 117, 122, 123, 147,
- 148, 150, 152, 153, 151, 154, 160, 127, 128, 131,
- 132, 129, 130, 133, 134, 136, 135, 145, 155, 149,
- 158, 161, 162, 0, 0, 0, 0, 0, 0, 168,
- 170, 171, 172, 174, 175, 173, 0, 0, 0, 0,
- 0, 177, 179, 180, 181, 182, 183, 0, 0, 0,
- 0, 0, 0, 0, 185, 187, 188, 191, 192, 189,
- 193, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 361, 363, 365, 364, 370, 366, 367, 368, 369, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 380, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, 392, 393, 0, 407, 409, 0, 0, 0,
- 0, 0, 416, 418, 419, 420, 422, 421, 195, 194,
- 201, 209, 207, 215, 216, 219, 217, 218, 220, 221,
- 233, 234, 235, 236, 237, 258, 259, 260, 265, 266,
- 212, 267, 268, 271, 269, 270, 273, 274, 275, 288,
- 246, 247, 249, 250, 276, 291, 242, 244, 292, 298,
- 299, 300, 213, 257, 311, 312, 243, 306, 229, 208,
- 238, 289, 295, 277, 0, 0, 315, 214, 196, 228,
- 281, 197, 210, 211, 239, 240, 313, 279, 283, 284,
- 198, 316, 261, 287, 230, 245, 293, 294, 297, 305,
- 241, 309, 307, 308, 251, 256, 285, 286, 252, 253,
- 278, 301, 231, 232, 222, 223, 224, 225, 226, 317,
- 318, 319, 262, 263, 264, 272, 320, 321, 0, 0,
- 0, 280, 254, 411, 330, 334, 332, 331, 335, 333,
- 0, 0, 338, 339, 202, 203, 204, 205, 206, 282,
- 296, 310, 340, 341, 255, 322, 0, 0, 0, 0,
- 0, 0, 302, 303, 304, 412, 248, 227, 199, 200,
- 342, 343, 344, 347, 346, 345, 348, 349, 350, 351,
- 352, 353, 0, 357, 358, 0, 0, 359, 371, 373,
- 372, 375, 376, 377, 378, 374, 394, 395, 396, 397,
- 398, 399, 400, 401, 402, 403, 404, 405, 410, 423,
- 424, 425, 427, 426, 290, 314, 329, 413, 414, 336,
- 337, 323, 324, 0, 0, 0, 328, 354, 355, 356,
- 327, 325, 326
+ 93, 94, 69, 144, 95, 56, 57, 58, 107, 157,
+ 158, 166, 96, 64, 98, 99, 100, 145, 61, 62,
+ 83, 72, 73, 88, 115, 116, 117, 122, 123, 148,
+ 149, 151, 153, 154, 152, 155, 161, 127, 128, 131,
+ 132, 129, 130, 133, 134, 136, 135, 146, 156, 169,
+ 171, 170, 172, 173, 174, 150, 159, 162, 163, 0,
+ 0, 0, 0, 0, 0, 176, 178, 179, 180, 182,
+ 183, 181, 0, 0, 0, 0, 0, 185, 187, 188,
+ 189, 190, 191, 0, 0, 0, 0, 0, 0, 0,
+ 193, 195, 196, 199, 200, 197, 201, 198, 0, 0,
+ 0, 0, 0, 0, 0, 0, 377, 379, 381, 380,
+ 386, 382, 383, 384, 385, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 396, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ 0, 423, 425, 0, 0, 0, 0, 0, 432, 434,
+ 435, 436, 438, 437, 203, 202, 209, 218, 216, 224,
+ 225, 228, 226, 227, 229, 230, 242, 243, 244, 245,
+ 246, 268, 269, 270, 275, 276, 221, 277, 278, 281,
+ 279, 280, 283, 284, 285, 298, 256, 257, 259, 260,
+ 286, 301, 251, 253, 302, 308, 309, 310, 222, 267,
+ 321, 322, 252, 316, 238, 217, 247, 299, 305, 287,
+ 0, 0, 325, 223, 204, 237, 291, 205, 219, 220,
+ 248, 249, 323, 289, 293, 294, 206, 326, 271, 297,
+ 239, 255, 303, 304, 307, 315, 250, 319, 317, 318,
+ 261, 266, 295, 296, 262, 263, 288, 311, 240, 241,
+ 231, 232, 233, 234, 235, 327, 328, 329, 272, 273,
+ 274, 282, 330, 331, 0, 0, 0, 290, 264, 427,
+ 340, 344, 342, 341, 345, 343, 0, 0, 348, 349,
+ 210, 211, 212, 213, 214, 215, 292, 306, 320, 350,
+ 351, 265, 332, 0, 0, 0, 0, 0, 0, 312,
+ 313, 314, 428, 258, 254, 236, 207, 208, 352, 354,
+ 353, 355, 356, 357, 358, 359, 360, 363, 362, 361,
+ 364, 365, 366, 367, 368, 369, 0, 373, 374, 0,
+ 0, 375, 387, 389, 388, 391, 392, 393, 394, 390,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 426, 439, 440, 441, 443, 442, 300, 324,
+ 339, 429, 430, 346, 347, 333, 334, 0, 0, 0,
+ 338, 370, 371, 372, 337, 335, 336
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162, -162, -162, -162, -162, -162, -162, -162,
- -162, -162, -162
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200, -200, -200, -200, -200, -200, -200, -200, -200, -200,
+ -200
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 11, 12, 20, 180, 13, 21, 339, 14,
- 22, 351, 15, 23, 364, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
- 236, 237, 238, 239, 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, 340, 341, 342, 343, 344, 345, 352,
- 353, 354, 355, 356, 365, 366, 367, 368, 369, 370,
- 371, 16, 24, 380, 381, 382, 383, 384, 385, 386,
- 387, 388, 17, 25, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 18, 26, 415,
- 416, 329, 330, 331, 332, 19, 27, 422, 423, 424,
- 425, 426, 427
+ -1, 1, 11, 12, 20, 188, 13, 21, 355, 14,
+ 22, 367, 15, 23, 380, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
+ 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 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, 356, 357, 358, 359, 360, 361, 368, 369, 370,
+ 371, 372, 381, 382, 383, 384, 385, 386, 387, 16,
+ 24, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 17, 25, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 18, 26, 431, 432, 345,
+ 346, 347, 348, 19, 27, 438, 439, 440, 441, 442,
+ 443
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1344,105 +1376,109 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint16 yytable[] =
{
- 2, 357, 333, 414, 334, 335, 346, 428, 429, 430,
- 0, 3, 431, 432, 347, 348, 389, 390, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 372, 373,
- 374, 375, 376, 377, 378, 379, 433, 358, 359, 434,
- 435, 4, 417, 418, 419, 420, 421, 5, 436, 437,
- 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
- 448, 449, 360, 450, 451, 336, 452, 453, 454, 455,
- 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
- 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
- 476, 6, 477, 478, 479, 337, 480, 338, 349, 481,
- 350, 482, 483, 484, 485, 486, 487, 7, 488, 489,
- 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
- 361, 362, 500, 501, 502, 503, 504, 505, 506, 507,
- 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
- 518, 519, 520, 521, 522, 8, 523, 524, 525, 526,
- 527, 528, 529, 530, 363, 531, 532, 533, 534, 535,
- 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
- 546, 547, 548, 549, 550, 551, 552, 553, 554, 555,
- 556, 557, 558, 559, 560, 561, 562, 563, 564, 565,
- 566, 9, 567, 568, 569, 570, 571, 572, 573, 574,
- 575, 0, 10, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 576, 577, 578, 579, 56, 57, 58, 580, 581,
- 582, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 583, 584, 585, 586, 587, 588, 589, 590,
- 591, 100, 101, 102, 592, 103, 104, 105, 593, 594,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 595, 596, 597, 598, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 599, 600, 601, 602,
- 603, 604, 605, 606, 607, 608, 609, 610, 611, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 612, 171, 613, 172, 173, 174, 175, 176,
- 177, 178, 179, 614, 615, 616, 617, 618, 619, 620,
- 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
- 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
- 641, 642
+ 2, 349, 430, 350, 351, 362, 433, 434, 435, 436,
+ 437, 3, 444, 363, 364, 405, 406, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 388, 389, 390,
+ 391, 392, 393, 394, 395, 445, 446, 447, 448, 449,
+ 450, 4, 451, 452, 453, 454, 455, 5, 456, 457,
+ 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 352, 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, 6, 498, 499, 353, 500, 354, 365, 501, 366,
+ 502, 503, 504, 505, 506, 507, 0, 7, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 508, 509, 510, 511,
+ 56, 57, 58, 512, 513, 8, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 514, 515, 516,
+ 517, 518, 9, 519, 520, 521, 100, 101, 102, 522,
+ 103, 104, 105, 523, 10, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 524, 525,
+ 526, 527, 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 528, 529, 530, 531, 532, 533, 534, 535, 536,
+ 537, 538, 539, 540, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 373, 172,
+ 541, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 542, 543, 544, 545, 546, 547, 182, 183, 184, 185,
+ 186, 187, 548, 549, 550, 551, 552, 553, 554, 555,
+ 556, 557, 558, 559, 374, 375, 560, 561, 562, 563,
+ 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
+ 574, 575, 576, 577, 578, 579, 580, 581, 582, 376,
+ 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
+ 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, 610, 611, 612,
+ 613, 614, 615, 616, 617, 618, 619, 620, 621, 622,
+ 623, 624, 625, 626, 627, 628, 629, 630, 631, 632,
+ 633, 634, 635, 636, 637, 638, 639, 377, 378, 640,
+ 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
+ 651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
+ 661, 662, 663, 664, 665, 666, 0, 0, 0, 0,
+ 0, 0, 379
};
static const yytype_int16 yycheck[] =
{
- 0, 40, 40, 108, 42, 43, 40, 10, 10, 10,
- -1, 11, 10, 10, 48, 49, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 92, 93,
- 94, 95, 96, 97, 98, 99, 10, 76, 77, 10,
- 10, 41, 203, 204, 205, 206, 207, 47, 10, 10,
+ 0, 40, 108, 42, 43, 40, 205, 206, 207, 208,
+ 209, 11, 10, 48, 49, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 92, 93, 94,
+ 95, 96, 97, 98, 99, 10, 10, 10, 10, 10,
+ 10, 41, 10, 10, 10, 10, 10, 47, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 101, 10, 10, 103, 10, 10, 10, 10,
+ 10, 10, 10, 10, 103, 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, 91, 10, 10, 10, 133, 10, 135, 132, 10,
- 134, 10, 10, 10, 10, 10, 10, 107, 10, 10,
+ 10, 91, 10, 10, 133, 10, 135, 132, 10, 134,
+ 10, 10, 10, 10, 10, 10, -1, 107, 12, 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, 10, 10, 10, 10,
+ 44, 45, 46, 10, 10, 145, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 10, 10, 10,
+ 10, 10, 192, 10, 10, 10, 100, 101, 102, 10,
+ 104, 105, 106, 10, 204, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 10, 10,
+ 10, 10, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 40, 193,
+ 10, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 10, 10, 10, 10, 10, 10, 210, 211, 212, 213,
+ 214, 215, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 76, 77, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 159, 160, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 101,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 145, 10, 10, 10, 10,
- 10, 10, 10, 10, 193, 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, 191, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, -1, 202, 12, 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, 10, 10, 10, 10, 44, 45, 46, 10, 10,
- 10, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 100, 101, 102, 10, 104, 105, 106, 10, 10,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 10, 10, 10, 10, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 10, 192, 10, 194, 195, 196, 197, 198,
- 199, 200, 201, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 159, 160, 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, -1, -1, -1, -1,
+ -1, -1, 194
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 209, 0, 11, 41, 47, 91, 107, 145, 191,
- 202, 210, 211, 214, 217, 220, 389, 400, 415, 423,
- 212, 215, 218, 221, 390, 401, 416, 424, 12, 13,
+ 0, 217, 0, 11, 41, 47, 91, 107, 145, 192,
+ 204, 218, 219, 222, 225, 228, 405, 416, 431, 439,
+ 220, 223, 226, 229, 406, 417, 432, 440, 12, 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, 44, 45, 46, 50,
@@ -1457,8 +1493,8 @@ static const yytype_uint16 yystos[] =
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 192, 194, 195, 196, 197, 198, 199, 200, 201,
- 213, 223, 224, 225, 226, 227, 228, 229, 230, 231,
+ 190, 191, 193, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 210, 211, 212, 213, 214, 215, 221, 231,
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
@@ -1472,17 +1508,19 @@ static const yytype_uint16 yystos[] =
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, 419,
- 420, 421, 422, 40, 42, 43, 103, 133, 135, 216,
- 371, 372, 373, 374, 375, 376, 40, 48, 49, 132,
- 134, 219, 377, 378, 379, 380, 381, 40, 76, 77,
- 101, 159, 160, 193, 222, 382, 383, 384, 385, 386,
- 387, 388, 92, 93, 94, 95, 96, 97, 98, 99,
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, 108, 417, 418, 203, 204, 205,
- 206, 207, 425, 426, 427, 428, 429, 430, 10, 10,
+ 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, 435, 436, 437, 438, 40,
+ 42, 43, 103, 133, 135, 224, 387, 388, 389, 390,
+ 391, 392, 40, 48, 49, 132, 134, 227, 393, 394,
+ 395, 396, 397, 40, 76, 77, 101, 159, 160, 194,
+ 230, 398, 399, 400, 401, 402, 403, 404, 92, 93,
+ 94, 95, 96, 97, 98, 99, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 418, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
+ 108, 433, 434, 205, 206, 207, 208, 209, 441, 442,
+ 443, 444, 445, 446, 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,
@@ -1504,33 +1542,33 @@ static const yytype_uint16 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
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 208, 209, 209, 210, 210, 210, 210, 210, 210,
- 210, 210, 211, 212, 212, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 214, 215, 215,
- 216, 216, 216, 216, 216, 216, 217, 218, 218, 219,
- 219, 219, 219, 219, 220, 221, 221, 222, 222, 222,
- 222, 222, 222, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
+ 0, 216, 217, 217, 218, 218, 218, 218, 218, 218,
+ 218, 218, 219, 220, 220, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 222, 223, 223, 224, 224,
+ 224, 224, 224, 224, 225, 226, 226, 227, 227, 227,
+ 227, 227, 228, 229, 229, 230, 230, 230, 230, 230,
+ 230, 230, 231, 232, 233, 234, 235, 236, 237, 238,
239, 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,
@@ -1546,13 +1584,15 @@ static const yytype_uint16 yyr1[] =
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, 390, 391, 391, 391, 391, 391, 391, 391,
- 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 401, 402, 402, 402, 402, 402, 402, 402, 402,
- 402, 402, 402, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 412, 413, 414, 415, 416, 416, 417,
- 418, 419, 420, 421, 422, 423, 424, 424, 425, 425,
- 425, 425, 425, 426, 427, 428, 429, 430
+ 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
+ 399, 400, 401, 402, 403, 404, 405, 406, 406, 407,
+ 407, 407, 407, 407, 407, 407, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 417, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 429, 430, 431, 432, 432, 433, 434, 435, 436, 437,
+ 438, 439, 440, 440, 441, 441, 441, 441, 441, 442,
+ 443, 444, 445, 446
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1574,10 +1614,11 @@ static const yytype_uint8 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, 2, 0, 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, 2, 0, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1593,14 +1634,15 @@ static const yytype_uint8 yyr2[] =
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, 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, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 0, 1,
- 2, 2, 2, 3, 3, 1, 2, 0, 1, 1,
- 1, 1, 1, 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, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 1, 2, 0, 1, 2, 2, 2, 3,
+ 3, 1, 2, 0, 1, 1, 1, 1, 1, 2,
+ 2, 2, 2, 2
};
@@ -2277,15 +2319,15 @@ yyreduce:
switch (yyn)
{
case 12:
-#line 159 "util/configparser.y" /* yacc.c:1646 */
+#line 161 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(server:)\n"));
}
-#line 2285 "util/configparser.c" /* yacc.c:1646 */
+#line 2327 "util/configparser.c" /* yacc.c:1646 */
break;
- case 167:
-#line 234 "util/configparser.y" /* yacc.c:1646 */
+ case 175:
+#line 239 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
@@ -2296,11 +2338,11 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2300 "util/configparser.c" /* yacc.c:1646 */
+#line 2342 "util/configparser.c" /* yacc.c:1646 */
break;
- case 176:
-#line 251 "util/configparser.y" /* yacc.c:1646 */
+ case 184:
+#line 256 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
@@ -2311,11 +2353,11 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2315 "util/configparser.c" /* yacc.c:1646 */
+#line 2357 "util/configparser.c" /* yacc.c:1646 */
break;
- case 184:
-#line 268 "util/configparser.y" /* yacc.c:1646 */
+ case 192:
+#line 273 "util/configparser.y" /* yacc.c:1646 */
{
struct config_view* s;
OUTYY(("\nP(view:)\n"));
@@ -2328,11 +2370,11 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2332 "util/configparser.c" /* yacc.c:1646 */
+#line 2374 "util/configparser.c" /* yacc.c:1646 */
break;
- case 194:
-#line 287 "util/configparser.y" /* yacc.c:1646 */
+ case 202:
+#line 292 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2340,11 +2382,11 @@ yyreduce:
else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2344 "util/configparser.c" /* yacc.c:1646 */
+#line 2386 "util/configparser.c" /* yacc.c:1646 */
break;
- case 195:
-#line 296 "util/configparser.y" /* yacc.c:1646 */
+ case 203:
+#line 301 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2352,11 +2394,11 @@ yyreduce:
else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2356 "util/configparser.c" /* yacc.c:1646 */
+#line 2398 "util/configparser.c" /* yacc.c:1646 */
break;
- case 196:
-#line 305 "util/configparser.y" /* yacc.c:1646 */
+ case 204:
+#line 310 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2366,11 +2408,11 @@ yyreduce:
else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2370 "util/configparser.c" /* yacc.c:1646 */
+#line 2412 "util/configparser.c" /* yacc.c:1646 */
break;
- case 197:
-#line 316 "util/configparser.y" /* yacc.c:1646 */
+ case 205:
+#line 321 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2378,11 +2420,11 @@ yyreduce:
else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2382 "util/configparser.c" /* yacc.c:1646 */
+#line 2424 "util/configparser.c" /* yacc.c:1646 */
break;
- case 198:
-#line 325 "util/configparser.y" /* yacc.c:1646 */
+ case 206:
+#line 330 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2390,11 +2432,11 @@ yyreduce:
else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2394 "util/configparser.c" /* yacc.c:1646 */
+#line 2436 "util/configparser.c" /* yacc.c:1646 */
break;
- case 199:
-#line 334 "util/configparser.y" /* yacc.c:1646 */
+ case 207:
+#line 339 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2402,11 +2444,11 @@ yyreduce:
else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2406 "util/configparser.c" /* yacc.c:1646 */
+#line 2448 "util/configparser.c" /* yacc.c:1646 */
break;
- case 200:
-#line 343 "util/configparser.y" /* yacc.c:1646 */
+ case 208:
+#line 348 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2416,11 +2458,11 @@ yyreduce:
else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2420 "util/configparser.c" /* yacc.c:1646 */
+#line 2462 "util/configparser.c" /* yacc.c:1646 */
break;
- case 201:
-#line 354 "util/configparser.y" /* yacc.c:1646 */
+ case 209:
+#line 359 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2428,11 +2470,11 @@ yyreduce:
else cfg_parser->cfg->port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2432 "util/configparser.c" /* yacc.c:1646 */
+#line 2474 "util/configparser.c" /* yacc.c:1646 */
break;
- case 202:
-#line 363 "util/configparser.y" /* yacc.c:1646 */
+ case 210:
+#line 368 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
@@ -2442,11 +2484,26 @@ yyreduce:
OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
#endif
}
-#line 2446 "util/configparser.c" /* yacc.c:1646 */
+#line 2488 "util/configparser.c" /* yacc.c:1646 */
break;
- case 203:
-#line 375 "util/configparser.y" /* yacc.c:1646 */
+ case 211:
+#line 379 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef CLIENT_SUBNET
+ OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
+ (yyvsp[0].str)))
+ fatal_exit("out of memory adding client-subnet-zone");
+ #else
+ OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
+ #endif
+ }
+#line 2503 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 212:
+#line 392 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
@@ -2460,11 +2517,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2464 "util/configparser.c" /* yacc.c:1646 */
+#line 2521 "util/configparser.c" /* yacc.c:1646 */
break;
- case 204:
-#line 390 "util/configparser.y" /* yacc.c:1646 */
+ case 213:
+#line 407 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
@@ -2474,11 +2531,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2478 "util/configparser.c" /* yacc.c:1646 */
+#line 2535 "util/configparser.c" /* yacc.c:1646 */
break;
- case 205:
-#line 401 "util/configparser.y" /* yacc.c:1646 */
+ case 214:
+#line 418 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
@@ -2494,11 +2551,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2498 "util/configparser.c" /* yacc.c:1646 */
+#line 2555 "util/configparser.c" /* yacc.c:1646 */
break;
- case 206:
-#line 418 "util/configparser.y" /* yacc.c:1646 */
+ case 215:
+#line 435 "util/configparser.y" /* yacc.c:1646 */
{
#ifdef CLIENT_SUBNET
OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
@@ -2514,11 +2571,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2518 "util/configparser.c" /* yacc.c:1646 */
+#line 2575 "util/configparser.c" /* yacc.c:1646 */
break;
- case 207:
-#line 435 "util/configparser.y" /* yacc.c:1646 */
+ case 216:
+#line 452 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_ifs == 0)
@@ -2530,11 +2587,11 @@ yyreduce:
else
cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
}
-#line 2534 "util/configparser.c" /* yacc.c:1646 */
+#line 2591 "util/configparser.c" /* yacc.c:1646 */
break;
- case 208:
-#line 448 "util/configparser.y" /* yacc.c:1646 */
+ case 217:
+#line 465 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2548,11 +2605,11 @@ yyreduce:
cfg_parser->cfg->out_ifs[
cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
}
-#line 2552 "util/configparser.c" /* yacc.c:1646 */
+#line 2609 "util/configparser.c" /* yacc.c:1646 */
break;
- case 209:
-#line 463 "util/configparser.y" /* yacc.c:1646 */
+ case 218:
+#line 480 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2560,11 +2617,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2564 "util/configparser.c" /* yacc.c:1646 */
+#line 2621 "util/configparser.c" /* yacc.c:1646 */
break;
- case 210:
-#line 472 "util/configparser.y" /* yacc.c:1646 */
+ case 219:
+#line 489 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 1,
@@ -2572,11 +2629,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2576 "util/configparser.c" /* yacc.c:1646 */
+#line 2633 "util/configparser.c" /* yacc.c:1646 */
break;
- case 211:
-#line 481 "util/configparser.y" /* yacc.c:1646 */
+ case 220:
+#line 498 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 0,
@@ -2584,11 +2641,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2588 "util/configparser.c" /* yacc.c:1646 */
+#line 2645 "util/configparser.c" /* yacc.c:1646 */
break;
- case 212:
-#line 490 "util/configparser.y" /* yacc.c:1646 */
+ case 221:
+#line 507 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2596,11 +2653,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2600 "util/configparser.c" /* yacc.c:1646 */
+#line 2657 "util/configparser.c" /* yacc.c:1646 */
break;
- case 213:
-#line 499 "util/configparser.y" /* yacc.c:1646 */
+ case 222:
+#line 516 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2608,11 +2665,11 @@ yyreduce:
else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2612 "util/configparser.c" /* yacc.c:1646 */
+#line 2669 "util/configparser.c" /* yacc.c:1646 */
break;
- case 214:
-#line 508 "util/configparser.y" /* yacc.c:1646 */
+ case 223:
+#line 525 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2620,11 +2677,11 @@ yyreduce:
else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2624 "util/configparser.c" /* yacc.c:1646 */
+#line 2681 "util/configparser.c" /* yacc.c:1646 */
break;
- case 215:
-#line 517 "util/configparser.y" /* yacc.c:1646 */
+ case 224:
+#line 534 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2632,11 +2689,11 @@ yyreduce:
else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2636 "util/configparser.c" /* yacc.c:1646 */
+#line 2693 "util/configparser.c" /* yacc.c:1646 */
break;
- case 216:
-#line 526 "util/configparser.y" /* yacc.c:1646 */
+ case 225:
+#line 543 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2644,11 +2701,11 @@ yyreduce:
else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2648 "util/configparser.c" /* yacc.c:1646 */
+#line 2705 "util/configparser.c" /* yacc.c:1646 */
break;
- case 217:
-#line 535 "util/configparser.y" /* yacc.c:1646 */
+ case 226:
+#line 552 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2656,11 +2713,11 @@ yyreduce:
else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2660 "util/configparser.c" /* yacc.c:1646 */
+#line 2717 "util/configparser.c" /* yacc.c:1646 */
break;
- case 218:
-#line 544 "util/configparser.y" /* yacc.c:1646 */
+ case 227:
+#line 561 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2668,11 +2725,11 @@ yyreduce:
else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2672 "util/configparser.c" /* yacc.c:1646 */
+#line 2729 "util/configparser.c" /* yacc.c:1646 */
break;
- case 219:
-#line 553 "util/configparser.y" /* yacc.c:1646 */
+ case 228:
+#line 570 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2680,11 +2737,11 @@ yyreduce:
else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2684 "util/configparser.c" /* yacc.c:1646 */
+#line 2741 "util/configparser.c" /* yacc.c:1646 */
break;
- case 220:
-#line 562 "util/configparser.y" /* yacc.c:1646 */
+ case 229:
+#line 579 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2692,11 +2749,11 @@ yyreduce:
else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2696 "util/configparser.c" /* yacc.c:1646 */
+#line 2753 "util/configparser.c" /* yacc.c:1646 */
break;
- case 221:
-#line 571 "util/configparser.y" /* yacc.c:1646 */
+ case 230:
+#line 588 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2704,11 +2761,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2708 "util/configparser.c" /* yacc.c:1646 */
+#line 2765 "util/configparser.c" /* yacc.c:1646 */
break;
- case 222:
-#line 580 "util/configparser.y" /* yacc.c:1646 */
+ case 231:
+#line 597 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2716,11 +2773,11 @@ yyreduce:
else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2720 "util/configparser.c" /* yacc.c:1646 */
+#line 2777 "util/configparser.c" /* yacc.c:1646 */
break;
- case 223:
-#line 589 "util/configparser.y" /* yacc.c:1646 */
+ case 232:
+#line 606 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2728,31 +2785,31 @@ yyreduce:
else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2732 "util/configparser.c" /* yacc.c:1646 */
+#line 2789 "util/configparser.c" /* yacc.c:1646 */
break;
- case 224:
-#line 598 "util/configparser.y" /* yacc.c:1646 */
+ case 233:
+#line 615 "util/configparser.y" /* yacc.c:1646 */
{
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 2742 "util/configparser.c" /* yacc.c:1646 */
+#line 2799 "util/configparser.c" /* yacc.c:1646 */
break;
- case 225:
-#line 605 "util/configparser.y" /* yacc.c:1646 */
+ case 234:
+#line 622 "util/configparser.y" /* yacc.c:1646 */
{
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 2752 "util/configparser.c" /* yacc.c:1646 */
+#line 2809 "util/configparser.c" /* yacc.c:1646 */
break;
- case 226:
-#line 612 "util/configparser.y" /* yacc.c:1646 */
+ case 235:
+#line 629 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2760,11 +2817,11 @@ yyreduce:
else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2764 "util/configparser.c" /* yacc.c:1646 */
+#line 2821 "util/configparser.c" /* yacc.c:1646 */
break;
- case 227:
-#line 621 "util/configparser.y" /* yacc.c:1646 */
+ case 236:
+#line 638 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2772,11 +2829,11 @@ yyreduce:
else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2776 "util/configparser.c" /* yacc.c:1646 */
+#line 2833 "util/configparser.c" /* yacc.c:1646 */
break;
- case 228:
-#line 630 "util/configparser.y" /* yacc.c:1646 */
+ case 237:
+#line 647 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2784,11 +2841,11 @@ yyreduce:
else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2788 "util/configparser.c" /* yacc.c:1646 */
+#line 2845 "util/configparser.c" /* yacc.c:1646 */
break;
- case 229:
-#line 639 "util/configparser.y" /* yacc.c:1646 */
+ case 238:
+#line 656 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2801,11 +2858,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2805 "util/configparser.c" /* yacc.c:1646 */
+#line 2862 "util/configparser.c" /* yacc.c:1646 */
break;
- case 230:
-#line 653 "util/configparser.y" /* yacc.c:1646 */
+ case 239:
+#line 670 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2813,11 +2870,11 @@ yyreduce:
else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2817 "util/configparser.c" /* yacc.c:1646 */
+#line 2874 "util/configparser.c" /* yacc.c:1646 */
break;
- case 231:
-#line 662 "util/configparser.y" /* yacc.c:1646 */
+ case 240:
+#line 679 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2825,11 +2882,11 @@ yyreduce:
else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2829 "util/configparser.c" /* yacc.c:1646 */
+#line 2886 "util/configparser.c" /* yacc.c:1646 */
break;
- case 232:
-#line 671 "util/configparser.y" /* yacc.c:1646 */
+ case 241:
+#line 688 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2837,31 +2894,31 @@ yyreduce:
else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2841 "util/configparser.c" /* yacc.c:1646 */
+#line 2898 "util/configparser.c" /* yacc.c:1646 */
break;
- case 233:
-#line 680 "util/configparser.y" /* yacc.c:1646 */
+ case 242:
+#line 697 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->chrootdir);
cfg_parser->cfg->chrootdir = (yyvsp[0].str);
}
-#line 2851 "util/configparser.c" /* yacc.c:1646 */
+#line 2908 "util/configparser.c" /* yacc.c:1646 */
break;
- case 234:
-#line 687 "util/configparser.y" /* yacc.c:1646 */
+ case 243:
+#line 704 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->username);
cfg_parser->cfg->username = (yyvsp[0].str);
}
-#line 2861 "util/configparser.c" /* yacc.c:1646 */
+#line 2918 "util/configparser.c" /* yacc.c:1646 */
break;
- case 235:
-#line 694 "util/configparser.y" /* yacc.c:1646 */
+ case 244:
+#line 711 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->directory);
@@ -2886,115 +2943,129 @@ yyreduce:
}
}
}
-#line 2890 "util/configparser.c" /* yacc.c:1646 */
+#line 2947 "util/configparser.c" /* yacc.c:1646 */
break;
- case 236:
-#line 720 "util/configparser.y" /* yacc.c:1646 */
+ case 245:
+#line 737 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->logfile);
cfg_parser->cfg->logfile = (yyvsp[0].str);
cfg_parser->cfg->use_syslog = 0;
}
-#line 2901 "util/configparser.c" /* yacc.c:1646 */
+#line 2958 "util/configparser.c" /* yacc.c:1646 */
break;
- case 237:
-#line 728 "util/configparser.y" /* yacc.c:1646 */
+ case 246:
+#line 745 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->pidfile);
cfg_parser->cfg->pidfile = (yyvsp[0].str);
}
-#line 2911 "util/configparser.c" /* yacc.c:1646 */
+#line 2968 "util/configparser.c" /* yacc.c:1646 */
break;
- case 238:
-#line 735 "util/configparser.y" /* yacc.c:1646 */
+ case 247:
+#line 752 "util/configparser.y" /* yacc.c:1646 */
{
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 2921 "util/configparser.c" /* yacc.c:1646 */
+#line 2978 "util/configparser.c" /* yacc.c:1646 */
break;
- case 239:
-#line 742 "util/configparser.y" /* yacc.c:1646 */
+ case 248:
+#line 759 "util/configparser.y" /* yacc.c:1646 */
{
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 2931 "util/configparser.c" /* yacc.c:1646 */
+#line 2988 "util/configparser.c" /* yacc.c:1646 */
break;
- case 240:
-#line 749 "util/configparser.y" /* yacc.c:1646 */
+ case 249:
+#line 766 "util/configparser.y" /* yacc.c:1646 */
{
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 2941 "util/configparser.c" /* yacc.c:1646 */
+#line 2998 "util/configparser.c" /* yacc.c:1646 */
break;
- case 241:
-#line 756 "util/configparser.y" /* yacc.c:1646 */
+ case 250:
+#line 773 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
auto_trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 2952 "util/configparser.c" /* yacc.c:1646 */
+#line 3009 "util/configparser.c" /* yacc.c:1646 */
break;
- case 242:
-#line 764 "util/configparser.y" /* yacc.c:1646 */
+ case 251:
+#line 781 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trust_anchor_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 2963 "util/configparser.c" /* yacc.c:1646 */
+#line 3020 "util/configparser.c" /* yacc.c:1646 */
break;
- case 243:
-#line 772 "util/configparser.y" /* yacc.c:1646 */
+ case 252:
+#line 789 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->
trusted_keys_file_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 2974 "util/configparser.c" /* yacc.c:1646 */
+#line 3031 "util/configparser.c" /* yacc.c:1646 */
break;
- case 244:
-#line 780 "util/configparser.y" /* yacc.c:1646 */
+ case 253:
+#line 797 "util/configparser.y" /* yacc.c:1646 */
{
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 2984 "util/configparser.c" /* yacc.c:1646 */
+#line 3041 "util/configparser.c" /* yacc.c:1646 */
break;
- case 245:
-#line 787 "util/configparser.y" /* yacc.c:1646 */
+ case 254:
+#line 804 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else
+ cfg_parser->cfg->trust_anchor_signaling =
+ (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ }
+#line 3055 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 255:
+#line 815 "util/configparser.y" /* yacc.c:1646 */
{
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 2994 "util/configparser.c" /* yacc.c:1646 */
+#line 3065 "util/configparser.c" /* yacc.c:1646 */
break;
- case 246:
-#line 794 "util/configparser.y" /* yacc.c:1646 */
+ case 256:
+#line 822 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3002,11 +3073,11 @@ yyreduce:
else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3006 "util/configparser.c" /* yacc.c:1646 */
+#line 3077 "util/configparser.c" /* yacc.c:1646 */
break;
- case 247:
-#line 803 "util/configparser.y" /* yacc.c:1646 */
+ case 257:
+#line 831 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3014,11 +3085,11 @@ yyreduce:
else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3018 "util/configparser.c" /* yacc.c:1646 */
+#line 3089 "util/configparser.c" /* yacc.c:1646 */
break;
- case 248:
-#line 812 "util/configparser.y" /* yacc.c:1646 */
+ case 258:
+#line 840 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3026,53 +3097,53 @@ yyreduce:
else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3030 "util/configparser.c" /* yacc.c:1646 */
+#line 3101 "util/configparser.c" /* yacc.c:1646 */
break;
- case 249:
-#line 821 "util/configparser.y" /* yacc.c:1646 */
+ case 259:
+#line 849 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->identity);
cfg_parser->cfg->identity = (yyvsp[0].str);
}
-#line 3040 "util/configparser.c" /* yacc.c:1646 */
+#line 3111 "util/configparser.c" /* yacc.c:1646 */
break;
- case 250:
-#line 828 "util/configparser.y" /* yacc.c:1646 */
+ case 260:
+#line 856 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->version);
cfg_parser->cfg->version = (yyvsp[0].str);
}
-#line 3050 "util/configparser.c" /* yacc.c:1646 */
+#line 3121 "util/configparser.c" /* yacc.c:1646 */
break;
- case 251:
-#line 835 "util/configparser.y" /* yacc.c:1646 */
+ case 261:
+#line 863 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 3061 "util/configparser.c" /* yacc.c:1646 */
+#line 3132 "util/configparser.c" /* yacc.c:1646 */
break;
- case 252:
-#line 843 "util/configparser.y" /* yacc.c:1646 */
+ case 262:
+#line 871 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
yyerror("buffer size expected");
free((yyvsp[0].str));
}
-#line 3072 "util/configparser.c" /* yacc.c:1646 */
+#line 3143 "util/configparser.c" /* yacc.c:1646 */
break;
- case 253:
-#line 851 "util/configparser.y" /* yacc.c:1646 */
+ case 263:
+#line 879 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3081,11 +3152,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3085 "util/configparser.c" /* yacc.c:1646 */
+#line 3156 "util/configparser.c" /* yacc.c:1646 */
break;
- case 254:
-#line 861 "util/configparser.y" /* yacc.c:1646 */
+ case 264:
+#line 889 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3094,11 +3165,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3098 "util/configparser.c" /* yacc.c:1646 */
+#line 3169 "util/configparser.c" /* yacc.c:1646 */
break;
- case 255:
-#line 871 "util/configparser.y" /* yacc.c:1646 */
+ case 265:
+#line 899 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3107,11 +3178,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3111 "util/configparser.c" /* yacc.c:1646 */
+#line 3182 "util/configparser.c" /* yacc.c:1646 */
break;
- case 256:
-#line 881 "util/configparser.y" /* yacc.c:1646 */
+ case 266:
+#line 909 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3123,11 +3194,11 @@ yyreduce:
else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3127 "util/configparser.c" /* yacc.c:1646 */
+#line 3198 "util/configparser.c" /* yacc.c:1646 */
break;
- case 257:
-#line 894 "util/configparser.y" /* yacc.c:1646 */
+ case 267:
+#line 922 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3137,22 +3208,22 @@ yyreduce:
else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3141 "util/configparser.c" /* yacc.c:1646 */
+#line 3212 "util/configparser.c" /* yacc.c:1646 */
break;
- case 258:
-#line 905 "util/configparser.y" /* yacc.c:1646 */
+ case 268:
+#line 933 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3152 "util/configparser.c" /* yacc.c:1646 */
+#line 3223 "util/configparser.c" /* yacc.c:1646 */
break;
- case 259:
-#line 913 "util/configparser.y" /* yacc.c:1646 */
+ case 269:
+#line 941 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3164,11 +3235,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3168 "util/configparser.c" /* yacc.c:1646 */
+#line 3239 "util/configparser.c" /* yacc.c:1646 */
break;
- case 260:
-#line 926 "util/configparser.y" /* yacc.c:1646 */
+ case 270:
+#line 954 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3176,11 +3247,11 @@ yyreduce:
else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3180 "util/configparser.c" /* yacc.c:1646 */
+#line 3251 "util/configparser.c" /* yacc.c:1646 */
break;
- case 261:
-#line 935 "util/configparser.y" /* yacc.c:1646 */
+ case 271:
+#line 963 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3188,11 +3259,11 @@ yyreduce:
else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3192 "util/configparser.c" /* yacc.c:1646 */
+#line 3263 "util/configparser.c" /* yacc.c:1646 */
break;
- case 262:
-#line 944 "util/configparser.y" /* yacc.c:1646 */
+ case 272:
+#line 972 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3200,11 +3271,11 @@ yyreduce:
else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3204 "util/configparser.c" /* yacc.c:1646 */
+#line 3275 "util/configparser.c" /* yacc.c:1646 */
break;
- case 263:
-#line 953 "util/configparser.y" /* yacc.c:1646 */
+ case 273:
+#line 981 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3213,11 +3284,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3217 "util/configparser.c" /* yacc.c:1646 */
+#line 3288 "util/configparser.c" /* yacc.c:1646 */
break;
- case 264:
-#line 963 "util/configparser.y" /* yacc.c:1646 */
+ case 274:
+#line 991 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3226,22 +3297,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3230 "util/configparser.c" /* yacc.c:1646 */
+#line 3301 "util/configparser.c" /* yacc.c:1646 */
break;
- case 265:
-#line 973 "util/configparser.y" /* yacc.c:1646 */
+ case 275:
+#line 1001 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3241 "util/configparser.c" /* yacc.c:1646 */
+#line 3312 "util/configparser.c" /* yacc.c:1646 */
break;
- case 266:
-#line 981 "util/configparser.y" /* yacc.c:1646 */
+ case 276:
+#line 1009 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3253,11 +3324,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3257 "util/configparser.c" /* yacc.c:1646 */
+#line 3328 "util/configparser.c" /* yacc.c:1646 */
break;
- case 267:
-#line 994 "util/configparser.y" /* yacc.c:1646 */
+ case 277:
+#line 1022 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3265,22 +3336,22 @@ yyreduce:
else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3269 "util/configparser.c" /* yacc.c:1646 */
+#line 3340 "util/configparser.c" /* yacc.c:1646 */
break;
- case 268:
-#line 1003 "util/configparser.y" /* yacc.c:1646 */
+ case 278:
+#line 1031 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
"removed, use infra-host-ttl)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3280 "util/configparser.c" /* yacc.c:1646 */
+#line 3351 "util/configparser.c" /* yacc.c:1646 */
break;
- case 269:
-#line 1011 "util/configparser.y" /* yacc.c:1646 */
+ case 279:
+#line 1039 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3288,22 +3359,22 @@ yyreduce:
else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3292 "util/configparser.c" /* yacc.c:1646 */
+#line 3363 "util/configparser.c" /* yacc.c:1646 */
break;
- case 270:
-#line 1020 "util/configparser.y" /* yacc.c:1646 */
+ case 280:
+#line 1048 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
"(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3303 "util/configparser.c" /* yacc.c:1646 */
+#line 3374 "util/configparser.c" /* yacc.c:1646 */
break;
- case 271:
-#line 1028 "util/configparser.y" /* yacc.c:1646 */
+ case 281:
+#line 1056 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3315,11 +3386,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3319 "util/configparser.c" /* yacc.c:1646 */
+#line 3390 "util/configparser.c" /* yacc.c:1646 */
break;
- case 272:
-#line 1041 "util/configparser.y" /* yacc.c:1646 */
+ case 282:
+#line 1069 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3327,21 +3398,21 @@ yyreduce:
else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3331 "util/configparser.c" /* yacc.c:1646 */
+#line 3402 "util/configparser.c" /* yacc.c:1646 */
break;
- case 273:
-#line 1050 "util/configparser.y" /* yacc.c:1646 */
+ case 283:
+#line 1078 "util/configparser.y" /* yacc.c:1646 */
{
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 3341 "util/configparser.c" /* yacc.c:1646 */
+#line 3412 "util/configparser.c" /* yacc.c:1646 */
break;
- case 274:
-#line 1057 "util/configparser.y" /* yacc.c:1646 */
+ case 284:
+#line 1085 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3350,11 +3421,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3354 "util/configparser.c" /* yacc.c:1646 */
+#line 3425 "util/configparser.c" /* yacc.c:1646 */
break;
- case 275:
-#line 1067 "util/configparser.y" /* yacc.c:1646 */
+ case 285:
+#line 1095 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3363,11 +3434,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3367 "util/configparser.c" /* yacc.c:1646 */
+#line 3438 "util/configparser.c" /* yacc.c:1646 */
break;
- case 276:
-#line 1077 "util/configparser.y" /* yacc.c:1646 */
+ case 286:
+#line 1105 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3376,11 +3447,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3380 "util/configparser.c" /* yacc.c:1646 */
+#line 3451 "util/configparser.c" /* yacc.c:1646 */
break;
- case 277:
-#line 1087 "util/configparser.y" /* yacc.c:1646 */
+ case 287:
+#line 1115 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3389,11 +3460,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3393 "util/configparser.c" /* yacc.c:1646 */
+#line 3464 "util/configparser.c" /* yacc.c:1646 */
break;
- case 278:
-#line 1097 "util/configparser.y" /* yacc.c:1646 */
+ case 288:
+#line 1125 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3402,11 +3473,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3406 "util/configparser.c" /* yacc.c:1646 */
+#line 3477 "util/configparser.c" /* yacc.c:1646 */
break;
- case 279:
-#line 1107 "util/configparser.y" /* yacc.c:1646 */
+ case 289:
+#line 1135 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3415,11 +3486,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3419 "util/configparser.c" /* yacc.c:1646 */
+#line 3490 "util/configparser.c" /* yacc.c:1646 */
break;
- case 280:
-#line 1117 "util/configparser.y" /* yacc.c:1646 */
+ case 290:
+#line 1145 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3428,11 +3499,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3432 "util/configparser.c" /* yacc.c:1646 */
+#line 3503 "util/configparser.c" /* yacc.c:1646 */
break;
- case 281:
-#line 1127 "util/configparser.y" /* yacc.c:1646 */
+ case 291:
+#line 1155 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3441,41 +3512,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3445 "util/configparser.c" /* yacc.c:1646 */
+#line 3516 "util/configparser.c" /* yacc.c:1646 */
break;
- case 282:
-#line 1137 "util/configparser.y" /* yacc.c:1646 */
+ case 292:
+#line 1165 "util/configparser.y" /* yacc.c:1646 */
{
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 3455 "util/configparser.c" /* yacc.c:1646 */
+#line 3526 "util/configparser.c" /* yacc.c:1646 */
break;
- case 283:
-#line 1144 "util/configparser.y" /* yacc.c:1646 */
+ case 293:
+#line 1172 "util/configparser.y" /* yacc.c:1646 */
{
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 3465 "util/configparser.c" /* yacc.c:1646 */
+#line 3536 "util/configparser.c" /* yacc.c:1646 */
break;
- case 284:
-#line 1151 "util/configparser.y" /* yacc.c:1646 */
+ case 294:
+#line 1179 "util/configparser.y" /* yacc.c:1646 */
{
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 3475 "util/configparser.c" /* yacc.c:1646 */
+#line 3546 "util/configparser.c" /* yacc.c:1646 */
break;
- case 285:
-#line 1158 "util/configparser.y" /* yacc.c:1646 */
+ case 295:
+#line 1186 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3483,11 +3554,11 @@ yyreduce:
else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3487 "util/configparser.c" /* yacc.c:1646 */
+#line 3558 "util/configparser.c" /* yacc.c:1646 */
break;
- case 286:
-#line 1167 "util/configparser.y" /* yacc.c:1646 */
+ case 296:
+#line 1195 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3495,11 +3566,11 @@ yyreduce:
else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3499 "util/configparser.c" /* yacc.c:1646 */
+#line 3570 "util/configparser.c" /* yacc.c:1646 */
break;
- case 287:
-#line 1176 "util/configparser.y" /* yacc.c:1646 */
+ case 297:
+#line 1204 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3507,21 +3578,21 @@ yyreduce:
else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3511 "util/configparser.c" /* yacc.c:1646 */
+#line 3582 "util/configparser.c" /* yacc.c:1646 */
break;
- case 288:
-#line 1185 "util/configparser.y" /* yacc.c:1646 */
+ case 298:
+#line 1213 "util/configparser.y" /* yacc.c:1646 */
{
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 3521 "util/configparser.c" /* yacc.c:1646 */
+#line 3592 "util/configparser.c" /* yacc.c:1646 */
break;
- case 289:
-#line 1192 "util/configparser.y" /* yacc.c:1646 */
+ case 299:
+#line 1220 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3530,11 +3601,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3534 "util/configparser.c" /* yacc.c:1646 */
+#line 3605 "util/configparser.c" /* yacc.c:1646 */
break;
- case 290:
-#line 1202 "util/configparser.y" /* yacc.c:1646 */
+ case 300:
+#line 1230 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 &&
@@ -3550,21 +3621,21 @@ yyreduce:
fatal_exit("out of memory adding acl");
}
}
-#line 3554 "util/configparser.c" /* yacc.c:1646 */
+#line 3625 "util/configparser.c" /* yacc.c:1646 */
break;
- case 291:
-#line 1219 "util/configparser.y" /* yacc.c:1646 */
+ case 301:
+#line 1247 "util/configparser.y" /* yacc.c:1646 */
{
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 3564 "util/configparser.c" /* yacc.c:1646 */
+#line 3635 "util/configparser.c" /* yacc.c:1646 */
break;
- case 292:
-#line 1226 "util/configparser.y" /* yacc.c:1646 */
+ case 302:
+#line 1254 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3581,11 +3652,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3585 "util/configparser.c" /* yacc.c:1646 */
+#line 3656 "util/configparser.c" /* yacc.c:1646 */
break;
- case 293:
-#line 1244 "util/configparser.y" /* yacc.c:1646 */
+ case 303:
+#line 1272 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3597,11 +3668,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3601 "util/configparser.c" /* yacc.c:1646 */
+#line 3672 "util/configparser.c" /* yacc.c:1646 */
break;
- case 294:
-#line 1257 "util/configparser.y" /* yacc.c:1646 */
+ case 304:
+#line 1285 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3613,11 +3684,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3617 "util/configparser.c" /* yacc.c:1646 */
+#line 3688 "util/configparser.c" /* yacc.c:1646 */
break;
- case 295:
-#line 1270 "util/configparser.y" /* yacc.c:1646 */
+ case 305:
+#line 1298 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3625,11 +3696,11 @@ yyreduce:
else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3629 "util/configparser.c" /* yacc.c:1646 */
+#line 3700 "util/configparser.c" /* yacc.c:1646 */
break;
- case 296:
-#line 1279 "util/configparser.y" /* yacc.c:1646 */
+ case 306:
+#line 1307 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3637,11 +3708,11 @@ yyreduce:
else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3641 "util/configparser.c" /* yacc.c:1646 */
+#line 3712 "util/configparser.c" /* yacc.c:1646 */
break;
- case 297:
-#line 1288 "util/configparser.y" /* yacc.c:1646 */
+ case 307:
+#line 1316 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3649,11 +3720,11 @@ yyreduce:
else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3653 "util/configparser.c" /* yacc.c:1646 */
+#line 3724 "util/configparser.c" /* yacc.c:1646 */
break;
- case 298:
-#line 1297 "util/configparser.y" /* yacc.c:1646 */
+ case 308:
+#line 1325 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3661,11 +3732,11 @@ yyreduce:
else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3665 "util/configparser.c" /* yacc.c:1646 */
+#line 3736 "util/configparser.c" /* yacc.c:1646 */
break;
- case 299:
-#line 1306 "util/configparser.y" /* yacc.c:1646 */
+ case 309:
+#line 1334 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3674,11 +3745,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3678 "util/configparser.c" /* yacc.c:1646 */
+#line 3749 "util/configparser.c" /* yacc.c:1646 */
break;
- case 300:
-#line 1316 "util/configparser.y" /* yacc.c:1646 */
+ case 310:
+#line 1344 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3687,11 +3758,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3691 "util/configparser.c" /* yacc.c:1646 */
+#line 3762 "util/configparser.c" /* yacc.c:1646 */
break;
- case 301:
-#line 1326 "util/configparser.y" /* yacc.c:1646 */
+ case 311:
+#line 1354 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3699,11 +3770,11 @@ yyreduce:
else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3703 "util/configparser.c" /* yacc.c:1646 */
+#line 3774 "util/configparser.c" /* yacc.c:1646 */
break;
- case 302:
-#line 1335 "util/configparser.y" /* yacc.c:1646 */
+ case 312:
+#line 1363 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3711,11 +3782,11 @@ yyreduce:
else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3715 "util/configparser.c" /* yacc.c:1646 */
+#line 3786 "util/configparser.c" /* yacc.c:1646 */
break;
- case 303:
-#line 1344 "util/configparser.y" /* yacc.c:1646 */
+ case 313:
+#line 1372 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3727,11 +3798,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3731 "util/configparser.c" /* yacc.c:1646 */
+#line 3802 "util/configparser.c" /* yacc.c:1646 */
break;
- case 304:
-#line 1357 "util/configparser.y" /* yacc.c:1646 */
+ case 314:
+#line 1385 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3743,11 +3814,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 3747 "util/configparser.c" /* yacc.c:1646 */
+#line 3818 "util/configparser.c" /* yacc.c:1646 */
break;
- case 305:
-#line 1370 "util/configparser.y" /* yacc.c:1646 */
+ case 315:
+#line 1398 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3755,21 +3826,21 @@ yyreduce:
else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3759 "util/configparser.c" /* yacc.c:1646 */
+#line 3830 "util/configparser.c" /* yacc.c:1646 */
break;
- case 306:
-#line 1379 "util/configparser.y" /* yacc.c:1646 */
+ case 316:
+#line 1407 "util/configparser.y" /* yacc.c:1646 */
{
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 3769 "util/configparser.c" /* yacc.c:1646 */
+#line 3840 "util/configparser.c" /* yacc.c:1646 */
break;
- case 307:
-#line 1386 "util/configparser.y" /* yacc.c:1646 */
+ case 317:
+#line 1414 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3777,11 +3848,11 @@ yyreduce:
else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3781 "util/configparser.c" /* yacc.c:1646 */
+#line 3852 "util/configparser.c" /* yacc.c:1646 */
break;
- case 308:
-#line 1395 "util/configparser.y" /* yacc.c:1646 */
+ case 318:
+#line 1423 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3789,11 +3860,11 @@ yyreduce:
else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3793 "util/configparser.c" /* yacc.c:1646 */
+#line 3864 "util/configparser.c" /* yacc.c:1646 */
break;
- case 309:
-#line 1404 "util/configparser.y" /* yacc.c:1646 */
+ case 319:
+#line 1432 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3801,11 +3872,11 @@ yyreduce:
else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3805 "util/configparser.c" /* yacc.c:1646 */
+#line 3876 "util/configparser.c" /* yacc.c:1646 */
break;
- case 310:
-#line 1413 "util/configparser.y" /* yacc.c:1646 */
+ case 320:
+#line 1441 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3814,22 +3885,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3818 "util/configparser.c" /* yacc.c:1646 */
+#line 3889 "util/configparser.c" /* yacc.c:1646 */
break;
- case 311:
-#line 1422 "util/configparser.y" /* yacc.c:1646 */
+ case 321:
+#line 1450 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3829 "util/configparser.c" /* yacc.c:1646 */
+#line 3900 "util/configparser.c" /* yacc.c:1646 */
break;
- case 312:
-#line 1430 "util/configparser.y" /* yacc.c:1646 */
+ case 322:
+#line 1458 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3841,22 +3912,22 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3845 "util/configparser.c" /* yacc.c:1646 */
+#line 3916 "util/configparser.c" /* yacc.c:1646 */
break;
- case 313:
-#line 1443 "util/configparser.y" /* yacc.c:1646 */
+ case 323:
+#line 1471 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 3856 "util/configparser.c" /* yacc.c:1646 */
+#line 3927 "util/configparser.c" /* yacc.c:1646 */
break;
- case 314:
-#line 1451 "util/configparser.y" /* yacc.c:1646 */
+ case 324:
+#line 1479 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
@@ -3883,21 +3954,21 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 3887 "util/configparser.c" /* yacc.c:1646 */
+#line 3958 "util/configparser.c" /* yacc.c:1646 */
break;
- case 315:
-#line 1479 "util/configparser.y" /* yacc.c:1646 */
+ case 325:
+#line 1507 "util/configparser.y" /* yacc.c:1646 */
{
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 3897 "util/configparser.c" /* yacc.c:1646 */
+#line 3968 "util/configparser.c" /* yacc.c:1646 */
break;
- case 316:
-#line 1486 "util/configparser.y" /* yacc.c:1646 */
+ case 326:
+#line 1514 "util/configparser.y" /* yacc.c:1646 */
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -3911,11 +3982,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 3915 "util/configparser.c" /* yacc.c:1646 */
+#line 3986 "util/configparser.c" /* yacc.c:1646 */
break;
- case 317:
-#line 1501 "util/configparser.y" /* yacc.c:1646 */
+ case 327:
+#line 1529 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3924,11 +3995,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3928 "util/configparser.c" /* yacc.c:1646 */
+#line 3999 "util/configparser.c" /* yacc.c:1646 */
break;
- case 318:
-#line 1511 "util/configparser.y" /* yacc.c:1646 */
+ case 328:
+#line 1539 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3937,31 +4008,31 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3941 "util/configparser.c" /* yacc.c:1646 */
+#line 4012 "util/configparser.c" /* yacc.c:1646 */
break;
- case 319:
-#line 1521 "util/configparser.y" /* yacc.c:1646 */
+ case 329:
+#line 1549 "util/configparser.y" /* yacc.c:1646 */
{
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 3951 "util/configparser.c" /* yacc.c:1646 */
+#line 4022 "util/configparser.c" /* yacc.c:1646 */
break;
- case 320:
-#line 1528 "util/configparser.y" /* yacc.c:1646 */
+ case 330:
+#line 1556 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dns64_prefix);
cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
}
-#line 3961 "util/configparser.c" /* yacc.c:1646 */
+#line 4032 "util/configparser.c" /* yacc.c:1646 */
break;
- case 321:
-#line 1535 "util/configparser.y" /* yacc.c:1646 */
+ case 331:
+#line 1563 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3969,11 +4040,11 @@ yyreduce:
else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3973 "util/configparser.c" /* yacc.c:1646 */
+#line 4044 "util/configparser.c" /* yacc.c:1646 */
break;
- case 322:
-#line 1544 "util/configparser.y" /* yacc.c:1646 */
+ case 332:
+#line 1572 "util/configparser.y" /* yacc.c:1646 */
{
char* p, *s = (yyvsp[0].str);
OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -3986,11 +4057,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3990 "util/configparser.c" /* yacc.c:1646 */
+#line 4061 "util/configparser.c" /* yacc.c:1646 */
break;
- case 323:
-#line 1558 "util/configparser.y" /* yacc.c:1646 */
+ case 333:
+#line 1586 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4008,11 +4079,11 @@ yyreduce:
}
}
}
-#line 4012 "util/configparser.c" /* yacc.c:1646 */
+#line 4083 "util/configparser.c" /* yacc.c:1646 */
break;
- case 324:
-#line 1577 "util/configparser.y" /* yacc.c:1646 */
+ case 334:
+#line 1605 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4030,11 +4101,11 @@ yyreduce:
}
}
}
-#line 4034 "util/configparser.c" /* yacc.c:1646 */
+#line 4105 "util/configparser.c" /* yacc.c:1646 */
break;
- case 325:
-#line 1596 "util/configparser.y" /* yacc.c:1646 */
+ case 335:
+#line 1624 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
@@ -4045,11 +4116,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4049 "util/configparser.c" /* yacc.c:1646 */
+#line 4120 "util/configparser.c" /* yacc.c:1646 */
break;
- case 326:
-#line 1608 "util/configparser.y" /* yacc.c:1646 */
+ case 336:
+#line 1636 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
@@ -4060,11 +4131,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4064 "util/configparser.c" /* yacc.c:1646 */
+#line 4135 "util/configparser.c" /* yacc.c:1646 */
break;
- case 327:
-#line 1620 "util/configparser.y" /* yacc.c:1646 */
+ case 337:
+#line 1648 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
@@ -4075,11 +4146,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4079 "util/configparser.c" /* yacc.c:1646 */
+#line 4150 "util/configparser.c" /* yacc.c:1646 */
break;
- case 328:
-#line 1632 "util/configparser.y" /* yacc.c:1646 */
+ case 338:
+#line 1660 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
@@ -4089,11 +4160,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4093 "util/configparser.c" /* yacc.c:1646 */
+#line 4164 "util/configparser.c" /* yacc.c:1646 */
break;
- case 329:
-#line 1643 "util/configparser.y" /* yacc.c:1646 */
+ case 339:
+#line 1671 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -4111,11 +4182,11 @@ yyreduce:
}
}
}
-#line 4115 "util/configparser.c" /* yacc.c:1646 */
+#line 4186 "util/configparser.c" /* yacc.c:1646 */
break;
- case 330:
-#line 1662 "util/configparser.y" /* yacc.c:1646 */
+ case 340:
+#line 1690 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4123,11 +4194,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4127 "util/configparser.c" /* yacc.c:1646 */
+#line 4198 "util/configparser.c" /* yacc.c:1646 */
break;
- case 331:
-#line 1672 "util/configparser.y" /* yacc.c:1646 */
+ case 341:
+#line 1700 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4135,33 +4206,33 @@ yyreduce:
else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4139 "util/configparser.c" /* yacc.c:1646 */
+#line 4210 "util/configparser.c" /* yacc.c:1646 */
break;
- case 332:
-#line 1681 "util/configparser.y" /* yacc.c:1646 */
+ case 342:
+#line 1709 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4150 "util/configparser.c" /* yacc.c:1646 */
+#line 4221 "util/configparser.c" /* yacc.c:1646 */
break;
- case 333:
-#line 1689 "util/configparser.y" /* yacc.c:1646 */
+ case 343:
+#line 1717 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
yyerror("memory size expected");
free((yyvsp[0].str));
}
-#line 4161 "util/configparser.c" /* yacc.c:1646 */
+#line 4232 "util/configparser.c" /* yacc.c:1646 */
break;
- case 334:
-#line 1697 "util/configparser.y" /* yacc.c:1646 */
+ case 344:
+#line 1725 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4173,11 +4244,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4177 "util/configparser.c" /* yacc.c:1646 */
+#line 4248 "util/configparser.c" /* yacc.c:1646 */
break;
- case 335:
-#line 1710 "util/configparser.y" /* yacc.c:1646 */
+ case 345:
+#line 1738 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4189,11 +4260,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 4193 "util/configparser.c" /* yacc.c:1646 */
+#line 4264 "util/configparser.c" /* yacc.c:1646 */
break;
- case 336:
-#line 1723 "util/configparser.y" /* yacc.c:1646 */
+ case 346:
+#line 1751 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -4205,11 +4276,11 @@ yyreduce:
"ratelimit-for-domain");
}
}
-#line 4209 "util/configparser.c" /* yacc.c:1646 */
+#line 4280 "util/configparser.c" /* yacc.c:1646 */
break;
- case 337:
-#line 1736 "util/configparser.y" /* yacc.c:1646 */
+ case 347:
+#line 1764 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
@@ -4221,11 +4292,11 @@ yyreduce:
"ratelimit-below-domain");
}
}
-#line 4225 "util/configparser.c" /* yacc.c:1646 */
+#line 4296 "util/configparser.c" /* yacc.c:1646 */
break;
- case 338:
-#line 1749 "util/configparser.y" /* yacc.c:1646 */
+ case 348:
+#line 1777 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4233,11 +4304,11 @@ yyreduce:
else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4237 "util/configparser.c" /* yacc.c:1646 */
+#line 4308 "util/configparser.c" /* yacc.c:1646 */
break;
- case 339:
-#line 1758 "util/configparser.y" /* yacc.c:1646 */
+ case 349:
+#line 1786 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -4245,11 +4316,11 @@ yyreduce:
else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4249 "util/configparser.c" /* yacc.c:1646 */
+#line 4320 "util/configparser.c" /* yacc.c:1646 */
break;
- case 340:
-#line 1767 "util/configparser.y" /* yacc.c:1646 */
+ case 350:
+#line 1795 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4258,11 +4329,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4262 "util/configparser.c" /* yacc.c:1646 */
+#line 4333 "util/configparser.c" /* yacc.c:1646 */
break;
- case 341:
-#line 1777 "util/configparser.y" /* yacc.c:1646 */
+ case 351:
+#line 1805 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4271,11 +4342,103 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4275 "util/configparser.c" /* yacc.c:1646 */
+#line 4346 "util/configparser.c" /* yacc.c:1646 */
break;
- case 342:
-#line 1787 "util/configparser.y" /* yacc.c:1646 */
+ case 352:
+#line 1815 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4362 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 353:
+#line 1828 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4378 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 354:
+#line 1841 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
+ free(cfg_parser->cfg->ipsecmod_hook);
+ cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4392 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 355:
+#line 1852 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
+ if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
+ free((yyvsp[0].str));
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4408 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 356:
+#line 1865 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
+ yyerror("out of memory");
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4422 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 357:
+#line 1876 "util/configparser.y" /* yacc.c:1646 */
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+#line 4438 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 358:
+#line 1889 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->stubs->name)
@@ -4284,31 +4447,31 @@ yyreduce:
free(cfg_parser->cfg->stubs->name);
cfg_parser->cfg->stubs->name = (yyvsp[0].str);
}
-#line 4288 "util/configparser.c" /* yacc.c:1646 */
+#line 4451 "util/configparser.c" /* yacc.c:1646 */
break;
- case 343:
-#line 1797 "util/configparser.y" /* yacc.c:1646 */
+ case 359:
+#line 1899 "util/configparser.y" /* yacc.c:1646 */
{
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 4298 "util/configparser.c" /* yacc.c:1646 */
+#line 4461 "util/configparser.c" /* yacc.c:1646 */
break;
- case 344:
-#line 1804 "util/configparser.y" /* yacc.c:1646 */
+ case 360:
+#line 1906 "util/configparser.y" /* yacc.c:1646 */
{
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 4308 "util/configparser.c" /* yacc.c:1646 */
+#line 4471 "util/configparser.c" /* yacc.c:1646 */
break;
- case 345:
-#line 1811 "util/configparser.y" /* yacc.c:1646 */
+ case 361:
+#line 1913 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4316,11 +4479,11 @@ yyreduce:
else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4320 "util/configparser.c" /* yacc.c:1646 */
+#line 4483 "util/configparser.c" /* yacc.c:1646 */
break;
- case 346:
-#line 1820 "util/configparser.y" /* yacc.c:1646 */
+ case 362:
+#line 1922 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4329,11 +4492,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4333 "util/configparser.c" /* yacc.c:1646 */
+#line 4496 "util/configparser.c" /* yacc.c:1646 */
break;
- case 347:
-#line 1830 "util/configparser.y" /* yacc.c:1646 */
+ case 363:
+#line 1932 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4342,11 +4505,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4346 "util/configparser.c" /* yacc.c:1646 */
+#line 4509 "util/configparser.c" /* yacc.c:1646 */
break;
- case 348:
-#line 1840 "util/configparser.y" /* yacc.c:1646 */
+ case 364:
+#line 1942 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->forwards->name)
@@ -4355,31 +4518,31 @@ yyreduce:
free(cfg_parser->cfg->forwards->name);
cfg_parser->cfg->forwards->name = (yyvsp[0].str);
}
-#line 4359 "util/configparser.c" /* yacc.c:1646 */
+#line 4522 "util/configparser.c" /* yacc.c:1646 */
break;
- case 349:
-#line 1850 "util/configparser.y" /* yacc.c:1646 */
+ case 365:
+#line 1952 "util/configparser.y" /* yacc.c:1646 */
{
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 4369 "util/configparser.c" /* yacc.c:1646 */
+#line 4532 "util/configparser.c" /* yacc.c:1646 */
break;
- case 350:
-#line 1857 "util/configparser.y" /* yacc.c:1646 */
+ case 366:
+#line 1959 "util/configparser.y" /* yacc.c:1646 */
{
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 4379 "util/configparser.c" /* yacc.c:1646 */
+#line 4542 "util/configparser.c" /* yacc.c:1646 */
break;
- case 351:
-#line 1864 "util/configparser.y" /* yacc.c:1646 */
+ case 367:
+#line 1966 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4387,11 +4550,11 @@ yyreduce:
else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4391 "util/configparser.c" /* yacc.c:1646 */
+#line 4554 "util/configparser.c" /* yacc.c:1646 */
break;
- case 352:
-#line 1873 "util/configparser.y" /* yacc.c:1646 */
+ case 368:
+#line 1975 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4400,11 +4563,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4404 "util/configparser.c" /* yacc.c:1646 */
+#line 4567 "util/configparser.c" /* yacc.c:1646 */
break;
- case 353:
-#line 1883 "util/configparser.y" /* yacc.c:1646 */
+ case 369:
+#line 1985 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->views->name)
@@ -4413,11 +4576,11 @@ yyreduce:
free(cfg_parser->cfg->views->name);
cfg_parser->cfg->views->name = (yyvsp[0].str);
}
-#line 4417 "util/configparser.c" /* yacc.c:1646 */
+#line 4580 "util/configparser.c" /* yacc.c:1646 */
break;
- case 354:
-#line 1893 "util/configparser.y" /* yacc.c:1646 */
+ case 370:
+#line 1995 "util/configparser.y" /* yacc.c:1646 */
{
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 &&
@@ -4445,11 +4608,11 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 4449 "util/configparser.c" /* yacc.c:1646 */
+#line 4612 "util/configparser.c" /* yacc.c:1646 */
break;
- case 355:
-#line 1922 "util/configparser.y" /* yacc.c:1646 */
+ case 371:
+#line 2024 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -4458,22 +4621,22 @@ yyreduce:
fatal_exit("out of memory adding per-view "
"response-ip action");
}
-#line 4462 "util/configparser.c" /* yacc.c:1646 */
+#line 4625 "util/configparser.c" /* yacc.c:1646 */
break;
- case 356:
-#line 1932 "util/configparser.y" /* yacc.c:1646 */
+ case 372:
+#line 2034 "util/configparser.y" /* yacc.c:1646 */
{
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 4473 "util/configparser.c" /* yacc.c:1646 */
+#line 4636 "util/configparser.c" /* yacc.c:1646 */
break;
- case 357:
-#line 1940 "util/configparser.y" /* yacc.c:1646 */
+ case 373:
+#line 2042 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
@@ -4481,11 +4644,11 @@ yyreduce:
free((yyvsp[0].str));
}
}
-#line 4485 "util/configparser.c" /* yacc.c:1646 */
+#line 4648 "util/configparser.c" /* yacc.c:1646 */
break;
- case 358:
-#line 1949 "util/configparser.y" /* yacc.c:1646 */
+ case 374:
+#line 2051 "util/configparser.y" /* yacc.c:1646 */
{
char* ptr;
OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -4499,11 +4662,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 4503 "util/configparser.c" /* yacc.c:1646 */
+#line 4666 "util/configparser.c" /* yacc.c:1646 */
break;
- case 359:
-#line 1964 "util/configparser.y" /* yacc.c:1646 */
+ case 375:
+#line 2066 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4511,19 +4674,19 @@ yyreduce:
else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4515 "util/configparser.c" /* yacc.c:1646 */
+#line 4678 "util/configparser.c" /* yacc.c:1646 */
break;
- case 360:
-#line 1973 "util/configparser.y" /* yacc.c:1646 */
+ case 376:
+#line 2075 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(remote-control:)\n"));
}
-#line 4523 "util/configparser.c" /* yacc.c:1646 */
+#line 4686 "util/configparser.c" /* yacc.c:1646 */
break;
- case 371:
-#line 1984 "util/configparser.y" /* yacc.c:1646 */
+ case 387:
+#line 2086 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4532,11 +4695,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4536 "util/configparser.c" /* yacc.c:1646 */
+#line 4699 "util/configparser.c" /* yacc.c:1646 */
break;
- case 372:
-#line 1994 "util/configparser.y" /* yacc.c:1646 */
+ case 388:
+#line 2096 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -4544,21 +4707,21 @@ yyreduce:
else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4548 "util/configparser.c" /* yacc.c:1646 */
+#line 4711 "util/configparser.c" /* yacc.c:1646 */
break;
- case 373:
-#line 2003 "util/configparser.y" /* yacc.c:1646 */
+ case 389:
+#line 2105 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 4558 "util/configparser.c" /* yacc.c:1646 */
+#line 4721 "util/configparser.c" /* yacc.c:1646 */
break;
- case 374:
-#line 2010 "util/configparser.y" /* yacc.c:1646 */
+ case 390:
+#line 2112 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4567,122 +4730,122 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4571 "util/configparser.c" /* yacc.c:1646 */
+#line 4734 "util/configparser.c" /* yacc.c:1646 */
break;
- case 375:
-#line 2020 "util/configparser.y" /* yacc.c:1646 */
+ case 391:
+#line 2122 "util/configparser.y" /* yacc.c:1646 */
{
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 4581 "util/configparser.c" /* yacc.c:1646 */
+#line 4744 "util/configparser.c" /* yacc.c:1646 */
break;
- case 376:
-#line 2027 "util/configparser.y" /* yacc.c:1646 */
+ case 392:
+#line 2129 "util/configparser.y" /* yacc.c:1646 */
{
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 4591 "util/configparser.c" /* yacc.c:1646 */
+#line 4754 "util/configparser.c" /* yacc.c:1646 */
break;
- case 377:
-#line 2034 "util/configparser.y" /* yacc.c:1646 */
+ case 393:
+#line 2136 "util/configparser.y" /* yacc.c:1646 */
{
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 4601 "util/configparser.c" /* yacc.c:1646 */
+#line 4764 "util/configparser.c" /* yacc.c:1646 */
break;
- case 378:
-#line 2041 "util/configparser.y" /* yacc.c:1646 */
+ case 394:
+#line 2143 "util/configparser.y" /* yacc.c:1646 */
{
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 4611 "util/configparser.c" /* yacc.c:1646 */
+#line 4774 "util/configparser.c" /* yacc.c:1646 */
break;
- case 379:
-#line 2048 "util/configparser.y" /* yacc.c:1646 */
+ case 395:
+#line 2150 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnstap:)\n"));
}
-#line 4619 "util/configparser.c" /* yacc.c:1646 */
+#line 4782 "util/configparser.c" /* yacc.c:1646 */
break;
- case 394:
-#line 2065 "util/configparser.y" /* yacc.c:1646 */
+ case 410:
+#line 2167 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4630 "util/configparser.c" /* yacc.c:1646 */
+#line 4793 "util/configparser.c" /* yacc.c:1646 */
break;
- case 395:
-#line 2073 "util/configparser.y" /* yacc.c:1646 */
+ case 411:
+#line 2175 "util/configparser.y" /* yacc.c:1646 */
{
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 4640 "util/configparser.c" /* yacc.c:1646 */
+#line 4803 "util/configparser.c" /* yacc.c:1646 */
break;
- case 396:
-#line 2080 "util/configparser.y" /* yacc.c:1646 */
+ case 412:
+#line 2182 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4651 "util/configparser.c" /* yacc.c:1646 */
+#line 4814 "util/configparser.c" /* yacc.c:1646 */
break;
- case 397:
-#line 2088 "util/configparser.y" /* yacc.c:1646 */
+ case 413:
+#line 2190 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4662 "util/configparser.c" /* yacc.c:1646 */
+#line 4825 "util/configparser.c" /* yacc.c:1646 */
break;
- case 398:
-#line 2096 "util/configparser.y" /* yacc.c:1646 */
+ case 414:
+#line 2198 "util/configparser.y" /* yacc.c:1646 */
{
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 4672 "util/configparser.c" /* yacc.c:1646 */
+#line 4835 "util/configparser.c" /* yacc.c:1646 */
break;
- case 399:
-#line 2103 "util/configparser.y" /* yacc.c:1646 */
+ case 415:
+#line 2205 "util/configparser.y" /* yacc.c:1646 */
{
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 4682 "util/configparser.c" /* yacc.c:1646 */
+#line 4845 "util/configparser.c" /* yacc.c:1646 */
break;
- case 400:
-#line 2110 "util/configparser.y" /* yacc.c:1646 */
+ case 416:
+#line 2212 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4690,11 +4853,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4694 "util/configparser.c" /* yacc.c:1646 */
+#line 4857 "util/configparser.c" /* yacc.c:1646 */
break;
- case 401:
-#line 2119 "util/configparser.y" /* yacc.c:1646 */
+ case 417:
+#line 2221 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4702,11 +4865,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4706 "util/configparser.c" /* yacc.c:1646 */
+#line 4869 "util/configparser.c" /* yacc.c:1646 */
break;
- case 402:
-#line 2128 "util/configparser.y" /* yacc.c:1646 */
+ case 418:
+#line 2230 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4714,11 +4877,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4718 "util/configparser.c" /* yacc.c:1646 */
+#line 4881 "util/configparser.c" /* yacc.c:1646 */
break;
- case 403:
-#line 2137 "util/configparser.y" /* yacc.c:1646 */
+ case 419:
+#line 2239 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4726,11 +4889,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4730 "util/configparser.c" /* yacc.c:1646 */
+#line 4893 "util/configparser.c" /* yacc.c:1646 */
break;
- case 404:
-#line 2146 "util/configparser.y" /* yacc.c:1646 */
+ case 420:
+#line 2248 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4738,11 +4901,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4742 "util/configparser.c" /* yacc.c:1646 */
+#line 4905 "util/configparser.c" /* yacc.c:1646 */
break;
- case 405:
-#line 2155 "util/configparser.y" /* yacc.c:1646 */
+ case 421:
+#line 2257 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -4750,29 +4913,29 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 4754 "util/configparser.c" /* yacc.c:1646 */
+#line 4917 "util/configparser.c" /* yacc.c:1646 */
break;
- case 406:
-#line 2164 "util/configparser.y" /* yacc.c:1646 */
+ case 422:
+#line 2266 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(python:)\n"));
}
-#line 4762 "util/configparser.c" /* yacc.c:1646 */
+#line 4925 "util/configparser.c" /* yacc.c:1646 */
break;
- case 410:
-#line 2173 "util/configparser.y" /* yacc.c:1646 */
+ case 426:
+#line 2275 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->python_script);
cfg_parser->cfg->python_script = (yyvsp[0].str);
}
-#line 4772 "util/configparser.c" /* yacc.c:1646 */
+#line 4935 "util/configparser.c" /* yacc.c:1646 */
break;
- case 411:
-#line 2179 "util/configparser.y" /* yacc.c:1646 */
+ case 427:
+#line 2281 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4781,21 +4944,21 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4785 "util/configparser.c" /* yacc.c:1646 */
+#line 4948 "util/configparser.c" /* yacc.c:1646 */
break;
- case 412:
-#line 2189 "util/configparser.y" /* yacc.c:1646 */
+ case 428:
+#line 2291 "util/configparser.y" /* yacc.c:1646 */
{
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 4795 "util/configparser.c" /* yacc.c:1646 */
+#line 4958 "util/configparser.c" /* yacc.c:1646 */
break;
- case 413:
-#line 2196 "util/configparser.y" /* yacc.c:1646 */
+ case 429:
+#line 2298 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
validate_respip_action((yyvsp[0].str));
@@ -4803,42 +4966,43 @@ yyreduce:
(yyvsp[-1].str), (yyvsp[0].str)))
fatal_exit("out of memory adding response-ip");
}
-#line 4807 "util/configparser.c" /* yacc.c:1646 */
+#line 4970 "util/configparser.c" /* yacc.c:1646 */
break;
- case 414:
-#line 2205 "util/configparser.y" /* yacc.c:1646 */
+ case 430:
+#line 2307 "util/configparser.y" /* yacc.c:1646 */
{
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 4818 "util/configparser.c" /* yacc.c:1646 */
+#line 4981 "util/configparser.c" /* yacc.c:1646 */
break;
- case 415:
-#line 2213 "util/configparser.y" /* yacc.c:1646 */
+ case 431:
+#line 2315 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnscrypt:)\n"));
OUTYY(("\nP(dnscrypt:)\n"));
}
-#line 4827 "util/configparser.c" /* yacc.c:1646 */
+#line 4990 "util/configparser.c" /* yacc.c:1646 */
break;
- case 423:
-#line 2225 "util/configparser.y" /* yacc.c:1646 */
+ case 439:
+#line 2327 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
}
-#line 4838 "util/configparser.c" /* yacc.c:1646 */
+#line 5002 "util/configparser.c" /* yacc.c:1646 */
break;
- case 424:
-#line 2234 "util/configparser.y" /* yacc.c:1646 */
+ case 440:
+#line 2337 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
@@ -4847,41 +5011,41 @@ yyreduce:
else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 4851 "util/configparser.c" /* yacc.c:1646 */
+#line 5015 "util/configparser.c" /* yacc.c:1646 */
break;
- case 425:
-#line 2244 "util/configparser.y" /* yacc.c:1646 */
+ case 441:
+#line 2347 "util/configparser.y" /* yacc.c:1646 */
{
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 4861 "util/configparser.c" /* yacc.c:1646 */
+#line 5025 "util/configparser.c" /* yacc.c:1646 */
break;
- case 426:
-#line 2251 "util/configparser.y" /* yacc.c:1646 */
+ case 442:
+#line 2354 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-provider-cert");
}
-#line 4871 "util/configparser.c" /* yacc.c:1646 */
+#line 5035 "util/configparser.c" /* yacc.c:1646 */
break;
- case 427:
-#line 2258 "util/configparser.y" /* yacc.c:1646 */
+ case 443:
+#line 2361 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
fatal_exit("out of memory adding dnscrypt-secret-key");
}
-#line 4881 "util/configparser.c" /* yacc.c:1646 */
+#line 5045 "util/configparser.c" /* yacc.c:1646 */
break;
-#line 4885 "util/configparser.c" /* yacc.c:1646 */
+#line 5049 "util/configparser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -5109,7 +5273,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 2264 "util/configparser.y" /* yacc.c:1906 */
+#line 2367 "util/configparser.y" /* yacc.c:1906 */
/* parse helper routines could be here */
diff --git a/util/configparser.h b/util/configparser.h
index 937754cfef8f..30373da46cdf 100644
--- a/util/configparser.h
+++ b/util/configparser.h
@@ -217,39 +217,47 @@ extern int yydebug;
VAR_IP_RATELIMIT_FACTOR = 427,
VAR_RATELIMIT_FACTOR = 428,
VAR_SEND_CLIENT_SUBNET = 429,
- VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 430,
- VAR_CLIENT_SUBNET_OPCODE = 431,
- VAR_MAX_CLIENT_SUBNET_IPV4 = 432,
- VAR_MAX_CLIENT_SUBNET_IPV6 = 433,
- VAR_CAPS_WHITELIST = 434,
- VAR_CACHE_MAX_NEGATIVE_TTL = 435,
- VAR_PERMIT_SMALL_HOLDDOWN = 436,
- VAR_QNAME_MINIMISATION = 437,
- VAR_QNAME_MINIMISATION_STRICT = 438,
- VAR_IP_FREEBIND = 439,
- VAR_DEFINE_TAG = 440,
- VAR_LOCAL_ZONE_TAG = 441,
- VAR_ACCESS_CONTROL_TAG = 442,
- VAR_LOCAL_ZONE_OVERRIDE = 443,
- VAR_ACCESS_CONTROL_TAG_ACTION = 444,
- VAR_ACCESS_CONTROL_TAG_DATA = 445,
- VAR_VIEW = 446,
- VAR_ACCESS_CONTROL_VIEW = 447,
- VAR_VIEW_FIRST = 448,
- VAR_SERVE_EXPIRED = 449,
- VAR_FAKE_DSA = 450,
- VAR_FAKE_SHA1 = 451,
- VAR_LOG_IDENTITY = 452,
- VAR_HIDE_TRUSTANCHOR = 453,
- VAR_USE_SYSTEMD = 454,
- VAR_SHM_ENABLE = 455,
- VAR_SHM_KEY = 456,
- VAR_DNSCRYPT = 457,
- VAR_DNSCRYPT_ENABLE = 458,
- VAR_DNSCRYPT_PORT = 459,
- VAR_DNSCRYPT_PROVIDER = 460,
- VAR_DNSCRYPT_SECRET_KEY = 461,
- VAR_DNSCRYPT_PROVIDER_CERT = 462
+ VAR_CLIENT_SUBNET_ZONE = 430,
+ VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 431,
+ VAR_CLIENT_SUBNET_OPCODE = 432,
+ VAR_MAX_CLIENT_SUBNET_IPV4 = 433,
+ VAR_MAX_CLIENT_SUBNET_IPV6 = 434,
+ VAR_CAPS_WHITELIST = 435,
+ VAR_CACHE_MAX_NEGATIVE_TTL = 436,
+ VAR_PERMIT_SMALL_HOLDDOWN = 437,
+ VAR_QNAME_MINIMISATION = 438,
+ VAR_QNAME_MINIMISATION_STRICT = 439,
+ VAR_IP_FREEBIND = 440,
+ VAR_DEFINE_TAG = 441,
+ VAR_LOCAL_ZONE_TAG = 442,
+ VAR_ACCESS_CONTROL_TAG = 443,
+ VAR_LOCAL_ZONE_OVERRIDE = 444,
+ VAR_ACCESS_CONTROL_TAG_ACTION = 445,
+ VAR_ACCESS_CONTROL_TAG_DATA = 446,
+ VAR_VIEW = 447,
+ VAR_ACCESS_CONTROL_VIEW = 448,
+ VAR_VIEW_FIRST = 449,
+ VAR_SERVE_EXPIRED = 450,
+ VAR_FAKE_DSA = 451,
+ VAR_FAKE_SHA1 = 452,
+ VAR_LOG_IDENTITY = 453,
+ VAR_HIDE_TRUSTANCHOR = 454,
+ VAR_TRUST_ANCHOR_SIGNALING = 455,
+ VAR_USE_SYSTEMD = 456,
+ VAR_SHM_ENABLE = 457,
+ VAR_SHM_KEY = 458,
+ VAR_DNSCRYPT = 459,
+ VAR_DNSCRYPT_ENABLE = 460,
+ VAR_DNSCRYPT_PORT = 461,
+ VAR_DNSCRYPT_PROVIDER = 462,
+ VAR_DNSCRYPT_SECRET_KEY = 463,
+ VAR_DNSCRYPT_PROVIDER_CERT = 464,
+ VAR_IPSECMOD_ENABLED = 465,
+ VAR_IPSECMOD_HOOK = 466,
+ VAR_IPSECMOD_IGNORE_BOGUS = 467,
+ VAR_IPSECMOD_MAX_TTL = 468,
+ VAR_IPSECMOD_WHITELIST = 469,
+ VAR_IPSECMOD_STRICT = 470
};
#endif
/* Tokens. */
@@ -425,39 +433,47 @@ extern int yydebug;
#define VAR_IP_RATELIMIT_FACTOR 427
#define VAR_RATELIMIT_FACTOR 428
#define VAR_SEND_CLIENT_SUBNET 429
-#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 430
-#define VAR_CLIENT_SUBNET_OPCODE 431
-#define VAR_MAX_CLIENT_SUBNET_IPV4 432
-#define VAR_MAX_CLIENT_SUBNET_IPV6 433
-#define VAR_CAPS_WHITELIST 434
-#define VAR_CACHE_MAX_NEGATIVE_TTL 435
-#define VAR_PERMIT_SMALL_HOLDDOWN 436
-#define VAR_QNAME_MINIMISATION 437
-#define VAR_QNAME_MINIMISATION_STRICT 438
-#define VAR_IP_FREEBIND 439
-#define VAR_DEFINE_TAG 440
-#define VAR_LOCAL_ZONE_TAG 441
-#define VAR_ACCESS_CONTROL_TAG 442
-#define VAR_LOCAL_ZONE_OVERRIDE 443
-#define VAR_ACCESS_CONTROL_TAG_ACTION 444
-#define VAR_ACCESS_CONTROL_TAG_DATA 445
-#define VAR_VIEW 446
-#define VAR_ACCESS_CONTROL_VIEW 447
-#define VAR_VIEW_FIRST 448
-#define VAR_SERVE_EXPIRED 449
-#define VAR_FAKE_DSA 450
-#define VAR_FAKE_SHA1 451
-#define VAR_LOG_IDENTITY 452
-#define VAR_HIDE_TRUSTANCHOR 453
-#define VAR_USE_SYSTEMD 454
-#define VAR_SHM_ENABLE 455
-#define VAR_SHM_KEY 456
-#define VAR_DNSCRYPT 457
-#define VAR_DNSCRYPT_ENABLE 458
-#define VAR_DNSCRYPT_PORT 459
-#define VAR_DNSCRYPT_PROVIDER 460
-#define VAR_DNSCRYPT_SECRET_KEY 461
-#define VAR_DNSCRYPT_PROVIDER_CERT 462
+#define VAR_CLIENT_SUBNET_ZONE 430
+#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 431
+#define VAR_CLIENT_SUBNET_OPCODE 432
+#define VAR_MAX_CLIENT_SUBNET_IPV4 433
+#define VAR_MAX_CLIENT_SUBNET_IPV6 434
+#define VAR_CAPS_WHITELIST 435
+#define VAR_CACHE_MAX_NEGATIVE_TTL 436
+#define VAR_PERMIT_SMALL_HOLDDOWN 437
+#define VAR_QNAME_MINIMISATION 438
+#define VAR_QNAME_MINIMISATION_STRICT 439
+#define VAR_IP_FREEBIND 440
+#define VAR_DEFINE_TAG 441
+#define VAR_LOCAL_ZONE_TAG 442
+#define VAR_ACCESS_CONTROL_TAG 443
+#define VAR_LOCAL_ZONE_OVERRIDE 444
+#define VAR_ACCESS_CONTROL_TAG_ACTION 445
+#define VAR_ACCESS_CONTROL_TAG_DATA 446
+#define VAR_VIEW 447
+#define VAR_ACCESS_CONTROL_VIEW 448
+#define VAR_VIEW_FIRST 449
+#define VAR_SERVE_EXPIRED 450
+#define VAR_FAKE_DSA 451
+#define VAR_FAKE_SHA1 452
+#define VAR_LOG_IDENTITY 453
+#define VAR_HIDE_TRUSTANCHOR 454
+#define VAR_TRUST_ANCHOR_SIGNALING 455
+#define VAR_USE_SYSTEMD 456
+#define VAR_SHM_ENABLE 457
+#define VAR_SHM_KEY 458
+#define VAR_DNSCRYPT 459
+#define VAR_DNSCRYPT_ENABLE 460
+#define VAR_DNSCRYPT_PORT 461
+#define VAR_DNSCRYPT_PROVIDER 462
+#define VAR_DNSCRYPT_SECRET_KEY 463
+#define VAR_DNSCRYPT_PROVIDER_CERT 464
+#define VAR_IPSECMOD_ENABLED 465
+#define VAR_IPSECMOD_HOOK 466
+#define VAR_IPSECMOD_IGNORE_BOGUS 467
+#define VAR_IPSECMOD_MAX_TTL 468
+#define VAR_IPSECMOD_WHITELIST 469
+#define VAR_IPSECMOD_STRICT 470
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -468,7 +484,7 @@ union YYSTYPE
char* str;
-#line 472 "util/configparser.h" /* yacc.c:1909 */
+#line 488 "util/configparser.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
diff --git a/util/configparser.y b/util/configparser.y
index 4a04367f4d41..7c8161442ccd 100644
--- a/util/configparser.y
+++ b/util/configparser.y
@@ -131,8 +131,8 @@ extern struct config_parser_state* cfg_parser;
%token VAR_RATELIMIT VAR_RATELIMIT_SLABS VAR_RATELIMIT_SIZE
%token VAR_RATELIMIT_FOR_DOMAIN VAR_RATELIMIT_BELOW_DOMAIN
%token VAR_IP_RATELIMIT_FACTOR VAR_RATELIMIT_FACTOR
-%token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ALWAYS_FORWARD
-%token VAR_CLIENT_SUBNET_OPCODE
+%token VAR_SEND_CLIENT_SUBNET VAR_CLIENT_SUBNET_ZONE
+%token VAR_CLIENT_SUBNET_ALWAYS_FORWARD VAR_CLIENT_SUBNET_OPCODE
%token VAR_MAX_CLIENT_SUBNET_IPV4 VAR_MAX_CLIENT_SUBNET_IPV6
%token VAR_CAPS_WHITELIST VAR_CACHE_MAX_NEGATIVE_TTL VAR_PERMIT_SMALL_HOLDDOWN
%token VAR_QNAME_MINIMISATION VAR_QNAME_MINIMISATION_STRICT VAR_IP_FREEBIND
@@ -140,10 +140,12 @@ extern struct config_parser_state* cfg_parser;
%token VAR_LOCAL_ZONE_OVERRIDE VAR_ACCESS_CONTROL_TAG_ACTION
%token VAR_ACCESS_CONTROL_TAG_DATA VAR_VIEW VAR_ACCESS_CONTROL_VIEW
%token VAR_VIEW_FIRST VAR_SERVE_EXPIRED VAR_FAKE_DSA VAR_FAKE_SHA1
-%token VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR
+%token VAR_LOG_IDENTITY VAR_HIDE_TRUSTANCHOR VAR_TRUST_ANCHOR_SIGNALING
%token VAR_USE_SYSTEMD VAR_SHM_ENABLE VAR_SHM_KEY
%token VAR_DNSCRYPT VAR_DNSCRYPT_ENABLE VAR_DNSCRYPT_PORT VAR_DNSCRYPT_PROVIDER
%token VAR_DNSCRYPT_SECRET_KEY VAR_DNSCRYPT_PROVIDER_CERT
+%token VAR_IPSECMOD_ENABLED VAR_IPSECMOD_HOOK VAR_IPSECMOD_IGNORE_BOGUS
+%token VAR_IPSECMOD_MAX_TTL VAR_IPSECMOD_WHITELIST VAR_IPSECMOD_STRICT
%%
toplevelvars: /* empty */ | toplevelvars toplevelvar ;
@@ -215,7 +217,7 @@ content_server: server_num_threads | server_verbosity | server_port |
server_ratelimit_for_domain |
server_ratelimit_below_domain | server_ratelimit_factor |
server_ip_ratelimit_factor | server_send_client_subnet |
- server_client_subnet_always_forward |
+ server_client_subnet_zone | server_client_subnet_always_forward |
server_client_subnet_opcode |
server_max_client_subnet_ipv4 | server_max_client_subnet_ipv6 |
server_caps_whitelist | server_cache_max_negative_ttl |
@@ -228,7 +230,10 @@ content_server: server_num_threads | server_verbosity | server_port |
server_fake_dsa | server_log_identity | server_use_systemd |
server_response_ip_tag | server_response_ip | server_response_ip_data |
server_shm_enable | server_shm_key | server_fake_sha1 |
- server_hide_trustanchor
+ server_hide_trustanchor | server_trust_anchor_signaling |
+ server_ipsecmod_enabled | server_ipsecmod_hook |
+ server_ipsecmod_ignore_bogus | server_ipsecmod_max_ttl |
+ server_ipsecmod_whitelist | server_ipsecmod_strict
;
stubstart: VAR_STUB_ZONE
{
@@ -370,6 +375,18 @@ server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG
#endif
}
;
+server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG
+ {
+ #ifdef CLIENT_SUBNET
+ OUTYY(("P(server_client_subnet_zone:%s)\n", $2));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
+ $2))
+ fatal_exit("out of memory adding client-subnet-zone");
+ #else
+ OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
+ #endif
+ }
+ ;
server_client_subnet_always_forward:
VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG
{
@@ -783,6 +800,17 @@ server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG
yyerror("out of memory");
}
;
+server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG
+ {
+ OUTYY(("P(server_trust_anchor_signaling:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else
+ cfg_parser->cfg->trust_anchor_signaling =
+ (strcmp($2, "yes")==0);
+ free($2);
+ }
+ ;
server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG
{
OUTYY(("P(server_domain_insecure:%s)\n", $2));
@@ -1783,6 +1811,80 @@ server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG
free($2);
}
;
+server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_enabled:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_enabled = (strcmp($2, "yes")==0);
+ free($2);
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
+server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp($2, "yes")==0);
+ free($2);
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
+server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_hook:%s)\n", $2));
+ free(cfg_parser->cfg->ipsecmod_hook);
+ cfg_parser->cfg->ipsecmod_hook = $2;
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
+server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", $2));
+ if(atoi($2) == 0 && strcmp($2, "0") != 0)
+ yyerror("number expected");
+ else cfg_parser->cfg->ipsecmod_max_ttl = atoi($2);
+ free($2);
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
+server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_whitelist:%s)\n", $2));
+ if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, $2))
+ yyerror("out of memory");
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
+server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG
+ {
+ #ifdef USE_IPSECMOD
+ OUTYY(("P(server_ipsecmod_strict:%s)\n", $2));
+ if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->ipsecmod_strict = (strcmp($2, "yes")==0);
+ free($2);
+ #else
+ OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
+ #endif
+ }
+ ;
stub_name: VAR_NAME STRING_ARG
{
OUTYY(("P(name:%s)\n", $2));
@@ -2227,6 +2329,7 @@ dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG
if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnscrypt = (strcmp($2, "yes")==0);
+ free($2);
}
;
diff --git a/util/data/msgencode.c b/util/data/msgencode.c
index 1f72a03b8c64..aab7f5dfecba 100644
--- a/util/data/msgencode.c
+++ b/util/data/msgencode.c
@@ -647,6 +647,8 @@ reply_info_encode(struct query_info* qinfo, struct reply_info* rep,
sldns_buffer_clear(buffer);
if(udpsize < sldns_buffer_limit(buffer))
sldns_buffer_set_limit(buffer, udpsize);
+ else if(sldns_buffer_limit(buffer) < udpsize)
+ udpsize = sldns_buffer_limit(buffer);
if(sldns_buffer_remaining(buffer) < LDNS_HEADER_SIZE)
return 0;
@@ -810,7 +812,7 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
struct edns_data* edns, int dnssec, int secure)
{
uint16_t flags;
- int attach_edns = 1;
+ unsigned int attach_edns = 0;
if(!cached || rep->authoritative) {
/* original flags, copy RD and CD bits from query. */
@@ -833,12 +835,15 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
log_assert(flags & BIT_QR); /* QR bit must be on in our replies */
if(udpsize < LDNS_HEADER_SIZE)
return 0;
+ if(sldns_buffer_capacity(pkt) < udpsize)
+ udpsize = sldns_buffer_capacity(pkt);
if(udpsize < LDNS_HEADER_SIZE + calc_edns_field_size(edns)) {
/* packet too small to contain edns, omit it. */
attach_edns = 0;
} else {
/* reserve space for edns record */
- udpsize -= calc_edns_field_size(edns);
+ attach_edns = (unsigned int)calc_edns_field_size(edns);
+ udpsize -= attach_edns;
}
if(!reply_info_encode(qinf, rep, id, flags, pkt, timenow, region,
@@ -846,7 +851,8 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep,
log_err("reply encode: out of memory");
return 0;
}
- if(attach_edns)
+ if(attach_edns && sldns_buffer_capacity(pkt) >=
+ sldns_buffer_limit(pkt)+attach_edns)
attach_edns_record(pkt, edns);
return 1;
}
diff --git a/util/data/msgparse.c b/util/data/msgparse.c
index 5381500e1523..288720068b10 100644
--- a/util/data/msgparse.c
+++ b/util/data/msgparse.c
@@ -1018,7 +1018,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns,
edns->opt_list = NULL;
/* take the options */
- rdata_len = found->rr_first->size;
+ rdata_len = found->rr_first->size-2;
rdata_ptr = found->rr_first->ttl_data+6;
if(!parse_edns_options(rdata_ptr, rdata_len, edns, region))
return 0;
diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c
index 03244a123d69..2797d1fe8449 100644
--- a/util/fptr_wlist.c
+++ b/util/fptr_wlist.c
@@ -49,6 +49,7 @@
#include "services/outside_network.h"
#include "services/mesh.h"
#include "services/localzone.h"
+#include "services/authzone.h"
#include "services/cache/infra.h"
#include "services/cache/rrset.h"
#include "services/view.h"
@@ -83,6 +84,9 @@
#ifdef USE_CACHEDB
#include "cachedb/cachedb.h"
#endif
+#ifdef USE_IPSECMOD
+#include "ipsecmod/ipsecmod.h"
+#endif
#ifdef CLIENT_SUBNET
#include "edns-subnet/subnetmod.h"
#endif
@@ -209,6 +213,8 @@ fptr_whitelist_rbtree_cmp(int (*fptr) (const void *, const void *))
else if(fptr == &probetree_cmp) return 1;
else if(fptr == &replay_var_compare) return 1;
else if(fptr == &view_cmp) return 1;
+ else if(fptr == &auth_zone_cmp) return 1;
+ else if(fptr == &auth_data_cmp) return 1;
return 0;
}
@@ -307,6 +313,16 @@ fptr_whitelist_modenv_attach_sub(int (*fptr)(
}
int
+fptr_whitelist_modenv_add_sub(int (*fptr)(
+ struct module_qstate* qstate, struct query_info* qinfo,
+ uint16_t qflags, int prime, int valrec, struct module_qstate** newq,
+ struct mesh_state** sub))
+{
+ if(fptr == &mesh_add_sub) return 1;
+ return 0;
+}
+
+int
fptr_whitelist_modenv_kill_sub(void (*fptr)(struct module_qstate* newq))
{
if(fptr == &mesh_state_delete) return 1;
@@ -335,6 +351,9 @@ fptr_whitelist_mod_init(int (*fptr)(struct module_env* env, int id))
#ifdef USE_CACHEDB
else if(fptr == &cachedb_init) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_init) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_init) return 1;
#endif
@@ -354,6 +373,9 @@ fptr_whitelist_mod_deinit(void (*fptr)(struct module_env* env, int id))
#ifdef USE_CACHEDB
else if(fptr == &cachedb_deinit) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_deinit) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_deinit) return 1;
#endif
@@ -374,6 +396,9 @@ fptr_whitelist_mod_operate(void (*fptr)(struct module_qstate* qstate,
#ifdef USE_CACHEDB
else if(fptr == &cachedb_operate) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_operate) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_operate) return 1;
#endif
@@ -394,6 +419,9 @@ fptr_whitelist_mod_inform_super(void (*fptr)(
#ifdef USE_CACHEDB
else if(fptr == &cachedb_inform_super) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_inform_super) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_inform_super) return 1;
#endif
@@ -414,6 +442,9 @@ fptr_whitelist_mod_clear(void (*fptr)(struct module_qstate* qstate,
#ifdef USE_CACHEDB
else if(fptr == &cachedb_clear) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_clear) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_clear) return 1;
#endif
@@ -433,6 +464,9 @@ fptr_whitelist_mod_get_mem(size_t (*fptr)(struct module_env* env, int id))
#ifdef USE_CACHEDB
else if(fptr == &cachedb_get_mem) return 1;
#endif
+#ifdef USE_IPSECMOD
+ else if(fptr == &ipsecmod_get_mem) return 1;
+#endif
#ifdef CLIENT_SUBNET
else if(fptr == &subnetmod_get_mem) return 1;
#endif
diff --git a/util/fptr_wlist.h b/util/fptr_wlist.h
index 653f8f0e75d4..39e3f2d7f21b 100644
--- a/util/fptr_wlist.h
+++ b/util/fptr_wlist.h
@@ -234,6 +234,15 @@ int fptr_whitelist_modenv_attach_sub(int (*fptr)(
uint16_t qflags, int prime, int valrec, struct module_qstate** newq));
/**
+ * Check function pointer whitelist for module_env add_sub callback values.
+ *
+ * @param fptr: function pointer to check.
+ * @return false if not in whitelist.
+ */
+int fptr_whitelist_modenv_add_sub(int (*fptr)(struct module_qstate* qstate,
+ struct query_info* qinfo, uint16_t qflags, int prime, int valrec,
+ struct module_qstate** newq, struct mesh_state** sub));
+/**
* Check function pointer whitelist for module_env kill_sub callback values.
*
* @param fptr: function pointer to check.
diff --git a/util/iana_ports.inc b/util/iana_ports.inc
index 2555b2591525..dba3e62270c6 100644
--- a/util/iana_ports.inc
+++ b/util/iana_ports.inc
@@ -29,7 +29,6 @@
44,
45,
46,
-47,
48,
49,
50,
@@ -41,7 +40,6 @@
57,
58,
59,
-61,
62,
63,
64,
@@ -4575,6 +4573,7 @@
7014,
7015,
7016,
+7017,
7019,
7020,
7021,
@@ -4855,6 +4854,7 @@
8793,
8800,
8804,
+8805,
8808,
8873,
8880,
@@ -5463,3 +5463,4 @@
48556,
48619,
48653,
+49001,
diff --git a/util/log.c b/util/log.c
index 439541a7ce4a..c14b45834add 100644
--- a/util/log.c
+++ b/util/log.c
@@ -103,8 +103,12 @@ log_init(const char* filename, int use_syslog, const char* chrootdir)
use_syslog?"syslog":(filename&&filename[0]?filename:"stderr"));
lock_quick_lock(&log_lock);
}
- if(logfile && logfile != stderr)
- fclose(logfile);
+ if(logfile && logfile != stderr) {
+ FILE* cl = logfile;
+ logfile = NULL; /* set to NULL before it is closed, so that
+ other threads have a valid logfile or NULL */
+ fclose(cl);
+ }
#ifdef HAVE_SYSLOG_H
if(logging_to_syslog) {
closelog();
diff --git a/util/module.h b/util/module.h
index 82b50ccd7d06..6e75539d9169 100644
--- a/util/module.h
+++ b/util/module.h
@@ -383,6 +383,37 @@ struct module_env {
int valrec, struct module_qstate** newq);
/**
+ * Add detached query.
+ * Creates it if it does not exist already.
+ * Does not make super/sub references.
+ * Performs a cycle detection - for double check - and fails if there is
+ * one.
+ * Updates stat items in mesh_area structure.
+ * Pass if it is priming query or not.
+ * return:
+ * o if error (malloc) happened.
+ * o need to initialise the new state (module init; it is a new state).
+ * so that the next run of the query with this module is successful.
+ * o no init needed, attachment successful.
+ * o added subquery, created if it did not exist already.
+ *
+ * @param qstate: the state to find mesh state, and that wants to receive
+ * the results from the new subquery.
+ * @param qinfo: what to query for (copied).
+ * @param qflags: what flags to use (RD / CD flag or not).
+ * @param prime: if it is a (stub) priming query.
+ * @param valrec: if it is a validation recursion query (lookup of key, DS).
+ * @param newq: If the new subquery needs initialisation, it is returned,
+ * otherwise NULL is returned.
+ * @param sub: The added mesh state, created if it did not exist already.
+ * @return: false on error, true if success (and init may be needed).
+ */
+ int (*add_sub)(struct module_qstate* qstate,
+ struct query_info* qinfo, uint16_t qflags, int prime,
+ int valrec, struct module_qstate** newq,
+ struct mesh_state** sub);
+
+ /**
* Kill newly attached sub. If attach_sub returns newq for
* initialisation, but that fails, then this routine will cleanup and
* delete the fresly created sub.
diff --git a/util/netevent.c b/util/netevent.c
index 2084cea3ec01..6990cdb36f36 100644
--- a/util/netevent.c
+++ b/util/netevent.c
@@ -666,7 +666,7 @@ comm_point_udp_callback(int fd, short event, void* arg)
struct comm_reply rep;
ssize_t rcv;
int i;
- struct sldns_buffer *buffer;
+ struct sldns_buffer *buffer;
rep.c = (struct comm_point*)arg;
log_assert(rep.c->type == comm_udp);
@@ -704,9 +704,9 @@ comm_point_udp_callback(int fd, short event, void* arg)
if((*rep.c->callback)(rep.c, rep.c->cb_arg, NETEVENT_NOERROR, &rep)) {
/* send back immediate reply */
#ifdef USE_DNSCRYPT
- buffer = rep.c->dnscrypt_buffer;
+ buffer = rep.c->dnscrypt_buffer;
#else
- buffer = rep.c->buffer;
+ buffer = rep.c->buffer;
#endif
(void)comm_point_send_udp_msg(rep.c, buffer,
(struct sockaddr*)&rep.addr, rep.addrlen);
@@ -725,8 +725,8 @@ setup_tcp_handler(struct comm_point* c, int fd, int cur, int max)
log_assert(c->fd == -1);
sldns_buffer_clear(c->buffer);
#ifdef USE_DNSCRYPT
- if (c->dnscrypt)
- sldns_buffer_clear(c->dnscrypt_buffer);
+ if (c->dnscrypt)
+ sldns_buffer_clear(c->dnscrypt_buffer);
#endif
c->tcp_is_reading = 1;
c->tcp_byte_count = 0;
@@ -1407,12 +1407,34 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c)
if(errno == EINTR || errno == EAGAIN)
return 1;
/* Not handling EISCONN here as shouldn't ever hit that case.*/
- if(errno != 0 && verbosity < 2)
+ if(errno != EPIPE && errno != 0 && verbosity < 2)
return 0; /* silence lots of chatter in the logs */
- else if(errno != 0)
+ if(errno != EPIPE && errno != 0) {
log_err_addr("tcp sendmsg", strerror(errno),
&c->repinfo.addr, c->repinfo.addrlen);
- return 0;
+ return 0;
+ }
+ /* fallthrough to nonFASTOPEN
+ * (MSG_FASTOPEN on Linux 3 produces EPIPE)
+ * we need to perform connect() */
+ if(connect(fd, (struct sockaddr *)&c->repinfo.addr, c->repinfo.addrlen) == -1) {
+#ifdef EINPROGRESS
+ if(errno == EINPROGRESS)
+ return 1; /* wait until connect done*/
+#endif
+#ifdef USE_WINSOCK
+ if(WSAGetLastError() == WSAEINPROGRESS ||
+ WSAGetLastError() == WSAEWOULDBLOCK)
+ return 1; /* wait until connect done*/
+#endif
+ if(tcp_connect_errno_needs_log(
+ (struct sockaddr *)&c->repinfo.addr, c->repinfo.addrlen)) {
+ log_err_addr("outgoing tcp: connect after EPIPE for fastopen",
+ strerror(errno), &c->repinfo.addr, c->repinfo.addrlen);
+ }
+ return 0;
+ }
+
} else {
c->tcp_byte_count += r;
if(c->tcp_byte_count < sizeof(uint16_t))
@@ -1525,13 +1547,13 @@ comm_point_tcp_handle_callback(int fd, short event, void* arg)
if(c->tcp_parent) {
c->dnscrypt = c->tcp_parent->dnscrypt;
}
- if(c->dnscrypt && c->dnscrypt_buffer == c->buffer) {
- c->dnscrypt_buffer = sldns_buffer_new(sldns_buffer_capacity(c->buffer));
- if(!c->dnscrypt_buffer) {
- log_err("Could not allocate dnscrypt buffer");
- return;
- }
- }
+ if(c->dnscrypt && c->dnscrypt_buffer == c->buffer) {
+ c->dnscrypt_buffer = sldns_buffer_new(sldns_buffer_capacity(c->buffer));
+ if(!c->dnscrypt_buffer) {
+ log_err("Could not allocate dnscrypt buffer");
+ return;
+ }
+ }
#endif
if(event&UB_EV_READ) {
@@ -1691,8 +1713,8 @@ comm_point_create_udp_ancil(struct comm_base *base, int fd,
c->tcp_do_close = 0;
c->do_not_close = 0;
#ifdef USE_DNSCRYPT
- c->dnscrypt = 0;
- c->dnscrypt_buffer = buffer;
+ c->dnscrypt = 0;
+ c->dnscrypt_buffer = buffer;
#endif
c->inuse = 0;
c->tcp_do_toggle_rw = 0;
@@ -1766,10 +1788,10 @@ comm_point_create_tcp_handler(struct comm_base *base,
c->tcp_do_fastopen = 0;
#endif
#ifdef USE_DNSCRYPT
- c->dnscrypt = 0;
- // We don't know just yet if this is a dnscrypt channel. Allocation
- // will be done when handling the callback.
- c->dnscrypt_buffer = c->buffer;
+ c->dnscrypt = 0;
+ /* We don't know just yet if this is a dnscrypt channel. Allocation
+ * will be done when handling the callback. */
+ c->dnscrypt_buffer = c->buffer;
#endif
c->repinfo.c = c;
c->callback = callback;
@@ -2098,11 +2120,11 @@ comm_point_delete(struct comm_point* c)
if(c->type == comm_tcp || c->type == comm_local) {
sldns_buffer_free(c->buffer);
#ifdef USE_DNSCRYPT
- if(c->dnscrypt && c->dnscrypt_buffer != c->buffer) {
- sldns_buffer_free(c->dnscrypt_buffer);
- }
+ if(c->dnscrypt && c->dnscrypt_buffer != c->buffer) {
+ sldns_buffer_free(c->dnscrypt_buffer);
+ }
#endif
- }
+ }
ub_event_free(c->ev->ev);
free(c->ev);
free(c);
@@ -2115,7 +2137,7 @@ comm_point_send_reply(struct comm_reply *repinfo)
log_assert(repinfo && repinfo->c);
#ifdef USE_DNSCRYPT
buffer = repinfo->c->dnscrypt_buffer;
- if(!dnsc_handle_uncurved_request(repinfo)) {
+ if(!dnsc_handle_uncurved_request(repinfo)) {
return;
}
#else
@@ -2239,12 +2261,12 @@ size_t comm_point_get_mem(struct comm_point* c)
if(c->type == comm_tcp || c->type == comm_local) {
s += sizeof(*c->buffer) + sldns_buffer_capacity(c->buffer);
#ifdef USE_DNSCRYPT
- s += sizeof(*c->dnscrypt_buffer);
- if(c->buffer != c->dnscrypt_buffer) {
- s += sldns_buffer_capacity(c->dnscrypt_buffer);
- }
+ s += sizeof(*c->dnscrypt_buffer);
+ if(c->buffer != c->dnscrypt_buffer) {
+ s += sldns_buffer_capacity(c->dnscrypt_buffer);
+ }
#endif
- }
+ }
if(c->type == comm_tcp_accept) {
int i;
for(i=0; i<c->max_tcp_count; i++)
diff --git a/util/netevent.h b/util/netevent.h
index cb8eb86b9f74..54740266d0a4 100644
--- a/util/netevent.h
+++ b/util/netevent.h
@@ -120,7 +120,7 @@ struct comm_reply {
#ifdef USE_DNSCRYPT
uint8_t client_nonce[crypto_box_HALF_NONCEBYTES];
uint8_t nmkey[crypto_box_BEFORENMBYTES];
- const KeyPair *keypair;
+ const dnsccert *dnsc_cert;
int is_dnscrypted;
#endif
/** the return source interface data */
@@ -133,11 +133,11 @@ struct comm_reply {
#elif defined(IP_RECVDSTADDR)
struct in_addr v4addr;
#endif
- }
+ }
/** variable with return source data */
pktinfo;
- /** max udp size for udp packets */
- size_t max_udp_size;
+ /** max udp size for udp packets */
+ size_t max_udp_size;
};
/**
@@ -248,7 +248,7 @@ struct comm_point {
#endif
#ifdef USE_DNSCRYPT
- /** Is this a dnscrypt channel */
+ /** Is this a dnscrypt channel */
int dnscrypt;
/** encrypted buffer pointer. Either to perthread, or own buffer or NULL */
struct sldns_buffer* dnscrypt_buffer;
diff --git a/util/shm_side/shm_main.c b/util/shm_side/shm_main.c
index cab9aed560bd..bba2a8396333 100644
--- a/util/shm_side/shm_main.c
+++ b/util/shm_side/shm_main.c
@@ -65,17 +65,17 @@
#ifdef HAVE_SHMGET
/** subtract timers and the values do not overflow or become negative */
static void
-timeval_subtract(struct timeval* d, const struct timeval* end,
+stat_timeval_subtract(long long *d_sec, long long *d_usec, const struct timeval* end,
const struct timeval* start)
{
#ifndef S_SPLINT_S
time_t end_usec = end->tv_usec;
- d->tv_sec = end->tv_sec - start->tv_sec;
+ *d_sec = end->tv_sec - start->tv_sec;
if(end_usec < start->tv_usec) {
end_usec += 1000000;
- d->tv_sec--;
+ (*d_sec)--;
}
- d->tv_usec = end_usec - start->tv_usec;
+ *d_usec = end_usec - start->tv_usec;
#endif
}
#endif /* HAVE_SHMGET */
@@ -83,7 +83,7 @@ timeval_subtract(struct timeval* d, const struct timeval* end,
int shm_main_init(struct daemon* daemon)
{
#ifdef HAVE_SHMGET
- struct shm_stat_info *shm_stat;
+ struct ub_shm_stat_info *shm_stat;
size_t shm_size;
/* sanitize */
@@ -95,7 +95,7 @@ int shm_main_init(struct daemon* daemon)
log_warn("shm-enable is yes but statistics-interval is 0");
/* Statistics to maintain the number of thread + total */
- shm_size = (sizeof(struct stats_info) * (daemon->num + 1));
+ shm_size = (sizeof(struct ub_stats_info) * (daemon->num + 1));
/* Allocation of needed memory */
daemon->shm_info = (struct shm_main_info*)calloc(1, shm_size);
@@ -121,7 +121,7 @@ int shm_main_init(struct daemon* daemon)
shmctl(daemon->shm_info->id_arr, IPC_RMID, NULL);
/* SHM: Create the segment */
- daemon->shm_info->id_ctl = shmget(daemon->shm_info->key, sizeof(struct shm_stat_info), IPC_CREAT | 0666);
+ daemon->shm_info->id_ctl = shmget(daemon->shm_info->key, sizeof(struct ub_shm_stat_info), IPC_CREAT | 0666);
if (daemon->shm_info->id_ctl < 0)
{
@@ -148,7 +148,7 @@ int shm_main_init(struct daemon* daemon)
}
/* SHM: attach the segment */
- daemon->shm_info->ptr_ctl = (struct shm_stat_info*)
+ daemon->shm_info->ptr_ctl = (struct ub_shm_stat_info*)
shmat(daemon->shm_info->id_ctl, NULL, 0);
if(daemon->shm_info->ptr_ctl == (void *) -1) {
log_err("SHM failed(ctl) cannot shmat(%d) %s",
@@ -160,7 +160,7 @@ int shm_main_init(struct daemon* daemon)
return 0;
}
- daemon->shm_info->ptr_arr = (struct stats_info*)
+ daemon->shm_info->ptr_arr = (struct ub_stats_info*)
shmat(daemon->shm_info->id_arr, NULL, 0);
if (daemon->shm_info->ptr_arr == (void *) -1)
@@ -175,7 +175,7 @@ int shm_main_init(struct daemon* daemon)
}
/* Zero fill SHM to stand clean while is not filled by other events */
- memset(daemon->shm_info->ptr_ctl, 0, sizeof(struct shm_stat_info));
+ memset(daemon->shm_info->ptr_ctl, 0, sizeof(struct ub_shm_stat_info));
memset(daemon->shm_info->ptr_arr, 0, shm_size);
shm_stat = daemon->shm_info->ptr_ctl;
@@ -218,10 +218,9 @@ void shm_main_shutdown(struct daemon* daemon)
void shm_main_run(struct worker *worker)
{
#ifdef HAVE_SHMGET
- struct shm_stat_info *shm_stat;
- struct stats_info *stat_total;
- struct stats_info *stat_info;
- int modstack;
+ struct ub_shm_stat_info *shm_stat;
+ struct ub_stats_info *stat_total;
+ struct ub_stats_info *stat_info;
int offset;
verbose(VERB_DETAIL, "SHM run - worker [%d] - daemon [%p] - timenow(%u) - timeboot(%u)",
@@ -238,40 +237,40 @@ void shm_main_run(struct worker *worker)
if (worker->thread_num == 0) {
/* Copy data to the current position */
- memset(stat_total, 0, sizeof(struct stats_info));
+ memset(stat_total, 0, sizeof(struct ub_stats_info));
/* Point to data into SHM */
shm_stat = worker->daemon->shm_info->ptr_ctl;
- shm_stat->time.now = *worker->env.now_tv;
-
- timeval_subtract(&shm_stat->time.up, &shm_stat->time.now, &worker->daemon->time_boot);
- timeval_subtract(&shm_stat->time.elapsed, &shm_stat->time.now, &worker->daemon->time_last_stat);
-
- shm_stat->mem.msg = slabhash_get_mem(worker->env.msg_cache);
- shm_stat->mem.rrset = slabhash_get_mem(&worker->env.rrset_cache->table);
- shm_stat->mem.val = 0;
- shm_stat->mem.iter = 0;
-
- modstack = modstack_find(&worker->env.mesh->mods, "validator");
- if(modstack != -1) {
- fptr_ok(fptr_whitelist_mod_get_mem(worker->env.mesh->mods.mod[modstack]->get_mem));
- shm_stat->mem.val = (*worker->env.mesh->mods.mod[modstack]->get_mem)(&worker->env, modstack);
- }
- modstack = modstack_find(&worker->env.mesh->mods, "iterator");
- if(modstack != -1) {
- fptr_ok(fptr_whitelist_mod_get_mem(worker->env.mesh->mods.mod[modstack]->get_mem));
- shm_stat->mem.iter = (*worker->env.mesh->mods.mod[modstack]->get_mem)(&worker->env, modstack);
- }
+ shm_stat->time.now_sec = (long long)worker->env.now_tv->tv_sec;
+ shm_stat->time.now_usec = (long long)worker->env.now_tv->tv_usec;
+
+ stat_timeval_subtract(&shm_stat->time.up_sec, &shm_stat->time.up_usec, worker->env.now_tv, &worker->daemon->time_boot);
+ stat_timeval_subtract(&shm_stat->time.elapsed_sec, &shm_stat->time.elapsed_usec, worker->env.now_tv, &worker->daemon->time_last_stat);
+
+ shm_stat->mem.msg = (long long)slabhash_get_mem(worker->env.msg_cache);
+ shm_stat->mem.rrset = (long long)slabhash_get_mem(&worker->env.rrset_cache->table);
+ shm_stat->mem.val = (long long)mod_get_mem(&worker->env,
+ "validator");
+ shm_stat->mem.iter = (long long)mod_get_mem(&worker->env,
+ "iterator");
+ shm_stat->mem.respip = (long long)mod_get_mem(&worker->env,
+ "respip");
+
/* subnet mem value is available in shm, also when not enabled,
* to make the struct easier to memmap by other applications,
* independent of the configuration of unbound */
shm_stat->mem.subnet = 0;
#ifdef CLIENT_SUBNET
- modstack = modstack_find(&worker->env.mesh->mods, "subnet");
- if(modstack != -1) {
- fptr_ok(fptr_whitelist_mod_get_mem(worker->env.mesh->mods.mod[modstack]->get_mem));
- shm_stat->mem.subnet = (*worker->env.mesh->mods.mod[modstack]->get_mem)(&worker->env, modstack);
- }
+ shm_stat->mem.subnet = (long long)mod_get_mem(&worker->env,
+ "subnet");
+#endif
+ /* ipsecmod mem value is available in shm, also when not enabled,
+ * to make the struct easier to memmap by other applications,
+ * independent of the configuration of unbound */
+ shm_stat->mem.ipsecmod = 0;
+#ifdef USE_IPSECMOD
+ shm_stat->mem.ipsecmod = (long long)mod_get_mem(&worker->env,
+ "ipsecmod");
#endif
}
diff --git a/util/shm_side/shm_main.h b/util/shm_side/shm_main.h
index 8e4f4d051026..76c60e484860 100644
--- a/util/shm_side/shm_main.h
+++ b/util/shm_side/shm_main.h
@@ -44,26 +44,8 @@
struct daemon;
struct worker;
-/** Some global statistics that are not in struct stats_info,
- * this struct is shared on a shm segment */
-struct shm_stat_info {
-
- int num_threads;
-
- struct {
- struct timeval now;
- struct timeval up;
- struct timeval elapsed;
- } time;
-
- struct {
- size_t msg;
- size_t rrset;
- size_t val;
- size_t iter;
- size_t subnet;
- } mem;
-};
+/* get struct ub_shm_stat_info */
+#include "libunbound/unbound.h"
/**
* The SHM info.
@@ -71,9 +53,9 @@ struct shm_stat_info {
struct shm_main_info {
/** stats_info array, shared memory segment.
* [0] is totals, [1..thread_num] are per-thread stats */
- struct stats_info* ptr_arr;
+ struct ub_stats_info* ptr_arr;
/** the global stats block, shared memory segment */
- struct shm_stat_info* ptr_ctl;
+ struct ub_shm_stat_info* ptr_ctl;
int key;
int id_ctl;
int id_arr;
diff --git a/util/timehist.c b/util/timehist.c
index dbf5b98417c2..61cc995fd8ef 100644
--- a/util/timehist.c
+++ b/util/timehist.c
@@ -225,23 +225,23 @@ timehist_quartile(struct timehist* hist, double q)
}
void
-timehist_export(struct timehist* hist, size_t* array, size_t sz)
+timehist_export(struct timehist* hist, long long* array, size_t sz)
{
size_t i;
if(!hist) return;
if(sz > hist->num)
sz = hist->num;
for(i=0; i<sz; i++)
- array[i] = hist->buckets[i].count;
+ array[i] = (long long)hist->buckets[i].count;
}
void
-timehist_import(struct timehist* hist, size_t* array, size_t sz)
+timehist_import(struct timehist* hist, long long* array, size_t sz)
{
size_t i;
if(!hist) return;
if(sz > hist->num)
sz = hist->num;
for(i=0; i<sz; i++)
- hist->buckets[i].count = array[i];
+ hist->buckets[i].count = (size_t)array[i];
}
diff --git a/util/timehist.h b/util/timehist.h
index 5c65048b9bb3..5f88a38a9fdf 100644
--- a/util/timehist.h
+++ b/util/timehist.h
@@ -121,7 +121,7 @@ void timehist_log(struct timehist* hist, const char* name);
* @param array: the array to export to.
* @param sz: number of items in array.
*/
-void timehist_export(struct timehist* hist, size_t* array, size_t sz);
+void timehist_export(struct timehist* hist, long long* array, size_t sz);
/**
* Import histogram from an array.
@@ -129,6 +129,6 @@ void timehist_export(struct timehist* hist, size_t* array, size_t sz);
* @param array: the array to import from.
* @param sz: number of items in array.
*/
-void timehist_import(struct timehist* hist, size_t* array, size_t sz);
+void timehist_import(struct timehist* hist, long long* array, size_t sz);
#endif /* UTIL_TIMEHIST_H */