diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2018-05-12 11:55:57 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2018-05-12 11:55:57 +0000 |
| commit | 2bda7bda432fb0f867072224dd97e10435c8ad94 (patch) | |
| tree | 7ebfd82c2302bee4f9c05fb516c030153fb371d8 /util | |
| parent | a6c5280ea59f940be13fd6eb0f94ab8360d3d6c9 (diff) | |
Notes
Diffstat (limited to 'util')
| -rw-r--r-- | util/config_file.c | 20 | ||||
| -rw-r--r-- | util/config_file.h | 11 | ||||
| -rw-r--r-- | util/configlexer.c | 4211 | ||||
| -rw-r--r-- | util/configlexer.lex | 3 | ||||
| -rw-r--r-- | util/configparser.c | 2222 | ||||
| -rw-r--r-- | util/configparser.h | 44 | ||||
| -rw-r--r-- | util/configparser.y | 42 | ||||
| -rw-r--r-- | util/data/msgreply.c | 3 | ||||
| -rw-r--r-- | util/data/msgreply.h | 2 | ||||
| -rw-r--r-- | util/fptr_wlist.c | 4 | ||||
| -rw-r--r-- | util/module.h | 4 | ||||
| -rw-r--r-- | util/netevent.c | 2 | ||||
| -rw-r--r-- | util/shm_side/shm_main.c | 2 | ||||
| -rw-r--r-- | util/storage/slabhash.h | 2 | ||||
| -rw-r--r-- | util/ub_event.h | 2 |
15 files changed, 3385 insertions, 3189 deletions
diff --git a/util/config_file.c b/util/config_file.c index 796c1a61f269..ae3b6682ebf5 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -69,9 +69,9 @@ #include <pwd.h> #endif -/** from cfg username, after daemonise setup performed */ +/** from cfg username, after daemonize setup performed */ uid_t cfg_uid = (uid_t)-1; -/** from cfg username, after daemonise setup performed */ +/** from cfg username, after daemonize setup performed */ gid_t cfg_gid = (gid_t)-1; /** for debug allow small timeout values for fast rollovers */ int autr_permit_small_holddown = 0; @@ -101,6 +101,7 @@ config_create(void) cfg->do_udp = 1; cfg->do_tcp = 1; cfg->tcp_upstream = 0; + cfg->udp_upstream_without_downstream = 0; cfg->tcp_mss = 0; cfg->outgoing_tcp_mss = 0; cfg->ssl_service_key = NULL; @@ -207,7 +208,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->trust_anchor_signaling = 1; cfg->dlv_anchor_file = NULL; cfg->dlv_anchor_list = NULL; cfg->domain_insecure = NULL; @@ -284,6 +285,8 @@ config_create(void) cfg->dnscrypt_secret_key = NULL; cfg->dnscrypt_shared_secret_cache_size = 4*1024*1024; cfg->dnscrypt_shared_secret_cache_slabs = 4; + cfg->dnscrypt_nonce_cache_size = 4*1024*1024; + cfg->dnscrypt_nonce_cache_slabs = 4; #ifdef USE_IPSECMOD cfg->ipsecmod_enabled = 1; cfg->ipsecmod_ignore_bogus = 0; @@ -426,6 +429,8 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("do-udp:", do_udp) else S_YNO("do-tcp:", do_tcp) else S_YNO("tcp-upstream:", tcp_upstream) + else S_YNO("udp-upstream-without-downstream:", + udp_upstream_without_downstream) else S_NUMBER_NONZERO("tcp-mss:", tcp_mss) else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss) else S_YNO("ssl-upstream:", ssl_upstream) @@ -571,6 +576,10 @@ int config_set_option(struct config_file* cfg, const char* opt, dnscrypt_shared_secret_cache_size) else S_POW2("dnscrypt-shared-secret-cache-slabs:", dnscrypt_shared_secret_cache_slabs) + else S_MEMSIZE("dnscrypt-nonce-cache-size:", + dnscrypt_nonce_cache_size) + else S_POW2("dnscrypt-nonce-cache-slabs:", + dnscrypt_nonce_cache_slabs) #endif else if(strcmp(opt, "ip-ratelimit:") == 0) { IS_NUMBER_OR_ZERO; cfg->ip_ratelimit = atoi(val); @@ -828,6 +837,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "do-udp", do_udp) else O_YNO(opt, "do-tcp", do_tcp) else O_YNO(opt, "tcp-upstream", tcp_upstream) + else O_YNO(opt, "udp-upstream-without-downstream", udp_upstream_without_downstream) else O_DEC(opt, "tcp-mss", tcp_mss) else O_DEC(opt, "outgoing-tcp-mss", outgoing_tcp_mss) else O_YNO(opt, "ssl-upstream", ssl_upstream) @@ -936,6 +946,10 @@ config_get_option(struct config_file* cfg, const char* opt, dnscrypt_shared_secret_cache_size) else O_DEC(opt, "dnscrypt-shared-secret-cache-slabs", dnscrypt_shared_secret_cache_slabs) + else O_MEM(opt, "dnscrypt-nonce-cache-size", + dnscrypt_nonce_cache_size) + else O_DEC(opt, "dnscrypt-nonce-cache-slabs", + dnscrypt_nonce_cache_slabs) #endif else O_YNO(opt, "unblock-lan-zones", unblock_lan_zones) else O_YNO(opt, "insecure-lan-zones", insecure_lan_zones) diff --git a/util/config_file.h b/util/config_file.h index fdc48111e30a..5d9b2d0be15e 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -84,6 +84,8 @@ struct config_file { int do_tcp; /** tcp upstream queries (no UDP upstream queries) */ int tcp_upstream; + /** udp upstream enabled when no UDP downstream is enabled (do_udp no)*/ + int udp_upstream_without_downstream; /** maximum segment size of tcp socket which queries are answered */ int tcp_mss; /** maximum segment size of tcp socket for outgoing queries */ @@ -468,7 +470,10 @@ struct config_file { size_t dnscrypt_shared_secret_cache_size; /** number of slabs for dnscrypt shared secrets cache */ size_t dnscrypt_shared_secret_cache_slabs; - + /** memory size in bytes for dnscrypt nonces cache */ + size_t dnscrypt_nonce_cache_size; + /** number of slabs for dnscrypt nonces cache */ + size_t dnscrypt_nonce_cache_slabs; /** IPsec module */ #ifdef USE_IPSECMOD /** false to bypass the IPsec module */ @@ -494,9 +499,9 @@ struct config_file { #endif }; -/** from cfg username, after daemonise setup performed */ +/** from cfg username, after daemonize setup performed */ extern uid_t cfg_uid; -/** from cfg username, after daemonise setup performed */ +/** from cfg username, after daemonize setup performed */ extern gid_t cfg_gid; /** debug and enable small timeouts */ extern int autr_permit_small_holddown; diff --git a/util/configlexer.c b/util/configlexer.c index ee5428e8906c..93a9cc7d1379 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 234 -#define YY_END_OF_BUFFER 235 +#define YY_NUM_RULES 237 +#define YY_END_OF_BUFFER 238 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,259 +372,265 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2288] = +static yyconst flex_int16_t yy_accept[2341] = { 0, - 1, 1, 216, 216, 220, 220, 224, 224, 228, 228, - 1, 1, 235, 232, 1, 214, 214, 233, 2, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 233, 216, 217, 217, 218, 233, 220, 221, 221, 222, - 233, 227, 224, 225, 225, 226, 233, 228, 229, 229, - 230, 233, 231, 215, 2, 219, 231, 233, 232, 0, - 1, 2, 2, 2, 2, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 1, 1, 219, 219, 223, 223, 227, 227, 231, 231, + 1, 1, 238, 235, 1, 217, 217, 236, 2, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 219, 220, 220, 221, 236, 223, 224, 224, 225, + 236, 230, 227, 228, 228, 229, 236, 231, 232, 232, + 233, 236, 234, 218, 2, 222, 234, 236, 235, 0, + 1, 2, 2, 2, 2, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 216, 0, 220, 0, 227, 0, 224, 228, - 0, 231, 0, 2, 2, 231, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 219, 0, 223, 0, 230, 0, 227, + 231, 0, 234, 0, 2, 2, 234, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 231, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 234, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 231, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 77, 232, 232, 232, - 232, 232, 232, 8, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 234, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 77, + 235, 235, 235, 235, 235, 235, 8, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 88, 231, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 88, + 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 231, 232, 232, 232, 232, 232, - 232, 232, 37, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 170, 232, 14, 15, 232, - 18, 17, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, + 235, 235, 235, 235, 235, 235, 235, 37, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 170, 235, 14, 15, 235, 18, 17, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 156, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 3, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 231, 232, 232, 232, 212, 232, 232, 211, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 156, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 3, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 234, 235, 235, 235, + 214, 235, 235, 213, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 223, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 40, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 41, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 145, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 20, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 103, - 232, 223, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 226, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 40, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 41, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 145, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 20, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 103, 235, 226, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 197, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 120, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 102, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 75, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 25, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 197, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 120, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 102, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 75, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 38, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 39, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 121, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 28, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 25, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 38, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 39, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 121, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 28, 235, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 185, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 32, - 232, 33, 232, 232, 232, 78, 232, 79, 232, 232, - 76, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 7, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 163, 232, 232, 232, 232, 105, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 185, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 32, 235, + 33, 235, 235, 235, 78, 235, 79, 235, 235, 76, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 7, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 163, 235, 235, 235, 235, 105, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 29, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 137, 232, 136, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 16, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 42, 232, 232, 232, - 232, 232, 232, 232, 144, 232, 232, 232, 232, 81, - 80, 232, 232, 232, 232, 232, 232, 232, 232, 131, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 29, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 137, 235, 136, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 16, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 42, 235, 235, + 235, 235, 235, 235, 235, 144, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 89, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 60, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 64, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 36, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 134, 135, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 6, 232, + 81, 80, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 131, 235, 235, 235, 235, 235, 235, 235, 235, + 89, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 60, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 64, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 36, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 134, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 195, 232, 232, - 213, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 26, 232, - 232, 232, 232, 232, 232, 232, 232, 127, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 149, 232, - 128, 232, 232, 161, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 27, - 232, 232, 232, 232, 84, 232, 85, 232, 83, 232, - 232, 232, 232, 232, 232, 232, 232, 100, 232, 232, + 135, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 6, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 195, 235, 235, 215, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 26, 235, 235, 235, 235, 235, 235, 235, + 235, 127, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 149, 235, 128, 235, 235, 161, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 27, 235, 235, 235, 235, 84, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 184, - 232, 232, 232, 232, 232, 232, 232, 232, 129, 232, - 232, 232, 232, 232, 132, 232, 232, 160, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 74, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 34, 232, 232, 22, 232, 232, 232, 232, 19, 232, - 110, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 49, 51, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 199, 232, + 235, 85, 235, 83, 235, 235, 235, 235, 235, 235, + 235, 235, 100, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 184, 235, 235, 235, 235, 235, + 235, 235, 235, 129, 235, 235, 235, 235, 235, 132, + 235, 235, 160, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 74, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 34, 235, 235, 22, 235, + 235, 235, 235, 19, 235, 110, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, - 232, 232, 171, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 86, 232, 232, 232, - 232, 232, 232, 232, 99, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 207, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 104, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 155, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 119, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 115, 232, 122, + 235, 49, 51, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 199, 235, 235, 235, 171, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 86, 235, 235, 235, 235, 235, 235, + 235, 99, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 209, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 104, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 155, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 119, - 232, 232, 232, 232, 232, 92, 232, 232, 70, 232, - 232, 232, 232, 147, 232, 232, 232, 232, 232, 162, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 176, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 118, 232, 232, 232, 232, - 232, 52, 53, 232, 232, 232, 232, 232, 35, 232, - 232, 232, 232, 232, 59, 123, 232, 138, 232, 164, - 133, 232, 232, 232, 45, 232, 125, 232, 232, 232, - 232, 232, 9, 232, 232, 232, 73, 232, 232, 232, - 232, 189, 232, 146, 232, 232, 232, 232, 232, 232, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 115, 235, 122, 235, 235, + 235, 235, 235, 92, 235, 235, 70, 235, 235, 235, + 235, 147, 235, 235, 235, 235, 235, 162, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 176, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 118, 235, 235, 235, 235, 235, + 52, 53, 235, 235, 235, 235, 235, 35, 235, 235, + 235, 235, 235, 59, 123, 235, 138, 235, 164, 133, + 235, 235, 235, 45, 235, 125, 235, 235, 235, 235, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 106, 198, 232, 232, 232, 175, 232, 232, - 232, 232, 232, 232, 232, 232, 157, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 210, 232, 124, 232, 232, 232, 44, 46, 232, 232, - 232, 232, 232, 232, 232, 72, 232, 232, 232, 232, - 187, 232, 194, 232, 232, 232, 232, 232, 151, 23, + 235, 9, 235, 235, 235, 73, 235, 235, 235, 235, + 189, 235, 146, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 106, 198, 235, 235, 235, 235, 175, 235, + 235, 235, 235, 235, 235, 235, 235, 157, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 212, 235, 124, 235, 235, 235, 44, 46, 235, - 24, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 69, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 153, 150, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 43, 232, 232, 232, 232, 232, 232, 232, 232, 101, - 13, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 205, 232, 208, 232, 232, 232, 232, 232, 232, 12, - 232, 232, 21, 232, 232, 232, 193, 232, 196, 47, - 232, 159, 232, 152, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 114, 113, 232, + 235, 235, 235, 235, 235, 235, 72, 235, 235, 235, + 235, 187, 235, 194, 235, 235, 235, 235, 235, 151, + 23, 24, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 69, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 153, 150, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 43, 235, 235, 235, 235, 235, 235, + 235, 235, 101, 13, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 207, 235, 210, 235, 235, 235, 235, + 235, 235, 12, 235, 235, 21, 235, 235, 235, 193, - 232, 232, 232, 232, 232, 232, 154, 148, 232, 232, - 200, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 54, 232, 232, 232, 188, 232, 232, 232, - 232, 232, 158, 232, 232, 232, 232, 232, 232, 232, - 232, 48, 232, 232, 232, 82, 232, 107, 232, 109, - 139, 232, 232, 232, 112, 232, 232, 165, 232, 232, - 232, 232, 232, 94, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 172, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 140, 232, + 235, 196, 47, 235, 159, 235, 152, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 114, 113, 235, 235, 235, 235, 235, 235, 235, + 154, 148, 235, 235, 235, 200, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 54, 235, 235, + 235, 188, 235, 235, 235, 235, 235, 158, 235, 235, + 235, 235, 235, 235, 235, 235, 48, 235, 235, 235, + 82, 235, 107, 235, 109, 235, 139, 235, 235, 235, + 112, 235, 235, 165, 235, 235, 235, 235, 235, 94, - 232, 186, 232, 209, 232, 232, 232, 30, 232, 232, - 232, 232, 4, 232, 232, 93, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 168, 232, 232, 232, - 232, 232, 232, 201, 232, 232, 232, 232, 232, 232, - 174, 232, 232, 143, 232, 232, 232, 232, 232, 232, - 232, 232, 57, 232, 31, 192, 232, 169, 232, 232, - 11, 232, 232, 232, 232, 232, 232, 141, 61, 232, - 232, 232, 232, 117, 232, 232, 232, 232, 232, 96, - 232, 232, 232, 232, 232, 232, 232, 232, 173, 90, - 232, 87, 232, 232, 232, 63, 67, 62, 232, 55, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 172, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 140, 235, 235, 186, 235, + 211, 235, 235, 235, 30, 235, 235, 235, 235, 4, + 235, 235, 93, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 168, 235, 235, 235, 235, 235, + 235, 235, 201, 235, 235, 235, 235, 235, 235, 174, + 235, 235, 143, 235, 235, 235, 235, 235, 235, 235, + 235, 57, 235, 31, 192, 235, 169, 235, 235, 11, + 235, 235, 235, 235, 235, 235, 141, 61, 235, 235, - 232, 232, 232, 10, 232, 232, 232, 190, 232, 232, - 232, 116, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 68, 66, - 232, 56, 206, 232, 232, 232, 130, 232, 232, 142, - 232, 232, 232, 232, 232, 108, 50, 232, 232, 202, - 232, 232, 232, 232, 232, 232, 232, 91, 65, 97, - 98, 58, 232, 191, 111, 232, 232, 232, 167, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 71, 232, 166, 232, 183, 232, 232, 232, + 235, 235, 235, 117, 235, 235, 235, 235, 235, 96, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 173, + 90, 235, 87, 235, 235, 235, 63, 67, 62, 235, + 55, 235, 235, 235, 10, 235, 235, 235, 190, 235, + 235, 235, 235, 116, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 68, 66, 235, 56, 208, 235, 235, 235, 130, + 235, 235, 142, 235, 235, 235, 235, 235, 235, 108, + 50, 235, 235, 235, 235, 202, 235, 235, 235, 235, + 235, 235, 235, 91, 65, 97, 98, 58, 235, 191, - 232, 232, 232, 232, 5, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 95, 232, 232, 232, 232, 232, - 232, 232, 126, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 179, 232, - 232, 232, 232, 232, 203, 232, 232, 232, 232, 232, - 232, 204, 232, 232, 232, 177, 232, 180, 181, 232, - 232, 232, 232, 232, 178, 182, 0 + 111, 235, 235, 235, 235, 167, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 71, 235, 166, 235, 183, + 205, 235, 235, 235, 235, 235, 235, 235, 235, 5, + 235, 235, 235, 206, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 95, 235, 235, 235, 235, 235, 235, + 235, 235, 126, 235, 235, 235, 235, 235, 235, 235, + 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + + 235, 235, 235, 235, 235, 235, 235, 235, 216, 235, + 235, 179, 235, 235, 235, 235, 235, 203, 235, 235, + 235, 235, 235, 235, 204, 235, 235, 235, 177, 235, + 180, 181, 235, 235, 235, 235, 235, 178, 182, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -670,523 +676,533 @@ static yyconst YY_CHAR yy_meta[67] = 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[2302] = +static yyconst flex_uint16_t yy_base[2355] = { 0, 0, 0, 64, 67, 70, 72, 78, 84, 89, 92, - 131, 137, 360, 306, 96, 6594, 6594, 6594, 109, 111, + 131, 137, 333, 290, 96, 6728, 6728, 6728, 109, 111, 85, 142, 180, 129, 134, 138, 183, 50, 166, 75, - 214, 204, 124, 256, 141, 248, 304, 200, 221, 250, - 305, 299, 6594, 6594, 6594, 96, 283, 6594, 6594, 6594, - 102, 276, 265, 6594, 6594, 6594, 322, 216, 6594, 6594, - 6594, 115, 212, 6594, 326, 6594, 161, 336, 186, 343, - 115, 0, 363, 0, 0, 107, 207, 159, 217, 342, - 219, 264, 243, 332, 322, 280, 260, 347, 334, 346, - 351, 277, 352, 372, 359, 367, 392, 361, 377, 401, + 214, 204, 124, 256, 141, 248, 304, 200, 258, 286, + 246, 283, 6728, 6728, 6728, 96, 240, 6728, 6728, 6728, + 102, 231, 265, 6728, 6728, 6728, 311, 221, 6728, 6728, + 6728, 115, 212, 6728, 336, 6728, 161, 343, 207, 349, + 115, 0, 353, 0, 0, 107, 216, 159, 252, 345, + 241, 242, 243, 346, 337, 284, 335, 364, 280, 340, + 357, 347, 351, 362, 371, 372, 391, 395, 381, 401, - 402, 386, 400, 413, 408, 245, 423, 407, 404, 425, - 441, 428, 449, 436, 447, 439, 452, 462, 442, 464, - 474, 294, 468, 489, 466, 481, 475, 498, 501, 491, - 495, 507, 181, 277, 177, 427, 173, 552, 207, 151, - 391, 117, 558, 562, 0, 528, 530, 389, 544, 488, - 534, 541, 548, 540, 546, 555, 575, 569, 577, 570, - 580, 624, 584, 579, 587, 589, 572, 604, 610, 599, - 605, 631, 591, 625, 629, 648, 657, 647, 637, 655, - 658, 682, 674, 669, 670, 684, 685, 692, 697, 676, - 686, 694, 687, 696, 698, 708, 709, 701, 715, 721, + 402, 388, 393, 413, 416, 418, 428, 429, 427, 430, + 445, 433, 454, 441, 464, 446, 458, 437, 468, 491, + 457, 269, 484, 479, 481, 403, 462, 485, 511, 497, + 503, 498, 512, 186, 324, 177, 217, 173, 556, 207, + 151, 379, 117, 560, 564, 0, 530, 514, 302, 544, + 551, 555, 546, 552, 561, 548, 560, 575, 572, 573, + 508, 606, 650, 579, 589, 592, 593, 587, 607, 612, + 601, 603, 634, 595, 616, 624, 662, 642, 638, 651, + 628, 656, 693, 665, 666, 679, 677, 691, 684, 692, + 694, 690, 702, 685, 704, 711, 707, 709, 719, 698, - 711, 727, 723, 735, 718, 749, 733, 758, 736, 744, - 748, 766, 750, 753, 771, 779, 775, 782, 763, 776, - 762, 783, 792, 789, 790, 805, 799, 793, 809, 798, - 796, 808, 826, 828, 836, 590, 820, 839, 841, 832, - 831, 847, 845, 834, 856, 857, 867, 851, 875, 886, - 862, 869, 864, 877, 891, 894, 881, 884, 883, 902, - 898, 917, 910, 900, 928, 911, 936, 924, 938, 921, - 930, 937, 905, 943, 957, 960, 962, 967, 935, 973, - 981, 964, 980, 983, 970, 984, 993, 994, 991, 997, - 1008, 1020, 1024, 1001, 1017, 1007, 1035, 1032, 1040, 1019, + 723, 721, 738, 726, 748, 732, 750, 737, 762, 747, + 759, 751, 768, 753, 774, 764, 783, 778, 792, 788, + 770, 786, 781, 794, 797, 799, 801, 814, 803, 808, + 819, 824, 828, 787, 813, 830, 841, 246, 826, 846, + 849, 840, 833, 851, 857, 843, 863, 858, 867, 865, + 875, 887, 869, 868, 870, 885, 899, 901, 888, 905, + 890, 902, 892, 917, 911, 916, 918, 912, 937, 913, + 931, 929, 941, 960, 537, 956, 950, 951, 965, 976, + 585, 983, 971, 980, 986, 984, 982, 989, 981, 994, + 1000, 1011, 1012, 1015, 1025, 1010, 1027, 1031, 1038, 1029, - 1030, 1041, 1066, 1056, 1111, 1059, 1062, 1078, 1054, 1057, - 1064, 1072, 1063, 1105, 1084, 1088, 1090, 1101, 1115, 1106, - 1129, 1102, 1119, 1137, 1144, 1134, 1139, 1140, 1164, 1148, - 1149, 1153, 1146, 1172, 1166, 1175, 1163, 1171, 1191, 1180, - 1178, 1199, 1195, 1182, 1193, 1209, 1219, 1212, 1205, 1227, - 1216, 1230, 1220, 1236, 1224, 1241, 1232, 1243, 1240, 1246, - 1254, 1257, 1264, 1269, 1250, 1277, 6594, 1281, 1262, 1279, - 1285, 1270, 1288, 6594, 1293, 1275, 1289, 1291, 1298, 1314, - 1309, 1316, 1304, 1306, 1325, 1340, 1315, 1327, 1317, 1336, - 1333, 1334, 1342, 1346, 1351, 1397, 1345, 1356, 1352, 1382, + 1047, 1039, 1042, 1035, 1057, 1061, 1058, 1106, 1074, 1067, + 1083, 1075, 1073, 1090, 1077, 1099, 1111, 1104, 1110, 1114, + 1124, 1123, 1129, 1054, 1126, 1131, 1145, 1084, 1135, 1147, + 1162, 1166, 1148, 1153, 1161, 1164, 1174, 1175, 1180, 1165, + 1171, 1200, 1188, 1203, 1210, 1204, 1087, 1196, 1212, 1215, + 1211, 1201, 1224, 1237, 1227, 1240, 1228, 1238, 1230, 1239, + 1257, 1249, 1251, 1256, 1265, 1270, 1267, 1252, 1274, 6728, + 1280, 1261, 1278, 1284, 1283, 1279, 6728, 1294, 1295, 1290, + 1321, 1310, 1318, 1311, 1316, 1331, 1307, 1326, 1337, 1322, + 1330, 1338, 1340, 1343, 1344, 1363, 1350, 1353, 1399, 1349, - 1377, 1361, 1390, 1369, 1392, 1384, 1388, 1395, 1409, 1407, - 1426, 1424, 1419, 1420, 1436, 6594, 1437, 1417, 1427, 1430, - 1445, 1446, 1450, 1453, 1467, 1475, 1462, 1476, 1466, 1479, - 1468, 1480, 1481, 1471, 1488, 1496, 1486, 1492, 1497, 1505, - 1516, 1518, 1525, 1500, 1517, 1509, 1526, 1529, 1530, 1531, - 1519, 1536, 1520, 1543, 1545, 1551, 1563, 1524, 1553, 1555, - 1569, 1578, 1562, 1564, 1589, 1577, 1582, 1591, 1592, 1594, - 1598, 1602, 1603, 1611, 1607, 1616, 1612, 1621, 1629, 1630, - 1626, 1618, 1635, 1642, 1641, 1645, 1648, 1647, 1666, 1654, - 1657, 1669, 1658, 1656, 1668, 1685, 1675, 1683, 1705, 1681, + 1356, 1365, 1384, 1385, 1394, 1383, 1408, 1379, 1412, 1402, + 1410, 1423, 1414, 1421, 1441, 1442, 1428, 1439, 1450, 6728, + 1449, 1396, 1445, 1440, 1455, 1448, 1460, 1463, 1464, 1468, + 1467, 1497, 1481, 1496, 1485, 1498, 1501, 1486, 1491, 1514, + 1506, 1510, 1511, 1520, 1516, 1517, 1526, 1515, 1530, 1521, + 1531, 1518, 1555, 1547, 1534, 1549, 1544, 1560, 1563, 1542, + 1572, 1559, 1569, 1567, 1583, 1587, 1579, 1574, 1578, 1591, + 1595, 1604, 1612, 1616, 1597, 1596, 1623, 1620, 1610, 1622, + 1637, 1627, 1635, 1639, 1636, 1640, 1632, 1650, 1647, 1656, + 1667, 1666, 1680, 1659, 1663, 1683, 1662, 1673, 1684, 1689, - 1664, 1697, 1684, 1704, 1700, 1701, 1698, 1702, 1716, 1712, - 1708, 1724, 1733, 1726, 1739, 1735, 1736, 1737, 1753, 1729, - 1756, 1743, 1758, 1760, 1764, 1767, 1768, 1769, 1784, 1779, - 1783, 1794, 1778, 1798, 1788, 1805, 1809, 1791, 1814, 1822, - 1826, 1818, 6594, 1810, 1833, 1824, 1834, 1830, 1825, 1851, - 1839, 1837, 1848, 1852, 1896, 6594, 1853, 6594, 6594, 1850, - 6594, 6594, 1854, 1856, 1880, 1858, 1875, 1892, 1945, 1893, - 1883, 1879, 1887, 1906, 1913, 1910, 1926, 1914, 1933, 1911, - 1948, 1950, 1956, 1953, 1940, 1962, 1961, 1968, 1986, 1969, - 1983, 1985, 1903, 1988, 1996, 2002, 2004, 1976, 2010, 2003, + 1679, 1690, 1701, 1703, 1688, 1710, 1700, 1718, 1705, 1706, + 1707, 1715, 1717, 1716, 1734, 1736, 1737, 1740, 1741, 1738, + 1739, 1759, 1765, 1751, 1761, 1766, 1763, 1775, 1764, 1773, + 1784, 1788, 1796, 1798, 1787, 1802, 1799, 1804, 1810, 1807, + 1814, 1816, 1806, 1813, 1841, 1824, 1829, 6728, 1830, 1746, + 1828, 1854, 1840, 1835, 1864, 1855, 1843, 1846, 1866, 1909, + 6728, 1845, 6728, 6728, 1857, 6728, 6728, 1869, 1877, 1885, + 1896, 1898, 1900, 1958, 1902, 1882, 1888, 1867, 1905, 1911, + 1910, 1919, 1924, 1941, 1947, 1937, 1948, 1954, 1945, 1944, + 1969, 1968, 1972, 1974, 1992, 1979, 1984, 1987, 1990, 2003, - 2005, 2008, 2012, 2022, 2014, 2017, 2015, 2018, 2039, 2042, - 2027, 2033, 6594, 2044, 2046, 2054, 2051, 2045, 2061, 2043, - 2049, 2065, 2063, 2088, 6594, 2092, 2093, 2075, 2095, 2076, - 2078, 2082, 2086, 2101, 2103, 2090, 2113, 2102, 2124, 2125, - 2135, 2116, 2122, 2130, 2150, 2151, 2143, 2129, 2152, 2149, - 2134, 2157, 2165, 2170, 2162, 2174, 2188, 2166, 2167, 2177, - 2190, 2181, 2194, 2183, 6594, 2179, 2191, 6594, 2189, 2199, - 2245, 2210, 2208, 2204, 2215, 2224, 2218, 2236, 2230, 2258, - 2235, 2255, 2237, 2265, 2264, 2260, 2257, 2275, 2267, 2295, - 2298, 156, 2325, 2291, 2305, 2294, 2297, 2311, 2314, 2307, + 1922, 2007, 1983, 2018, 2013, 2017, 2014, 2019, 2006, 2021, + 2029, 2028, 2031, 2033, 2030, 2057, 2040, 6728, 2052, 2053, + 2063, 2065, 2050, 2067, 2056, 2054, 2069, 2048, 2098, 6728, + 2083, 2076, 2081, 2099, 2086, 2091, 2092, 2095, 2097, 2112, + 2103, 2108, 2123, 2125, 2126, 2138, 2120, 2129, 2131, 2128, + 2141, 2151, 2153, 2143, 2154, 2155, 2142, 2172, 2156, 2176, + 2159, 2178, 2180, 2165, 2194, 2184, 2195, 2181, 2193, 2190, + 6728, 2186, 2200, 6728, 2199, 2204, 2250, 2215, 2229, 2220, + 2205, 2236, 2223, 2243, 2231, 2249, 2237, 2264, 2254, 2274, + 2278, 2270, 2273, 2276, 2281, 2297, 2285, 156, 2324, 2292, - 2313, 2301, 2329, 2323, 2339, 6594, 2318, 2346, 2336, 2352, - 2334, 2354, 2345, 2353, 2358, 2341, 2374, 2368, 2369, 2378, - 2370, 2373, 2379, 2384, 2389, 2407, 6594, 2394, 2400, 2385, - 2409, 2413, 2417, 2423, 2420, 2430, 2412, 2425, 6594, 2416, - 2442, 2459, 2445, 2427, 2444, 2446, 2458, 2447, 2473, 2456, - 2457, 2465, 2466, 2474, 2475, 2469, 6594, 2472, 2494, 2489, - 2498, 2502, 2496, 2509, 2497, 2499, 2493, 2504, 2524, 2522, - 2523, 6594, 2516, 2529, 2519, 2521, 2540, 2552, 2538, 2557, - 2558, 2544, 2550, 2554, 121, 2551, 2559, 2555, 2545, 6594, - 2556, 68, 2573, 2561, 2572, 2578, 2599, 2593, 2602, 2601, + 2302, 2295, 2301, 2314, 2321, 2310, 2306, 2308, 2319, 2339, + 2340, 6728, 2328, 2346, 2337, 2345, 2365, 2357, 2342, 2354, + 2359, 2364, 2379, 2366, 2377, 2373, 2367, 2383, 2381, 2389, + 2390, 2384, 6728, 2395, 2393, 2400, 2388, 2408, 2414, 2416, + 2420, 2430, 2437, 2425, 6728, 2417, 2442, 2449, 2448, 2440, + 2435, 2444, 2439, 2441, 2460, 2452, 2465, 2467, 2458, 2478, + 2479, 2477, 6728, 2485, 2480, 2487, 2495, 2494, 2490, 2499, + 2497, 2500, 2505, 2518, 2514, 2523, 2529, 6728, 2520, 2510, + 2522, 2521, 2524, 2548, 2549, 2542, 2554, 2553, 2543, 2550, + 2555, 121, 2556, 2563, 2552, 2560, 6728, 2569, 68, 2578, - 2594, 2595, 2605, 2596, 2588, 2617, 2603, 2620, 2613, 2627, - 2625, 2636, 2626, 2645, 6594, 2647, 2644, 2651, 2653, 2652, - 2638, 2672, 2657, 2668, 2685, 2673, 6594, 2659, 2689, 2688, - 2683, 2677, 2686, 2695, 2691, 2707, 2684, 2709, 2715, 2716, - 2713, 2717, 2729, 6594, 2712, 2732, 2739, 2725, 2730, 2743, - 2768, 2742, 2753, 2758, 2748, 2794, 2764, 2769, 2714, 2782, - 2774, 2784, 2787, 2795, 2788, 2798, 2814, 2819, 2821, 2763, - 2833, 2836, 2827, 2834, 2857, 2841, 164, 2826, 6594, 2843, - 2840, 2831, 2863, 2883, 2865, 2876, 2861, 2878, 2867, 2882, - 2897, 2892, 2898, 2870, 2891, 2812, 2900, 2917, 6594, 2918, + 2580, 2573, 2583, 2602, 2598, 2604, 2608, 2597, 2600, 2612, + 2594, 2599, 2616, 2619, 2628, 2632, 2635, 2624, 2631, 2633, + 2651, 6728, 2662, 2652, 2641, 2658, 2668, 2655, 2677, 2661, + 2682, 2676, 2683, 6728, 2687, 2692, 2697, 2690, 2688, 2703, + 2704, 2700, 2716, 2699, 2719, 2715, 2725, 2724, 2729, 2727, + 6728, 2730, 2739, 2733, 2738, 2745, 2743, 2774, 2754, 2761, + 2765, 2782, 2806, 2766, 2777, 2764, 2789, 2791, 2785, 2803, + 2817, 2823, 2800, 2827, 2821, 2818, 2810, 2804, 2812, 2835, + 2830, 2859, 2842, 164, 2847, 6728, 2856, 2849, 2853, 2857, + 2894, 2851, 2863, 2869, 2874, 2883, 2876, 2891, 2898, 2893, - 2924, 2907, 2920, 2910, 2931, 2927, 2912, 2935, 2941, 2944, - 2928, 2945, 2939, 2946, 2959, 2962, 2957, 6594, 2862, 2951, - 2947, 2980, 2972, 2963, 2974, 2983, 2967, 2973, 2975, 3000, - 2991, 2986, 2992, 2989, 2997, 3016, 3001, 3009, 3008, 3018, - 3022, 3014, 3024, 6594, 3020, 3057, 3031, 3038, 3041, 3044, - 3064, 3052, 3049, 3065, 3066, 3067, 3056, 3061, 3077, 3080, - 3082, 3081, 6594, 3094, 3088, 3084, 3104, 3096, 3102, 3105, - 3099, 3108, 3112, 3129, 3123, 3115, 3135, 3133, 3132, 3128, - 3147, 3158, 3159, 3156, 3163, 6594, 3166, 3165, 3161, 3153, - 3167, 3162, 3175, 3172, 3183, 3179, 3190, 3191, 3188, 3216, + 2887, 2908, 2916, 2902, 2919, 6728, 2920, 2921, 2903, 2927, + 2925, 2928, 2931, 2930, 2933, 2939, 2937, 2948, 2957, 2960, + 2940, 2943, 2967, 2964, 2963, 6728, 2979, 2982, 2975, 2984, + 2972, 2966, 2986, 2995, 2990, 2994, 2978, 3009, 3005, 2996, + 3003, 3004, 3002, 3026, 3013, 3023, 3017, 3029, 3038, 3028, + 3044, 6728, 3039, 3064, 3054, 3059, 3043, 3053, 3074, 3088, + 3070, 3073, 3078, 3075, 3071, 3084, 3081, 3086, 3105, 3094, + 3097, 6728, 3114, 3108, 3106, 3115, 3122, 3113, 3123, 3124, + 3141, 3140, 3151, 3130, 3149, 3159, 3154, 3155, 3145, 3157, + 3164, 3176, 3178, 3189, 6728, 3177, 3188, 3171, 3181, 3183, - 3224, 3193, 3202, 3204, 3206, 3217, 3200, 3209, 3229, 3242, - 3219, 3220, 3222, 3240, 3231, 3233, 3246, 3256, 3260, 3252, - 3270, 3266, 3272, 3262, 3265, 3267, 3294, 6594, 3258, 3279, - 3277, 3303, 3305, 3306, 3291, 3297, 3292, 3287, 3316, 6594, - 3299, 6594, 3320, 3327, 3334, 6594, 3331, 6594, 3341, 3329, - 6594, 3343, 3347, 3335, 3324, 3339, 3352, 3344, 3360, 3361, - 3358, 3362, 3342, 3356, 3377, 3374, 3390, 6594, 3382, 3379, - 3384, 3399, 3391, 3383, 3387, 3404, 3410, 3392, 3414, 3423, - 3426, 3409, 3437, 6594, 3419, 3435, 3425, 3432, 6594, 3421, - 3446, 3448, 3436, 3442, 3455, 3450, 3456, 3459, 3484, 3466, + 3185, 3187, 3201, 3191, 3205, 3204, 3206, 3203, 3239, 3242, + 3221, 3216, 3225, 3226, 3228, 3224, 3227, 3251, 3261, 3240, + 3255, 3256, 3260, 3249, 3237, 3265, 3269, 3278, 3277, 3291, + 3288, 3290, 3282, 3301, 3285, 3317, 6728, 3304, 3284, 3299, + 3308, 3325, 3326, 3312, 3315, 3314, 3343, 3345, 6728, 3331, + 6728, 3342, 3353, 3348, 6728, 3355, 6728, 3362, 3350, 6728, + 3361, 3367, 3356, 3340, 3372, 3370, 3374, 3363, 3385, 3382, + 3376, 3401, 3388, 3393, 3403, 3389, 3409, 6728, 3417, 3400, + 3405, 3420, 3428, 3422, 3423, 3429, 3434, 3431, 3450, 3435, + 3427, 3437, 3458, 6728, 3445, 3463, 3449, 3465, 6728, 3456, - 3462, 3461, 3486, 3471, 3477, 3497, 3498, 3482, 3489, 3483, - 3506, 3507, 3510, 3492, 3516, 3520, 3517, 3513, 3518, 3526, - 3514, 3536, 3539, 3541, 3537, 3532, 3540, 3542, 3549, 6594, - 3557, 3555, 3566, 3561, 3559, 3558, 3567, 3577, 3581, 3565, - 3589, 3594, 3584, 6594, 3599, 6594, 3585, 3605, 3609, 3612, - 3601, 3608, 3618, 3616, 3629, 3641, 3622, 3643, 3624, 3635, - 3644, 3636, 3645, 3649, 3652, 6594, 3642, 3656, 3672, 3662, - 3676, 3661, 3689, 3686, 3669, 3702, 6594, 3711, 3691, 3707, - 3713, 3705, 3716, 3714, 6594, 3699, 3726, 3715, 3721, 6594, - 6594, 3708, 3725, 3731, 3732, 3737, 3754, 3745, 3747, 6594, + 3472, 3474, 3467, 3464, 3478, 3484, 3488, 3485, 3476, 3507, + 3479, 3499, 3508, 3514, 3502, 3515, 3526, 3521, 3512, 3509, + 3523, 3537, 3533, 3552, 3535, 3546, 3556, 3554, 3545, 3541, + 3547, 3555, 3557, 3564, 3553, 3580, 3572, 3575, 3573, 3583, + 6728, 3589, 3581, 3600, 3596, 3591, 3598, 3593, 3603, 3602, + 3619, 3608, 3628, 3620, 6728, 3630, 6728, 3616, 3626, 3649, + 3648, 3633, 3653, 3638, 3647, 3643, 3657, 3664, 3582, 3659, + 3667, 3675, 3672, 3668, 3676, 3685, 6728, 3679, 3680, 3700, + 3689, 3699, 3706, 3719, 3709, 3695, 3742, 6728, 3728, 3712, + 3729, 3746, 3738, 3749, 3744, 6728, 3731, 3754, 3739, 3759, - 3739, 3742, 3759, 3768, 3770, 3771, 3758, 3755, 6594, 3764, - 3780, 3782, 3777, 3781, 3787, 3791, 3792, 3806, 3801, 3797, - 3811, 3816, 3818, 3822, 6594, 3820, 3823, 3827, 3819, 3828, - 3809, 3838, 3835, 3843, 3836, 3842, 3852, 3856, 3862, 3863, - 3846, 3859, 3875, 3881, 3876, 3865, 3880, 3877, 3886, 3882, - 3889, 3895, 3892, 3919, 3902, 6594, 3920, 3899, 3923, 3903, - 3918, 3925, 3930, 3939, 3948, 3916, 3922, 3943, 3944, 6594, - 3956, 3927, 3951, 3954, 3957, 3978, 3950, 3970, 3955, 3974, - 3969, 3984, 3973, 3980, 3997, 3979, 6594, 6594, 3999, 3983, - 4009, 4000, 4006, 4005, 3992, 4020, 4011, 4007, 6594, 4025, + 6728, 6728, 3745, 3755, 3740, 3756, 3765, 3772, 3780, 3771, + 3770, 6728, 3793, 3776, 3790, 3795, 3797, 3799, 3801, 3782, + 6728, 3791, 3808, 3811, 3809, 3807, 3818, 3820, 3821, 3845, + 3832, 3824, 3843, 3850, 3851, 3853, 6728, 3855, 3847, 3858, + 3852, 3859, 3862, 3870, 3871, 3857, 3876, 3868, 3887, 3889, + 3884, 3900, 3897, 3888, 3895, 3904, 3912, 3909, 3915, 3898, + 3913, 3921, 3929, 3917, 3943, 3945, 3952, 3947, 6728, 3956, + 3935, 3957, 3933, 3951, 3955, 3962, 3964, 3974, 3972, 3975, + 3969, 3977, 6728, 3971, 3980, 3998, 3999, 3990, 4008, 4002, + 3989, 3985, 4018, 4004, 4022, 4014, 4017, 4027, 4040, 6728, - 4033, 4019, 4036, 4049, 4054, 4051, 4048, 4046, 4038, 4040, - 4044, 4065, 4061, 4063, 4071, 4069, 4073, 6594, 4075, 4076, - 6594, 4078, 4083, 4095, 4098, 4108, 4115, 4109, 4092, 4103, - 4112, 4120, 4123, 4138, 4134, 4119, 4125, 4146, 6594, 4136, - 4139, 4142, 4124, 4160, 4135, 4161, 4155, 6594, 4165, 4170, - 4174, 4177, 4158, 4184, 4180, 4185, 4183, 4182, 6594, 4188, - 6594, 4196, 4194, 6594, 4202, 4207, 4200, 4213, 4198, 4223, - 4208, 4204, 4227, 4220, 4218, 4235, 4243, 4247, 4230, 6594, - 4255, 4234, 4249, 4250, 6594, 4253, 6594, 4257, 6594, 4245, - 4254, 4274, 4261, 4288, 4290, 4291, 4285, 6594, 4295, 4276, + 6728, 4033, 4025, 4043, 4032, 4041, 4044, 4036, 4050, 4038, + 4056, 6728, 4071, 4061, 4059, 4074, 4063, 4087, 4084, 4080, + 4083, 4073, 4075, 4097, 4101, 4078, 4089, 4112, 4102, 4114, + 6728, 4103, 4110, 6728, 4108, 4128, 4120, 4124, 4138, 4146, + 4143, 4129, 4144, 4147, 4151, 4148, 4168, 4169, 4171, 4153, + 4160, 4174, 6728, 4164, 4177, 4170, 4161, 4188, 4178, 4195, + 4180, 6728, 4190, 4201, 4210, 4211, 4194, 4217, 4212, 4219, + 4220, 4207, 6728, 4225, 6728, 4228, 4221, 6728, 4223, 4237, + 4227, 4236, 4247, 4260, 4261, 4240, 4248, 4262, 4251, 4253, + 4273, 4274, 4275, 4267, 6728, 4285, 4264, 4294, 4296, 6728, - 4297, 4299, 4283, 4294, 4301, 4315, 4310, 4317, 4324, 6594, - 4287, 4326, 4339, 4323, 4325, 4344, 4350, 4329, 6594, 4353, - 4346, 4342, 4356, 4357, 6594, 4369, 4365, 6594, 4372, 4362, - 4371, 4374, 4388, 4376, 4395, 4375, 4384, 4412, 4405, 4396, - 4406, 6594, 4399, 4402, 4419, 4420, 4413, 4415, 4417, 4425, - 4432, 4426, 4448, 4450, 4454, 4456, 4443, 4460, 4459, 4455, - 6594, 4469, 4475, 6594, 4471, 4452, 4470, 4473, 6594, 4486, - 6594, 4497, 4491, 4483, 4495, 4509, 4511, 4512, 4498, 4510, - 4516, 4513, 4528, 4519, 4522, 6594, 6594, 4529, 4544, 4525, - 4550, 4556, 4539, 4540, 4565, 4563, 4562, 4569, 6594, 4560, + 4284, 6728, 4291, 6728, 4295, 4300, 4290, 4298, 4318, 4324, + 4316, 4312, 6728, 4321, 4309, 4330, 4335, 4333, 4337, 4338, + 4340, 4342, 4346, 4353, 6728, 4343, 4362, 4366, 4357, 4358, + 4379, 4386, 4367, 6728, 4392, 4381, 4380, 4395, 4389, 6728, + 4394, 4402, 6728, 4401, 4411, 4406, 4407, 4418, 4421, 4430, + 4419, 4416, 4422, 4439, 4427, 4433, 6728, 4431, 4438, 4451, + 4454, 4446, 4449, 4475, 4467, 4478, 4462, 4482, 4484, 4481, + 4489, 4465, 4487, 4488, 4492, 6728, 4495, 4498, 6728, 4508, + 4506, 4505, 4512, 6728, 4530, 6728, 4531, 4511, 4514, 4515, + 4535, 4543, 4538, 4545, 4527, 4548, 4554, 4553, 4582, 4560, - 4553, 4571, 6594, 4554, 4577, 4576, 4578, 4583, 4589, 4592, - 4594, 4609, 4596, 4612, 4598, 4595, 6594, 4610, 4604, 4606, - 4623, 4622, 4620, 4625, 6594, 4633, 4618, 4650, 4645, 4641, - 4649, 4660, 4663, 4664, 4651, 4652, 4670, 4672, 4667, 4669, - 6594, 4678, 4675, 4680, 4691, 4686, 4704, 4687, 4709, 4694, - 4715, 4716, 4705, 4698, 6594, 4718, 4720, 4707, 4724, 4710, - 4729, 4737, 4747, 4738, 4722, 4739, 4733, 4757, 6594, 4749, - 4750, 4743, 4755, 4761, 4753, 4771, 4767, 4776, 4765, 4777, - 4780, 4793, 6594, 4785, 4796, 4781, 4798, 4788, 4808, 4812, - 4804, 4818, 4820, 4821, 4823, 4807, 4822, 6594, 4831, 6594, + 4558, 6728, 6728, 4569, 4587, 4574, 4584, 4589, 4579, 4576, + 4565, 4592, 4598, 4595, 4604, 6728, 4603, 4606, 4608, 6728, + 4611, 4615, 4605, 4622, 4618, 4625, 4630, 4641, 4640, 4633, + 4649, 4632, 4642, 6728, 4647, 4655, 4638, 4653, 4656, 4667, + 4663, 6728, 4671, 4687, 4688, 4682, 4683, 4689, 4699, 4692, + 4696, 4693, 4690, 4706, 4716, 4712, 4726, 6728, 4727, 4717, + 4718, 4709, 4740, 4741, 4723, 4746, 4729, 4749, 4751, 4743, + 4744, 6728, 4755, 4761, 4753, 4762, 4748, 4771, 4776, 4780, + 4783, 4767, 4770, 4773, 4791, 6728, 4775, 4778, 4794, 4807, + 4814, 4797, 4815, 4800, 4810, 4799, 4828, 4821, 4831, 6728, - 4832, 4842, 4847, 4854, 4840, 6594, 4846, 4856, 6594, 4859, - 4850, 4857, 4864, 6594, 4877, 4870, 4874, 4873, 4852, 6594, - 4895, 4891, 4910, 4911, 4908, 4899, 4914, 4897, 4902, 4898, - 4918, 6594, 4923, 4925, 4920, 4926, 4912, 4929, 4934, 4947, - 4937, 4955, 4935, 4959, 4945, 6594, 4950, 4962, 4973, 4961, - 4968, 6594, 6594, 4971, 4978, 4977, 4975, 4982, 6594, 4987, - 4976, 4996, 4999, 5002, 6594, 6594, 5013, 6594, 4997, 6594, - 6594, 5012, 5014, 5016, 6594, 5020, 6594, 5026, 5021, 5009, - 5005, 5028, 6594, 5018, 5038, 5030, 6594, 5042, 5036, 5040, - 5041, 6594, 5034, 6594, 5061, 5059, 5065, 5064, 5057, 5060, + 4823, 4827, 4824, 4826, 4819, 4856, 4858, 4850, 4855, 4859, + 4860, 4862, 4866, 4875, 4870, 6728, 4852, 6728, 4885, 4877, + 4886, 4899, 4889, 6728, 4888, 4897, 6728, 4898, 4901, 4904, + 4902, 6728, 4915, 4927, 4920, 4922, 4923, 6728, 4939, 4945, + 4938, 4925, 4956, 4953, 4941, 4957, 4950, 4946, 4944, 4968, + 6728, 4970, 4961, 4976, 4973, 4959, 4972, 4967, 4989, 4982, + 4999, 5003, 5001, 4994, 6728, 4995, 5005, 5018, 5006, 5013, + 6728, 6728, 5009, 5016, 5021, 5020, 5026, 6728, 5031, 5030, + 5037, 5052, 5047, 6728, 6728, 5055, 6728, 5041, 6728, 6728, + 5058, 5060, 5061, 6728, 5066, 6728, 5072, 5068, 5054, 5053, - 5067, 5073, 5075, 5076, 5068, 5063, 5078, 5084, 5092, 5102, - 5098, 5107, 5093, 5114, 5106, 5090, 5101, 5105, 5100, 5108, - 5125, 5129, 5128, 5132, 5134, 5141, 5133, 5145, 5153, 5162, - 5163, 5165, 6594, 6594, 5149, 5159, 5156, 6594, 5168, 5151, - 5160, 5171, 5190, 5180, 5183, 5178, 6594, 5203, 5195, 5193, - 5205, 5198, 5196, 5206, 5192, 5202, 5216, 5234, 5241, 5219, - 5227, 5225, 5240, 5229, 5230, 5248, 5256, 5247, 5257, 5255, - 6594, 5243, 6594, 5251, 5246, 5269, 6594, 6594, 5270, 5276, - 5265, 5280, 5273, 5281, 5294, 6594, 5284, 5297, 5302, 5292, - 6594, 5304, 6594, 5309, 5293, 5310, 5308, 5314, 6594, 6594, + 5073, 6728, 5079, 5077, 5084, 6728, 5082, 5076, 5083, 5092, + 6728, 5094, 6728, 5111, 5108, 5109, 5113, 5103, 5106, 5118, + 5122, 5124, 5126, 5119, 5125, 5128, 5136, 5142, 5130, 5147, + 5140, 5156, 5145, 5162, 5157, 5150, 5151, 5155, 5167, 5182, + 5172, 5170, 5183, 5158, 5181, 5187, 5188, 5200, 5206, 5212, + 5213, 5215, 6728, 6728, 5218, 5203, 5209, 5207, 6728, 5217, + 5223, 5227, 5231, 5243, 5235, 5238, 5258, 6728, 5257, 5254, + 5242, 5264, 5246, 5248, 5262, 5276, 5275, 5272, 5274, 5240, + 5277, 5281, 5278, 5301, 5289, 5290, 5307, 5298, 5311, 5313, + 5314, 6728, 5299, 6728, 5320, 5323, 5325, 6728, 6728, 5326, - 6594, 5315, 5311, 5317, 5318, 5329, 5332, 5342, 5331, 5340, - 6594, 5336, 5344, 5357, 5337, 5353, 5355, 5358, 5361, 5373, - 5367, 5369, 5368, 5376, 5386, 5387, 6594, 6594, 5377, 5406, - 5393, 5397, 5396, 5401, 5404, 5403, 5392, 5408, 5410, 5399, - 6594, 5418, 5417, 5423, 5427, 5437, 5438, 5450, 5443, 6594, - 6594, 5434, 5435, 5439, 5456, 5444, 5448, 5445, 5459, 5462, - 6594, 5461, 6594, 5471, 5465, 5498, 5494, 5487, 5492, 6594, - 5490, 5488, 6594, 5496, 5493, 5489, 6594, 5505, 6594, 6594, - 5502, 6594, 5510, 6594, 5515, 5511, 5509, 5537, 5541, 5542, - 5544, 5545, 5528, 5533, 5553, 5549, 5548, 6594, 6594, 5556, + 5327, 5331, 5333, 5337, 5332, 5345, 6728, 5336, 5357, 5335, + 5352, 6728, 5366, 6728, 5367, 5350, 5368, 5375, 5374, 6728, + 6728, 6728, 5382, 5359, 5372, 5378, 5384, 5376, 5386, 5392, + 5379, 5396, 6728, 5405, 5410, 5416, 5407, 5397, 5426, 5423, + 5424, 5433, 5431, 5434, 5425, 5439, 5438, 5441, 6728, 6728, + 5432, 5443, 5469, 5449, 5450, 5479, 5471, 5473, 5474, 5465, + 5476, 5481, 5477, 6728, 5482, 5488, 5472, 5501, 5509, 5510, + 5494, 5515, 6728, 6728, 5504, 5505, 5507, 5527, 5511, 5520, + 5528, 5533, 5521, 6728, 5534, 6728, 5538, 5535, 5564, 5544, + 5555, 5567, 6728, 5559, 5556, 6728, 5570, 5561, 5562, 6728, - 5527, 5555, 5558, 5538, 5562, 5559, 6594, 6594, 5573, 5581, - 6594, 5567, 5588, 5579, 5582, 5577, 5583, 5585, 5598, 5594, - 5593, 5608, 5606, 5615, 5628, 5620, 5612, 5611, 5619, 5623, - 5621, 5633, 6594, 5637, 5646, 5634, 6594, 5651, 5650, 5662, - 5660, 5658, 6594, 5648, 5669, 5670, 5672, 5656, 5691, 5675, - 5673, 6594, 5690, 5686, 5692, 6594, 5678, 6594, 5694, 6594, - 6594, 5702, 5709, 5705, 6594, 5711, 5719, 6594, 5712, 5715, - 5708, 5721, 5722, 6594, 5730, 5739, 5726, 5734, 5735, 5753, - 5741, 5750, 5738, 5760, 6594, 5745, 5754, 5770, 5761, 5771, - 5767, 5757, 5780, 5781, 5777, 5766, 5778, 5787, 6594, 5795, + 5578, 6728, 6728, 5573, 6728, 5560, 6728, 5583, 5591, 5581, + 5590, 5584, 5597, 5609, 5599, 5612, 5595, 5601, 5621, 5623, + 5625, 6728, 6728, 5632, 5608, 5627, 5626, 5618, 5630, 5637, + 6728, 6728, 5639, 5638, 5648, 6728, 5622, 5652, 5645, 5664, + 5649, 5657, 5654, 5680, 5666, 5675, 5673, 5686, 5696, 5698, + 5689, 5701, 5688, 5691, 5694, 5700, 5702, 6728, 5709, 5728, + 5716, 6728, 5711, 5730, 5739, 5735, 5732, 6728, 5724, 5745, + 5744, 5743, 5738, 5778, 5747, 5754, 6728, 5750, 5767, 5770, + 6728, 5758, 6728, 5772, 6728, 5765, 6728, 5788, 5790, 5780, + 6728, 5795, 5797, 6728, 5796, 5799, 5792, 5787, 5816, 6728, - 5810, 6594, 5790, 6594, 5812, 5797, 5815, 6594, 5818, 5801, - 5800, 5816, 6594, 5824, 5817, 6594, 5807, 5830, 5832, 5827, - 5822, 5834, 5833, 5855, 5861, 5865, 6594, 5857, 5847, 5870, - 5871, 5872, 5858, 6594, 5873, 5874, 5862, 5877, 5892, 5886, - 6594, 5887, 5888, 6594, 5890, 5906, 5898, 5913, 5895, 5916, - 5920, 5919, 6594, 5921, 6594, 6594, 5904, 6594, 5905, 5925, - 6594, 5928, 5915, 5937, 5932, 5935, 5939, 6594, 6594, 5946, - 5950, 5949, 5956, 6594, 5943, 5945, 5962, 5966, 5968, 6594, - 5971, 5955, 5976, 5973, 5970, 5990, 5983, 5994, 6594, 6594, - 5989, 6594, 6011, 6012, 6010, 6594, 6594, 6594, 6015, 6594, + 5761, 5824, 5825, 5804, 5814, 5813, 5831, 5819, 5843, 5817, + 5845, 6728, 5828, 5835, 5849, 5840, 5856, 5857, 5838, 5852, + 5865, 5863, 5859, 5875, 5869, 6728, 5878, 5882, 6728, 5870, + 6728, 5889, 5883, 5896, 6728, 5894, 5884, 5880, 5887, 6728, + 5907, 5905, 6728, 5895, 5913, 5920, 5915, 5909, 5918, 5926, + 5921, 5925, 5936, 5942, 6728, 5945, 5934, 5932, 5949, 5947, + 5960, 5940, 6728, 5966, 5968, 5956, 5965, 5961, 5962, 6728, + 5980, 5963, 6728, 5986, 5989, 5977, 5992, 5996, 5999, 6001, + 5998, 6728, 6008, 6728, 6728, 5993, 6728, 5988, 6013, 6728, + 6011, 6015, 6007, 6022, 6017, 6028, 6728, 6728, 6018, 6041, - 6019, 6026, 6016, 6594, 6022, 6027, 6030, 6594, 6028, 6025, - 6033, 6594, 6038, 6031, 6049, 6051, 6061, 6047, 6058, 6064, - 6071, 6043, 6054, 6052, 6075, 6077, 6065, 6086, 6594, 6594, - 6087, 6594, 6594, 6093, 6094, 6097, 6594, 6090, 6101, 6594, - 6103, 6096, 6104, 6091, 6110, 6594, 6594, 6098, 6109, 6594, - 6119, 6120, 6113, 6124, 6115, 6123, 6128, 6594, 6594, 6594, - 6594, 6594, 6135, 6594, 6594, 6148, 6133, 6131, 6594, 6136, - 6146, 6163, 6154, 6147, 6151, 6160, 6158, 6155, 6168, 6177, - 6180, 6192, 6197, 6199, 6202, 6195, 6196, 6181, 6194, 6207, - 6203, 6211, 6594, 6216, 6594, 6219, 6594, 6212, 6221, 6218, + 6035, 6046, 6042, 6728, 6030, 6044, 6048, 6039, 6055, 6728, + 6057, 6060, 6056, 6066, 6045, 6069, 6077, 6078, 6084, 6728, + 6728, 6080, 6728, 6081, 6097, 6098, 6728, 6728, 6728, 6101, + 6728, 6109, 2275, 6106, 6728, 6114, 6105, 6103, 6728, 6115, + 6111, 6116, 6104, 6728, 6121, 6125, 6148, 6135, 6140, 6136, + 6150, 6144, 6154, 6162, 6133, 6157, 6138, 6163, 6164, 6160, + 6170, 6728, 6728, 6173, 6728, 6728, 6174, 6188, 6192, 6728, + 6184, 6194, 6728, 6198, 6187, 6191, 6204, 6195, 6207, 6728, + 6728, 6190, 6206, 6186, 6215, 6728, 6220, 6229, 6213, 6221, + 6219, 6231, 6225, 6728, 6728, 6728, 6728, 6728, 6242, 6728, - 6223, 6227, 6222, 6232, 6594, 6228, 6248, 6255, 6234, 6243, - 6244, 6246, 6258, 6261, 6262, 6272, 6279, 6275, 6286, 6289, - 6290, 6277, 6282, 6297, 6594, 6288, 6293, 6292, 6306, 6303, - 6309, 6299, 6594, 6320, 6326, 6316, 6318, 6327, 6341, 6339, - 6322, 6345, 6338, 6349, 6359, 6356, 6363, 6355, 6373, 6377, - 6314, 6382, 6384, 6366, 6375, 6376, 6381, 6394, 6594, 6387, - 6393, 6396, 6405, 6409, 6594, 6399, 6408, 6411, 6416, 6428, - 6422, 6594, 6431, 6433, 6432, 6594, 6436, 6594, 6594, 6440, - 6434, 6443, 6446, 6447, 6594, 6594, 6594, 6502, 6509, 6516, - 6523, 6530, 83, 6537, 6544, 6551, 6558, 6565, 6572, 6579, + 6728, 6228, 6240, 6237, 6246, 6728, 6236, 6250, 6265, 6264, + 6273, 6262, 6263, 6267, 6279, 6256, 6283, 6276, 6290, 6280, + 6302, 6299, 6312, 6305, 6314, 6297, 6315, 6322, 6323, 6294, + 6320, 6325, 6330, 6333, 6329, 6728, 6336, 6728, 6340, 6728, + 6728, 6334, 6345, 6346, 6341, 6342, 6350, 6357, 6347, 6728, + 6356, 6367, 6355, 6728, 6374, 6368, 6375, 6377, 6380, 6384, + 6391, 6382, 6386, 6398, 6415, 6411, 6414, 6416, 6417, 6401, + 6429, 6425, 6431, 6728, 6418, 6426, 6432, 6435, 6434, 6436, + 6452, 6439, 6728, 6459, 6445, 6456, 6457, 6460, 6469, 6480, + 6461, 6463, 6490, 6486, 6492, 6498, 6501, 6487, 6496, 6504, - 6586 + 6503, 6507, 6510, 6517, 6520, 6519, 6534, 6521, 6728, 6522, + 6526, 6728, 6536, 6547, 6531, 6537, 6542, 6728, 6555, 6554, + 6557, 6558, 6560, 6564, 6728, 6562, 6575, 6581, 6728, 6585, + 6728, 6728, 6587, 6574, 6577, 6578, 6580, 6728, 6728, 6728, + 6636, 6643, 6650, 6657, 6664, 83, 6671, 6678, 6685, 6692, + 6699, 6706, 6713, 6720 } ; -static yyconst flex_int16_t yy_def[2302] = +static yyconst flex_int16_t yy_def[2355] = { 0, - 2287, 1, 2288, 2288, 2289, 2289, 2290, 2290, 2291, 2291, - 2292, 2292, 2287, 2293, 2287, 2287, 2287, 2287, 2294, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2295, 2287, 2287, 2287, 2295, 2296, 2287, 2287, 2287, - 2296, 2297, 2287, 2287, 2287, 2287, 2297, 2298, 2287, 2287, - 2287, 2298, 2299, 2287, 2300, 2287, 2299, 2299, 2293, 2293, - 2287, 2301, 2294, 2301, 2294, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2340, 1, 2341, 2341, 2342, 2342, 2343, 2343, 2344, 2344, + 2345, 2345, 2340, 2346, 2340, 2340, 2340, 2340, 2347, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2348, 2340, 2340, 2340, 2348, 2349, 2340, 2340, 2340, + 2349, 2350, 2340, 2340, 2340, 2340, 2350, 2351, 2340, 2340, + 2340, 2351, 2352, 2340, 2353, 2340, 2352, 2352, 2346, 2346, + 2340, 2354, 2347, 2354, 2347, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2295, 2295, 2296, 2296, 2297, 2297, 2287, 2298, - 2298, 2299, 2299, 2300, 2300, 2299, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2348, 2348, 2349, 2349, 2350, 2350, 2340, + 2351, 2351, 2352, 2352, 2353, 2353, 2352, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2299, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2299, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2299, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2299, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2287, 2287, 2293, - 2287, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2352, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2299, 2293, 2293, 2293, 2287, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2352, 2346, 2346, 2346, + 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2299, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2352, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2287, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, + 2340, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2287, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, + 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2287, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2287, 2293, 2287, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2287, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, + 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, + 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2287, + 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2287, 2287, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2287, 2293, 2287, - 2287, 2293, 2293, 2293, 2287, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2287, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, + 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2340, 2340, 2346, 2340, 2346, 2340, 2340, + 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2287, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2287, 2293, 2293, 2293, 2287, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2287, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2287, 2287, + 2346, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2340, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2346, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2287, 2287, - 2293, 2287, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, + 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2340, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2287, 2293, 2287, - 2287, 2293, 2293, 2293, 2287, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, + 2346, 2340, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2340, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, + 2340, 2346, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346, + 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, - 2293, 2287, 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2287, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2287, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2287, 2287, 2293, 2287, 2293, 2293, - 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, - 2293, 2287, 2293, 2293, 2293, 2287, 2287, 2287, 2293, 2287, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, + 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2346, 2340, 2340, 2346, 2340, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340, 2346, 2346, - 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, - 2293, 2287, 2287, 2293, 2293, 2293, 2287, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2293, 2293, 2287, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2287, 2287, - 2287, 2287, 2293, 2287, 2287, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2287, 2293, 2287, 2293, 2293, 2293, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2340, 2346, + 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346, 2340, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2340, 2340, 2340, 2340, 2346, 2340, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, - 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2287, 2293, - 2293, 2293, 2293, 2293, 2287, 2293, 2293, 2293, 2293, 2293, - 2293, 2287, 2293, 2293, 2293, 2287, 2293, 2287, 2287, 2293, - 2293, 2293, 2293, 2293, 2287, 2287, 0, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, + 2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2340, + 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, - 2287 + 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, + 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, + 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346, + 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2340, 0, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340 } ; -static yyconst flex_uint16_t yy_nxt[6661] = +static yyconst flex_uint16_t yy_nxt[6795] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 14, @@ -1197,732 +1213,748 @@ static yyconst flex_uint16_t yy_nxt[6661] = 39, 40, 14, 14, 14, 14, 43, 44, 45, 43, 44, 45, 48, 49, 48, 49, 50, 99, 50, 53, 54, 55, 56, 69, 18, 53, 54, 55, 56, 70, - 18, 59, 60, 61, 59, 60, 61, 71, 79, 133, + 18, 59, 60, 61, 59, 60, 61, 71, 79, 134, + + 134, 72, 101, 46, 99, 136, 46, 144, 136, 51, + 74, 51, 74, 74, 70, 74, 71, 57, 141, 141, + 72, 74, 148, 57, 70, 79, 76, 77, 62, 101, + 930, 62, 15, 16, 17, 64, 65, 66, 15, 16, + 17, 64, 65, 66, 78, 89, 70, 91, 75, 148, + 70, 93, 67, 76, 77, 80, 144, 109, 67, 94, + 70, 92, 81, 70, 835, 90, 82, 115, 70, 83, + 68, 78, 89, 70, 91, 1030, 68, 70, 93, 67, + 70, 70, 80, 100, 109, 67, 94, 147, 92, 81, + 142, 150, 90, 82, 115, 70, 83, 84, 70, 95, + + 144, 85, 96, 70, 86, 70, 87, 88, 140, 97, + 100, 98, 139, 125, 147, 126, 137, 106, 150, 70, + 136, 107, 70, 136, 84, 135, 95, 102, 85, 96, + 127, 86, 149, 87, 88, 103, 97, 108, 98, 70, + 125, 104, 126, 70, 106, 105, 70, 69, 107, 69, + 69, 144, 69, 70, 102, 70, 328, 127, 69, 149, + 142, 116, 103, 155, 108, 117, 140, 151, 104, 156, + 139, 154, 105, 110, 128, 118, 208, 111, 119, 137, + 70, 70, 70, 112, 129, 70, 113, 70, 116, 130, + 155, 70, 117, 114, 151, 70, 156, 70, 154, 131, - 133, 72, 101, 46, 99, 135, 46, 143, 135, 51, - 74, 51, 74, 74, 70, 74, 71, 57, 140, 140, - 72, 74, 147, 57, 70, 79, 76, 77, 62, 101, - 922, 62, 15, 16, 17, 64, 65, 66, 15, 16, - 17, 64, 65, 66, 78, 89, 70, 91, 75, 147, - 70, 93, 67, 76, 77, 80, 143, 109, 67, 94, - 70, 92, 81, 70, 828, 90, 82, 115, 70, 83, - 68, 78, 89, 70, 91, 1021, 68, 70, 93, 67, - 70, 70, 80, 100, 109, 67, 94, 146, 92, 81, - 141, 149, 90, 82, 115, 70, 83, 84, 70, 95, + 110, 128, 118, 132, 111, 119, 165, 133, 70, 224, + 112, 129, 138, 113, 138, 138, 130, 138, 161, 70, + 114, 120, 135, 70, 121, 70, 131, 134, 134, 70, + 132, 122, 2340, 165, 133, 123, 124, 74, 2340, 74, + 74, 70, 74, 70, 143, 161, 143, 143, 120, 143, + 69, 121, 69, 69, 74, 69, 74, 74, 122, 74, + 152, 69, 123, 124, 157, 74, 162, 159, 160, 2340, + 158, 163, 166, 153, 70, 146, 70, 168, 170, 70, + 167, 169, 141, 141, 70, 70, 70, 152, 171, 164, + 70, 157, 75, 162, 159, 160, 70, 158, 172, 166, - 143, 85, 96, 70, 86, 70, 87, 88, 139, 97, - 100, 98, 138, 125, 146, 126, 136, 106, 149, 70, - 134, 107, 70, 148, 84, 70, 95, 102, 85, 96, - 127, 86, 150, 87, 88, 103, 97, 108, 98, 70, - 125, 104, 126, 70, 106, 105, 70, 128, 107, 153, - 148, 143, 129, 70, 102, 141, 70, 127, 70, 150, - 70, 116, 103, 130, 108, 117, 139, 131, 104, 155, - 187, 132, 105, 110, 128, 118, 153, 111, 119, 129, - 133, 133, 70, 112, 70, 154, 113, 70, 116, 70, - 130, 161, 117, 114, 131, 70, 155, 187, 132, 70, + 153, 70, 177, 70, 168, 170, 173, 167, 169, 174, + 70, 70, 179, 2340, 2340, 171, 164, 182, 180, 185, + 70, 183, 175, 176, 184, 172, 178, 70, 2340, 186, + 70, 213, 70, 173, 70, 187, 174, 2340, 181, 179, + 70, 70, 70, 188, 182, 180, 185, 189, 183, 175, + 176, 184, 70, 178, 190, 70, 186, 70, 213, 191, + 192, 193, 187, 194, 202, 181, 70, 70, 70, 70, + 188, 195, 70, 197, 189, 196, 70, 198, 199, 2340, + 70, 190, 207, 200, 70, 70, 191, 192, 193, 201, + 194, 202, 210, 70, 2340, 214, 70, 70, 195, 203, - 110, 207, 118, 70, 111, 119, 69, 167, 69, 69, - 112, 69, 154, 113, 160, 138, 70, 69, 161, 70, - 114, 120, 136, 137, 121, 137, 137, 74, 137, 74, - 74, 122, 74, 70, 167, 123, 124, 142, 134, 142, - 142, 160, 142, 70, 69, 70, 69, 69, 120, 69, - 156, 121, 158, 159, 162, 69, 157, 151, 122, 2287, - 164, 70, 123, 124, 74, 145, 74, 74, 176, 74, - 152, 70, 163, 70, 166, 74, 170, 156, 165, 158, - 159, 70, 168, 157, 151, 70, 70, 164, 169, 2287, - 70, 70, 177, 171, 140, 140, 222, 152, 70, 163, + 197, 70, 196, 70, 198, 199, 204, 70, 209, 207, + 200, 212, 211, 215, 218, 237, 201, 205, 70, 210, + 70, 206, 214, 70, 70, 216, 203, 219, 220, 221, + 70, 223, 2340, 204, 2340, 209, 70, 70, 212, 211, + 215, 218, 70, 2340, 205, 222, 217, 70, 206, 370, + 70, 70, 216, 70, 219, 220, 221, 138, 223, 138, + 138, 143, 138, 143, 143, 74, 143, 74, 74, 144, + 74, 225, 222, 217, 226, 227, 70, 228, 230, 229, + 231, 232, 233, 70, 2340, 70, 236, 70, 234, 235, + 70, 70, 246, 2340, 70, 2340, 2340, 377, 225, 70, - 70, 166, 75, 170, 2287, 165, 70, 172, 178, 168, - 173, 70, 2287, 2287, 2287, 169, 70, 181, 179, 177, - 171, 182, 183, 174, 175, 70, 184, 186, 70, 185, - 135, 70, 189, 135, 172, 178, 190, 173, 180, 70, - 70, 70, 188, 70, 181, 179, 70, 70, 182, 183, - 174, 175, 70, 184, 186, 191, 185, 192, 193, 189, - 197, 2287, 70, 190, 70, 180, 194, 70, 196, 188, - 195, 198, 2287, 202, 2287, 70, 2287, 199, 70, 203, - 70, 70, 191, 200, 192, 193, 70, 197, 70, 201, - 204, 70, 208, 194, 205, 196, 211, 195, 198, 206, + 70, 226, 227, 146, 228, 230, 229, 231, 232, 248, + 249, 70, 70, 236, 70, 234, 235, 238, 70, 246, + 247, 239, 250, 251, 70, 257, 70, 253, 70, 252, + 254, 70, 70, 258, 70, 267, 248, 249, 240, 2340, + 70, 259, 70, 2340, 2340, 70, 70, 247, 239, 250, + 251, 70, 257, 2340, 253, 70, 252, 254, 255, 264, + 258, 256, 2340, 70, 2340, 240, 241, 70, 259, 268, + 265, 242, 271, 70, 2340, 260, 243, 70, 2340, 266, + 261, 70, 244, 245, 274, 255, 264, 272, 256, 70, + 70, 276, 262, 241, 263, 70, 268, 265, 242, 277, - 202, 70, 209, 70, 199, 70, 203, 70, 213, 212, - 200, 224, 214, 70, 70, 217, 201, 204, 216, 208, - 70, 205, 210, 211, 219, 218, 206, 70, 70, 209, - 70, 2287, 2287, 215, 70, 213, 212, 70, 224, 214, - 70, 2287, 217, 220, 2287, 216, 70, 221, 2287, 210, - 2287, 219, 218, 137, 225, 137, 137, 228, 137, 142, - 215, 142, 142, 74, 142, 74, 74, 143, 74, 70, - 220, 223, 226, 70, 221, 227, 230, 235, 229, 70, - 70, 225, 231, 70, 228, 70, 233, 70, 232, 2287, - 234, 236, 2287, 2287, 70, 237, 2287, 244, 223, 226, + 269, 70, 260, 243, 70, 70, 266, 261, 275, 244, + 245, 270, 273, 278, 272, 279, 70, 281, 70, 262, + 280, 263, 282, 70, 70, 287, 2340, 284, 2340, 70, + 70, 70, 70, 70, 285, 275, 286, 70, 270, 273, + 278, 70, 279, 70, 281, 283, 70, 280, 70, 282, + 70, 288, 287, 289, 284, 290, 291, 294, 70, 2340, + 70, 285, 70, 286, 292, 70, 293, 295, 296, 297, + 300, 70, 283, 299, 2340, 301, 70, 70, 288, 298, + 289, 303, 290, 291, 302, 306, 70, 70, 304, 70, + 70, 292, 70, 293, 295, 296, 305, 300, 70, 308, - 325, 145, 227, 230, 246, 229, 247, 248, 70, 70, - 245, 70, 238, 233, 70, 232, 70, 234, 70, 70, - 249, 255, 237, 70, 244, 251, 70, 250, 70, 70, - 70, 246, 252, 247, 248, 2287, 2287, 245, 70, 238, - 239, 2287, 256, 70, 70, 240, 257, 249, 255, 70, - 241, 2287, 251, 2287, 250, 253, 242, 243, 254, 252, - 2287, 258, 265, 70, 70, 264, 259, 239, 70, 256, - 70, 266, 240, 257, 262, 2287, 70, 241, 260, 263, - 261, 269, 253, 242, 243, 254, 70, 70, 258, 267, - 270, 272, 264, 259, 70, 276, 70, 70, 266, 274, + 299, 70, 309, 70, 315, 311, 298, 70, 307, 70, + 312, 302, 313, 70, 314, 304, 316, 70, 317, 310, + 70, 318, 70, 305, 324, 144, 70, 70, 325, 309, + 319, 70, 311, 70, 320, 307, 70, 312, 70, 313, + 70, 314, 70, 316, 326, 317, 310, 70, 323, 321, + 322, 324, 70, 70, 327, 325, 329, 319, 70, 330, + 333, 320, 331, 70, 336, 70, 334, 70, 332, 70, + 337, 326, 70, 335, 339, 323, 321, 322, 340, 70, + 70, 327, 70, 329, 338, 70, 330, 333, 70, 331, + 70, 336, 341, 334, 342, 332, 70, 70, 344, 2340, - 268, 262, 273, 271, 275, 260, 263, 261, 70, 70, - 2287, 277, 278, 70, 280, 70, 2287, 270, 284, 279, - 2287, 70, 276, 70, 70, 70, 70, 268, 282, 273, - 271, 70, 281, 70, 283, 70, 70, 70, 277, 278, - 70, 280, 285, 287, 288, 284, 279, 70, 70, 286, - 70, 290, 291, 289, 70, 282, 292, 70, 297, 281, - 70, 283, 70, 293, 294, 295, 70, 298, 296, 285, - 287, 288, 70, 299, 70, 70, 286, 301, 290, 291, - 289, 300, 305, 70, 302, 297, 303, 70, 70, 70, - 293, 294, 70, 310, 298, 296, 306, 70, 308, 312, + 335, 343, 70, 345, 70, 340, 70, 70, 70, 70, + 346, 338, 347, 2340, 70, 352, 348, 2340, 349, 341, + 351, 350, 353, 356, 70, 344, 70, 70, 343, 70, + 345, 70, 354, 357, 363, 355, 358, 346, 70, 347, + 70, 70, 352, 348, 70, 349, 364, 351, 350, 353, + 70, 70, 70, 2340, 366, 70, 70, 70, 359, 354, + 357, 363, 355, 358, 365, 367, 360, 361, 70, 362, + 70, 371, 2340, 364, 368, 369, 70, 2340, 374, 372, + 70, 366, 373, 2340, 379, 359, 375, 2340, 385, 70, + 70, 365, 367, 360, 361, 70, 362, 376, 371, 70, - 309, 70, 70, 311, 301, 70, 313, 314, 300, 304, - 70, 302, 315, 307, 70, 143, 320, 2287, 70, 317, - 310, 70, 70, 306, 319, 308, 316, 309, 70, 70, - 311, 70, 70, 313, 314, 70, 304, 70, 70, 318, - 307, 322, 323, 320, 70, 321, 317, 70, 70, 324, - 326, 319, 327, 316, 328, 333, 2287, 2287, 330, 70, - 329, 332, 331, 334, 337, 70, 318, 70, 322, 323, - 70, 70, 321, 70, 336, 70, 324, 326, 70, 327, - 70, 328, 333, 335, 70, 330, 70, 329, 332, 331, - 70, 337, 338, 339, 340, 70, 70, 342, 2287, 341, + 378, 368, 369, 381, 70, 374, 372, 380, 382, 373, + 70, 379, 2340, 375, 383, 70, 384, 387, 388, 70, + 70, 70, 70, 70, 376, 70, 386, 378, 70, 389, + 381, 2340, 390, 70, 380, 382, 394, 2340, 391, 70, + 392, 383, 393, 384, 387, 399, 400, 2340, 2340, 70, + 70, 70, 398, 386, 70, 395, 389, 2340, 396, 390, + 397, 434, 405, 394, 70, 391, 70, 392, 70, 393, + 70, 403, 401, 400, 70, 404, 407, 70, 70, 398, + 402, 70, 395, 406, 409, 396, 70, 397, 418, 405, + 419, 438, 408, 70, 461, 420, 70, 70, 403, 401, - 347, 70, 343, 70, 344, 2287, 70, 353, 70, 345, - 335, 346, 2287, 348, 70, 349, 70, 367, 2287, 338, - 70, 340, 70, 70, 342, 70, 341, 347, 350, 343, - 70, 344, 351, 70, 352, 355, 345, 70, 346, 70, - 348, 70, 349, 354, 70, 360, 363, 374, 2287, 70, - 70, 365, 366, 361, 364, 350, 70, 356, 368, 351, - 70, 352, 355, 70, 2287, 357, 358, 70, 359, 70, - 354, 362, 360, 363, 70, 70, 70, 70, 365, 366, - 361, 364, 70, 372, 356, 368, 369, 371, 373, 370, - 375, 377, 357, 358, 376, 359, 70, 378, 362, 70, + 70, 417, 404, 407, 422, 2340, 70, 402, 421, 424, + 406, 409, 70, 70, 144, 418, 70, 423, 426, 408, + 410, 411, 70, 70, 2340, 425, 70, 427, 417, 70, + 412, 422, 413, 414, 415, 421, 424, 416, 70, 428, + 432, 2340, 429, 70, 423, 70, 430, 410, 411, 70, + 70, 431, 425, 70, 427, 436, 433, 412, 435, 413, + 414, 415, 70, 70, 416, 70, 428, 432, 70, 429, + 70, 437, 439, 430, 70, 440, 442, 443, 431, 441, + 444, 445, 436, 433, 70, 435, 70, 70, 448, 446, + 447, 449, 70, 2340, 2340, 452, 450, 453, 437, 439, - 382, 70, 380, 70, 385, 2287, 70, 379, 384, 70, - 372, 381, 70, 369, 371, 373, 370, 375, 377, 70, - 70, 376, 70, 70, 378, 386, 383, 391, 395, 380, - 70, 2287, 70, 70, 379, 384, 70, 387, 381, 389, - 70, 390, 396, 388, 2287, 392, 70, 70, 393, 397, - 394, 400, 386, 383, 391, 395, 70, 401, 70, 70, - 2287, 2287, 2287, 70, 387, 398, 389, 402, 390, 70, - 388, 70, 392, 399, 70, 393, 397, 394, 400, 70, - 70, 403, 405, 414, 401, 415, 413, 417, 418, 421, - 416, 419, 398, 143, 402, 70, 70, 404, 70, 2287, + 70, 70, 440, 70, 70, 70, 441, 444, 445, 457, + 70, 451, 2340, 70, 70, 448, 446, 447, 449, 70, + 458, 454, 452, 450, 453, 460, 459, 70, 465, 462, + 463, 464, 455, 466, 456, 70, 457, 467, 451, 70, + 70, 471, 70, 70, 469, 472, 473, 458, 454, 70, + 70, 70, 460, 459, 70, 465, 462, 463, 464, 455, + 466, 456, 468, 70, 467, 470, 70, 70, 471, 70, + 476, 469, 474, 473, 475, 477, 70, 70, 70, 70, + 478, 479, 2340, 480, 481, 482, 2340, 483, 70, 468, + 70, 70, 470, 484, 485, 70, 70, 476, 486, 474, - 399, 70, 70, 70, 420, 70, 2287, 2287, 403, 405, - 414, 70, 422, 413, 417, 418, 421, 70, 419, 424, - 425, 423, 426, 70, 404, 406, 407, 70, 427, 70, - 2287, 420, 428, 429, 431, 408, 430, 409, 410, 411, - 70, 70, 412, 432, 70, 70, 424, 425, 423, 426, - 70, 434, 406, 407, 70, 427, 2287, 437, 70, 428, - 429, 431, 408, 433, 409, 410, 411, 436, 70, 412, - 432, 435, 443, 70, 438, 439, 70, 441, 70, 70, - 440, 442, 445, 70, 437, 70, 444, 70, 70, 457, - 433, 446, 70, 448, 436, 454, 2287, 449, 435, 443, + 70, 475, 477, 489, 70, 487, 70, 478, 479, 70, + 480, 481, 482, 70, 483, 488, 493, 70, 70, 70, + 484, 485, 70, 70, 490, 486, 491, 492, 494, 70, + 489, 495, 487, 70, 70, 496, 498, 497, 499, 500, + 2340, 501, 488, 493, 502, 2340, 70, 505, 504, 70, + 70, 490, 2340, 491, 492, 70, 2340, 70, 495, 508, + 70, 70, 496, 498, 497, 70, 500, 503, 501, 70, + 70, 509, 506, 507, 505, 504, 70, 70, 511, 70, + 510, 519, 70, 70, 512, 2340, 508, 520, 70, 70, + 2340, 522, 70, 521, 503, 70, 2340, 2340, 509, 506, - 2287, 453, 70, 70, 441, 70, 447, 440, 442, 445, - 70, 70, 450, 444, 70, 455, 456, 70, 446, 70, - 448, 70, 454, 451, 449, 452, 458, 459, 453, 461, - 70, 468, 70, 447, 70, 460, 2287, 462, 70, 450, - 463, 464, 455, 456, 70, 466, 2287, 465, 70, 467, - 451, 70, 452, 458, 459, 70, 461, 469, 70, 70, - 471, 472, 460, 70, 462, 470, 70, 463, 464, 70, - 473, 70, 466, 475, 465, 70, 467, 476, 474, 70, - 70, 2287, 70, 478, 469, 70, 477, 471, 472, 70, - 479, 2287, 470, 70, 480, 481, 70, 473, 490, 482, + 507, 523, 70, 541, 70, 511, 2340, 510, 519, 525, + 2340, 512, 513, 524, 520, 526, 528, 514, 70, 515, + 521, 527, 70, 70, 70, 529, 2340, 516, 523, 530, + 517, 2340, 2340, 70, 531, 70, 525, 518, 70, 513, + 524, 70, 526, 528, 514, 533, 515, 70, 527, 70, + 532, 70, 529, 70, 516, 534, 530, 517, 535, 537, + 70, 531, 70, 536, 518, 540, 538, 70, 539, 542, + 543, 544, 533, 545, 546, 549, 548, 532, 70, 70, + 70, 70, 534, 547, 70, 535, 537, 70, 144, 70, + 536, 550, 540, 538, 70, 539, 542, 543, 544, 70, - 475, 70, 484, 70, 476, 474, 483, 488, 70, 70, - 478, 495, 485, 477, 70, 489, 70, 479, 70, 491, - 70, 480, 481, 486, 70, 487, 482, 70, 70, 484, - 70, 492, 70, 483, 488, 493, 494, 70, 496, 485, - 497, 500, 489, 70, 501, 70, 491, 498, 70, 504, - 486, 502, 487, 70, 70, 70, 70, 2287, 492, 506, - 2287, 505, 493, 494, 70, 496, 70, 497, 500, 503, - 499, 501, 70, 70, 507, 70, 504, 515, 502, 70, - 517, 70, 508, 2287, 70, 70, 506, 516, 505, 518, - 70, 70, 520, 521, 2287, 70, 503, 499, 2287, 519, + 545, 546, 70, 70, 551, 552, 70, 70, 2340, 2340, + 547, 553, 554, 2340, 557, 555, 556, 558, 550, 559, + 70, 560, 563, 564, 70, 70, 561, 565, 566, 567, + 70, 562, 552, 568, 573, 70, 70, 70, 553, 554, + 70, 557, 555, 556, 558, 70, 559, 570, 569, 70, + 70, 572, 571, 70, 70, 70, 70, 70, 562, 70, + 70, 573, 574, 575, 576, 70, 577, 579, 581, 70, + 70, 2340, 2340, 70, 570, 569, 578, 2340, 572, 571, + 580, 70, 586, 70, 2340, 592, 70, 582, 70, 585, + 575, 576, 583, 577, 70, 581, 584, 587, 70, 70, - 70, 507, 2287, 522, 515, 524, 523, 517, 70, 508, - 509, 525, 526, 2287, 516, 510, 70, 511, 2287, 520, - 521, 70, 527, 70, 536, 512, 519, 70, 513, 70, - 522, 70, 524, 523, 70, 514, 70, 509, 525, 526, - 528, 529, 510, 530, 511, 531, 70, 533, 70, 527, - 532, 537, 512, 535, 534, 513, 70, 2287, 70, 70, - 538, 539, 514, 70, 541, 70, 70, 528, 529, 70, - 530, 540, 531, 542, 533, 70, 143, 532, 537, 543, - 535, 534, 544, 546, 70, 70, 545, 538, 539, 70, - 547, 541, 70, 2287, 548, 549, 551, 550, 540, 552, + 588, 591, 70, 578, 589, 590, 70, 580, 70, 586, + 594, 70, 593, 70, 582, 2340, 585, 70, 70, 583, + 595, 600, 70, 584, 587, 599, 70, 588, 591, 597, + 70, 589, 590, 598, 70, 70, 70, 594, 603, 593, + 601, 602, 596, 70, 605, 606, 604, 595, 600, 70, + 607, 70, 599, 609, 608, 70, 597, 612, 611, 70, + 598, 70, 70, 614, 613, 603, 70, 601, 602, 596, + 610, 70, 606, 604, 70, 70, 70, 607, 70, 70, + 609, 608, 615, 616, 619, 611, 70, 617, 620, 70, + 621, 613, 618, 622, 623, 70, 626, 610, 70, 624, - 542, 70, 553, 555, 558, 70, 70, 70, 556, 559, - 70, 557, 560, 545, 70, 70, 554, 547, 70, 70, - 70, 548, 549, 551, 550, 70, 552, 70, 561, 553, - 562, 70, 563, 564, 565, 70, 70, 569, 557, 70, - 566, 2287, 2287, 554, 70, 568, 567, 570, 70, 571, - 574, 2287, 573, 572, 580, 70, 70, 70, 70, 70, - 564, 565, 575, 70, 70, 70, 581, 566, 70, 70, - 70, 2287, 568, 567, 570, 70, 571, 576, 577, 573, - 572, 580, 70, 578, 70, 582, 583, 579, 585, 575, - 70, 586, 70, 581, 70, 584, 587, 589, 588, 2287, + 2340, 70, 70, 627, 2340, 70, 70, 628, 629, 615, + 616, 619, 70, 630, 625, 620, 631, 2340, 70, 70, + 622, 623, 70, 70, 633, 632, 624, 70, 70, 70, + 627, 634, 635, 640, 628, 636, 637, 641, 638, 70, + 70, 625, 70, 631, 70, 70, 70, 639, 646, 70, + 2340, 633, 632, 677, 70, 70, 70, 70, 634, 635, + 640, 642, 636, 637, 641, 638, 643, 645, 644, 647, + 648, 2340, 649, 70, 639, 70, 70, 70, 70, 70, + 70, 650, 651, 653, 652, 70, 2340, 2340, 642, 656, + 70, 654, 657, 643, 645, 644, 647, 648, 70, 649, - 2287, 70, 70, 70, 576, 577, 2287, 590, 70, 592, - 578, 593, 582, 583, 579, 585, 70, 70, 586, 600, - 596, 70, 584, 2287, 589, 588, 594, 595, 70, 591, - 70, 70, 597, 70, 590, 598, 592, 70, 593, 601, - 599, 70, 70, 604, 602, 603, 70, 596, 605, 607, - 70, 70, 609, 594, 595, 70, 591, 70, 608, 597, - 70, 606, 598, 610, 611, 70, 601, 599, 70, 70, - 604, 602, 603, 612, 70, 605, 616, 618, 613, 614, - 70, 70, 615, 619, 70, 608, 70, 70, 606, 617, - 610, 611, 621, 70, 626, 70, 70, 70, 620, 622, + 70, 658, 70, 70, 70, 70, 655, 659, 650, 651, + 653, 652, 70, 660, 70, 661, 656, 662, 654, 657, + 664, 663, 2340, 70, 667, 671, 70, 70, 658, 668, + 665, 666, 669, 655, 659, 70, 674, 70, 70, 670, + 660, 70, 661, 70, 662, 70, 144, 664, 663, 70, + 675, 667, 70, 70, 672, 70, 668, 665, 666, 669, + 678, 676, 673, 70, 680, 681, 670, 70, 70, 70, + 679, 682, 692, 684, 70, 683, 2340, 675, 2340, 70, + 70, 672, 70, 685, 70, 70, 693, 678, 676, 673, + 694, 680, 681, 70, 70, 695, 70, 679, 686, 692, - 623, 627, 2287, 70, 618, 70, 614, 70, 70, 615, - 619, 628, 624, 2287, 70, 629, 617, 625, 630, 2287, - 70, 626, 70, 70, 70, 620, 622, 623, 627, 633, - 631, 632, 635, 636, 634, 637, 70, 70, 628, 70, - 70, 70, 629, 70, 70, 630, 641, 70, 2287, 2287, - 644, 70, 646, 640, 638, 70, 633, 631, 632, 635, - 636, 634, 637, 70, 639, 70, 642, 643, 70, 645, - 2287, 648, 70, 647, 70, 70, 70, 644, 70, 646, - 640, 638, 70, 651, 652, 650, 654, 653, 2287, 649, - 2287, 639, 70, 642, 643, 70, 645, 70, 648, 70, + 684, 696, 683, 70, 710, 70, 70, 699, 70, 697, + 685, 698, 2340, 693, 2340, 708, 70, 694, 709, 707, + 711, 70, 695, 712, 70, 686, 687, 70, 696, 713, + 688, 710, 714, 689, 733, 70, 697, 70, 698, 70, + 690, 70, 708, 691, 70, 709, 707, 711, 70, 70, + 70, 715, 718, 687, 716, 2340, 713, 688, 70, 714, + 689, 70, 2340, 70, 717, 719, 2340, 690, 720, 721, + 691, 700, 701, 2340, 702, 722, 70, 703, 715, 718, + 70, 716, 704, 70, 70, 723, 70, 70, 705, 706, + 735, 717, 719, 70, 726, 720, 721, 70, 700, 701, - 647, 655, 657, 70, 659, 661, 70, 70, 70, 656, - 651, 652, 650, 654, 653, 658, 649, 70, 70, 660, - 662, 2287, 70, 70, 664, 663, 665, 143, 655, 657, - 70, 659, 661, 70, 2287, 666, 656, 70, 668, 669, - 671, 670, 658, 667, 70, 2287, 660, 662, 70, 70, - 673, 664, 663, 70, 674, 675, 672, 70, 676, 677, - 2287, 70, 666, 70, 70, 70, 669, 678, 670, 70, - 667, 691, 70, 70, 689, 688, 70, 673, 70, 687, - 686, 674, 675, 672, 680, 679, 677, 70, 692, 70, - 70, 70, 70, 70, 678, 70, 690, 70, 691, 693, + 724, 702, 722, 725, 703, 727, 728, 70, 70, 704, + 729, 70, 723, 70, 731, 705, 706, 730, 70, 2340, + 732, 726, 70, 70, 734, 736, 70, 724, 737, 70, + 725, 70, 727, 728, 739, 738, 741, 729, 742, 740, + 2340, 731, 70, 745, 730, 70, 70, 732, 743, 2340, + 747, 734, 70, 70, 746, 737, 70, 70, 70, 744, + 70, 739, 738, 741, 748, 742, 740, 70, 70, 70, + 70, 749, 70, 750, 751, 743, 754, 747, 752, 70, + 755, 746, 753, 756, 759, 757, 744, 70, 763, 70, + 758, 70, 70, 70, 2340, 70, 70, 762, 749, 2340, - 2287, 689, 688, 2287, 2287, 2287, 687, 686, 2287, 703, - 701, 680, 679, 681, 70, 692, 702, 682, 70, 70, - 683, 705, 70, 690, 704, 706, 70, 684, 711, 707, - 685, 70, 70, 724, 2287, 70, 703, 701, 2287, 708, - 681, 709, 70, 702, 682, 70, 710, 683, 705, 70, - 70, 704, 70, 70, 684, 711, 707, 685, 694, 695, - 724, 696, 2287, 712, 697, 70, 708, 713, 709, 698, - 714, 716, 70, 710, 2287, 699, 700, 715, 717, 70, - 2287, 2287, 721, 729, 70, 694, 695, 70, 696, 70, - 712, 697, 70, 718, 713, 70, 698, 714, 716, 719, + 750, 751, 70, 754, 70, 752, 70, 755, 70, 753, + 756, 759, 757, 760, 764, 70, 765, 758, 770, 766, + 70, 761, 70, 767, 762, 70, 768, 769, 771, 2340, + 70, 70, 778, 772, 70, 781, 70, 70, 70, 773, + 760, 764, 70, 765, 774, 770, 766, 70, 761, 775, + 767, 70, 776, 768, 769, 771, 777, 780, 783, 70, + 772, 779, 70, 791, 70, 70, 773, 70, 70, 784, + 70, 774, 788, 782, 785, 789, 775, 70, 786, 776, + 70, 70, 70, 777, 780, 790, 787, 795, 779, 793, + 70, 792, 70, 70, 70, 70, 784, 796, 70, 788, - 70, 70, 699, 700, 715, 717, 720, 70, 70, 721, - 722, 723, 725, 726, 727, 70, 2287, 730, 731, 2287, - 718, 728, 70, 732, 70, 70, 719, 70, 733, 2287, - 739, 736, 734, 720, 742, 70, 737, 722, 723, 725, - 726, 70, 70, 70, 70, 731, 738, 70, 728, 70, - 732, 70, 735, 70, 70, 733, 70, 70, 736, 734, - 740, 70, 741, 737, 743, 744, 70, 745, 747, 746, - 750, 748, 70, 738, 749, 2287, 2287, 2287, 70, 735, - 751, 70, 70, 70, 70, 70, 752, 740, 70, 741, - 70, 743, 744, 70, 745, 747, 746, 750, 748, 753, + 782, 785, 789, 794, 70, 786, 797, 799, 800, 801, + 2340, 70, 790, 787, 798, 70, 793, 70, 792, 70, + 70, 802, 803, 70, 796, 70, 804, 2340, 813, 70, + 794, 805, 70, 70, 144, 800, 801, 806, 70, 70, + 2340, 798, 816, 70, 70, 814, 2340, 815, 802, 803, + 818, 2340, 817, 804, 70, 813, 821, 820, 805, 70, + 819, 822, 70, 823, 806, 807, 2340, 808, 70, 816, + 70, 809, 814, 810, 815, 70, 70, 818, 811, 817, + 824, 825, 70, 812, 820, 2167, 2168, 819, 70, 70, + 823, 826, 807, 70, 808, 828, 829, 834, 809, 832, - 70, 749, 70, 754, 70, 757, 756, 751, 758, 760, - 761, 755, 759, 752, 70, 70, 762, 70, 763, 765, - 766, 70, 764, 768, 2287, 70, 753, 70, 772, 70, - 754, 70, 70, 756, 70, 758, 760, 761, 755, 759, - 70, 70, 70, 762, 767, 763, 765, 766, 769, 764, - 768, 770, 70, 771, 773, 70, 774, 775, 776, 777, - 778, 70, 2287, 70, 70, 2287, 781, 782, 70, 70, - 783, 767, 784, 70, 70, 769, 779, 2287, 770, 790, - 771, 773, 70, 774, 780, 785, 777, 778, 70, 70, - 70, 70, 786, 781, 782, 788, 70, 783, 789, 787, + 810, 827, 831, 70, 833, 811, 830, 824, 825, 70, + 812, 2340, 70, 70, 70, 70, 841, 70, 826, 842, + 70, 843, 828, 829, 70, 844, 832, 845, 827, 831, + 847, 70, 848, 830, 70, 853, 70, 836, 846, 849, + 70, 70, 837, 841, 838, 70, 842, 70, 843, 70, + 850, 851, 844, 70, 845, 839, 852, 847, 70, 848, + 70, 854, 840, 70, 836, 846, 849, 70, 855, 837, + 856, 838, 857, 859, 858, 860, 70, 850, 70, 70, + 861, 70, 839, 852, 70, 70, 863, 864, 854, 840, + 866, 872, 862, 70, 2340, 855, 70, 856, 70, 867, - 2287, 70, 792, 779, 70, 70, 70, 791, 793, 70, - 794, 780, 785, 70, 795, 796, 70, 797, 70, 786, - 70, 798, 70, 806, 807, 789, 787, 70, 70, 143, - 70, 808, 799, 70, 791, 793, 2287, 794, 70, 2287, - 810, 795, 796, 70, 797, 811, 2287, 70, 798, 70, - 806, 807, 809, 812, 70, 2287, 813, 70, 808, 799, - 800, 816, 801, 70, 818, 814, 802, 810, 803, 70, - 815, 817, 811, 804, 70, 70, 70, 2287, 805, 809, - 812, 821, 819, 813, 70, 825, 822, 800, 816, 801, - 823, 818, 820, 802, 70, 803, 70, 70, 817, 70, + 859, 858, 860, 70, 70, 70, 70, 861, 865, 868, + 870, 871, 70, 869, 864, 876, 70, 866, 70, 862, + 70, 873, 70, 70, 874, 877, 867, 70, 70, 70, + 875, 878, 70, 879, 70, 865, 868, 870, 871, 70, + 869, 880, 876, 881, 882, 884, 893, 70, 873, 885, + 883, 874, 877, 70, 886, 70, 70, 875, 878, 70, + 879, 2340, 887, 889, 70, 888, 890, 891, 880, 70, + 881, 892, 884, 894, 70, 895, 70, 883, 70, 70, + 70, 70, 897, 70, 898, 896, 899, 70, 70, 887, + 889, 70, 888, 890, 891, 900, 901, 70, 892, 70, - 804, 824, 826, 70, 70, 805, 70, 2287, 821, 819, - 827, 2287, 825, 822, 70, 834, 2287, 823, 2287, 820, - 836, 837, 835, 2287, 838, 846, 2287, 840, 824, 2287, - 70, 839, 842, 70, 70, 844, 70, 70, 829, 841, - 70, 850, 834, 830, 70, 831, 70, 836, 837, 835, - 70, 838, 70, 70, 840, 845, 832, 70, 839, 842, - 843, 847, 70, 833, 70, 829, 841, 848, 70, 855, - 830, 851, 831, 70, 853, 70, 852, 849, 70, 854, - 70, 856, 845, 832, 70, 70, 2287, 843, 847, 857, - 833, 70, 70, 70, 848, 859, 855, 70, 851, 861, + 894, 902, 895, 903, 70, 905, 70, 906, 904, 897, + 2340, 898, 896, 899, 909, 907, 70, 70, 70, 70, + 908, 914, 900, 901, 70, 918, 70, 910, 902, 70, + 903, 911, 905, 70, 70, 904, 70, 912, 70, 70, + 915, 909, 907, 913, 70, 919, 916, 908, 921, 70, + 917, 920, 918, 70, 910, 922, 923, 70, 911, 70, + 70, 70, 70, 70, 912, 926, 2340, 915, 70, 924, + 913, 925, 919, 916, 927, 921, 928, 917, 920, 929, + 2340, 70, 70, 933, 932, 2340, 931, 70, 70, 70, + 939, 70, 70, 70, 70, 70, 924, 934, 925, 70, - 858, 853, 860, 852, 849, 863, 854, 70, 70, 70, - 864, 862, 70, 70, 865, 868, 857, 70, 70, 875, - 866, 2287, 859, 70, 70, 2287, 861, 858, 70, 860, - 870, 867, 863, 70, 871, 2287, 869, 864, 862, 70, - 872, 873, 868, 874, 877, 2287, 70, 866, 70, 878, - 876, 70, 70, 883, 879, 70, 70, 870, 867, 70, - 882, 871, 70, 869, 70, 886, 70, 872, 873, 70, - 874, 877, 880, 885, 890, 881, 884, 876, 2287, 887, - 883, 70, 891, 70, 70, 70, 70, 882, 888, 889, - 896, 893, 894, 895, 892, 70, 70, 70, 70, 880, + 935, 927, 70, 928, 936, 938, 929, 937, 70, 940, + 933, 932, 70, 931, 2340, 941, 2340, 70, 942, 70, + 2340, 947, 70, 944, 934, 943, 945, 935, 2340, 946, + 948, 936, 938, 70, 937, 949, 70, 70, 70, 70, + 2340, 70, 941, 70, 952, 942, 950, 70, 947, 955, + 944, 70, 943, 945, 954, 70, 946, 948, 70, 951, + 963, 953, 949, 70, 2340, 956, 2340, 70, 957, 962, + 70, 70, 70, 950, 70, 961, 955, 958, 968, 959, + 70, 954, 960, 965, 964, 966, 951, 963, 953, 2340, + 70, 70, 956, 970, 70, 957, 962, 70, 967, 972, - 885, 890, 881, 884, 70, 70, 887, 898, 70, 891, - 899, 70, 70, 70, 70, 888, 889, 896, 893, 894, - 895, 892, 897, 900, 902, 905, 901, 903, 70, 906, - 904, 907, 70, 70, 898, 70, 70, 70, 70, 908, - 909, 70, 912, 70, 911, 913, 910, 914, 70, 897, - 900, 902, 905, 901, 903, 70, 906, 904, 70, 915, - 70, 70, 70, 70, 2287, 916, 908, 909, 70, 912, - 918, 911, 913, 910, 917, 919, 920, 70, 921, 70, - 924, 923, 926, 70, 70, 931, 925, 927, 929, 70, - 70, 70, 916, 70, 70, 70, 70, 70, 70, 928, + 70, 70, 961, 2340, 958, 968, 959, 70, 973, 960, + 965, 964, 966, 969, 971, 70, 70, 975, 974, 976, + 970, 70, 70, 978, 979, 967, 70, 70, 2340, 70, + 977, 70, 981, 983, 2340, 973, 70, 988, 70, 70, + 969, 971, 70, 70, 975, 974, 976, 980, 987, 982, + 978, 979, 984, 990, 70, 70, 985, 977, 70, 981, + 983, 986, 992, 70, 70, 989, 70, 993, 70, 70, + 991, 1008, 70, 2340, 980, 987, 982, 70, 70, 984, + 990, 994, 70, 985, 70, 996, 995, 997, 986, 992, + 998, 1006, 989, 70, 993, 999, 2340, 991, 1007, 2340, - 70, 917, 919, 920, 930, 921, 932, 924, 923, 926, - 933, 70, 70, 925, 927, 929, 934, 70, 935, 940, - 936, 937, 938, 939, 2287, 944, 928, 70, 2287, 2287, - 942, 930, 70, 70, 70, 70, 941, 933, 70, 2287, - 70, 70, 70, 934, 70, 935, 940, 936, 937, 938, - 939, 943, 70, 945, 947, 946, 70, 942, 948, 70, - 952, 953, 949, 941, 70, 70, 70, 956, 957, 2287, - 954, 963, 2287, 950, 959, 70, 951, 70, 943, 955, - 945, 947, 946, 70, 70, 948, 70, 952, 953, 949, - 70, 70, 70, 958, 956, 957, 70, 954, 70, 960, + 70, 2340, 1009, 70, 70, 70, 1011, 2340, 1010, 2340, + 2340, 1020, 996, 70, 997, 2340, 70, 998, 1006, 1021, + 1012, 70, 999, 1000, 70, 1007, 1001, 1002, 70, 1009, + 70, 1003, 1015, 1011, 1013, 1010, 1014, 1004, 1017, 70, + 1019, 1005, 70, 70, 1018, 70, 1023, 1012, 1016, 70, + 1000, 70, 1022, 1001, 1002, 1029, 70, 70, 1003, 1015, + 70, 1013, 70, 1014, 1004, 1017, 70, 1019, 1005, 70, + 1031, 1018, 1032, 1023, 70, 1016, 1033, 1038, 1035, 1022, + 1024, 70, 1029, 1034, 1039, 1025, 70, 1026, 70, 1027, + 70, 1028, 70, 1043, 1041, 70, 70, 1031, 70, 1032, - 950, 959, 961, 951, 962, 964, 955, 70, 967, 965, - 966, 70, 70, 968, 969, 970, 70, 972, 2287, 979, - 958, 999, 70, 70, 70, 70, 960, 70, 70, 961, - 70, 962, 964, 974, 70, 967, 965, 966, 971, 973, - 968, 969, 970, 975, 972, 976, 70, 983, 70, 977, - 978, 70, 70, 70, 70, 70, 70, 982, 980, 981, - 974, 990, 2287, 2287, 70, 971, 973, 984, 70, 70, - 975, 70, 976, 987, 983, 985, 977, 978, 70, 988, - 986, 70, 70, 989, 982, 980, 981, 70, 990, 997, - 998, 1001, 70, 1010, 984, 1000, 2287, 70, 2287, 2287, + 1040, 1036, 70, 1033, 1038, 1035, 1037, 1024, 70, 1042, + 1034, 1039, 1025, 70, 1026, 70, 1027, 1044, 1028, 1045, + 1043, 1041, 70, 1046, 1047, 1048, 70, 1040, 1049, 1050, + 70, 1051, 70, 70, 1054, 1052, 1042, 70, 1053, 1055, + 1057, 70, 70, 2340, 1044, 1060, 1045, 70, 1058, 2340, + 1046, 1047, 1048, 1066, 1062, 70, 1050, 1056, 70, 70, + 70, 1054, 1052, 1059, 70, 1053, 70, 70, 1063, 70, + 70, 1061, 70, 1067, 1064, 1058, 70, 1065, 70, 70, + 1066, 1062, 70, 1069, 1056, 1068, 1071, 70, 1070, 1072, + 1059, 1074, 1073, 1075, 2340, 1063, 70, 1076, 1061, 70, - 987, 1005, 70, 70, 1003, 1002, 988, 70, 70, 2287, - 989, 991, 1004, 70, 992, 993, 997, 998, 1001, 994, - 1010, 70, 1000, 70, 1040, 995, 70, 70, 1005, 996, - 1006, 1003, 1002, 70, 70, 1007, 1008, 70, 991, 1004, - 1011, 992, 993, 1012, 1013, 2287, 994, 1009, 2287, 1022, - 1014, 70, 995, 70, 1020, 2287, 996, 1006, 70, 1023, - 70, 1025, 1007, 1008, 2287, 70, 70, 1024, 2287, 1061, - 70, 1013, 70, 70, 1009, 70, 1022, 1014, 1015, 70, - 70, 1020, 70, 1016, 1026, 1017, 1023, 1018, 1025, 1019, - 1027, 1029, 1031, 1033, 1024, 1028, 70, 1030, 1032, 1034, + 1067, 1064, 70, 70, 1065, 70, 70, 1078, 2340, 1077, + 1069, 70, 1068, 1081, 70, 1070, 1082, 70, 70, 1073, + 1075, 70, 1079, 70, 1076, 70, 1080, 1086, 1085, 70, + 1087, 1083, 1088, 70, 70, 70, 1077, 1084, 2340, 1089, + 1081, 70, 70, 70, 70, 1090, 1093, 1092, 70, 1079, + 1094, 2340, 70, 1080, 1086, 1085, 70, 1087, 1083, 1088, + 1091, 1096, 70, 1095, 1084, 70, 1089, 70, 70, 1102, + 1097, 1098, 1090, 1093, 1092, 1100, 1099, 70, 70, 1101, + 1103, 2340, 70, 70, 1108, 1110, 2340, 1091, 1096, 2340, + 1095, 1111, 70, 70, 1112, 2340, 1102, 1097, 70, 1109, - 70, 70, 70, 2287, 70, 1015, 70, 1038, 1039, 70, - 1016, 1026, 1017, 1036, 1018, 70, 1019, 70, 1029, 1031, - 1033, 70, 70, 1035, 1030, 1032, 1034, 1041, 1037, 1042, - 70, 70, 1046, 1043, 1038, 1039, 70, 70, 1045, 70, - 1036, 1044, 1047, 1048, 1049, 1050, 70, 1051, 1054, 70, - 1035, 70, 1056, 2287, 1041, 1037, 70, 70, 1062, 70, - 1043, 1053, 1055, 70, 1063, 1045, 70, 70, 1044, 1047, - 70, 1049, 1050, 1052, 70, 1054, 1057, 1058, 70, 1056, - 70, 1059, 1060, 70, 70, 70, 70, 1064, 1053, 1055, - 70, 1063, 2287, 1065, 1066, 1068, 70, 1067, 70, 1069, + 2340, 1104, 1100, 70, 1105, 1106, 1101, 1103, 1107, 70, + 70, 1108, 70, 70, 70, 1113, 1115, 70, 1111, 1114, + 70, 1112, 1116, 70, 1117, 70, 1109, 70, 1104, 1118, + 1119, 1105, 1106, 70, 2340, 1107, 70, 1121, 1120, 1122, + 1124, 2340, 1113, 1115, 70, 70, 1114, 70, 1123, 1116, + 1125, 1117, 70, 70, 70, 1126, 1118, 1119, 1127, 1128, + 1130, 70, 70, 70, 1121, 1120, 1122, 1124, 1129, 70, + 1131, 1137, 1132, 1134, 1136, 1123, 2340, 1125, 1135, 70, + 70, 1133, 1126, 1138, 70, 1127, 1128, 1130, 70, 1141, + 70, 1139, 1143, 70, 70, 1129, 70, 1131, 70, 1132, - 1052, 70, 70, 1057, 1058, 1070, 70, 1072, 1059, 1060, - 1071, 70, 70, 70, 70, 1077, 1076, 1073, 1075, 70, - 1065, 1066, 70, 1074, 1067, 70, 1069, 1078, 70, 1079, - 70, 70, 1070, 1080, 1084, 1083, 70, 1071, 1082, 70, - 70, 1086, 1077, 1076, 1073, 1075, 1081, 70, 70, 1085, - 1074, 1087, 1090, 70, 1078, 70, 1079, 70, 1091, 70, - 1080, 70, 1083, 70, 1088, 1082, 1097, 1092, 1086, 1089, - 70, 1093, 1099, 1081, 1094, 1098, 1085, 70, 1087, 1090, - 70, 1095, 1100, 70, 1096, 1091, 2287, 1102, 70, 2287, - 1101, 70, 2287, 1097, 1092, 70, 70, 1105, 1093, 1103, + 1134, 1136, 1140, 70, 1142, 1135, 1147, 2340, 1133, 1145, + 70, 1144, 1146, 2340, 1148, 70, 70, 70, 1139, 1143, + 70, 1151, 70, 1149, 70, 1150, 70, 70, 70, 1140, + 70, 1142, 1152, 1147, 1153, 1162, 1145, 2340, 1144, 1146, + 70, 1148, 70, 70, 70, 70, 1154, 1159, 1151, 1156, + 1149, 1155, 1150, 1158, 1157, 70, 1160, 1161, 1164, 1152, + 70, 1153, 1163, 70, 70, 70, 70, 70, 1166, 1165, + 1172, 1167, 2340, 2340, 1159, 1171, 70, 2340, 70, 70, + 1158, 70, 1174, 1160, 1161, 1164, 1168, 1169, 70, 1163, + 70, 1170, 1173, 1175, 70, 70, 1165, 1172, 1167, 70, - 70, 1094, 1098, 70, 70, 70, 70, 1104, 1095, 1100, - 1108, 1096, 1106, 1107, 1102, 1110, 70, 1101, 1109, 70, - 70, 70, 1112, 70, 1105, 1116, 1103, 70, 1111, 1113, - 1115, 1117, 1114, 70, 1104, 70, 1120, 1108, 70, 1106, - 1107, 70, 1110, 70, 70, 1109, 1118, 70, 1121, 1112, - 1123, 70, 1116, 1119, 70, 1111, 1113, 1115, 1117, 1114, - 1122, 1124, 70, 1120, 1125, 1126, 1127, 70, 70, 1128, - 2287, 70, 70, 1118, 70, 1121, 1129, 1123, 1130, 2287, - 1119, 1131, 1132, 1133, 2287, 1137, 70, 1122, 1124, 1135, - 2287, 1125, 70, 1134, 1136, 70, 1128, 70, 70, 1139, + 70, 1176, 1171, 1177, 70, 1178, 1179, 1180, 70, 1174, + 1182, 1188, 1187, 1168, 1169, 2340, 70, 70, 1170, 1173, + 1175, 70, 1181, 70, 70, 1189, 2340, 70, 1176, 70, + 70, 1183, 1178, 1179, 1180, 1184, 1186, 1182, 70, 1187, + 70, 1190, 1191, 70, 1192, 1193, 1194, 70, 1185, 1181, + 1195, 70, 1189, 70, 70, 1200, 70, 1196, 1183, 1198, + 2340, 1197, 1184, 1186, 70, 70, 1199, 1201, 1190, 1191, + 70, 1192, 1193, 1194, 1202, 1185, 1204, 1207, 1203, 70, + 1205, 70, 70, 1206, 70, 1208, 1198, 70, 1197, 70, + 1211, 1210, 70, 1199, 70, 70, 1209, 1212, 1213, 2340, - 70, 70, 70, 1129, 70, 70, 70, 1140, 1131, 1132, - 1133, 70, 1137, 2287, 70, 1138, 1135, 1141, 70, 1142, - 1134, 1136, 70, 1143, 1151, 1147, 1139, 70, 1144, 70, - 70, 1145, 70, 1148, 1140, 1149, 1146, 1150, 1152, 70, - 1153, 70, 1138, 70, 1141, 70, 1142, 1154, 70, 1155, - 1156, 1157, 1147, 1158, 2287, 70, 70, 1160, 70, 70, - 1148, 70, 1149, 70, 1150, 1152, 1161, 1153, 70, 1163, - 70, 1159, 70, 1162, 1154, 1164, 1165, 1156, 1157, 70, - 1158, 70, 1166, 1167, 1160, 70, 1170, 1169, 1168, 1177, - 1175, 70, 1171, 1161, 1184, 70, 1163, 70, 1159, 70, + 70, 70, 70, 1204, 1207, 1203, 70, 1205, 1214, 70, + 1206, 70, 1208, 70, 1215, 70, 1217, 1211, 1210, 1218, + 1219, 70, 1216, 1209, 70, 1213, 1220, 70, 70, 1221, + 1222, 1223, 70, 1224, 1233, 1214, 2340, 2340, 2340, 70, + 70, 1215, 70, 1217, 70, 1225, 1218, 1219, 70, 1216, + 1228, 1229, 1232, 1220, 1226, 1227, 70, 1222, 1223, 70, + 1224, 70, 70, 1230, 1231, 1235, 70, 70, 70, 1234, + 70, 1236, 1225, 70, 70, 1237, 70, 1228, 1229, 1232, + 1238, 1226, 1227, 1239, 70, 1241, 1253, 1242, 70, 70, + 1230, 1231, 1240, 1243, 1244, 70, 1234, 70, 1236, 1246, - 1162, 70, 1164, 1165, 70, 70, 70, 1176, 1172, 70, - 1167, 70, 1173, 1170, 1169, 1168, 70, 1175, 70, 1171, - 1178, 1179, 1180, 1181, 1183, 1174, 70, 1182, 1185, 1186, - 70, 70, 2287, 70, 1176, 1172, 70, 1187, 70, 1173, - 1188, 1189, 70, 1190, 70, 70, 2287, 1178, 1179, 1180, - 1181, 1183, 1174, 1191, 1182, 70, 1186, 1192, 1193, 70, - 1194, 1196, 1195, 70, 1187, 1197, 70, 1188, 70, 1198, - 70, 1199, 1200, 70, 70, 1203, 1204, 1201, 70, 1205, - 70, 70, 70, 70, 1192, 1193, 70, 1194, 1196, 1195, - 1202, 70, 1197, 1206, 1209, 70, 1198, 70, 1199, 70, + 2340, 1247, 70, 70, 70, 1245, 70, 1238, 1249, 1248, + 1239, 70, 1241, 70, 1242, 70, 1254, 70, 70, 1240, + 1243, 1244, 1250, 70, 70, 1251, 1246, 70, 1247, 1255, + 1258, 1256, 1245, 1259, 1260, 1249, 1248, 1252, 70, 1257, + 1262, 70, 1261, 1254, 1264, 2340, 70, 70, 70, 1250, + 1265, 70, 1251, 70, 70, 1263, 1255, 1258, 1256, 1266, + 70, 1260, 70, 1268, 1252, 70, 1257, 1262, 1269, 1261, + 1267, 1270, 70, 1272, 70, 1271, 70, 1265, 1277, 1273, + 70, 1274, 1263, 1275, 70, 70, 70, 1278, 1276, 1311, + 1268, 70, 70, 70, 70, 70, 70, 1267, 1270, 1281, - 70, 70, 1203, 1204, 1201, 1207, 1205, 1208, 1213, 1210, - 1211, 2287, 1212, 70, 2287, 1214, 70, 1202, 70, 1215, - 1206, 70, 70, 70, 1218, 1216, 70, 1217, 1219, 70, - 70, 70, 1207, 1221, 1208, 1213, 1210, 1211, 70, 1212, - 1220, 1222, 1214, 70, 1223, 1224, 1215, 1225, 70, 70, - 1227, 1218, 1216, 70, 1217, 1219, 1226, 1228, 70, 1229, - 70, 1230, 70, 1234, 70, 70, 1231, 1220, 1222, 1232, - 1233, 70, 1224, 1240, 70, 70, 70, 1227, 2287, 1241, - 1235, 70, 1242, 1226, 1228, 70, 1229, 70, 1230, 70, - 1234, 1236, 1245, 1231, 70, 70, 1232, 1233, 70, 1237, + 1272, 1283, 1271, 70, 1279, 1277, 1273, 1280, 1274, 1286, + 1275, 70, 70, 1284, 70, 1276, 1282, 1285, 1287, 70, + 70, 70, 70, 1291, 1288, 2340, 1281, 1293, 70, 1289, + 70, 1279, 70, 1290, 1280, 70, 1286, 70, 1300, 70, + 1284, 70, 70, 1282, 1285, 1287, 1292, 70, 1296, 1294, + 1291, 1288, 1295, 1299, 1293, 70, 1289, 1297, 70, 70, + 1290, 1301, 1298, 1302, 1303, 70, 1305, 70, 1306, 70, + 1304, 1312, 70, 1292, 1307, 1296, 1294, 70, 1308, 1295, + 1299, 1309, 70, 2340, 1297, 1310, 70, 70, 70, 1298, + 1302, 1303, 70, 1305, 1316, 1306, 70, 1304, 70, 1313, - 70, 70, 1238, 1243, 1246, 70, 1241, 1235, 1244, 1242, - 70, 1247, 1248, 1251, 1239, 1250, 70, 1253, 1236, 1245, - 1249, 70, 70, 70, 1252, 70, 1237, 1254, 70, 1238, - 1243, 70, 1256, 1255, 1257, 1244, 70, 70, 1247, 1248, - 1261, 1239, 1250, 1258, 1265, 70, 70, 1249, 2287, 70, - 1259, 1252, 70, 70, 1254, 70, 70, 70, 1260, 70, - 1255, 1257, 1262, 1263, 1266, 70, 1264, 1261, 1268, 1270, - 1258, 70, 1267, 2287, 1273, 70, 70, 1259, 70, 70, - 70, 70, 1269, 1272, 1275, 1260, 1274, 1271, 70, 1262, - 1263, 1266, 1279, 1264, 70, 1268, 70, 70, 70, 1267, + 1314, 1307, 1315, 70, 1317, 1308, 70, 70, 1309, 1318, + 1320, 70, 1310, 1321, 70, 70, 1319, 1322, 70, 70, + 1323, 1316, 2340, 1324, 70, 1329, 1313, 1314, 70, 1315, + 1327, 1317, 1325, 1328, 70, 1332, 1318, 1320, 70, 70, + 1321, 1334, 1333, 1319, 1322, 70, 1326, 1323, 70, 1330, + 1324, 70, 1329, 1335, 1331, 1336, 1337, 1327, 70, 1325, + 1328, 1340, 1338, 1339, 1341, 1346, 2340, 70, 70, 1333, + 70, 2340, 2340, 1326, 1342, 1345, 1344, 70, 70, 70, + 1343, 70, 1336, 70, 70, 70, 1347, 1350, 70, 1338, + 1339, 1341, 1346, 70, 70, 70, 1348, 1349, 70, 1351, - 70, 1273, 1278, 1276, 70, 70, 70, 1277, 1280, 1269, - 1272, 1275, 1283, 1274, 1271, 1281, 70, 1287, 1282, 1279, - 70, 1288, 1286, 70, 70, 1291, 1284, 1289, 70, 1278, - 1276, 1285, 1290, 70, 1277, 1280, 1299, 1293, 70, 1283, - 70, 2287, 1281, 1297, 70, 1282, 1292, 70, 70, 1286, - 1298, 70, 1291, 1284, 1289, 70, 2287, 70, 1285, 1290, - 1294, 70, 1295, 70, 1293, 1296, 1302, 1300, 70, 1301, - 1297, 1303, 2287, 1292, 70, 70, 1305, 1304, 1311, 1306, - 70, 70, 70, 70, 70, 1308, 1307, 1294, 70, 1295, - 1309, 70, 1296, 1302, 1300, 70, 1301, 1310, 1303, 1316, + 1352, 1342, 1345, 1344, 70, 1353, 1355, 1343, 1354, 70, + 70, 70, 1356, 1347, 1357, 70, 1358, 1360, 1361, 70, + 1362, 70, 1359, 1348, 1349, 2340, 1351, 1352, 1364, 70, + 70, 1365, 70, 1355, 70, 1354, 70, 1363, 70, 1356, + 70, 1357, 1366, 1358, 1360, 1361, 70, 70, 70, 1359, + 70, 1367, 1369, 1368, 1371, 1364, 1370, 70, 1365, 70, + 70, 1372, 1373, 70, 1363, 1375, 1374, 2340, 1377, 1366, + 1378, 70, 1376, 1380, 2340, 2340, 1379, 1381, 1367, 2340, + 1368, 1371, 70, 1370, 70, 1386, 70, 1384, 1372, 70, + 70, 70, 70, 1374, 70, 1377, 70, 70, 70, 1376, - 70, 70, 1312, 1305, 1304, 1311, 1306, 1314, 70, 1317, - 1315, 70, 1308, 1307, 1318, 70, 1313, 1309, 1319, 1321, - 1322, 1320, 1323, 1324, 1310, 70, 1316, 2287, 70, 1312, - 70, 1326, 1325, 1327, 1314, 2287, 1329, 1315, 70, 1331, - 1328, 70, 1330, 1313, 70, 1332, 70, 70, 1320, 1323, - 70, 1339, 70, 70, 70, 70, 1333, 2287, 1326, 1325, - 70, 1336, 1334, 1329, 70, 70, 1331, 1328, 1335, 1330, - 70, 70, 1332, 1337, 1340, 1341, 70, 1338, 70, 1345, - 2287, 70, 2287, 1333, 70, 1342, 70, 1343, 1344, 1334, - 1346, 1347, 1348, 70, 70, 1335, 1350, 70, 70, 2287, + 1380, 70, 1382, 1379, 1381, 1383, 1385, 70, 1387, 70, + 70, 1389, 1386, 1388, 1384, 70, 1395, 1390, 1391, 1396, + 1393, 2340, 1394, 70, 2340, 1400, 70, 70, 70, 1382, + 1399, 1392, 1383, 1385, 70, 1387, 70, 70, 1389, 70, + 1388, 1402, 1397, 70, 1390, 1391, 1398, 1393, 70, 1394, + 1403, 70, 70, 1401, 70, 1404, 70, 1399, 1392, 1406, + 70, 1405, 1407, 1408, 1410, 1409, 1412, 1413, 70, 1397, + 1411, 1415, 70, 1398, 70, 1414, 1422, 1403, 1424, 2340, + 1401, 2340, 70, 1425, 70, 2340, 70, 2340, 1405, 1407, + 70, 70, 1409, 1412, 70, 70, 70, 1411, 1416, 1417, - 1337, 1340, 1341, 70, 1338, 1351, 1345, 70, 1349, 70, - 70, 1352, 1342, 1355, 1343, 1344, 70, 1346, 1347, 70, - 70, 70, 1353, 1350, 1354, 1356, 70, 1357, 1359, 1358, - 70, 70, 1351, 1360, 1361, 1349, 70, 1362, 1352, 1364, - 70, 1367, 1366, 1365, 1363, 70, 2287, 2287, 70, 1353, - 70, 1354, 1356, 1371, 1357, 70, 1358, 70, 70, 70, - 1360, 70, 70, 1372, 1362, 1369, 70, 70, 1367, 1366, - 1365, 1363, 1368, 1370, 70, 70, 1373, 70, 1378, 1375, - 1371, 70, 70, 1374, 1376, 70, 1379, 1380, 1381, 1385, - 1372, 70, 1369, 2287, 1387, 70, 1383, 1377, 70, 1368, + 1418, 70, 1414, 70, 1420, 1419, 1426, 1421, 70, 1423, + 70, 70, 1427, 70, 70, 1430, 70, 1429, 1433, 70, + 2340, 1432, 1428, 1431, 70, 1416, 1417, 1418, 70, 70, + 1434, 1420, 1419, 1426, 1421, 1436, 1423, 70, 70, 1427, + 1439, 70, 1435, 70, 1429, 1433, 1437, 70, 1432, 1428, + 1431, 1438, 1440, 70, 1441, 1443, 70, 70, 1442, 1444, + 1445, 70, 1436, 1448, 70, 1446, 70, 1439, 1452, 1435, + 1455, 70, 70, 1437, 1447, 70, 1449, 70, 1438, 70, + 70, 1441, 70, 70, 1450, 1442, 1444, 1445, 1451, 70, + 1448, 1453, 1446, 1454, 1456, 70, 1457, 1458, 70, 2340, - 1370, 70, 70, 1373, 70, 1378, 1375, 1389, 1390, 1382, - 1374, 1376, 1384, 1379, 70, 70, 70, 1392, 1386, 70, - 70, 70, 1388, 1383, 1377, 70, 1391, 1393, 70, 1394, - 1395, 70, 2287, 1397, 70, 1390, 1382, 1398, 70, 1384, - 1396, 70, 70, 1399, 1392, 1386, 1400, 2287, 1405, 1388, - 1407, 2287, 2287, 1411, 1406, 70, 1394, 70, 70, 70, - 1397, 70, 70, 1409, 70, 1412, 70, 1396, 1410, 70, - 1399, 1416, 1401, 1402, 1403, 1405, 1408, 1413, 70, 1404, - 1411, 1406, 70, 70, 1414, 1415, 1419, 70, 1418, 70, - 70, 1425, 1412, 70, 70, 70, 70, 1421, 1416, 1401, + 70, 1447, 70, 1449, 1459, 1460, 1461, 2340, 1464, 2340, + 70, 1450, 70, 70, 70, 1451, 1463, 70, 1453, 70, + 1454, 1462, 70, 70, 1458, 1466, 70, 1465, 70, 1467, + 1468, 1459, 1460, 1461, 1470, 1464, 70, 1471, 1474, 1472, + 70, 70, 70, 1463, 1473, 1475, 1469, 70, 1462, 70, + 1476, 70, 1466, 70, 1465, 1479, 1467, 1468, 1483, 70, + 1484, 1470, 1480, 70, 1471, 1474, 1472, 70, 70, 1477, + 1481, 1473, 1475, 1469, 1478, 1485, 1487, 70, 1488, 1482, + 1486, 1491, 70, 70, 1490, 70, 70, 70, 1492, 1480, + 70, 1489, 70, 1493, 1494, 1496, 1477, 1481, 1495, 70, - 1402, 1403, 1417, 1408, 1413, 1422, 1404, 1420, 70, 70, - 1424, 1414, 70, 70, 1423, 1418, 1427, 70, 70, 70, - 1426, 1428, 70, 70, 1421, 1430, 1431, 1429, 2287, 1417, - 1432, 70, 1422, 1433, 1420, 1435, 70, 1424, 70, 70, - 1437, 1423, 1436, 1427, 70, 70, 70, 1426, 70, 1434, - 70, 1438, 1430, 1431, 1429, 1439, 1440, 1432, 70, 70, - 1433, 1441, 1435, 1442, 70, 1443, 2287, 1444, 1447, 1436, - 1445, 1446, 70, 2287, 2287, 70, 1434, 70, 1438, 70, - 1448, 2287, 1439, 70, 1451, 70, 2287, 70, 70, 1453, - 70, 1449, 1443, 70, 1444, 1447, 1452, 1445, 1446, 1458, + 70, 1478, 1498, 70, 1499, 1500, 1482, 70, 70, 70, + 70, 1490, 1497, 70, 1501, 1492, 70, 70, 1489, 70, + 1493, 1494, 1502, 1503, 1505, 1495, 1504, 70, 1509, 70, + 1506, 1499, 1500, 70, 70, 2340, 1507, 2340, 1508, 1497, + 70, 1501, 1510, 1511, 1515, 1512, 70, 1513, 1516, 70, + 70, 70, 1520, 1504, 2340, 1509, 70, 1506, 70, 70, + 70, 1514, 70, 1507, 70, 1508, 70, 70, 1517, 1510, + 1511, 1515, 1512, 2340, 1513, 70, 70, 1518, 1519, 70, + 1521, 1523, 1527, 1522, 1524, 2340, 70, 70, 1514, 1525, + 70, 1526, 70, 1528, 1531, 1517, 1534, 1538, 1529, 70, - 70, 1450, 70, 1456, 70, 1454, 1455, 1448, 70, 1457, - 70, 1451, 70, 1459, 70, 70, 1453, 70, 1449, 1460, - 1461, 1464, 70, 1452, 2287, 1465, 1458, 1468, 1450, 1466, - 1456, 70, 1454, 1455, 70, 1469, 1457, 70, 1462, 2287, - 1459, 1472, 70, 1463, 1467, 1470, 1460, 70, 70, 1474, - 1471, 70, 1465, 1475, 70, 1477, 1466, 1473, 70, 70, - 1476, 1479, 70, 70, 70, 1462, 1478, 1480, 1482, 1481, - 1463, 1467, 2287, 70, 70, 70, 1474, 70, 70, 1483, - 1484, 70, 1477, 1485, 1473, 70, 1486, 1476, 1479, 1487, - 1488, 1489, 2287, 1478, 70, 2287, 1481, 70, 1490, 70, + 70, 70, 2340, 70, 1518, 1519, 70, 1521, 1523, 1530, + 1522, 1524, 70, 70, 70, 1532, 1525, 1533, 1526, 1535, + 1528, 1531, 1536, 70, 70, 1529, 1537, 1539, 1542, 70, + 70, 1540, 1543, 70, 70, 70, 1530, 70, 1541, 70, + 1544, 1545, 1532, 1546, 1533, 2340, 1535, 2340, 70, 1536, + 2340, 70, 2340, 1537, 1539, 70, 1547, 70, 1540, 1543, + 70, 1549, 1550, 70, 1551, 1541, 1548, 1544, 1545, 70, + 1546, 1554, 70, 1553, 70, 1556, 70, 70, 1558, 70, + 1552, 70, 70, 1547, 1555, 70, 1557, 1559, 1549, 1550, + 1560, 1551, 70, 1548, 1561, 1565, 70, 70, 1554, 1563, - 70, 1492, 1491, 1493, 70, 1494, 1483, 1484, 2287, 70, - 1485, 1495, 1499, 70, 2287, 1501, 70, 1488, 1496, 70, - 1503, 70, 70, 70, 70, 1490, 1497, 70, 1492, 1491, - 1493, 1498, 1494, 70, 1500, 70, 1504, 70, 1495, 70, - 1502, 70, 1501, 70, 2287, 1496, 70, 70, 1505, 1507, - 1506, 1508, 70, 1497, 1510, 2287, 1511, 70, 1498, 70, - 1509, 1500, 70, 1504, 1514, 1517, 70, 1502, 1512, 70, - 1515, 1516, 1519, 70, 70, 1505, 1507, 1506, 1508, 1513, - 1520, 1521, 70, 1511, 70, 1518, 70, 1509, 70, 70, - 1522, 1514, 70, 70, 70, 1512, 70, 1515, 1516, 1519, + 1553, 70, 1556, 1562, 2340, 70, 70, 1552, 1568, 1564, + 1566, 1555, 1567, 1557, 1559, 1569, 1570, 1560, 70, 70, + 70, 1561, 1565, 1572, 1574, 70, 1563, 1571, 70, 1580, + 1562, 70, 1575, 70, 70, 1568, 1564, 1566, 1576, 1567, + 70, 70, 1569, 1570, 1573, 70, 70, 1577, 1579, 1578, + 70, 1574, 1582, 1583, 1571, 70, 1581, 70, 70, 1575, + 70, 70, 1584, 1586, 1585, 1576, 70, 1587, 2340, 70, + 70, 1573, 70, 1588, 1577, 1579, 1578, 70, 70, 1582, + 1583, 1589, 1590, 1581, 1591, 70, 1593, 2340, 70, 1584, + 70, 1585, 1592, 70, 1587, 1594, 2340, 1595, 1599, 1600, - 70, 1523, 2287, 1525, 1524, 1526, 1513, 1520, 1528, 2287, - 1529, 2287, 1518, 70, 1527, 70, 1531, 1522, 1532, 1539, - 1530, 2287, 70, 2287, 70, 1533, 70, 70, 1523, 70, - 70, 1524, 1526, 70, 70, 1528, 70, 1529, 70, 1534, - 70, 1527, 1537, 1531, 1536, 1532, 1539, 1530, 1535, 70, - 1540, 1541, 1533, 1542, 70, 1538, 70, 1543, 2287, 1544, - 1548, 1546, 70, 70, 70, 70, 1534, 1545, 70, 1537, - 1547, 1536, 1549, 1550, 1555, 1535, 1551, 1540, 70, 1553, - 1542, 70, 1538, 70, 1543, 70, 1544, 1548, 1546, 70, - 1552, 1557, 70, 1559, 1545, 70, 70, 1547, 1554, 1549, + 1588, 70, 1596, 1598, 70, 1597, 70, 2340, 1589, 1601, + 2340, 1591, 1603, 1593, 70, 1604, 1602, 70, 2340, 1592, + 70, 70, 1594, 70, 1595, 1599, 70, 70, 70, 1596, + 1598, 70, 1597, 1605, 70, 1607, 1601, 70, 1606, 1603, + 1608, 1613, 1604, 1602, 70, 70, 1612, 70, 1609, 1611, + 70, 70, 1614, 70, 70, 1616, 1615, 1618, 1619, 1617, + 1605, 1610, 1607, 2340, 1620, 1606, 70, 1608, 1613, 70, + 70, 1621, 1636, 1612, 70, 1609, 1611, 70, 1622, 1614, + 1625, 1627, 70, 1615, 70, 1619, 1617, 70, 1610, 1623, + 1626, 1620, 70, 70, 1624, 1631, 1632, 70, 1621, 70, - 1550, 70, 1558, 1551, 70, 1561, 1553, 2287, 70, 1556, - 70, 70, 1560, 70, 70, 70, 1562, 1552, 1557, 1563, - 1559, 1565, 1564, 70, 1573, 1554, 1566, 70, 1568, 1558, - 1567, 1569, 1561, 1570, 70, 70, 1556, 2287, 70, 1560, - 1571, 70, 1574, 1562, 70, 70, 1575, 1572, 1565, 1564, - 1576, 70, 70, 1566, 70, 1568, 70, 1567, 70, 70, - 1570, 1577, 2287, 1578, 70, 70, 2287, 1571, 2287, 1574, - 1581, 70, 1583, 1575, 1572, 1579, 1582, 1576, 1580, 1585, - 1584, 2287, 70, 2287, 1589, 2287, 1586, 70, 1577, 70, - 1578, 70, 1587, 70, 70, 70, 1588, 1581, 70, 70, + 1628, 2340, 1633, 1634, 70, 1622, 1635, 1625, 70, 1637, + 1638, 1640, 1639, 70, 1629, 70, 2340, 1626, 70, 1641, + 2340, 70, 1631, 70, 1643, 1630, 70, 1628, 70, 1633, + 1634, 70, 1645, 1635, 70, 1648, 1637, 70, 1642, 1639, + 1646, 1629, 70, 70, 70, 70, 1641, 70, 1644, 1647, + 70, 1643, 1630, 1651, 70, 1649, 1652, 70, 1650, 1645, + 1653, 70, 1648, 2340, 70, 1642, 1654, 1646, 2340, 70, + 1655, 70, 70, 1656, 1659, 1644, 1647, 70, 1657, 70, + 70, 70, 1649, 1652, 1660, 1650, 70, 1653, 70, 1661, + 1658, 1662, 70, 1654, 70, 70, 1663, 1655, 1664, 1665, - 1590, 1591, 1579, 1582, 1592, 1580, 1585, 1584, 70, 70, - 70, 1589, 70, 1586, 70, 1594, 1597, 1593, 1595, 1587, - 1596, 1598, 70, 1588, 1600, 70, 1602, 1590, 1591, 1601, - 70, 1592, 1599, 1603, 70, 1605, 70, 70, 1604, 1607, - 1606, 1609, 1594, 1597, 1593, 1595, 1613, 1596, 70, 70, - 70, 70, 70, 1602, 1608, 70, 1601, 1610, 70, 1599, - 1603, 70, 1614, 1616, 70, 1604, 1607, 70, 70, 1615, - 1617, 1611, 1618, 1613, 1620, 2287, 1622, 2287, 70, 70, - 1619, 1608, 1612, 70, 1610, 1623, 1621, 1624, 2287, 70, - 1616, 1625, 70, 70, 1626, 70, 1615, 1617, 1611, 70, + 1656, 1659, 70, 1666, 1671, 1657, 70, 1667, 1672, 1668, + 70, 1660, 1670, 2340, 1669, 1674, 1661, 1658, 1662, 1675, + 1673, 70, 70, 1663, 1678, 1664, 70, 70, 70, 70, + 1666, 70, 70, 1683, 1667, 70, 1668, 1676, 70, 1670, + 1677, 1669, 1674, 1679, 1680, 70, 1675, 1673, 70, 1681, + 1682, 70, 1684, 1685, 1686, 70, 70, 70, 1687, 1688, + 1683, 1689, 70, 1690, 1676, 70, 70, 1677, 70, 1691, + 1679, 1680, 1693, 1694, 1696, 1692, 1681, 1682, 1697, 70, + 70, 1686, 70, 70, 1695, 70, 1688, 70, 70, 1698, + 70, 1699, 70, 1700, 70, 1702, 1691, 1704, 1703, 1693, - 1629, 70, 70, 1622, 70, 1628, 1632, 1619, 70, 1612, - 70, 1627, 1623, 1621, 1624, 70, 70, 70, 1625, 1630, - 1631, 1626, 70, 1634, 2287, 1633, 1637, 1629, 70, 1635, - 1646, 70, 1628, 70, 70, 70, 1636, 70, 1627, 1639, - 2287, 1638, 1640, 70, 1643, 70, 1630, 1631, 70, 70, - 1634, 70, 1633, 1637, 1641, 1642, 1635, 70, 1644, 70, - 1645, 70, 70, 1636, 70, 1647, 1639, 1649, 1638, 1640, - 1648, 1643, 70, 1651, 1650, 1652, 1653, 1655, 1654, 1659, - 70, 1641, 1642, 1656, 70, 1644, 1660, 1645, 70, 70, - 70, 70, 1647, 1657, 1649, 1661, 1658, 1648, 1665, 70, + 70, 70, 1692, 1706, 1705, 1697, 70, 1707, 1701, 70, + 70, 1695, 70, 1708, 70, 70, 1698, 70, 1699, 70, + 1700, 1709, 70, 1710, 1704, 1703, 1711, 1713, 1712, 1715, + 70, 1705, 1714, 70, 1707, 1701, 70, 1716, 70, 70, + 1708, 1717, 1718, 2340, 1721, 1719, 70, 1720, 1709, 70, + 1710, 1723, 1724, 70, 70, 1712, 1715, 2340, 70, 1714, + 70, 1722, 70, 70, 1716, 70, 70, 70, 1717, 1718, + 70, 1721, 1719, 1725, 1720, 1726, 1728, 1727, 1723, 1724, + 1729, 1730, 1733, 1731, 1735, 2340, 1734, 2340, 1722, 70, + 1737, 70, 1732, 1738, 70, 70, 2340, 70, 70, 70, - 1651, 1650, 70, 70, 1655, 1654, 70, 1662, 70, 70, - 1656, 70, 1663, 1660, 70, 1664, 1666, 70, 1667, 70, - 1657, 1668, 1661, 1658, 1669, 70, 70, 1670, 1671, 1673, - 70, 1672, 1675, 70, 1662, 1674, 1677, 70, 1676, 1663, - 1678, 2287, 1664, 70, 70, 1667, 70, 1679, 70, 70, - 1683, 1669, 1680, 1684, 70, 70, 1673, 70, 1672, 70, - 1681, 70, 1674, 70, 1686, 1676, 1685, 1678, 70, 1687, - 1690, 1691, 70, 1692, 1679, 1682, 70, 70, 70, 1680, - 1684, 1688, 70, 1694, 1693, 1689, 70, 1681, 70, 70, - 1698, 1686, 70, 1685, 70, 1696, 70, 1690, 1691, 1695, + 1725, 70, 1726, 1728, 1727, 70, 1736, 1729, 1730, 70, + 1731, 1735, 1739, 1734, 70, 1743, 70, 1737, 1744, 1732, + 1740, 1741, 1745, 1742, 70, 70, 1748, 70, 70, 1746, + 1749, 1747, 1757, 1736, 2340, 1753, 70, 70, 70, 1739, + 70, 70, 1743, 70, 1750, 1744, 1752, 1740, 1741, 1745, + 1742, 1754, 1751, 1748, 70, 1756, 1746, 1749, 1747, 70, + 1755, 70, 70, 1758, 70, 1759, 70, 1760, 2340, 2340, + 1761, 1750, 1763, 1752, 1762, 1764, 1767, 70, 70, 1751, + 70, 1765, 1756, 70, 70, 70, 1766, 1755, 1768, 70, + 1769, 1770, 70, 1772, 1760, 70, 70, 1761, 70, 1763, - 70, 1699, 1682, 1697, 70, 2287, 70, 1700, 1688, 1701, - 70, 1693, 1689, 1702, 1713, 70, 70, 1698, 1703, 70, - 70, 1705, 1696, 1704, 70, 1706, 1695, 70, 1699, 1707, - 1697, 1708, 70, 2287, 1700, 70, 1701, 70, 1714, 1709, - 1702, 1710, 1711, 70, 2287, 1703, 70, 70, 1705, 1712, - 1704, 70, 1706, 1716, 1718, 1717, 1707, 70, 1708, 70, - 70, 70, 70, 1715, 1733, 1714, 1709, 1719, 1710, 1711, - 70, 70, 1721, 1723, 1722, 1720, 1712, 1724, 1726, 70, - 1716, 70, 1717, 1725, 1727, 70, 70, 1730, 1728, 70, - 1715, 70, 1729, 70, 1719, 70, 70, 1732, 70, 1721, + 70, 1762, 1764, 1767, 1771, 1773, 70, 70, 1765, 70, + 1776, 70, 70, 1766, 1774, 70, 1775, 1769, 1770, 1777, + 1772, 70, 1780, 1779, 1778, 1781, 1782, 1783, 70, 1785, + 2340, 1771, 1773, 70, 70, 1784, 1786, 1790, 70, 1788, + 70, 1774, 70, 1775, 70, 70, 1777, 1789, 70, 1780, + 1779, 1778, 70, 1782, 1783, 70, 1785, 70, 1787, 70, + 70, 1791, 1784, 1786, 1792, 70, 1788, 1794, 1793, 70, + 70, 1795, 2340, 1798, 1789, 1796, 70, 1797, 1799, 1800, + 70, 1801, 1802, 1809, 2340, 1787, 70, 1803, 1791, 2340, + 1804, 70, 70, 70, 70, 1793, 1807, 70, 1795, 70, - 1723, 1722, 1720, 70, 1724, 1726, 1731, 1734, 1735, 70, - 1725, 1727, 70, 70, 1730, 1728, 70, 1736, 1737, 1729, - 1738, 1741, 2287, 2287, 1732, 1739, 2287, 1740, 1742, 1743, - 70, 1744, 1747, 1731, 70, 1735, 70, 70, 70, 1745, - 1746, 70, 1755, 1748, 1749, 2287, 2287, 70, 1741, 70, - 70, 70, 1739, 70, 1740, 1742, 1743, 70, 1744, 70, - 1751, 1750, 70, 1752, 70, 70, 1745, 1746, 70, 1753, - 1748, 1749, 1754, 70, 70, 1757, 70, 1756, 1758, 1759, - 1760, 1761, 1762, 1769, 70, 2287, 70, 1751, 1750, 70, - 1752, 1764, 1765, 2287, 70, 1767, 1753, 1763, 70, 1754, + 70, 1806, 1796, 1808, 1797, 70, 1812, 70, 1801, 1802, + 1805, 70, 70, 1810, 1803, 70, 70, 1804, 70, 1811, + 1814, 70, 70, 70, 1813, 2340, 1815, 1816, 1806, 1817, + 1808, 70, 1818, 70, 1820, 1819, 1821, 1805, 1822, 2340, + 1810, 1825, 70, 1823, 2340, 70, 1811, 70, 70, 1828, + 70, 1813, 70, 1815, 1816, 1824, 1817, 70, 70, 1818, + 1826, 70, 1819, 70, 70, 70, 1827, 70, 1825, 70, + 1823, 1829, 1830, 1831, 1833, 70, 1828, 1832, 1834, 70, + 1837, 70, 1824, 1836, 70, 1840, 70, 1826, 1835, 70, + 70, 1841, 1843, 1827, 70, 70, 70, 70, 1829, 1830, - 70, 70, 1757, 1768, 1756, 1758, 1759, 70, 1761, 1762, - 70, 1771, 70, 1766, 70, 70, 70, 70, 1764, 1765, - 1770, 70, 1767, 1772, 1763, 1773, 70, 1774, 1777, 1775, - 1768, 1776, 1778, 1779, 1780, 70, 70, 1781, 70, 1782, - 1766, 70, 1786, 1788, 70, 1783, 1791, 1770, 70, 1784, - 1772, 70, 70, 70, 1774, 70, 1775, 70, 1776, 70, - 70, 1780, 1785, 1787, 1781, 70, 1782, 70, 1790, 70, - 1789, 1793, 1783, 70, 1792, 70, 1784, 70, 1795, 70, - 70, 70, 1794, 1796, 1798, 1799, 1797, 1800, 1801, 1785, - 1787, 1804, 1802, 1803, 2287, 1790, 70, 1789, 70, 70, + 1831, 70, 1845, 1838, 1832, 1834, 70, 1837, 1839, 70, + 1836, 70, 1840, 1842, 1846, 1835, 1844, 1847, 1841, 1843, + 70, 70, 70, 1848, 1849, 1850, 70, 70, 1851, 1845, + 1838, 1852, 1854, 1853, 2340, 1839, 2340, 2340, 1855, 70, + 1842, 1846, 70, 1844, 1847, 70, 70, 1875, 70, 1856, + 1848, 70, 70, 1857, 70, 1851, 70, 70, 1852, 1854, + 1853, 1858, 70, 1859, 1860, 1855, 70, 1861, 1862, 1864, + 70, 1863, 1866, 1868, 70, 1865, 1856, 70, 1869, 70, + 1857, 70, 70, 1867, 1873, 70, 1874, 70, 1858, 2340, + 1859, 1860, 1870, 70, 1861, 1862, 70, 70, 1863, 1866, - 70, 1792, 70, 70, 70, 1795, 70, 70, 1805, 1794, - 1796, 1798, 70, 1797, 70, 70, 1806, 70, 1804, 1802, - 1803, 1807, 1808, 70, 1809, 1810, 1811, 1812, 1813, 70, - 1815, 70, 70, 1814, 1817, 1805, 1816, 70, 1818, 70, - 70, 70, 2287, 1806, 70, 70, 70, 70, 1807, 1808, - 1819, 1809, 1810, 70, 1812, 1813, 1823, 1815, 1820, 1824, - 1814, 1817, 1825, 1816, 70, 1818, 1821, 70, 70, 1822, - 1826, 70, 70, 70, 1827, 1828, 2287, 1819, 1829, 1830, - 70, 1834, 1831, 1823, 70, 1820, 1824, 1832, 70, 1825, - 70, 1840, 70, 1821, 1835, 70, 1822, 1826, 70, 70, + 1868, 70, 1865, 70, 1871, 1869, 1872, 1876, 1877, 1878, + 1867, 70, 1883, 70, 70, 70, 70, 70, 1879, 1870, + 70, 1880, 1881, 1884, 1882, 2340, 1886, 1885, 70, 70, + 1887, 1871, 2340, 1872, 1876, 1877, 1878, 70, 70, 1883, + 70, 1888, 1892, 1893, 1896, 1879, 70, 1900, 1880, 1881, + 70, 1882, 70, 70, 1885, 1889, 1890, 1887, 1891, 70, + 1894, 1897, 70, 1898, 70, 70, 70, 1895, 1888, 1892, + 70, 70, 70, 1899, 70, 70, 70, 1901, 1902, 1903, + 1905, 1904, 1889, 1890, 70, 1891, 1907, 1894, 1897, 70, + 1898, 70, 1906, 1909, 1895, 1908, 70, 1910, 70, 1911, - 1833, 70, 70, 1836, 70, 1829, 1830, 70, 1834, 1831, - 70, 1837, 1838, 1839, 1832, 1841, 1842, 70, 1840, 70, - 1848, 1835, 70, 1843, 1844, 1845, 1846, 1833, 1850, 70, - 1836, 70, 70, 1849, 70, 70, 1847, 70, 1837, 1838, - 1839, 70, 70, 1842, 70, 70, 1851, 1848, 1852, 1853, - 1843, 1844, 1845, 1846, 1854, 70, 1855, 1856, 70, 1861, - 1849, 1857, 1858, 1847, 70, 1859, 70, 1863, 70, 70, - 1860, 1862, 1865, 70, 1864, 2287, 1853, 1870, 1866, 70, - 70, 1854, 70, 1855, 1856, 70, 70, 70, 1857, 1858, - 70, 1869, 1859, 1873, 70, 70, 70, 1860, 1862, 1865, + 1899, 1912, 1913, 1914, 1901, 70, 70, 70, 1904, 1922, + 1916, 70, 1915, 70, 70, 70, 1917, 70, 70, 1906, + 1909, 70, 1908, 70, 1910, 70, 1911, 1919, 1912, 1913, + 1914, 70, 1918, 1920, 1921, 70, 70, 1916, 1923, 1915, + 1926, 1925, 1924, 1917, 70, 2340, 70, 1928, 1927, 70, + 1931, 2340, 1929, 1932, 1919, 70, 1930, 1933, 1934, 1918, + 1920, 1921, 70, 70, 70, 70, 1937, 1938, 1925, 1924, + 70, 70, 70, 70, 1928, 1927, 1935, 70, 70, 1929, + 70, 1936, 70, 1930, 1933, 1934, 1939, 1940, 70, 70, + 1941, 2340, 1943, 1937, 1938, 1942, 1944, 1947, 1945, 2340, - 1867, 1864, 1868, 1872, 70, 1866, 2287, 1871, 70, 70, - 1874, 1875, 70, 1876, 1877, 70, 1879, 1878, 1869, 70, - 70, 1880, 1882, 70, 1881, 1883, 1884, 1867, 1885, 1868, - 1872, 70, 70, 70, 1871, 2287, 70, 1874, 1875, 1888, - 1876, 70, 1887, 70, 1878, 1886, 1889, 70, 70, 70, - 70, 1881, 1883, 70, 70, 1885, 70, 70, 1890, 1891, - 1893, 1895, 1892, 1894, 1897, 1898, 1888, 1899, 70, 1887, - 70, 70, 1886, 1889, 1896, 70, 70, 1900, 1901, 70, - 1902, 70, 1904, 70, 1903, 1890, 1891, 1893, 1895, 1892, - 1894, 1897, 70, 1906, 70, 1905, 70, 70, 1907, 1908, + 2340, 1946, 1949, 2340, 70, 1948, 2340, 1953, 70, 2340, + 70, 70, 70, 70, 1940, 70, 70, 1941, 70, 1943, + 70, 70, 1942, 1944, 1947, 1945, 1950, 70, 1946, 1949, + 1951, 1952, 1948, 70, 1953, 1955, 1954, 1956, 1957, 1958, + 70, 1960, 1959, 70, 70, 1962, 70, 2340, 70, 70, + 70, 1966, 1963, 1950, 70, 1961, 1968, 1951, 1952, 70, + 70, 1964, 1955, 1954, 1956, 1957, 70, 70, 1960, 1959, + 1965, 1967, 70, 70, 70, 1969, 2340, 70, 1966, 1963, + 1971, 1972, 1961, 70, 1970, 1977, 1973, 1974, 1964, 1975, + 2340, 1976, 1978, 1981, 70, 70, 1983, 1965, 70, 70, - 70, 1896, 1909, 1914, 1900, 1901, 70, 70, 70, 1904, - 1912, 1903, 70, 1910, 1913, 70, 70, 1915, 1911, 1918, - 1906, 1916, 1905, 1921, 1917, 70, 70, 1920, 1919, 1909, - 2287, 70, 70, 1922, 1923, 70, 70, 1912, 70, 2287, - 70, 1913, 70, 70, 1915, 70, 1918, 70, 1916, 70, - 1921, 1917, 1925, 1924, 1920, 1919, 70, 70, 1926, 1927, - 1922, 1923, 70, 1928, 1929, 1930, 70, 1931, 1933, 1935, - 1932, 1937, 1936, 70, 70, 1934, 70, 70, 70, 1925, - 1924, 1941, 70, 70, 70, 1926, 1927, 70, 1939, 70, - 1928, 1929, 1930, 1938, 1931, 70, 1935, 1932, 70, 1936, + 70, 70, 1969, 70, 1980, 1982, 70, 1971, 1972, 70, + 1984, 1970, 70, 1973, 1974, 1979, 1975, 70, 1976, 1978, + 70, 1985, 70, 70, 1987, 1988, 1986, 1989, 1990, 70, + 70, 1980, 1982, 1997, 70, 1991, 70, 1984, 70, 1993, + 70, 1992, 1979, 1995, 1994, 1996, 1999, 70, 70, 2000, + 2340, 70, 1988, 1986, 1989, 1998, 2001, 70, 2002, 2004, + 70, 70, 70, 2003, 70, 70, 70, 2005, 1992, 70, + 1995, 70, 1996, 1999, 2006, 2007, 70, 70, 70, 2009, + 2011, 2008, 1998, 2001, 70, 2002, 2004, 70, 70, 2010, + 2003, 70, 2012, 70, 2005, 2014, 70, 2013, 2340, 2016, - 70, 70, 1934, 1940, 70, 1942, 1943, 1944, 1941, 1945, - 70, 1946, 1948, 1947, 1952, 1939, 1950, 2287, 1951, 1949, - 1938, 1956, 2287, 2287, 1955, 2287, 70, 70, 70, 70, - 1940, 70, 70, 70, 1944, 70, 1945, 70, 1946, 1948, - 1947, 70, 1953, 1950, 70, 1951, 1949, 1954, 70, 70, - 70, 1955, 1957, 1958, 70, 1959, 1960, 1961, 1962, 1963, - 1964, 1965, 1969, 1967, 1966, 1971, 70, 70, 1968, 1953, - 2287, 1974, 70, 1970, 1954, 1972, 70, 70, 1973, 1957, - 70, 70, 1959, 70, 70, 1962, 1963, 70, 70, 1969, - 1975, 1966, 70, 2287, 70, 70, 1976, 70, 70, 1981, + 2340, 2006, 2007, 70, 2015, 70, 2009, 2011, 2008, 2017, + 2340, 2018, 70, 2340, 70, 2023, 2010, 2019, 2020, 70, + 2021, 2026, 2014, 2029, 2013, 70, 2016, 70, 70, 2022, + 70, 2015, 2024, 70, 2025, 70, 2017, 70, 2018, 70, + 70, 70, 2023, 2027, 2019, 2020, 2028, 2021, 70, 2030, + 70, 2031, 2032, 2033, 2034, 70, 2022, 2035, 2340, 2024, + 2036, 2025, 2043, 70, 2037, 2038, 2340, 70, 2060, 70, + 2027, 70, 2041, 2028, 70, 2042, 2030, 70, 70, 2032, + 2033, 2034, 70, 70, 70, 2039, 70, 2036, 2044, 70, + 2040, 2037, 2038, 70, 2045, 2046, 2047, 70, 2048, 2041, - 1970, 70, 1972, 1978, 1977, 1973, 70, 1982, 1979, 1980, - 1985, 1984, 70, 1987, 2287, 1983, 70, 1975, 70, 1989, - 70, 70, 70, 1976, 70, 1986, 1981, 70, 1990, 1993, - 1978, 1977, 70, 70, 1982, 1979, 1980, 70, 1984, 1988, - 1987, 1991, 1983, 1994, 1996, 70, 1989, 70, 1992, 1999, - 70, 70, 1986, 1997, 70, 1990, 1993, 1995, 70, 70, - 70, 2000, 70, 2002, 2001, 1998, 1988, 70, 1991, 2003, - 1994, 1996, 70, 70, 2004, 1992, 70, 2005, 2007, 2006, - 1997, 2008, 2287, 2011, 1995, 70, 2009, 70, 2000, 70, - 70, 2001, 1998, 2010, 2015, 70, 2003, 70, 2012, 70, + 70, 2051, 2042, 2050, 70, 2049, 70, 2340, 2055, 70, + 2053, 70, 2052, 2054, 2340, 2044, 2063, 70, 2058, 70, + 2056, 2045, 2046, 2047, 2057, 2048, 70, 70, 2051, 70, + 2050, 70, 2049, 2059, 70, 70, 70, 2053, 70, 2052, + 2054, 2061, 2062, 70, 2064, 2058, 2065, 2056, 2066, 2067, + 2068, 2057, 70, 70, 2069, 70, 70, 2070, 70, 2071, + 2059, 2073, 2072, 70, 70, 2074, 2077, 70, 2061, 2062, + 70, 2064, 2075, 2065, 70, 2066, 2067, 70, 2076, 70, + 2080, 2069, 70, 2078, 70, 2079, 2071, 2082, 70, 2072, + 2084, 70, 2074, 2077, 2085, 70, 70, 2081, 70, 2075, - 2014, 70, 2016, 2013, 2005, 2007, 2006, 2017, 70, 70, - 2011, 70, 70, 2009, 70, 2019, 2018, 70, 2020, 2021, - 2010, 2015, 2022, 2287, 2027, 70, 2023, 2014, 2024, 70, - 70, 70, 2025, 70, 2017, 2026, 2028, 2032, 2034, 2031, - 2029, 70, 2019, 2018, 70, 2020, 2021, 70, 70, 2022, - 70, 70, 2030, 2023, 70, 2024, 2033, 2039, 70, 2025, - 70, 70, 2026, 2028, 2035, 70, 2031, 2029, 2036, 70, - 2037, 2038, 2041, 70, 70, 2040, 2042, 70, 70, 2030, - 70, 2043, 2044, 2033, 70, 2048, 2045, 2046, 2047, 70, - 2053, 2035, 70, 70, 2051, 2036, 70, 2037, 2038, 70, + 2083, 2087, 70, 2086, 70, 2076, 2090, 2080, 70, 70, + 2078, 2088, 2079, 2089, 70, 2092, 2091, 70, 2093, 70, + 2094, 70, 70, 70, 2081, 2097, 70, 2083, 70, 2096, + 2086, 2095, 2098, 70, 70, 70, 2099, 2104, 2088, 2109, + 2089, 2100, 2092, 2091, 70, 2093, 70, 2094, 70, 2101, + 2102, 2105, 70, 2103, 70, 2106, 2096, 70, 2095, 70, + 70, 2110, 2111, 2099, 70, 70, 2108, 2112, 2100, 2107, + 2113, 70, 2117, 70, 2120, 70, 2101, 2102, 2105, 70, + 2103, 70, 2106, 2114, 70, 2115, 70, 2116, 70, 2111, + 2118, 2119, 2121, 2108, 2122, 70, 2107, 2113, 2123, 70, - 70, 2050, 2040, 2042, 2052, 70, 70, 2055, 2043, 70, - 70, 2049, 2048, 2045, 2046, 2047, 70, 70, 2054, 70, - 70, 2051, 2056, 2057, 2058, 2059, 70, 2287, 2050, 70, - 2061, 2052, 2060, 2062, 70, 2063, 70, 2065, 2049, 70, - 70, 2067, 2068, 2066, 2069, 2054, 70, 2064, 2070, 70, - 2057, 70, 2059, 2071, 70, 70, 70, 70, 2072, 2060, - 2062, 70, 2063, 70, 2065, 2073, 70, 2074, 2067, 70, - 2066, 70, 70, 70, 2064, 2070, 2075, 2079, 2076, 2078, - 2071, 2077, 2287, 2080, 2086, 2072, 70, 2081, 2082, 2287, - 2083, 2084, 2073, 2085, 70, 2287, 70, 70, 2089, 2090, + 70, 70, 70, 2125, 70, 70, 2124, 70, 2127, 2126, + 2114, 2128, 2115, 2129, 2116, 2130, 70, 2118, 2119, 70, + 2131, 2122, 2133, 2135, 2132, 70, 2134, 70, 70, 2139, + 2125, 70, 70, 2124, 2340, 70, 2126, 70, 70, 2137, + 70, 2136, 2130, 2138, 2141, 2140, 70, 70, 2142, 2133, + 70, 2132, 70, 2134, 70, 2143, 70, 70, 2144, 2145, + 2340, 70, 2146, 2149, 2340, 2148, 2137, 70, 2136, 70, + 2138, 2141, 2140, 2150, 70, 2155, 2147, 2151, 70, 2340, + 70, 70, 2143, 70, 70, 70, 2145, 70, 2153, 2146, + 2149, 2152, 2148, 2162, 70, 70, 70, 2156, 2154, 70, - 70, 70, 2092, 2075, 70, 2076, 2078, 2096, 2077, 70, - 70, 70, 70, 70, 2081, 2082, 70, 2083, 2084, 2091, - 2085, 2087, 2088, 2093, 2094, 70, 70, 70, 2097, 70, - 2095, 70, 2098, 2100, 70, 2101, 2099, 70, 2103, 2102, - 2104, 2105, 2287, 70, 70, 70, 2091, 2108, 2087, 2088, - 2093, 2094, 70, 2107, 70, 70, 2109, 2095, 70, 70, - 70, 2112, 2101, 2099, 70, 2103, 2102, 70, 2105, 2106, - 2111, 70, 2110, 2113, 70, 2114, 70, 2115, 70, 2116, - 2107, 2287, 70, 2109, 70, 70, 2118, 2120, 70, 70, - 2117, 2119, 2287, 2287, 70, 70, 2106, 2111, 2123, 2110, + 2150, 2160, 2155, 2147, 2151, 70, 2157, 2158, 70, 2163, + 2340, 2159, 2161, 2165, 2164, 2153, 70, 70, 2152, 70, + 70, 2166, 2169, 70, 2156, 2154, 2170, 2173, 2160, 2172, + 2174, 2176, 2175, 2157, 2158, 2171, 70, 70, 2159, 2161, + 70, 2164, 70, 70, 70, 70, 2178, 2180, 70, 2169, + 70, 2177, 2181, 70, 70, 70, 2172, 2174, 2176, 2175, + 70, 2179, 2171, 2182, 70, 2184, 2186, 2183, 2185, 2187, + 2188, 2190, 70, 2178, 70, 70, 2340, 70, 2177, 70, + 2191, 2192, 2194, 70, 2189, 2195, 2196, 70, 2179, 70, + 2182, 2193, 2184, 70, 2183, 2185, 70, 2188, 2190, 70, - 2113, 70, 2114, 2122, 2115, 70, 2116, 70, 2121, 70, - 70, 2127, 70, 2118, 2120, 70, 2126, 2117, 2119, 2124, - 2125, 2128, 70, 2129, 2130, 2123, 2131, 2132, 70, 70, - 2122, 2133, 2136, 70, 2137, 2121, 2134, 2135, 2127, 2287, - 2140, 2287, 2287, 2126, 2141, 2287, 2124, 2125, 2128, 70, - 70, 70, 2144, 2131, 70, 70, 2139, 2138, 70, 2136, - 2142, 70, 2145, 2146, 70, 70, 70, 70, 2143, 70, - 70, 2141, 70, 2147, 2148, 2149, 2150, 70, 2151, 2144, - 2152, 2153, 70, 2139, 2138, 2154, 70, 2142, 70, 2145, - 70, 70, 2155, 70, 2156, 2143, 2157, 70, 2158, 2159, + 2197, 70, 70, 70, 2198, 2199, 2200, 2191, 2192, 70, + 2201, 2189, 70, 70, 2202, 2203, 2340, 2204, 2193, 2206, + 2207, 2208, 2205, 70, 2209, 70, 70, 70, 2210, 70, + 70, 70, 2199, 70, 70, 2211, 2212, 70, 2214, 2213, + 2340, 2202, 2203, 70, 2204, 70, 70, 2207, 2208, 2205, + 2215, 2209, 70, 2217, 70, 2210, 2220, 2218, 70, 70, + 70, 2216, 2211, 2219, 70, 2214, 2213, 70, 70, 2221, + 70, 2223, 2222, 2224, 2340, 70, 70, 2215, 2226, 70, + 2217, 70, 2225, 2220, 2218, 70, 2227, 2228, 2216, 70, + 2219, 2340, 2236, 2232, 2229, 70, 2221, 2230, 2223, 2222, - 70, 2148, 2149, 70, 70, 2160, 2161, 2152, 2153, 2162, - 70, 2163, 2154, 2164, 70, 2165, 70, 2167, 2168, 2155, - 2166, 2156, 2169, 2157, 2171, 70, 70, 2173, 2170, 70, - 70, 2287, 70, 70, 2172, 70, 70, 70, 2163, 2174, - 70, 2175, 70, 70, 2167, 2168, 2176, 2166, 70, 70, - 2179, 2171, 70, 2177, 70, 2170, 2178, 2182, 70, 70, - 2287, 2172, 70, 70, 2180, 2181, 2174, 70, 2175, 2184, - 70, 2183, 70, 2176, 70, 70, 2185, 2179, 2187, 2186, - 2177, 2188, 2191, 2178, 2182, 70, 70, 70, 2189, 2193, - 70, 2180, 2181, 70, 70, 2190, 2184, 70, 2183, 70, + 2224, 70, 70, 70, 70, 2226, 70, 2231, 2234, 2225, + 2233, 2238, 70, 2227, 2228, 70, 2235, 2240, 70, 70, + 2232, 2229, 70, 2237, 2230, 2239, 2241, 2340, 2242, 70, + 2243, 2246, 2248, 70, 2231, 2234, 70, 2233, 70, 2244, + 2245, 70, 2340, 2235, 70, 2250, 2254, 2247, 2257, 2258, + 2237, 70, 2239, 70, 70, 2242, 2249, 2243, 2246, 70, + 2251, 70, 70, 2252, 70, 2255, 2244, 2245, 70, 70, + 2253, 2264, 70, 70, 2247, 70, 2259, 2256, 2261, 70, + 70, 70, 2260, 2249, 70, 70, 70, 2251, 2262, 70, + 2252, 2265, 2255, 2263, 70, 70, 70, 2253, 2264, 2266, - 2192, 2194, 70, 2185, 2195, 2187, 2186, 70, 2188, 2191, - 2196, 2197, 2199, 2200, 2203, 2189, 70, 2198, 2201, 70, - 70, 2202, 2190, 2205, 2287, 2210, 2287, 2192, 2194, 2204, - 2211, 70, 2208, 70, 70, 70, 70, 2196, 70, 2199, - 2200, 70, 70, 2206, 2198, 2201, 70, 2213, 2202, 2207, - 70, 70, 2209, 2212, 2215, 70, 2204, 70, 70, 2208, - 70, 70, 70, 2214, 2216, 2218, 70, 70, 2219, 2220, - 2206, 70, 2217, 70, 2213, 2222, 2207, 2221, 2223, 2209, - 2212, 2215, 70, 70, 2225, 70, 2226, 70, 2227, 2232, - 2214, 2216, 2218, 2224, 70, 2219, 2220, 70, 2287, 2217, + 2267, 2270, 2268, 2259, 2256, 2261, 70, 70, 2271, 2260, + 2274, 2269, 2272, 70, 70, 2262, 70, 2273, 2265, 70, + 2263, 70, 2275, 70, 2276, 70, 2266, 2267, 2270, 2268, + 70, 2277, 2280, 2278, 2279, 2271, 2281, 70, 2269, 2272, + 70, 2288, 2282, 2283, 2273, 2285, 2340, 2340, 2340, 2284, + 70, 2276, 2291, 70, 70, 70, 70, 70, 2277, 2280, + 2278, 2279, 2294, 2286, 70, 70, 2287, 2289, 70, 2282, + 70, 70, 2285, 70, 70, 70, 2284, 2290, 70, 2291, + 2292, 2340, 2298, 2293, 70, 2297, 2300, 2295, 2296, 2294, + 2286, 70, 2340, 2287, 2289, 70, 70, 2299, 70, 70, - 70, 70, 2222, 2228, 2221, 2223, 2229, 2230, 2231, 2233, - 2238, 70, 2235, 2287, 70, 2227, 70, 2287, 70, 2234, - 2224, 70, 2287, 2236, 2240, 70, 2259, 70, 70, 70, - 2228, 70, 70, 2229, 2230, 2231, 70, 2237, 70, 2235, - 2239, 2241, 70, 2243, 2242, 70, 2234, 2244, 70, 2245, - 2236, 2240, 2246, 70, 2247, 70, 2248, 70, 2250, 70, - 2249, 70, 2252, 2287, 2237, 70, 70, 2239, 2241, 2251, - 2243, 2242, 2253, 2254, 2244, 2287, 2245, 70, 70, 2246, - 70, 2247, 2255, 2248, 70, 2250, 2256, 2249, 70, 2252, - 2257, 2258, 2263, 2265, 70, 70, 2251, 2262, 70, 2253, + 70, 2301, 70, 2302, 2290, 2304, 2307, 2292, 70, 2298, + 2293, 2305, 2297, 2300, 2295, 2296, 2309, 2303, 2306, 70, + 2310, 2311, 2312, 2340, 2299, 70, 70, 2308, 2301, 70, + 2302, 70, 2304, 2307, 2318, 70, 2313, 70, 2305, 2314, + 70, 2340, 70, 70, 2303, 2306, 70, 2310, 2311, 70, + 2315, 2316, 2317, 2320, 2308, 2324, 70, 2319, 70, 70, + 70, 70, 2322, 2313, 2321, 70, 2314, 2325, 2323, 2340, + 70, 2328, 2329, 70, 2331, 70, 70, 2315, 2316, 2317, + 2320, 70, 2324, 2330, 2319, 2326, 70, 2332, 2327, 2322, + 2338, 2321, 2339, 70, 70, 2323, 70, 70, 2328, 70, - 2254, 2260, 70, 2261, 2267, 70, 2287, 2264, 2287, 2255, - 2268, 2272, 70, 2256, 70, 70, 70, 2257, 2258, 2263, - 70, 70, 2271, 70, 2262, 2266, 70, 2269, 2260, 2275, - 2261, 2267, 70, 70, 2264, 70, 2270, 2268, 70, 2273, - 2276, 2277, 2274, 2278, 70, 2279, 2287, 70, 70, 2271, - 70, 2280, 2266, 2281, 2269, 70, 2275, 2282, 2285, 2286, - 2287, 70, 2287, 2270, 2287, 2283, 2273, 70, 2277, 2274, - 70, 70, 70, 70, 2284, 70, 2287, 2287, 2280, 70, - 2281, 2287, 70, 2287, 2282, 70, 70, 2287, 2287, 2287, - 2287, 2287, 2283, 2287, 2287, 2287, 2287, 2287, 2287, 2287, + 2333, 70, 2334, 70, 2335, 2336, 2340, 2340, 2337, 2340, + 2330, 2340, 2326, 70, 70, 2327, 70, 70, 2340, 70, + 70, 2340, 2340, 2340, 70, 2340, 70, 2333, 2340, 2334, + 2340, 2335, 2336, 2340, 2340, 2337, 42, 42, 42, 42, + 42, 42, 42, 47, 47, 47, 47, 47, 47, 47, + 52, 52, 52, 52, 52, 52, 52, 58, 58, 58, + 58, 58, 58, 58, 63, 63, 63, 63, 63, 63, + 63, 73, 73, 2340, 73, 73, 73, 73, 134, 134, + 2340, 2340, 2340, 134, 134, 136, 136, 2340, 2340, 136, + 2340, 136, 138, 2340, 2340, 2340, 2340, 2340, 138, 141, - 2287, 2284, 42, 42, 42, 42, 42, 42, 42, 47, - 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, - 52, 52, 52, 58, 58, 58, 58, 58, 58, 58, - 63, 63, 63, 63, 63, 63, 63, 73, 73, 2287, - 73, 73, 73, 73, 133, 133, 2287, 2287, 2287, 133, - 133, 135, 135, 2287, 2287, 135, 2287, 135, 137, 2287, - 2287, 2287, 2287, 2287, 137, 140, 140, 2287, 2287, 2287, - 140, 140, 142, 2287, 2287, 2287, 2287, 2287, 142, 144, - 144, 2287, 144, 144, 144, 144, 74, 74, 2287, 74, - 74, 74, 74, 13, 2287, 2287, 2287, 2287, 2287, 2287, + 141, 2340, 2340, 2340, 141, 141, 143, 2340, 2340, 2340, + 2340, 2340, 143, 145, 145, 2340, 145, 145, 145, 145, + 74, 74, 2340, 74, 74, 74, 74, 13, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340 - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287 } ; -static yyconst flex_int16_t yy_chk[6661] = +static yyconst flex_int16_t yy_chk[6795] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1932,730 +1964,746 @@ static yyconst flex_int16_t yy_chk[6661] = 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, 28, 6, 7, - 7, 7, 7, 2293, 7, 8, 8, 8, 8, 28, + 7, 7, 7, 2346, 7, 8, 8, 8, 8, 28, 8, 9, 9, 9, 10, 10, 10, 15, 21, 46, - 46, 15, 30, 3, 28, 51, 4, 792, 51, 5, + 46, 15, 30, 3, 28, 51, 4, 799, 51, 5, 19, 6, 19, 19, 30, 19, 71, 7, 62, 62, 71, 19, 76, 8, 21, 21, 20, 20, 9, 30, - 785, 10, 11, 11, 11, 11, 11, 11, 12, 12, + 792, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 20, 24, 76, 25, 19, 76, - 20, 26, 11, 20, 20, 22, 142, 33, 12, 26, - 785, 25, 22, 33, 692, 24, 22, 35, 24, 22, - 11, 20, 24, 25, 25, 877, 12, 26, 26, 11, + 20, 26, 11, 20, 20, 22, 143, 33, 12, 26, + 792, 25, 22, 33, 698, 24, 22, 35, 24, 22, + 11, 20, 24, 25, 25, 884, 12, 26, 26, 11, 35, 22, 22, 29, 33, 12, 26, 67, 25, 22, - 140, 78, 24, 22, 35, 692, 22, 23, 78, 27, + 141, 78, 24, 22, 35, 698, 22, 23, 78, 27, - 67, 23, 27, 877, 23, 29, 23, 23, 139, 27, - 29, 27, 137, 38, 67, 38, 135, 32, 78, 23, - 133, 32, 27, 77, 23, 69, 27, 31, 23, 27, - 38, 23, 79, 23, 23, 31, 27, 32, 27, 38, - 38, 31, 38, 32, 32, 31, 77, 39, 32, 81, - 77, 63, 39, 31, 31, 58, 79, 38, 81, 79, - 39, 36, 31, 40, 32, 36, 53, 40, 31, 83, - 106, 40, 31, 34, 39, 36, 81, 34, 36, 39, - 134, 134, 83, 34, 106, 82, 34, 36, 36, 40, - 40, 87, 36, 34, 40, 34, 83, 106, 40, 87, + 67, 23, 27, 884, 23, 29, 23, 23, 140, 27, + 29, 27, 138, 38, 67, 38, 136, 32, 78, 23, + 137, 32, 27, 137, 23, 134, 27, 31, 23, 27, + 38, 23, 77, 23, 23, 31, 27, 32, 27, 38, + 38, 31, 38, 32, 32, 31, 69, 41, 32, 41, + 41, 63, 41, 31, 31, 77, 238, 38, 41, 77, + 58, 36, 31, 82, 32, 36, 53, 79, 31, 83, + 52, 81, 31, 34, 39, 36, 122, 34, 36, 47, + 81, 82, 83, 34, 39, 238, 34, 36, 36, 39, + 82, 79, 36, 34, 79, 34, 83, 39, 81, 40, - 34, 122, 36, 82, 34, 36, 41, 92, 41, 41, - 34, 41, 82, 34, 86, 52, 92, 41, 87, 86, - 34, 37, 47, 57, 37, 57, 57, 65, 57, 65, - 65, 37, 65, 122, 92, 37, 37, 68, 42, 68, - 68, 86, 68, 37, 70, 14, 70, 70, 37, 70, - 84, 37, 85, 85, 88, 70, 84, 80, 37, 13, - 89, 85, 37, 37, 73, 65, 73, 73, 98, 73, - 80, 84, 88, 89, 91, 73, 95, 84, 90, 85, - 85, 80, 93, 84, 80, 90, 88, 89, 94, 0, - 91, 93, 98, 96, 141, 141, 148, 80, 95, 88, + 34, 39, 36, 40, 34, 36, 89, 40, 122, 149, + 34, 39, 57, 34, 57, 57, 39, 57, 86, 89, + 34, 37, 42, 86, 37, 40, 40, 135, 135, 14, + 40, 37, 13, 89, 40, 37, 37, 65, 0, 65, + 65, 149, 65, 37, 68, 86, 68, 68, 37, 68, + 70, 37, 70, 70, 73, 70, 73, 73, 37, 73, + 80, 70, 37, 37, 84, 73, 87, 85, 85, 0, + 84, 88, 90, 80, 87, 65, 85, 92, 94, 90, + 91, 93, 142, 142, 80, 84, 92, 80, 95, 88, + 93, 84, 73, 87, 85, 85, 91, 84, 96, 90, - 98, 91, 73, 95, 0, 90, 96, 97, 99, 93, - 97, 94, 0, 0, 0, 94, 99, 101, 100, 98, - 96, 101, 102, 97, 97, 102, 103, 105, 148, 104, - 136, 97, 108, 136, 97, 99, 109, 97, 100, 103, - 100, 101, 107, 109, 101, 100, 108, 105, 101, 102, - 97, 97, 104, 103, 105, 110, 104, 111, 112, 108, - 115, 0, 107, 109, 110, 100, 113, 112, 114, 107, - 113, 116, 0, 119, 0, 114, 0, 117, 116, 120, - 111, 119, 110, 117, 111, 112, 115, 115, 113, 118, - 120, 117, 123, 113, 120, 114, 125, 113, 116, 121, + 80, 94, 98, 88, 92, 94, 97, 91, 93, 97, + 95, 96, 99, 0, 0, 95, 88, 101, 100, 103, + 99, 101, 97, 97, 102, 96, 98, 102, 0, 104, + 97, 126, 103, 97, 98, 105, 97, 0, 100, 99, + 100, 101, 126, 106, 101, 100, 103, 107, 101, 97, + 97, 102, 104, 98, 108, 105, 104, 106, 126, 109, + 110, 111, 105, 112, 118, 100, 109, 107, 108, 110, + 106, 113, 112, 114, 107, 113, 118, 115, 116, 0, + 114, 108, 121, 117, 111, 116, 109, 110, 111, 117, + 112, 118, 124, 113, 0, 127, 121, 117, 113, 119, - 119, 118, 124, 120, 117, 125, 120, 123, 127, 126, - 117, 150, 128, 121, 127, 130, 118, 120, 129, 123, - 126, 120, 124, 125, 132, 131, 121, 150, 124, 124, - 130, 0, 0, 128, 131, 127, 126, 128, 150, 128, - 129, 0, 130, 146, 0, 129, 132, 147, 0, 124, - 0, 132, 131, 138, 151, 138, 138, 154, 138, 143, - 128, 143, 143, 144, 143, 144, 144, 146, 144, 147, - 146, 149, 152, 151, 147, 153, 156, 160, 155, 154, - 152, 151, 157, 149, 154, 155, 158, 153, 157, 0, - 159, 161, 0, 0, 156, 161, 0, 163, 149, 152, + 114, 127, 113, 115, 115, 116, 120, 119, 123, 121, + 117, 125, 124, 128, 130, 161, 117, 120, 124, 124, + 125, 120, 127, 123, 128, 129, 119, 131, 132, 133, + 120, 148, 0, 120, 0, 123, 130, 132, 125, 124, + 128, 130, 131, 0, 120, 147, 129, 161, 120, 275, + 129, 133, 129, 148, 131, 132, 133, 139, 148, 139, + 139, 144, 139, 144, 144, 145, 144, 145, 145, 147, + 145, 150, 147, 129, 151, 152, 275, 153, 155, 154, + 156, 157, 158, 150, 0, 153, 160, 156, 158, 159, + 151, 154, 164, 0, 152, 0, 0, 281, 150, 157, - 236, 144, 153, 156, 165, 155, 166, 167, 158, 160, - 164, 167, 161, 158, 157, 157, 159, 159, 164, 161, - 168, 173, 161, 163, 163, 170, 165, 169, 166, 236, - 173, 165, 171, 166, 167, 0, 0, 164, 170, 161, - 162, 0, 174, 168, 171, 162, 175, 168, 173, 169, - 162, 0, 170, 0, 169, 172, 162, 162, 172, 171, - 0, 176, 180, 162, 174, 179, 176, 162, 175, 174, - 172, 181, 162, 175, 177, 0, 179, 162, 176, 178, - 176, 183, 172, 162, 162, 172, 178, 176, 176, 182, - 184, 186, 179, 176, 180, 190, 177, 181, 181, 188, + 155, 151, 152, 145, 153, 155, 154, 156, 157, 166, + 167, 159, 160, 160, 158, 158, 159, 162, 164, 164, + 165, 162, 168, 169, 281, 174, 168, 171, 165, 170, + 172, 166, 167, 175, 174, 181, 166, 167, 162, 0, + 171, 176, 172, 0, 0, 162, 169, 165, 162, 168, + 169, 170, 174, 0, 171, 175, 170, 172, 173, 178, + 175, 173, 0, 176, 0, 162, 163, 181, 176, 182, + 179, 163, 184, 173, 0, 177, 163, 179, 0, 180, + 177, 178, 163, 163, 187, 173, 178, 185, 173, 163, + 180, 189, 177, 163, 177, 182, 182, 179, 163, 190, - 182, 177, 187, 185, 189, 176, 178, 176, 184, 185, - 0, 191, 192, 183, 194, 190, 0, 184, 198, 193, - 0, 182, 190, 186, 187, 191, 193, 182, 196, 187, - 185, 188, 195, 192, 197, 194, 189, 195, 191, 192, - 198, 194, 199, 201, 202, 198, 193, 196, 197, 200, - 201, 204, 205, 203, 199, 196, 206, 205, 210, 195, - 200, 197, 203, 207, 207, 208, 202, 211, 209, 199, - 201, 202, 207, 212, 204, 209, 200, 214, 204, 205, - 203, 213, 217, 210, 215, 210, 216, 211, 206, 213, - 207, 207, 214, 221, 211, 209, 218, 208, 219, 223, + 183, 177, 177, 163, 184, 185, 180, 177, 188, 163, + 163, 183, 186, 191, 185, 192, 187, 194, 186, 177, + 193, 177, 195, 189, 194, 200, 0, 197, 0, 192, + 188, 190, 183, 191, 198, 188, 199, 200, 183, 186, + 191, 193, 192, 195, 194, 196, 197, 193, 198, 195, + 196, 201, 200, 202, 197, 203, 204, 207, 199, 0, + 202, 198, 201, 199, 205, 204, 206, 208, 208, 209, + 212, 206, 196, 211, 0, 213, 208, 203, 201, 210, + 202, 215, 203, 204, 214, 218, 210, 205, 216, 207, + 212, 205, 214, 206, 208, 208, 217, 212, 211, 219, - 220, 221, 219, 222, 214, 212, 224, 225, 213, 216, - 215, 215, 226, 218, 217, 220, 231, 0, 216, 228, - 221, 218, 222, 218, 230, 219, 227, 220, 224, 225, - 222, 223, 228, 224, 225, 231, 216, 230, 227, 229, - 218, 233, 234, 231, 226, 232, 228, 232, 229, 235, - 237, 230, 238, 227, 239, 244, 0, 0, 241, 237, - 240, 243, 242, 245, 248, 233, 229, 234, 233, 234, - 241, 240, 232, 244, 247, 235, 235, 237, 238, 238, - 239, 239, 244, 246, 243, 241, 242, 240, 243, 242, - 248, 248, 249, 250, 251, 245, 246, 253, 0, 252, + 211, 209, 220, 216, 225, 221, 210, 213, 218, 221, + 222, 214, 223, 215, 224, 216, 226, 218, 227, 220, + 223, 228, 217, 217, 234, 222, 234, 220, 235, 220, + 229, 219, 221, 224, 230, 218, 225, 222, 226, 223, + 227, 224, 229, 226, 236, 227, 220, 230, 233, 231, + 232, 234, 235, 228, 237, 235, 239, 229, 231, 240, + 243, 230, 241, 232, 246, 239, 244, 233, 242, 236, + 247, 236, 243, 245, 249, 233, 231, 232, 250, 242, + 237, 237, 246, 239, 248, 240, 240, 243, 241, 241, + 244, 246, 251, 244, 252, 242, 245, 248, 254, 0, - 258, 251, 254, 253, 255, 0, 247, 264, 252, 256, - 246, 257, 0, 259, 249, 260, 254, 273, 0, 249, - 257, 251, 259, 258, 253, 250, 252, 258, 261, 254, - 255, 255, 262, 256, 263, 266, 256, 261, 257, 264, - 259, 260, 260, 265, 273, 268, 270, 279, 0, 263, - 266, 272, 272, 269, 271, 261, 262, 267, 274, 262, - 270, 263, 266, 268, 0, 267, 267, 265, 267, 271, - 265, 269, 268, 270, 279, 267, 272, 269, 272, 272, - 269, 271, 274, 277, 267, 274, 275, 276, 278, 275, - 280, 282, 267, 267, 281, 267, 275, 283, 269, 276, + 245, 253, 247, 255, 250, 250, 249, 254, 253, 255, + 256, 248, 257, 0, 251, 262, 258, 0, 259, 251, + 261, 260, 263, 266, 256, 254, 252, 259, 253, 261, + 255, 263, 264, 267, 270, 265, 268, 256, 257, 257, + 258, 262, 262, 258, 260, 259, 271, 261, 260, 263, + 265, 268, 270, 0, 272, 266, 264, 267, 269, 264, + 267, 270, 265, 268, 271, 273, 269, 269, 272, 269, + 271, 276, 0, 271, 274, 274, 269, 0, 278, 277, + 273, 272, 277, 0, 283, 269, 279, 0, 289, 277, + 278, 271, 273, 269, 269, 276, 269, 280, 276, 274, - 287, 277, 285, 282, 290, 0, 278, 284, 289, 285, - 277, 286, 280, 275, 276, 278, 275, 280, 282, 283, - 281, 281, 284, 286, 283, 291, 288, 294, 296, 285, - 289, 0, 287, 288, 284, 289, 290, 292, 286, 293, - 294, 293, 297, 292, 0, 295, 296, 291, 295, 298, - 295, 300, 291, 288, 294, 296, 295, 301, 300, 292, - 0, 0, 0, 293, 292, 299, 293, 302, 293, 301, - 292, 298, 295, 299, 297, 295, 298, 295, 300, 299, - 302, 303, 304, 307, 301, 308, 306, 309, 310, 313, - 308, 311, 299, 309, 302, 304, 310, 303, 306, 0, + 282, 274, 274, 285, 279, 278, 277, 284, 286, 277, + 283, 283, 0, 279, 287, 280, 288, 291, 292, 284, + 289, 287, 282, 286, 280, 285, 290, 282, 288, 293, + 285, 0, 294, 290, 284, 286, 296, 0, 294, 291, + 295, 287, 295, 288, 291, 299, 300, 0, 0, 296, + 292, 293, 298, 290, 294, 297, 293, 0, 297, 294, + 297, 324, 304, 296, 295, 294, 297, 295, 300, 295, + 298, 302, 301, 300, 304, 303, 306, 299, 302, 298, + 301, 303, 297, 305, 307, 297, 301, 297, 310, 304, + 311, 328, 306, 324, 347, 311, 305, 307, 302, 301, - 299, 307, 313, 311, 312, 303, 0, 0, 303, 304, - 307, 312, 314, 306, 309, 310, 313, 308, 311, 315, - 316, 314, 317, 315, 303, 305, 305, 316, 318, 317, - 0, 312, 319, 320, 322, 305, 321, 305, 305, 305, - 318, 322, 305, 323, 314, 320, 315, 316, 314, 317, - 305, 325, 305, 305, 319, 318, 0, 328, 323, 319, - 320, 322, 305, 324, 305, 305, 305, 327, 321, 305, - 323, 326, 333, 326, 329, 329, 324, 331, 327, 328, - 330, 332, 335, 325, 328, 333, 334, 330, 331, 344, - 324, 336, 332, 337, 327, 341, 0, 338, 326, 333, + 306, 309, 303, 306, 313, 0, 310, 301, 312, 315, + 305, 307, 313, 309, 312, 310, 315, 314, 317, 306, + 308, 308, 311, 328, 0, 316, 347, 317, 309, 314, + 308, 313, 308, 308, 308, 312, 315, 308, 316, 318, + 322, 0, 319, 318, 314, 308, 320, 308, 308, 319, + 317, 321, 316, 320, 317, 326, 323, 308, 325, 308, + 308, 308, 322, 321, 308, 325, 318, 322, 323, 319, + 326, 327, 329, 320, 329, 330, 332, 332, 321, 331, + 333, 334, 326, 323, 327, 325, 330, 333, 337, 335, + 336, 338, 334, 0, 0, 340, 339, 341, 327, 329, - 0, 340, 337, 329, 331, 335, 336, 330, 332, 335, - 338, 334, 339, 334, 336, 342, 343, 341, 336, 340, - 337, 344, 341, 339, 338, 339, 345, 346, 340, 348, - 339, 355, 345, 336, 343, 347, 0, 349, 342, 339, - 350, 351, 342, 343, 349, 353, 0, 352, 346, 354, - 339, 348, 339, 345, 346, 351, 348, 356, 347, 353, - 358, 359, 347, 355, 349, 357, 350, 350, 351, 352, - 360, 357, 353, 362, 352, 354, 354, 363, 361, 359, - 356, 0, 358, 365, 356, 360, 364, 358, 359, 365, - 366, 0, 357, 361, 368, 369, 362, 360, 378, 370, + 335, 331, 330, 336, 340, 332, 331, 333, 334, 343, + 341, 339, 0, 337, 338, 337, 335, 336, 338, 339, + 344, 342, 340, 339, 341, 346, 345, 343, 351, 348, + 349, 350, 342, 352, 342, 348, 343, 353, 339, 342, + 352, 357, 344, 346, 355, 358, 359, 344, 342, 345, + 351, 349, 346, 345, 350, 351, 348, 349, 350, 342, + 352, 342, 354, 353, 353, 356, 355, 357, 357, 359, + 362, 355, 360, 359, 361, 363, 354, 358, 360, 356, + 364, 365, 0, 366, 367, 368, 0, 369, 362, 354, + 363, 368, 356, 371, 372, 364, 361, 362, 373, 360, - 362, 369, 372, 363, 363, 361, 371, 376, 364, 372, - 365, 383, 373, 364, 376, 377, 366, 366, 370, 379, - 368, 368, 369, 375, 371, 375, 370, 373, 377, 372, - 378, 380, 375, 371, 376, 381, 382, 379, 384, 373, - 385, 387, 377, 383, 388, 384, 379, 386, 381, 391, - 375, 389, 375, 380, 387, 382, 389, 0, 380, 393, - 0, 392, 381, 382, 385, 384, 388, 385, 387, 390, - 386, 388, 391, 392, 394, 390, 391, 397, 389, 386, - 399, 393, 395, 0, 397, 394, 393, 398, 392, 400, - 395, 399, 401, 402, 0, 398, 390, 386, 0, 400, + 372, 361, 363, 376, 365, 374, 367, 364, 365, 366, + 366, 367, 368, 369, 369, 375, 380, 373, 376, 371, + 371, 372, 375, 374, 378, 373, 378, 379, 381, 380, + 376, 382, 374, 378, 379, 383, 385, 384, 386, 387, + 0, 388, 375, 380, 389, 0, 387, 391, 390, 382, + 384, 378, 0, 378, 379, 385, 0, 383, 382, 394, + 381, 390, 383, 385, 384, 388, 387, 389, 388, 391, + 386, 395, 392, 393, 391, 390, 389, 392, 397, 393, + 396, 400, 394, 395, 398, 0, 394, 401, 400, 397, + 0, 403, 398, 402, 389, 401, 0, 0, 395, 392, - 402, 394, 0, 403, 397, 405, 404, 399, 404, 395, - 396, 406, 407, 0, 398, 396, 401, 396, 0, 401, - 402, 400, 408, 406, 418, 396, 400, 407, 396, 403, - 403, 405, 405, 404, 408, 396, 396, 396, 406, 407, - 409, 410, 396, 411, 396, 412, 410, 414, 409, 408, - 413, 419, 396, 417, 415, 396, 418, 0, 413, 414, - 420, 421, 396, 412, 423, 411, 419, 409, 410, 420, - 411, 422, 412, 424, 414, 415, 417, 413, 419, 425, - 417, 415, 426, 428, 421, 422, 427, 420, 421, 423, - 429, 423, 424, 0, 430, 431, 433, 432, 422, 434, + 393, 403, 396, 422, 402, 397, 0, 396, 400, 405, + 0, 398, 399, 404, 401, 406, 408, 399, 408, 399, + 402, 407, 406, 403, 404, 409, 0, 399, 403, 410, + 399, 0, 0, 405, 411, 422, 405, 399, 399, 399, + 404, 410, 406, 408, 399, 413, 399, 407, 407, 411, + 412, 409, 409, 413, 399, 414, 410, 399, 415, 417, + 414, 411, 412, 416, 399, 421, 418, 417, 419, 423, + 424, 425, 413, 426, 427, 430, 429, 412, 418, 424, + 415, 416, 414, 428, 423, 415, 417, 426, 421, 419, + 416, 431, 421, 418, 425, 419, 423, 424, 425, 427, - 424, 427, 434, 436, 438, 429, 425, 431, 436, 439, - 434, 437, 440, 427, 426, 428, 435, 429, 430, 432, - 433, 430, 431, 433, 432, 437, 434, 435, 441, 434, - 442, 438, 443, 444, 445, 436, 439, 449, 437, 444, - 446, 0, 0, 435, 440, 448, 447, 450, 446, 451, - 454, 0, 453, 452, 458, 441, 445, 442, 451, 453, - 444, 445, 455, 458, 443, 447, 459, 446, 448, 449, - 450, 0, 448, 447, 450, 452, 451, 456, 457, 453, - 452, 458, 454, 457, 455, 460, 461, 457, 463, 455, - 456, 464, 459, 459, 460, 462, 465, 467, 466, 0, + 426, 427, 428, 429, 432, 433, 431, 430, 0, 0, + 428, 434, 435, 0, 438, 436, 437, 438, 431, 439, + 433, 440, 442, 443, 435, 438, 440, 444, 445, 446, + 439, 441, 433, 447, 452, 434, 432, 436, 434, 435, + 437, 438, 436, 437, 438, 441, 439, 449, 448, 442, + 443, 451, 450, 440, 448, 445, 446, 452, 441, 444, + 450, 452, 453, 454, 455, 447, 456, 458, 460, 449, + 451, 0, 0, 455, 449, 448, 457, 0, 451, 450, + 459, 460, 463, 457, 0, 469, 454, 461, 456, 462, + 454, 455, 461, 456, 453, 460, 461, 464, 462, 458, - 0, 463, 457, 464, 456, 457, 0, 468, 461, 469, - 457, 470, 460, 461, 457, 463, 466, 462, 464, 477, - 473, 467, 462, 0, 467, 466, 471, 472, 465, 468, - 468, 469, 474, 470, 468, 475, 469, 471, 470, 478, - 476, 472, 473, 481, 479, 480, 475, 473, 482, 484, - 474, 477, 486, 471, 472, 476, 468, 482, 485, 474, - 478, 483, 475, 487, 488, 481, 478, 476, 479, 480, - 481, 479, 480, 489, 483, 482, 492, 494, 489, 490, - 485, 484, 491, 495, 486, 485, 488, 487, 483, 493, - 487, 488, 496, 490, 500, 494, 491, 493, 495, 497, + 465, 468, 459, 457, 466, 467, 464, 459, 463, 463, + 471, 461, 470, 468, 461, 0, 462, 469, 467, 461, + 472, 476, 465, 461, 464, 475, 466, 465, 468, 473, + 470, 466, 467, 474, 471, 476, 475, 471, 479, 470, + 477, 478, 472, 472, 481, 482, 480, 472, 476, 479, + 483, 473, 475, 485, 484, 474, 473, 488, 487, 478, + 474, 480, 477, 490, 489, 479, 482, 477, 478, 472, + 486, 487, 482, 480, 483, 485, 481, 483, 484, 486, + 485, 484, 491, 492, 494, 487, 489, 493, 495, 488, + 496, 489, 493, 497, 498, 490, 500, 486, 494, 499, - 498, 501, 0, 501, 494, 489, 490, 495, 492, 491, - 495, 502, 499, 0, 497, 503, 493, 499, 504, 0, - 500, 500, 498, 503, 496, 495, 497, 498, 501, 507, - 505, 506, 509, 510, 508, 511, 502, 507, 502, 505, - 506, 508, 503, 504, 499, 504, 515, 511, 0, 0, - 518, 510, 520, 514, 512, 509, 507, 505, 506, 509, - 510, 508, 511, 512, 513, 514, 516, 517, 520, 519, - 0, 522, 513, 521, 516, 517, 518, 518, 515, 520, - 514, 512, 522, 525, 526, 524, 528, 527, 0, 523, - 0, 513, 519, 516, 517, 521, 519, 523, 522, 524, + 0, 497, 495, 501, 0, 492, 491, 502, 503, 491, + 492, 494, 498, 503, 499, 495, 504, 0, 501, 493, + 497, 498, 496, 499, 506, 505, 499, 505, 500, 502, + 501, 507, 508, 513, 502, 509, 510, 514, 511, 507, + 503, 499, 504, 504, 509, 510, 511, 512, 519, 506, + 0, 506, 505, 550, 512, 514, 513, 508, 507, 508, + 513, 515, 509, 510, 514, 511, 516, 518, 517, 520, + 521, 0, 522, 515, 512, 516, 517, 520, 521, 518, + 519, 523, 524, 526, 525, 550, 0, 0, 515, 529, + 524, 527, 530, 516, 518, 517, 520, 521, 522, 522, - 521, 529, 531, 525, 533, 535, 526, 527, 528, 530, - 525, 526, 524, 528, 527, 532, 523, 533, 530, 534, - 536, 0, 531, 529, 538, 537, 539, 535, 529, 531, - 538, 533, 535, 532, 0, 540, 530, 534, 541, 542, - 545, 544, 532, 540, 536, 0, 534, 536, 537, 544, - 547, 538, 537, 539, 548, 549, 546, 542, 550, 551, - 0, 540, 540, 546, 549, 541, 542, 552, 544, 548, - 540, 566, 545, 547, 564, 563, 552, 547, 551, 560, - 557, 548, 549, 546, 554, 553, 551, 553, 567, 560, - 550, 554, 557, 563, 552, 564, 565, 566, 566, 568, + 525, 531, 527, 529, 523, 526, 528, 532, 523, 524, + 526, 525, 530, 533, 528, 534, 529, 535, 527, 530, + 537, 536, 0, 531, 540, 544, 535, 532, 531, 541, + 538, 539, 542, 528, 532, 533, 546, 534, 537, 543, + 533, 536, 534, 538, 535, 543, 540, 537, 536, 539, + 547, 540, 544, 541, 545, 542, 541, 538, 539, 542, + 551, 549, 545, 546, 553, 554, 543, 551, 547, 549, + 552, 555, 562, 557, 554, 556, 0, 547, 0, 553, + 545, 545, 557, 558, 562, 558, 565, 551, 549, 545, + 568, 553, 554, 552, 556, 569, 565, 552, 559, 562, - 0, 564, 563, 0, 0, 0, 560, 557, 0, 572, - 570, 554, 553, 555, 567, 567, 571, 555, 572, 565, - 555, 574, 571, 565, 573, 575, 573, 555, 580, 576, - 555, 568, 570, 593, 0, 555, 572, 570, 0, 577, - 555, 578, 593, 571, 555, 574, 579, 555, 574, 576, - 580, 573, 575, 578, 555, 580, 576, 555, 569, 569, - 593, 569, 0, 581, 569, 577, 577, 582, 578, 569, - 583, 585, 579, 579, 0, 569, 569, 584, 586, 585, - 0, 0, 590, 598, 569, 569, 569, 581, 569, 582, - 581, 569, 584, 587, 582, 583, 569, 583, 585, 588, + 557, 570, 556, 555, 578, 559, 578, 573, 568, 571, + 558, 572, 0, 565, 0, 576, 569, 568, 577, 575, + 579, 576, 569, 580, 570, 559, 560, 577, 570, 581, + 560, 578, 582, 560, 601, 571, 571, 572, 572, 573, + 560, 575, 576, 560, 579, 577, 575, 579, 560, 581, + 580, 583, 586, 560, 584, 0, 581, 560, 582, 582, + 560, 601, 0, 583, 585, 587, 0, 560, 588, 589, + 560, 574, 574, 0, 574, 590, 586, 574, 583, 586, + 584, 584, 574, 590, 589, 591, 585, 587, 574, 574, + 603, 585, 587, 588, 594, 588, 589, 574, 574, 574, - 587, 586, 569, 569, 584, 586, 589, 588, 590, 590, - 591, 592, 594, 595, 596, 598, 0, 599, 600, 0, - 587, 597, 591, 601, 592, 589, 588, 594, 602, 0, - 608, 605, 603, 589, 611, 595, 606, 591, 592, 594, - 595, 596, 600, 597, 601, 600, 607, 602, 597, 599, - 601, 603, 604, 605, 607, 602, 606, 608, 605, 603, - 609, 604, 610, 606, 612, 614, 611, 615, 617, 616, - 620, 618, 612, 607, 619, 0, 0, 0, 609, 604, - 621, 610, 620, 614, 618, 615, 622, 609, 621, 610, - 617, 612, 614, 616, 615, 617, 616, 620, 618, 623, + 592, 574, 590, 593, 574, 595, 596, 592, 591, 574, + 597, 593, 591, 594, 599, 574, 574, 598, 596, 0, + 600, 594, 603, 597, 602, 604, 598, 592, 605, 599, + 593, 595, 595, 596, 607, 606, 609, 597, 610, 608, + 0, 599, 600, 613, 598, 609, 602, 600, 611, 0, + 615, 602, 605, 607, 614, 605, 606, 604, 608, 612, + 610, 607, 606, 609, 616, 610, 608, 612, 611, 615, + 613, 617, 614, 619, 620, 611, 623, 615, 621, 617, + 624, 614, 622, 625, 628, 626, 612, 628, 632, 623, + 627, 619, 620, 626, 0, 625, 616, 631, 617, 0, - 619, 619, 623, 624, 622, 627, 626, 621, 628, 630, - 631, 624, 629, 622, 628, 630, 632, 631, 633, 635, - 636, 632, 634, 638, 0, 633, 623, 624, 642, 636, - 624, 626, 627, 626, 629, 628, 630, 631, 624, 629, - 634, 638, 635, 632, 637, 633, 635, 636, 639, 634, - 638, 640, 637, 641, 643, 642, 644, 645, 646, 647, - 648, 643, 0, 639, 640, 0, 650, 651, 648, 644, - 652, 637, 653, 651, 641, 639, 649, 0, 640, 659, - 641, 643, 647, 644, 649, 654, 647, 648, 650, 645, - 646, 649, 655, 650, 651, 657, 652, 652, 658, 656, + 619, 620, 621, 623, 622, 621, 624, 624, 627, 622, + 625, 628, 626, 629, 633, 632, 634, 627, 639, 635, + 633, 629, 631, 636, 631, 635, 637, 638, 640, 0, + 636, 637, 647, 641, 638, 650, 639, 629, 634, 642, + 629, 633, 641, 634, 643, 639, 635, 642, 629, 644, + 636, 640, 645, 637, 638, 640, 646, 649, 652, 647, + 641, 648, 643, 659, 644, 645, 642, 650, 648, 653, + 649, 643, 656, 651, 654, 657, 644, 646, 655, 645, + 651, 657, 654, 646, 649, 658, 655, 663, 648, 661, + 652, 660, 653, 655, 656, 659, 653, 664, 661, 656, - 0, 655, 661, 649, 653, 658, 659, 660, 662, 654, - 663, 649, 654, 656, 664, 666, 660, 667, 666, 655, - 662, 669, 664, 672, 673, 658, 656, 657, 669, 661, - 667, 674, 670, 663, 660, 662, 0, 663, 670, 0, - 676, 664, 666, 674, 667, 677, 0, 673, 669, 672, - 672, 673, 675, 678, 675, 0, 679, 677, 674, 670, - 671, 681, 671, 676, 683, 680, 671, 676, 671, 679, - 680, 682, 677, 671, 681, 678, 683, 0, 671, 675, - 678, 685, 684, 679, 671, 689, 686, 671, 681, 671, - 687, 683, 684, 671, 682, 671, 687, 680, 682, 686, + 651, 654, 657, 662, 664, 655, 665, 667, 668, 669, + 0, 658, 658, 655, 666, 660, 661, 662, 660, 663, + 668, 670, 672, 666, 664, 672, 673, 0, 678, 670, + 662, 675, 669, 665, 667, 668, 669, 676, 675, 673, + 0, 666, 681, 676, 681, 679, 0, 680, 670, 672, + 683, 0, 682, 673, 678, 678, 686, 685, 675, 680, + 684, 686, 683, 687, 676, 677, 0, 677, 679, 681, + 685, 677, 679, 677, 680, 682, 687, 683, 677, 682, + 688, 689, 684, 677, 685, 2133, 2133, 684, 686, 677, + 687, 690, 677, 689, 677, 691, 692, 697, 677, 695, - 671, 688, 690, 685, 684, 671, 689, 0, 685, 684, - 691, 0, 689, 686, 688, 694, 0, 687, 0, 684, - 696, 697, 695, 0, 698, 707, 0, 700, 688, 0, - 694, 699, 702, 696, 690, 704, 697, 691, 693, 701, - 702, 711, 694, 693, 695, 693, 700, 696, 697, 695, - 698, 698, 701, 699, 700, 705, 693, 707, 699, 702, - 703, 708, 704, 693, 693, 693, 701, 709, 703, 716, - 693, 712, 693, 711, 714, 709, 713, 710, 705, 715, - 716, 717, 705, 693, 713, 708, 0, 703, 708, 718, - 693, 710, 714, 712, 709, 720, 716, 715, 712, 722, + 677, 690, 694, 688, 696, 677, 693, 688, 689, 692, + 677, 0, 693, 690, 2133, 694, 700, 691, 690, 701, + 695, 702, 691, 692, 697, 703, 695, 704, 690, 694, + 706, 700, 707, 693, 702, 713, 696, 699, 705, 708, + 703, 701, 699, 700, 699, 707, 701, 708, 702, 706, + 709, 710, 703, 704, 704, 699, 711, 706, 709, 707, + 705, 714, 699, 699, 699, 705, 708, 713, 715, 699, + 716, 699, 717, 719, 718, 720, 715, 709, 710, 711, + 721, 719, 699, 711, 716, 714, 723, 724, 714, 699, + 726, 732, 722, 720, 0, 715, 718, 716, 721, 727, - 719, 714, 721, 713, 710, 724, 715, 718, 719, 721, - 725, 723, 722, 717, 726, 730, 718, 720, 723, 737, - 728, 0, 720, 724, 730, 0, 722, 719, 725, 721, - 732, 729, 724, 728, 733, 0, 731, 725, 723, 729, - 734, 735, 730, 736, 740, 0, 726, 728, 731, 741, - 738, 737, 732, 744, 741, 740, 733, 732, 729, 735, - 743, 733, 734, 731, 738, 747, 744, 734, 735, 736, - 736, 740, 742, 746, 751, 742, 745, 738, 0, 748, - 744, 741, 752, 745, 743, 746, 748, 743, 749, 750, - 758, 754, 755, 756, 753, 750, 751, 747, 742, 742, + 719, 718, 720, 722, 717, 724, 727, 721, 725, 728, + 730, 731, 726, 729, 724, 737, 725, 726, 723, 722, + 729, 734, 728, 732, 735, 738, 727, 737, 730, 731, + 736, 739, 735, 740, 734, 725, 728, 730, 731, 736, + 729, 741, 737, 742, 743, 746, 753, 738, 734, 747, + 744, 735, 738, 739, 747, 740, 746, 736, 739, 741, + 740, 0, 748, 749, 744, 748, 750, 751, 741, 742, + 742, 752, 746, 754, 751, 755, 743, 744, 753, 750, + 754, 747, 757, 752, 758, 756, 759, 749, 748, 748, + 749, 756, 748, 750, 751, 760, 761, 759, 752, 755, - 746, 751, 742, 745, 752, 753, 748, 760, 756, 752, - 761, 758, 749, 754, 755, 749, 750, 758, 754, 755, - 756, 753, 759, 762, 764, 767, 763, 765, 760, 768, - 766, 769, 767, 759, 760, 763, 765, 761, 766, 770, - 771, 762, 775, 768, 774, 776, 773, 777, 764, 759, - 762, 764, 767, 763, 765, 773, 768, 766, 775, 778, - 776, 770, 771, 769, 0, 779, 770, 771, 774, 775, - 781, 774, 776, 773, 780, 782, 783, 779, 784, 777, - 787, 786, 789, 782, 789, 796, 788, 791, 794, 783, - 786, 778, 779, 784, 788, 791, 780, 781, 787, 793, + 754, 762, 755, 764, 757, 766, 758, 767, 765, 757, + 0, 758, 756, 759, 770, 768, 762, 760, 761, 765, + 769, 775, 760, 761, 764, 780, 766, 771, 762, 769, + 764, 772, 766, 768, 767, 765, 771, 773, 770, 772, + 776, 770, 768, 774, 773, 781, 777, 769, 783, 780, + 779, 782, 780, 775, 771, 784, 785, 774, 772, 779, + 782, 781, 776, 783, 773, 788, 0, 776, 777, 786, + 774, 787, 781, 777, 789, 783, 790, 779, 782, 791, + 0, 786, 789, 795, 794, 0, 793, 784, 785, 790, + 803, 795, 788, 787, 791, 793, 786, 796, 787, 796, - 794, 780, 782, 783, 795, 784, 797, 787, 786, 789, - 798, 795, 793, 788, 791, 794, 799, 796, 800, 805, - 801, 802, 803, 804, 0, 809, 793, 805, 0, 0, - 807, 795, 798, 801, 802, 804, 806, 798, 797, 0, - 800, 799, 807, 799, 803, 800, 805, 801, 802, 803, - 804, 808, 809, 810, 812, 811, 806, 807, 813, 808, - 816, 817, 814, 806, 811, 813, 810, 820, 821, 0, - 818, 828, 0, 814, 823, 812, 814, 821, 808, 819, - 810, 812, 811, 817, 814, 813, 816, 816, 817, 814, - 818, 820, 819, 822, 820, 821, 823, 818, 828, 824, + 798, 789, 794, 790, 800, 802, 791, 801, 798, 804, + 795, 794, 802, 793, 0, 805, 0, 800, 806, 801, + 0, 811, 803, 808, 796, 807, 809, 798, 0, 810, + 812, 800, 802, 811, 801, 813, 808, 805, 812, 809, + 0, 804, 805, 806, 816, 806, 814, 807, 811, 819, + 808, 810, 807, 809, 818, 813, 810, 812, 814, 815, + 825, 817, 813, 818, 0, 820, 0, 815, 821, 824, + 819, 816, 820, 814, 817, 823, 819, 821, 830, 821, + 825, 818, 821, 827, 826, 828, 815, 825, 817, 0, + 821, 824, 820, 832, 828, 821, 824, 826, 829, 835, - 814, 823, 825, 814, 826, 829, 819, 824, 832, 830, - 831, 822, 826, 833, 834, 835, 832, 837, 0, 845, - 822, 859, 831, 837, 825, 833, 824, 830, 829, 825, - 835, 826, 829, 839, 834, 832, 830, 831, 836, 838, - 833, 834, 835, 840, 837, 841, 836, 849, 838, 842, - 843, 845, 841, 859, 839, 840, 842, 848, 846, 847, - 839, 855, 0, 0, 848, 836, 838, 850, 843, 849, - 840, 846, 841, 852, 849, 851, 842, 843, 847, 853, - 851, 852, 850, 854, 848, 846, 847, 855, 855, 857, - 858, 861, 853, 870, 850, 860, 0, 854, 0, 0, + 830, 823, 823, 0, 821, 830, 821, 827, 836, 821, + 827, 826, 828, 831, 833, 832, 829, 838, 837, 839, + 832, 831, 833, 841, 842, 829, 835, 839, 0, 838, + 840, 836, 844, 846, 0, 836, 837, 852, 844, 842, + 831, 833, 840, 841, 838, 837, 839, 843, 850, 845, + 841, 842, 847, 854, 846, 843, 848, 840, 845, 844, + 846, 849, 856, 848, 847, 853, 850, 857, 849, 852, + 855, 866, 854, 0, 843, 850, 845, 855, 853, 847, + 854, 858, 857, 848, 856, 859, 858, 860, 849, 856, + 861, 864, 853, 859, 857, 862, 0, 855, 865, 0, - 852, 865, 870, 857, 863, 862, 853, 851, 858, 0, - 854, 856, 864, 861, 856, 856, 857, 858, 861, 856, - 870, 860, 860, 862, 896, 856, 863, 865, 865, 856, - 866, 863, 862, 856, 864, 867, 868, 866, 856, 864, - 871, 856, 856, 872, 873, 0, 856, 869, 0, 878, - 874, 896, 856, 867, 876, 0, 856, 866, 868, 880, - 869, 882, 867, 868, 0, 878, 873, 881, 0, 919, - 882, 873, 871, 874, 869, 872, 878, 874, 875, 881, - 876, 876, 880, 875, 883, 875, 880, 875, 882, 875, - 884, 885, 887, 889, 881, 884, 875, 886, 888, 890, + 860, 0, 867, 866, 861, 864, 869, 0, 868, 0, + 0, 878, 859, 858, 860, 0, 865, 861, 864, 879, + 870, 862, 862, 863, 869, 865, 863, 863, 867, 867, + 868, 863, 873, 869, 871, 868, 872, 863, 875, 873, + 877, 863, 870, 878, 876, 863, 881, 870, 874, 877, + 863, 879, 880, 863, 863, 883, 871, 876, 863, 873, + 875, 871, 872, 872, 863, 875, 874, 877, 863, 881, + 885, 876, 887, 881, 880, 874, 888, 892, 890, 880, + 882, 883, 883, 889, 893, 882, 885, 882, 888, 882, + 892, 882, 889, 897, 895, 887, 890, 885, 882, 887, - 887, 919, 883, 0, 885, 875, 889, 894, 895, 894, - 875, 883, 875, 892, 875, 886, 875, 888, 885, 887, - 889, 890, 884, 891, 886, 888, 890, 897, 893, 898, - 895, 892, 903, 900, 894, 895, 891, 893, 902, 897, - 892, 901, 904, 905, 906, 907, 902, 908, 911, 904, - 891, 907, 913, 0, 897, 893, 898, 900, 920, 903, - 900, 910, 912, 901, 921, 902, 906, 911, 901, 904, - 905, 906, 907, 909, 908, 911, 914, 915, 913, 913, - 909, 916, 917, 910, 912, 914, 921, 922, 910, 912, - 920, 921, 0, 923, 924, 926, 917, 925, 915, 927, + 894, 891, 893, 888, 892, 890, 891, 882, 894, 896, + 889, 893, 882, 895, 882, 897, 882, 898, 882, 899, + 897, 895, 896, 900, 901, 902, 901, 894, 903, 904, + 898, 905, 900, 891, 909, 907, 896, 899, 908, 910, + 912, 904, 909, 0, 898, 915, 899, 902, 913, 0, + 900, 901, 902, 921, 917, 903, 904, 911, 905, 907, + 908, 909, 907, 914, 911, 908, 910, 912, 918, 914, + 913, 916, 915, 922, 919, 913, 917, 920, 916, 921, + 921, 917, 922, 924, 911, 923, 927, 918, 925, 928, + 914, 930, 929, 931, 0, 918, 919, 932, 916, 920, - 909, 916, 924, 914, 915, 928, 927, 930, 916, 917, - 929, 923, 928, 925, 929, 934, 933, 931, 932, 922, - 923, 924, 926, 931, 925, 932, 927, 935, 934, 936, - 931, 933, 928, 937, 941, 940, 935, 929, 939, 930, - 937, 943, 934, 933, 931, 932, 938, 939, 938, 942, - 931, 945, 947, 942, 935, 936, 936, 940, 948, 945, - 937, 941, 940, 943, 946, 939, 952, 949, 943, 946, - 947, 950, 954, 938, 950, 953, 942, 948, 945, 947, - 949, 951, 955, 950, 951, 948, 0, 957, 953, 0, - 956, 952, 0, 952, 949, 957, 946, 960, 950, 958, + 922, 919, 925, 924, 920, 932, 923, 934, 0, 933, + 924, 931, 923, 937, 929, 925, 938, 937, 927, 929, + 931, 928, 935, 930, 932, 933, 936, 941, 940, 935, + 942, 939, 943, 936, 934, 940, 933, 939, 0, 944, + 937, 943, 941, 942, 939, 945, 948, 947, 938, 935, + 949, 0, 945, 936, 941, 940, 947, 942, 939, 943, + 946, 951, 946, 950, 939, 944, 944, 950, 948, 957, + 953, 954, 945, 948, 947, 955, 954, 949, 953, 956, + 958, 0, 957, 951, 961, 963, 0, 946, 951, 0, + 950, 964, 958, 955, 965, 0, 957, 953, 956, 962, - 958, 950, 953, 951, 954, 955, 956, 959, 951, 955, - 964, 951, 961, 962, 957, 966, 959, 956, 965, 960, - 962, 961, 968, 966, 960, 972, 958, 965, 967, 969, - 971, 973, 970, 964, 959, 968, 976, 964, 971, 961, - 962, 969, 966, 967, 970, 965, 974, 972, 977, 968, - 979, 973, 972, 975, 976, 967, 969, 971, 973, 970, - 978, 980, 975, 976, 981, 982, 983, 980, 974, 984, - 0, 979, 978, 974, 977, 977, 985, 979, 987, 0, - 975, 988, 989, 990, 0, 994, 981, 978, 980, 992, - 0, 981, 990, 991, 993, 984, 984, 982, 983, 996, + 0, 959, 955, 954, 959, 960, 956, 958, 960, 961, + 965, 961, 962, 959, 964, 966, 968, 963, 964, 967, + 967, 965, 969, 966, 970, 968, 962, 960, 959, 971, + 973, 959, 960, 970, 0, 960, 971, 975, 974, 976, + 978, 0, 966, 968, 969, 975, 967, 974, 977, 969, + 979, 970, 978, 973, 976, 980, 971, 973, 981, 982, + 984, 977, 979, 980, 975, 974, 976, 978, 983, 984, + 985, 991, 986, 988, 990, 977, 0, 979, 989, 982, + 981, 987, 980, 992, 989, 981, 982, 984, 985, 996, + 983, 993, 998, 987, 988, 983, 990, 985, 986, 986, - 989, 992, 985, 985, 988, 987, 991, 997, 988, 989, - 990, 994, 994, 0, 993, 995, 992, 998, 996, 999, - 991, 993, 995, 1000, 1006, 1002, 996, 999, 1000, 997, - 998, 1001, 1002, 1003, 997, 1004, 1001, 1005, 1007, 1007, - 1008, 1003, 995, 1004, 998, 1005, 999, 1009, 1008, 1010, - 1011, 1012, 1002, 1013, 0, 1000, 1006, 1015, 1011, 1012, - 1003, 1013, 1004, 1001, 1005, 1007, 1016, 1008, 1009, 1018, - 1015, 1014, 1016, 1017, 1009, 1019, 1020, 1011, 1012, 1014, - 1013, 1010, 1021, 1022, 1015, 1017, 1025, 1024, 1023, 1031, - 1029, 1020, 1026, 1016, 1038, 1018, 1018, 1029, 1014, 1019, + 988, 990, 994, 991, 997, 989, 1002, 0, 987, 1000, + 998, 999, 1001, 0, 1003, 992, 996, 993, 993, 998, + 999, 1006, 1000, 1004, 1001, 1005, 1002, 997, 994, 994, + 1004, 997, 1007, 1002, 1008, 1015, 1000, 0, 999, 1001, + 1003, 1003, 1008, 1006, 1005, 1007, 1009, 1012, 1006, 1010, + 1004, 1009, 1005, 1011, 1010, 1012, 1013, 1014, 1017, 1007, + 1011, 1008, 1016, 1016, 1013, 1014, 1017, 1015, 1019, 1018, + 1025, 1020, 0, 0, 1012, 1024, 1025, 0, 1009, 1020, + 1011, 1010, 1027, 1013, 1014, 1017, 1021, 1022, 1024, 1016, + 1018, 1023, 1026, 1028, 1021, 1022, 1018, 1025, 1020, 1023, - 1017, 1024, 1019, 1020, 1025, 1022, 1026, 1030, 1027, 1021, - 1022, 1023, 1027, 1025, 1024, 1023, 1031, 1029, 1030, 1026, - 1032, 1033, 1034, 1035, 1037, 1027, 1038, 1036, 1039, 1041, - 1035, 1037, 0, 1027, 1030, 1027, 1036, 1043, 1041, 1027, - 1044, 1045, 1032, 1047, 1033, 1034, 0, 1032, 1033, 1034, - 1035, 1037, 1027, 1049, 1036, 1039, 1041, 1050, 1052, 1043, - 1053, 1055, 1054, 1055, 1043, 1056, 1044, 1044, 1050, 1057, - 1047, 1058, 1059, 1045, 1054, 1062, 1063, 1060, 1056, 1064, - 1049, 1063, 1052, 1058, 1050, 1052, 1053, 1053, 1055, 1054, - 1061, 1057, 1056, 1065, 1069, 1064, 1057, 1061, 1058, 1059, + 1019, 1029, 1024, 1030, 1026, 1031, 1032, 1033, 1027, 1027, + 1035, 1040, 1039, 1021, 1022, 0, 1029, 1028, 1023, 1026, + 1028, 1033, 1034, 1039, 1035, 1041, 0, 1031, 1029, 1032, + 1030, 1036, 1031, 1032, 1033, 1036, 1038, 1035, 1040, 1039, + 1034, 1042, 1043, 1038, 1044, 1045, 1046, 1041, 1036, 1034, + 1047, 1044, 1041, 1046, 1045, 1054, 1036, 1048, 1036, 1052, + 0, 1050, 1036, 1038, 1042, 1043, 1053, 1056, 1042, 1043, + 1050, 1044, 1045, 1046, 1058, 1036, 1061, 1064, 1059, 1064, + 1062, 1052, 1047, 1063, 1048, 1065, 1052, 1054, 1050, 1059, + 1068, 1067, 1053, 1053, 1056, 1063, 1066, 1069, 1070, 0, - 1060, 1062, 1062, 1063, 1060, 1066, 1064, 1067, 1073, 1070, - 1071, 0, 1072, 1066, 0, 1074, 1065, 1061, 1070, 1075, - 1065, 1069, 1074, 1071, 1078, 1076, 1075, 1077, 1079, 1067, - 1073, 1078, 1066, 1081, 1067, 1073, 1070, 1071, 1072, 1072, - 1080, 1082, 1074, 1076, 1083, 1085, 1075, 1086, 1082, 1077, - 1088, 1078, 1076, 1079, 1077, 1079, 1087, 1090, 1085, 1091, - 1090, 1092, 1080, 1096, 1087, 1081, 1093, 1080, 1082, 1094, - 1095, 1088, 1085, 1100, 1086, 1093, 1083, 1088, 0, 1101, - 1097, 1094, 1102, 1087, 1090, 1091, 1091, 1092, 1092, 1096, - 1096, 1098, 1105, 1093, 1095, 1097, 1094, 1095, 1098, 1099, + 1061, 1058, 1068, 1061, 1064, 1059, 1062, 1062, 1071, 1066, + 1063, 1065, 1065, 1067, 1072, 1071, 1074, 1068, 1067, 1075, + 1076, 1070, 1073, 1066, 1069, 1070, 1077, 1073, 1076, 1079, + 1080, 1081, 1074, 1082, 1091, 1071, 0, 0, 0, 1080, + 1072, 1072, 1075, 1074, 1081, 1083, 1075, 1076, 1077, 1073, + 1086, 1087, 1090, 1077, 1084, 1085, 1079, 1080, 1081, 1082, + 1082, 1084, 1085, 1088, 1089, 1093, 1091, 1083, 1086, 1092, + 1088, 1095, 1083, 1087, 1090, 1096, 1092, 1086, 1087, 1090, + 1097, 1084, 1085, 1098, 1095, 1101, 1111, 1102, 1097, 1089, + 1088, 1089, 1100, 1103, 1104, 1100, 1092, 1093, 1095, 1106, - 1102, 1101, 1099, 1103, 1106, 1100, 1101, 1097, 1104, 1102, - 1104, 1107, 1108, 1111, 1099, 1110, 1105, 1113, 1098, 1105, - 1109, 1108, 1110, 1099, 1112, 1103, 1099, 1114, 1109, 1099, - 1103, 1114, 1116, 1115, 1117, 1104, 1106, 1107, 1107, 1108, - 1121, 1099, 1110, 1118, 1125, 1111, 1112, 1109, 0, 1113, - 1119, 1112, 1118, 1121, 1114, 1115, 1117, 1119, 1120, 1116, - 1115, 1117, 1122, 1123, 1126, 1120, 1124, 1121, 1128, 1131, - 1118, 1126, 1127, 0, 1134, 1122, 1125, 1119, 1123, 1127, - 1124, 1128, 1129, 1133, 1136, 1120, 1135, 1132, 1129, 1122, - 1123, 1126, 1140, 1124, 1132, 1128, 1131, 1136, 1135, 1127, + 0, 1107, 1096, 1104, 1098, 1105, 1103, 1097, 1109, 1108, + 1098, 1101, 1101, 1102, 1102, 1109, 1112, 1105, 1111, 1100, + 1103, 1104, 1110, 1106, 1108, 1110, 1106, 1107, 1107, 1113, + 1116, 1114, 1105, 1117, 1118, 1109, 1108, 1110, 1112, 1115, + 1120, 1115, 1119, 1112, 1122, 0, 1110, 1113, 1120, 1110, + 1123, 1119, 1110, 1114, 1116, 1121, 1113, 1116, 1114, 1124, + 1118, 1118, 1121, 1126, 1110, 1117, 1115, 1120, 1127, 1119, + 1125, 1128, 1123, 1130, 1125, 1129, 1122, 1123, 1135, 1131, + 1130, 1132, 1121, 1133, 1129, 1126, 1131, 1136, 1134, 1169, + 1126, 1124, 1135, 1128, 1132, 1127, 1133, 1125, 1128, 1139, - 1134, 1134, 1139, 1137, 1140, 1133, 1137, 1138, 1141, 1129, - 1133, 1136, 1143, 1135, 1132, 1142, 1138, 1148, 1142, 1140, - 1139, 1149, 1147, 1143, 1147, 1152, 1145, 1150, 1141, 1139, - 1137, 1145, 1151, 1142, 1138, 1141, 1159, 1154, 1145, 1143, - 1151, 0, 1142, 1157, 1148, 1142, 1153, 1152, 1149, 1147, - 1158, 1150, 1152, 1145, 1150, 1154, 0, 1153, 1145, 1151, - 1155, 1157, 1156, 1159, 1154, 1156, 1162, 1160, 1155, 1161, - 1157, 1163, 0, 1153, 1160, 1162, 1165, 1164, 1172, 1167, - 1156, 1167, 1158, 1161, 1163, 1169, 1168, 1155, 1164, 1156, - 1170, 1165, 1156, 1162, 1160, 1168, 1161, 1171, 1163, 1175, + 1130, 1142, 1129, 1134, 1137, 1135, 1131, 1138, 1132, 1145, + 1133, 1137, 1139, 1143, 1138, 1134, 1140, 1144, 1146, 1136, + 1143, 1169, 1140, 1150, 1147, 0, 1139, 1152, 1142, 1148, + 1146, 1137, 1148, 1149, 1138, 1145, 1145, 1147, 1159, 1144, + 1143, 1150, 1149, 1140, 1144, 1146, 1151, 1152, 1154, 1153, + 1150, 1147, 1153, 1158, 1152, 1158, 1148, 1156, 1151, 1154, + 1149, 1160, 1156, 1161, 1162, 1159, 1164, 1153, 1165, 1156, + 1163, 1170, 1162, 1151, 1166, 1154, 1153, 1164, 1167, 1153, + 1158, 1167, 1166, 0, 1156, 1168, 1165, 1161, 1160, 1156, + 1161, 1162, 1163, 1164, 1174, 1165, 1167, 1163, 1170, 1171, - 1172, 1170, 1173, 1165, 1164, 1172, 1167, 1174, 1175, 1176, - 1174, 1169, 1169, 1168, 1176, 1171, 1173, 1170, 1178, 1180, - 1181, 1179, 1182, 1183, 1171, 1174, 1175, 0, 1173, 1173, - 1179, 1186, 1184, 1187, 1174, 0, 1189, 1174, 1186, 1192, - 1188, 1176, 1189, 1173, 1182, 1193, 1180, 1192, 1179, 1182, - 1178, 1201, 1181, 1184, 1188, 1183, 1194, 0, 1186, 1184, - 1189, 1197, 1195, 1189, 1193, 1187, 1192, 1188, 1196, 1189, - 1194, 1195, 1193, 1198, 1202, 1203, 1196, 1199, 1201, 1207, - 0, 1202, 0, 1194, 1198, 1204, 1199, 1205, 1206, 1195, - 1208, 1210, 1211, 1197, 1208, 1196, 1213, 1207, 1203, 0, + 1172, 1166, 1173, 1168, 1175, 1167, 1171, 1174, 1167, 1176, + 1179, 1173, 1168, 1180, 1172, 1175, 1178, 1181, 1178, 1179, + 1182, 1174, 0, 1183, 1176, 1186, 1171, 1172, 1181, 1173, + 1185, 1175, 1184, 1185, 1186, 1189, 1176, 1179, 1182, 1180, + 1180, 1191, 1190, 1178, 1181, 1183, 1184, 1182, 1185, 1187, + 1183, 1190, 1186, 1192, 1187, 1193, 1194, 1185, 1184, 1184, + 1185, 1198, 1195, 1197, 1199, 1205, 0, 1189, 1191, 1190, + 1197, 0, 0, 1184, 1200, 1204, 1203, 1193, 1199, 1205, + 1200, 1187, 1193, 1195, 1203, 1192, 1206, 1209, 1194, 1195, + 1197, 1199, 1205, 1198, 1204, 1206, 1207, 1208, 1200, 1210, - 1198, 1202, 1203, 1210, 1199, 1214, 1207, 1204, 1212, 1205, - 1206, 1215, 1204, 1218, 1205, 1206, 1213, 1208, 1210, 1211, - 1214, 1212, 1216, 1213, 1217, 1219, 1215, 1220, 1222, 1221, - 1216, 1217, 1214, 1223, 1224, 1212, 1220, 1226, 1215, 1228, - 1219, 1231, 1230, 1229, 1227, 1218, 0, 0, 1231, 1216, - 1221, 1217, 1219, 1235, 1220, 1222, 1221, 1223, 1229, 1226, - 1223, 1224, 1227, 1236, 1226, 1233, 1228, 1230, 1231, 1230, - 1229, 1227, 1232, 1234, 1233, 1235, 1237, 1232, 1241, 1239, - 1235, 1236, 1234, 1238, 1240, 1241, 1242, 1243, 1244, 1248, - 1236, 1237, 1233, 0, 1250, 1238, 1246, 1240, 1242, 1232, + 1211, 1200, 1204, 1203, 1207, 1213, 1215, 1200, 1214, 1211, + 1210, 1208, 1216, 1206, 1217, 1214, 1218, 1220, 1222, 1209, + 1223, 1220, 1219, 1207, 1208, 0, 1210, 1211, 1225, 1215, + 1222, 1226, 1213, 1215, 1216, 1214, 1217, 1224, 1218, 1216, + 1219, 1217, 1227, 1218, 1220, 1222, 1226, 1223, 1225, 1219, + 1224, 1228, 1230, 1229, 1232, 1225, 1231, 1227, 1226, 1228, + 1229, 1233, 1234, 1232, 1224, 1236, 1235, 0, 1239, 1227, + 1240, 1231, 1238, 1242, 0, 0, 1241, 1243, 1228, 0, + 1229, 1232, 1233, 1231, 1230, 1248, 1239, 1246, 1233, 1234, + 1235, 1241, 1236, 1235, 1238, 1239, 1246, 1240, 1242, 1238, - 1234, 1239, 1240, 1237, 1246, 1241, 1239, 1252, 1253, 1245, - 1238, 1240, 1247, 1242, 1243, 1245, 1248, 1255, 1249, 1247, - 1244, 1250, 1251, 1246, 1240, 1249, 1254, 1257, 1251, 1258, - 1259, 1253, 0, 1261, 1252, 1253, 1245, 1262, 1258, 1247, - 1260, 1255, 1260, 1263, 1255, 1249, 1264, 0, 1266, 1251, - 1268, 0, 0, 1272, 1267, 1266, 1258, 1261, 1254, 1257, - 1261, 1267, 1259, 1271, 1262, 1273, 1272, 1260, 1271, 1263, - 1263, 1277, 1265, 1265, 1265, 1266, 1269, 1274, 1264, 1265, - 1272, 1267, 1268, 1269, 1275, 1276, 1280, 1265, 1279, 1277, - 1273, 1286, 1273, 1274, 1279, 1271, 1275, 1282, 1277, 1265, + 1242, 1243, 1244, 1241, 1243, 1245, 1247, 1248, 1249, 1244, + 1245, 1251, 1248, 1250, 1246, 1247, 1256, 1252, 1253, 1257, + 1254, 0, 1255, 1251, 0, 1261, 1249, 1254, 1250, 1244, + 1260, 1253, 1245, 1247, 1255, 1249, 1253, 1260, 1251, 1252, + 1250, 1263, 1258, 1256, 1252, 1253, 1259, 1254, 1258, 1255, + 1264, 1257, 1261, 1262, 1259, 1265, 1264, 1260, 1253, 1267, + 1262, 1266, 1268, 1270, 1272, 1271, 1274, 1275, 1263, 1258, + 1273, 1277, 1273, 1259, 1271, 1276, 1281, 1264, 1284, 0, + 1262, 0, 1265, 1284, 1266, 0, 1268, 0, 1266, 1268, + 1274, 1267, 1271, 1274, 1275, 1270, 1272, 1273, 1278, 1278, - 1265, 1265, 1278, 1269, 1274, 1283, 1265, 1281, 1281, 1278, - 1285, 1275, 1283, 1280, 1284, 1279, 1290, 1276, 1286, 1284, - 1289, 1291, 1290, 1282, 1282, 1293, 1294, 1292, 0, 1278, - 1295, 1295, 1283, 1296, 1281, 1298, 1285, 1285, 1289, 1292, - 1301, 1284, 1300, 1290, 1294, 1293, 1298, 1289, 1291, 1297, - 1297, 1302, 1293, 1294, 1292, 1303, 1304, 1295, 1302, 1296, - 1296, 1305, 1298, 1306, 1300, 1307, 0, 1308, 1311, 1300, - 1309, 1310, 1301, 0, 0, 1303, 1297, 1309, 1302, 1310, - 1312, 0, 1303, 1311, 1315, 1308, 0, 1307, 1304, 1317, - 1306, 1313, 1307, 1305, 1308, 1311, 1316, 1309, 1310, 1323, + 1278, 1276, 1276, 1277, 1279, 1278, 1285, 1280, 1281, 1282, + 1284, 1279, 1286, 1278, 1280, 1289, 1282, 1288, 1292, 1285, + 0, 1291, 1287, 1290, 1292, 1278, 1278, 1278, 1291, 1288, + 1293, 1279, 1278, 1285, 1280, 1295, 1282, 1286, 1287, 1286, + 1298, 1290, 1294, 1294, 1288, 1292, 1296, 1289, 1291, 1287, + 1290, 1297, 1299, 1296, 1302, 1304, 1297, 1293, 1303, 1305, + 1306, 1295, 1295, 1309, 1303, 1307, 1298, 1298, 1314, 1294, + 1317, 1305, 1302, 1296, 1308, 1308, 1310, 1310, 1297, 1299, + 1306, 1302, 1304, 1307, 1311, 1303, 1305, 1306, 1313, 1309, + 1309, 1315, 1307, 1316, 1318, 1311, 1319, 1320, 1315, 0, - 1313, 1314, 1314, 1320, 1312, 1317, 1319, 1312, 1316, 1322, - 1315, 1315, 1317, 1324, 1319, 1320, 1317, 1322, 1313, 1325, - 1326, 1328, 1323, 1316, 0, 1329, 1323, 1332, 1314, 1330, - 1320, 1329, 1317, 1319, 1324, 1333, 1322, 1325, 1327, 0, - 1324, 1335, 1330, 1327, 1331, 1334, 1325, 1326, 1328, 1337, - 1334, 1331, 1329, 1338, 1327, 1341, 1330, 1336, 1336, 1332, - 1340, 1343, 1333, 1343, 1337, 1327, 1342, 1344, 1346, 1345, - 1327, 1331, 0, 1335, 1345, 1340, 1337, 1334, 1341, 1347, - 1349, 1342, 1341, 1350, 1336, 1338, 1351, 1340, 1343, 1352, - 1353, 1354, 0, 1342, 1347, 0, 1345, 1353, 1355, 1344, + 1314, 1308, 1317, 1310, 1321, 1322, 1323, 0, 1326, 0, + 1313, 1311, 1322, 1316, 1323, 1313, 1325, 1326, 1315, 1320, + 1316, 1324, 1321, 1319, 1320, 1328, 1318, 1327, 1327, 1329, + 1330, 1321, 1322, 1323, 1332, 1326, 1324, 1333, 1337, 1335, + 1325, 1329, 1332, 1325, 1336, 1338, 1330, 1335, 1324, 1333, + 1339, 1328, 1328, 1330, 1327, 1341, 1329, 1330, 1345, 1337, + 1346, 1332, 1342, 1338, 1333, 1337, 1335, 1336, 1342, 1340, + 1343, 1336, 1338, 1330, 1340, 1347, 1348, 1339, 1349, 1344, + 1347, 1352, 1341, 1343, 1351, 1340, 1344, 1346, 1354, 1342, + 1345, 1350, 1350, 1355, 1356, 1358, 1340, 1343, 1357, 1351, - 1346, 1357, 1356, 1358, 1349, 1360, 1347, 1349, 0, 1350, - 1350, 1362, 1367, 1351, 0, 1369, 1352, 1353, 1363, 1355, - 1371, 1358, 1357, 1354, 1356, 1355, 1365, 1360, 1357, 1356, - 1358, 1366, 1360, 1363, 1368, 1362, 1372, 1369, 1362, 1367, - 1370, 1365, 1369, 1372, 0, 1363, 1366, 1371, 1373, 1375, - 1374, 1376, 1368, 1365, 1378, 0, 1379, 1375, 1366, 1374, - 1377, 1368, 1370, 1372, 1382, 1386, 1373, 1370, 1381, 1379, - 1383, 1384, 1390, 1382, 1376, 1373, 1375, 1374, 1376, 1381, - 1391, 1392, 1377, 1379, 1390, 1388, 1378, 1377, 1383, 1384, - 1393, 1382, 1386, 1391, 1381, 1381, 1388, 1383, 1384, 1390, + 1357, 1340, 1360, 1354, 1361, 1363, 1344, 1347, 1348, 1356, + 1349, 1351, 1359, 1352, 1364, 1354, 1355, 1359, 1350, 1361, + 1355, 1356, 1365, 1366, 1368, 1357, 1367, 1358, 1372, 1363, + 1369, 1361, 1363, 1367, 1360, 0, 1370, 0, 1371, 1359, + 1364, 1364, 1374, 1376, 1381, 1377, 1372, 1379, 1382, 1365, + 1366, 1369, 1386, 1367, 0, 1372, 1368, 1369, 1370, 1371, + 1377, 1380, 1379, 1370, 1374, 1371, 1381, 1376, 1383, 1374, + 1376, 1381, 1377, 0, 1379, 1382, 1380, 1384, 1385, 1386, + 1387, 1389, 1393, 1388, 1390, 0, 1383, 1387, 1380, 1391, + 1389, 1392, 1390, 1394, 1397, 1383, 1401, 1407, 1396, 1384, - 1393, 1394, 0, 1396, 1395, 1397, 1381, 1391, 1400, 0, - 1401, 0, 1388, 1392, 1399, 1400, 1403, 1393, 1404, 1411, - 1402, 0, 1403, 0, 1397, 1405, 1411, 1394, 1394, 1395, - 1396, 1395, 1397, 1404, 1399, 1400, 1401, 1401, 1402, 1406, - 1405, 1399, 1409, 1403, 1408, 1404, 1411, 1402, 1407, 1407, - 1412, 1413, 1405, 1414, 1406, 1409, 1408, 1415, 0, 1416, - 1421, 1418, 1414, 1409, 1415, 1412, 1406, 1417, 1418, 1409, - 1420, 1408, 1422, 1423, 1430, 1407, 1424, 1412, 1413, 1427, - 1414, 1422, 1409, 1416, 1415, 1421, 1416, 1421, 1418, 1417, - 1426, 1432, 1420, 1434, 1417, 1423, 1424, 1420, 1429, 1422, + 1385, 1388, 0, 1397, 1384, 1385, 1394, 1387, 1389, 1396, + 1388, 1390, 1391, 1392, 1393, 1398, 1391, 1399, 1392, 1403, + 1394, 1397, 1405, 1401, 1396, 1396, 1406, 1408, 1411, 1407, + 1403, 1409, 1412, 1398, 1405, 1399, 1396, 1408, 1410, 1406, + 1414, 1415, 1398, 1416, 1399, 0, 1403, 0, 1415, 1405, + 0, 1412, 0, 1406, 1408, 1411, 1417, 1409, 1409, 1412, + 1414, 1419, 1420, 1410, 1421, 1410, 1418, 1414, 1415, 1416, + 1416, 1424, 1418, 1423, 1417, 1426, 1419, 1420, 1428, 1421, + 1422, 1422, 1426, 1417, 1424, 1423, 1427, 1429, 1419, 1420, + 1430, 1421, 1424, 1418, 1431, 1436, 1429, 1430, 1424, 1433, - 1423, 1430, 1433, 1424, 1427, 1436, 1427, 0, 1426, 1431, - 1431, 1429, 1435, 1432, 1436, 1434, 1437, 1426, 1432, 1438, - 1434, 1440, 1439, 1437, 1449, 1429, 1441, 1433, 1444, 1433, - 1443, 1445, 1436, 1446, 1435, 1440, 1431, 0, 1443, 1435, - 1447, 1444, 1450, 1437, 1439, 1441, 1451, 1448, 1440, 1439, - 1452, 1438, 1447, 1441, 1448, 1444, 1449, 1443, 1445, 1446, - 1446, 1453, 0, 1454, 1450, 1452, 0, 1447, 0, 1450, - 1456, 1451, 1458, 1451, 1448, 1455, 1457, 1452, 1455, 1460, - 1459, 0, 1457, 0, 1466, 0, 1462, 1453, 1453, 1454, - 1454, 1466, 1463, 1455, 1460, 1456, 1465, 1456, 1459, 1458, + 1423, 1427, 1426, 1432, 0, 1428, 1433, 1422, 1439, 1435, + 1437, 1424, 1438, 1427, 1429, 1441, 1442, 1430, 1431, 1437, + 1436, 1431, 1436, 1445, 1447, 1432, 1433, 1444, 1439, 1453, + 1432, 1435, 1448, 1441, 1438, 1439, 1435, 1437, 1449, 1438, + 1444, 1442, 1441, 1442, 1446, 1446, 1447, 1450, 1452, 1451, + 1445, 1447, 1455, 1456, 1444, 1452, 1454, 1448, 1451, 1448, + 1449, 1453, 1458, 1460, 1459, 1449, 1455, 1461, 0, 1450, + 1458, 1446, 1456, 1462, 1450, 1452, 1451, 1459, 1454, 1455, + 1456, 1463, 1464, 1454, 1465, 1462, 1467, 0, 1463, 1458, + 1460, 1459, 1466, 1461, 1461, 1468, 0, 1469, 1472, 1473, - 1467, 1468, 1455, 1457, 1470, 1455, 1460, 1459, 1462, 1467, - 1465, 1466, 1468, 1462, 1463, 1472, 1475, 1470, 1473, 1463, - 1474, 1476, 1474, 1465, 1478, 1470, 1480, 1467, 1468, 1479, - 1473, 1470, 1477, 1481, 1475, 1483, 1472, 1479, 1482, 1484, - 1483, 1488, 1472, 1475, 1470, 1473, 1490, 1474, 1476, 1480, - 1477, 1478, 1482, 1480, 1485, 1481, 1479, 1489, 1484, 1477, - 1481, 1485, 1491, 1493, 1490, 1482, 1484, 1483, 1488, 1492, - 1494, 1489, 1495, 1490, 1497, 0, 1500, 0, 1493, 1494, - 1496, 1485, 1489, 1489, 1489, 1501, 1498, 1502, 0, 1491, - 1493, 1504, 1501, 1504, 1505, 1492, 1492, 1494, 1489, 1500, + 1462, 1467, 1470, 1471, 1472, 1470, 1465, 0, 1463, 1474, + 0, 1465, 1477, 1467, 1464, 1478, 1475, 1466, 0, 1466, + 1470, 1468, 1468, 1469, 1469, 1472, 1473, 1474, 1471, 1470, + 1471, 1475, 1470, 1480, 1477, 1482, 1474, 1478, 1481, 1477, + 1483, 1489, 1478, 1475, 1482, 1481, 1488, 1480, 1485, 1487, + 1488, 1483, 1490, 1489, 1490, 1492, 1491, 1494, 1495, 1493, + 1480, 1485, 1482, 0, 1496, 1481, 1495, 1483, 1489, 1485, + 1487, 1497, 1511, 1488, 1491, 1485, 1487, 1493, 1498, 1490, + 1500, 1504, 1492, 1491, 1494, 1495, 1493, 1496, 1485, 1499, + 1501, 1496, 1498, 1497, 1499, 1506, 1507, 1501, 1497, 1500, - 1508, 1497, 1496, 1500, 1495, 1507, 1511, 1496, 1498, 1489, - 1502, 1506, 1501, 1498, 1502, 1506, 1505, 1507, 1504, 1509, - 1510, 1505, 1508, 1513, 0, 1512, 1516, 1508, 1509, 1514, - 1527, 1510, 1507, 1511, 1516, 1513, 1515, 1515, 1506, 1519, - 0, 1518, 1520, 1519, 1523, 1520, 1509, 1510, 1512, 1518, - 1513, 1514, 1512, 1516, 1521, 1522, 1514, 1527, 1524, 1523, - 1526, 1522, 1521, 1515, 1524, 1528, 1519, 1530, 1518, 1520, - 1529, 1523, 1526, 1532, 1531, 1533, 1534, 1536, 1535, 1539, - 1530, 1521, 1522, 1537, 1529, 1524, 1540, 1526, 1531, 1528, - 1535, 1536, 1528, 1538, 1530, 1542, 1538, 1529, 1546, 1532, + 1505, 0, 1508, 1509, 1511, 1498, 1510, 1500, 1504, 1512, + 1513, 1515, 1514, 1506, 1505, 1510, 0, 1501, 1509, 1517, + 0, 1499, 1506, 1507, 1519, 1505, 1505, 1505, 1508, 1508, + 1509, 1512, 1522, 1510, 1514, 1525, 1512, 1513, 1518, 1514, + 1523, 1505, 1517, 1515, 1523, 1518, 1517, 1519, 1521, 1524, + 1521, 1519, 1505, 1528, 1522, 1526, 1529, 1525, 1527, 1522, + 1530, 1524, 1525, 0, 1526, 1518, 1531, 1523, 0, 1527, + 1532, 1532, 1530, 1533, 1537, 1521, 1524, 1537, 1535, 1529, + 1528, 1533, 1526, 1529, 1538, 1527, 1535, 1530, 1531, 1539, + 1536, 1540, 1538, 1531, 1536, 1539, 1541, 1532, 1543, 1544, - 1532, 1531, 1533, 1534, 1536, 1535, 1539, 1543, 1540, 1537, - 1537, 1538, 1544, 1540, 1543, 1545, 1547, 1542, 1548, 1544, - 1538, 1549, 1542, 1538, 1550, 1546, 1548, 1551, 1552, 1554, - 1545, 1553, 1557, 1550, 1543, 1556, 1559, 1554, 1558, 1544, - 1560, 0, 1545, 1547, 1553, 1548, 1558, 1561, 1549, 1560, - 1564, 1550, 1562, 1565, 1551, 1552, 1554, 1556, 1553, 1557, - 1563, 1565, 1556, 1559, 1567, 1558, 1566, 1560, 1561, 1568, - 1572, 1573, 1567, 1574, 1561, 1563, 1562, 1564, 1566, 1562, - 1565, 1570, 1572, 1576, 1575, 1571, 1563, 1563, 1570, 1571, - 1580, 1567, 1575, 1566, 1573, 1578, 1568, 1572, 1573, 1577, + 1533, 1537, 1541, 1545, 1550, 1535, 1540, 1546, 1551, 1547, + 1543, 1538, 1549, 0, 1548, 1553, 1539, 1536, 1540, 1554, + 1552, 1546, 1547, 1541, 1556, 1543, 1544, 1545, 1548, 1553, + 1545, 1550, 1552, 1562, 1546, 1551, 1547, 1555, 1549, 1549, + 1555, 1548, 1553, 1557, 1559, 1554, 1554, 1552, 1562, 1560, + 1561, 1556, 1563, 1564, 1565, 1555, 1560, 1561, 1566, 1567, + 1562, 1568, 1565, 1569, 1555, 1557, 1559, 1555, 1567, 1570, + 1557, 1559, 1573, 1574, 1576, 1571, 1560, 1561, 1577, 1563, + 1564, 1565, 1570, 1571, 1575, 1566, 1567, 1577, 1568, 1578, + 1569, 1579, 1575, 1580, 1573, 1581, 1570, 1583, 1582, 1573, - 1574, 1581, 1563, 1579, 1579, 0, 1577, 1582, 1570, 1584, - 1576, 1575, 1571, 1585, 1596, 1578, 1580, 1580, 1586, 1581, - 1586, 1588, 1578, 1587, 1584, 1589, 1577, 1588, 1581, 1590, - 1579, 1591, 1582, 0, 1582, 1585, 1584, 1587, 1597, 1592, - 1585, 1593, 1594, 1591, 0, 1586, 1596, 1589, 1588, 1595, - 1587, 1590, 1589, 1601, 1603, 1602, 1590, 1592, 1591, 1593, - 1594, 1597, 1595, 1599, 1619, 1597, 1592, 1604, 1593, 1594, - 1599, 1601, 1605, 1607, 1605, 1604, 1595, 1608, 1611, 1605, - 1601, 1602, 1602, 1610, 1612, 1607, 1603, 1616, 1613, 1611, - 1599, 1619, 1615, 1604, 1604, 1608, 1612, 1618, 1610, 1605, + 1574, 1576, 1571, 1585, 1584, 1577, 1582, 1587, 1580, 1583, + 1578, 1575, 1584, 1588, 1587, 1579, 1578, 1588, 1579, 1580, + 1580, 1589, 1581, 1590, 1583, 1582, 1591, 1593, 1592, 1595, + 1585, 1584, 1594, 1589, 1587, 1580, 1592, 1596, 1596, 1594, + 1588, 1597, 1598, 0, 1602, 1599, 1590, 1601, 1589, 1595, + 1590, 1604, 1605, 1591, 1593, 1592, 1595, 0, 1605, 1594, + 1598, 1603, 1601, 1603, 1596, 1604, 1602, 1597, 1597, 1598, + 1599, 1602, 1599, 1606, 1601, 1607, 1609, 1608, 1604, 1605, + 1610, 1611, 1614, 1612, 1617, 0, 1615, 0, 1603, 1608, + 1620, 1617, 1613, 1621, 1609, 1606, 0, 1607, 1610, 1611, - 1607, 1605, 1604, 1613, 1608, 1611, 1617, 1621, 1622, 1616, - 1610, 1612, 1618, 1617, 1616, 1613, 1615, 1623, 1624, 1615, - 1625, 1628, 0, 0, 1618, 1626, 0, 1627, 1629, 1630, - 1622, 1631, 1635, 1617, 1621, 1622, 1628, 1630, 1626, 1633, - 1634, 1629, 1643, 1636, 1637, 0, 0, 1625, 1628, 1623, - 1624, 1637, 1626, 1627, 1627, 1629, 1630, 1631, 1631, 1635, - 1639, 1638, 1633, 1640, 1634, 1636, 1633, 1634, 1638, 1641, - 1636, 1637, 1642, 1639, 1643, 1645, 1641, 1644, 1647, 1648, - 1649, 1650, 1651, 1661, 1645, 0, 1640, 1639, 1638, 1647, - 1640, 1655, 1656, 0, 1642, 1658, 1641, 1654, 1644, 1642, + 1606, 1612, 1607, 1609, 1608, 1613, 1619, 1610, 1611, 1615, + 1612, 1617, 1622, 1615, 1614, 1625, 1620, 1620, 1626, 1613, + 1622, 1623, 1628, 1623, 1619, 1621, 1631, 1625, 1623, 1629, + 1633, 1630, 1642, 1619, 0, 1637, 1626, 1628, 1622, 1622, + 1629, 1631, 1625, 1630, 1634, 1626, 1636, 1622, 1623, 1628, + 1623, 1639, 1635, 1631, 1633, 1641, 1629, 1633, 1630, 1635, + 1640, 1636, 1637, 1643, 1642, 1644, 1634, 1645, 0, 0, + 1646, 1634, 1648, 1636, 1647, 1649, 1653, 1641, 1639, 1635, + 1645, 1650, 1641, 1649, 1640, 1648, 1652, 1640, 1654, 1647, + 1655, 1656, 1644, 1658, 1645, 1643, 1646, 1646, 1656, 1648, - 1650, 1648, 1645, 1660, 1644, 1647, 1648, 1651, 1650, 1651, - 1654, 1663, 1649, 1657, 1657, 1661, 1656, 1655, 1655, 1656, - 1662, 1658, 1658, 1664, 1654, 1667, 1660, 1669, 1674, 1672, - 1660, 1673, 1676, 1678, 1679, 1662, 1669, 1680, 1663, 1681, - 1657, 1664, 1686, 1689, 1681, 1682, 1693, 1662, 1680, 1684, - 1664, 1672, 1667, 1673, 1669, 1674, 1672, 1684, 1673, 1676, - 1679, 1679, 1685, 1688, 1680, 1678, 1681, 1682, 1691, 1686, - 1690, 1696, 1682, 1693, 1695, 1689, 1684, 1685, 1698, 1690, - 1691, 1688, 1697, 1699, 1701, 1702, 1700, 1703, 1704, 1685, - 1688, 1707, 1705, 1706, 0, 1691, 1699, 1690, 1696, 1700, + 1653, 1647, 1649, 1653, 1657, 1659, 1658, 1650, 1650, 1652, + 1662, 1657, 1655, 1652, 1660, 1654, 1661, 1655, 1656, 1663, + 1658, 1660, 1667, 1666, 1664, 1668, 1669, 1670, 1659, 1674, + 0, 1657, 1659, 1664, 1666, 1673, 1675, 1680, 1661, 1677, + 1663, 1660, 1662, 1661, 1667, 1669, 1663, 1679, 1673, 1667, + 1666, 1664, 1670, 1669, 1670, 1674, 1674, 1668, 1676, 1676, + 1675, 1681, 1673, 1675, 1682, 1677, 1677, 1686, 1683, 1680, + 1679, 1688, 0, 1693, 1679, 1691, 1681, 1692, 1695, 1697, + 1688, 1698, 1699, 1708, 0, 1676, 1683, 1700, 1681, 0, + 1701, 1682, 1700, 1699, 1686, 1683, 1705, 1691, 1688, 1692, - 1695, 1695, 1706, 1698, 1697, 1698, 1701, 1705, 1708, 1697, - 1699, 1701, 1702, 1700, 1703, 1704, 1709, 1707, 1707, 1705, - 1706, 1710, 1711, 1708, 1712, 1713, 1714, 1715, 1716, 1716, - 1718, 1709, 1713, 1717, 1720, 1708, 1719, 1711, 1721, 1719, - 1717, 1710, 0, 1709, 1718, 1715, 1712, 1720, 1710, 1711, - 1722, 1712, 1713, 1714, 1715, 1716, 1726, 1718, 1723, 1727, - 1717, 1720, 1728, 1719, 1721, 1721, 1724, 1723, 1722, 1725, - 1729, 1724, 1727, 1725, 1730, 1731, 0, 1722, 1732, 1735, - 1726, 1740, 1736, 1726, 1728, 1723, 1727, 1737, 1735, 1728, - 1740, 1746, 1729, 1724, 1741, 1737, 1725, 1729, 1736, 1741, + 1693, 1704, 1691, 1707, 1692, 1695, 1712, 1698, 1698, 1699, + 1703, 1697, 1701, 1709, 1700, 1708, 1704, 1701, 1703, 1710, + 1715, 1707, 1709, 1705, 1714, 0, 1716, 1717, 1704, 1718, + 1707, 1710, 1719, 1712, 1721, 1720, 1722, 1703, 1723, 0, + 1709, 1726, 1718, 1724, 0, 1719, 1710, 1715, 1716, 1729, + 1714, 1714, 1717, 1716, 1717, 1725, 1718, 1720, 1724, 1719, + 1727, 1721, 1720, 1722, 1725, 1723, 1728, 1726, 1726, 1729, + 1724, 1730, 1731, 1732, 1734, 1727, 1729, 1733, 1735, 1731, + 1738, 1728, 1725, 1737, 1733, 1741, 1730, 1727, 1736, 1736, + 1737, 1742, 1744, 1728, 1738, 1732, 1735, 1744, 1730, 1731, - 1739, 1730, 1731, 1742, 1732, 1732, 1735, 1739, 1740, 1736, - 1742, 1743, 1744, 1745, 1737, 1748, 1749, 1746, 1746, 1744, - 1755, 1741, 1745, 1750, 1751, 1752, 1753, 1739, 1757, 1743, - 1742, 1755, 1750, 1756, 1749, 1753, 1754, 1752, 1743, 1744, - 1745, 1756, 1748, 1749, 1751, 1754, 1758, 1755, 1759, 1760, - 1750, 1751, 1752, 1753, 1761, 1757, 1762, 1763, 1760, 1768, - 1756, 1764, 1765, 1754, 1762, 1766, 1761, 1770, 1764, 1765, - 1767, 1769, 1774, 1758, 1772, 0, 1760, 1781, 1775, 1763, - 1759, 1761, 1772, 1762, 1763, 1775, 1768, 1766, 1764, 1765, - 1774, 1780, 1766, 1784, 1770, 1767, 1769, 1767, 1769, 1774, + 1732, 1734, 1746, 1739, 1733, 1735, 1739, 1738, 1740, 1742, + 1737, 1741, 1741, 1743, 1747, 1736, 1745, 1748, 1742, 1744, + 1745, 1740, 1743, 1749, 1750, 1751, 1746, 1747, 1752, 1746, + 1739, 1755, 1757, 1756, 0, 1740, 0, 0, 1758, 1748, + 1743, 1747, 1756, 1745, 1748, 1749, 1758, 1780, 1757, 1760, + 1749, 1750, 1751, 1761, 1752, 1752, 1760, 1755, 1755, 1757, + 1756, 1762, 1761, 1763, 1764, 1758, 1762, 1765, 1766, 1769, + 1763, 1767, 1771, 1773, 1765, 1770, 1760, 1766, 1774, 1780, + 1761, 1771, 1764, 1772, 1778, 1773, 1779, 1774, 1762, 0, + 1763, 1764, 1775, 1770, 1765, 1766, 1769, 1767, 1767, 1771, - 1776, 1772, 1779, 1783, 1781, 1775, 0, 1782, 1776, 1779, - 1785, 1787, 1783, 1788, 1789, 1780, 1792, 1790, 1780, 1782, - 1784, 1794, 1796, 1787, 1795, 1797, 1798, 1776, 1802, 1779, - 1783, 1790, 1795, 1785, 1782, 0, 1788, 1785, 1787, 1805, - 1788, 1789, 1804, 1792, 1790, 1803, 1806, 1797, 1794, 1796, - 1803, 1795, 1797, 1798, 1802, 1802, 1804, 1805, 1807, 1808, - 1810, 1813, 1809, 1812, 1815, 1816, 1805, 1817, 1806, 1804, - 1809, 1807, 1803, 1806, 1814, 1812, 1815, 1818, 1819, 1810, - 1820, 1808, 1822, 1813, 1821, 1807, 1808, 1810, 1813, 1809, - 1812, 1815, 1816, 1824, 1817, 1823, 1814, 1818, 1825, 1826, + 1773, 1775, 1770, 1772, 1776, 1774, 1777, 1781, 1782, 1783, + 1772, 1778, 1788, 1779, 1777, 1776, 1781, 1783, 1784, 1775, + 1782, 1785, 1786, 1789, 1787, 0, 1791, 1790, 1785, 1786, + 1793, 1776, 0, 1777, 1781, 1782, 1783, 1788, 1793, 1788, + 1784, 1795, 1801, 1802, 1805, 1784, 1787, 1810, 1785, 1786, + 1789, 1787, 1790, 1791, 1790, 1796, 1797, 1793, 1800, 1795, + 1803, 1806, 1796, 1808, 1797, 1800, 1801, 1804, 1795, 1801, + 1802, 1805, 1803, 1809, 1810, 1808, 1804, 1811, 1813, 1815, + 1817, 1816, 1796, 1797, 1806, 1800, 1819, 1803, 1806, 1816, + 1808, 1811, 1818, 1824, 1804, 1823, 1809, 1825, 1824, 1826, - 1819, 1814, 1829, 1833, 1818, 1819, 1821, 1823, 1822, 1822, - 1831, 1821, 1820, 1830, 1832, 1824, 1829, 1834, 1830, 1837, - 1824, 1835, 1823, 1840, 1836, 1825, 1826, 1839, 1838, 1829, - 0, 1837, 1831, 1842, 1843, 1833, 1832, 1831, 1840, 0, - 1834, 1832, 1836, 1835, 1834, 1830, 1837, 1838, 1835, 1839, - 1840, 1836, 1845, 1844, 1839, 1838, 1843, 1842, 1846, 1847, - 1842, 1843, 1844, 1848, 1849, 1852, 1845, 1853, 1855, 1857, - 1854, 1859, 1858, 1852, 1853, 1856, 1846, 1847, 1854, 1845, - 1844, 1865, 1849, 1856, 1858, 1846, 1847, 1857, 1862, 1848, - 1848, 1849, 1852, 1860, 1853, 1855, 1857, 1854, 1859, 1858, + 1809, 1827, 1828, 1829, 1811, 1813, 1815, 1817, 1816, 1838, + 1831, 1825, 1830, 1819, 1818, 1828, 1832, 1826, 1831, 1818, + 1824, 1823, 1823, 1827, 1825, 1829, 1826, 1835, 1827, 1828, + 1829, 1830, 1834, 1836, 1837, 1832, 1838, 1831, 1839, 1830, + 1842, 1841, 1840, 1832, 1834, 0, 1837, 1844, 1843, 1835, + 1847, 0, 1845, 1848, 1835, 1836, 1846, 1851, 1852, 1834, + 1836, 1837, 1840, 1841, 1845, 1839, 1854, 1855, 1841, 1840, + 1843, 1851, 1842, 1844, 1844, 1843, 1853, 1847, 1846, 1845, + 1848, 1853, 1852, 1846, 1851, 1852, 1856, 1857, 1854, 1855, + 1858, 0, 1860, 1854, 1855, 1859, 1861, 1865, 1862, 0, - 1862, 1860, 1856, 1864, 1865, 1866, 1867, 1868, 1865, 1869, - 1864, 1871, 1874, 1872, 1881, 1862, 1876, 0, 1878, 1875, - 1860, 1887, 0, 0, 1886, 0, 1868, 1872, 1876, 1871, - 1864, 1869, 1875, 1867, 1868, 1874, 1869, 1866, 1871, 1874, - 1872, 1881, 1883, 1876, 1878, 1878, 1875, 1885, 1887, 1883, - 1886, 1886, 1888, 1889, 1885, 1890, 1891, 1892, 1893, 1894, - 1895, 1896, 1901, 1900, 1897, 1903, 1901, 1893, 1900, 1883, - 0, 1906, 1894, 1902, 1885, 1904, 1888, 1904, 1905, 1888, - 1889, 1890, 1890, 1891, 1892, 1893, 1894, 1897, 1896, 1901, - 1909, 1897, 1895, 0, 1902, 1900, 1910, 1903, 1906, 1915, + 0, 1863, 1867, 0, 1860, 1866, 0, 1871, 1853, 0, + 1857, 1867, 1858, 1859, 1857, 1861, 1863, 1858, 1856, 1860, + 1862, 1865, 1859, 1861, 1865, 1862, 1868, 1866, 1863, 1867, + 1869, 1870, 1866, 1871, 1871, 1875, 1872, 1876, 1877, 1878, + 1868, 1880, 1879, 1875, 1876, 1882, 1877, 0, 1869, 1870, + 1879, 1888, 1883, 1868, 1872, 1881, 1890, 1869, 1870, 1880, + 1883, 1885, 1875, 1872, 1876, 1877, 1878, 1881, 1880, 1879, + 1887, 1889, 1882, 1885, 1888, 1891, 0, 1887, 1888, 1883, + 1894, 1895, 1881, 1890, 1892, 1904, 1897, 1898, 1885, 1899, + 0, 1901, 1906, 1910, 1891, 1895, 1912, 1887, 1894, 1906, - 1902, 1905, 1904, 1913, 1912, 1905, 1912, 1916, 1914, 1914, - 1919, 1918, 1909, 1921, 0, 1917, 1916, 1909, 1914, 1923, - 1910, 1915, 1917, 1910, 1918, 1920, 1915, 1913, 1924, 1927, - 1913, 1912, 1921, 1920, 1916, 1914, 1914, 1919, 1918, 1922, - 1921, 1925, 1917, 1928, 1930, 1923, 1923, 1922, 1926, 1934, - 1928, 1927, 1920, 1931, 1924, 1924, 1927, 1929, 1929, 1926, - 1931, 1935, 1930, 1938, 1936, 1932, 1922, 1925, 1925, 1939, - 1928, 1930, 1932, 1936, 1940, 1926, 1934, 1941, 1944, 1942, - 1931, 1945, 0, 1948, 1929, 1935, 1946, 1944, 1935, 1939, - 1938, 1936, 1932, 1947, 1951, 1948, 1939, 1942, 1949, 1941, + 1898, 1899, 1891, 1889, 1909, 1911, 1892, 1894, 1895, 1897, + 1913, 1892, 1904, 1897, 1898, 1908, 1899, 1901, 1901, 1906, + 1910, 1914, 1908, 1912, 1916, 1917, 1915, 1918, 1919, 1911, + 1909, 1909, 1911, 1927, 1917, 1920, 1913, 1913, 1915, 1924, + 1918, 1921, 1908, 1925, 1924, 1926, 1929, 1925, 1914, 1930, + 0, 1916, 1917, 1915, 1918, 1928, 1933, 1928, 1934, 1937, + 1919, 1937, 1920, 1935, 1921, 1927, 1926, 1938, 1921, 1929, + 1925, 1924, 1926, 1929, 1939, 1939, 1930, 1934, 1933, 1941, + 1943, 1940, 1928, 1933, 1939, 1934, 1937, 1935, 1941, 1942, + 1935, 1938, 1944, 1943, 1938, 1946, 1942, 1945, 0, 1948, - 1950, 1940, 1953, 1949, 1941, 1944, 1942, 1954, 1945, 1946, - 1948, 1947, 1951, 1946, 1950, 1957, 1955, 1957, 1959, 1962, - 1947, 1951, 1963, 0, 1969, 1954, 1964, 1950, 1966, 1953, - 1949, 1955, 1967, 1959, 1954, 1967, 1970, 1975, 1977, 1973, - 1971, 1962, 1957, 1955, 1964, 1959, 1962, 1971, 1963, 1963, - 1966, 1969, 1972, 1964, 1970, 1966, 1976, 1982, 1967, 1967, - 1972, 1973, 1967, 1970, 1978, 1977, 1973, 1971, 1979, 1975, - 1980, 1981, 1984, 1978, 1979, 1983, 1986, 1983, 1976, 1972, - 1981, 1987, 1988, 1976, 1986, 1992, 1989, 1990, 1991, 1982, - 1997, 1978, 1980, 1987, 1995, 1979, 1992, 1980, 1981, 1984, + 0, 1939, 1939, 1940, 1947, 1945, 1941, 1943, 1940, 1949, + 0, 1950, 1947, 0, 1946, 1955, 1942, 1951, 1952, 1944, + 1953, 1959, 1946, 1963, 1945, 1948, 1948, 1953, 1951, 1954, + 1954, 1947, 1956, 1955, 1957, 1949, 1949, 1950, 1950, 1956, + 1952, 1957, 1955, 1960, 1951, 1952, 1961, 1953, 1959, 1964, + 1963, 1965, 1966, 1967, 1969, 1961, 1954, 1970, 0, 1956, + 1971, 1957, 1978, 1969, 1972, 1973, 0, 1960, 2001, 1964, + 1960, 1967, 1975, 1961, 1966, 1976, 1964, 1973, 1965, 1966, + 1967, 1969, 1972, 1971, 1970, 1974, 1975, 1971, 1979, 1978, + 1974, 1972, 1973, 1976, 1980, 1982, 1984, 1982, 1986, 1975, - 1989, 1994, 1983, 1986, 1996, 1996, 1991, 2000, 1987, 1988, - 1990, 1993, 1992, 1989, 1990, 1991, 1995, 1997, 1998, 1993, - 1994, 1995, 2001, 2003, 2005, 2006, 1998, 0, 1994, 2003, - 2009, 1996, 2007, 2010, 2000, 2011, 2006, 2014, 1993, 2011, - 2010, 2017, 2018, 2015, 2019, 1998, 2017, 2012, 2020, 2001, - 2003, 2005, 2006, 2021, 2007, 2012, 2015, 2009, 2022, 2007, - 2010, 2021, 2011, 2014, 2014, 2023, 2020, 2024, 2017, 2018, - 2015, 2019, 2023, 2022, 2012, 2020, 2025, 2030, 2026, 2029, - 2021, 2028, 0, 2031, 2038, 2022, 2029, 2032, 2033, 0, - 2035, 2036, 2023, 2037, 2024, 0, 2028, 2033, 2040, 2042, + 2001, 1990, 1976, 1989, 1986, 1988, 1979, 0, 1995, 1980, + 1993, 1984, 1992, 1993, 0, 1979, 2004, 1974, 1998, 1990, + 1996, 1980, 1982, 1984, 1997, 1986, 1998, 1988, 1990, 1989, + 1989, 1997, 1988, 1999, 1992, 1995, 1993, 1993, 1996, 1992, + 1993, 2002, 2003, 2004, 2005, 1998, 2006, 1996, 2007, 2008, + 2009, 1997, 2006, 2005, 2010, 1999, 2010, 2011, 2008, 2013, + 1999, 2015, 2014, 2002, 2003, 2016, 2019, 2013, 2002, 2003, + 2007, 2005, 2017, 2006, 2014, 2007, 2008, 2019, 2018, 2016, + 2022, 2010, 2009, 2020, 2011, 2021, 2013, 2024, 2015, 2014, + 2027, 2020, 2016, 2019, 2028, 2017, 2018, 2023, 2023, 2017, - 2025, 2037, 2045, 2025, 2026, 2026, 2029, 2049, 2028, 2030, - 2031, 2032, 2035, 2036, 2032, 2033, 2038, 2035, 2036, 2043, - 2037, 2039, 2039, 2046, 2047, 2040, 2042, 2043, 2050, 2045, - 2048, 2039, 2051, 2054, 2049, 2057, 2052, 2047, 2060, 2059, - 2062, 2063, 0, 2057, 2059, 2046, 2043, 2066, 2039, 2039, - 2046, 2047, 2048, 2065, 2063, 2050, 2067, 2048, 2052, 2051, - 2054, 2072, 2057, 2052, 2060, 2060, 2059, 2062, 2063, 2064, - 2071, 2065, 2070, 2073, 2066, 2075, 2064, 2076, 2067, 2077, - 2065, 0, 2075, 2067, 2076, 2070, 2079, 2082, 2072, 2071, - 2078, 2081, 0, 0, 2082, 2073, 2064, 2071, 2085, 2070, + 2025, 2032, 2022, 2030, 2021, 2018, 2036, 2022, 2025, 2030, + 2020, 2033, 2021, 2034, 2024, 2038, 2037, 2027, 2039, 2038, + 2041, 2028, 2033, 2037, 2023, 2045, 2039, 2025, 2032, 2044, + 2030, 2042, 2046, 2036, 2044, 2034, 2047, 2052, 2033, 2058, + 2034, 2048, 2038, 2037, 2042, 2039, 2041, 2041, 2048, 2049, + 2050, 2053, 2045, 2051, 2047, 2054, 2044, 2049, 2042, 2046, + 2051, 2059, 2060, 2047, 2052, 2050, 2057, 2061, 2048, 2056, + 2062, 2058, 2067, 2057, 2069, 2053, 2049, 2050, 2053, 2062, + 2051, 2054, 2054, 2064, 2056, 2065, 2060, 2066, 2059, 2060, + 2068, 2068, 2071, 2057, 2072, 2066, 2056, 2062, 2074, 2061, - 2073, 2077, 2075, 2084, 2076, 2078, 2077, 2079, 2083, 2085, - 2081, 2088, 2084, 2079, 2082, 2083, 2087, 2078, 2081, 2086, - 2086, 2091, 2087, 2093, 2094, 2085, 2095, 2099, 2091, 2086, - 2084, 2101, 2103, 2088, 2105, 2083, 2102, 2102, 2088, 0, - 2109, 0, 0, 2087, 2110, 0, 2086, 2086, 2091, 2095, - 2093, 2094, 2114, 2095, 2099, 2103, 2107, 2106, 2101, 2103, - 2111, 2105, 2115, 2116, 2110, 2102, 2106, 2109, 2113, 2107, - 2114, 2110, 2111, 2117, 2118, 2119, 2120, 2113, 2121, 2114, - 2122, 2123, 2122, 2107, 2106, 2124, 2118, 2111, 2115, 2115, - 2116, 2124, 2125, 2123, 2126, 2113, 2127, 2119, 2128, 2131, + 2068, 2069, 2072, 2076, 2067, 2064, 2075, 2065, 2078, 2077, + 2064, 2079, 2065, 2080, 2066, 2081, 2076, 2068, 2068, 2071, + 2083, 2072, 2088, 2091, 2086, 2074, 2089, 2088, 2075, 2095, + 2076, 2077, 2086, 2075, 0, 2078, 2077, 2081, 2079, 2093, + 2080, 2092, 2081, 2094, 2099, 2096, 2093, 2083, 2100, 2088, + 2091, 2086, 2089, 2089, 2092, 2101, 2095, 2099, 2102, 2103, + 0, 2094, 2105, 2108, 0, 2107, 2093, 2096, 2092, 2105, + 2094, 2099, 2096, 2109, 2101, 2115, 2106, 2111, 2108, 0, + 2100, 2103, 2101, 2106, 2115, 2102, 2103, 2107, 2113, 2105, + 2108, 2112, 2107, 2124, 2109, 2113, 2111, 2116, 2114, 2112, - 2117, 2118, 2119, 2120, 2127, 2134, 2135, 2122, 2123, 2136, - 2121, 2138, 2124, 2139, 2125, 2141, 2126, 2143, 2144, 2125, - 2142, 2126, 2145, 2127, 2149, 2128, 2131, 2152, 2148, 2138, - 2144, 0, 2134, 2135, 2151, 2142, 2136, 2148, 2138, 2153, - 2139, 2154, 2141, 2143, 2143, 2144, 2155, 2142, 2149, 2145, - 2163, 2149, 2153, 2156, 2155, 2148, 2157, 2168, 2151, 2152, - 0, 2151, 2156, 2154, 2166, 2167, 2153, 2157, 2154, 2171, - 2168, 2170, 2167, 2155, 2163, 2170, 2172, 2163, 2174, 2173, - 2156, 2175, 2178, 2157, 2168, 2171, 2174, 2166, 2176, 2180, - 2175, 2166, 2167, 2173, 2178, 2177, 2171, 2177, 2170, 2176, + 2109, 2119, 2115, 2106, 2111, 2114, 2117, 2117, 2116, 2125, + 0, 2118, 2122, 2130, 2126, 2113, 2117, 2118, 2112, 2122, + 2124, 2132, 2134, 2119, 2116, 2114, 2136, 2140, 2119, 2138, + 2141, 2143, 2142, 2117, 2117, 2137, 2125, 2126, 2118, 2122, + 2130, 2126, 2138, 2143, 2137, 2134, 2146, 2148, 2132, 2134, + 2141, 2145, 2149, 2136, 2140, 2142, 2138, 2141, 2143, 2142, + 2145, 2147, 2137, 2150, 2146, 2152, 2153, 2151, 2152, 2154, + 2155, 2157, 2155, 2146, 2148, 2150, 0, 2157, 2145, 2149, + 2158, 2159, 2161, 2152, 2156, 2164, 2167, 2147, 2147, 2151, + 2150, 2160, 2152, 2153, 2151, 2152, 2156, 2155, 2157, 2160, - 2179, 2181, 2172, 2172, 2182, 2174, 2173, 2179, 2175, 2178, - 2183, 2184, 2186, 2187, 2190, 2176, 2180, 2185, 2188, 2181, - 2188, 2189, 2177, 2192, 0, 2200, 0, 2179, 2181, 2191, - 2201, 2182, 2198, 2189, 2186, 2187, 2183, 2183, 2184, 2186, - 2187, 2185, 2191, 2194, 2185, 2188, 2190, 2203, 2189, 2196, - 2192, 2198, 2199, 2202, 2206, 2194, 2191, 2200, 2196, 2198, - 2199, 2203, 2201, 2204, 2207, 2209, 2202, 2206, 2210, 2211, - 2194, 2204, 2208, 2209, 2203, 2213, 2196, 2212, 2214, 2199, - 2202, 2206, 2210, 2211, 2216, 2212, 2217, 2207, 2218, 2223, - 2204, 2207, 2209, 2215, 2208, 2210, 2211, 2213, 0, 2208, + 2168, 2154, 2158, 2159, 2169, 2171, 2172, 2158, 2159, 2161, + 2174, 2156, 2164, 2167, 2175, 2176, 0, 2177, 2160, 2179, + 2182, 2183, 2178, 2171, 2184, 2184, 2175, 2168, 2185, 2182, + 2176, 2169, 2171, 2172, 2178, 2187, 2188, 2174, 2190, 2189, + 0, 2175, 2176, 2177, 2177, 2183, 2179, 2182, 2183, 2178, + 2191, 2184, 2189, 2193, 2185, 2185, 2203, 2199, 2191, 2187, + 2190, 2192, 2187, 2202, 2193, 2190, 2189, 2202, 2188, 2204, + 2192, 2207, 2205, 2208, 0, 2207, 2204, 2191, 2210, 2203, + 2193, 2199, 2209, 2203, 2199, 2205, 2211, 2212, 2192, 2208, + 2202, 0, 2220, 2216, 2213, 2216, 2204, 2214, 2207, 2205, - 2214, 2215, 2213, 2219, 2212, 2214, 2220, 2221, 2222, 2224, - 2230, 2216, 2227, 0, 2218, 2218, 2222, 0, 2217, 2226, - 2215, 2223, 0, 2228, 2232, 2219, 2251, 2226, 2220, 2221, - 2219, 2228, 2227, 2220, 2221, 2222, 2224, 2229, 2232, 2227, - 2231, 2234, 2230, 2235, 2234, 2229, 2226, 2236, 2231, 2237, - 2228, 2232, 2238, 2251, 2239, 2236, 2240, 2237, 2242, 2234, - 2241, 2241, 2244, 0, 2229, 2235, 2238, 2231, 2234, 2243, - 2235, 2234, 2245, 2246, 2236, 0, 2237, 2243, 2240, 2238, - 2239, 2239, 2247, 2240, 2242, 2242, 2248, 2241, 2244, 2244, - 2249, 2250, 2255, 2257, 2248, 2246, 2243, 2254, 2245, 2245, + 2208, 2212, 2213, 2210, 2209, 2210, 2214, 2215, 2218, 2209, + 2217, 2222, 2211, 2211, 2212, 2218, 2219, 2224, 2215, 2220, + 2216, 2213, 2217, 2221, 2214, 2223, 2225, 0, 2226, 2219, + 2227, 2230, 2232, 2230, 2215, 2218, 2226, 2217, 2222, 2228, + 2229, 2221, 0, 2219, 2224, 2234, 2242, 2231, 2245, 2246, + 2221, 2223, 2223, 2225, 2227, 2226, 2233, 2227, 2230, 2231, + 2235, 2228, 2229, 2237, 2232, 2243, 2228, 2229, 2235, 2233, + 2239, 2253, 2234, 2242, 2231, 2237, 2247, 2244, 2249, 2239, + 2245, 2246, 2248, 2233, 2243, 2244, 2249, 2235, 2251, 2247, + 2237, 2255, 2243, 2252, 2253, 2251, 2248, 2239, 2253, 2256, - 2246, 2252, 2247, 2253, 2260, 2254, 0, 2256, 0, 2247, - 2261, 2266, 2249, 2248, 2255, 2256, 2250, 2249, 2250, 2255, - 2257, 2252, 2264, 2253, 2254, 2258, 2260, 2262, 2252, 2269, - 2253, 2260, 2261, 2258, 2256, 2262, 2263, 2261, 2266, 2267, - 2270, 2271, 2268, 2273, 2263, 2274, 0, 2267, 2264, 2264, - 2268, 2275, 2258, 2277, 2262, 2269, 2269, 2280, 2283, 2284, - 0, 2271, 0, 2263, 0, 2281, 2267, 2270, 2271, 2268, - 2273, 2275, 2274, 2281, 2282, 2277, 0, 0, 2275, 2280, - 2277, 0, 2282, 0, 2280, 2283, 2284, 0, 0, 0, - 0, 0, 2281, 0, 0, 0, 0, 0, 0, 0, + 2257, 2260, 2258, 2247, 2244, 2249, 2252, 2256, 2261, 2248, + 2264, 2259, 2262, 2255, 2257, 2251, 2258, 2263, 2255, 2259, + 2252, 2262, 2265, 2260, 2266, 2263, 2256, 2257, 2260, 2258, + 2261, 2267, 2270, 2268, 2269, 2261, 2271, 2264, 2259, 2262, + 2270, 2279, 2272, 2273, 2263, 2276, 0, 0, 0, 2275, + 2266, 2266, 2282, 2267, 2265, 2268, 2269, 2275, 2267, 2270, + 2268, 2269, 2285, 2277, 2272, 2276, 2278, 2280, 2271, 2272, + 2273, 2277, 2276, 2279, 2278, 2280, 2275, 2281, 2282, 2282, + 2284, 0, 2289, 2284, 2285, 2288, 2291, 2286, 2287, 2285, + 2277, 2281, 0, 2278, 2280, 2286, 2287, 2290, 2284, 2288, - 0, 2282, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2289, - 2289, 2289, 2289, 2289, 2289, 2289, 2290, 2290, 2290, 2290, - 2290, 2290, 2290, 2291, 2291, 2291, 2291, 2291, 2291, 2291, - 2292, 2292, 2292, 2292, 2292, 2292, 2292, 2294, 2294, 0, - 2294, 2294, 2294, 2294, 2295, 2295, 0, 0, 0, 2295, - 2295, 2296, 2296, 0, 0, 2296, 0, 2296, 2297, 0, - 0, 0, 0, 0, 2297, 2298, 2298, 0, 0, 0, - 2298, 2298, 2299, 0, 0, 0, 0, 0, 2299, 2300, - 2300, 0, 2300, 2300, 2300, 2300, 2301, 2301, 0, 2301, - 2301, 2301, 2301, 2287, 2287, 2287, 2287, 2287, 2287, 2287, + 2291, 2292, 2292, 2293, 2281, 2295, 2298, 2284, 2289, 2289, + 2284, 2296, 2288, 2291, 2286, 2287, 2300, 2294, 2297, 2290, + 2301, 2302, 2303, 0, 2290, 2294, 2298, 2299, 2292, 2293, + 2293, 2295, 2295, 2298, 2310, 2299, 2304, 2296, 2296, 2305, + 2297, 0, 2301, 2300, 2294, 2297, 2302, 2301, 2302, 2303, + 2306, 2307, 2308, 2313, 2299, 2317, 2304, 2311, 2306, 2305, + 2308, 2310, 2315, 2304, 2314, 2311, 2305, 2319, 2316, 0, + 2315, 2322, 2323, 2307, 2326, 2313, 2316, 2306, 2307, 2308, + 2313, 2317, 2317, 2324, 2311, 2320, 2314, 2327, 2321, 2315, + 2336, 2314, 2337, 2320, 2319, 2316, 2321, 2322, 2322, 2323, + + 2328, 2326, 2330, 2324, 2333, 2334, 0, 0, 2335, 0, + 2324, 0, 2320, 2334, 2327, 2321, 2335, 2336, 0, 2337, + 2328, 0, 0, 0, 2330, 0, 2333, 2328, 0, 2330, + 0, 2333, 2334, 0, 0, 2335, 2341, 2341, 2341, 2341, + 2341, 2341, 2341, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2344, 2344, 2344, + 2344, 2344, 2344, 2344, 2345, 2345, 2345, 2345, 2345, 2345, + 2345, 2347, 2347, 0, 2347, 2347, 2347, 2347, 2348, 2348, + 0, 0, 0, 2348, 2348, 2349, 2349, 0, 0, 2349, + 0, 2349, 2350, 0, 0, 0, 0, 0, 2350, 2351, + + 2351, 0, 0, 0, 2351, 2351, 2352, 0, 0, 0, + 0, 0, 2352, 2353, 2353, 0, 2353, 2353, 2353, 2353, + 2354, 2354, 0, 2354, 2354, 2354, 2354, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, + 2340, 2340, 2340, 2340 - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, - 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287, 2287 } ; static yy_state_type yy_last_accepting_state; @@ -2866,7 +2914,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2868 "<stdout>" +#line 2916 "<stdout>" #define INITIAL 0 #define quotedstring 1 @@ -3089,7 +3137,7 @@ YY_DECL { #line 207 "util/configlexer.lex" -#line 3091 "<stdout>" +#line 3139 "<stdout>" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3122,13 +3170,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 >= 2288 ) + if ( yy_current_state >= 2341 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6594 ); + while ( yy_base[yy_current_state] != 6728 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4187,83 +4235,98 @@ YY_RULE_SETUP case 205: YY_RULE_SETUP #line 424 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 206: YY_RULE_SETUP #line 425 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 207: YY_RULE_SETUP #line 426 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 208: YY_RULE_SETUP #line 427 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 209: YY_RULE_SETUP #line 428 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 210: YY_RULE_SETUP #line 429 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 211: YY_RULE_SETUP #line 430 "util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 212: YY_RULE_SETUP #line 431 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 213: YY_RULE_SETUP #line 432 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 214: -/* rule 214 can match eol */ YY_RULE_SETUP #line 433 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK -/* Quoted strings. Strip leading and ending quotes */ case 215: YY_RULE_SETUP +#line 434 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } + YY_BREAK +case 216: +YY_RULE_SETUP +#line 435 "util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 217: +/* rule 217 can match eol */ +YY_RULE_SETUP #line 436 "util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +/* Quoted strings. Strip leading and ending quotes */ +case 218: +YY_RULE_SETUP +#line 439 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 437 "util/configlexer.lex" +#line 440 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 216: +case 219: YY_RULE_SETUP -#line 442 "util/configlexer.lex" +#line 445 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 217: -/* rule 217 can match eol */ +case 220: +/* rule 220 can match eol */ YY_RULE_SETUP -#line 443 "util/configlexer.lex" +#line 446 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 218: +case 221: YY_RULE_SETUP -#line 445 "util/configlexer.lex" +#line 448 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4276,34 +4339,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 219: +case 222: YY_RULE_SETUP -#line 457 "util/configlexer.lex" +#line 460 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 458 "util/configlexer.lex" +#line 461 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 220: +case 223: YY_RULE_SETUP -#line 463 "util/configlexer.lex" +#line 466 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 221: -/* rule 221 can match eol */ +case 224: +/* rule 224 can match eol */ YY_RULE_SETUP -#line 464 "util/configlexer.lex" +#line 467 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 222: +case 225: YY_RULE_SETUP -#line 466 "util/configlexer.lex" +#line 469 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4316,38 +4379,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 223: +case 226: YY_RULE_SETUP -#line 478 "util/configlexer.lex" +#line 481 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 480 "util/configlexer.lex" +#line 483 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 224: +case 227: YY_RULE_SETUP -#line 484 "util/configlexer.lex" +#line 487 "util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 225: -/* rule 225 can match eol */ +case 228: +/* rule 228 can match eol */ YY_RULE_SETUP -#line 485 "util/configlexer.lex" +#line 488 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 226: +case 229: YY_RULE_SETUP -#line 486 "util/configlexer.lex" +#line 489 "util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 227: +case 230: YY_RULE_SETUP -#line 487 "util/configlexer.lex" +#line 490 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4355,27 +4418,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 492 "util/configlexer.lex" +#line 495 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 228: +case 231: YY_RULE_SETUP -#line 496 "util/configlexer.lex" +#line 499 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 229: -/* rule 229 can match eol */ +case 232: +/* rule 232 can match eol */ YY_RULE_SETUP -#line 497 "util/configlexer.lex" +#line 500 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 230: +case 233: YY_RULE_SETUP -#line 499 "util/configlexer.lex" +#line 502 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4385,7 +4448,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 505 "util/configlexer.lex" +#line 508 "util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4397,33 +4460,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 231: +case 234: YY_RULE_SETUP -#line 516 "util/configlexer.lex" +#line 519 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 232: +case 235: YY_RULE_SETUP -#line 520 "util/configlexer.lex" +#line 523 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 233: +case 236: YY_RULE_SETUP -#line 524 "util/configlexer.lex" +#line 527 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 234: +case 237: YY_RULE_SETUP -#line 528 "util/configlexer.lex" +#line 531 "util/configlexer.lex" ECHO; YY_BREAK -#line 4425 "<stdout>" +#line 4488 "<stdout>" case YY_END_OF_BUFFER: { @@ -4714,7 +4777,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 >= 2288 ) + if ( yy_current_state >= 2341 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4742,11 +4805,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 >= 2288 ) + if ( yy_current_state >= 2341 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 2287); + yy_is_jam = (yy_current_state == 2340); return yy_is_jam ? 0 : yy_current_state; } @@ -5385,7 +5448,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 528 "util/configlexer.lex" +#line 531 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 0c9a4df04298..b7b1ae5e89bb 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -421,6 +421,8 @@ dnscrypt-shared-secret-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } dnscrypt-shared-secret-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +dnscrypt-nonce-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +dnscrypt-nonce-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } 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) } @@ -430,6 +432,7 @@ ipsecmod-strict{COLON} { YDVAR(1, VAR_IPSECMOD_STRICT) } cachedb{COLON} { YDVAR(0, VAR_CACHEDB) } backend{COLON} { YDVAR(1, VAR_CACHEDB_BACKEND) } secret-seed{COLON} { YDVAR(1, VAR_CACHEDB_SECRETSEED) } +udp-upstream-without-downstream{COLON} { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } <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 7829ed8cd2bf..268949e4a143 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -335,15 +335,18 @@ extern int yydebug; VAR_DNSCRYPT_PROVIDER_CERT = 464, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 465, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 466, - VAR_IPSECMOD_ENABLED = 467, - VAR_IPSECMOD_HOOK = 468, - VAR_IPSECMOD_IGNORE_BOGUS = 469, - VAR_IPSECMOD_MAX_TTL = 470, - VAR_IPSECMOD_WHITELIST = 471, - VAR_IPSECMOD_STRICT = 472, - VAR_CACHEDB = 473, - VAR_CACHEDB_BACKEND = 474, - VAR_CACHEDB_SECRETSEED = 475 + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 467, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 468, + VAR_IPSECMOD_ENABLED = 469, + VAR_IPSECMOD_HOOK = 470, + VAR_IPSECMOD_IGNORE_BOGUS = 471, + VAR_IPSECMOD_MAX_TTL = 472, + VAR_IPSECMOD_WHITELIST = 473, + VAR_IPSECMOD_STRICT = 474, + VAR_CACHEDB = 475, + VAR_CACHEDB_BACKEND = 476, + VAR_CACHEDB_SECRETSEED = 477, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 478 }; #endif /* Tokens. */ @@ -556,15 +559,18 @@ extern int yydebug; #define VAR_DNSCRYPT_PROVIDER_CERT 464 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 465 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 466 -#define VAR_IPSECMOD_ENABLED 467 -#define VAR_IPSECMOD_HOOK 468 -#define VAR_IPSECMOD_IGNORE_BOGUS 469 -#define VAR_IPSECMOD_MAX_TTL 470 -#define VAR_IPSECMOD_WHITELIST 471 -#define VAR_IPSECMOD_STRICT 472 -#define VAR_CACHEDB 473 -#define VAR_CACHEDB_BACKEND 474 -#define VAR_CACHEDB_SECRETSEED 475 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 467 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 468 +#define VAR_IPSECMOD_ENABLED 469 +#define VAR_IPSECMOD_HOOK 470 +#define VAR_IPSECMOD_IGNORE_BOGUS 471 +#define VAR_IPSECMOD_MAX_TTL 472 +#define VAR_IPSECMOD_WHITELIST 473 +#define VAR_IPSECMOD_STRICT 474 +#define VAR_CACHEDB 475 +#define VAR_CACHEDB_BACKEND 476 +#define VAR_CACHEDB_SECRETSEED 477 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 478 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -575,7 +581,7 @@ union YYSTYPE char* str; -#line 579 "util/configparser.c" /* yacc.c:355 */ +#line 585 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -592,7 +598,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 596 "util/configparser.c" /* yacc.c:358 */ +#line 602 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -834,21 +840,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 446 +#define YYLAST 452 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 221 +#define YYNTOKENS 224 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 238 +#define YYNNTS 241 /* YYNRULES -- Number of rules. */ -#define YYNRULES 455 +#define YYNRULES 461 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 683 +#define YYNSTATES 692 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 475 +#define YYMAXUTOK 478 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -904,59 +910,60 @@ static const yytype_uint8 yytranslate[] = 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 + 215, 216, 217, 218, 219, 220, 221, 222, 223 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 154, 154, 154, 155, 155, 156, 156, 157, 157, - 157, 159, 160, 164, 169, 170, 171, 171, 171, 172, - 172, 173, 173, 174, 174, 175, 175, 176, 176, 176, - 177, 177, 177, 178, 178, 179, 179, 180, 180, 181, - 181, 182, 182, 183, 183, 184, 184, 185, 185, 186, - 186, 186, 187, 187, 187, 188, 188, 188, 189, 189, - 190, 190, 191, 191, 192, 192, 193, 193, 193, 194, - 194, 195, 195, 196, 196, 196, 197, 197, 198, 198, - 199, 199, 200, 200, 200, 201, 201, 202, 202, 203, - 203, 204, 204, 205, 205, 206, 206, 206, 207, 207, - 208, 208, 208, 209, 209, 209, 210, 210, 210, 211, + 0, 157, 157, 157, 158, 158, 159, 159, 160, 160, + 160, 162, 163, 167, 172, 173, 174, 174, 174, 175, + 175, 176, 176, 177, 177, 178, 178, 179, 179, 179, + 180, 180, 180, 181, 181, 182, 182, 183, 183, 184, + 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, + 189, 189, 190, 190, 190, 191, 191, 191, 192, 192, + 193, 193, 194, 194, 195, 195, 196, 196, 196, 197, + 197, 198, 198, 199, 199, 199, 200, 200, 201, 201, + 202, 202, 203, 203, 203, 204, 204, 205, 205, 206, + 206, 207, 207, 208, 208, 209, 209, 209, 210, 210, 211, 211, 211, 212, 212, 212, 213, 213, 213, 214, - 214, 215, 215, 216, 216, 217, 217, 218, 218, 218, - 219, 219, 220, 220, 221, 222, 222, 223, 223, 224, - 224, 225, 226, 226, 227, 227, 228, 228, 229, 229, - 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, - 234, 234, 235, 235, 235, 236, 236, 236, 237, 237, - 238, 238, 239, 239, 240, 240, 242, 254, 255, 256, - 256, 256, 256, 256, 257, 259, 271, 272, 273, 273, - 273, 273, 274, 276, 290, 291, 292, 292, 292, 292, - 293, 293, 293, 295, 304, 313, 324, 333, 342, 351, - 362, 371, 382, 395, 410, 421, 438, 455, 468, 483, - 492, 501, 510, 519, 528, 537, 546, 555, 564, 573, - 582, 591, 600, 609, 618, 625, 632, 641, 650, 659, - 673, 682, 691, 700, 707, 714, 740, 748, 755, 762, - 769, 776, 784, 792, 800, 807, 818, 825, 834, 843, - 852, 859, 866, 874, 882, 892, 902, 912, 925, 936, - 944, 957, 966, 975, 984, 994, 1004, 1012, 1025, 1034, - 1042, 1051, 1059, 1072, 1081, 1088, 1098, 1108, 1118, 1128, - 1138, 1148, 1158, 1168, 1175, 1182, 1189, 1198, 1207, 1216, - 1223, 1233, 1250, 1257, 1275, 1288, 1301, 1310, 1319, 1328, - 1337, 1347, 1357, 1366, 1375, 1388, 1401, 1410, 1417, 1426, - 1435, 1444, 1453, 1461, 1474, 1482, 1510, 1517, 1532, 1542, - 1552, 1559, 1566, 1575, 1589, 1608, 1627, 1639, 1651, 1663, - 1674, 1693, 1703, 1712, 1720, 1728, 1741, 1754, 1767, 1780, - 1789, 1798, 1808, 1818, 1831, 1844, 1855, 1868, 1879, 1892, - 1902, 1909, 1916, 1925, 1935, 1945, 1955, 1962, 1969, 1978, - 1988, 1998, 2027, 2037, 2045, 2054, 2069, 2078, 2083, 2084, - 2085, 2085, 2085, 2086, 2086, 2086, 2087, 2087, 2089, 2099, - 2108, 2115, 2125, 2132, 2139, 2146, 2153, 2158, 2159, 2160, - 2160, 2161, 2161, 2162, 2162, 2163, 2164, 2165, 2166, 2167, - 2168, 2170, 2178, 2185, 2193, 2201, 2208, 2215, 2224, 2233, - 2242, 2251, 2260, 2269, 2274, 2275, 2276, 2278, 2284, 2294, - 2301, 2310, 2318, 2324, 2325, 2327, 2327, 2327, 2328, 2328, - 2329, 2330, 2332, 2342, 2352, 2359, 2366, 2373, 2381, 2394, - 2399, 2400, 2401, 2401, 2403, 2417 + 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, + 217, 218, 218, 219, 219, 220, 220, 221, 221, 221, + 222, 222, 223, 223, 224, 225, 225, 226, 226, 227, + 227, 228, 229, 229, 230, 230, 231, 231, 232, 232, + 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, + 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, + 241, 241, 242, 242, 243, 243, 244, 246, 258, 259, + 260, 260, 260, 260, 260, 261, 263, 275, 276, 277, + 277, 277, 277, 278, 280, 294, 295, 296, 296, 296, + 296, 297, 297, 297, 299, 308, 317, 328, 337, 346, + 355, 366, 375, 386, 399, 414, 425, 442, 459, 472, + 487, 496, 505, 514, 523, 532, 541, 550, 559, 568, + 577, 586, 595, 604, 613, 622, 631, 638, 645, 654, + 663, 672, 686, 695, 704, 713, 720, 727, 753, 761, + 768, 775, 782, 789, 797, 805, 813, 820, 831, 838, + 847, 856, 865, 872, 879, 887, 895, 905, 915, 925, + 938, 949, 957, 970, 979, 988, 997, 1007, 1017, 1025, + 1038, 1047, 1055, 1064, 1072, 1085, 1094, 1101, 1111, 1121, + 1131, 1141, 1151, 1161, 1171, 1181, 1188, 1195, 1202, 1211, + 1220, 1229, 1236, 1246, 1263, 1270, 1288, 1301, 1314, 1323, + 1332, 1341, 1350, 1360, 1370, 1379, 1388, 1401, 1414, 1423, + 1430, 1439, 1448, 1457, 1466, 1474, 1487, 1495, 1523, 1530, + 1545, 1555, 1565, 1572, 1579, 1588, 1602, 1621, 1640, 1652, + 1664, 1676, 1687, 1706, 1716, 1725, 1733, 1741, 1754, 1767, + 1780, 1793, 1802, 1811, 1821, 1831, 1844, 1857, 1868, 1881, + 1892, 1905, 1915, 1922, 1929, 1938, 1948, 1958, 1968, 1975, + 1982, 1991, 2001, 2011, 2040, 2050, 2058, 2067, 2082, 2091, + 2096, 2097, 2098, 2098, 2098, 2099, 2099, 2099, 2100, 2100, + 2102, 2112, 2121, 2128, 2138, 2145, 2152, 2159, 2166, 2171, + 2172, 2173, 2173, 2174, 2174, 2175, 2175, 2176, 2177, 2178, + 2179, 2180, 2181, 2183, 2191, 2198, 2206, 2214, 2221, 2228, + 2237, 2246, 2255, 2264, 2273, 2282, 2287, 2288, 2289, 2291, + 2297, 2307, 2314, 2323, 2331, 2337, 2338, 2340, 2340, 2340, + 2341, 2341, 2342, 2343, 2344, 2345, 2347, 2357, 2367, 2374, + 2381, 2388, 2396, 2409, 2417, 2430, 2435, 2436, 2437, 2437, + 2439, 2453 }; #endif @@ -1040,18 +1047,19 @@ static const char *const yytname[] = "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", - "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", "VAR_IPSECMOD_ENABLED", - "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL", - "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB", - "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "$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_zone", + "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", + "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", + "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", + "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", + "VAR_CACHEDB", "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", + "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "$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_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", @@ -1059,7 +1067,8 @@ static const char *const yytname[] = "server_outgoing_num_tcp", "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4", "server_do_ip6", "server_do_udp", "server_do_tcp", "server_prefer_ip6", "server_tcp_mss", - "server_outgoing_tcp_mss", "server_tcp_upstream", "server_ssl_upstream", + "server_outgoing_tcp_mss", "server_tcp_upstream", + "server_udp_upstream_without_downstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", "server_use_systemd", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", "server_log_replies", @@ -1138,9 +1147,10 @@ static const char *const yytname[] = "dnsc_dnscrypt_port", "dnsc_dnscrypt_provider", "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_secret_key", "dnsc_dnscrypt_shared_secret_cache_size", - "dnsc_dnscrypt_shared_secret_cache_slabs", "cachedbstart", - "contents_cachedb", "content_cachedb", "cachedb_backend_name", - "cachedb_secret_seed", YY_NULLPTR + "dnsc_dnscrypt_shared_secret_cache_slabs", + "dnsc_dnscrypt_nonce_cache_size", "dnsc_dnscrypt_nonce_cache_slabs", + "cachedbstart", "contents_cachedb", "content_cachedb", + "cachedb_backend_name", "cachedb_secret_seed", YY_NULLPTR }; #endif @@ -1171,14 +1181,14 @@ static const yytype_uint16 yytoknum[] = 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475 + 475, 476, 477, 478 }; # endif -#define YYPACT_NINF -213 +#define YYPACT_NINF -215 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-213))) + (!!((Yystate) == (-215))) #define YYTABLE_NINF -1 @@ -1189,75 +1199,76 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -213, 0, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, 207, -38, -34, -39, -64, -130, -105, -157, - -212, -1, 2, 3, 26, 29, 30, 32, 33, 34, - 35, 36, 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, - 144, 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, 181, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 237, -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, -213, -213, -213, -213, -213, -213, -213, - -213, -213, 238, 239, 240, 244, 245, 246, -213, -213, - -213, -213, -213, -213, -213, 288, 289, 290, 291, 292, - -213, -213, -213, -213, -213, -213, 293, 294, 295, 296, - 300, 304, 305, -213, -213, -213, -213, -213, -213, -213, - -213, 329, 330, 331, 332, 342, 343, 344, 345, -213, - -213, -213, -213, -213, -213, -213, -213, -213, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 389, 391, 401, - -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, 402, -213, -213, 403, 404, 405, 406, - 407, 408, 415, -213, -213, -213, -213, -213, -213, -213, - -213, 416, 417, -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, 418, 419, -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, 420, 421, 422, -213, - -213, -213, -213, -213, -213, -213, -213, -213, 423, 424, - -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, -213, 425, 426, 427, 428, 429, - 430, -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, 431, -213, - -213, 432, 433, -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, 434, 435, 436, -213, -213, -213, -213, - -213, -213, -213 + -215, 0, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 209, -38, -34, -39, -44, -130, -105, -177, + -214, -1, 2, 3, 29, 30, 32, 33, 34, 35, + 36, 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, 144, 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, 181, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 239, 240, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, 241, 242, 246, 247, 248, 290, + -215, -215, -215, -215, -215, -215, -215, 291, 292, 293, + 294, 295, -215, -215, -215, -215, -215, -215, 296, 297, + 298, 302, 306, 307, 331, -215, -215, -215, -215, -215, + -215, -215, -215, 332, 333, 334, 344, 345, 346, 347, + 348, -215, -215, -215, -215, -215, -215, -215, -215, -215, + 349, 350, 351, 352, 353, 354, 355, 356, 391, 393, + 403, 404, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, 405, -215, -215, 406, 407, + 408, 409, 410, 411, 412, 419, 420, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, 421, 423, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, 424, 425, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 426, 427, 428, -215, -215, -215, -215, -215, + -215, -215, -215, -215, 429, 430, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, 431, 432, 433, 434, 435, 436, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, 437, -215, -215, 438, 439, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, 440, 441, 442, -215, -215, -215, -215, -215, + -215, -215 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1265,9 +1276,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 13, 176, 185, 377, 423, 396, 193, - 432, 449, 3, 15, 178, 187, 195, 379, 398, 425, - 434, 451, 4, 5, 6, 10, 8, 9, 7, 11, + 2, 0, 1, 13, 177, 186, 379, 425, 398, 194, + 434, 455, 3, 15, 179, 188, 196, 381, 400, 427, + 436, 457, 4, 5, 6, 10, 8, 9, 7, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1284,114 +1295,117 @@ 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, - 0, 14, 16, 17, 76, 79, 88, 165, 166, 18, - 138, 139, 140, 141, 142, 143, 27, 67, 19, 80, - 81, 38, 60, 75, 20, 21, 23, 24, 22, 25, - 26, 111, 112, 113, 114, 115, 161, 77, 66, 92, - 109, 110, 28, 29, 30, 31, 32, 68, 82, 83, - 98, 54, 64, 55, 169, 93, 48, 49, 168, 50, - 51, 102, 106, 119, 127, 148, 103, 61, 33, 34, - 35, 90, 120, 121, 122, 36, 37, 39, 40, 42, - 43, 41, 125, 44, 45, 46, 52, 71, 107, 85, - 126, 78, 144, 86, 87, 104, 105, 91, 47, 69, - 72, 53, 56, 94, 95, 70, 145, 96, 57, 58, - 59, 108, 158, 159, 167, 97, 65, 99, 100, 101, - 146, 62, 63, 84, 73, 74, 89, 116, 117, 118, - 123, 124, 149, 150, 152, 154, 155, 153, 156, 162, - 128, 129, 132, 133, 130, 131, 134, 135, 137, 136, - 147, 157, 170, 172, 171, 173, 174, 175, 151, 160, - 163, 164, 0, 0, 0, 0, 0, 0, 177, 179, - 180, 181, 183, 184, 182, 0, 0, 0, 0, 0, - 186, 188, 189, 190, 191, 192, 0, 0, 0, 0, - 0, 0, 0, 194, 196, 197, 200, 201, 198, 202, - 199, 0, 0, 0, 0, 0, 0, 0, 0, 378, - 380, 382, 381, 387, 383, 384, 385, 386, 0, 0, + 0, 0, 14, 16, 17, 76, 79, 88, 165, 166, + 18, 138, 139, 140, 141, 142, 143, 27, 67, 19, + 80, 81, 38, 60, 75, 20, 21, 23, 24, 22, + 25, 26, 111, 176, 112, 113, 114, 115, 161, 77, + 66, 92, 109, 110, 28, 29, 30, 31, 32, 68, + 82, 83, 98, 54, 64, 55, 169, 93, 48, 49, + 168, 50, 51, 102, 106, 119, 127, 148, 103, 61, + 33, 34, 35, 90, 120, 121, 122, 36, 37, 39, + 40, 42, 43, 41, 125, 44, 45, 46, 52, 71, + 107, 85, 126, 78, 144, 86, 87, 104, 105, 91, + 47, 69, 72, 53, 56, 94, 95, 70, 145, 96, + 57, 58, 59, 108, 158, 159, 167, 97, 65, 99, + 100, 101, 146, 62, 63, 84, 73, 74, 89, 116, + 117, 118, 123, 124, 149, 150, 152, 154, 155, 153, + 156, 162, 128, 129, 132, 133, 130, 131, 134, 135, + 137, 136, 147, 157, 170, 172, 171, 173, 174, 175, + 151, 160, 163, 164, 0, 0, 0, 0, 0, 0, + 178, 180, 181, 182, 184, 185, 183, 0, 0, 0, + 0, 0, 187, 189, 190, 191, 192, 193, 0, 0, + 0, 0, 0, 0, 0, 195, 197, 198, 201, 202, + 199, 203, 200, 0, 0, 0, 0, 0, 0, 0, + 0, 380, 382, 384, 383, 389, 385, 386, 387, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 397, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 0, 424, 426, 0, 0, 0, 0, - 0, 0, 0, 433, 435, 436, 437, 439, 438, 440, - 441, 0, 0, 450, 452, 453, 204, 203, 210, 219, - 217, 225, 226, 229, 227, 228, 230, 231, 243, 244, - 245, 246, 247, 269, 270, 271, 276, 277, 222, 278, - 279, 282, 280, 281, 284, 285, 286, 299, 257, 258, - 260, 261, 287, 302, 252, 254, 303, 309, 310, 311, - 223, 268, 322, 323, 253, 317, 239, 218, 248, 300, - 306, 288, 0, 0, 326, 224, 205, 238, 292, 206, - 220, 221, 249, 250, 324, 290, 294, 295, 207, 327, - 272, 298, 240, 256, 304, 305, 308, 316, 251, 320, - 318, 319, 262, 267, 296, 297, 263, 264, 289, 312, - 241, 242, 232, 233, 234, 235, 236, 328, 329, 330, - 273, 274, 275, 283, 331, 332, 0, 0, 0, 291, - 265, 428, 341, 345, 343, 342, 346, 344, 0, 0, - 349, 350, 211, 212, 213, 214, 215, 216, 293, 307, - 321, 351, 352, 266, 333, 0, 0, 0, 0, 0, - 0, 313, 314, 315, 429, 259, 255, 237, 208, 209, - 353, 355, 354, 356, 357, 358, 359, 360, 361, 364, - 363, 362, 365, 366, 367, 368, 369, 370, 0, 374, - 375, 0, 0, 376, 388, 390, 389, 392, 393, 394, - 395, 391, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 427, 442, 443, 444, 446, 445, - 447, 448, 454, 455, 301, 325, 340, 430, 431, 347, - 348, 334, 335, 0, 0, 0, 339, 371, 372, 373, - 338, 336, 337 + 0, 0, 399, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 0, 426, 428, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 435, 437, 438, + 439, 441, 440, 442, 443, 444, 445, 0, 0, 456, + 458, 459, 205, 204, 211, 220, 218, 226, 227, 230, + 228, 229, 231, 232, 245, 246, 247, 248, 249, 271, + 272, 273, 278, 279, 223, 280, 281, 284, 282, 283, + 286, 287, 288, 301, 259, 260, 262, 263, 289, 304, + 254, 256, 305, 311, 312, 313, 224, 270, 324, 325, + 255, 319, 241, 219, 250, 302, 308, 290, 0, 0, + 328, 225, 206, 240, 294, 207, 221, 222, 251, 252, + 326, 292, 296, 297, 208, 329, 274, 300, 242, 258, + 306, 307, 310, 318, 253, 322, 320, 321, 264, 269, + 298, 299, 265, 266, 291, 314, 243, 244, 233, 235, + 236, 237, 238, 330, 331, 332, 275, 276, 277, 285, + 333, 334, 0, 0, 0, 293, 267, 430, 343, 347, + 345, 344, 348, 346, 0, 0, 351, 352, 212, 213, + 214, 215, 216, 217, 295, 309, 323, 353, 354, 268, + 335, 0, 0, 0, 0, 0, 0, 315, 316, 317, + 431, 261, 257, 239, 209, 210, 355, 357, 356, 358, + 359, 360, 234, 361, 362, 363, 366, 365, 364, 367, + 368, 369, 370, 371, 372, 0, 376, 377, 0, 0, + 378, 390, 392, 391, 394, 395, 396, 397, 393, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 429, 446, 447, 448, 450, 449, 451, 452, 453, + 454, 460, 461, 303, 327, 342, 432, 433, 349, 350, + 336, 337, 0, 0, 0, 341, 373, 374, 375, 340, + 338, 339 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -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, -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 + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 12, 13, 22, 191, 14, 23, 358, 15, - 24, 370, 16, 25, 383, 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, 345, 346, - 347, 359, 360, 361, 362, 363, 364, 371, 372, 373, - 374, 375, 384, 385, 386, 387, 388, 389, 390, 17, - 26, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 18, 27, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 19, 28, 434, 435, 348, - 349, 350, 351, 20, 29, 443, 444, 445, 446, 447, - 448, 449, 450, 21, 30, 453, 454, 455 + -1, 1, 12, 13, 22, 192, 14, 23, 360, 15, + 24, 372, 16, 25, 385, 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, 345, 346, 347, + 348, 349, 361, 362, 363, 364, 365, 366, 373, 374, + 375, 376, 377, 386, 387, 388, 389, 390, 391, 392, + 17, 26, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 18, 27, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 19, 28, 436, 437, + 350, 351, 352, 353, 20, 29, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 21, 30, 459, 460, + 461 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1399,61 +1413,62 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 376, 352, 433, 353, 354, 365, 451, 452, 456, - 0, 3, 457, 458, 366, 367, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 391, 392, - 393, 394, 395, 396, 397, 398, 459, 377, 378, 460, - 461, 4, 462, 463, 464, 465, 466, 5, 436, 437, - 438, 439, 440, 441, 442, 467, 468, 469, 470, 471, - 472, 473, 379, 474, 475, 355, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 6, 501, 502, 503, 356, 504, 357, 368, 505, - 369, 506, 507, 508, 509, 510, 511, 7, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 380, 381, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 8, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 382, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 9, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 10, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 0, 11, 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, 56, 57, 58, 615, 616, 617, - 618, 59, 60, 61, 619, 620, 621, 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, 100, 101, 102, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 103, 104, 105, - 631, 106, 107, 108, 632, 633, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 634, - 635, 636, 637, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 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, 172, 173, 174, 651, - 175, 652, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 653, 654, 655, 656, 657, 658, 659, 660, 185, - 186, 187, 188, 189, 190, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682 + 2, 378, 354, 435, 355, 356, 367, 457, 458, 462, + 0, 3, 463, 464, 368, 369, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 379, 380, 465, + 466, 4, 467, 468, 469, 470, 471, 5, 393, 394, + 395, 396, 397, 398, 399, 400, 472, 473, 474, 475, + 476, 477, 381, 478, 479, 357, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 6, 505, 506, 507, 358, 508, 359, 370, 509, + 371, 510, 511, 512, 513, 514, 515, 7, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 382, 383, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 8, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 384, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 9, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 10, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 0, + 11, 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, 56, 57, 58, 621, + 622, 623, 624, 59, 60, 61, 625, 626, 627, 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, 100, 101, 102, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 103, + 104, 105, 637, 106, 107, 108, 638, 639, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 640, 641, 642, 643, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 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, 172, 173, + 174, 657, 175, 658, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 185, 186, 187, 188, 189, 190, 669, + 670, 671, 191, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691 }; static const yytype_int16 yycheck[] = { - 0, 40, 40, 108, 42, 43, 40, 219, 220, 10, + 0, 40, 40, 108, 42, 43, 40, 221, 222, 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, 10, 10, 10, 10, 10, 47, 205, 206, - 207, 208, 209, 210, 211, 10, 10, 10, 10, 10, + 150, 151, 152, 153, 154, 155, 156, 157, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 76, 77, 10, + 10, 41, 10, 10, 10, 10, 10, 47, 92, 93, + 94, 95, 96, 97, 98, 99, 10, 10, 10, 10, 10, 10, 101, 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, @@ -1469,40 +1484,41 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 192, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 204, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, -1, 218, 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, 191, 10, - 193, 10, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 10, 10, 10, 10, 10, 10, 10, 10, 212, - 213, 214, 215, 216, 217, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, -1, + 220, 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, + 191, 10, 193, 10, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 214, 215, 216, 217, 218, 219, 10, + 10, 10, 223, 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 222, 0, 11, 41, 47, 91, 107, 145, 192, - 204, 218, 223, 224, 227, 230, 233, 410, 421, 436, - 444, 454, 225, 228, 231, 234, 411, 422, 437, 445, - 455, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 0, 225, 0, 11, 41, 47, 91, 107, 145, 192, + 204, 220, 226, 227, 230, 233, 236, 414, 425, 440, + 448, 460, 228, 231, 234, 237, 415, 426, 441, 449, + 461, 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, 51, 52, 53, 54, 55, 56, 57, @@ -1517,34 +1533,35 @@ static const yytype_uint16 yystos[] = 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, 193, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 212, 213, 214, 215, 216, - 217, 226, 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, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 440, 441, - 442, 443, 40, 42, 43, 103, 133, 135, 229, 392, - 393, 394, 395, 396, 397, 40, 48, 49, 132, 134, - 232, 398, 399, 400, 401, 402, 40, 76, 77, 101, - 159, 160, 194, 235, 403, 404, 405, 406, 407, 408, - 409, 92, 93, 94, 95, 96, 97, 98, 99, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 108, 438, 439, 205, 206, 207, 208, - 209, 210, 211, 446, 447, 448, 449, 450, 451, 452, - 453, 219, 220, 456, 457, 458, 10, 10, 10, 10, + 199, 200, 201, 202, 203, 214, 215, 216, 217, 218, + 219, 223, 229, 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, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 444, 445, 446, 447, 40, 42, 43, 103, 133, 135, + 232, 396, 397, 398, 399, 400, 401, 40, 48, 49, + 132, 134, 235, 402, 403, 404, 405, 406, 40, 76, + 77, 101, 159, 160, 194, 238, 407, 408, 409, 410, + 411, 412, 413, 92, 93, 94, 95, 96, 97, 98, + 99, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 108, 442, 443, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 221, 222, 462, + 463, 464, 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, @@ -1567,58 +1584,59 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 221, 222, 222, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 224, 225, 225, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 227, 228, 228, 229, - 229, 229, 229, 229, 229, 230, 231, 231, 232, 232, - 232, 232, 232, 233, 234, 234, 235, 235, 235, 235, - 235, 235, 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, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 411, - 412, 412, 412, 412, 412, 412, 412, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 422, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 445, 446, 446, 446, 446, 446, - 446, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 455, 456, 456, 457, 458 + 0, 224, 225, 225, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 227, 228, 228, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 230, 231, 231, + 232, 232, 232, 232, 232, 232, 233, 234, 234, 235, + 235, 235, 235, 235, 236, 237, 237, 238, 238, 238, + 238, 238, 238, 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, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 415, 416, 416, 416, 416, 416, 416, 416, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 426, 427, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 427, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 449, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 461, 462, 462, + 463, 464 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1641,11 +1659,10 @@ 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, 2, 0, 1, 1, - 1, 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, + 1, 1, 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, @@ -1654,22 +1671,24 @@ static const yytype_uint8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 3, 4, 4, 4, 3, - 3, 2, 2, 2, 2, 2, 2, 3, 3, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, + 4, 3, 3, 2, 2, 2, 2, 2, 2, 3, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 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, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 0, 1, 1, 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, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, + 2, 2 }; @@ -2346,15 +2365,15 @@ yyreduce: switch (yyn) { case 13: -#line 165 "util/configparser.y" /* yacc.c:1646 */ +#line 168 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(server:)\n")); } -#line 2354 "util/configparser.c" /* yacc.c:1646 */ +#line 2373 "util/configparser.c" /* yacc.c:1646 */ break; - case 176: -#line 243 "util/configparser.y" /* yacc.c:1646 */ + case 177: +#line 247 "util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2365,11 +2384,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2369 "util/configparser.c" /* yacc.c:1646 */ +#line 2388 "util/configparser.c" /* yacc.c:1646 */ break; - case 185: -#line 260 "util/configparser.y" /* yacc.c:1646 */ + case 186: +#line 264 "util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2380,11 +2399,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2384 "util/configparser.c" /* yacc.c:1646 */ +#line 2403 "util/configparser.c" /* yacc.c:1646 */ break; - case 193: -#line 277 "util/configparser.y" /* yacc.c:1646 */ + case 194: +#line 281 "util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2397,11 +2416,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2401 "util/configparser.c" /* yacc.c:1646 */ +#line 2420 "util/configparser.c" /* yacc.c:1646 */ break; - case 203: -#line 296 "util/configparser.y" /* yacc.c:1646 */ + case 204: +#line 300 "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) @@ -2409,11 +2428,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2413 "util/configparser.c" /* yacc.c:1646 */ +#line 2432 "util/configparser.c" /* yacc.c:1646 */ break; - case 204: -#line 305 "util/configparser.y" /* yacc.c:1646 */ + case 205: +#line 309 "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) @@ -2421,11 +2440,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2425 "util/configparser.c" /* yacc.c:1646 */ +#line 2444 "util/configparser.c" /* yacc.c:1646 */ break; - case 205: -#line 314 "util/configparser.y" /* yacc.c:1646 */ + case 206: +#line 318 "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) @@ -2435,11 +2454,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2439 "util/configparser.c" /* yacc.c:1646 */ +#line 2458 "util/configparser.c" /* yacc.c:1646 */ break; - case 206: -#line 325 "util/configparser.y" /* yacc.c:1646 */ + case 207: +#line 329 "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) @@ -2447,11 +2466,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2451 "util/configparser.c" /* yacc.c:1646 */ +#line 2470 "util/configparser.c" /* yacc.c:1646 */ break; - case 207: -#line 334 "util/configparser.y" /* yacc.c:1646 */ + case 208: +#line 338 "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) @@ -2459,11 +2478,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2463 "util/configparser.c" /* yacc.c:1646 */ +#line 2482 "util/configparser.c" /* yacc.c:1646 */ break; - case 208: -#line 343 "util/configparser.y" /* yacc.c:1646 */ + case 209: +#line 347 "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) @@ -2471,11 +2490,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2475 "util/configparser.c" /* yacc.c:1646 */ +#line 2494 "util/configparser.c" /* yacc.c:1646 */ break; - case 209: -#line 352 "util/configparser.y" /* yacc.c:1646 */ + case 210: +#line 356 "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) @@ -2485,11 +2504,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2489 "util/configparser.c" /* yacc.c:1646 */ +#line 2508 "util/configparser.c" /* yacc.c:1646 */ break; - case 210: -#line 363 "util/configparser.y" /* yacc.c:1646 */ + case 211: +#line 367 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2497,11 +2516,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2501 "util/configparser.c" /* yacc.c:1646 */ +#line 2520 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: -#line 372 "util/configparser.y" /* yacc.c:1646 */ + case 212: +#line 376 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2511,11 +2530,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2515 "util/configparser.c" /* yacc.c:1646 */ +#line 2534 "util/configparser.c" /* yacc.c:1646 */ break; - case 212: -#line 383 "util/configparser.y" /* yacc.c:1646 */ + case 213: +#line 387 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2526,11 +2545,11 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2530 "util/configparser.c" /* yacc.c:1646 */ +#line 2549 "util/configparser.c" /* yacc.c:1646 */ break; - case 213: -#line 396 "util/configparser.y" /* yacc.c:1646 */ + case 214: +#line 400 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2544,25 +2563,25 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2548 "util/configparser.c" /* yacc.c:1646 */ +#line 2567 "util/configparser.c" /* yacc.c:1646 */ break; - case 214: -#line 411 "util/configparser.y" /* yacc.c:1646 */ + case 215: +#line 415 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); - OUTYY(("P(Depricated option, ignoring)\n")); + OUTYY(("P(Deprecated option, ignoring)\n")); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif free((yyvsp[0].str)); } -#line 2562 "util/configparser.c" /* yacc.c:1646 */ +#line 2581 "util/configparser.c" /* yacc.c:1646 */ break; - case 215: -#line 422 "util/configparser.y" /* yacc.c:1646 */ + case 216: +#line 426 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -2578,11 +2597,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2582 "util/configparser.c" /* yacc.c:1646 */ +#line 2601 "util/configparser.c" /* yacc.c:1646 */ break; - case 216: -#line 439 "util/configparser.y" /* yacc.c:1646 */ + case 217: +#line 443 "util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -2598,11 +2617,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2602 "util/configparser.c" /* yacc.c:1646 */ +#line 2621 "util/configparser.c" /* yacc.c:1646 */ break; - case 217: -#line 456 "util/configparser.y" /* yacc.c:1646 */ + case 218: +#line 460 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -2614,11 +2633,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2618 "util/configparser.c" /* yacc.c:1646 */ +#line 2637 "util/configparser.c" /* yacc.c:1646 */ break; - case 218: -#line 469 "util/configparser.y" /* yacc.c:1646 */ + case 219: +#line 473 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -2632,11 +2651,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2636 "util/configparser.c" /* yacc.c:1646 */ +#line 2655 "util/configparser.c" /* yacc.c:1646 */ break; - case 219: -#line 484 "util/configparser.y" /* yacc.c:1646 */ + case 220: +#line 488 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2644,11 +2663,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2648 "util/configparser.c" /* yacc.c:1646 */ +#line 2667 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: -#line 493 "util/configparser.y" /* yacc.c:1646 */ + case 221: +#line 497 "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, @@ -2656,11 +2675,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2660 "util/configparser.c" /* yacc.c:1646 */ +#line 2679 "util/configparser.c" /* yacc.c:1646 */ break; - case 221: -#line 502 "util/configparser.y" /* yacc.c:1646 */ + case 222: +#line 506 "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, @@ -2668,11 +2687,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2672 "util/configparser.c" /* yacc.c:1646 */ +#line 2691 "util/configparser.c" /* yacc.c:1646 */ break; - case 222: -#line 511 "util/configparser.y" /* yacc.c:1646 */ + case 223: +#line 515 "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) @@ -2680,11 +2699,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2684 "util/configparser.c" /* yacc.c:1646 */ +#line 2703 "util/configparser.c" /* yacc.c:1646 */ break; - case 223: -#line 520 "util/configparser.y" /* yacc.c:1646 */ + case 224: +#line 524 "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) @@ -2692,11 +2711,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2696 "util/configparser.c" /* yacc.c:1646 */ +#line 2715 "util/configparser.c" /* yacc.c:1646 */ break; - case 224: -#line 529 "util/configparser.y" /* yacc.c:1646 */ + case 225: +#line 533 "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) @@ -2704,11 +2723,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2708 "util/configparser.c" /* yacc.c:1646 */ +#line 2727 "util/configparser.c" /* yacc.c:1646 */ break; - case 225: -#line 538 "util/configparser.y" /* yacc.c:1646 */ + case 226: +#line 542 "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) @@ -2716,11 +2735,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2720 "util/configparser.c" /* yacc.c:1646 */ +#line 2739 "util/configparser.c" /* yacc.c:1646 */ break; - case 226: -#line 547 "util/configparser.y" /* yacc.c:1646 */ + case 227: +#line 551 "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) @@ -2728,11 +2747,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2732 "util/configparser.c" /* yacc.c:1646 */ +#line 2751 "util/configparser.c" /* yacc.c:1646 */ break; - case 227: -#line 556 "util/configparser.y" /* yacc.c:1646 */ + case 228: +#line 560 "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) @@ -2740,11 +2759,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2744 "util/configparser.c" /* yacc.c:1646 */ +#line 2763 "util/configparser.c" /* yacc.c:1646 */ break; - case 228: -#line 565 "util/configparser.y" /* yacc.c:1646 */ + case 229: +#line 569 "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) @@ -2752,11 +2771,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2756 "util/configparser.c" /* yacc.c:1646 */ +#line 2775 "util/configparser.c" /* yacc.c:1646 */ break; - case 229: -#line 574 "util/configparser.y" /* yacc.c:1646 */ + case 230: +#line 578 "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) @@ -2764,11 +2783,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2768 "util/configparser.c" /* yacc.c:1646 */ +#line 2787 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: -#line 583 "util/configparser.y" /* yacc.c:1646 */ + case 231: +#line 587 "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) @@ -2776,11 +2795,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2780 "util/configparser.c" /* yacc.c:1646 */ +#line 2799 "util/configparser.c" /* yacc.c:1646 */ break; - case 231: -#line 592 "util/configparser.y" /* yacc.c:1646 */ + case 232: +#line 596 "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) @@ -2788,11 +2807,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2792 "util/configparser.c" /* yacc.c:1646 */ +#line 2811 "util/configparser.c" /* yacc.c:1646 */ break; - case 232: -#line 601 "util/configparser.y" /* yacc.c:1646 */ + case 233: +#line 605 "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) @@ -2800,11 +2819,23 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2804 "util/configparser.c" /* yacc.c:1646 */ +#line 2823 "util/configparser.c" /* yacc.c:1646 */ break; - case 233: -#line 610 "util/configparser.y" /* yacc.c:1646 */ + case 234: +#line 614 "util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 2835 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 235: +#line 623 "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) @@ -2812,31 +2843,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2816 "util/configparser.c" /* yacc.c:1646 */ +#line 2847 "util/configparser.c" /* yacc.c:1646 */ break; - case 234: -#line 619 "util/configparser.y" /* yacc.c:1646 */ + case 236: +#line 632 "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 2826 "util/configparser.c" /* yacc.c:1646 */ +#line 2857 "util/configparser.c" /* yacc.c:1646 */ break; - case 235: -#line 626 "util/configparser.y" /* yacc.c:1646 */ + case 237: +#line 639 "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 2836 "util/configparser.c" /* yacc.c:1646 */ +#line 2867 "util/configparser.c" /* yacc.c:1646 */ break; - case 236: -#line 633 "util/configparser.y" /* yacc.c:1646 */ + case 238: +#line 646 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2844,11 +2875,11 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2848 "util/configparser.c" /* yacc.c:1646 */ +#line 2879 "util/configparser.c" /* yacc.c:1646 */ break; - case 237: -#line 642 "util/configparser.y" /* yacc.c:1646 */ + case 239: +#line 655 "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) @@ -2856,11 +2887,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2860 "util/configparser.c" /* yacc.c:1646 */ +#line 2891 "util/configparser.c" /* yacc.c:1646 */ break; - case 238: -#line 651 "util/configparser.y" /* yacc.c:1646 */ + case 240: +#line 664 "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) @@ -2868,11 +2899,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2872 "util/configparser.c" /* yacc.c:1646 */ +#line 2903 "util/configparser.c" /* yacc.c:1646 */ break; - case 239: -#line 660 "util/configparser.y" /* yacc.c:1646 */ + case 241: +#line 673 "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) @@ -2885,11 +2916,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2889 "util/configparser.c" /* yacc.c:1646 */ +#line 2920 "util/configparser.c" /* yacc.c:1646 */ break; - case 240: -#line 674 "util/configparser.y" /* yacc.c:1646 */ + case 242: +#line 687 "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) @@ -2897,11 +2928,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2901 "util/configparser.c" /* yacc.c:1646 */ +#line 2932 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: -#line 683 "util/configparser.y" /* yacc.c:1646 */ + case 243: +#line 696 "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) @@ -2909,11 +2940,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2913 "util/configparser.c" /* yacc.c:1646 */ +#line 2944 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: -#line 692 "util/configparser.y" /* yacc.c:1646 */ + case 244: +#line 705 "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) @@ -2921,31 +2952,31 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2925 "util/configparser.c" /* yacc.c:1646 */ +#line 2956 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: -#line 701 "util/configparser.y" /* yacc.c:1646 */ + case 245: +#line 714 "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 2935 "util/configparser.c" /* yacc.c:1646 */ +#line 2966 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: -#line 708 "util/configparser.y" /* yacc.c:1646 */ + case 246: +#line 721 "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 2945 "util/configparser.c" /* yacc.c:1646 */ +#line 2976 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: -#line 715 "util/configparser.y" /* yacc.c:1646 */ + case 247: +#line 728 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -2970,105 +3001,105 @@ yyreduce: } } } -#line 2974 "util/configparser.c" /* yacc.c:1646 */ +#line 3005 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: -#line 741 "util/configparser.y" /* yacc.c:1646 */ + case 248: +#line 754 "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 2985 "util/configparser.c" /* yacc.c:1646 */ +#line 3016 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: -#line 749 "util/configparser.y" /* yacc.c:1646 */ + case 249: +#line 762 "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 2995 "util/configparser.c" /* yacc.c:1646 */ +#line 3026 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: -#line 756 "util/configparser.y" /* yacc.c:1646 */ + case 250: +#line 769 "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 3005 "util/configparser.c" /* yacc.c:1646 */ +#line 3036 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: -#line 763 "util/configparser.y" /* yacc.c:1646 */ + case 251: +#line 776 "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 3015 "util/configparser.c" /* yacc.c:1646 */ +#line 3046 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: -#line 770 "util/configparser.y" /* yacc.c:1646 */ + case 252: +#line 783 "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 3025 "util/configparser.c" /* yacc.c:1646 */ +#line 3056 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: -#line 777 "util/configparser.y" /* yacc.c:1646 */ + case 253: +#line 790 "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 3036 "util/configparser.c" /* yacc.c:1646 */ +#line 3067 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: -#line 785 "util/configparser.y" /* yacc.c:1646 */ + case 254: +#line 798 "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 3047 "util/configparser.c" /* yacc.c:1646 */ +#line 3078 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: -#line 793 "util/configparser.y" /* yacc.c:1646 */ + case 255: +#line 806 "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 3058 "util/configparser.c" /* yacc.c:1646 */ +#line 3089 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: -#line 801 "util/configparser.y" /* yacc.c:1646 */ + case 256: +#line 814 "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 3068 "util/configparser.c" /* yacc.c:1646 */ +#line 3099 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: -#line 808 "util/configparser.y" /* yacc.c:1646 */ + case 257: +#line 821 "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) @@ -3078,21 +3109,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3082 "util/configparser.c" /* yacc.c:1646 */ +#line 3113 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: -#line 819 "util/configparser.y" /* yacc.c:1646 */ + case 258: +#line 832 "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 3092 "util/configparser.c" /* yacc.c:1646 */ +#line 3123 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: -#line 826 "util/configparser.y" /* yacc.c:1646 */ + case 259: +#line 839 "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) @@ -3100,11 +3131,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3104 "util/configparser.c" /* yacc.c:1646 */ +#line 3135 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: -#line 835 "util/configparser.y" /* yacc.c:1646 */ + case 260: +#line 848 "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) @@ -3112,11 +3143,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3116 "util/configparser.c" /* yacc.c:1646 */ +#line 3147 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: -#line 844 "util/configparser.y" /* yacc.c:1646 */ + case 261: +#line 857 "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) @@ -3124,53 +3155,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3128 "util/configparser.c" /* yacc.c:1646 */ +#line 3159 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: -#line 853 "util/configparser.y" /* yacc.c:1646 */ + case 262: +#line 866 "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 3138 "util/configparser.c" /* yacc.c:1646 */ +#line 3169 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: -#line 860 "util/configparser.y" /* yacc.c:1646 */ + case 263: +#line 873 "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 3148 "util/configparser.c" /* yacc.c:1646 */ +#line 3179 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: -#line 867 "util/configparser.y" /* yacc.c:1646 */ + case 264: +#line 880 "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 3159 "util/configparser.c" /* yacc.c:1646 */ +#line 3190 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: -#line 875 "util/configparser.y" /* yacc.c:1646 */ + case 265: +#line 888 "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 3170 "util/configparser.c" /* yacc.c:1646 */ +#line 3201 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: -#line 883 "util/configparser.y" /* yacc.c:1646 */ + case 266: +#line 896 "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) @@ -3179,11 +3210,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3183 "util/configparser.c" /* yacc.c:1646 */ +#line 3214 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: -#line 893 "util/configparser.y" /* yacc.c:1646 */ + case 267: +#line 906 "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) @@ -3192,11 +3223,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3196 "util/configparser.c" /* yacc.c:1646 */ +#line 3227 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: -#line 903 "util/configparser.y" /* yacc.c:1646 */ + case 268: +#line 916 "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) @@ -3205,11 +3236,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3209 "util/configparser.c" /* yacc.c:1646 */ +#line 3240 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: -#line 913 "util/configparser.y" /* yacc.c:1646 */ + case 269: +#line 926 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3221,11 +3252,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3225 "util/configparser.c" /* yacc.c:1646 */ +#line 3256 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: -#line 926 "util/configparser.y" /* yacc.c:1646 */ + case 270: +#line 939 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3235,22 +3266,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3239 "util/configparser.c" /* yacc.c:1646 */ +#line 3270 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: -#line 937 "util/configparser.y" /* yacc.c:1646 */ + case 271: +#line 950 "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 3250 "util/configparser.c" /* yacc.c:1646 */ +#line 3281 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: -#line 945 "util/configparser.y" /* yacc.c:1646 */ + case 272: +#line 958 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3262,11 +3293,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3266 "util/configparser.c" /* yacc.c:1646 */ +#line 3297 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: -#line 958 "util/configparser.y" /* yacc.c:1646 */ + case 273: +#line 971 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3274,11 +3305,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3278 "util/configparser.c" /* yacc.c:1646 */ +#line 3309 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: -#line 967 "util/configparser.y" /* yacc.c:1646 */ + case 274: +#line 980 "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) @@ -3286,11 +3317,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3290 "util/configparser.c" /* yacc.c:1646 */ +#line 3321 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: -#line 976 "util/configparser.y" /* yacc.c:1646 */ + case 275: +#line 989 "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) @@ -3298,11 +3329,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3302 "util/configparser.c" /* yacc.c:1646 */ +#line 3333 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: -#line 985 "util/configparser.y" /* yacc.c:1646 */ + case 276: +#line 998 "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) @@ -3311,11 +3342,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3315 "util/configparser.c" /* yacc.c:1646 */ +#line 3346 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: -#line 995 "util/configparser.y" /* yacc.c:1646 */ + case 277: +#line 1008 "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) @@ -3324,22 +3355,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3328 "util/configparser.c" /* yacc.c:1646 */ +#line 3359 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: -#line 1005 "util/configparser.y" /* yacc.c:1646 */ + case 278: +#line 1018 "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 3339 "util/configparser.c" /* yacc.c:1646 */ +#line 3370 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: -#line 1013 "util/configparser.y" /* yacc.c:1646 */ + case 279: +#line 1026 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3351,11 +3382,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3355 "util/configparser.c" /* yacc.c:1646 */ +#line 3386 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: -#line 1026 "util/configparser.y" /* yacc.c:1646 */ + case 280: +#line 1039 "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) @@ -3363,22 +3394,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3367 "util/configparser.c" /* yacc.c:1646 */ +#line 3398 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: -#line 1035 "util/configparser.y" /* yacc.c:1646 */ + case 281: +#line 1048 "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 3378 "util/configparser.c" /* yacc.c:1646 */ +#line 3409 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: -#line 1043 "util/configparser.y" /* yacc.c:1646 */ + case 282: +#line 1056 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3386,22 +3417,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3390 "util/configparser.c" /* yacc.c:1646 */ +#line 3421 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: -#line 1052 "util/configparser.y" /* yacc.c:1646 */ + case 283: +#line 1065 "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 3401 "util/configparser.c" /* yacc.c:1646 */ +#line 3432 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: -#line 1060 "util/configparser.y" /* yacc.c:1646 */ + case 284: +#line 1073 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3413,11 +3444,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3417 "util/configparser.c" /* yacc.c:1646 */ +#line 3448 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: -#line 1073 "util/configparser.y" /* yacc.c:1646 */ + case 285: +#line 1086 "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) @@ -3425,21 +3456,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3429 "util/configparser.c" /* yacc.c:1646 */ +#line 3460 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: -#line 1082 "util/configparser.y" /* yacc.c:1646 */ + case 286: +#line 1095 "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 3439 "util/configparser.c" /* yacc.c:1646 */ +#line 3470 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: -#line 1089 "util/configparser.y" /* yacc.c:1646 */ + case 287: +#line 1102 "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) @@ -3448,11 +3479,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3452 "util/configparser.c" /* yacc.c:1646 */ +#line 3483 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: -#line 1099 "util/configparser.y" /* yacc.c:1646 */ + case 288: +#line 1112 "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) @@ -3461,11 +3492,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3465 "util/configparser.c" /* yacc.c:1646 */ +#line 3496 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: -#line 1109 "util/configparser.y" /* yacc.c:1646 */ + case 289: +#line 1122 "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) @@ -3474,11 +3505,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3478 "util/configparser.c" /* yacc.c:1646 */ +#line 3509 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: -#line 1119 "util/configparser.y" /* yacc.c:1646 */ + case 290: +#line 1132 "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) @@ -3487,11 +3518,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3491 "util/configparser.c" /* yacc.c:1646 */ +#line 3522 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: -#line 1129 "util/configparser.y" /* yacc.c:1646 */ + case 291: +#line 1142 "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) @@ -3500,11 +3531,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3504 "util/configparser.c" /* yacc.c:1646 */ +#line 3535 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: -#line 1139 "util/configparser.y" /* yacc.c:1646 */ + case 292: +#line 1152 "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) @@ -3513,11 +3544,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3517 "util/configparser.c" /* yacc.c:1646 */ +#line 3548 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: -#line 1149 "util/configparser.y" /* yacc.c:1646 */ + case 293: +#line 1162 "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) @@ -3526,11 +3557,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3530 "util/configparser.c" /* yacc.c:1646 */ +#line 3561 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: -#line 1159 "util/configparser.y" /* yacc.c:1646 */ + case 294: +#line 1172 "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) @@ -3539,41 +3570,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3543 "util/configparser.c" /* yacc.c:1646 */ +#line 3574 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 1169 "util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 1182 "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 3553 "util/configparser.c" /* yacc.c:1646 */ +#line 3584 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 1176 "util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 1189 "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 3563 "util/configparser.c" /* yacc.c:1646 */ +#line 3594 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 1183 "util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 1196 "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 3573 "util/configparser.c" /* yacc.c:1646 */ +#line 3604 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 1190 "util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 1203 "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) @@ -3581,11 +3612,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3585 "util/configparser.c" /* yacc.c:1646 */ +#line 3616 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 1199 "util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 1212 "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) @@ -3593,11 +3624,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3597 "util/configparser.c" /* yacc.c:1646 */ +#line 3628 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 1208 "util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 1221 "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) @@ -3605,21 +3636,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3609 "util/configparser.c" /* yacc.c:1646 */ +#line 3640 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 1217 "util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 1230 "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 3619 "util/configparser.c" /* yacc.c:1646 */ +#line 3650 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 1224 "util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 1237 "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) @@ -3628,11 +3659,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3632 "util/configparser.c" /* yacc.c:1646 */ +#line 3663 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 1234 "util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 1247 "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 && @@ -3648,21 +3679,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 3652 "util/configparser.c" /* yacc.c:1646 */ +#line 3683 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 1251 "util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 1264 "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 3662 "util/configparser.c" /* yacc.c:1646 */ +#line 3693 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 1258 "util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 1271 "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) { @@ -3679,11 +3710,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3683 "util/configparser.c" /* yacc.c:1646 */ +#line 3714 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 1276 "util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1289 "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) { @@ -3695,11 +3726,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3699 "util/configparser.c" /* yacc.c:1646 */ +#line 3730 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 1289 "util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1302 "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) { @@ -3711,11 +3742,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3715 "util/configparser.c" /* yacc.c:1646 */ +#line 3746 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1302 "util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1315 "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) @@ -3723,11 +3754,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3727 "util/configparser.c" /* yacc.c:1646 */ +#line 3758 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1311 "util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1324 "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) @@ -3735,11 +3766,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3739 "util/configparser.c" /* yacc.c:1646 */ +#line 3770 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1320 "util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1333 "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) @@ -3747,11 +3778,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3751 "util/configparser.c" /* yacc.c:1646 */ +#line 3782 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1329 "util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1342 "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) @@ -3759,11 +3790,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3763 "util/configparser.c" /* yacc.c:1646 */ +#line 3794 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1338 "util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1351 "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) @@ -3772,11 +3803,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3776 "util/configparser.c" /* yacc.c:1646 */ +#line 3807 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1348 "util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1361 "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) @@ -3785,11 +3816,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3789 "util/configparser.c" /* yacc.c:1646 */ +#line 3820 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1358 "util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1371 "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) @@ -3797,11 +3828,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3801 "util/configparser.c" /* yacc.c:1646 */ +#line 3832 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1367 "util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1380 "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) @@ -3809,11 +3840,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3813 "util/configparser.c" /* yacc.c:1646 */ +#line 3844 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1376 "util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1389 "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) @@ -3825,11 +3856,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3829 "util/configparser.c" /* yacc.c:1646 */ +#line 3860 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1389 "util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1402 "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) @@ -3841,11 +3872,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3845 "util/configparser.c" /* yacc.c:1646 */ +#line 3876 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1402 "util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1415 "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) @@ -3853,21 +3884,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3857 "util/configparser.c" /* yacc.c:1646 */ +#line 3888 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1411 "util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1424 "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 3867 "util/configparser.c" /* yacc.c:1646 */ +#line 3898 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1418 "util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1431 "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) @@ -3875,11 +3906,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3879 "util/configparser.c" /* yacc.c:1646 */ +#line 3910 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1427 "util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1440 "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) @@ -3887,11 +3918,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3891 "util/configparser.c" /* yacc.c:1646 */ +#line 3922 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1436 "util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1449 "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) @@ -3899,11 +3930,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3903 "util/configparser.c" /* yacc.c:1646 */ +#line 3934 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1445 "util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1458 "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) @@ -3912,22 +3943,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3916 "util/configparser.c" /* yacc.c:1646 */ +#line 3947 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1454 "util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1467 "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 3927 "util/configparser.c" /* yacc.c:1646 */ +#line 3958 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1462 "util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1475 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3939,22 +3970,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3943 "util/configparser.c" /* yacc.c:1646 */ +#line 3974 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1475 "util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1488 "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 3954 "util/configparser.c" /* yacc.c:1646 */ +#line 3985 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1483 "util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1496 "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 && @@ -3981,21 +4012,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 3985 "util/configparser.c" /* yacc.c:1646 */ +#line 4016 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1511 "util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1524 "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 3995 "util/configparser.c" /* yacc.c:1646 */ +#line 4026 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1518 "util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1531 "util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4009,11 +4040,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4013 "util/configparser.c" /* yacc.c:1646 */ +#line 4044 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1533 "util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1546 "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) @@ -4022,11 +4053,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4026 "util/configparser.c" /* yacc.c:1646 */ +#line 4057 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1543 "util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1556 "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) @@ -4035,31 +4066,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4039 "util/configparser.c" /* yacc.c:1646 */ +#line 4070 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1553 "util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1566 "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 4049 "util/configparser.c" /* yacc.c:1646 */ +#line 4080 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1560 "util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1573 "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 4059 "util/configparser.c" /* yacc.c:1646 */ +#line 4090 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1567 "util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1580 "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) @@ -4067,11 +4098,11 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4071 "util/configparser.c" /* yacc.c:1646 */ +#line 4102 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1576 "util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1589 "util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4084,11 +4115,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4088 "util/configparser.c" /* yacc.c:1646 */ +#line 4119 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1590 "util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1603 "util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4106,11 +4137,11 @@ yyreduce: } } } -#line 4110 "util/configparser.c" /* yacc.c:1646 */ +#line 4141 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1609 "util/configparser.y" /* yacc.c:1646 */ + case 337: +#line 1622 "util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4128,11 +4159,11 @@ yyreduce: } } } -#line 4132 "util/configparser.c" /* yacc.c:1646 */ +#line 4163 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1628 "util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1641 "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, @@ -4143,11 +4174,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4147 "util/configparser.c" /* yacc.c:1646 */ +#line 4178 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1640 "util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1653 "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, @@ -4158,11 +4189,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4162 "util/configparser.c" /* yacc.c:1646 */ +#line 4193 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1652 "util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1665 "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, @@ -4173,11 +4204,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4177 "util/configparser.c" /* yacc.c:1646 */ +#line 4208 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1664 "util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1677 "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, @@ -4187,11 +4218,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4191 "util/configparser.c" /* yacc.c:1646 */ +#line 4222 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1675 "util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1688 "util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4209,11 +4240,11 @@ yyreduce: } } } -#line 4213 "util/configparser.c" /* yacc.c:1646 */ +#line 4244 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1694 "util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1707 "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) @@ -4221,11 +4252,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4225 "util/configparser.c" /* yacc.c:1646 */ +#line 4256 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1704 "util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1717 "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) @@ -4233,33 +4264,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4237 "util/configparser.c" /* yacc.c:1646 */ +#line 4268 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1713 "util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1726 "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 4248 "util/configparser.c" /* yacc.c:1646 */ +#line 4279 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1721 "util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1734 "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 4259 "util/configparser.c" /* yacc.c:1646 */ +#line 4290 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1729 "util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1742 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4271,11 +4302,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4275 "util/configparser.c" /* yacc.c:1646 */ +#line 4306 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1742 "util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1755 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4287,11 +4318,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4291 "util/configparser.c" /* yacc.c:1646 */ +#line 4322 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1755 "util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1768 "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) { @@ -4303,11 +4334,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4307 "util/configparser.c" /* yacc.c:1646 */ +#line 4338 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1768 "util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1781 "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) { @@ -4319,11 +4350,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4323 "util/configparser.c" /* yacc.c:1646 */ +#line 4354 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1781 "util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1794 "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) @@ -4331,11 +4362,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4335 "util/configparser.c" /* yacc.c:1646 */ +#line 4366 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1790 "util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1803 "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) @@ -4343,11 +4374,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4347 "util/configparser.c" /* yacc.c:1646 */ +#line 4378 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1799 "util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1812 "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) @@ -4356,11 +4387,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4360 "util/configparser.c" /* yacc.c:1646 */ +#line 4391 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1809 "util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1822 "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) @@ -4369,11 +4400,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" /* yacc.c:1646 */ +#line 4404 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1819 "util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1832 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4385,11 +4416,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4389 "util/configparser.c" /* yacc.c:1646 */ +#line 4420 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1832 "util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1845 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4401,11 +4432,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4405 "util/configparser.c" /* yacc.c:1646 */ +#line 4436 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1845 "util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1858 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4415,11 +4446,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4419 "util/configparser.c" /* yacc.c:1646 */ +#line 4450 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1856 "util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1869 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4431,11 +4462,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4435 "util/configparser.c" /* yacc.c:1646 */ +#line 4466 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1869 "util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1882 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4445,11 +4476,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4449 "util/configparser.c" /* yacc.c:1646 */ +#line 4480 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1880 "util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1893 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4461,11 +4492,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4465 "util/configparser.c" /* yacc.c:1646 */ +#line 4496 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1893 "util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1906 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -4474,31 +4505,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 4478 "util/configparser.c" /* yacc.c:1646 */ +#line 4509 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1903 "util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1916 "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 4488 "util/configparser.c" /* yacc.c:1646 */ +#line 4519 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1910 "util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1923 "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 4498 "util/configparser.c" /* yacc.c:1646 */ +#line 4529 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1917 "util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1930 "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) @@ -4506,11 +4537,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4510 "util/configparser.c" /* yacc.c:1646 */ +#line 4541 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1926 "util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1939 "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) @@ -4519,11 +4550,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4523 "util/configparser.c" /* yacc.c:1646 */ +#line 4554 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1936 "util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1949 "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) @@ -4532,11 +4563,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4536 "util/configparser.c" /* yacc.c:1646 */ +#line 4567 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1946 "util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1959 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -4545,31 +4576,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 4549 "util/configparser.c" /* yacc.c:1646 */ +#line 4580 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1956 "util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1969 "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 4559 "util/configparser.c" /* yacc.c:1646 */ +#line 4590 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1963 "util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1976 "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 4569 "util/configparser.c" /* yacc.c:1646 */ +#line 4600 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1970 "util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1983 "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) @@ -4577,11 +4608,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4581 "util/configparser.c" /* yacc.c:1646 */ +#line 4612 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1979 "util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1992 "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) @@ -4590,11 +4621,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4594 "util/configparser.c" /* yacc.c:1646 */ +#line 4625 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1989 "util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 2002 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -4603,11 +4634,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 4607 "util/configparser.c" /* yacc.c:1646 */ +#line 4638 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1999 "util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 2012 "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 && @@ -4635,11 +4666,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4639 "util/configparser.c" /* yacc.c:1646 */ +#line 4670 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 2028 "util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 2041 "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)); @@ -4648,22 +4679,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 4652 "util/configparser.c" /* yacc.c:1646 */ +#line 4683 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 2038 "util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 2051 "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 4663 "util/configparser.c" /* yacc.c:1646 */ +#line 4694 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 2046 "util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 2059 "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))) { @@ -4671,11 +4702,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4675 "util/configparser.c" /* yacc.c:1646 */ +#line 4706 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 2055 "util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 2068 "util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4689,11 +4720,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4693 "util/configparser.c" /* yacc.c:1646 */ +#line 4724 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 2070 "util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 2083 "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) @@ -4701,19 +4732,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4705 "util/configparser.c" /* yacc.c:1646 */ +#line 4736 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 2079 "util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 2092 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 4713 "util/configparser.c" /* yacc.c:1646 */ +#line 4744 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 2090 "util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 2103 "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) @@ -4722,11 +4753,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4726 "util/configparser.c" /* yacc.c:1646 */ +#line 4757 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 2100 "util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 2113 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4734,21 +4765,21 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4738 "util/configparser.c" /* yacc.c:1646 */ +#line 4769 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 2109 "util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 2122 "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 4748 "util/configparser.c" /* yacc.c:1646 */ +#line 4779 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 2116 "util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 2129 "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) @@ -4757,122 +4788,122 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4761 "util/configparser.c" /* yacc.c:1646 */ +#line 4792 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 2126 "util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 2139 "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 4771 "util/configparser.c" /* yacc.c:1646 */ +#line 4802 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 2133 "util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 2146 "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 4781 "util/configparser.c" /* yacc.c:1646 */ +#line 4812 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 2140 "util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 2153 "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 4791 "util/configparser.c" /* yacc.c:1646 */ +#line 4822 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 2147 "util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 2160 "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 4801 "util/configparser.c" /* yacc.c:1646 */ +#line 4832 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 2154 "util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 2167 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 4809 "util/configparser.c" /* yacc.c:1646 */ +#line 4840 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2171 "util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2184 "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 4820 "util/configparser.c" /* yacc.c:1646 */ +#line 4851 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2179 "util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2192 "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 4830 "util/configparser.c" /* yacc.c:1646 */ +#line 4861 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2186 "util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2199 "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 4841 "util/configparser.c" /* yacc.c:1646 */ +#line 4872 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2194 "util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2207 "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 4852 "util/configparser.c" /* yacc.c:1646 */ +#line 4883 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2202 "util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2215 "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 4862 "util/configparser.c" /* yacc.c:1646 */ +#line 4893 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2209 "util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2222 "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 4872 "util/configparser.c" /* yacc.c:1646 */ +#line 4903 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2216 "util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2229 "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) @@ -4880,11 +4911,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4884 "util/configparser.c" /* yacc.c:1646 */ +#line 4915 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2225 "util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2238 "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) @@ -4892,11 +4923,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4896 "util/configparser.c" /* yacc.c:1646 */ +#line 4927 "util/configparser.c" /* yacc.c:1646 */ break; - case 419: -#line 2234 "util/configparser.y" /* yacc.c:1646 */ + case 421: +#line 2247 "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) @@ -4904,11 +4935,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4908 "util/configparser.c" /* yacc.c:1646 */ +#line 4939 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2243 "util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2256 "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) @@ -4916,11 +4947,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4920 "util/configparser.c" /* yacc.c:1646 */ +#line 4951 "util/configparser.c" /* yacc.c:1646 */ break; - case 421: -#line 2252 "util/configparser.y" /* yacc.c:1646 */ + case 423: +#line 2265 "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) @@ -4928,11 +4959,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4932 "util/configparser.c" /* yacc.c:1646 */ +#line 4963 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2261 "util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2274 "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) @@ -4940,29 +4971,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 4944 "util/configparser.c" /* yacc.c:1646 */ +#line 4975 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2270 "util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2283 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 4952 "util/configparser.c" /* yacc.c:1646 */ +#line 4983 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2279 "util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2292 "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 4962 "util/configparser.c" /* yacc.c:1646 */ +#line 4993 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2285 "util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2298 "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) @@ -4971,21 +5002,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4975 "util/configparser.c" /* yacc.c:1646 */ +#line 5006 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2295 "util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2308 "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 4985 "util/configparser.c" /* yacc.c:1646 */ +#line 5016 "util/configparser.c" /* yacc.c:1646 */ break; - case 430: -#line 2302 "util/configparser.y" /* yacc.c:1646 */ + case 432: +#line 2315 "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)); @@ -4993,31 +5024,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 4997 "util/configparser.c" /* yacc.c:1646 */ +#line 5028 "util/configparser.c" /* yacc.c:1646 */ break; - case 431: -#line 2311 "util/configparser.y" /* yacc.c:1646 */ + case 433: +#line 2324 "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 5008 "util/configparser.c" /* yacc.c:1646 */ +#line 5039 "util/configparser.c" /* yacc.c:1646 */ break; - case 432: -#line 2319 "util/configparser.y" /* yacc.c:1646 */ + case 434: +#line 2332 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5017 "util/configparser.c" /* yacc.c:1646 */ +#line 5048 "util/configparser.c" /* yacc.c:1646 */ break; - case 442: -#line 2333 "util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2348 "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) @@ -5025,11 +5056,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5029 "util/configparser.c" /* yacc.c:1646 */ +#line 5060 "util/configparser.c" /* yacc.c:1646 */ break; - case 443: -#line 2343 "util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2358 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5038,52 +5069,52 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5042 "util/configparser.c" /* yacc.c:1646 */ +#line 5073 "util/configparser.c" /* yacc.c:1646 */ break; - case 444: -#line 2353 "util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2368 "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 5052 "util/configparser.c" /* yacc.c:1646 */ +#line 5083 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2360 "util/configparser.y" /* yacc.c:1646 */ + case 449: +#line 2375 "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 5062 "util/configparser.c" /* yacc.c:1646 */ +#line 5093 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2367 "util/configparser.y" /* yacc.c:1646 */ + case 450: +#line 2382 "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 5072 "util/configparser.c" /* yacc.c:1646 */ +#line 5103 "util/configparser.c" /* yacc.c:1646 */ break; - case 447: -#line 2374 "util/configparser.y" /* yacc.c:1646 */ + case 451: +#line 2389 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5083 "util/configparser.c" /* yacc.c:1646 */ +#line 5114 "util/configparser.c" /* yacc.c:1646 */ break; - case 448: -#line 2382 "util/configparser.y" /* yacc.c:1646 */ + case 452: +#line 2397 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5095,19 +5126,46 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5099 "util/configparser.c" /* yacc.c:1646 */ +#line 5130 "util/configparser.c" /* yacc.c:1646 */ break; - case 449: -#line 2395 "util/configparser.y" /* yacc.c:1646 */ + case 453: +#line 2410 "util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } +#line 5141 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 454: +#line 2418 "util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str)); + if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[0].str)); + } +#line 5157 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 455: +#line 2431 "util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5107 "util/configparser.c" /* yacc.c:1646 */ +#line 5165 "util/configparser.c" /* yacc.c:1646 */ break; - case 454: -#line 2404 "util/configparser.y" /* yacc.c:1646 */ + case 460: +#line 2440 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5120,11 +5178,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5124 "util/configparser.c" /* yacc.c:1646 */ +#line 5182 "util/configparser.c" /* yacc.c:1646 */ break; - case 455: -#line 2418 "util/configparser.y" /* yacc.c:1646 */ + case 461: +#line 2454 "util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5138,11 +5196,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5142 "util/configparser.c" /* yacc.c:1646 */ +#line 5200 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5146 "util/configparser.c" /* yacc.c:1646 */ +#line 5204 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5370,7 +5428,7 @@ yyreturn: #endif return yyresult; } -#line 2432 "util/configparser.y" /* yacc.c:1906 */ +#line 2468 "util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index fe9d6144256d..b2cf94c3865c 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -254,15 +254,18 @@ extern int yydebug; VAR_DNSCRYPT_PROVIDER_CERT = 464, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 465, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 466, - VAR_IPSECMOD_ENABLED = 467, - VAR_IPSECMOD_HOOK = 468, - VAR_IPSECMOD_IGNORE_BOGUS = 469, - VAR_IPSECMOD_MAX_TTL = 470, - VAR_IPSECMOD_WHITELIST = 471, - VAR_IPSECMOD_STRICT = 472, - VAR_CACHEDB = 473, - VAR_CACHEDB_BACKEND = 474, - VAR_CACHEDB_SECRETSEED = 475 + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 467, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 468, + VAR_IPSECMOD_ENABLED = 469, + VAR_IPSECMOD_HOOK = 470, + VAR_IPSECMOD_IGNORE_BOGUS = 471, + VAR_IPSECMOD_MAX_TTL = 472, + VAR_IPSECMOD_WHITELIST = 473, + VAR_IPSECMOD_STRICT = 474, + VAR_CACHEDB = 475, + VAR_CACHEDB_BACKEND = 476, + VAR_CACHEDB_SECRETSEED = 477, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 478 }; #endif /* Tokens. */ @@ -475,15 +478,18 @@ extern int yydebug; #define VAR_DNSCRYPT_PROVIDER_CERT 464 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 465 #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 466 -#define VAR_IPSECMOD_ENABLED 467 -#define VAR_IPSECMOD_HOOK 468 -#define VAR_IPSECMOD_IGNORE_BOGUS 469 -#define VAR_IPSECMOD_MAX_TTL 470 -#define VAR_IPSECMOD_WHITELIST 471 -#define VAR_IPSECMOD_STRICT 472 -#define VAR_CACHEDB 473 -#define VAR_CACHEDB_BACKEND 474 -#define VAR_CACHEDB_SECRETSEED 475 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 467 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 468 +#define VAR_IPSECMOD_ENABLED 469 +#define VAR_IPSECMOD_HOOK 470 +#define VAR_IPSECMOD_IGNORE_BOGUS 471 +#define VAR_IPSECMOD_MAX_TTL 472 +#define VAR_IPSECMOD_WHITELIST 473 +#define VAR_IPSECMOD_STRICT 474 +#define VAR_CACHEDB 475 +#define VAR_CACHEDB_BACKEND 476 +#define VAR_CACHEDB_SECRETSEED 477 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 478 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -494,7 +500,7 @@ union YYSTYPE char* str; -#line 498 "util/configparser.h" /* yacc.c:1909 */ +#line 504 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 7b41b1d767d6..1f72c73b08d8 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -146,9 +146,12 @@ extern struct config_parser_state* cfg_parser; %token VAR_DNSCRYPT_SECRET_KEY VAR_DNSCRYPT_PROVIDER_CERT %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS +%token VAR_DNSCRYPT_NONCE_CACHE_SIZE +%token VAR_DNSCRYPT_NONCE_CACHE_SLABS %token VAR_IPSECMOD_ENABLED VAR_IPSECMOD_HOOK VAR_IPSECMOD_IGNORE_BOGUS %token VAR_IPSECMOD_MAX_TTL VAR_IPSECMOD_WHITELIST VAR_IPSECMOD_STRICT %token VAR_CACHEDB VAR_CACHEDB_BACKEND VAR_CACHEDB_SECRETSEED +%token VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -237,7 +240,8 @@ content_server: server_num_threads | server_verbosity | server_port | 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 + server_ipsecmod_whitelist | server_ipsecmod_strict | + server_udp_upstream_without_downstream ; stubstart: VAR_STUB_ZONE { @@ -411,7 +415,7 @@ server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", $2)); - OUTYY(("P(Depricated option, ignoring)\n")); + OUTYY(("P(Deprecated option, ignoring)\n")); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif @@ -606,6 +610,15 @@ server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG free($2); } ; +server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG + { + OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp($2, "yes")==0); + free($2); + } + ; server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG { OUTYY(("P(server_ssl_upstream:%s)\n", $2)); @@ -2327,7 +2340,9 @@ content_dnsc: dnsc_dnscrypt_enable | dnsc_dnscrypt_port | dnsc_dnscrypt_provider | dnsc_dnscrypt_secret_key | dnsc_dnscrypt_provider_cert | dnsc_dnscrypt_shared_secret_cache_size | - dnsc_dnscrypt_shared_secret_cache_slabs + dnsc_dnscrypt_shared_secret_cache_slabs | + dnsc_dnscrypt_nonce_cache_size | + dnsc_dnscrypt_nonce_cache_slabs ; dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG { @@ -2391,6 +2406,27 @@ dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS free($2); } ; +dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG + { + OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", $2)); + if(!cfg_parse_memsize($2, &cfg_parser->cfg->dnscrypt_nonce_cache_size)) + yyerror("memory size expected"); + free($2); + } + ; +dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG + { + OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi($2); + if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) + yyerror("must be a power of 2"); + } + free($2); + } + ; cachedbstart: VAR_CACHEDB { OUTYY(("\nP(cachedb:)\n")); diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 6d80cce4cb50..ae2fe02b6d7c 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -992,6 +992,9 @@ static int inplace_cb_reply_call_generic( { struct inplace_cb* cb; struct edns_option* opt_list_out = NULL; +#if defined(EXPORT_ALL_SYMBOLS) + (void)type; /* param not used when fptr_ok disabled */ +#endif if(qstate) opt_list_out = qstate->edns_opts_front_out; for(cb=callback_list; cb; cb=cb->next) { diff --git a/util/data/msgreply.h b/util/data/msgreply.h index acbdd3deb61b..b66f344e1521 100644 --- a/util/data/msgreply.h +++ b/util/data/msgreply.h @@ -634,7 +634,7 @@ int inplace_cb_edns_back_parsed_call(struct module_env* env, struct module_qstate* qstate); /** - * Call the registered functions in the inplace_cb_query_reponse linked list. + * Call the registered functions in the inplace_cb_query_response linked list. * This function is going to get called after receiving a reply from a * nameserver. * @param env: module environment. diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c index 81ef487c5877..d3c1a0c06b24 100644 --- a/util/fptr_wlist.c +++ b/util/fptr_wlist.c @@ -233,6 +233,7 @@ fptr_whitelist_hash_sizefunc(lruhash_sizefunc_type fptr) #endif #ifdef USE_DNSCRYPT else if(fptr == &dnsc_shared_secrets_sizefunc) return 1; + else if(fptr == &dnsc_nonces_sizefunc) return 1; #endif return 0; } @@ -249,6 +250,7 @@ fptr_whitelist_hash_compfunc(lruhash_compfunc_type fptr) else if(fptr == &test_slabhash_compfunc) return 1; #ifdef USE_DNSCRYPT else if(fptr == &dnsc_shared_secrets_compfunc) return 1; + else if(fptr == &dnsc_nonces_compfunc) return 1; #endif return 0; } @@ -265,6 +267,7 @@ fptr_whitelist_hash_delkeyfunc(lruhash_delkeyfunc_type fptr) else if(fptr == &test_slabhash_delkey) return 1; #ifdef USE_DNSCRYPT else if(fptr == &dnsc_shared_secrets_delkeyfunc) return 1; + else if(fptr == &dnsc_nonces_delkeyfunc) return 1; #endif return 0; } @@ -283,6 +286,7 @@ fptr_whitelist_hash_deldatafunc(lruhash_deldatafunc_type fptr) #endif #ifdef USE_DNSCRYPT else if(fptr == &dnsc_shared_secrets_deldatafunc) return 1; + else if(fptr == &dnsc_nonces_deldatafunc) return 1; #endif return 0; } diff --git a/util/module.h b/util/module.h index 6e75539d9169..415865c3d8b6 100644 --- a/util/module.h +++ b/util/module.h @@ -416,7 +416,7 @@ struct module_env { /** * 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. + * delete the freshly created sub. * @param newq: the new subquery that is no longer needed. * It is removed. */ @@ -608,6 +608,8 @@ struct module_qstate { int no_cache_lookup; /** whether modules should store answer in the cache */ int no_cache_store; + /** whether to refetch a fresh answer on finishing this state*/ + int need_refetch; /** * Attributes of clients that share the qstate that may affect IP-based diff --git a/util/netevent.c b/util/netevent.c index 771cb6bc7101..5965a2d9aba6 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -1400,7 +1400,7 @@ comm_point_tcp_handle_write(int fd, struct comm_point* c) if (r == -1) { #if defined(EINPROGRESS) && defined(EWOULDBLOCK) /* Handshake is underway, maybe because no TFO cookie available. - Come back to write the messsage*/ + Come back to write the message*/ if(errno == EINPROGRESS || errno == EWOULDBLOCK) return 1; #endif diff --git a/util/shm_side/shm_main.c b/util/shm_side/shm_main.c index c0757ed7cdef..a783c099b5a4 100644 --- a/util/shm_side/shm_main.c +++ b/util/shm_side/shm_main.c @@ -254,6 +254,8 @@ void shm_main_run(struct worker *worker) if(worker->daemon->dnscenv) { shm_stat->mem.dnscrypt_shared_secret = (long long)slabhash_get_mem( worker->daemon->dnscenv->shared_secrets_cache); + shm_stat->mem.dnscrypt_nonce = (long long)slabhash_get_mem( + worker->daemon->dnscenv->nonces_cache); } #endif shm_stat->mem.val = (long long)mod_get_mem(&worker->env, diff --git a/util/storage/slabhash.h b/util/storage/slabhash.h index d00983fc1552..2ecf6fe719a7 100644 --- a/util/storage/slabhash.h +++ b/util/storage/slabhash.h @@ -107,7 +107,7 @@ void slabhash_clear(struct slabhash* table); * But entry->data is set to NULL before deletion, and put into * the existing entry. The data is then freed. * @param data: the data. - * @param cb_override: if not NULL overrides the cb_arg for deletfunc. + * @param cb_override: if not NULL overrides the cb_arg for deletefunc. */ void slabhash_insert(struct slabhash* table, hashvalue_type hash, struct lruhash_entry* entry, void* data, void* cb_override); diff --git a/util/ub_event.h b/util/ub_event.h index 9739e6d833ee..b00a9bf6c264 100644 --- a/util/ub_event.h +++ b/util/ub_event.h @@ -67,7 +67,7 @@ const char* ub_event_get_version(void); /** Return the name, system and method for the pluggable event base */ void ub_get_event_sys(struct ub_event_base*, const char** n, const char** s, const char** m); -/** Return a default event base. In the deamon thess will be the only event +/** Return a default event base. In the daemon this will be the only event * bases used. */ struct ub_event_base* ub_default_event_base(int, time_t*, struct timeval*); |
