From a190fc436f8b3650bee31b5b8bc37a800369572a Mon Sep 17 00:00:00 2001 From: "Kim B. Heino" Date: Tue, 9 Mar 2021 11:03:54 +0200 Subject: [PATCH 001/156] unbound_munin_: remove trailing white space --- contrib/unbound_munin_ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index defca291c..3161f25e9 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -126,7 +126,7 @@ get_state ( ) { # obtain lock for fetching the state # because there is a race condition in fetching and writing to file - # see if the lock is stale, if so, take it + # see if the lock is stale, if so, take it if test -f $lock ; then pid="`cat $lock 2>&1`" kill -0 "$pid" >/dev/null 2>&1 From e1caa764b889b0d42b417866338174f3091473b3 Mon Sep 17 00:00:00 2001 From: "Kim B. Heino" Date: Tue, 9 Mar 2021 11:09:45 +0200 Subject: [PATCH 002/156] unbound_munin_: use Munin's helper script to detect state file location --- contrib/unbound_munin_ | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index 3161f25e9..6956d09a4 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -14,7 +14,6 @@ # Run the command unbound-control-setup to generate the key files. # # Environment variables for this script -# statefile - where to put temporary statefile. # unbound_conf - where the unbound.conf file is located. # unbound_control - where to find unbound-control executable. # spoof_warn - what level to warn about spoofing @@ -24,7 +23,6 @@ # with: # [unbound*] # user root -# env.statefile /usr/local/var/munin/plugin-state/unbound-state # env.unbound_conf /usr/local/etc/unbound/unbound.conf # env.unbound_control /usr/local/sbin/unbound-control # env.spoof_warn 1000 @@ -66,7 +64,6 @@ System with unbound daemon. [unbound*] user root - env.statefile /usr/local/var/munin/plugin-state/unbound-state env.unbound_conf /usr/local/etc/unbound/unbound.conf env.unbound_control /usr/local/sbin/unbound-control env.spoof_warn 1000 @@ -98,7 +95,8 @@ BSD =cut -state=${statefile:-/usr/local/var/munin/plugin-state/unbound-state} +. ${MUNIN_LIBDIR}/plugins/plugin.sh +state="${MUNIN_PLUGSTATE}/unbound.state" conf=${unbound_conf:-/usr/local/etc/unbound/unbound.conf} ctrl=${unbound_control:-/usr/local/sbin/unbound-control} warn=${spoof_warn:-1000} From 69e215b6301ea23a8b9217497c61a4401746777d Mon Sep 17 00:00:00 2001 From: "Kim B. Heino" Date: Tue, 9 Mar 2021 12:03:51 +0200 Subject: [PATCH 003/156] unbound_munin: fix statistics after unbound restart / server reboot "unbound-control stats" lists only query types that has been seen after unbound restart. Munin requires list of all types ever seen, or the generated graphs are mostly empty after restart. Fix this by adding a state file with list of seen query types etc. --- contrib/unbound_munin_ | 46 ++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index 6956d09a4..d4660f4b4 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -97,6 +97,7 @@ BSD . ${MUNIN_LIBDIR}/plugins/plugin.sh state="${MUNIN_PLUGSTATE}/unbound.state" +seentags="${MUNIN_PLUGSTATE}/unbound-seentags.state" conf=${unbound_conf:-/usr/local/etc/unbound/unbound.conf} ctrl=${unbound_control:-/usr/local/sbin/unbound-control} warn=${spoof_warn:-1000} @@ -119,6 +120,18 @@ get_value ( ) { fi } +# Update list of seen query types etc to seentags file. This is run while +# holding the lock, after the state file is updated. +update_seentags() { + tmplist="$(cat ${seentags} 2> /dev/null) +num.query.type.A +num.query.class.IN +num.query.opcode.QUERY +num.answer.rcode.NOERROR +" + (echo "${tmplist}"; grep ^num ${state} | sed -e 's/=.*//') | sort -u > ${seentags} +} + # download the state from the unbound server. get_state ( ) { # obtain lock for fetching the state @@ -166,6 +179,7 @@ get_state ( ) { rm -f $lock exit 1 fi + update_seentags rm -f $lock } @@ -282,8 +296,7 @@ if test "$1" = "config" ; then echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" echo "graph_category DNS" - for x in `grep "^num.query.type" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + for nm in `grep "^num.query.type" $seentags`; do tp=`echo $nm | sed -e s/num.query.type.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -295,8 +308,7 @@ if test "$1" = "config" ; then echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" echo "graph_category DNS" - for x in `grep "^num.query.class" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + for nm in `grep "^num.query.class" $seentags`; do tp=`echo $nm | sed -e s/num.query.class.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -308,8 +320,7 @@ if test "$1" = "config" ; then echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" echo "graph_category DNS" - for x in `grep "^num.query.opcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + for nm in `grep "^num.query.opcode" $seentags`; do tp=`echo $nm | sed -e s/num.query.opcode.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -321,8 +332,7 @@ if test "$1" = "config" ; then echo "graph_vlabel answer packets / \${graph_period}" echo "graph_scale no" echo "graph_category DNS" - for x in `grep "^num.answer.rcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` + for nm in `grep "^num.answer.rcode" $seentags`; do tp=`echo $nm | sed -e s/num.answer.rcode.//` p_config "$nm" "$tp" "ABSOLUTE" done @@ -465,27 +475,23 @@ memory) done ;; by_type) - for x in `grep "^num.query.type" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.type" $seentags`; do + print_value $nm done ;; by_class) - for x in `grep "^num.query.class" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.class" $seentags`; do + print_value $nm done ;; by_opcode) - for x in `grep "^num.query.opcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.query.opcode" $seentags`; do + print_value $nm done ;; by_rcode) - for x in `grep "^num.answer.rcode" $state`; do - nm=`echo $x | sed -e 's/=.*$//'` - print_value_line $nm $x + for nm in `grep "^num.answer.rcode" $seentags`; do + print_value $nm $x done print_value "num.answer.secure" print_value "num.answer.bogus" From 534a1a42c92f32c94ec478f1a74e4b5e22c2eb45 Mon Sep 17 00:00:00 2001 From: "Kim B. Heino" Date: Tue, 9 Mar 2021 12:20:55 +0200 Subject: [PATCH 004/156] unbound_munin: Munin categories are lower case --- contrib/unbound_munin_ | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index d4660f4b4..82e6d1522 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -244,7 +244,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for x in `grep "^thread[0-9][0-9]*\.num\.queries=" $state | sed -e 's/=.*//'`; do exist_config $x "queries handled by `basename $x .num.queries`" @@ -268,7 +268,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel number of queries" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" p_config "total.requestlist.avg" "Average size of queue on insert" "GAUGE" p_config "total.requestlist.max" "Max size of queue (in 5 min)" "GAUGE" p_config "total.requestlist.overwritten" "Number of queries replaced by new ones" "GAUGE" @@ -279,7 +279,7 @@ if test "$1" = "config" ; then echo "graph_title Unbound memory usage" echo "graph_args --base 1024 -l 0" echo "graph_vlabel memory used in bytes" - echo "graph_category DNS" + echo "graph_category dns" p_config "mem.cache.rrset" "RRset cache memory" "GAUGE" p_config "mem.cache.message" "Message cache memory" "GAUGE" p_config "mem.mod.iterator" "Iterator module memory" "GAUGE" @@ -295,7 +295,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for nm in `grep "^num.query.type" $seentags`; do tp=`echo $nm | sed -e s/num.query.type.//` p_config "$nm" "$tp" "ABSOLUTE" @@ -307,7 +307,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for nm in `grep "^num.query.class" $seentags`; do tp=`echo $nm | sed -e s/num.query.class.//` p_config "$nm" "$tp" "ABSOLUTE" @@ -319,7 +319,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for nm in `grep "^num.query.opcode" $seentags`; do tp=`echo $nm | sed -e s/num.query.opcode.//` p_config "$nm" "$tp" "ABSOLUTE" @@ -331,7 +331,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel answer packets / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" for nm in `grep "^num.answer.rcode" $seentags`; do tp=`echo $nm | sed -e s/num.answer.rcode.//` p_config "$nm" "$tp" "ABSOLUTE" @@ -346,7 +346,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" p_config "num.query.flags.QR" "QR (query reply) flag" "ABSOLUTE" p_config "num.query.flags.AA" "AA (auth answer) flag" "ABSOLUTE" p_config "num.query.flags.TC" "TC (truncated) flag" "ABSOLUTE" @@ -364,7 +364,7 @@ if test "$1" = "config" ; then echo "graph_args --base 1000 -l 0" echo "graph_vlabel queries / \${graph_period}" echo "graph_scale no" - echo "graph_category DNS" + echo "graph_category dns" echo hcache.label "cache hits" echo hcache.min 0 echo hcache.type ABSOLUTE From 0f804f1b562fd03cf3d4fe4019062915180ffd41 Mon Sep 17 00:00:00 2001 From: Sven Date: Sat, 20 Mar 2021 14:28:10 +0100 Subject: [PATCH 005/156] Update unbound-control.8.in, fix rpz_disable typo --- doc/unbound-control.8.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/unbound-control.8.in b/doc/unbound-control.8.in index 20325abf2..dad840cf5 100644 --- a/doc/unbound-control.8.in +++ b/doc/unbound-control.8.in @@ -308,7 +308,7 @@ serial check). And then the zone is transferred for a newer zone version. .B rpz_enable \fIzone\fR Enable the RPZ zone if it had previously been disabled. .TP -.B rpz_enable \fIzone\fR +.B rpz_disable \fIzone\fR Disable the RPZ zone. .TP .B view_list_local_zones \fIview\fR From 0efccaa1eb330a970812070ebc8eef19b47a4023 Mon Sep 17 00:00:00 2001 From: Felipe Gasper Date: Mon, 19 Apr 2021 13:05:50 -0400 Subject: [PATCH 006/156] Support OpenSSLs that lack SSL_get0_alpn_selected. --- configure.ac | 2 +- util/netevent.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 43286e2b9..ba5bf0058 100644 --- a/configure.ac +++ b/configure.ac @@ -859,7 +859,7 @@ AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_C # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ diff --git a/util/netevent.c b/util/netevent.c index a7c4a306a..ede19726a 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -1314,6 +1314,7 @@ ssl_handshake(struct comm_point* c) c->repinfo.addrlen); } +#ifdef HAVE_SSL_GET0_ALPN_SELECTED /* check if http2 use is negotiated */ if(c->type == comm_http && c->h2_session) { const unsigned char *alpn; @@ -1325,6 +1326,7 @@ ssl_handshake(struct comm_point* c) c->use_h2 = 1; } } +#endif /* setup listen rw correctly */ if(c->tcp_is_reading) { From 75875d4d1c4c5d110680da45236d80d84c5d1ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Wed, 21 Apr 2021 13:50:45 +0100 Subject: [PATCH 007/156] Allow configuration of persistent TCP connections Added 2 new options to configure previously hardcoded values: max-reuse-tcp-queries and tcp-reuse-timeout. These allow fine-grained control over how unbound uses persistent TCP connections to authority servers. --- daemon/worker.c | 3 +- doc/example.conf.in | 4 + doc/unbound.conf.5.in | 9 + libunbound/libworker.c | 3 +- services/outside_network.c | 20 +- services/outside_network.h | 13 +- testcode/fake_event.c | 3 +- util/config_file.c | 6 + util/config_file.h | 4 + util/configlexer.c | 5208 ++++++++++++++++++------------------ util/configlexer.lex | 2 + util/configparser.c | 4782 ++++++++++++++------------------- util/configparser.h | 839 +++--- util/configparser.y | 28 +- 14 files changed, 5197 insertions(+), 5727 deletions(-) diff --git a/daemon/worker.c b/daemon/worker.c index 7bd64bce4..b560e4493 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1794,7 +1794,8 @@ worker_init(struct worker* worker, struct config_file *cfg, &worker_alloc_cleanup, worker, cfg->do_udp || cfg->udp_upstream_without_downstream, worker->daemon->connect_sslctx, cfg->delay_close, - cfg->tls_use_sni, dtenv, cfg->udp_connect); + cfg->tls_use_sni, dtenv, cfg->udp_connect, + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout); if(!worker->back) { log_err("could not create outgoing sockets"); worker_delete(worker); diff --git a/doc/example.conf.in b/doc/example.conf.in index 82b652f8a..17b1b7741 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -901,6 +901,10 @@ server: # ipsecmod-allow: "example.com" # ipsecmod-allow: "nlnetlabs.nl" + # Timeout for REUSE entries in milliseconds. + # tcp-reuse-timeout: 60000 + # Max number of queries on a reuse connection. + # max-reuse-tcp-queries: 200 # Python config section. To enable: # o use --with-pythonmodule to configure before compiling. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 00c1191be..e58d3533a 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -451,6 +451,15 @@ total number configured, and finally to 0 if the number of free buffers falls below 20% of the total number configured. A minimum timeout of 200 milliseconds is observed regardless of the option value used. .TP +.B tcp-reuse-timeout: \fI\fR +The period Unbound will keep TCP persistent connections open to +authority servers. This option defaults to 60000 milliseconds. +.TP +.B max-reuse-tcp-queries: \fI\fR +The maximum number of queries that can be sent on a persistent TCP +connection. +This option defaults to 200 queries. +.TP .B edns-tcp-keepalive: \fI\fR Enable or disable EDNS TCP Keepalive. Default is no. .TP diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 2b7f7a1e4..0c43a4110 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -241,7 +241,8 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct ub_event_base* eb) ports, numports, cfg->unwanted_threshold, cfg->outgoing_tcp_mss, &libworker_alloc_cleanup, w, cfg->do_udp || cfg->udp_upstream_without_downstream, w->sslctx, - cfg->delay_close, cfg->tls_use_sni, NULL, cfg->udp_connect); + cfg->delay_close, cfg->tls_use_sni, NULL, cfg->udp_connect, + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout); w->env->outnet = w->back; if(!w->is_bg || w->is_bg_thread) { lock_basic_unlock(&ctx->cfglock); diff --git a/services/outside_network.c b/services/outside_network.c index d5340d8c2..353809759 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -514,7 +514,7 @@ reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr, while(result && result != RBTREE_NULL && reuse_cmp_addrportssl(result->key, &key_p.reuse) == 0) { if(((struct reuse_tcp*)result)->tree_by_id.count < - MAX_REUSE_TCP_QUERIES) { + outnet->max_reuse_tcp_queries) { /* same address, port, ssl-yes-or-no, and has * space for another query */ return (struct reuse_tcp*)result; @@ -1012,22 +1012,22 @@ static void reuse_cb_and_decommission(struct outside_network* outnet, /** set timeout on tcp fd and setup read event to catch incoming dns msgs */ static void -reuse_tcp_setup_timeout(struct pending_tcp* pend_tcp) +reuse_tcp_setup_timeout(struct pending_tcp* pend_tcp, int tcp_reuse_timeout) { log_reuse_tcp(VERB_CLIENT, "reuse_tcp_setup_timeout", &pend_tcp->reuse); - comm_point_start_listening(pend_tcp->c, -1, REUSE_TIMEOUT); + comm_point_start_listening(pend_tcp->c, -1, tcp_reuse_timeout); } /** set timeout on tcp fd and setup read event to catch incoming dns msgs */ static void -reuse_tcp_setup_read_and_timeout(struct pending_tcp* pend_tcp) +reuse_tcp_setup_read_and_timeout(struct pending_tcp* pend_tcp, int tcp_reuse_timeout) { log_reuse_tcp(VERB_CLIENT, "reuse_tcp_setup_readtimeout", &pend_tcp->reuse); sldns_buffer_clear(pend_tcp->c->buffer); pend_tcp->c->tcp_is_reading = 1; pend_tcp->c->tcp_byte_count = 0; comm_point_stop_listening(pend_tcp->c); - comm_point_start_listening(pend_tcp->c, -1, REUSE_TIMEOUT); + comm_point_start_listening(pend_tcp->c, -1, tcp_reuse_timeout); } int @@ -1083,7 +1083,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, pend->reuse.cp_more_write_again = 0; pend->c->tcp_is_reading = 1; comm_point_stop_listening(pend->c); - reuse_tcp_setup_timeout(pend); + reuse_tcp_setup_timeout(pend, outnet->tcp_reuse_timeout); } return 0; } else if(error != NETEVENT_NOERROR) { @@ -1136,7 +1136,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, * and there could be more bytes to read on the input */ if(pend->reuse.tree_by_id.count != 0) pend->reuse.cp_more_read_again = 1; - reuse_tcp_setup_read_and_timeout(pend); + reuse_tcp_setup_read_and_timeout(pend, outnet->tcp_reuse_timeout); return 0; } verbose(VERB_CLIENT, "outnet_tcp_cb reuse after cb: decommission it"); @@ -1404,7 +1404,7 @@ outside_network_create(struct comm_base *base, size_t bufsize, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env* dtenv, - int udp_connect) + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout) { struct outside_network* outnet = (struct outside_network*) calloc(1, sizeof(struct outside_network)); @@ -1416,6 +1416,8 @@ outside_network_create(struct comm_base *base, size_t bufsize, comm_base_timept(base, &outnet->now_secs, &outnet->now_tv); outnet->base = base; outnet->num_tcp = num_tcp; + outnet->max_reuse_tcp_queries = max_reuse_tcp_queries; + outnet->tcp_reuse_timeout= tcp_reuse_timeout; outnet->num_tcp_outgoing = 0; outnet->infra = infra; outnet->rnd = rnd; @@ -2443,7 +2445,7 @@ reuse_tcp_remove_serviced_keep(struct waiting_tcp* w, if(!reuse_tcp_insert(sq->outnet, pend_tcp)) { return 0; } - reuse_tcp_setup_timeout(pend_tcp); + reuse_tcp_setup_timeout(pend_tcp, sq->outnet->tcp_reuse_timeout); return 1; } return 0; diff --git a/services/outside_network.h b/services/outside_network.h index 233588d40..58ab8b262 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -158,6 +158,10 @@ struct outside_network { size_t num_tcp; /** number of tcp communication points in use. */ size_t num_tcp_outgoing; + /** max number of queries on a reuse connection */ + int max_reuse_tcp_queries; + /** timeout for REUSE entries in milliseconds. */ + int tcp_reuse_timeout; /** * tree of still-open and waiting tcp connections for reuse. * can be closed and reopened to get a new tcp connection. @@ -295,11 +299,6 @@ struct reuse_tcp { struct outside_network* outnet; }; -/** max number of queries on a reuse connection */ -#define MAX_REUSE_TCP_QUERIES 200 -/** timeout for REUSE entries in milliseconds. */ -#define REUSE_TIMEOUT 60000 - /** * A query that has an answer pending for it. */ @@ -540,6 +539,8 @@ struct serviced_query { * @param tls_use_sni: if SNI is used for TLS connections. * @param dtenv: environment to send dnstap events with (if enabled). * @param udp_connect: if the udp_connect option is enabled. + * @param max_reuse_tcp_queries: max number of queries on a reuse connection. + * @param tcp_reuse_timeout: timeout for REUSE entries in milliseconds. * @return: the new structure (with no pending answers) or NULL on error. */ struct outside_network* outside_network_create(struct comm_base* base, @@ -549,7 +550,7 @@ struct outside_network* outside_network_create(struct comm_base* base, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env *dtenv, - int udp_connect); + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout); /** * Delete outside_network structure. diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 3ff933928..d0bd14ecb 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -1046,7 +1046,8 @@ outside_network_create(struct comm_base* base, size_t bufsize, void (*unwanted_action)(void*), void* ATTR_UNUSED(unwanted_param), int ATTR_UNUSED(do_udp), void* ATTR_UNUSED(sslctx), int ATTR_UNUSED(delayclose), int ATTR_UNUSED(tls_use_sni), - struct dt_env* ATTR_UNUSED(dtenv), int ATTR_UNUSED(udp_connect)) + struct dt_env* ATTR_UNUSED(dtenv), int ATTR_UNUSED(udp_connect), + int ATTR_UNUSED(max_reuse_tcp_queries), int ATTR_UNUSED(tcp_reuse_timeout)) { struct replay_runtime* runtime = (struct replay_runtime*)base; struct outside_network* outnet = calloc(1, diff --git a/util/config_file.c b/util/config_file.c index 171251f67..938f6748e 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -105,6 +105,8 @@ config_create(void) cfg->do_ip6 = 1; cfg->do_udp = 1; cfg->do_tcp = 1; + cfg->tcp_reuse_timeout = 60 * 1000; /* 60s in milisecs */ + cfg->max_reuse_tcp_queries = 200; cfg->tcp_upstream = 0; cfg->udp_upstream_without_downstream = 0; cfg->tcp_mss = 0; @@ -518,6 +520,8 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_NUMBER_NONZERO("tcp-mss:", tcp_mss) else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss) else S_NUMBER_NONZERO("tcp-idle-timeout:", tcp_idle_timeout) + else S_NUMBER_NONZERO("max-reuse-tcp-queries:", max_reuse_tcp_queries) + else S_NUMBER_NONZERO("tcp-reuse-timeout:", tcp_reuse_timeout) else S_YNO("edns-tcp-keepalive:", do_tcp_keepalive) else S_NUMBER_NONZERO("edns-tcp-keepalive-timeout:", tcp_keepalive_timeout) else S_YNO("ssl-upstream:", ssl_upstream) @@ -1008,6 +1012,8 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "tcp-mss", tcp_mss) else O_DEC(opt, "outgoing-tcp-mss", outgoing_tcp_mss) else O_DEC(opt, "tcp-idle-timeout", tcp_idle_timeout) + else O_DEC(opt, "max-reuse-tcp-queries", max_reuse_tcp_queries) + else O_DEC(opt, "tcp-reuse-timeout", tcp_reuse_timeout) else O_YNO(opt, "edns-tcp-keepalive", do_tcp_keepalive) else O_DEC(opt, "edns-tcp-keepalive-timeout", tcp_keepalive_timeout) else O_YNO(opt, "ssl-upstream", ssl_upstream) diff --git a/util/config_file.h b/util/config_file.h index f5eda738c..34f098696 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -93,6 +93,10 @@ struct config_file { int do_udp; /** do tcp query support. */ int do_tcp; + /** max number of queries on a reuse connection. */ + int max_reuse_tcp_queries; + /** timeout for REUSE entries in milliseconds. */ + int tcp_reuse_timeout; /** tcp upstream queries (no UDP upstream queries) */ int tcp_upstream; /** udp upstream enabled when no UDP downstream is enabled (do_udp no)*/ diff --git a/util/configlexer.c b/util/configlexer.c index cbf1c103c..6f6dc4f45 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 345 -#define YY_END_OF_BUFFER 346 +#define YY_NUM_RULES 347 +#define YY_END_OF_BUFFER 348 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,380 +363,384 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3388] = +static const flex_int16_t yy_accept[3420] = { 0, - 1, 1, 319, 319, 323, 323, 327, 327, 331, 331, - 1, 1, 335, 335, 339, 339, 346, 343, 1, 317, - 317, 344, 2, 344, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 319, 320, 320, 321, - 344, 323, 324, 324, 325, 344, 330, 327, 328, 328, - 329, 344, 331, 332, 332, 333, 344, 342, 318, 2, - 322, 344, 342, 338, 335, 336, 336, 337, 344, 339, - 340, 340, 341, 344, 343, 0, 1, 2, 2, 2, - 2, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 1, 1, 321, 321, 325, 325, 329, 329, 333, 333, + 1, 1, 337, 337, 341, 341, 348, 345, 1, 319, + 319, 346, 2, 346, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 321, 322, 322, 323, + 346, 325, 326, 326, 327, 346, 332, 329, 330, 330, + 331, 346, 333, 334, 334, 335, 346, 344, 320, 2, + 324, 346, 344, 340, 337, 338, 338, 339, 346, 341, + 342, 342, 343, 346, 345, 0, 1, 2, 2, 2, + 2, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 319, - 0, 323, 0, 330, 0, 327, 331, 0, 342, 0, - 2, 2, 342, 338, 0, 335, 339, 0, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 321, + 0, 325, 0, 332, 0, 329, 333, 0, 344, 0, + 2, 2, 344, 340, 0, 337, 341, 0, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 342, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 344, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 125, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 134, - 343, 343, 343, 343, 343, 343, 343, 342, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 127, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 136, + 345, 345, 345, 345, 345, 345, 345, 344, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 109, 343, 316, 343, - 343, 343, 343, 343, 343, 343, 8, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 111, 345, 318, + 345, 345, 345, 345, 345, 345, 345, 8, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 126, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 139, 343, 343, - 342, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 128, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 141, + 345, 345, 344, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 309, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 311, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 342, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 64, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 241, 343, 14, 15, 343, 19, 18, 343, - 343, 225, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 344, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 66, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 243, 345, 14, 15, + 345, 19, 18, 345, 345, 227, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 132, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 223, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 3, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 134, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 225, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 3, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 342, 343, 343, 343, 343, 343, 343, - 343, 303, 343, 343, 302, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 326, 343, 343, 343, 343, 343, 343, 343, - 343, 63, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 67, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 344, + 345, 345, 345, 345, 345, 345, 345, 305, 345, 345, + 304, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 328, 345, + 345, 345, 345, 345, 345, 345, 345, 65, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 272, 343, 343, 343, 343, 343, 343, 343, 343, 310, - 311, 343, 343, 343, 343, 343, 343, 343, 68, 343, - 343, 133, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 129, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 212, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 21, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 158, 343, 343, + 345, 345, 345, 345, 69, 345, 274, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 312, 313, 345, 345, + 345, 345, 345, 345, 345, 70, 345, 345, 135, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 131, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 214, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 21, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 342, 326, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 107, 343, 343, 343, 343, - 343, 343, 343, 280, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 182, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 157, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 160, 345, 345, 345, 345, + 344, 328, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 109, 345, 345, 345, 345, 345, 345, + 345, 282, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 184, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 159, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 106, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 32, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 33, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 65, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 108, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 34, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 35, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 131, 343, 343, 342, 343, 343, 343, 343, 343, - 124, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 66, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 245, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 183, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 54, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 67, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 133, 345, 345, 344, 345, 345, 345, 345, 345, + 126, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 68, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 247, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 185, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 263, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 58, 343, 59, 343, 343, 343, - 343, 343, 110, 343, 111, 343, 343, 343, 343, 108, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 56, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 265, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 60, 345, 61, 345, 345, + 345, 345, 345, 112, 345, 113, 345, 345, 345, 345, + 110, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 7, - 343, 343, 343, 342, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 234, 343, 343, 343, 343, 160, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 246, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 45, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 7, 345, 345, 345, 344, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 236, 345, 345, 345, 345, 162, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 248, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 55, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 204, 343, 203, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 16, 17, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 69, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 211, 343, 343, 343, 343, - 343, 343, 113, 343, 112, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 47, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 57, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 206, 345, + 205, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 16, 17, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 71, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 213, 345, + 345, 345, 345, 345, 345, 115, 345, 114, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 195, 343, 343, - 343, 343, 343, 343, 343, 343, 140, 343, 343, 342, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 101, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 89, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 224, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 94, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 197, 345, 345, 345, 345, 345, 345, 345, 345, + 142, 345, 345, 344, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 103, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 91, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 226, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 96, - 343, 343, 343, 343, 343, 343, 343, 62, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 198, 199, 343, 343, - 343, 274, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 6, 343, 343, 343, 343, 343, - 343, 293, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 278, - 343, 343, 343, 343, 343, 343, 304, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 42, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 64, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 200, 201, 345, 345, 345, 276, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 6, + 345, 345, 345, 345, 345, 345, 295, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 280, 345, 345, 345, 345, 345, + 345, 306, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 44, 343, 343, 343, 90, 343, 343, - 343, 343, 343, 52, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 342, 343, 191, 343, 343, 343, 135, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 216, 343, 192, 343, 343, 343, 231, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 53, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 137, 118, - 343, 119, 343, 343, 343, 117, 343, 343, 343, 343, - 343, 343, 343, 343, 155, 343, 343, 50, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 44, 345, 345, 345, 345, 46, + 345, 345, 345, 92, 345, 345, 345, 345, 345, 54, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 344, + 345, 193, 345, 345, 345, 137, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 218, 345, 194, 345, + 345, 345, 233, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 55, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 139, 120, 345, 121, 345, 345, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 262, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 193, 343, 343, 343, 343, 343, - 196, 343, 202, 343, 343, 343, 343, 343, 230, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 105, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 130, 343, 343, 343, 343, 343, - 343, 343, 60, 343, 343, 343, 26, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 20, 343, 343, 343, + 345, 119, 345, 345, 345, 345, 345, 345, 345, 345, + 157, 345, 345, 52, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 264, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 195, 345, 345, 345, 345, 345, 198, 345, 204, 345, + 345, 345, 345, 345, 345, 232, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 107, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 132, 345, 345, 345, 345, 345, 345, 345, 62, - 343, 343, 343, 27, 36, 343, 165, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 342, 343, 343, 343, 343, 343, 343, 77, - 79, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 282, 343, 343, 343, 343, 242, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 120, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 154, 343, 46, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 28, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 20, 345, 345, 345, 345, 345, + 345, 29, 38, 345, 167, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 344, 345, 345, 345, 345, 345, 345, 79, 81, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 284, 345, 345, 345, 345, 244, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 122, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 343, 343, 343, 297, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 159, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 291, 343, - 343, 343, 222, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 307, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 176, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 114, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 171, 343, 184, 343, 343, 343, + 156, 345, 48, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 299, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 161, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 293, 345, 345, + 345, 224, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 309, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 178, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 116, 345, 345, 345, 345, 345, 345, - 343, 343, 343, 342, 343, 143, 343, 343, 343, 343, - 343, 100, 343, 343, 343, 343, 214, 343, 343, 343, - 343, 343, 343, 232, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 254, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 136, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 175, 343, 343, 343, - 343, 343, 343, 80, 343, 81, 343, 343, 343, 343, - 343, 61, 300, 343, 343, 343, 343, 343, 88, 185, - 343, 205, 343, 235, 343, 343, 197, 275, 343, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 173, 345, 186, 345, 345, 345, + 345, 345, 345, 344, 345, 145, 345, 345, 345, 345, + 345, 102, 345, 345, 345, 345, 216, 345, 345, 345, + 345, 345, 345, 234, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 256, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 138, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 177, 345, 345, 345, + 345, 345, 345, 82, 345, 83, 345, 345, 345, 345, - 343, 343, 343, 73, 343, 187, 343, 343, 343, 343, - 343, 9, 343, 343, 343, 343, 343, 104, 343, 343, - 343, 343, 267, 343, 343, 343, 343, 213, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 342, 343, 343, 343, - 343, 174, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 161, 343, 281, 343, 343, 343, 343, 343, + 345, 63, 302, 345, 345, 345, 345, 345, 90, 187, + 345, 207, 345, 237, 345, 345, 199, 277, 345, 345, + 345, 345, 345, 345, 75, 345, 189, 345, 345, 345, + 345, 345, 9, 345, 345, 345, 345, 345, 106, 345, + 345, 345, 345, 269, 345, 345, 345, 345, 215, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 344, 345, - 253, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 226, 343, 343, 343, 343, 343, 273, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 301, - 343, 186, 343, 343, 343, 343, 343, 343, 343, 72, - 74, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 103, 343, 343, 343, 343, 265, 343, 343, 343, 343, - 277, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 218, 34, 28, 30, 343, 343, 343, + 345, 345, 345, 176, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 163, 345, 283, 345, 345, 345, + 345, 345, 255, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 228, 345, 345, 345, 345, 345, + 275, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 303, 345, 188, 345, 345, 345, 345, 345, 345, + 345, 345, 74, 76, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 105, 345, 345, 345, 345, 267, 345, - 343, 343, 343, 343, 343, 343, 35, 343, 29, 31, - 343, 343, 343, 343, 343, 343, 343, 343, 99, 343, - 343, 343, 343, 343, 343, 343, 343, 342, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 220, - 217, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 71, - 343, 343, 343, 138, 343, 121, 343, 343, 343, 343, - 343, 343, 343, 343, 156, 47, 343, 343, 343, 334, - 13, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 295, 343, 298, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 279, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 220, 36, 30, 32, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 37, 345, 31, 33, 345, 345, 345, 345, 345, 345, + 345, 345, 101, 345, 345, 345, 345, 345, 345, 345, + 345, 344, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 222, 219, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 73, 345, 345, 345, 140, 345, 123, + 345, 345, 345, 345, 345, 345, 345, 345, 158, 49, - 343, 343, 343, 343, 12, 343, 343, 22, 343, 343, - 343, 343, 343, 271, 343, 343, 343, 343, 279, 343, - 343, 343, 75, 343, 228, 343, 343, 343, 343, 343, - 219, 343, 343, 70, 343, 343, 343, 343, 23, 343, - 43, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 170, 169, 343, 343, 334, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 221, 215, 343, - 233, 343, 343, 283, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 336, 13, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 297, 345, 300, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 12, + 345, 345, 22, 345, 345, 345, 345, 345, 273, 345, + 345, 345, 345, 281, 345, 345, 345, 77, 345, 230, + 345, 345, 345, 345, 345, 221, 345, 345, 72, 345, + 345, 345, 345, 23, 345, 345, 45, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 172, + 171, 345, 345, 336, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 223, 217, 345, 235, 345, 345, 285, - 343, 343, 343, 343, 343, 343, 82, 343, 343, 343, - 343, 266, 343, 343, 343, 343, 201, 343, 343, 343, - 343, 227, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 305, 306, 167, 343, 343, 76, 343, - 343, 343, 343, 177, 343, 343, 343, 115, 116, 343, - 343, 343, 343, 162, 343, 164, 343, 206, 343, 343, - 343, 343, 168, 343, 343, 343, 343, 236, 343, 343, - 343, 343, 343, 343, 343, 145, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 244, 343, - 343, 343, 343, 343, 343, 343, 314, 343, 24, 343, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 84, 345, 345, 345, 345, 268, 345, 345, + 345, 345, 203, 345, 345, 345, 345, 345, 229, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 307, 308, 169, 345, 345, 78, 345, 345, 345, 345, + 179, 345, 345, 345, 117, 118, 345, 345, 25, 345, + 345, 164, 345, 166, 345, 208, 345, 345, 345, 345, + 170, 345, 345, 345, 345, 238, 345, 345, 345, 345, - 276, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 86, 207, 343, 343, 264, - 343, 299, 343, 200, 343, 343, 343, 343, 56, 343, - 343, 343, 343, 343, 343, 4, 343, 343, 343, 343, - 128, 144, 343, 343, 343, 181, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 239, 37, 38, 343, 343, 343, 343, - 343, 343, 343, 284, 343, 343, 343, 343, 343, 343, - 343, 252, 343, 343, 343, 343, 343, 343, 343, 343, - 210, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 345, 345, 345, 147, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 246, 345, 345, 345, + 345, 345, 345, 345, 316, 345, 26, 345, 278, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 88, 209, 345, 345, 266, 345, 301, + 345, 202, 345, 345, 345, 345, 345, 58, 345, 345, + 345, 345, 345, 345, 4, 345, 345, 345, 345, 130, + 146, 345, 345, 345, 183, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 241, 39, 40, 345, 345, 345, 345, 345, - 343, 343, 343, 85, 343, 57, 270, 343, 240, 343, - 343, 343, 343, 11, 343, 343, 343, 343, 343, 343, - 343, 343, 127, 343, 343, 343, 343, 208, 91, 343, - 40, 343, 343, 343, 343, 343, 343, 343, 343, 173, - 343, 343, 343, 343, 343, 343, 343, 147, 343, 343, - 343, 343, 243, 343, 343, 343, 343, 343, 251, 343, - 343, 343, 343, 141, 343, 343, 343, 122, 123, 343, - 343, 343, 93, 97, 92, 343, 343, 343, 343, 83, - 343, 343, 343, 343, 343, 10, 343, 343, 343, 343, - 343, 268, 308, 343, 343, 343, 343, 313, 39, 343, + 345, 345, 286, 345, 345, 345, 345, 345, 345, 345, + 254, 345, 345, 345, 345, 345, 345, 345, 345, 212, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 87, 345, 59, 272, 345, 242, 345, 345, + 345, 345, 345, 11, 345, 345, 345, 345, 345, 345, + 345, 345, 129, 345, 345, 345, 345, 210, 93, 345, + 42, 345, 345, 345, 345, 345, 345, 345, 345, 175, + 345, 345, 345, 345, 345, 345, 345, 149, 345, 345, + 345, 345, 245, 345, 345, 345, 345, 345, 253, 345, + 345, 345, 345, 143, 345, 345, 345, 124, 125, 345, - 343, 343, 343, 343, 172, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 98, 96, 343, 51, 343, 343, 84, 296, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 194, 343, 343, - 343, 343, 343, 209, 343, 343, 343, 343, 343, 343, - 343, 190, 343, 343, 163, 78, 343, 343, 343, 343, - 343, 285, 343, 343, 343, 343, 343, 343, 343, 248, - 343, 343, 247, 142, 343, 343, 95, 48, 343, 148, - 149, 152, 153, 150, 151, 87, 294, 343, 343, 269, + 345, 345, 95, 99, 94, 345, 345, 345, 345, 85, + 345, 345, 345, 345, 345, 345, 10, 345, 345, 345, + 345, 345, 270, 310, 345, 345, 345, 345, 315, 41, + 345, 345, 345, 345, 345, 174, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 100, 98, 345, 53, 345, 345, 86, 298, 345, + 345, 345, 345, 24, 345, 345, 345, 345, 345, 196, + 345, 345, 345, 345, 345, 211, 345, 345, 345, 345, + 345, 345, 345, 192, 345, 345, 165, 80, 345, 345, - 343, 343, 343, 343, 166, 343, 343, 343, 343, 189, - 343, 238, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 179, 178, 41, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 292, 343, 343, - 343, 343, 102, 343, 237, 343, 261, 289, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 315, - 343, 49, 5, 343, 343, 229, 343, 343, 290, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 249, 25, + 345, 345, 345, 287, 345, 345, 345, 345, 345, 345, + 345, 250, 345, 345, 249, 144, 345, 345, 97, 50, + 345, 150, 151, 154, 155, 152, 153, 89, 296, 345, + 345, 271, 345, 345, 345, 345, 168, 345, 345, 345, + 345, 191, 345, 240, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 181, 180, 43, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 294, + 345, 345, 345, 345, 104, 345, 239, 345, 263, 291, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 250, 343, 343, 343, 146, 343, 343, 343, - 343, 343, 343, 343, 343, 180, 343, 188, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 286, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 312, 343, 343, 257, 343, - 343, 343, 343, 343, 287, 343, 343, 343, 343, 343, - 343, 288, 343, 343, 343, 255, 343, 258, 259, 343, - 343, 343, 343, 343, 256, 260, 0 + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 317, 345, 51, 5, 345, 345, 231, 345, 345, + 292, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 251, 27, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 252, 345, 345, 345, 148, 345, + 345, 345, 345, 345, 345, 345, 345, 182, 345, 190, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 288, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 314, 345, 345, + 259, 345, 345, 345, 345, 345, 289, 345, 345, 345, + + 345, 345, 345, 290, 345, 345, 345, 257, 345, 260, + 261, 345, 345, 345, 345, 345, 258, 262, 0 } ; static const YY_CHAR yy_ec[256] = @@ -779,17 +783,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3406] = +static const flex_int16_t yy_base[3438] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4333, 3646, 81, 6613, - 6613, 6613, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 2906, 2853, 81, 6684, + 6684, 6684, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 3471, 6613, 6613, 6613, - 107, 3089, 6613, 6613, 6613, 154, 2938, 2734, 6613, 6613, - 6613, 245, 2551, 6613, 6613, 6613, 163, 2380, 6613, 249, - 6613, 253, 148, 2167, 2097, 6613, 6613, 6613, 257, 1895, - 6613, 6613, 6613, 233, 1571, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 2798, 6684, 6684, 6684, + 107, 2623, 6684, 6684, 6684, 154, 2576, 2409, 6684, 6684, + 6684, 245, 2211, 6684, 6684, 6684, 163, 2110, 6684, 249, + 6684, 253, 148, 2024, 1966, 6684, 6684, 6684, 257, 1424, + 6684, 6684, 6684, 233, 1372, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -797,8 +801,8 @@ static const flex_int16_t yy_base[3406] = 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1355, - 419, 1172, 422, 1110, 429, 1014, 912, 433, 781, 437, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1294, + 419, 1265, 422, 1234, 429, 1013, 968, 433, 775, 437, 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, @@ -817,727 +821,733 @@ static const flex_int16_t yy_base[3406] = 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, - 763, 766, 762, 773, 774, 769, 775, 793, 798, 799, - 786, 800, 801, 804, 803, 805, 807, 808, 809, 818, - 811, 823, 815, 824, 825, 829, 836, 834, 6613, 831, - 833, 847, 848, 849, 852, 765, 856, 858, 839, 868, - 864, 861, 870, 892, 865, 878, 869, 871, 874, 6613, - 887, 880, 916, 882, 889, 902, 904, 900, 903, 905, - 914, 907, 933, 850, 909, 924, 940, 936, 925, 937, + 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, + 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, + 818, 819, 823, 807, 825, 827, 834, 829, 6684, 831, + 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, + 864, 867, 868, 890, 849, 876, 859, 880, 878, 6684, + 882, 884, 914, 887, 894, 905, 912, 900, 888, 908, + 910, 896, 937, 920, 922, 924, 940, 927, 935, 936, - 939, 942, 943, 952, 948, 950, 951, 953, 961, 956, - 960, 964, 968, 962, 971, 972, 975, 977, 983, 974, - 980, 990, 973, 993, 994, 995, 997, 996, 1007, 1004, - 1000, 1001, 1015, 1014, 1028, 1017, 1026, 1027, 1030, 1029, - 1035, 1036, 1039, 1041, 1042, 1043, 1044, 1054, 1046, 1049, - 1051, 1053, 1057, 1059, 1061, 1063, 1066, 1065, 1067, 1071, - 1069, 1078, 1080, 1074, 1086, 1076, 6613, 1088, 6613, 1082, - 1091, 1092, 1090, 1097, 1093, 1094, 6613, 1096, 1100, 1104, - 1105, 1115, 1108, 1126, 1107, 1121, 1122, 1125, 1123, 1127, - 1138, 1129, 1131, 1145, 1136, 1141, 1140, 1143, 1144, 1147, + 939, 943, 945, 947, 951, 949, 953, 957, 964, 959, + 961, 962, 975, 963, 966, 970, 974, 976, 987, 981, + 991, 979, 992, 993, 996, 997, 999, 994, 1004, 1006, + 1019, 1020, 998, 1023, 1030, 1005, 1027, 1031, 1034, 1036, + 1029, 1038, 1040, 1043, 1045, 1044, 1046, 1054, 1051, 1052, + 1056, 1058, 1059, 1060, 1062, 1065, 1066, 1068, 1070, 1071, + 1075, 1078, 1081, 1083, 1072, 1086, 861, 6684, 1091, 6684, + 1089, 1094, 1095, 1096, 1098, 1099, 1097, 6684, 1100, 1105, + 1101, 1108, 1112, 1107, 1130, 1126, 1111, 1127, 1129, 1114, + 1133, 1140, 1136, 1139, 1143, 1141, 1144, 1145, 1147, 1146, - 1151, 1153, 1154, 1155, 1156, 1175, 6613, 1157, 1165, 1167, - 1159, 1168, 1182, 1187, 1173, 1185, 1193, 1197, 1205, 1198, - 1200, 1204, 1179, 1203, 1160, 1208, 1214, 1211, 1217, 1219, - 1218, 1220, 1222, 1221, 1224, 1225, 1232, 6613, 1235, 1241, - 1246, 1253, 1236, 1239, 1249, 1251, 1252, 1255, 1256, 1257, - 1259, 517, 1258, 1263, 1275, 1264, 1277, 1272, 1228, 1274, - 1278, 1280, 1279, 1281, 1283, 1292, 1289, 1295, 1304, 1307, - 1306, 1309, 1316, 1318, 1298, 1311, 1321, 1315, 1313, 1314, - 1325, 1326, 1327, 1329, 1330, 1339, 1336, 1335, 1337, 1338, - 1343, 1341, 1345, 1346, 1347, 1349, 1360, 1357, 1358, 1365, + 1152, 1151, 1153, 1154, 1159, 1160, 1179, 6684, 1162, 1169, + 1171, 1164, 1172, 1165, 1186, 1191, 1174, 1192, 1188, 1194, + 1208, 1201, 1206, 1209, 1210, 1211, 1214, 1217, 1218, 1220, + 1224, 1223, 1221, 1225, 1227, 1228, 1226, 1229, 1243, 6684, + 1230, 1246, 1248, 1257, 1241, 1254, 1255, 1256, 1258, 1259, + 1260, 1163, 1113, 517, 1263, 1262, 1272, 1267, 1281, 1268, + 1282, 1276, 1278, 1283, 1284, 1286, 1291, 1298, 1296, 1300, + 1304, 1312, 1311, 1314, 1321, 1323, 1308, 1289, 1316, 1320, + 1318, 1324, 1327, 1326, 1328, 1333, 1334, 1341, 1336, 1339, + 1342, 1344, 1345, 1348, 1343, 1349, 1350, 1353, 1361, 1360, - 1361, 1370, 1364, 1359, 1378, 1380, 1367, 1374, 6613, 1390, - 1287, 1388, 1392, 1393, 1394, 1395, 1386, 1387, 1399, 1401, - 1403, 1404, 1410, 1407, 1411, 1412, 1413, 1415, 1423, 1419, - 1426, 1434, 1433, 1435, 1420, 1437, 1439, 1441, 1448, 1445, - 1449, 1452, 1421, 1453, 1462, 1454, 1457, 1459, 1469, 1447, - 1465, 1468, 1471, 1475, 1477, 1480, 1487, 1482, 1485, 1502, - 1488, 1472, 1493, 1486, 1504, 1492, 1499, 1503, 1507, 1508, - 1515, 1512, 1511, 1514, 1518, 1513, 1519, 1522, 1524, 1536, - 1523, 1532, 1527, 1535, 1541, 1525, 1540, 1542, 1547, 1548, - 1550, 1549, 1551, 1553, 1558, 1559, 1562, 1561, 1564, 1568, + 1356, 1368, 1359, 1374, 1367, 1362, 1381, 1382, 1369, 1384, + 6684, 1394, 1389, 1390, 1391, 1392, 1400, 1396, 1402, 1404, + 1405, 1406, 1408, 1407, 1410, 1411, 1414, 1415, 1416, 1421, + 1423, 1431, 1428, 1426, 1440, 1439, 1441, 1443, 1444, 1445, + 1447, 1454, 1451, 1455, 1457, 1452, 1459, 1468, 1463, 1465, + 1469, 1479, 1453, 1471, 1470, 1481, 1482, 1484, 1487, 1492, + 1485, 1493, 1500, 1495, 1502, 1504, 1503, 1507, 1510, 1511, + 1512, 1513, 1514, 1521, 1516, 1517, 1518, 1523, 1519, 1524, + 1535, 1525, 1542, 1531, 1539, 1541, 1544, 1548, 1546, 1552, + 1553, 1554, 1555, 1549, 1556, 1557, 1558, 1562, 1563, 1564, - 1570, 1574, 1576, 1577, 1579, 1580, 1588, 1581, 1590, 1591, - 1592, 1594, 1595, 1602, 1604, 1598, 1608, 1605, 1611, 1610, - 1613, 1614, 1616, 1617, 1622, 1623, 1624, 6613, 1629, 1636, - 1631, 1634, 1632, 1637, 1639, 1646, 1641, 1643, 1642, 1645, - 1647, 1671, 6613, 1653, 6613, 6613, 1652, 6613, 6613, 1654, - 1655, 6613, 1658, 1656, 1659, 1674, 1681, 1684, 1666, 1679, - 1672, 1687, 1694, 1708, 1695, 1692, 1696, 1698, 1699, 1701, - 1706, 1703, 1689, 1716, 1725, 1730, 1731, 1717, 1719, 1732, - 1735, 1739, 1740, 1742, 1746, 1748, 1749, 1733, 1751, 1753, - 1756, 1754, 1757, 1759, 1763, 1764, 1760, 1767, 1766, 1776, + 1575, 1576, 1579, 1578, 1580, 1582, 1581, 1587, 1589, 1593, + 1597, 1585, 1600, 1601, 1591, 1604, 1606, 1614, 1611, 1609, + 1615, 1617, 1620, 1621, 1623, 1622, 1625, 1626, 1633, 1634, + 1638, 6684, 1630, 1646, 1628, 1641, 1642, 1644, 1650, 1657, + 1652, 1655, 1653, 1656, 1658, 1682, 6684, 1659, 6684, 6684, + 1663, 6684, 6684, 1661, 1666, 6684, 1667, 1676, 1677, 1675, + 1664, 1688, 1686, 1690, 1692, 1683, 1705, 1709, 1695, 1696, + 1707, 1714, 1698, 1715, 1724, 1712, 1723, 1720, 1730, 1740, + 1736, 1741, 1732, 1744, 1750, 1748, 1752, 1754, 1757, 1758, + 1761, 1746, 1762, 1763, 1767, 1764, 1768, 1770, 1774, 1775, - 1780, 1769, 1787, 6613, 1784, 1796, 1797, 1793, 1800, 1792, - 1799, 1801, 1772, 1783, 1802, 1803, 1806, 1807, 1804, 1808, - 1812, 1816, 1817, 1819, 1829, 1836, 1813, 6613, 1825, 1833, - 1820, 1818, 1837, 1835, 1840, 1839, 1841, 1843, 1847, 1855, - 1850, 1848, 1856, 1858, 1857, 1859, 1861, 6613, 1868, 1874, - 1862, 1871, 1865, 1869, 1878, 1879, 1880, 1882, 1884, 1888, - 1885, 1887, 1896, 1893, 1897, 1894, 1904, 1899, 1908, 1910, - 1912, 1914, 1916, 1917, 1919, 1920, 1921, 1923, 1924, 1932, - 1935, 1931, 1936, 1933, 1928, 1952, 1955, 1950, 1938, 1939, - 1953, 1941, 1960, 1969, 1964, 1956, 1965, 1972, 1968, 1971, + 1771, 1778, 1777, 1787, 1779, 1792, 1801, 6684, 1793, 1802, + 1794, 1803, 1804, 1811, 1807, 1806, 1808, 1815, 1818, 1819, + 1820, 1821, 1822, 1823, 1824, 1825, 1831, 1828, 1834, 1833, + 1845, 1835, 6684, 1843, 1846, 1836, 1848, 1847, 1858, 1857, + 1849, 1850, 1859, 1851, 1871, 1866, 1869, 1872, 1873, 1874, + 1876, 1877, 6684, 1780, 1879, 1881, 1885, 1883, 1886, 1887, + 1889, 1892, 1896, 1893, 1895, 1897, 1900, 1909, 1901, 1908, + 1913, 1914, 1917, 1921, 1922, 1925, 1918, 1926, 1929, 1930, + 1931, 1933, 1934, 1936, 1940, 1947, 1948, 1943, 1951, 1944, + 1949, 1965, 1967, 1962, 1952, 1963, 1968, 1964, 1976, 1978, - 1973, 1975, 1976, 1983, 1981, 1985, 1986, 1979, 1984, 1990, - 1993, 6613, 1997, 1999, 6613, 1998, 2000, 2002, 2024, 2005, - 2003, 2010, 2009, 2014, 2015, 2016, 2018, 2017, 2028, 2044, - 2037, 2034, 2047, 2026, 2049, 2050, 2052, 2053, 2055, 2056, - 2059, 2030, 2060, 2072, 2075, 2074, 2082, 2084, 2058, 2071, - 2061, 2091, 2081, 2083, 2086, 2089, 2094, 2098, 2096, 2102, - 2087, 2107, 2108, 2115, 2113, 2119, 2112, 2120, 2114, 2122, - 2123, 2125, 6613, 2134, 2135, 2129, 2137, 2133, 2147, 2139, - 2140, 6613, 2143, 2149, 2150, 2157, 2153, 2154, 2155, 2156, - 2161, 2163, 2165, 2169, 2170, 2168, 2164, 2186, 6613, 2171, + 1979, 1970, 1974, 1986, 1981, 1990, 1984, 1991, 1992, 1999, + 1994, 2000, 2005, 1995, 2003, 2007, 1997, 6684, 2011, 2013, + 6684, 2015, 2014, 2018, 2040, 2019, 2021, 2022, 2030, 2032, + 2038, 2026, 2033, 2031, 2044, 2054, 2046, 2050, 2059, 2052, + 2065, 2060, 2066, 2062, 2068, 2069, 2073, 2078, 2074, 2087, + 2091, 2093, 2095, 2094, 2077, 2086, 2096, 2115, 2097, 2098, + 2104, 2100, 2101, 2106, 2117, 2108, 2107, 2113, 2120, 2130, + 2128, 2119, 2127, 2137, 2138, 2140, 2142, 2143, 6684, 2150, + 2148, 2147, 2149, 2152, 2161, 2157, 2158, 6684, 2159, 2160, + 2164, 2173, 2170, 2171, 2176, 2172, 2174, 2175, 2182, 2178, - 6613, 2182, 2172, 2184, 2185, 2188, 2189, 2190, 2193, 6613, - 6613, 2197, 2191, 2207, 2211, 2201, 2194, 2212, 6613, 2213, - 2220, 6613, 2217, 2223, 2216, 2215, 2222, 2224, 2227, 2228, - 2237, 2232, 2239, 2234, 2236, 2244, 6613, 2245, 2246, 2250, - 2251, 2247, 2253, 2254, 2260, 2257, 6613, 2264, 2261, 2266, - 2274, 2276, 2271, 2273, 2278, 2282, 2279, 2284, 2285, 2286, - 2287, 2294, 2296, 2293, 2299, 2301, 2308, 6613, 2292, 2295, - 2313, 2309, 2312, 2316, 2317, 2318, 2319, 2320, 2321, 2322, - 2327, 2328, 2329, 2330, 2337, 2340, 2335, 2339, 2343, 2345, - 2347, 2348, 2355, 2352, 2353, 2354, 2356, 6613, 2357, 2359, + 2184, 2183, 2185, 2197, 6684, 2196, 6684, 2186, 2198, 2199, + 2201, 2203, 2205, 2206, 2208, 2209, 6684, 6684, 2210, 2207, + 2224, 2228, 2226, 2219, 2227, 6684, 2229, 2237, 6684, 2238, + 2230, 2232, 2241, 2243, 2244, 2247, 2248, 2255, 2250, 2257, + 2252, 2253, 2254, 6684, 2266, 2256, 2271, 2273, 2264, 2265, + 2279, 2281, 2275, 6684, 2282, 2283, 2285, 2295, 2293, 2294, + 2272, 2297, 2301, 2296, 2298, 2304, 2305, 2306, 2313, 2315, + 2311, 2318, 2320, 2327, 6684, 2326, 2310, 2312, 2335, 2333, + 2337, 2330, 2334, 2322, 2341, 2342, 2344, 1726, 2346, 2348, + 2349, 2350, 2358, 2359, 2355, 2357, 2364, 2354, 2365, 2356, - 2363, 2366, 2365, 171, 2369, 2367, 2372, 2374, 2377, 2388, - 2375, 2396, 2397, 2378, 2393, 2399, 2400, 2389, 2392, 2402, - 2404, 2408, 2409, 2410, 2411, 6613, 2413, 2414, 2415, 2417, - 2418, 2420, 2429, 6613, 2422, 2435, 2437, 2439, 2444, 2441, - 2446, 2431, 2447, 2452, 2453, 2454, 2456, 2457, 2460, 2459, - 2463, 6613, 2467, 2464, 2471, 2472, 2475, 2477, 2478, 2479, - 2483, 2484, 2485, 2486, 2488, 2490, 2489, 2491, 2493, 2499, - 2500, 2496, 2504, 2509, 2506, 2507, 2510, 2513, 2514, 2519, - 2517, 6613, 2529, 2520, 2527, 2525, 2528, 2530, 2531, 2538, - 2553, 2540, 2542, 2544, 2554, 2560, 2545, 2562, 2549, 2563, + 2371, 2372, 2374, 2375, 2376, 6684, 2377, 2381, 2382, 2384, + 2378, 171, 2385, 2388, 2392, 2386, 2393, 2406, 2395, 2413, + 2414, 2400, 2412, 2409, 2418, 2410, 2419, 2420, 2421, 2422, + 2427, 2428, 2426, 6684, 2430, 2432, 2431, 2435, 2438, 2437, + 2442, 6684, 2448, 2439, 2454, 2463, 2453, 2451, 2464, 2455, + 2466, 2468, 2470, 2469, 2471, 2473, 2472, 2476, 2479, 6684, + 2481, 2485, 2489, 2482, 2491, 2493, 2492, 2495, 2499, 2500, + 2503, 2505, 2504, 2506, 2507, 2508, 2509, 2516, 2513, 2512, + 2517, 2521, 2523, 2524, 2533, 2525, 2531, 2534, 2535, 6684, + 2542, 2539, 2546, 2540, 2541, 2547, 2552, 2550, 2559, 2551, - 2567, 2566, 2576, 2577, 2580, 2586, 2574, 2588, 2591, 2578, - 2581, 2584, 2590, 2592, 2600, 2601, 2608, 2609, 2606, 2612, - 2604, 2621, 2615, 2627, 2633, 2623, 6613, 2632, 2625, 2617, - 2637, 2644, 2639, 2641, 2642, 2645, 2649, 2650, 2651, 2652, - 2660, 2655, 2653, 2657, 2662, 2664, 2665, 2668, 2672, 2673, - 2676, 2680, 2677, 2683, 2421, 6613, 2684, 2686, 2685, 2688, - 2694, 2689, 2696, 2699, 2701, 2702, 2703, 2708, 2705, 2710, - 2711, 2712, 2718, 2605, 2714, 6613, 2716, 2715, 2721, 2720, - 2728, 2729, 2735, 2736, 2738, 2741, 2744, 2745, 2746, 2747, - 2748, 6613, 2756, 2757, 2753, 2765, 2755, 2760, 2762, 2767, + 2564, 2566, 2567, 2580, 2569, 2565, 2577, 2572, 2586, 2575, + 2596, 2587, 2595, 2597, 2583, 2601, 2605, 2594, 2606, 2613, + 2609, 2611, 2612, 2615, 2616, 2625, 2626, 2622, 2628, 2621, + 2633, 2636, 2642, 2647, 2640, 6684, 2648, 2646, 2649, 2653, + 2660, 2655, 2656, 2658, 2657, 2665, 2666, 2668, 2669, 2676, + 2672, 2680, 2675, 2677, 2679, 2681, 2684, 2686, 2692, 2694, + 2696, 2697, 2701, 2703, 6684, 2706, 2702, 2708, 2710, 2714, + 2698, 2716, 2720, 2723, 2711, 2722, 2725, 2726, 2730, 2729, + 2737, 2734, 2735, 2736, 2740, 6684, 2742, 2741, 2747, 2748, + 2750, 2751, 2760, 2754, 2761, 2763, 2767, 2753, 2768, 2769, - 2768, 6613, 2769, 832, 2770, 2771, 2772, 2780, 2781, 2776, - 6613, 2783, 2778, 2784, 2786, 2789, 2793, 2790, 2796, 2794, - 2799, 2800, 2805, 2803, 2809, 2811, 6613, 2812, 2821, 2817, - 2813, 2819, 2823, 2825, 2826, 2828, 2829, 2843, 2834, 6613, - 2852, 2847, 2839, 2855, 2842, 2830, 2853, 2857, 2858, 2859, - 2860, 2864, 2865, 6613, 2867, 2866, 2868, 2872, 2870, 2875, - 2876, 2888, 2878, 2879, 2883, 2887, 2889, 2891, 2894, 2896, - 2900, 2901, 2906, 2907, 2909, 2911, 2892, 2913, 2922, 2923, - 2918, 2926, 2921, 2928, 2929, 2930, 2937, 2939, 2940, 2941, - 2945, 6613, 2948, 2949, 2943, 2936, 2951, 2955, 2956, 2957, + 2770, 6684, 2779, 2781, 2777, 2784, 2780, 2785, 2786, 2788, + 2790, 6684, 2791, 2792, 2793, 2794, 2795, 2805, 2806, 2801, + 6684, 2817, 2812, 2796, 2803, 2813, 2815, 2819, 2820, 2822, + 2824, 2827, 2828, 2831, 2834, 2835, 6684, 2836, 2844, 2841, + 2839, 2846, 2847, 2850, 2851, 2862, 2863, 2856, 2860, 6684, + 2877, 2864, 2873, 2881, 2876, 2852, 2879, 2882, 2883, 2885, + 2886, 2889, 2890, 6684, 2891, 2893, 2896, 2898, 2900, 2901, + 2902, 2913, 2908, 2909, 2912, 2915, 2916, 2917, 2918, 2922, + 2927, 2924, 2925, 2937, 2933, 2935, 2939, 2940, 2949, 2951, + 2946, 2953, 2950, 2947, 2954, 2957, 2961, 2964, 2971, 2966, - 2958, 2960, 2962, 2961, 2965, 2967, 2974, 2978, 2975, 2981, - 2983, 2984, 2976, 2987, 2988, 2989, 2990, 2997, 2993, 2994, - 3005, 2996, 3000, 3010, 3011, 3012, 3013, 3014, 3021, 3001, - 3019, 3016, 3023, 3018, 3024, 3027, 3029, 3041, 3042, 3044, - 3025, 3036, 3046, 3049, 6613, 3052, 3053, 3050, 3054, 3056, - 3061, 3057, 3069, 3064, 3067, 3066, 3073, 3078, 3075, 3076, - 3081, 3083, 3091, 3087, 6613, 3084, 6613, 3088, 3092, 3098, - 3106, 3093, 6613, 3105, 6613, 3107, 3112, 3101, 3108, 6613, - 3115, 3096, 3114, 3119, 3121, 3122, 3125, 3126, 3127, 3128, - 3130, 3132, 3133, 3134, 3135, 3137, 3140, 3142, 3146, 3147, + 2968, 6684, 2973, 2970, 2976, 2977, 2978, 2979, 2981, 2980, + 2982, 2984, 2986, 2992, 2988, 2989, 3006, 3013, 2991, 2998, + 3001, 3003, 3009, 3010, 3014, 3016, 3017, 3025, 3021, 3023, + 3024, 3034, 3027, 3031, 3038, 3029, 3030, 3039, 3040, 3041, + 3042, 3045, 3051, 3044, 3053, 3054, 3056, 3062, 3065, 3066, + 3070, 3067, 3069, 3075, 3077, 6684, 3076, 3081, 3082, 3084, + 3085, 3090, 3087, 3099, 3091, 3095, 3098, 3105, 3107, 3100, + 3110, 3112, 3102, 3119, 3115, 6684, 3116, 6684, 3117, 3118, + 3124, 3132, 3127, 6684, 3130, 6684, 3133, 3140, 3135, 3137, + 6684, 3141, 3142, 3143, 3145, 3148, 3131, 3150, 3154, 3155, - 3153, 3145, 3156, 3157, 3161, 3163, 3164, 3165, 3166, 6613, - 3170, 3167, 3172, 3173, 3175, 3178, 3179, 3181, 3182, 3185, - 3191, 3188, 3190, 3201, 3194, 3197, 3204, 3209, 3212, 3219, - 3205, 3220, 6613, 3215, 3222, 3187, 3226, 6613, 3218, 3216, - 3227, 3230, 3233, 3234, 3235, 3236, 3237, 3241, 3242, 3243, - 3255, 3251, 3244, 3253, 6613, 3248, 3260, 3246, 3264, 3269, - 3276, 3280, 3277, 3278, 3283, 3281, 3285, 3286, 3287, 3288, - 3289, 3291, 3298, 3301, 3297, 3306, 3293, 3303, 3311, 3312, - 3296, 3304, 3313, 3315, 3318, 3320, 3319, 3321, 3262, 3323, - 3322, 6613, 3326, 3327, 3330, 3342, 3328, 3331, 3335, 3340, + 3156, 3157, 3159, 3161, 3163, 3164, 3166, 3174, 3167, 3169, + 3172, 3176, 3183, 3180, 3185, 3192, 3188, 3190, 3194, 3195, + 3197, 6684, 3200, 3196, 3203, 3204, 3206, 3207, 3211, 3212, + 3213, 3215, 3217, 3219, 3223, 3228, 3225, 3232, 3229, 3233, + 3236, 3246, 3242, 3250, 6684, 3245, 3248, 3251, 3252, 6684, + 3255, 3253, 3256, 3263, 3254, 3261, 3265, 3266, 3271, 3267, + 3274, 3273, 3278, 3282, 3283, 3287, 6684, 3289, 3292, 3275, + 3291, 3302, 3305, 3309, 3307, 3310, 3313, 3321, 3317, 3295, + 3316, 3304, 3318, 3324, 3325, 3326, 3328, 3335, 3330, 3331, + 3340, 3332, 3341, 3342, 3343, 3344, 3346, 3347, 3348, 3345, - 3344, 6613, 3350, 3351, 3352, 3356, 3358, 3345, 3353, 3361, - 3362, 3363, 3364, 3366, 3369, 3370, 6613, 3374, 6613, 3375, - 3384, 3377, 3383, 3390, 3388, 3392, 3397, 3391, 3393, 3398, - 3405, 3399, 3401, 3407, 3408, 3411, 3413, 3415, 3425, 3414, - 3419, 3421, 3426, 3428, 3436, 3433, 3429, 6613, 6613, 3431, - 3437, 3442, 3445, 3448, 3446, 3449, 3453, 3447, 3454, 3458, - 3459, 3469, 6613, 3460, 3466, 3467, 3470, 3482, 3473, 3484, - 3486, 3485, 3478, 3493, 3488, 6613, 3495, 3496, 3503, 3498, - 3499, 3506, 6613, 3501, 6613, 3504, 3505, 3512, 3507, 3513, - 3514, 3517, 3518, 3522, 3525, 3534, 3529, 3536, 3530, 3533, + 3350, 3349, 3352, 6684, 3355, 3356, 3364, 3375, 3365, 3357, + 3372, 3374, 3376, 6684, 3379, 3380, 3381, 3382, 3383, 3387, + 3389, 3390, 3391, 3395, 3393, 3398, 3401, 3396, 6684, 3406, + 6684, 3399, 3415, 3417, 3420, 3411, 3407, 3427, 3429, 3422, + 3431, 3432, 3433, 3434, 3438, 3440, 3442, 3441, 3443, 3444, + 3454, 3446, 3447, 3449, 3458, 3459, 3461, 3469, 3465, 3466, + 6684, 6684, 3464, 3472, 3474, 3471, 3479, 3480, 3481, 3483, + 3486, 3484, 3493, 3494, 3504, 6684, 3497, 3500, 3499, 3501, + 3513, 3505, 3509, 3516, 3517, 3518, 3525, 3520, 6684, 3524, + 3527, 3534, 3529, 3530, 3537, 6684, 3535, 6684, 3536, 3538, - 3537, 3539, 3540, 3547, 3544, 3545, 3546, 6613, 3549, 3552, - 3554, 3555, 3557, 3563, 3565, 3559, 6613, 3567, 3570, 3569, - 3571, 3578, 3575, 3579, 3580, 3584, 3587, 3585, 3588, 3590, - 6613, 3589, 3593, 3603, 3595, 3596, 3598, 3606, 3609, 3611, - 6613, 3615, 3616, 3623, 3619, 3621, 3622, 3626, 3627, 3628, - 3630, 3631, 3632, 3634, 3635, 3640, 3636, 3638, 3645, 3641, - 3653, 3655, 3642, 3663, 3670, 3656, 6613, 3659, 3666, 3668, - 3669, 3671, 3672, 3674, 3680, 3682, 3676, 3691, 3692, 3683, - 3687, 3695, 3697, 3705, 3700, 6613, 3712, 3698, 3713, 3702, - 3711, 3710, 3715, 3717, 3719, 3721, 3720, 3723, 3724, 3726, + 3540, 3545, 3546, 3547, 3549, 3550, 3551, 3553, 3566, 3567, + 3558, 3569, 3563, 3570, 3572, 3576, 3573, 3584, 3577, 3579, + 3580, 6684, 3582, 3585, 3589, 3587, 3596, 3597, 3594, 3590, + 6684, 3600, 3604, 3606, 3608, 3611, 3612, 3614, 3615, 3617, + 3619, 3620, 3624, 3625, 6684, 3621, 3622, 3635, 3632, 3628, + 3639, 3648, 3638, 3650, 6684, 3651, 3643, 3659, 3655, 3657, + 3658, 3661, 3662, 3663, 3665, 3666, 3667, 3668, 3670, 3674, + 3675, 3671, 3678, 3677, 3689, 3688, 3680, 3692, 3702, 3698, + 6684, 3699, 3703, 3704, 3705, 3706, 3707, 3709, 3712, 3714, + 3715, 3717, 3726, 3724, 3728, 3730, 3732, 3737, 3738, 6684, - 3738, 3730, 3733, 3729, 3734, 3745, 3737, 6613, 3752, 3748, - 3740, 3756, 3750, 3759, 3766, 3763, 3764, 3765, 3768, 3769, - 3770, 3773, 3775, 3776, 3779, 3780, 6613, 6613, 3782, 3783, - 3785, 6613, 3787, 3788, 3798, 3790, 3791, 3799, 3803, 3802, - 3801, 3804, 3806, 3807, 6613, 3813, 3821, 3816, 3817, 3825, - 3820, 6613, 3826, 3834, 3830, 3833, 3831, 3835, 3837, 3839, - 3841, 3842, 3843, 3846, 3854, 3858, 3850, 3849, 3853, 6613, - 3859, 3861, 3862, 3866, 3863, 3871, 6613, 3868, 3872, 3874, - 3878, 3880, 3891, 3877, 3885, 3893, 3888, 3894, 3895, 3897, - 3898, 3899, 3906, 3905, 3907, 3904, 3910, 3913, 6613, 3915, + 3739, 3734, 3746, 3742, 3744, 3751, 3743, 3748, 3755, 3756, + 3757, 3759, 3760, 3765, 3768, 3769, 3766, 3758, 3772, 3779, + 3774, 6684, 3790, 3777, 3780, 3785, 3793, 3796, 3803, 3798, + 3799, 3800, 3802, 3805, 3808, 3806, 3810, 3812, 3815, 3816, + 6684, 6684, 3818, 3820, 3824, 6684, 3825, 3822, 3829, 3828, + 3838, 3827, 3835, 3839, 3840, 3830, 3841, 3847, 3851, 6684, + 3852, 3859, 3854, 3855, 3864, 3861, 6684, 3860, 3871, 3869, + 3870, 3872, 3866, 3876, 3877, 3880, 3878, 3882, 3884, 3893, + 3894, 3890, 3891, 3897, 6684, 3892, 3898, 3899, 3903, 3900, + 3907, 6684, 3905, 3909, 3914, 3921, 3916, 3929, 3926, 3923, - 3916, 3921, 3923, 6613, 3926, 3934, 3935, 6613, 3936, 3931, - 3937, 3938, 3945, 6613, 3940, 3943, 3944, 3946, 3954, 3951, - 3955, 3953, 3958, 3959, 3962, 6613, 3963, 3960, 3961, 6613, - 3965, 3969, 3977, 3981, 3967, 3988, 3983, 3985, 3986, 3984, - 6613, 3991, 6613, 3994, 3995, 3998, 6613, 4000, 4001, 4003, - 4005, 4002, 4009, 4010, 4016, 4018, 4006, 4020, 4021, 4022, - 4023, 4025, 4034, 4024, 4031, 4032, 4033, 6613, 4036, 4035, - 4043, 4038, 4044, 4046, 4049, 4051, 4054, 4056, 6613, 6613, - 4063, 6613, 4057, 4064, 4065, 6613, 4067, 4070, 4074, 4066, - 4075, 4071, 4078, 4079, 6613, 4086, 4088, 6613, 4090, 4091, + 3932, 3933, 3935, 3918, 3936, 3938, 3940, 3948, 3944, 3945, + 3943, 3947, 3951, 3953, 6684, 3955, 3961, 3962, 3966, 6684, + 3968, 3975, 3976, 6684, 3979, 3963, 3978, 3980, 3987, 6684, + 3984, 3986, 3985, 3988, 3999, 3994, 4001, 3991, 3998, 4000, + 4002, 6684, 4003, 4004, 4006, 6684, 4009, 4007, 4020, 4022, + 4017, 4030, 4025, 4027, 4028, 4026, 6684, 4033, 6684, 4036, + 4029, 4042, 6684, 4040, 4044, 4045, 4047, 4048, 4049, 4053, + 4059, 4061, 4051, 4055, 4063, 4065, 4066, 4067, 4074, 4069, + 4073, 4075, 4076, 6684, 4077, 4079, 4083, 4080, 4085, 4094, + 4095, 4088, 4091, 4098, 6684, 6684, 4102, 6684, 4105, 4099, - 4098, 4093, 4094, 4095, 4101, 4096, 4099, 4106, 4107, 4108, - 4109, 4103, 4110, 4111, 6613, 4104, 4112, 4114, 4128, 4122, - 4131, 4133, 4132, 4134, 6613, 4138, 4139, 4142, 4144, 4145, - 6613, 4146, 6613, 4147, 4148, 4150, 4156, 4153, 6613, 4159, - 4163, 4167, 4164, 4168, 4169, 4170, 4174, 4176, 4178, 4186, - 4182, 4183, 4181, 4201, 4184, 6613, 4185, 4188, 4206, 4207, - 4197, 4189, 4216, 4213, 4215, 4203, 4211, 4223, 4214, 4224, - 4228, 4230, 4231, 4220, 6613, 4232, 4233, 4234, 4243, 4240, - 4245, 4246, 6613, 4247, 4248, 4251, 6613, 4249, 4250, 4257, - 4261, 4263, 4264, 4267, 4265, 4269, 6613, 4268, 4273, 4271, + 4104, 6684, 4106, 4110, 4118, 4113, 4116, 4123, 4127, 4114, + 6684, 4129, 4131, 6684, 4119, 4133, 4140, 4136, 4135, 4138, + 4144, 4137, 4141, 4147, 4148, 4149, 4151, 4150, 4152, 4155, + 6684, 4153, 4154, 4156, 4166, 4169, 4170, 4172, 4178, 4171, + 6684, 4179, 4180, 4181, 4188, 4185, 6684, 4186, 6684, 4189, + 4194, 4196, 4198, 4197, 4210, 6684, 4209, 4201, 4206, 4202, + 4212, 4218, 4214, 4221, 4213, 4222, 4229, 4225, 4224, 4227, + 4241, 4236, 6684, 4232, 4233, 4246, 4248, 4238, 4234, 4256, + 4252, 4258, 4243, 4255, 4265, 4262, 4266, 4268, 4270, 4272, + 4273, 6684, 4275, 4276, 4259, 4289, 4281, 4285, 4286, 6684, - 4272, 4287, 4286, 6613, 6613, 4288, 6613, 4290, 4274, 4278, - 4298, 4275, 4299, 4302, 4303, 4305, 4306, 4309, 4310, 4276, - 4311, 4320, 4317, 4324, 4327, 4328, 4326, 4191, 4331, 6613, - 6613, 4333, 4334, 4336, 4338, 4340, 4342, 4343, 4350, 4347, - 4355, 4358, 4348, 4365, 6613, 4362, 4363, 4364, 4367, 6613, - 4346, 4369, 4370, 4373, 4372, 4376, 4375, 4378, 4379, 4380, - 4382, 4385, 4386, 4390, 4392, 4396, 4397, 4400, 4399, 4403, - 4405, 4407, 6613, 4412, 4408, 4410, 4411, 4413, 4417, 4421, - 4426, 4422, 6613, 4415, 6613, 4428, 4425, 4440, 4431, 4445, - 4447, 4432, 4448, 4449, 4451, 4453, 4456, 4457, 4466, 4458, + 4290, 4292, 4295, 6684, 4296, 4299, 4301, 4304, 4305, 4306, + 4311, 4307, 4313, 4312, 6684, 4308, 4314, 4315, 4325, 4329, + 4322, 6684, 6684, 4332, 6684, 4333, 4318, 4337, 4336, 4340, + 4344, 4343, 4346, 4348, 4345, 4356, 4357, 4350, 4349, 4367, + 4358, 4372, 4375, 4376, 4374, 4373, 4359, 6684, 6684, 4383, + 4384, 4378, 4389, 4390, 4386, 4393, 4400, 4392, 4395, 4402, + 4403, 4412, 6684, 4405, 4404, 4413, 4407, 6684, 4414, 4415, + 4418, 4416, 4421, 4419, 4422, 4423, 4425, 4428, 4433, 4436, + 4429, 4442, 4434, 4435, 4445, 4446, 4449, 4448, 4451, 4456, + 6684, 4458, 4452, 4459, 4462, 4463, 4464, 4467, 4468, 4470, - 4462, 4467, 4460, 4471, 4477, 4474, 6613, 4478, 4480, 4481, - 4482, 4485, 4487, 4488, 4490, 4491, 4493, 4495, 4497, 4499, - 4504, 4505, 4506, 4508, 4511, 6613, 4512, 4514, 4516, 4521, - 4518, 4523, 4524, 4525, 4532, 4528, 4533, 4537, 6613, 4534, - 4538, 4543, 6613, 4540, 4544, 4546, 4550, 4552, 4545, 4553, - 4555, 4556, 6613, 4563, 4559, 4565, 4566, 4568, 4569, 4424, - 4573, 4575, 4576, 4582, 6613, 4583, 4581, 4589, 4590, 4588, - 4591, 4596, 4592, 4598, 6613, 4601, 4603, 4599, 4611, 4607, - 4615, 4616, 4618, 4610, 4612, 4619, 4620, 4627, 4630, 4631, - 4632, 4643, 4644, 4641, 6613, 4633, 6613, 4642, 4647, 4655, + 6684, 4474, 6684, 4473, 4476, 4475, 4477, 4493, 4494, 4495, + 4484, 4482, 4500, 4501, 4504, 4505, 4509, 4506, 4510, 4511, + 4515, 4517, 4519, 4520, 6684, 4526, 4514, 4522, 4528, 4530, + 4533, 4535, 4537, 4538, 4544, 4545, 4541, 4548, 4550, 4539, + 4552, 4551, 4555, 4557, 6684, 4558, 4565, 4559, 4567, 4562, + 4571, 4570, 4574, 4582, 4572, 4579, 4583, 6684, 4584, 4586, + 4588, 6684, 4589, 4592, 4593, 4596, 4598, 4595, 4601, 4602, + 4603, 6684, 4611, 4604, 4612, 4607, 4613, 4616, 4620, 4622, + 4626, 4625, 4629, 6684, 4636, 4628, 4633, 4637, 4639, 4641, + 4644, 4643, 4645, 6684, 4650, 4651, 4652, 4659, 4657, 4658, - 4656, 4650, 4660, 4658, 4652, 6613, 4654, 4662, 4667, 4664, - 4668, 6613, 4669, 4671, 4673, 4680, 6613, 4682, 4684, 4675, - 4686, 4691, 4693, 6613, 4697, 4699, 4700, 4707, 4709, 4704, - 4711, 4706, 4714, 4712, 4708, 4716, 4717, 4725, 4723, 4721, - 6613, 4727, 4729, 4734, 4736, 4730, 4738, 4728, 4740, 4743, - 4745, 6613, 4746, 4749, 4750, 4752, 4753, 4754, 4755, 4762, - 4759, 4761, 4763, 4764, 4767, 4768, 6613, 4773, 4771, 4775, - 4784, 4626, 4786, 6613, 4781, 6613, 4777, 4792, 4794, 4776, - 4795, 6613, 6613, 4799, 4804, 4800, 4806, 4801, 6613, 6613, - 4808, 6613, 4809, 6613, 4811, 4813, 6613, 6613, 4814, 4815, + 4666, 4663, 4669, 4661, 4662, 4676, 4672, 4680, 4682, 4683, + 4670, 4693, 4694, 4695, 6684, 4677, 6684, 4696, 4700, 4704, + 4702, 4706, 4707, 4685, 4709, 6684, 4710, 4712, 4714, 4717, + 4716, 6684, 4718, 4719, 4721, 4722, 6684, 4720, 4733, 4724, + 4727, 4741, 4742, 6684, 4746, 4747, 4748, 4755, 4757, 4752, + 4759, 4754, 4762, 4760, 4756, 4764, 4765, 4773, 4771, 4769, + 6684, 4775, 4777, 4782, 4784, 4778, 4786, 4776, 4788, 4791, + 4793, 6684, 4794, 4797, 4798, 4800, 4801, 4802, 4803, 4810, + 4807, 4809, 4811, 4812, 4815, 4816, 6684, 4821, 4819, 4823, + 4832, 4834, 4836, 6684, 4839, 6684, 4829, 4824, 4841, 4840, - 4816, 4817, 4824, 6613, 4831, 6613, 4826, 4832, 4818, 4828, - 4835, 6613, 4836, 4839, 4837, 4844, 4846, 6613, 4838, 4854, - 4843, 4851, 6613, 4853, 4857, 4858, 4862, 6613, 4863, 4868, - 4865, 4869, 4872, 4871, 4873, 4874, 4878, 4879, 4884, 4882, - 4883, 4885, 4894, 4896, 4898, 4900, 4901, 4886, 4905, 4906, - 4908, 4911, 4912, 4914, 4915, 4917, 4918, 4920, 4922, 4925, - 4926, 4676, 4927, 4928, 4930, 4929, 4932, 4941, 4933, 4943, - 4944, 4945, 4946, 4947, 4950, 4951, 4954, 4955, 4959, 4960, - 4962, 6613, 4963, 4957, 4965, 4971, 4973, 4978, 4980, 4990, - 4992, 4993, 6613, 4995, 6613, 4997, 4982, 4999, 4967, 5001, + 4845, 6684, 6684, 4847, 4855, 4850, 4853, 4854, 6684, 6684, + 4857, 6684, 4858, 6684, 4859, 4861, 6684, 6684, 4860, 4864, + 4867, 4869, 4870, 4872, 6684, 4879, 6684, 4886, 4881, 4868, + 4883, 4887, 6684, 4885, 4891, 4889, 4895, 4897, 6684, 4893, + 4906, 4898, 4899, 6684, 4909, 4910, 4903, 4911, 6684, 4917, + 4920, 4921, 4912, 4915, 4923, 4925, 4931, 4932, 4935, 4933, + 4934, 4936, 4937, 4940, 4944, 4949, 4951, 4941, 4952, 4955, + 4957, 4961, 4959, 4963, 4964, 4965, 4966, 4968, 4969, 4973, + 4977, 4974, 4978, 4980, 4979, 4981, 4989, 4983, 4992, 4996, + 4993, 4997, 4998, 5000, 5004, 5005, 4999, 5006, 5010, 5014, - 6613, 4984, 5002, 5003, 5006, 5005, 5007, 5009, 5008, 5012, - 5013, 5017, 6613, 5022, 5015, 5019, 5023, 5034, 6613, 5035, - 5037, 5024, 5038, 5039, 5040, 5043, 5045, 5048, 5047, 5050, - 5052, 5053, 5054, 5059, 5058, 5068, 5075, 5060, 5062, 5070, - 5071, 5074, 5076, 5080, 5081, 5082, 5088, 5090, 5094, 6613, - 5083, 6613, 5095, 5091, 5097, 5098, 5101, 5099, 5103, 6613, - 6613, 5105, 5108, 5113, 5114, 5115, 5117, 5120, 5121, 5123, - 6613, 5124, 5126, 5135, 5128, 6613, 5132, 5137, 5138, 5143, - 6613, 5140, 5144, 5145, 5151, 5146, 5155, 5156, 5159, 5148, - 5160, 5162, 5167, 6613, 6613, 6613, 6613, 5169, 5163, 5174, + 5007, 5009, 5011, 6684, 5017, 5020, 5025, 5027, 5029, 5031, + 5032, 5034, 5039, 5040, 6684, 5044, 6684, 5046, 5049, 5050, + 5051, 5053, 6684, 5052, 5055, 5054, 5057, 5056, 5058, 5060, + 5059, 5063, 5064, 5074, 6684, 5084, 5066, 5069, 5085, 5087, + 6684, 5088, 5090, 5092, 5093, 5095, 5098, 5096, 5099, 5100, + 5101, 5104, 5106, 5107, 5108, 5109, 5119, 5122, 5129, 5112, + 5124, 5125, 5128, 5131, 5132, 5133, 5135, 5141, 5138, 5145, + 5149, 6684, 5146, 6684, 5150, 5151, 5154, 5155, 5156, 5157, + 5158, 5160, 6684, 6684, 5163, 5164, 5169, 5171, 5172, 5174, + 5176, 5177, 5180, 6684, 5181, 5185, 5194, 5182, 6684, 5188, - 5171, 5175, 5177, 5178, 5180, 5176, 6613, 5190, 6613, 6613, - 5192, 5193, 5181, 5194, 5196, 5183, 5200, 5203, 6613, 5201, - 5205, 5207, 5206, 5214, 5218, 5215, 5208, 5223, 5219, 5224, - 5225, 5228, 5236, 5232, 5233, 5235, 5239, 5241, 5248, 6613, - 6613, 5238, 5253, 5242, 5255, 5256, 5257, 5258, 5265, 5260, - 5263, 5266, 5267, 5269, 5270, 5279, 5280, 5271, 5278, 6613, - 5281, 5284, 5283, 6613, 5285, 6613, 5287, 5293, 5294, 5295, - 5296, 5300, 5301, 5304, 6613, 6613, 5299, 5316, 5314, 6613, - 6613, 5303, 5306, 5311, 5319, 5321, 5315, 5323, 5324, 5336, - 5325, 6613, 5327, 6613, 5329, 5333, 5341, 5331, 5351, 5352, + 5191, 5197, 5199, 6684, 5200, 5201, 5202, 5205, 5207, 5209, + 5213, 5214, 5215, 5216, 5219, 5221, 6684, 6684, 6684, 6684, + 5224, 5222, 5230, 5227, 5232, 5233, 5234, 5236, 5237, 5238, + 6684, 5247, 6684, 6684, 5249, 5250, 5248, 5251, 5252, 5258, + 5259, 5261, 6684, 5263, 5265, 5266, 5264, 5273, 5275, 5276, + 5267, 5283, 5280, 5284, 5285, 5288, 5296, 5292, 5293, 5295, + 5299, 5301, 5308, 6684, 6684, 5298, 5313, 5302, 5315, 5316, + 5317, 5318, 5325, 5320, 5323, 5326, 5327, 5329, 5330, 5339, + 5340, 5331, 5338, 6684, 5341, 5344, 5343, 6684, 5345, 6684, + 5347, 5353, 5354, 5355, 5356, 5360, 5361, 5364, 6684, 6684, - 5353, 5355, 5350, 5338, 6613, 5348, 5359, 6613, 5366, 5361, - 5363, 5362, 5365, 6613, 5368, 5370, 5374, 5378, 6613, 5382, - 5371, 5379, 6613, 5386, 6613, 5383, 5387, 5389, 5396, 5393, - 6613, 5391, 5397, 6613, 5400, 5407, 5409, 5402, 6613, 5404, - 6613, 5394, 5417, 5418, 5421, 5408, 5425, 5413, 5410, 5427, - 5435, 5431, 5432, 6613, 6613, 5439, 5437, 135, 5444, 5434, - 5440, 5445, 5446, 5453, 5448, 5450, 5456, 6613, 6613, 5458, - 6613, 5451, 5461, 6613, 5449, 5466, 5467, 5462, 5470, 5471, - 5472, 5476, 5478, 5481, 5482, 5483, 5484, 5486, 5502, 5505, - 5487, 5508, 5509, 5511, 5513, 5515, 5517, 5518, 5500, 5498, + 5359, 5376, 5374, 6684, 6684, 5363, 5366, 5371, 5379, 5381, + 5375, 5383, 5384, 5396, 5385, 6684, 5387, 6684, 5389, 5393, + 5401, 5391, 5411, 5412, 5403, 5413, 5415, 5410, 5417, 6684, + 5419, 5420, 6684, 5429, 5424, 5426, 5425, 5431, 6684, 5434, + 5432, 5437, 5441, 6684, 5443, 5444, 5447, 6684, 5454, 6684, + 5438, 5451, 5445, 5461, 5459, 6684, 5449, 5462, 6684, 5465, + 5467, 5470, 5468, 6684, 5475, 5472, 6684, 5476, 5478, 5479, + 5483, 5484, 5486, 5487, 5488, 5489, 5497, 5493, 5494, 6684, + 6684, 5501, 5502, 135, 5510, 5505, 5511, 5512, 5508, 5519, + 5515, 5516, 5518, 6684, 6684, 5521, 6684, 5522, 5524, 6684, - 5521, 5519, 5522, 5525, 5528, 5529, 6613, 5531, 5536, 5488, - 5532, 6613, 5540, 5537, 5542, 5546, 6613, 5553, 5545, 5547, - 5555, 6613, 5543, 5558, 5559, 5560, 5562, 5565, 5567, 5572, - 5570, 5568, 5574, 6613, 6613, 6613, 5575, 5585, 6613, 5587, - 5579, 5573, 5588, 6613, 5590, 5591, 5592, 6613, 6613, 5594, - 5596, 5595, 5603, 6613, 5599, 6613, 5601, 6613, 5602, 5608, - 5609, 5612, 6613, 5618, 5614, 5616, 5624, 6613, 5632, 5634, - 5636, 5617, 5620, 5629, 5637, 6613, 5644, 5641, 5645, 5652, - 5639, 5643, 5647, 5649, 5653, 5662, 5658, 5660, 6613, 5661, - 5664, 5667, 5673, 5663, 5666, 5670, 6613, 5675, 6613, 5677, + 5523, 5533, 5534, 5525, 5539, 5529, 5537, 5538, 5546, 5541, + 5550, 5549, 5551, 5554, 5565, 5572, 5556, 5568, 5573, 5576, + 5578, 5580, 5569, 5582, 5583, 5558, 5586, 5588, 5589, 5590, + 5592, 5593, 6684, 5596, 5598, 5601, 5600, 6684, 5606, 5602, + 5611, 5614, 6684, 5616, 5608, 5620, 5621, 5622, 6684, 5623, + 5625, 5628, 5626, 5627, 5633, 5634, 5643, 5638, 5636, 5648, + 6684, 6684, 6684, 5650, 5640, 6684, 5654, 5647, 5656, 5657, + 6684, 5659, 5660, 5662, 6684, 6684, 5663, 5664, 6684, 5665, + 5672, 6684, 5667, 6684, 5668, 6684, 5671, 5677, 5683, 5678, + 6684, 5686, 5680, 5690, 5694, 6684, 5697, 5700, 5702, 5703, - 6613, 5678, 5679, 5680, 5687, 5686, 5688, 5689, 5693, 5699, - 5694, 5690, 5701, 5705, 5706, 6613, 6613, 5710, 5712, 6613, - 5713, 6613, 5715, 6613, 5716, 5717, 5719, 5718, 6613, 5721, - 5722, 5728, 5730, 5726, 5729, 6613, 5738, 5731, 5736, 5741, - 6613, 6613, 5743, 5750, 5746, 6613, 5747, 5753, 5757, 5754, - 5759, 5760, 5761, 5762, 5772, 5764, 5765, 5767, 5776, 5773, - 5781, 5786, 5779, 6613, 6613, 6613, 5785, 5790, 5798, 5794, - 5796, 5801, 5791, 6613, 5800, 5803, 5806, 5804, 5813, 5808, - 5815, 6613, 5812, 5816, 5817, 5818, 5820, 5821, 5822, 5827, - 6613, 5829, 5833, 5830, 5837, 5839, 5846, 5848, 5850, 5841, + 5705, 5692, 5708, 6684, 5715, 5714, 5716, 5707, 5710, 5717, + 5718, 5722, 5720, 5730, 5723, 5732, 6684, 5733, 5735, 5736, + 5742, 5726, 5734, 5744, 6684, 5746, 6684, 5751, 6684, 5747, + 5752, 5753, 5754, 5755, 5756, 5761, 5762, 5772, 5768, 5758, + 5764, 5779, 5770, 6684, 6684, 5781, 5783, 6684, 5774, 6684, + 5785, 6684, 5786, 5787, 5788, 5791, 5792, 6684, 5799, 5794, + 5796, 5806, 5801, 5804, 6684, 5808, 5811, 5810, 5813, 6684, + 6684, 5815, 5822, 5821, 6684, 5817, 5819, 5828, 5820, 5831, + 5832, 5833, 5834, 5844, 5836, 5837, 5841, 5846, 5847, 5848, + 5853, 5857, 6684, 6684, 6684, 5852, 5859, 5866, 5868, 5869, - 5843, 5858, 5855, 6613, 5857, 6613, 6613, 5853, 6613, 5859, - 5861, 5862, 5863, 6613, 5866, 5867, 5868, 5871, 5870, 5873, - 5875, 5877, 6613, 5886, 5878, 5888, 5889, 6613, 6613, 5892, - 6613, 5896, 5897, 5899, 5906, 5903, 5901, 5905, 5911, 6613, - 5908, 5914, 5910, 5917, 5918, 5920, 5921, 6613, 5925, 5922, - 5924, 5926, 6613, 5929, 5934, 5931, 5935, 5938, 6613, 5940, - 5939, 5942, 5952, 6613, 5951, 5955, 5953, 6613, 6613, 5961, - 5963, 5964, 6613, 6613, 6613, 5970, 5967, 5954, 5975, 6613, - 5977, 5981, 5985, 5989, 5980, 6613, 5988, 5990, 5992, 5994, - 5995, 6613, 6613, 5996, 5997, 5998, 6001, 6613, 6613, 6002, + 5871, 5863, 6684, 5870, 5874, 5877, 5876, 5884, 5880, 5886, + 6684, 5887, 5883, 5888, 5889, 5891, 5892, 5893, 5894, 6684, + 5905, 5907, 5910, 5900, 5912, 5919, 5921, 5923, 5916, 5908, + 5930, 5926, 6684, 5928, 6684, 6684, 5925, 6684, 5932, 5933, + 5937, 5935, 5938, 6684, 5941, 5936, 5942, 5945, 5943, 5949, + 5947, 5951, 6684, 5966, 5948, 5952, 5964, 6684, 6684, 5973, + 6684, 5975, 5965, 5953, 5982, 5977, 5978, 5980, 5983, 6684, + 5981, 5987, 5984, 5990, 5991, 5993, 5994, 6684, 5995, 5997, + 5998, 5999, 6684, 6002, 6001, 6006, 6007, 6008, 6684, 6009, + 6011, 6021, 6022, 6684, 6012, 6026, 6025, 6684, 6684, 6034, - 6004, 6006, 6005, 6007, 6613, 6008, 6013, 6020, 6015, 6028, - 6031, 6033, 6021, 6034, 6035, 6043, 6046, 6023, 6038, 6041, - 6045, 6049, 6051, 6056, 6058, 6057, 6060, 6065, 6061, 6066, - 6613, 6613, 6068, 6613, 6073, 6069, 6613, 6613, 6075, 6080, - 6082, 6084, 6086, 6088, 6090, 6092, 6077, 6613, 6093, 6095, - 6096, 6097, 6098, 6613, 6100, 6107, 6099, 6104, 6101, 6110, - 6116, 6613, 6108, 6121, 6613, 6613, 6112, 6122, 6124, 6126, - 6128, 6613, 6129, 6137, 6133, 6134, 6135, 6138, 6136, 6613, - 6142, 6140, 6613, 6613, 6141, 6143, 6613, 6613, 6144, 6613, - 6613, 6613, 6613, 6613, 6613, 6613, 6613, 6155, 6159, 6613, + 6036, 6037, 6684, 6684, 6684, 6040, 6042, 6030, 6044, 6684, + 6046, 6053, 6057, 6059, 6063, 6048, 6684, 6062, 6056, 6069, + 6064, 6066, 6684, 6684, 6070, 6071, 6072, 6074, 6684, 6684, + 6075, 6076, 6081, 6078, 6079, 6684, 6084, 6088, 6096, 6089, + 6103, 6106, 6108, 6086, 6092, 6109, 6116, 6117, 6099, 6112, + 6113, 6114, 6120, 6122, 6129, 6132, 6130, 6138, 6140, 6131, + 6142, 6684, 6684, 6144, 6684, 6149, 6145, 6684, 6684, 6151, + 6153, 6156, 6158, 6684, 6160, 6162, 6164, 6166, 6167, 6684, + 6168, 6170, 6171, 6123, 6172, 6684, 6175, 6174, 6176, 6182, + 6178, 6183, 6186, 6684, 6181, 6188, 6684, 6684, 6179, 6198, - 6151, 6166, 6168, 6172, 6613, 6153, 6169, 6157, 6163, 6613, - 6173, 6613, 6174, 6175, 6177, 6179, 6180, 6184, 6188, 6189, - 6191, 6190, 6192, 6196, 6193, 6198, 6194, 6200, 6207, 6204, - 6205, 6213, 6613, 6613, 6613, 6214, 6215, 6220, 6222, 6224, - 6226, 6230, 6233, 6234, 6216, 6237, 6238, 6239, 6241, 6242, - 6251, 6246, 6247, 6249, 6256, 6248, 6262, 6613, 6264, 6250, - 6252, 6270, 6613, 6258, 6613, 6267, 6613, 6613, 6275, 6276, - 6272, 6278, 6287, 6288, 6279, 6283, 6284, 6286, 6290, 6613, - 6295, 6613, 6613, 6292, 6298, 6613, 6300, 6301, 6613, 6299, - 6302, 6304, 6308, 6309, 6306, 6310, 6311, 6327, 6613, 6613, + 6189, 6199, 6202, 6684, 6203, 6210, 6205, 6207, 6208, 6211, + 6209, 6684, 6216, 6214, 6684, 6684, 6213, 6218, 6684, 6684, + 6221, 6684, 6684, 6684, 6684, 6684, 6684, 6684, 6684, 6226, + 6232, 6684, 6224, 6239, 6241, 6243, 6684, 6228, 6236, 6230, + 6244, 6684, 6246, 6684, 6248, 6250, 6249, 6253, 6252, 6256, + 6259, 6258, 6262, 6263, 6265, 6266, 6269, 6270, 6268, 6274, + 6283, 6276, 6284, 6286, 6684, 6684, 6684, 6285, 6287, 6293, + 6289, 6297, 6300, 6303, 6306, 6294, 6308, 6309, 6310, 6311, + 6314, 6317, 6324, 6319, 6322, 6320, 6327, 6321, 6330, 6684, + 6336, 6323, 6331, 6343, 6684, 6337, 6684, 6340, 6684, 6684, - 6312, 6317, 6320, 6329, 6331, 6330, 6333, 6337, 6338, 6340, - 6341, 6350, 6613, 6347, 6348, 6352, 6613, 6354, 6349, 6355, - 6356, 6357, 6365, 6361, 6364, 6613, 6366, 6613, 6370, 6372, - 6373, 6363, 6371, 6374, 6385, 6383, 6379, 6613, 6389, 6393, - 6391, 6395, 6397, 6399, 6400, 6401, 6403, 6406, 6412, 6409, - 6416, 6417, 6413, 6421, 6418, 6613, 6428, 6419, 6613, 6425, - 6429, 6422, 6431, 6435, 6613, 6440, 6433, 6442, 6443, 6446, - 6447, 6613, 6449, 6456, 6451, 6613, 6457, 6613, 6613, 6459, - 6453, 6460, 6466, 6468, 6613, 6613, 6613, 6493, 6500, 6507, - 6514, 6521, 6528, 6535, 88, 6542, 6549, 6556, 6563, 6570, + 6345, 6346, 6348, 6349, 6357, 6359, 6355, 6354, 6360, 6361, + 6363, 6684, 6365, 6684, 6684, 6370, 6372, 6684, 6371, 6373, + 6684, 6374, 6375, 6376, 6383, 6384, 6381, 6382, 6388, 6390, + 6684, 6684, 6378, 6386, 6399, 6402, 6403, 6411, 6406, 6409, + 6410, 6412, 6413, 6422, 6684, 6420, 6421, 6424, 6684, 6425, + 6427, 6428, 6430, 6431, 6439, 6434, 6438, 6684, 6436, 6684, + 6441, 6443, 6442, 6444, 6445, 6448, 6456, 6454, 6458, 6684, + 6460, 6465, 6462, 6467, 6469, 6472, 6473, 6474, 6476, 6478, + 6482, 6488, 6485, 6489, 6479, 6490, 6491, 6684, 6500, 6494, + 6684, 6497, 6501, 6503, 6504, 6507, 6684, 6512, 6505, 6509, - 6577, 6584, 6591, 6598, 6605 + 6514, 6517, 6518, 6684, 6520, 6527, 6529, 6684, 6530, 6684, + 6684, 6532, 6521, 6531, 6534, 6539, 6684, 6684, 6684, 6564, + 6571, 6578, 6585, 6592, 6599, 6606, 88, 6613, 6620, 6627, + 6634, 6641, 6648, 6655, 6662, 6669, 6676 } ; -static const flex_int16_t yy_def[3406] = +static const flex_int16_t yy_def[3438] = { 0, - 3387, 1, 3388, 3388, 3389, 3389, 3390, 3390, 3391, 3391, - 3392, 3392, 3393, 3393, 3394, 3394, 3387, 3395, 3387, 3387, - 3387, 3387, 3396, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3397, 3387, 3387, 3387, - 3397, 3398, 3387, 3387, 3387, 3398, 3399, 3387, 3387, 3387, - 3387, 3399, 3400, 3387, 3387, 3387, 3400, 3401, 3387, 3402, - 3387, 3401, 3401, 3403, 3387, 3387, 3387, 3387, 3403, 3404, - 3387, 3387, 3387, 3404, 3395, 3395, 3387, 3405, 3396, 3405, - 3396, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3419, 1, 3420, 3420, 3421, 3421, 3422, 3422, 3423, 3423, + 3424, 3424, 3425, 3425, 3426, 3426, 3419, 3427, 3419, 3419, + 3419, 3419, 3428, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3429, 3419, 3419, 3419, + 3429, 3430, 3419, 3419, 3419, 3430, 3431, 3419, 3419, 3419, + 3419, 3431, 3432, 3419, 3419, 3419, 3432, 3433, 3419, 3434, + 3419, 3433, 3433, 3435, 3419, 3419, 3419, 3419, 3435, 3436, + 3419, 3419, 3419, 3436, 3427, 3427, 3419, 3437, 3428, 3437, + 3428, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3397, - 3397, 3398, 3398, 3399, 3399, 3387, 3400, 3400, 3401, 3401, - 3402, 3402, 3401, 3403, 3403, 3387, 3404, 3404, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3429, + 3429, 3430, 3430, 3431, 3431, 3419, 3432, 3432, 3433, 3433, + 3434, 3434, 3433, 3435, 3435, 3419, 3436, 3436, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3387, 3395, 3387, 3387, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3419, + 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3401, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3433, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3387, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3433, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3401, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3401, 3395, 3387, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, - 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, + 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3419, 3427, 3419, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3395, 3395, 3395, 3387, 3387, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3401, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, + 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3401, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3387, - 3395, 3387, 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3433, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, + 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3419, + 3427, 3419, 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3387, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3395, 3387, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3419, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3401, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3387, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3419, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3419, 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3427, + 3427, 3419, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3387, 3395, 3395, 3387, - 3395, 3387, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3387, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3419, + 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, + 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, 3427, 3427, - 3395, 3395, 3395, 3387, 3395, 3387, 3387, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, 3387, 3395, - 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3387, 3395, - 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3387, 3395, 3395, 3395, 3395, 3387, 3387, 3395, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3419, 3419, 3427, 3419, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3419, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3419, 3427, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3387, 3387, 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3387, 3387, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3395, 3387, 3387, 3395, 3395, 3387, 3387, 3395, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3395, 3395, 3387, + 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3419, 3419, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3419, 3419, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3387, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3387, 3395, 3387, 3395, 3387, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, - 3395, 3387, 3387, 3395, 3395, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3387, + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3419, + 3427, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3427, + 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3419, 3419, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, 3395, - 3395, 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3387, 3395, - 3395, 3395, 3395, 3395, 3387, 3395, 3395, 3395, 3395, 3395, - 3395, 3387, 3395, 3395, 3395, 3387, 3395, 3387, 3387, 3395, - 3395, 3395, 3395, 3395, 3387, 3387, 0, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3419, 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, + 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3387, 3387, 3387, 3387, 3387 + 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, + 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 0, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419 } ; -static const flex_int16_t yy_nxt[6654] = +static const flex_int16_t yy_nxt[6725] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1599,7 +1609,7 @@ static const flex_int16_t yy_nxt[6654] = 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 726, 334, 86, 338, 323, 331, + 332, 86, 86, 86, 730, 334, 86, 338, 323, 331, 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, @@ -1624,656 +1634,664 @@ static const flex_int16_t yy_nxt[6654] = 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, - 457, 448, 86, 444, 86, 455, 86, 86, 86, 458, - 461, 459, 499, 449, 170, 462, 450, 456, 469, 86, + 457, 448, 86, 444, 86, 455, 86, 86, 170, 462, + 458, 463, 459, 449, 464, 86, 450, 456, 469, 470, - 463, 451, 452, 453, 454, 466, 86, 460, 464, 465, - 467, 86, 86, 86, 86, 468, 86, 86, 86, 477, - 86, 86, 86, 479, 86, 475, 478, 476, 86, 472, - 470, 86, 480, 471, 473, 474, 86, 86, 86, 481, - 483, 482, 86, 487, 86, 86, 86, 86, 488, 86, - 489, 492, 86, 505, 493, 1513, 484, 486, 485, 490, - 86, 86, 86, 86, 491, 86, 494, 495, 497, 86, - 498, 86, 500, 496, 86, 506, 507, 86, 86, 508, - 504, 86, 86, 86, 86, 501, 509, 86, 502, 547, - 503, 86, 510, 86, 520, 86, 511, 522, 519, 523, + 86, 451, 452, 453, 454, 460, 467, 86, 461, 465, + 466, 468, 86, 86, 86, 86, 86, 86, 478, 86, + 86, 86, 86, 480, 476, 477, 479, 86, 481, 473, + 471, 86, 86, 472, 474, 475, 86, 483, 86, 485, + 86, 488, 86, 489, 86, 490, 482, 86, 484, 86, + 506, 86, 86, 494, 491, 487, 493, 495, 486, 86, + 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, + 501, 497, 86, 507, 86, 500, 508, 86, 505, 86, + 86, 86, 521, 502, 510, 509, 503, 524, 504, 86, + 511, 86, 522, 86, 512, 86, 635, 86, 527, 513, - 86, 524, 86, 525, 512, 86, 513, 527, 514, 537, - 535, 536, 521, 170, 538, 86, 86, 86, 86, 526, - 86, 515, 86, 539, 516, 168, 517, 86, 518, 86, - 540, 528, 529, 543, 541, 542, 544, 86, 86, 545, - 546, 530, 548, 531, 532, 533, 86, 550, 534, 86, - 86, 549, 86, 86, 552, 86, 86, 551, 554, 559, - 557, 86, 560, 86, 86, 86, 86, 556, 564, 86, - 555, 558, 553, 86, 86, 86, 562, 86, 568, 569, - 563, 86, 567, 561, 86, 86, 86, 86, 86, 566, - 86, 578, 574, 86, 565, 570, 86, 579, 575, 576, + 86, 86, 514, 86, 515, 526, 516, 86, 525, 86, + 523, 529, 539, 170, 528, 537, 538, 540, 86, 517, + 544, 86, 518, 86, 519, 86, 520, 86, 547, 530, + 531, 541, 546, 86, 543, 86, 545, 86, 542, 532, + 86, 533, 534, 535, 548, 554, 536, 552, 86, 86, + 86, 551, 86, 86, 561, 550, 86, 553, 86, 549, + 86, 559, 86, 555, 86, 562, 86, 558, 556, 557, + 86, 566, 86, 560, 86, 86, 86, 86, 564, 86, + 569, 168, 563, 86, 565, 570, 571, 86, 86, 86, + 568, 576, 86, 583, 86, 573, 572, 567, 580, 574, - 571, 572, 573, 86, 581, 582, 86, 86, 86, 86, - 86, 595, 580, 86, 86, 166, 577, 86, 587, 597, - 86, 583, 596, 584, 586, 590, 585, 86, 86, 588, - 86, 589, 598, 591, 592, 600, 599, 593, 594, 86, - 86, 86, 86, 86, 603, 602, 604, 605, 86, 86, - 607, 601, 86, 609, 86, 86, 86, 86, 612, 86, - 610, 613, 86, 614, 86, 608, 86, 86, 606, 611, - 86, 617, 86, 619, 86, 618, 86, 615, 86, 86, - 86, 620, 86, 625, 86, 616, 621, 86, 626, 86, - 624, 86, 628, 86, 627, 86, 622, 623, 629, 86, + 86, 575, 577, 578, 86, 86, 86, 86, 581, 86, + 86, 86, 86, 597, 166, 600, 589, 86, 86, 86, + 579, 585, 592, 582, 584, 586, 588, 590, 587, 591, + 593, 594, 86, 86, 595, 596, 86, 602, 599, 603, + 86, 598, 86, 86, 86, 601, 604, 86, 605, 86, + 606, 86, 609, 86, 607, 611, 86, 86, 86, 86, + 614, 615, 608, 612, 86, 86, 610, 86, 616, 86, + 613, 86, 86, 86, 621, 86, 619, 620, 86, 86, + 617, 86, 622, 86, 86, 86, 627, 623, 86, 628, + 618, 86, 629, 626, 86, 631, 86, 625, 624, 86, - 631, 86, 633, 86, 86, 86, 86, 86, 630, 86, - 86, 632, 635, 86, 636, 638, 634, 86, 86, 640, - 86, 86, 646, 165, 637, 649, 639, 641, 86, 642, - 647, 643, 645, 648, 86, 86, 86, 644, 86, 86, - 86, 653, 86, 651, 86, 656, 652, 658, 650, 86, - 654, 86, 659, 86, 86, 655, 86, 86, 86, 662, - 86, 665, 657, 661, 86, 666, 86, 86, 86, 86, - 86, 668, 86, 86, 700, 663, 660, 664, 86, 667, - 86, 86, 671, 669, 682, 163, 86, 670, 86, 672, - 680, 683, 86, 681, 673, 86, 674, 684, 86, 685, + 634, 632, 86, 630, 86, 636, 633, 86, 86, 86, + 86, 86, 86, 86, 86, 638, 641, 639, 86, 649, + 86, 86, 643, 637, 86, 86, 86, 86, 729, 650, + 640, 644, 642, 645, 647, 648, 646, 651, 653, 86, + 86, 657, 86, 86, 652, 656, 86, 659, 654, 86, + 662, 655, 86, 86, 86, 661, 86, 86, 86, 86, + 86, 658, 665, 668, 86, 86, 86, 86, 664, 660, + 669, 671, 86, 86, 663, 86, 86, 86, 86, 670, + 666, 667, 86, 672, 86, 86, 674, 86, 685, 728, + 687, 673, 86, 675, 688, 683, 686, 684, 676, 86, - 86, 688, 675, 689, 676, 686, 86, 677, 678, 687, - 86, 86, 693, 86, 679, 698, 86, 86, 86, 692, - 697, 86, 690, 694, 86, 691, 695, 86, 702, 696, - 86, 86, 86, 86, 86, 86, 699, 86, 86, 703, - 708, 86, 704, 709, 733, 86, 701, 705, 86, 86, - 706, 712, 86, 711, 86, 707, 710, 713, 714, 170, - 716, 717, 86, 715, 86, 86, 86, 718, 86, 86, - 86, 86, 86, 723, 725, 728, 86, 86, 720, 727, - 721, 719, 729, 724, 731, 86, 722, 86, 86, 730, - 86, 86, 86, 86, 86, 737, 86, 732, 736, 742, + 677, 86, 692, 689, 86, 86, 678, 86, 679, 690, + 693, 680, 681, 691, 86, 697, 696, 694, 682, 86, + 695, 86, 86, 86, 86, 701, 698, 86, 704, 699, + 86, 86, 706, 86, 86, 700, 86, 86, 86, 86, + 86, 86, 86, 86, 703, 712, 702, 165, 707, 708, + 713, 709, 717, 710, 86, 705, 86, 715, 714, 86, + 711, 170, 716, 718, 720, 719, 721, 86, 86, 86, + 86, 86, 86, 86, 732, 86, 86, 727, 163, 733, + 86, 86, 722, 724, 731, 86, 725, 723, 735, 86, + 726, 86, 734, 736, 86, 86, 86, 86, 737, 86, - 86, 734, 86, 738, 743, 86, 735, 745, 86, 791, - 739, 86, 741, 740, 747, 744, 746, 86, 748, 86, - 86, 749, 86, 750, 86, 751, 86, 86, 86, 86, - 752, 86, 753, 756, 86, 758, 754, 755, 86, 86, - 86, 759, 86, 86, 760, 757, 764, 763, 86, 86, - 86, 86, 86, 765, 86, 767, 86, 769, 86, 86, - 86, 762, 86, 761, 772, 768, 766, 775, 161, 770, - 86, 86, 86, 86, 86, 776, 773, 86, 86, 771, - 86, 778, 774, 86, 783, 777, 779, 86, 785, 780, - 781, 86, 782, 86, 788, 784, 786, 790, 787, 86, + 741, 740, 86, 738, 86, 746, 739, 161, 742, 86, + 747, 86, 749, 86, 758, 743, 750, 86, 744, 751, + 745, 86, 748, 752, 86, 86, 753, 86, 754, 86, + 755, 86, 759, 86, 86, 756, 86, 86, 760, 86, + 86, 86, 757, 763, 764, 762, 86, 86, 768, 86, + 761, 767, 86, 769, 86, 86, 86, 86, 86, 773, + 771, 86, 86, 86, 765, 766, 86, 776, 779, 86, + 770, 772, 86, 86, 86, 86, 774, 775, 780, 777, + 86, 86, 86, 781, 782, 86, 778, 86, 787, 783, + 786, 789, 784, 785, 86, 86, 792, 86, 788, 790, - 86, 86, 789, 86, 792, 86, 86, 86, 86, 793, - 796, 795, 86, 797, 86, 798, 86, 86, 799, 800, - 86, 802, 804, 86, 86, 86, 86, 801, 86, 805, - 810, 794, 86, 86, 86, 808, 86, 803, 811, 86, - 809, 807, 812, 806, 813, 814, 86, 86, 86, 815, - 86, 817, 86, 816, 86, 821, 823, 819, 86, 825, - 86, 86, 86, 822, 818, 86, 86, 86, 824, 827, - 86, 826, 86, 820, 828, 86, 834, 831, 86, 835, - 829, 86, 86, 830, 86, 86, 837, 836, 86, 839, - 86, 832, 833, 86, 843, 86, 841, 840, 86, 86, + 791, 794, 86, 86, 86, 86, 796, 86, 797, 86, + 799, 795, 793, 86, 801, 86, 800, 86, 86, 86, + 86, 86, 808, 86, 86, 804, 806, 86, 86, 86, + 798, 802, 805, 809, 86, 803, 86, 178, 815, 86, + 807, 86, 817, 813, 86, 812, 810, 816, 814, 811, + 818, 819, 86, 86, 86, 820, 86, 86, 86, 821, + 86, 826, 828, 824, 86, 86, 86, 86, 86, 827, + 86, 823, 86, 829, 822, 832, 86, 831, 86, 825, + 833, 86, 86, 86, 86, 840, 839, 836, 842, 834, + 830, 835, 86, 841, 86, 86, 844, 86, 86, 848, - 86, 86, 849, 845, 838, 86, 86, 844, 851, 847, - 850, 842, 86, 846, 848, 86, 86, 86, 852, 853, - 86, 86, 859, 854, 86, 86, 86, 86, 86, 860, - 855, 86, 86, 861, 856, 86, 86, 86, 86, 857, - 86, 858, 862, 868, 864, 86, 863, 866, 86, 86, - 869, 865, 867, 86, 86, 86, 874, 870, 873, 871, - 86, 86, 86, 86, 86, 882, 86, 872, 880, 875, - 883, 86, 86, 876, 86, 86, 881, 86, 877, 878, - 879, 86, 888, 86, 86, 884, 886, 86, 887, 86, - 86, 885, 86, 86, 86, 893, 892, 889, 895, 894, + 86, 837, 838, 846, 845, 86, 86, 852, 86, 854, + 849, 850, 853, 86, 843, 86, 86, 86, 847, 856, + 86, 851, 858, 86, 86, 86, 86, 86, 864, 86, + 86, 86, 86, 865, 86, 857, 86, 86, 86, 866, + 855, 859, 860, 861, 86, 862, 867, 863, 86, 873, + 869, 868, 86, 872, 86, 86, 870, 86, 874, 86, + 871, 86, 86, 879, 875, 86, 86, 86, 86, 86, + 86, 86, 888, 876, 886, 86, 86, 86, 877, 889, + 878, 885, 881, 880, 887, 882, 883, 884, 86, 86, + 890, 86, 86, 86, 86, 86, 891, 894, 86, 892, - 891, 86, 890, 86, 86, 86, 896, 86, 86, 903, - 898, 86, 897, 899, 905, 86, 901, 170, 86, 900, - 902, 86, 904, 86, 86, 906, 86, 86, 912, 86, - 86, 913, 907, 908, 915, 86, 86, 86, 909, 914, - 910, 916, 86, 919, 86, 86, 917, 86, 911, 86, - 86, 921, 86, 925, 86, 86, 86, 922, 86, 86, - 86, 918, 926, 927, 920, 86, 86, 86, 86, 86, - 924, 86, 86, 928, 941, 923, 940, 942, 943, 86, - 930, 938, 939, 929, 86, 86, 931, 86, 944, 932, - 948, 945, 86, 933, 86, 946, 934, 86, 947, 950, + 86, 898, 86, 893, 86, 899, 86, 895, 897, 900, + 86, 901, 896, 86, 86, 902, 903, 86, 906, 86, + 904, 909, 86, 905, 170, 911, 907, 86, 86, 910, + 86, 908, 912, 86, 86, 86, 86, 918, 86, 86, + 919, 86, 914, 86, 913, 921, 86, 86, 920, 915, + 916, 86, 922, 925, 86, 86, 917, 86, 927, 86, + 923, 926, 924, 86, 931, 86, 86, 928, 86, 86, + 86, 86, 86, 932, 86, 933, 86, 86, 952, 86, + 86, 930, 929, 946, 934, 947, 948, 944, 86, 86, + 86, 936, 951, 945, 935, 86, 86, 937, 949, 86, - 86, 952, 86, 935, 936, 86, 937, 86, 86, 86, - 949, 86, 86, 960, 86, 963, 86, 969, 965, 86, - 951, 86, 953, 954, 967, 955, 961, 962, 956, 86, - 86, 975, 86, 957, 966, 968, 964, 972, 86, 958, - 959, 971, 973, 86, 86, 86, 86, 976, 86, 978, - 977, 974, 86, 86, 970, 86, 980, 979, 982, 86, - 981, 86, 86, 983, 86, 985, 86, 86, 986, 86, - 86, 990, 86, 86, 984, 989, 86, 86, 993, 86, - 86, 999, 86, 997, 1010, 86, 987, 991, 988, 86, - 992, 994, 995, 86, 1000, 1011, 86, 86, 998, 1001, + 938, 86, 953, 86, 939, 86, 950, 940, 86, 86, + 954, 86, 958, 966, 941, 942, 957, 943, 86, 956, + 86, 955, 86, 959, 960, 86, 961, 86, 86, 962, + 967, 969, 971, 86, 963, 970, 86, 86, 968, 86, + 964, 965, 973, 86, 974, 86, 977, 978, 972, 86, + 1293, 975, 979, 86, 86, 981, 980, 86, 976, 86, + 982, 86, 983, 86, 984, 86, 985, 86, 986, 988, + 86, 86, 987, 989, 86, 86, 86, 86, 991, 992, + 86, 86, 996, 86, 86, 995, 990, 86, 86, 999, + 86, 86, 86, 86, 1003, 1053, 993, 1004, 997, 994, - 86, 996, 1002, 1003, 1004, 86, 86, 1006, 1007, 86, - 86, 1005, 86, 86, 86, 86, 86, 86, 1008, 86, - 86, 86, 1009, 1012, 1014, 86, 86, 1015, 1019, 86, - 86, 86, 86, 86, 1013, 1016, 1028, 1017, 86, 1020, - 1021, 1022, 86, 1023, 1018, 1024, 86, 1025, 86, 86, - 86, 1030, 86, 86, 86, 1026, 86, 1027, 1031, 1029, - 86, 86, 1036, 86, 1038, 1034, 1032, 1037, 86, 86, - 86, 86, 86, 1035, 86, 86, 1039, 1044, 86, 1033, - 1041, 86, 86, 1046, 86, 1045, 1047, 86, 1040, 1049, - 1043, 86, 86, 86, 1042, 86, 1048, 86, 86, 1050, + 86, 998, 1000, 1001, 1005, 86, 86, 86, 1006, 1009, + 1011, 1008, 1002, 1007, 86, 86, 86, 86, 1013, 86, + 86, 86, 1012, 1014, 86, 1015, 1010, 1017, 86, 1016, + 1018, 86, 86, 86, 86, 86, 86, 86, 86, 1021, + 1019, 86, 1022, 1026, 86, 1029, 86, 86, 86, 86, + 1027, 1020, 1030, 1024, 1023, 1028, 86, 1025, 86, 86, + 86, 86, 86, 86, 86, 1032, 1035, 1031, 1033, 1036, + 86, 86, 86, 1034, 1037, 1038, 1039, 1042, 1043, 86, + 1045, 1041, 86, 1044, 86, 86, 86, 86, 1040, 86, + 86, 1054, 86, 1051, 86, 1048, 86, 1046, 86, 86, - 86, 86, 1051, 1060, 1055, 1057, 86, 86, 178, 86, - 86, 1052, 86, 1054, 1053, 1061, 1058, 86, 1065, 1059, - 1056, 86, 1062, 86, 1068, 86, 1063, 86, 1067, 86, - 86, 1064, 86, 86, 86, 1066, 86, 86, 1070, 1077, - 1072, 86, 1078, 1080, 86, 86, 86, 1069, 86, 86, - 1071, 86, 86, 1073, 86, 1075, 1074, 1076, 1079, 1083, - 1081, 1082, 1084, 86, 1087, 86, 86, 1085, 86, 86, - 1086, 1089, 1088, 86, 1091, 1090, 1092, 86, 86, 1096, - 1093, 86, 86, 1098, 86, 86, 86, 1094, 86, 86, - 1103, 1095, 86, 1100, 86, 1104, 170, 86, 86, 86, + 86, 1052, 86, 1056, 1047, 86, 86, 1050, 86, 86, + 86, 1049, 1064, 86, 86, 1055, 1067, 1057, 1062, 1058, + 1059, 86, 86, 1068, 1060, 1061, 86, 86, 1065, 1063, + 86, 86, 1066, 1069, 86, 86, 1072, 1075, 86, 86, + 1074, 1071, 86, 86, 86, 1070, 86, 86, 1073, 86, + 1076, 1078, 1080, 86, 1085, 1086, 86, 86, 1088, 1077, + 86, 86, 86, 1079, 86, 86, 1081, 176, 1083, 1082, + 1087, 1089, 1091, 1084, 1092, 86, 86, 86, 86, 1093, + 86, 86, 1090, 86, 1094, 1100, 1097, 86, 1095, 86, + 1099, 86, 86, 1104, 86, 1101, 1096, 86, 1098, 86, - 1107, 1097, 1106, 86, 1099, 1101, 86, 1102, 1110, 1105, - 86, 86, 86, 86, 1108, 86, 86, 1109, 86, 1123, - 1124, 1126, 86, 86, 1114, 1111, 1113, 86, 86, 86, - 86, 86, 1128, 1115, 1112, 1131, 1116, 86, 1125, 86, - 1117, 86, 1118, 86, 1129, 1130, 1119, 86, 1120, 1148, - 86, 1133, 1127, 1121, 1139, 1132, 1134, 86, 1122, 1135, - 86, 1136, 86, 86, 1137, 86, 86, 1140, 86, 86, - 1143, 86, 86, 86, 86, 1142, 1138, 1141, 1149, 1150, - 1144, 1147, 1151, 1146, 86, 86, 1152, 86, 86, 1145, - 1153, 1154, 1157, 1155, 86, 86, 86, 86, 176, 86, + 1103, 1102, 1106, 86, 86, 86, 1111, 86, 86, 1108, + 86, 1112, 170, 86, 1105, 1107, 86, 1114, 86, 1115, + 86, 1109, 1113, 1110, 86, 1118, 86, 86, 86, 1119, + 1116, 86, 86, 1131, 86, 86, 1117, 175, 1132, 86, + 1121, 1122, 1134, 86, 86, 86, 86, 1123, 1120, 1139, + 1133, 86, 1124, 86, 1137, 1136, 1125, 86, 1126, 86, + 1138, 1141, 1127, 86, 1128, 86, 1142, 86, 1143, 1129, + 1135, 1140, 86, 86, 1130, 86, 1145, 1144, 86, 86, + 1147, 86, 86, 1148, 1151, 1150, 86, 86, 1146, 1152, + 86, 86, 1157, 1149, 1158, 1155, 1154, 1156, 1159, 86, - 86, 1166, 86, 1156, 86, 1158, 1165, 86, 1169, 86, - 1159, 86, 1160, 1167, 1168, 86, 1170, 1171, 1161, 1173, - 86, 86, 1176, 1162, 1163, 86, 86, 86, 86, 1172, - 1164, 1177, 86, 86, 1182, 86, 86, 1175, 86, 1174, - 1183, 1185, 86, 1179, 1178, 1181, 86, 86, 86, 1180, - 86, 1186, 86, 86, 1190, 1188, 86, 1191, 1184, 1189, - 86, 1187, 86, 86, 1196, 1193, 86, 86, 86, 86, - 86, 1194, 1192, 1199, 86, 1197, 86, 86, 86, 1195, - 175, 86, 86, 86, 86, 86, 1198, 1206, 1201, 1200, - 1203, 1204, 1205, 1208, 1207, 86, 1202, 86, 86, 86, + 86, 1162, 1153, 1161, 86, 1160, 86, 86, 86, 86, + 86, 86, 1163, 86, 86, 1177, 1174, 86, 1164, 86, + 86, 86, 1173, 170, 1178, 1176, 86, 1165, 86, 1166, + 86, 1175, 86, 86, 1167, 1180, 1168, 1184, 1179, 1181, + 86, 86, 1169, 86, 1186, 1182, 1185, 1170, 1171, 1183, + 86, 86, 1190, 86, 1172, 86, 86, 1193, 1187, 1191, + 86, 86, 86, 86, 1194, 86, 1188, 1196, 1198, 1189, + 86, 86, 86, 86, 86, 1199, 1192, 86, 1197, 1195, + 1204, 1201, 1202, 86, 86, 86, 86, 86, 86, 86, + 1200, 86, 1205, 1203, 1207, 86, 86, 86, 86, 86, - 1209, 86, 86, 86, 86, 1211, 86, 86, 1216, 1210, - 86, 1217, 1213, 1219, 86, 1218, 1212, 1215, 1221, 1214, - 86, 1220, 1223, 1222, 86, 86, 86, 1226, 86, 86, - 86, 1228, 1227, 86, 1229, 86, 86, 86, 1224, 1230, - 86, 86, 1225, 1231, 1237, 86, 1239, 86, 1232, 86, - 86, 1233, 86, 1235, 1241, 1234, 1236, 86, 86, 86, - 86, 1243, 1240, 86, 86, 1238, 86, 86, 1245, 1246, - 86, 1242, 1249, 86, 86, 1248, 1247, 86, 1250, 86, - 1244, 1255, 1251, 1252, 86, 1254, 86, 86, 1256, 86, - 1253, 86, 86, 1257, 1259, 86, 1260, 86, 86, 86, + 1212, 1209, 1214, 1206, 1216, 1208, 1213, 1211, 1210, 86, + 86, 86, 86, 1218, 86, 1215, 86, 1220, 86, 86, + 86, 86, 86, 86, 168, 1217, 1225, 1226, 1227, 1228, + 1222, 1219, 86, 1221, 1224, 1230, 1223, 86, 1229, 86, + 86, 86, 86, 86, 1235, 86, 1239, 1232, 1231, 1236, + 86, 86, 1237, 1233, 86, 1238, 86, 86, 1234, 1240, + 86, 86, 1246, 86, 1248, 86, 86, 86, 86, 86, + 86, 1250, 1242, 1244, 1241, 1243, 1245, 86, 86, 86, + 1249, 1251, 1252, 1247, 86, 86, 86, 1257, 86, 1254, + 1253, 1255, 86, 1256, 86, 86, 86, 1258, 86, 1259, - 86, 1266, 1264, 1267, 1258, 86, 86, 86, 86, 86, - 1261, 1268, 86, 1265, 86, 1271, 1262, 1269, 1263, 1270, - 1274, 86, 86, 1272, 1276, 86, 86, 1275, 1273, 86, - 86, 86, 86, 86, 86, 86, 1281, 1282, 1277, 1278, - 86, 86, 86, 86, 1288, 1284, 1283, 1289, 86, 1279, - 86, 1280, 86, 86, 1286, 1292, 86, 1291, 86, 1285, - 86, 86, 1287, 1290, 1296, 86, 86, 86, 86, 86, - 86, 1302, 86, 1295, 1294, 1298, 86, 1293, 170, 86, - 86, 1303, 86, 1297, 1304, 86, 1299, 86, 86, 1301, - 86, 86, 1309, 170, 1300, 1307, 1306, 1308, 1305, 1310, + 1260, 1261, 1264, 1267, 1263, 1265, 86, 86, 86, 86, + 86, 86, 1262, 1268, 86, 1269, 1266, 86, 86, 86, + 1275, 1273, 1276, 86, 86, 86, 86, 1270, 86, 1277, + 1271, 86, 1274, 86, 1280, 86, 1278, 1272, 1279, 86, + 86, 1282, 1284, 86, 1281, 1283, 86, 86, 86, 1286, + 86, 1285, 1287, 1289, 86, 86, 1288, 86, 1291, 86, + 1292, 86, 86, 86, 1294, 1298, 1299, 86, 86, 86, + 86, 86, 86, 1290, 1296, 1301, 1302, 86, 86, 1295, + 1306, 1305, 1297, 1300, 86, 86, 1303, 86, 86, 86, + 86, 170, 1304, 1312, 86, 86, 1308, 86, 86, 86, - 1311, 86, 86, 1313, 1314, 86, 86, 1315, 1312, 86, - 86, 1316, 86, 86, 1317, 86, 1319, 86, 1318, 1320, - 1321, 86, 86, 86, 86, 1327, 86, 86, 86, 1324, - 86, 86, 1322, 86, 86, 86, 1468, 1331, 1325, 1337, - 1323, 1328, 86, 1326, 86, 1330, 1329, 1333, 86, 1338, - 86, 1340, 86, 1332, 86, 1339, 1334, 86, 1335, 86, - 86, 1336, 1343, 1344, 1341, 86, 86, 86, 1342, 86, - 86, 1347, 86, 86, 1346, 1350, 86, 86, 1345, 1354, - 86, 1349, 1355, 1352, 86, 86, 1348, 1351, 86, 1356, - 86, 86, 86, 1358, 1359, 1353, 86, 86, 86, 86, + 1313, 86, 1314, 1307, 1319, 86, 86, 1309, 86, 1311, + 166, 1315, 1316, 86, 1310, 1320, 1317, 1318, 1321, 86, + 1323, 1324, 86, 86, 1327, 86, 86, 86, 1322, 1325, + 1326, 86, 86, 86, 86, 86, 1328, 1329, 1331, 86, + 86, 86, 1337, 86, 86, 86, 1330, 1334, 86, 1332, + 86, 86, 86, 1348, 1333, 86, 1335, 1341, 1336, 1338, + 1343, 86, 1339, 1340, 86, 1347, 86, 86, 86, 1344, + 1342, 1345, 1349, 1351, 1346, 1350, 86, 86, 1352, 86, + 1353, 86, 86, 86, 86, 86, 86, 1354, 1357, 86, + 1356, 1360, 86, 1364, 86, 86, 1359, 1355, 86, 1361, - 1360, 86, 86, 86, 86, 1357, 86, 1361, 1366, 86, - 1364, 1362, 86, 86, 1365, 1367, 1363, 86, 1371, 86, - 86, 1368, 86, 86, 1370, 1369, 86, 86, 1372, 1373, - 86, 1375, 86, 86, 1376, 1378, 1383, 1374, 86, 1377, - 86, 86, 86, 86, 86, 1379, 1386, 1381, 1384, 1389, - 1382, 86, 1380, 86, 1385, 86, 1406, 86, 86, 1388, - 1391, 1387, 86, 1390, 168, 1392, 86, 86, 1396, 1394, - 1395, 1404, 1393, 86, 1397, 86, 86, 1407, 1398, 86, - 86, 1399, 1400, 1410, 1405, 1408, 1401, 86, 1409, 86, - 86, 86, 1402, 86, 86, 1411, 1403, 86, 1412, 86, + 1362, 1358, 86, 1365, 86, 86, 86, 1366, 86, 1368, + 1369, 1363, 86, 86, 1370, 1367, 86, 86, 86, 86, + 86, 86, 86, 1371, 1376, 86, 86, 1372, 1374, 86, + 86, 1377, 1373, 1375, 86, 1381, 86, 86, 86, 1378, + 1380, 1382, 1379, 1385, 86, 1383, 86, 86, 86, 1393, + 1384, 1386, 86, 86, 86, 86, 1387, 1389, 1388, 86, + 86, 1396, 1391, 86, 86, 86, 1401, 1394, 1392, 1390, + 1399, 1402, 86, 1395, 1397, 1400, 1398, 86, 86, 86, + 86, 1406, 86, 1403, 1416, 86, 1417, 1415, 86, 165, + 86, 1404, 1405, 86, 1407, 1414, 86, 1419, 1408, 86, - 1413, 86, 1415, 86, 86, 86, 1420, 1416, 1414, 1417, - 1422, 1418, 1419, 86, 86, 1425, 1426, 86, 86, 86, - 1486, 86, 86, 1421, 1427, 86, 1429, 1423, 86, 1428, - 86, 1430, 1424, 1431, 86, 1432, 86, 1433, 86, 1434, - 86, 1436, 1435, 1437, 1438, 86, 86, 1439, 1442, 1440, - 86, 1444, 86, 1441, 86, 86, 1445, 86, 86, 1443, - 1448, 1446, 86, 86, 86, 86, 86, 1454, 86, 1455, - 86, 1450, 1449, 86, 1456, 86, 1447, 86, 86, 1453, - 1458, 86, 1451, 1452, 1457, 86, 86, 1460, 1461, 86, - 86, 1459, 1465, 86, 1464, 1467, 86, 86, 86, 86, + 86, 1409, 1410, 1420, 1418, 1421, 1411, 86, 86, 86, + 86, 1423, 1412, 1422, 86, 1425, 1413, 1424, 86, 86, + 1430, 1426, 86, 1427, 86, 86, 86, 1428, 86, 86, + 1433, 1431, 1436, 1437, 86, 86, 163, 1429, 86, 86, + 1438, 86, 1434, 1440, 1432, 1439, 86, 1435, 1441, 86, + 1442, 1445, 1443, 86, 1444, 86, 1447, 1448, 1449, 86, + 86, 86, 86, 1446, 1450, 1451, 86, 1455, 86, 86, + 86, 86, 1456, 86, 1452, 1454, 1459, 1457, 86, 86, + 1453, 86, 86, 1465, 1460, 86, 1466, 1461, 86, 86, + 86, 1458, 86, 86, 86, 1469, 1464, 86, 1462, 86, - 1469, 86, 86, 1462, 1470, 1466, 1473, 86, 1475, 86, - 1472, 1463, 86, 1476, 86, 86, 86, 1471, 86, 1477, - 1480, 86, 1474, 86, 86, 86, 1482, 86, 86, 86, - 1484, 86, 1488, 86, 86, 166, 1478, 1479, 1481, 1490, - 1485, 86, 86, 1489, 1483, 1487, 1492, 1491, 86, 86, - 1493, 86, 1495, 1494, 86, 1497, 1496, 86, 86, 86, - 86, 86, 1498, 1503, 1504, 1500, 86, 1501, 86, 86, - 86, 1505, 1506, 86, 1502, 86, 1499, 1507, 86, 1510, - 86, 86, 86, 170, 86, 86, 1509, 1517, 1518, 86, - 1520, 86, 1508, 86, 86, 1519, 86, 86, 1514, 86, + 1463, 1467, 1468, 1471, 1472, 86, 1470, 86, 1476, 86, + 86, 86, 1475, 1478, 86, 86, 86, 1473, 1479, 86, + 1481, 86, 1480, 86, 86, 1477, 1484, 86, 1486, 86, + 1474, 1485, 1483, 86, 1487, 86, 86, 1491, 86, 86, + 1482, 1488, 86, 86, 1495, 1489, 1493, 86, 86, 86, + 86, 1498, 1496, 86, 86, 86, 1490, 1497, 1500, 1492, + 86, 86, 1494, 86, 86, 1502, 86, 86, 1504, 1501, + 1507, 1499, 1505, 86, 86, 1503, 86, 1509, 1506, 1508, + 86, 86, 86, 86, 1511, 1510, 1515, 1512, 1516, 1513, + 86, 1518, 86, 86, 86, 1517, 1514, 86, 86, 86, - 1512, 1511, 86, 86, 1515, 1521, 86, 86, 1516, 86, - 1528, 1522, 86, 86, 1525, 1533, 86, 1523, 86, 1524, - 1526, 1527, 86, 1532, 86, 86, 86, 1529, 1537, 1535, - 86, 1531, 86, 1538, 86, 1540, 86, 1530, 86, 86, - 1541, 86, 86, 86, 1536, 1534, 1546, 86, 1539, 1547, - 1542, 1548, 86, 1543, 1544, 86, 86, 1545, 1549, 1551, - 86, 1550, 1554, 1553, 1552, 86, 86, 1555, 86, 1557, - 86, 86, 86, 86, 1556, 1559, 1560, 86, 86, 86, - 86, 86, 1563, 86, 1558, 86, 1568, 1569, 86, 86, - 1561, 86, 86, 1562, 1565, 1572, 86, 1566, 1564, 1567, + 1522, 86, 1519, 86, 86, 86, 170, 86, 86, 86, + 1521, 161, 1529, 1530, 86, 1525, 86, 1520, 86, 86, + 1531, 1526, 1524, 1523, 1532, 86, 86, 1527, 86, 1535, + 86, 1528, 86, 86, 1540, 86, 1536, 86, 1537, 1533, + 86, 86, 1538, 1545, 86, 1534, 1544, 86, 86, 86, + 1539, 1549, 86, 1547, 86, 1541, 1550, 86, 1543, 86, + 86, 1552, 1542, 86, 86, 86, 86, 1553, 1548, 86, + 1546, 1561, 1551, 86, 1554, 86, 86, 86, 1555, 1556, + 1558, 1564, 1557, 1559, 1563, 1560, 86, 1562, 1566, 86, + 86, 1569, 86, 1567, 86, 86, 86, 1565, 86, 86, - 86, 86, 86, 1573, 86, 86, 1570, 86, 1571, 86, - 1575, 1574, 1579, 86, 86, 1576, 1580, 1577, 1581, 86, - 86, 1584, 86, 1578, 86, 1587, 86, 1588, 1583, 1589, - 1590, 86, 1582, 1586, 86, 86, 86, 1585, 1592, 86, - 1593, 86, 86, 86, 1597, 1591, 1598, 1599, 1596, 86, - 86, 165, 86, 86, 86, 1600, 86, 1594, 86, 1601, - 1602, 86, 86, 1595, 86, 1604, 1603, 1605, 86, 86, - 86, 86, 1610, 86, 86, 86, 1606, 1609, 86, 1613, - 86, 1616, 1607, 1612, 1608, 1618, 1617, 86, 86, 86, - 1619, 86, 1614, 1611, 86, 1621, 86, 86, 1624, 1615, + 1571, 1572, 86, 86, 86, 3419, 86, 1575, 1568, 86, + 1570, 86, 1580, 86, 86, 86, 1573, 1581, 1577, 1574, + 1584, 86, 86, 1576, 1578, 86, 86, 1579, 86, 86, + 86, 86, 1582, 1585, 1583, 86, 1591, 86, 86, 1587, + 86, 1586, 1592, 1588, 1589, 1593, 86, 1595, 86, 1590, + 86, 1596, 86, 86, 1600, 1594, 1601, 1598, 1602, 86, + 86, 1597, 86, 86, 86, 1604, 86, 86, 1609, 1605, + 86, 1610, 1599, 1603, 86, 1608, 1606, 86, 1611, 86, + 1612, 86, 1613, 86, 86, 1614, 86, 1615, 1607, 86, + 86, 86, 86, 86, 86, 86, 1622, 86, 1616, 86, - 86, 86, 86, 86, 1629, 1625, 86, 86, 1620, 86, - 86, 1630, 1632, 86, 86, 1622, 1623, 1635, 86, 1634, - 1626, 1628, 1627, 86, 86, 86, 86, 86, 1633, 86, - 1643, 86, 86, 1631, 86, 1641, 86, 86, 86, 1644, - 86, 1648, 86, 1636, 1637, 1638, 1639, 1642, 1640, 86, - 1645, 1652, 1647, 1649, 86, 86, 1646, 86, 1653, 86, - 1650, 1651, 86, 86, 1655, 86, 86, 86, 1656, 86, - 86, 1659, 1654, 1663, 86, 1664, 1665, 86, 1660, 86, - 86, 1657, 86, 1658, 1668, 1662, 86, 1661, 86, 86, - 1669, 86, 1666, 1667, 86, 1670, 86, 86, 1675, 1676, + 1621, 86, 86, 1618, 86, 86, 1619, 1624, 1617, 1620, + 1625, 86, 1633, 1628, 86, 1626, 86, 1623, 1629, 86, + 1630, 1627, 86, 86, 1632, 1631, 86, 86, 1637, 86, + 86, 1636, 1641, 1634, 86, 1635, 86, 86, 86, 1642, + 86, 1645, 86, 86, 86, 1648, 1638, 86, 1640, 1639, + 1647, 86, 86, 86, 86, 86, 1643, 86, 86, 1646, + 1657, 1649, 1650, 1644, 86, 1656, 86, 86, 1653, 86, + 3419, 1651, 1652, 1655, 1661, 86, 1654, 1662, 86, 86, + 86, 1660, 86, 86, 1663, 1658, 1659, 1664, 86, 86, + 86, 1666, 1668, 1665, 86, 86, 1669, 86, 86, 1672, - 86, 86, 163, 1673, 86, 86, 86, 1672, 1671, 86, - 1679, 86, 1680, 1681, 86, 1677, 1674, 1683, 86, 86, - 86, 86, 1678, 1684, 1685, 86, 1682, 86, 86, 1689, - 1686, 1688, 86, 1691, 86, 86, 1690, 1687, 86, 86, - 86, 86, 1697, 86, 1695, 86, 86, 86, 86, 1692, - 86, 1703, 1698, 86, 1696, 86, 1693, 1694, 86, 86, - 86, 1700, 1709, 1699, 1706, 1708, 86, 1704, 1702, 86, - 86, 1711, 1701, 1705, 86, 1707, 86, 86, 86, 86, - 86, 1714, 1717, 86, 1716, 86, 170, 1713, 86, 1710, - 1719, 86, 86, 1718, 86, 86, 1712, 1715, 86, 1727, + 86, 1667, 1676, 86, 86, 1677, 1678, 1671, 86, 1670, + 1673, 86, 86, 86, 1675, 86, 1681, 1674, 86, 1679, + 86, 1680, 1682, 86, 1683, 86, 1688, 1689, 86, 86, + 86, 86, 86, 1684, 1686, 1687, 1692, 86, 1693, 1694, + 86, 1685, 1696, 86, 86, 86, 86, 1690, 86, 1697, + 86, 1691, 1698, 86, 86, 86, 86, 1701, 86, 1706, + 1695, 86, 1705, 86, 1699, 1703, 1700, 86, 86, 86, + 86, 1711, 86, 1709, 86, 1702, 86, 86, 1704, 86, + 86, 1712, 86, 1710, 1707, 86, 1708, 86, 1717, 86, + 1720, 1714, 1713, 86, 1718, 1722, 86, 1723, 86, 1716, - 86, 86, 1720, 86, 86, 1722, 1721, 86, 1725, 1728, - 86, 1723, 1724, 1731, 86, 1733, 1732, 86, 86, 1742, - 1726, 1729, 86, 1730, 1735, 86, 1737, 1739, 86, 86, - 1736, 86, 86, 86, 1741, 86, 1744, 1734, 1738, 86, - 86, 1746, 1740, 86, 1747, 1743, 86, 86, 86, 86, - 86, 1752, 1751, 1745, 86, 86, 86, 86, 1759, 86, - 1748, 86, 1760, 1750, 86, 1749, 86, 1754, 86, 1761, - 1763, 1756, 1753, 86, 1757, 86, 1755, 86, 1764, 1796, - 1766, 1767, 86, 1768, 1765, 1762, 1758, 1769, 1773, 86, - 86, 86, 1771, 86, 86, 1770, 86, 1772, 86, 86, + 1719, 86, 1715, 86, 1721, 86, 1725, 86, 86, 86, + 86, 1728, 1731, 86, 1727, 1730, 86, 170, 1724, 86, + 86, 1733, 1732, 1726, 86, 86, 86, 1729, 86, 1741, + 86, 3419, 86, 1734, 1736, 1742, 86, 1735, 86, 1739, + 1745, 86, 86, 1737, 1738, 86, 86, 1746, 1749, 86, + 1747, 1740, 1743, 1751, 1750, 86, 1744, 1753, 86, 86, + 1755, 86, 1748, 86, 86, 86, 86, 86, 86, 86, + 1760, 1757, 1754, 1758, 86, 1752, 86, 1761, 86, 86, + 86, 1762, 1765, 1756, 86, 1766, 86, 86, 86, 1773, + 1759, 86, 1763, 1764, 1770, 86, 86, 1771, 1767, 1768, - 86, 86, 86, 1774, 86, 1780, 86, 1779, 1781, 86, - 86, 86, 1775, 1783, 86, 1782, 86, 86, 1776, 86, - 1777, 1785, 1778, 1786, 86, 86, 86, 1788, 86, 1784, - 1787, 86, 86, 86, 86, 86, 86, 1789, 1797, 86, - 86, 86, 1791, 86, 86, 1792, 1790, 1793, 86, 1802, - 1794, 1799, 1800, 86, 1798, 86, 1801, 86, 86, 1795, - 1804, 1803, 1808, 86, 86, 86, 86, 1806, 1805, 86, - 1810, 86, 1812, 1813, 86, 86, 86, 86, 1807, 86, - 1814, 1811, 86, 86, 1809, 1817, 1819, 86, 86, 1827, - 86, 1820, 1818, 1816, 1821, 1828, 86, 86, 1815, 1822, + 86, 1774, 86, 1775, 86, 86, 1769, 1780, 86, 1772, + 1778, 1777, 1782, 1779, 1781, 86, 1783, 86, 86, 1776, + 86, 1789, 86, 86, 1785, 1784, 86, 1786, 1787, 86, + 86, 86, 1794, 1795, 86, 1788, 1791, 86, 86, 86, + 1793, 86, 1797, 86, 86, 86, 1796, 1790, 86, 1799, + 1801, 1792, 1800, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 1811, 86, 1798, 1810, 86, 86, + 86, 1805, 1802, 1806, 1807, 1803, 1804, 86, 86, 1808, + 1813, 1814, 1816, 1809, 1812, 86, 1818, 86, 86, 86, + 1815, 1822, 86, 86, 86, 86, 86, 1826, 1817, 1824, - 1826, 86, 1823, 86, 86, 86, 86, 1824, 1831, 1832, - 86, 86, 86, 1825, 86, 1829, 1835, 1833, 86, 1830, - 86, 86, 1844, 1836, 86, 1834, 86, 86, 86, 1839, - 1838, 1837, 86, 1841, 86, 1843, 1842, 1845, 86, 86, - 1840, 86, 86, 1851, 86, 1847, 86, 1846, 1852, 86, - 86, 1853, 1848, 1849, 1854, 86, 1857, 1850, 86, 86, - 86, 86, 86, 1861, 1860, 1865, 86, 86, 1856, 1855, - 1859, 86, 86, 86, 1858, 1863, 1869, 1862, 1864, 86, - 86, 1870, 86, 86, 161, 1866, 86, 1871, 1874, 1875, - 1868, 86, 1867, 1878, 1872, 86, 1877, 86, 86, 86, + 86, 1820, 86, 86, 86, 1819, 86, 1825, 86, 86, + 1821, 86, 86, 1823, 86, 1827, 1828, 1831, 1833, 86, + 86, 1832, 1830, 1834, 86, 1836, 1835, 1829, 86, 1841, + 86, 1840, 1842, 86, 1837, 86, 1843, 1839, 1844, 1838, + 86, 1846, 86, 1845, 86, 86, 86, 86, 1847, 1850, + 1849, 86, 1851, 86, 86, 86, 86, 86, 1860, 86, + 86, 1859, 86, 1848, 1854, 1856, 1858, 86, 1857, 1853, + 1852, 86, 86, 1855, 86, 1862, 1866, 86, 86, 86, + 1861, 1867, 86, 1868, 86, 86, 1864, 86, 1872, 1863, + 1865, 1869, 86, 86, 86, 1876, 86, 86, 1875, 86, - 1881, 86, 1873, 1879, 1876, 1880, 86, 1882, 86, 86, - 1885, 86, 86, 1889, 86, 1887, 86, 86, 86, 86, - 86, 1888, 1890, 1884, 1886, 86, 86, 86, 1883, 1894, - 86, 86, 1901, 1893, 1899, 86, 1891, 1892, 86, 1895, - 1896, 1902, 86, 86, 1897, 1898, 86, 86, 1904, 86, - 86, 1908, 86, 86, 1910, 1903, 1900, 86, 86, 86, - 86, 1914, 86, 1905, 1906, 86, 1909, 86, 86, 1907, - 86, 1916, 86, 1917, 1912, 1918, 86, 1913, 86, 1911, - 86, 1919, 170, 86, 86, 1915, 1923, 1920, 86, 1922, - 1926, 86, 86, 86, 1924, 1921, 1930, 86, 86, 1925, + 1873, 1874, 1870, 1871, 1880, 1878, 86, 86, 1879, 1877, + 86, 1884, 86, 86, 86, 1881, 1885, 86, 86, 1889, + 1890, 1892, 86, 1893, 1886, 1883, 86, 1882, 1887, 86, + 86, 86, 1896, 86, 1888, 1894, 1891, 86, 86, 1897, + 86, 1900, 86, 86, 1904, 1895, 1902, 86, 86, 86, + 86, 86, 1903, 86, 1899, 1901, 1905, 1898, 86, 86, + 86, 1908, 86, 86, 86, 1915, 86, 1909, 1906, 1911, + 1907, 86, 1910, 1917, 1918, 1912, 86, 1913, 1914, 86, + 86, 1920, 86, 86, 1919, 86, 86, 1916, 1924, 86, + 86, 1926, 86, 86, 1930, 86, 1921, 86, 86, 1925, - 86, 86, 86, 86, 1928, 1932, 86, 1927, 86, 86, - 1937, 86, 1929, 1933, 1931, 1934, 86, 1940, 1941, 86, - 1938, 1935, 86, 1943, 86, 1942, 1936, 1939, 86, 86, - 1946, 1947, 86, 1944, 86, 86, 86, 1949, 1945, 86, - 86, 86, 1950, 86, 86, 86, 1948, 86, 86, 86, - 1955, 86, 1956, 86, 86, 86, 1960, 1957, 86, 86, - 1951, 1953, 1954, 1952, 1959, 1958, 86, 1961, 86, 86, - 1967, 1964, 86, 1966, 1963, 1968, 86, 1969, 1965, 86, - 1962, 86, 86, 86, 86, 86, 1975, 86, 1978, 86, - 1970, 1971, 1979, 86, 1980, 86, 86, 1973, 1972, 1976, + 86, 1922, 86, 86, 1923, 1933, 1932, 86, 1928, 86, + 86, 1929, 1927, 86, 1934, 1935, 1936, 86, 1931, 170, + 1939, 86, 1938, 1942, 86, 86, 1937, 86, 86, 1946, + 86, 1940, 86, 86, 86, 86, 1941, 86, 86, 1944, + 1948, 86, 1953, 3419, 1943, 86, 1947, 1945, 86, 1949, + 1950, 86, 86, 1951, 1958, 1952, 86, 1954, 1956, 1955, + 1957, 86, 1959, 86, 86, 1961, 1962, 1963, 86, 1960, + 86, 86, 86, 1965, 86, 86, 86, 1966, 86, 86, + 86, 86, 1964, 86, 86, 1971, 1972, 86, 86, 1976, + 86, 86, 1973, 86, 3419, 1967, 1969, 1970, 1968, 1974, - 86, 1977, 1974, 1982, 86, 86, 1983, 1986, 86, 1981, - 86, 86, 1988, 86, 1987, 86, 1989, 1984, 86, 1990, - 1992, 1985, 1995, 86, 86, 86, 86, 1994, 86, 1991, - 86, 1998, 86, 86, 86, 1997, 86, 86, 2002, 86, - 1993, 2001, 86, 86, 2003, 2004, 86, 86, 1996, 1999, - 86, 86, 2012, 86, 2000, 2005, 2006, 2007, 86, 2014, - 2010, 86, 2008, 86, 2015, 86, 2009, 2011, 2017, 86, - 2013, 2018, 86, 2021, 2019, 2016, 86, 86, 86, 86, - 2025, 86, 86, 86, 2027, 2022, 86, 2020, 86, 86, - 2030, 2031, 86, 86, 2033, 86, 86, 2023, 86, 2024, + 1977, 86, 86, 1975, 1984, 86, 1982, 1980, 1983, 1985, + 1979, 86, 86, 1978, 1981, 86, 86, 86, 86, 86, + 86, 1991, 86, 1994, 1995, 86, 1996, 86, 86, 1998, + 86, 1987, 1986, 1989, 1992, 1988, 1993, 86, 1990, 86, + 1999, 86, 2002, 86, 2004, 86, 2006, 86, 1997, 2003, + 86, 86, 86, 2008, 2005, 86, 86, 86, 2000, 86, + 2010, 86, 2001, 2011, 86, 2007, 2013, 2014, 86, 86, + 86, 86, 86, 86, 2018, 2020, 2012, 2017, 86, 86, + 2009, 86, 86, 2019, 2015, 86, 2028, 86, 3419, 2026, + 86, 2016, 86, 86, 2021, 2022, 2023, 2030, 86, 2025, - 86, 86, 2039, 86, 86, 2038, 2028, 2035, 2026, 2036, - 2029, 86, 86, 2032, 86, 86, 86, 86, 2045, 86, - 86, 2034, 2037, 2042, 2043, 2040, 86, 2041, 2049, 86, - 86, 2048, 2052, 86, 86, 2053, 2047, 2051, 86, 86, - 2044, 2055, 2056, 86, 86, 2046, 86, 86, 86, 2050, - 86, 2057, 86, 2058, 86, 86, 86, 2062, 2054, 86, - 2065, 2066, 86, 86, 2061, 2067, 86, 86, 2059, 2060, - 2070, 86, 86, 2063, 86, 86, 86, 2069, 2075, 86, - 2074, 86, 2064, 2068, 86, 86, 2071, 86, 2080, 2079, - 86, 86, 2072, 86, 2084, 2076, 2073, 2081, 86, 2077, + 2034, 2024, 2031, 86, 2032, 2027, 86, 2029, 2033, 86, + 2037, 86, 86, 86, 2041, 86, 86, 2035, 86, 86, + 2038, 86, 2043, 86, 2036, 86, 2046, 2047, 86, 86, + 2049, 86, 2039, 86, 2040, 86, 2054, 86, 86, 2044, + 86, 86, 86, 86, 2042, 2045, 2051, 2052, 86, 2048, + 2056, 86, 86, 86, 86, 2062, 2053, 2055, 2050, 2059, + 86, 2057, 2060, 2058, 86, 86, 2066, 86, 86, 2061, + 2065, 2069, 86, 86, 86, 2068, 2070, 86, 2072, 86, + 2064, 2073, 86, 86, 86, 86, 2063, 2067, 2074, 86, + 86, 86, 2071, 86, 2075, 86, 2079, 86, 2082, 2076, - 2078, 86, 2082, 2083, 86, 2087, 86, 86, 86, 2085, - 86, 86, 86, 2094, 2086, 2091, 2097, 86, 86, 86, - 86, 2089, 2088, 86, 2098, 2096, 86, 2090, 86, 86, - 2099, 2092, 2093, 2095, 86, 2104, 86, 2100, 2105, 86, - 2101, 2106, 2108, 2109, 86, 2102, 2107, 86, 86, 86, - 86, 86, 2113, 86, 2103, 2111, 86, 86, 86, 86, - 2115, 2118, 2120, 2112, 86, 2114, 86, 86, 86, 2116, - 2110, 86, 170, 86, 86, 86, 86, 2123, 86, 2127, - 86, 2128, 86, 2129, 2117, 2121, 2119, 2124, 2125, 2130, - 86, 2122, 2126, 2131, 86, 2133, 86, 86, 86, 86, + 2083, 2084, 2078, 86, 86, 86, 86, 86, 2077, 2080, + 86, 86, 86, 86, 2087, 2092, 86, 2091, 86, 2086, + 86, 2081, 86, 2085, 3419, 2089, 2096, 86, 2097, 86, + 2088, 86, 2093, 2090, 86, 2094, 86, 2095, 2099, 86, + 2098, 2100, 86, 2101, 2104, 86, 86, 2102, 86, 86, + 2107, 86, 2103, 86, 2108, 2111, 86, 86, 86, 2115, + 86, 86, 2106, 2113, 86, 2116, 86, 2105, 86, 2114, + 2117, 2109, 2112, 2110, 86, 86, 86, 2118, 2122, 86, + 2123, 86, 2124, 2126, 3419, 2119, 2127, 2125, 86, 86, + 2120, 86, 86, 86, 2131, 2121, 2129, 86, 86, 86, - 2132, 86, 2134, 2135, 86, 2136, 2137, 86, 86, 2138, - 2139, 86, 2141, 86, 86, 86, 86, 2145, 86, 86, - 2140, 2144, 86, 86, 2146, 2142, 2143, 2147, 2148, 86, - 2150, 86, 2149, 86, 86, 86, 86, 86, 86, 2151, - 2155, 2157, 2152, 2156, 86, 86, 86, 86, 86, 86, - 2162, 86, 2153, 2159, 2154, 2158, 86, 86, 2167, 86, - 2161, 2163, 86, 2160, 86, 2165, 2164, 86, 2168, 86, - 86, 2166, 2171, 2174, 2169, 2173, 86, 86, 86, 86, - 86, 2179, 2172, 86, 86, 2170, 2182, 86, 86, 2181, - 2183, 86, 86, 2175, 2176, 2177, 2180, 2178, 2185, 86, + 86, 86, 2128, 2133, 86, 2130, 2136, 86, 2138, 2132, + 2134, 86, 86, 170, 86, 86, 86, 86, 2141, 86, + 86, 2147, 86, 2139, 2145, 2146, 2135, 2142, 2143, 2137, + 86, 2140, 2148, 86, 2149, 86, 2144, 2151, 86, 86, + 86, 86, 86, 86, 2152, 2153, 86, 2154, 2155, 86, + 2150, 2156, 2157, 86, 2158, 86, 2159, 86, 86, 2163, + 86, 86, 86, 2162, 86, 2160, 86, 2165, 86, 2161, + 2164, 2166, 86, 2168, 86, 2167, 86, 2170, 86, 86, + 86, 2175, 86, 2173, 2169, 2174, 86, 86, 86, 86, + 86, 2180, 86, 86, 2171, 2177, 86, 2172, 86, 2185, - 2184, 86, 2186, 86, 86, 2189, 86, 86, 86, 86, - 2188, 86, 86, 2190, 86, 2193, 86, 86, 2194, 86, - 86, 86, 86, 86, 86, 86, 2187, 86, 2192, 2191, - 2202, 2196, 2197, 2195, 2199, 86, 2198, 2204, 2201, 2206, - 2207, 86, 2200, 2203, 86, 86, 86, 86, 2205, 2210, - 2211, 86, 86, 2208, 2214, 86, 2213, 86, 86, 86, - 86, 86, 2216, 86, 2209, 2217, 86, 2212, 2218, 86, - 2220, 2222, 86, 2215, 2224, 2221, 86, 86, 2219, 2226, - 86, 86, 86, 86, 2229, 2223, 2228, 86, 2230, 86, - 2225, 86, 2231, 2234, 86, 86, 86, 86, 86, 86, + 2176, 86, 2181, 2179, 86, 2183, 2178, 86, 86, 2189, + 2182, 86, 86, 2184, 2191, 86, 2186, 86, 86, 86, + 2187, 2192, 2188, 86, 2190, 2197, 86, 86, 2193, 86, + 2199, 86, 86, 2194, 2195, 2202, 86, 2196, 2200, 2201, + 86, 2203, 86, 2198, 86, 2204, 86, 2207, 86, 86, + 86, 86, 2206, 86, 86, 2205, 2208, 86, 2211, 2212, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 2209, 2210, 2214, 2215, 2220, 2213, 2217, 2216, 2225, 86, + 2219, 2224, 86, 86, 86, 86, 2222, 2221, 2228, 2218, + 2223, 86, 86, 86, 86, 2232, 2229, 2231, 86, 86, - 2235, 86, 86, 2227, 86, 2240, 2237, 2232, 2238, 2236, - 86, 2233, 2310, 2239, 86, 2242, 86, 2241, 2243, 86, - 86, 2244, 2246, 2247, 86, 2245, 86, 86, 86, 86, - 2249, 2248, 2251, 86, 2250, 2253, 86, 86, 2255, 2254, - 2252, 86, 2256, 86, 86, 86, 86, 86, 2262, 2258, - 2264, 2259, 2257, 86, 2260, 2265, 86, 2261, 86, 86, - 86, 86, 86, 86, 86, 2266, 2270, 2267, 2263, 2271, - 86, 2268, 2269, 2275, 86, 2272, 86, 86, 86, 2274, - 86, 86, 86, 2273, 86, 86, 86, 86, 86, 86, - 2284, 86, 2279, 2281, 2276, 2277, 2278, 2280, 2282, 86, + 2226, 86, 86, 2227, 2230, 2235, 2234, 86, 2236, 86, + 86, 86, 2233, 2240, 86, 86, 2238, 2242, 2245, 86, + 2237, 2239, 86, 86, 2243, 86, 86, 86, 2244, 2241, + 2247, 86, 2249, 2248, 86, 86, 2253, 86, 86, 2250, + 86, 2246, 86, 2254, 2251, 86, 86, 86, 2257, 86, + 2255, 86, 2256, 2258, 86, 2252, 86, 2259, 2262, 86, + 2261, 86, 2263, 2266, 2260, 86, 2264, 2265, 86, 86, + 2267, 86, 86, 2268, 2269, 86, 2270, 2272, 86, 86, + 2274, 86, 2275, 86, 2271, 86, 86, 2273, 86, 86, + 2277, 2281, 2276, 2282, 86, 3419, 2283, 2279, 86, 86, - 86, 86, 2301, 86, 2283, 2285, 2291, 2287, 2286, 2289, - 2290, 86, 86, 2293, 2295, 86, 86, 2297, 86, 86, - 2288, 2294, 86, 86, 86, 2296, 2299, 2303, 2300, 2292, - 170, 2305, 3387, 86, 2307, 2308, 2306, 86, 2298, 86, - 86, 86, 2309, 2302, 86, 2312, 86, 86, 2313, 86, - 2317, 86, 2304, 86, 2318, 86, 86, 2321, 2316, 86, - 86, 86, 2314, 86, 2311, 2322, 2325, 2319, 86, 2323, - 2324, 86, 2326, 2315, 2320, 86, 86, 86, 86, 2327, - 86, 2329, 86, 86, 2331, 86, 86, 2332, 86, 86, - 2335, 86, 86, 86, 2341, 86, 2328, 2339, 86, 86, + 2280, 2284, 86, 86, 2278, 86, 2285, 2286, 86, 86, + 2289, 2287, 86, 2290, 86, 2288, 2294, 86, 86, 86, + 86, 86, 2291, 2293, 86, 86, 86, 86, 86, 3419, + 2300, 86, 2292, 2301, 2298, 86, 2295, 2296, 86, 2302, + 2297, 2299, 86, 2304, 2306, 86, 86, 2305, 2303, 86, + 86, 2307, 2309, 86, 2310, 2315, 86, 86, 86, 86, + 2317, 86, 86, 86, 2308, 2311, 2314, 2312, 2316, 86, + 86, 170, 86, 2319, 2323, 2320, 2321, 2318, 2313, 2325, + 86, 2322, 2327, 2328, 2326, 86, 86, 86, 86, 86, + 2329, 86, 2331, 2324, 2330, 2332, 86, 86, 2333, 86, - 2330, 2334, 2342, 86, 2337, 86, 2333, 2336, 2344, 86, - 86, 2338, 86, 86, 2343, 2340, 86, 2349, 86, 2352, - 86, 86, 2347, 86, 86, 86, 86, 2346, 86, 2350, - 86, 2345, 2348, 2353, 86, 86, 2351, 86, 86, 86, - 2354, 86, 2355, 2362, 86, 86, 2366, 2356, 2369, 2358, - 2357, 2360, 2364, 86, 2363, 2359, 2361, 2367, 86, 2365, - 86, 86, 86, 2434, 86, 2368, 86, 2373, 2374, 86, - 86, 86, 2375, 86, 2370, 86, 2371, 2372, 2376, 86, - 86, 2379, 2380, 2382, 86, 2381, 2377, 86, 2378, 2383, - 86, 86, 2384, 86, 86, 86, 2385, 2389, 86, 2390, + 2336, 2337, 86, 86, 2338, 86, 86, 2341, 86, 2343, + 2342, 2339, 2334, 86, 2344, 86, 86, 86, 86, 2346, + 86, 2345, 2347, 2335, 2340, 86, 86, 86, 86, 86, + 2349, 86, 86, 2352, 86, 86, 86, 2348, 86, 2355, + 2350, 86, 86, 2359, 2354, 2361, 86, 86, 86, 86, + 2356, 2357, 2351, 2362, 2353, 86, 2358, 2363, 86, 86, + 2364, 86, 86, 2360, 86, 86, 2366, 2369, 2372, 86, + 2367, 86, 86, 2365, 2370, 86, 86, 86, 2368, 2373, + 86, 86, 2371, 86, 2374, 3419, 86, 86, 86, 86, + 86, 2375, 2386, 2380, 2385, 86, 2378, 86, 2376, 2383, - 86, 86, 2392, 86, 86, 2394, 86, 2388, 86, 3387, - 86, 2397, 86, 2386, 2387, 2396, 2398, 86, 86, 86, - 2391, 86, 2393, 2395, 86, 86, 2404, 86, 2400, 86, - 2403, 86, 2399, 2406, 86, 2401, 86, 86, 86, 2410, - 2409, 86, 2408, 2402, 2412, 86, 86, 86, 2405, 2407, - 86, 86, 2415, 86, 2411, 2418, 86, 86, 86, 86, - 2413, 2414, 2416, 86, 2423, 86, 86, 2422, 86, 86, - 2417, 2425, 86, 2419, 2421, 2428, 86, 2424, 86, 86, - 2420, 86, 86, 2426, 2427, 2430, 86, 2435, 86, 86, - 2441, 2437, 2429, 2431, 86, 86, 86, 2436, 2438, 2432, + 2377, 2379, 2382, 2384, 2381, 2387, 86, 86, 86, 2391, + 2390, 2389, 2388, 86, 86, 2393, 2394, 86, 86, 86, + 2395, 2396, 86, 86, 86, 2399, 2392, 86, 86, 2402, + 86, 2403, 86, 86, 2397, 86, 2398, 2400, 2404, 86, + 2401, 86, 2409, 86, 2405, 2410, 86, 2406, 86, 2412, + 86, 86, 86, 2408, 86, 2407, 2414, 86, 86, 2416, + 2417, 86, 2418, 86, 86, 86, 2419, 2411, 86, 2413, + 86, 86, 86, 2415, 2420, 86, 2424, 2425, 86, 2427, + 86, 2421, 2422, 86, 86, 86, 2430, 86, 2431, 2423, + 2429, 2426, 86, 2428, 2433, 86, 86, 86, 2436, 86, - 2433, 86, 86, 86, 86, 86, 2442, 2443, 2444, 86, - 2448, 86, 86, 2439, 86, 2440, 86, 2446, 2453, 2450, - 86, 2451, 2455, 86, 86, 86, 2445, 2452, 86, 86, - 2447, 86, 86, 86, 2456, 2460, 2457, 2449, 2459, 86, - 86, 2454, 2461, 86, 86, 86, 86, 2539, 2458, 2462, - 2466, 2467, 2463, 2464, 86, 86, 86, 86, 2468, 2465, - 86, 2471, 2472, 86, 2470, 86, 2469, 86, 86, 86, - 2473, 170, 2475, 86, 2476, 86, 2477, 86, 2474, 2482, - 86, 86, 86, 2480, 86, 2478, 86, 2479, 86, 86, - 2484, 2481, 2483, 86, 2485, 86, 2613, 86, 2489, 86, + 2439, 86, 86, 2432, 2434, 86, 86, 2435, 86, 86, + 2444, 86, 2437, 2443, 86, 86, 86, 86, 2438, 2446, + 86, 2442, 2440, 2449, 86, 86, 86, 2445, 2441, 86, + 2447, 2448, 2451, 86, 2452, 86, 2456, 2450, 86, 86, + 2458, 86, 86, 2462, 2453, 2459, 86, 2454, 2457, 86, + 86, 2464, 86, 2463, 86, 2465, 86, 86, 86, 2455, + 2460, 2469, 2461, 86, 86, 86, 2474, 2467, 2471, 2472, + 86, 86, 86, 2477, 86, 86, 86, 2466, 2468, 86, + 2473, 2478, 86, 86, 2470, 86, 2476, 2479, 2481, 86, + 86, 2475, 2482, 86, 2483, 86, 86, 2487, 170, 2480, - 2486, 2487, 2490, 2493, 86, 2488, 86, 2494, 2491, 2495, - 86, 2492, 86, 86, 2498, 2496, 2499, 86, 2497, 86, - 86, 86, 86, 2501, 86, 86, 2500, 86, 2503, 86, - 86, 2507, 2508, 2502, 86, 2505, 86, 2504, 86, 2510, - 86, 86, 86, 86, 2511, 2512, 2513, 86, 2506, 86, - 2509, 86, 2515, 86, 2514, 2519, 86, 2518, 86, 86, - 2516, 2517, 86, 86, 2521, 86, 86, 86, 86, 2528, - 2525, 2520, 86, 2527, 86, 86, 86, 86, 2529, 2524, - 86, 86, 2522, 2523, 86, 2533, 86, 2526, 86, 86, - 86, 2538, 2530, 2537, 86, 2531, 2532, 86, 2535, 86, + 2488, 2489, 2484, 2499, 2485, 2486, 86, 86, 86, 86, + 2491, 2494, 2490, 86, 2493, 86, 2495, 86, 2492, 86, + 86, 2498, 86, 86, 2496, 86, 2504, 86, 2497, 86, + 86, 86, 86, 86, 86, 86, 2511, 86, 2506, 2502, + 86, 2503, 2500, 2507, 2501, 2505, 86, 2510, 2508, 2509, + 3419, 2512, 2514, 2515, 86, 86, 2516, 2513, 2517, 86, + 86, 86, 2520, 2518, 2521, 86, 2519, 86, 86, 86, + 86, 2523, 86, 86, 2522, 86, 2525, 86, 86, 2529, + 2530, 2524, 86, 2527, 86, 2526, 86, 2532, 86, 86, + 86, 86, 2533, 2534, 2535, 86, 2528, 86, 2531, 86, - 2536, 2540, 2534, 2541, 2542, 86, 2543, 86, 86, 2546, - 2544, 2548, 86, 86, 86, 2545, 2547, 86, 2550, 86, - 2552, 86, 86, 2551, 86, 2549, 86, 86, 86, 86, - 86, 86, 2556, 2562, 2558, 2559, 2560, 86, 2554, 86, - 2553, 86, 2555, 2561, 86, 86, 2563, 2564, 86, 86, - 86, 86, 86, 2566, 2557, 2568, 86, 86, 2571, 86, - 2572, 2573, 2569, 2565, 86, 2576, 86, 86, 2567, 2570, - 86, 86, 3387, 2577, 2574, 86, 86, 2580, 86, 2575, - 2581, 86, 86, 2582, 86, 86, 86, 86, 2586, 2585, - 2578, 86, 86, 2579, 2584, 86, 86, 86, 86, 86, + 2537, 86, 2536, 2541, 86, 2540, 86, 86, 2538, 2539, + 86, 86, 2543, 86, 86, 86, 86, 2550, 2547, 2542, + 86, 2549, 86, 86, 86, 86, 2551, 2546, 86, 86, + 2544, 2545, 86, 2555, 86, 2548, 86, 86, 2565, 2560, + 2552, 2559, 86, 2553, 2554, 86, 2557, 86, 2558, 86, + 2556, 2562, 86, 86, 86, 2561, 2564, 2566, 86, 2568, + 86, 2563, 2570, 86, 2569, 2572, 86, 86, 86, 2574, + 86, 86, 86, 86, 86, 2571, 2573, 86, 2578, 2567, + 86, 86, 86, 86, 2583, 86, 2576, 2581, 2582, 2575, + 2577, 2584, 86, 2585, 86, 2586, 86, 2587, 86, 86, - 2583, 2587, 2590, 2593, 2589, 2588, 2594, 86, 2595, 86, - 2596, 86, 2597, 86, 86, 2591, 2592, 2599, 86, 86, - 2601, 86, 2602, 2600, 86, 86, 2598, 86, 86, 2607, - 86, 86, 2609, 86, 2610, 86, 2603, 2604, 86, 86, - 86, 86, 86, 86, 2606, 86, 86, 2605, 2616, 2611, - 2608, 2612, 2614, 2619, 86, 2620, 86, 86, 86, 86, - 86, 2615, 2617, 86, 86, 2618, 2627, 170, 86, 2629, - 86, 2623, 86, 86, 2625, 86, 86, 2622, 86, 2628, - 86, 2630, 2621, 2624, 86, 2626, 86, 2636, 2631, 3387, - 2632, 86, 2634, 86, 2633, 86, 2638, 86, 2639, 2647, + 86, 2580, 86, 2579, 86, 2589, 86, 2591, 86, 2594, + 86, 86, 86, 2596, 2592, 2595, 86, 2590, 2588, 86, + 2593, 2599, 86, 86, 86, 86, 2600, 2598, 86, 2597, + 86, 2603, 2604, 86, 86, 2601, 86, 2607, 86, 2605, + 2609, 2608, 2602, 2606, 86, 86, 86, 86, 86, 86, + 86, 2613, 2617, 86, 86, 2616, 2618, 86, 2610, 2611, + 2612, 2619, 86, 2620, 86, 86, 2621, 2614, 86, 2615, + 86, 2624, 86, 2623, 86, 2625, 86, 86, 86, 86, + 2631, 86, 86, 2622, 2626, 2633, 86, 86, 2627, 2634, + 86, 86, 86, 86, 86, 2630, 86, 2628, 2635, 2629, - 2637, 2635, 2640, 86, 2641, 86, 86, 2642, 86, 2643, - 86, 2644, 86, 2645, 86, 86, 86, 2649, 86, 86, - 86, 86, 86, 2646, 2655, 86, 86, 2653, 86, 2648, - 86, 2659, 86, 2650, 2660, 86, 86, 86, 2651, 2652, - 2654, 2656, 2661, 2657, 2658, 2663, 2664, 86, 86, 2666, - 86, 86, 86, 86, 2662, 2667, 86, 2665, 86, 2669, - 86, 86, 2675, 86, 2676, 86, 86, 86, 2670, 2668, - 2680, 86, 86, 86, 2671, 86, 2672, 2673, 2679, 2674, - 2681, 86, 2682, 86, 86, 2678, 2677, 86, 86, 86, - 2684, 2683, 2687, 86, 86, 86, 86, 2691, 2686, 2690, + 2637, 2632, 86, 2636, 2638, 86, 86, 2640, 2643, 86, + 86, 86, 86, 86, 2639, 2644, 2641, 86, 86, 86, + 86, 2651, 86, 170, 86, 2642, 2647, 86, 2653, 2654, + 86, 2646, 2649, 86, 2650, 2652, 2645, 2655, 86, 2656, + 86, 2648, 86, 2660, 86, 86, 2664, 86, 2657, 2662, + 2663, 2665, 86, 86, 2666, 2658, 2661, 86, 2667, 86, + 2668, 2659, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 2670, 2679, 86, 86, 2677, 86, + 2669, 2672, 86, 2671, 3419, 2673, 2674, 86, 2683, 2675, + 2676, 2678, 2680, 2685, 2681, 2682, 2684, 86, 86, 2688, - 2692, 86, 2685, 86, 86, 2693, 2694, 86, 86, 2688, - 86, 86, 86, 2689, 86, 2695, 86, 2696, 86, 2700, - 3387, 86, 2698, 2697, 2704, 2705, 86, 86, 86, 2708, - 86, 2699, 2701, 86, 86, 2702, 86, 86, 2703, 86, - 2711, 86, 2706, 2713, 2709, 86, 2707, 2714, 86, 2710, - 86, 86, 2712, 86, 2715, 2719, 86, 86, 86, 86, - 2716, 86, 2722, 2723, 86, 2720, 2721, 2725, 86, 86, - 2717, 2718, 86, 86, 2726, 86, 86, 2728, 2724, 2731, - 86, 2727, 86, 2732, 86, 2729, 2734, 86, 86, 86, - 86, 86, 2739, 86, 86, 2730, 86, 2735, 2733, 2737, + 86, 86, 2690, 86, 2686, 86, 86, 2687, 86, 86, + 2689, 86, 86, 86, 86, 2693, 2699, 86, 2700, 86, + 86, 86, 86, 2691, 2692, 86, 2694, 2695, 2703, 2697, + 2696, 2704, 86, 2698, 2705, 86, 2706, 86, 86, 2702, + 2701, 86, 86, 2707, 86, 86, 86, 3419, 86, 2711, + 2716, 86, 2708, 2714, 86, 2710, 2715, 2709, 86, 86, + 2717, 2718, 86, 86, 86, 2712, 2713, 86, 86, 86, + 86, 86, 2720, 86, 2724, 2725, 86, 86, 2719, 2722, + 2729, 2730, 86, 2721, 86, 86, 2733, 86, 2723, 86, + 86, 2726, 2727, 86, 86, 86, 2728, 2736, 86, 2731, - 2738, 2736, 2741, 86, 2740, 86, 86, 86, 2744, 86, - 2742, 2743, 2745, 86, 86, 2747, 86, 2746, 86, 86, - 86, 86, 2748, 2751, 2749, 2752, 2754, 86, 86, 2750, - 2755, 86, 86, 2756, 2753, 2758, 170, 86, 86, 2759, - 2757, 86, 2760, 2763, 3387, 86, 86, 2765, 86, 86, - 2764, 86, 86, 2768, 86, 86, 2761, 2767, 2772, 2762, - 2769, 86, 2773, 2766, 2770, 2771, 86, 2774, 86, 86, - 86, 86, 2778, 86, 2775, 2776, 86, 2779, 86, 86, - 86, 2780, 86, 86, 86, 2777, 2785, 2786, 2781, 2787, - 2783, 86, 86, 86, 86, 2782, 86, 86, 86, 2791, + 2734, 86, 2738, 2732, 86, 2735, 2739, 86, 2740, 2737, + 86, 2744, 86, 86, 86, 86, 2741, 2748, 86, 2747, + 86, 2750, 86, 2746, 2742, 2745, 86, 86, 86, 86, + 2743, 2751, 86, 2756, 86, 86, 2752, 86, 2757, 2749, + 86, 2754, 2759, 86, 2753, 86, 86, 86, 2764, 86, + 86, 86, 2755, 2760, 3419, 2762, 2763, 2758, 2761, 2767, + 86, 86, 86, 86, 86, 86, 2766, 2768, 2769, 2771, + 2765, 86, 86, 2772, 86, 2770, 86, 86, 86, 86, + 86, 2774, 2775, 2777, 2778, 2780, 86, 2781, 86, 86, + 2773, 2776, 2779, 86, 2782, 2784, 170, 86, 86, 2783, - 86, 2789, 2790, 2788, 2784, 2793, 86, 86, 86, 86, - 2792, 2794, 86, 86, 86, 2799, 86, 86, 2797, 86, - 3387, 2796, 2798, 2802, 86, 2795, 2800, 86, 86, 86, - 2801, 2807, 86, 2803, 86, 2804, 86, 86, 86, 2805, - 86, 2808, 86, 2806, 86, 2810, 86, 2809, 2812, 86, - 2816, 86, 2811, 2817, 86, 2814, 2824, 2813, 2819, 2820, - 2821, 86, 2815, 86, 86, 86, 86, 2822, 86, 2818, - 2825, 2823, 86, 2827, 86, 86, 86, 2828, 86, 86, - 2829, 86, 2832, 86, 86, 2826, 2834, 86, 2837, 2830, - 2835, 86, 86, 2831, 2836, 86, 86, 2838, 2839, 86, + 2785, 86, 2786, 2789, 3419, 86, 86, 2791, 86, 86, + 2790, 86, 86, 2794, 86, 86, 2787, 2793, 2798, 2788, + 2795, 86, 2799, 2792, 2796, 2797, 86, 2800, 86, 86, + 86, 86, 2804, 86, 2801, 2802, 86, 2805, 86, 86, + 86, 2806, 86, 86, 86, 2803, 2811, 2812, 2807, 2813, + 2809, 86, 86, 86, 86, 2808, 86, 86, 86, 2817, + 86, 2815, 2816, 2814, 2810, 2819, 86, 86, 86, 86, + 2818, 2820, 86, 86, 86, 2825, 86, 86, 2823, 86, + 3419, 2822, 2824, 2828, 86, 2821, 2826, 86, 86, 86, + 2827, 2833, 86, 2829, 86, 2830, 86, 86, 86, 2831, - 86, 2833, 86, 2843, 86, 2841, 86, 86, 2844, 86, - 86, 2847, 2848, 86, 2842, 86, 2840, 86, 2845, 2849, - 86, 86, 86, 86, 2846, 2850, 86, 2853, 2851, 2854, - 86, 86, 2855, 2856, 86, 2852, 2857, 2858, 86, 2859, - 86, 2860, 2862, 2863, 86, 86, 2865, 86, 86, 2864, - 86, 2867, 86, 86, 2861, 2866, 2868, 86, 86, 86, - 2873, 86, 86, 86, 86, 2872, 86, 2875, 2876, 86, - 2869, 86, 2878, 2870, 86, 86, 2877, 2879, 2871, 86, - 86, 2882, 2881, 86, 86, 86, 2874, 2880, 2885, 86, - 2889, 86, 2883, 2884, 86, 86, 86, 86, 2891, 86, + 86, 2834, 86, 2832, 86, 2836, 86, 2835, 2838, 86, + 2842, 3419, 2837, 2843, 86, 2840, 86, 2839, 2845, 2846, + 2848, 3419, 2841, 86, 86, 86, 86, 2849, 86, 2844, + 86, 2850, 86, 86, 2847, 2851, 2854, 86, 86, 86, + 2855, 2852, 86, 2856, 86, 86, 2853, 86, 2859, 2861, + 86, 86, 2857, 2862, 86, 2863, 86, 86, 86, 2858, + 86, 2864, 86, 2860, 86, 2865, 2866, 86, 2870, 2868, + 2869, 2867, 86, 2871, 86, 86, 2874, 2875, 86, 2876, + 86, 86, 2873, 86, 2872, 86, 2877, 2879, 86, 86, + 2882, 86, 86, 2883, 2878, 2884, 86, 86, 2886, 86, - 86, 86, 2886, 2888, 2918, 2887, 2892, 2895, 2890, 2896, - 2893, 86, 2898, 86, 2897, 86, 2894, 2899, 86, 2900, - 2901, 86, 86, 2902, 86, 2903, 86, 2904, 86, 2905, - 86, 86, 86, 2908, 86, 86, 2907, 2909, 86, 2910, - 2912, 86, 86, 2916, 86, 86, 2906, 2913, 2917, 86, - 86, 2911, 2920, 86, 2922, 86, 86, 2921, 86, 86, - 86, 2914, 2915, 2919, 2923, 2924, 86, 2925, 86, 2926, - 2929, 86, 86, 86, 2928, 86, 2930, 2927, 86, 2935, - 86, 86, 2931, 86, 2936, 86, 86, 86, 86, 2933, - 2938, 2939, 86, 2940, 2932, 2934, 2937, 2941, 86, 2942, + 86, 86, 86, 2880, 2890, 2891, 86, 86, 2893, 2881, + 86, 2892, 2885, 2887, 86, 86, 2889, 2895, 86, 2888, + 2894, 86, 2896, 86, 86, 86, 2901, 2900, 86, 86, + 2904, 86, 86, 2903, 86, 86, 86, 86, 86, 2905, + 2907, 2897, 86, 2906, 2898, 2899, 86, 86, 2910, 2909, + 86, 86, 86, 2902, 86, 2911, 2912, 2913, 2917, 86, + 2914, 2908, 86, 86, 86, 2916, 2919, 86, 2918, 86, + 2915, 86, 2924, 3419, 2920, 2923, 2921, 2925, 86, 2926, + 2929, 86, 86, 2922, 2927, 86, 86, 2930, 2928, 86, + 2931, 86, 2932, 86, 2933, 86, 86, 2937, 2934, 86, - 86, 86, 2946, 86, 86, 86, 2943, 86, 86, 86, - 2952, 2944, 86, 2947, 86, 86, 86, 2948, 2950, 2945, - 2955, 86, 86, 2957, 2953, 86, 2956, 86, 2951, 86, - 86, 86, 2949, 86, 2958, 2954, 2959, 86, 2962, 2967, - 2960, 2963, 86, 2961, 2964, 86, 2965, 86, 2966, 86, - 86, 2971, 86, 2968, 86, 2970, 86, 86, 86, 2972, - 86, 2969, 86, 2973, 2974, 86, 86, 2978, 2976, 2980, - 2975, 86, 2982, 86, 86, 86, 86, 86, 2983, 86, - 86, 2977, 2984, 86, 2979, 2985, 86, 2986, 86, 2991, - 86, 86, 86, 86, 2988, 2987, 2981, 2994, 2989, 86, + 2935, 86, 86, 86, 2938, 86, 86, 2940, 2944, 86, + 2945, 86, 2941, 86, 86, 86, 2936, 2946, 2948, 86, + 2939, 86, 2949, 2950, 86, 2942, 2943, 86, 2952, 86, + 2953, 2947, 2951, 86, 86, 86, 86, 2958, 86, 86, + 86, 86, 2954, 2955, 2956, 2959, 86, 86, 2960, 86, + 2964, 86, 2970, 86, 2957, 2965, 86, 2962, 2967, 2961, + 86, 86, 2963, 86, 2966, 2968, 2971, 86, 2969, 86, + 86, 2975, 86, 86, 2972, 86, 86, 86, 86, 2981, + 86, 86, 2976, 3419, 86, 86, 2979, 2977, 2974, 2984, + 86, 86, 2982, 86, 2973, 2985, 86, 2986, 2980, 86, - 86, 86, 86, 86, 2992, 2993, 86, 86, 2990, 2995, - 2998, 2999, 86, 3000, 86, 2996, 3001, 3004, 86, 86, - 2997, 3002, 3006, 86, 3007, 86, 86, 3009, 86, 86, - 86, 86, 86, 3014, 86, 86, 3013, 3017, 3005, 86, - 3003, 86, 86, 86, 86, 3010, 3011, 3008, 3012, 86, - 3016, 86, 3020, 3023, 86, 3015, 86, 3025, 3021, 86, - 86, 3019, 3018, 86, 3026, 3028, 86, 86, 3022, 3029, - 86, 3031, 86, 86, 86, 86, 3024, 86, 86, 3036, - 86, 3387, 3027, 3034, 3033, 86, 86, 3030, 3040, 86, - 3038, 3032, 86, 3044, 86, 3035, 3037, 3042, 86, 86, + 2987, 2978, 2983, 86, 2988, 86, 2989, 86, 2991, 2993, + 86, 2992, 2994, 86, 2995, 86, 86, 2990, 86, 3003, + 86, 86, 3000, 86, 2998, 2996, 2999, 86, 86, 86, + 86, 86, 3001, 86, 3002, 86, 86, 3009, 2997, 86, + 3007, 3004, 3005, 86, 3011, 86, 86, 86, 86, 86, + 3012, 3008, 3006, 3013, 3014, 86, 3015, 86, 3016, 86, + 86, 3010, 3017, 3020, 86, 86, 86, 86, 86, 86, + 3023, 86, 3018, 3021, 86, 86, 3024, 86, 3022, 3019, + 3028, 86, 3027, 86, 3025, 86, 3029, 86, 3026, 3031, + 3030, 3033, 86, 3035, 86, 3036, 86, 3038, 86, 86, - 3039, 3041, 3043, 86, 86, 3047, 3048, 86, 3050, 86, - 3045, 86, 3049, 86, 86, 3053, 86, 86, 3052, 86, - 3056, 86, 3051, 3046, 3054, 86, 86, 3059, 86, 86, - 86, 86, 3064, 86, 86, 86, 3055, 3060, 3057, 3058, - 86, 3068, 86, 86, 3063, 3069, 86, 3061, 3070, 3067, - 86, 3066, 86, 3065, 86, 3062, 86, 3072, 3073, 86, - 3074, 86, 3075, 86, 3071, 3078, 86, 3076, 86, 3080, - 86, 86, 86, 3079, 86, 86, 86, 3085, 3086, 86, - 86, 86, 3077, 86, 86, 3081, 86, 3092, 86, 3093, - 86, 86, 3387, 3094, 3082, 3091, 3083, 3084, 3089, 86, + 86, 86, 3034, 3032, 86, 86, 3041, 86, 3037, 86, + 3043, 3044, 86, 3047, 86, 3039, 3040, 86, 3046, 86, + 3042, 86, 3050, 86, 86, 3053, 86, 3045, 86, 3055, + 86, 3058, 86, 86, 86, 86, 3049, 3048, 3051, 3056, + 3059, 86, 3052, 3061, 86, 86, 86, 86, 3054, 86, + 86, 3066, 3057, 3060, 86, 3064, 3063, 86, 3070, 86, + 86, 86, 3068, 3062, 3072, 86, 86, 3065, 3067, 3073, + 86, 3074, 86, 3077, 3069, 3071, 86, 3075, 3080, 86, + 3078, 86, 86, 86, 86, 3079, 3083, 86, 3082, 86, + 86, 3086, 3076, 86, 3081, 3084, 86, 86, 3089, 86, - 3088, 86, 86, 3090, 3098, 86, 3087, 3097, 3099, 86, - 86, 3095, 86, 3102, 86, 3100, 86, 3105, 86, 86, - 3096, 86, 3104, 86, 86, 3107, 3101, 86, 3103, 3106, - 86, 86, 3108, 86, 86, 86, 3111, 86, 86, 86, - 3113, 3387, 86, 3109, 86, 3112, 3114, 86, 86, 3126, - 3110, 86, 86, 86, 3115, 86, 3123, 3116, 3124, 3117, - 3118, 3120, 3121, 3119, 86, 86, 86, 86, 86, 3122, - 3127, 3129, 3125, 3131, 86, 3132, 86, 86, 3387, 3130, - 86, 3133, 3134, 86, 3128, 3135, 3136, 3137, 86, 3138, - 86, 3139, 3140, 86, 86, 3141, 3142, 3145, 86, 3143, + 86, 86, 86, 3094, 86, 86, 86, 86, 3085, 3419, + 3087, 3088, 3090, 86, 3091, 3093, 3097, 3098, 86, 3099, + 86, 86, 3096, 86, 3095, 86, 3092, 3101, 3100, 86, + 3102, 3103, 86, 3104, 86, 3105, 86, 3108, 86, 86, + 3110, 86, 3106, 86, 3109, 86, 86, 3107, 86, 86, + 86, 86, 3116, 3117, 86, 86, 86, 3111, 86, 3123, + 86, 86, 86, 3124, 86, 86, 86, 3112, 3113, 3114, + 3115, 3122, 3120, 3125, 3119, 3118, 3121, 86, 86, 86, + 3132, 3126, 3128, 3131, 3127, 3129, 86, 3130, 86, 3133, + 86, 86, 3136, 86, 86, 86, 86, 86, 3138, 3135, - 3144, 86, 86, 86, 3148, 86, 3146, 86, 86, 86, - 86, 86, 3147, 3154, 86, 86, 3153, 86, 86, 86, - 86, 86, 3150, 3157, 3156, 3149, 86, 3158, 86, 3151, - 3152, 3161, 3162, 86, 86, 3159, 86, 3163, 3387, 3160, - 3155, 86, 3164, 3165, 86, 3166, 86, 86, 86, 3167, - 3171, 86, 3168, 3173, 86, 3172, 86, 3169, 86, 86, - 3170, 3174, 86, 3177, 86, 3181, 3175, 3178, 3180, 86, - 86, 86, 3183, 86, 86, 3176, 3182, 3184, 86, 86, - 3187, 86, 86, 3179, 3186, 3188, 86, 3190, 86, 3185, - 86, 3189, 3191, 86, 3192, 86, 3193, 86, 3194, 86, + 86, 3137, 3134, 86, 86, 3139, 86, 86, 86, 3142, + 86, 86, 86, 3144, 86, 86, 3145, 3140, 3143, 86, + 86, 86, 86, 3141, 86, 86, 3154, 3155, 3157, 3146, + 3150, 3147, 3148, 3149, 86, 86, 3151, 3152, 86, 86, + 3158, 3153, 3160, 86, 3156, 3159, 3162, 86, 3163, 86, + 86, 3161, 3165, 86, 3164, 86, 3168, 86, 3169, 86, + 3166, 86, 3167, 3170, 3171, 3177, 86, 3172, 3173, 86, + 86, 3174, 86, 3175, 3176, 86, 86, 86, 3179, 86, + 3178, 3180, 86, 86, 86, 86, 3186, 86, 86, 86, + 3185, 86, 86, 3182, 86, 3181, 3188, 86, 3189, 86, - 3195, 86, 3196, 86, 3197, 86, 86, 3200, 86, 86, - 86, 86, 86, 86, 86, 3199, 3198, 86, 3201, 3205, - 86, 86, 3202, 86, 3209, 86, 3208, 3206, 3210, 86, - 3207, 3203, 3204, 3212, 86, 86, 3211, 86, 3214, 86, - 3216, 86, 86, 3213, 3219, 3218, 86, 86, 86, 86, - 86, 86, 3221, 86, 86, 86, 86, 86, 3227, 3217, - 3220, 3225, 3226, 3215, 86, 3224, 86, 3222, 86, 3223, - 86, 3228, 86, 3230, 3238, 3231, 86, 3232, 3233, 86, - 3234, 86, 86, 3229, 3235, 86, 86, 86, 86, 3236, - 86, 3237, 86, 86, 3244, 3243, 3239, 86, 3246, 3242, + 3190, 86, 86, 3183, 3184, 86, 3193, 3191, 3194, 86, + 3200, 3195, 86, 3187, 3199, 3192, 86, 3196, 3197, 86, + 3198, 86, 86, 3203, 3205, 86, 86, 86, 3204, 86, + 86, 3201, 3209, 86, 3202, 86, 86, 3206, 3210, 3213, + 3207, 3212, 86, 86, 86, 86, 3419, 3208, 3234, 3214, + 3215, 86, 3216, 86, 3211, 86, 3219, 86, 86, 3217, + 3218, 3220, 86, 3222, 86, 3223, 86, 3221, 3224, 86, + 3225, 86, 3226, 86, 3227, 86, 3228, 86, 3229, 86, + 86, 86, 3232, 86, 86, 86, 3237, 86, 86, 86, + 3231, 86, 86, 3233, 86, 86, 86, 3241, 3242, 86, - 3240, 86, 86, 86, 86, 86, 86, 86, 3245, 86, - 3241, 86, 3255, 86, 3247, 3253, 3258, 86, 86, 3250, - 86, 3248, 3249, 3254, 3252, 3257, 86, 86, 86, 86, - 3251, 3260, 3263, 86, 3256, 86, 3265, 86, 3259, 86, - 3266, 3261, 3267, 86, 3264, 3268, 86, 86, 3262, 3270, - 86, 86, 86, 3271, 86, 86, 3272, 3273, 3276, 86, - 86, 86, 86, 86, 86, 86, 3269, 3279, 3280, 86, - 3275, 86, 3278, 3277, 3282, 86, 3283, 86, 3284, 3274, - 86, 3281, 3286, 86, 3285, 86, 3287, 3289, 86, 86, - 3290, 86, 86, 3291, 3293, 3294, 86, 86, 3288, 86, + 3244, 86, 86, 3240, 3238, 3235, 3230, 3236, 3239, 3243, + 3245, 86, 86, 3248, 3246, 86, 86, 3251, 86, 3250, + 86, 86, 86, 86, 86, 3253, 86, 86, 3247, 86, + 3259, 86, 3252, 3249, 86, 3257, 3258, 86, 3256, 86, + 3254, 86, 3255, 86, 3262, 86, 3260, 3270, 3263, 86, + 3264, 3265, 86, 3266, 86, 3267, 86, 86, 3269, 86, + 3261, 86, 86, 86, 3268, 86, 86, 3275, 3276, 86, + 3278, 86, 86, 3272, 3274, 86, 86, 3271, 86, 86, + 3277, 86, 86, 86, 3273, 3279, 3287, 86, 3290, 86, + 3280, 3285, 3282, 3281, 3284, 3286, 86, 86, 86, 86, - 86, 86, 3299, 86, 3298, 86, 3295, 3300, 86, 3296, - 3292, 86, 86, 86, 86, 86, 3297, 86, 3304, 86, - 3306, 86, 86, 86, 86, 86, 3301, 3303, 3311, 3312, - 86, 3302, 3305, 86, 3308, 3309, 3307, 3319, 3310, 3313, - 86, 3317, 86, 86, 86, 3314, 86, 3320, 3315, 3318, - 86, 86, 3316, 86, 86, 3321, 3322, 3325, 3323, 3326, - 86, 86, 86, 86, 3328, 86, 3327, 86, 86, 86, - 86, 3329, 3334, 3324, 86, 3331, 86, 86, 86, 86, - 3337, 3330, 3338, 86, 86, 86, 86, 86, 3332, 3333, - 3336, 3341, 86, 3335, 3339, 3342, 86, 3340, 86, 3345, + 86, 3289, 86, 3283, 3292, 3295, 86, 86, 3288, 3297, + 86, 3296, 3293, 86, 3298, 3299, 86, 3291, 3300, 86, + 3294, 86, 86, 86, 86, 3303, 3301, 86, 3304, 3305, + 86, 3308, 86, 86, 86, 86, 86, 86, 3311, 3312, + 86, 3302, 3314, 86, 86, 3307, 3309, 3310, 3315, 86, + 86, 3316, 3306, 86, 3313, 3318, 86, 3321, 86, 86, + 3322, 86, 86, 3317, 3325, 3319, 3326, 86, 86, 3323, + 86, 3320, 86, 86, 86, 3331, 86, 3332, 86, 3330, + 3328, 3324, 3327, 86, 86, 86, 86, 86, 86, 86, + 3336, 86, 3329, 3338, 86, 86, 86, 86, 3335, 86, - 3344, 3346, 86, 3343, 86, 3347, 86, 3349, 86, 3351, - 86, 3352, 86, 86, 86, 3356, 86, 3353, 3387, 86, - 3354, 3359, 86, 3350, 3357, 86, 86, 3358, 3348, 86, - 86, 86, 86, 3355, 86, 86, 3360, 3361, 86, 3363, - 3365, 86, 86, 3367, 86, 3362, 86, 3368, 86, 3371, - 3364, 3366, 3372, 86, 3369, 86, 86, 3375, 3376, 86, - 86, 3378, 86, 3370, 86, 3373, 86, 3377, 3379, 86, - 86, 3380, 86, 86, 3374, 3381, 3387, 3382, 3385, 86, - 3386, 86, 3387, 3387, 3387, 3383, 3387, 3387, 3387, 3387, - 3387, 3387, 3384, 47, 47, 47, 47, 47, 47, 47, + 3343, 86, 3345, 86, 3333, 3334, 3344, 3337, 3339, 3340, + 3341, 3346, 86, 3342, 3349, 86, 86, 3347, 3351, 86, + 3352, 3350, 86, 86, 86, 86, 86, 3353, 3354, 3357, + 3355, 3348, 3358, 86, 86, 86, 3360, 86, 86, 3359, + 86, 86, 3361, 86, 86, 3356, 3366, 86, 3363, 86, + 3369, 86, 86, 3370, 86, 86, 86, 86, 86, 3362, + 3373, 86, 3364, 3365, 3368, 3371, 3367, 86, 3372, 86, + 3377, 86, 3378, 86, 3376, 86, 3374, 3375, 86, 3381, + 86, 3383, 86, 3384, 3379, 86, 86, 86, 3388, 86, + 3385, 86, 86, 3386, 3382, 86, 3389, 3390, 86, 3380, - 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, - 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, - 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, - 74, 74, 74, 74, 74, 80, 80, 80, 80, 80, - 80, 80, 89, 89, 3387, 89, 89, 89, 89, 160, - 160, 3387, 3387, 3387, 160, 160, 162, 162, 3387, 3387, - 162, 3387, 162, 164, 3387, 3387, 3387, 3387, 3387, 164, - 167, 167, 3387, 3387, 3387, 167, 167, 169, 3387, 3387, - 3387, 3387, 3387, 169, 171, 171, 3387, 171, 171, 171, - 171, 174, 3387, 3387, 3387, 3387, 3387, 174, 177, 177, + 3391, 86, 86, 86, 86, 3392, 3387, 86, 3395, 3393, + 86, 3394, 3397, 86, 86, 3399, 86, 86, 86, 3400, + 86, 3403, 86, 3396, 3404, 86, 3398, 86, 3407, 3408, + 86, 86, 3410, 86, 86, 3401, 3402, 3405, 3409, 3411, + 86, 3406, 86, 86, 86, 86, 3417, 86, 3413, 3412, + 3414, 3418, 86, 3415, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3416, 47, 47, 47, 47, 47, 47, + 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, + 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, + 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, - 3387, 3387, 3387, 177, 177, 90, 90, 3387, 90, 90, - 90, 90, 17, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387 + 74, 74, 74, 74, 74, 74, 80, 80, 80, 80, + 80, 80, 80, 89, 89, 3419, 89, 89, 89, 89, + 160, 160, 3419, 3419, 3419, 160, 160, 162, 162, 3419, + 3419, 162, 3419, 162, 164, 3419, 3419, 3419, 3419, 3419, + 164, 167, 167, 3419, 3419, 3419, 167, 167, 169, 3419, + 3419, 3419, 3419, 3419, 169, 171, 171, 3419, 171, 171, + 171, 171, 174, 3419, 3419, 3419, 3419, 3419, 174, 177, + 177, 3419, 3419, 3419, 177, 177, 90, 90, 3419, 90, + 90, 90, 90, 17, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419 } ; -static const flex_int16_t yy_chk[6654] = +static const flex_int16_t yy_chk[6725] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2283,18 +2301,18 @@ static const flex_int16_t yy_chk[6654] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3395, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3427, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2758, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2784, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1104, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1112, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2333,9 +2351,9 @@ static const flex_int16_t yy_chk[6654] = 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 552, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 554, 214, 218, 216, 208, 209, 211, 205, 210, 211, 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 552, 224, 222, 227, 215, 221, + 222, 219, 223, 221, 554, 224, 222, 227, 215, 221, 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, @@ -2359,654 +2377,662 @@ static const flex_int16_t yy_chk[6654] = 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, - 321, 328, 322, 327, 324, 333, 331, 326, 366, 332, - 333, 329, 336, 325, 330, 331, 334, 335, 337, 334, - 335, 334, 366, 330, 169, 336, 330, 332, 341, 341, + 321, 328, 322, 327, 324, 333, 331, 326, 336, 332, + 333, 329, 337, 325, 330, 331, 335, 334, 169, 335, + 334, 336, 334, 330, 337, 340, 330, 332, 340, 341, - 337, 330, 330, 330, 330, 339, 338, 334, 338, 338, - 339, 339, 340, 342, 343, 340, 345, 344, 346, 347, - 347, 348, 349, 349, 351, 345, 348, 346, 353, 343, - 342, 350, 350, 342, 344, 344, 352, 354, 355, 351, - 353, 352, 356, 357, 360, 1304, 361, 358, 358, 357, - 358, 361, 369, 369, 362, 1304, 354, 356, 355, 358, - 362, 363, 364, 394, 360, 365, 363, 364, 365, 367, - 365, 368, 367, 364, 372, 370, 371, 371, 375, 372, - 368, 370, 377, 373, 378, 367, 373, 379, 367, 394, - 367, 376, 373, 382, 376, 384, 373, 377, 375, 378, + 341, 330, 330, 330, 330, 334, 339, 338, 334, 338, + 338, 339, 339, 342, 343, 345, 346, 344, 347, 347, + 354, 348, 349, 349, 345, 346, 348, 350, 350, 343, + 342, 351, 352, 342, 344, 344, 353, 352, 355, 354, + 356, 357, 358, 358, 360, 358, 351, 357, 353, 369, + 369, 361, 363, 362, 358, 356, 361, 363, 355, 362, + 364, 366, 375, 365, 360, 364, 365, 367, 365, 368, + 367, 364, 377, 370, 467, 366, 371, 371, 368, 370, + 372, 373, 375, 367, 373, 372, 367, 377, 367, 376, + 373, 379, 376, 378, 373, 381, 467, 382, 381, 373, - 381, 379, 385, 381, 373, 374, 374, 382, 374, 386, - 384, 385, 376, 388, 386, 386, 389, 387, 390, 381, - 392, 374, 395, 387, 374, 167, 374, 391, 374, 383, - 387, 383, 383, 390, 388, 389, 391, 396, 399, 392, - 393, 383, 395, 383, 383, 383, 393, 397, 383, 398, - 400, 396, 401, 397, 398, 402, 403, 397, 399, 404, - 402, 405, 405, 406, 407, 404, 408, 401, 409, 410, - 400, 403, 398, 411, 409, 414, 407, 412, 413, 413, - 408, 413, 412, 406, 415, 416, 423, 420, 417, 411, - 418, 420, 418, 421, 410, 414, 419, 421, 419, 419, + 384, 389, 373, 374, 374, 379, 374, 385, 378, 392, + 376, 382, 386, 388, 381, 384, 385, 386, 386, 374, + 389, 390, 374, 391, 374, 387, 374, 383, 392, 383, + 383, 387, 391, 394, 388, 395, 390, 396, 387, 383, + 398, 383, 383, 383, 393, 398, 383, 397, 399, 400, + 393, 396, 401, 397, 404, 395, 402, 397, 403, 394, + 404, 402, 406, 398, 405, 405, 407, 401, 399, 400, + 408, 409, 410, 403, 411, 412, 414, 409, 407, 415, + 412, 167, 406, 416, 408, 413, 413, 417, 413, 418, + 411, 418, 422, 422, 420, 415, 414, 410, 420, 416, - 415, 416, 417, 422, 422, 423, 424, 425, 426, 428, - 427, 430, 421, 431, 432, 166, 419, 430, 428, 432, - 429, 424, 431, 425, 427, 429, 426, 434, 433, 428, - 436, 428, 433, 429, 429, 435, 434, 429, 429, 437, - 438, 435, 440, 439, 438, 437, 439, 440, 441, 442, - 442, 436, 443, 444, 444, 445, 446, 447, 447, 449, - 445, 448, 450, 449, 451, 443, 452, 448, 441, 446, - 453, 452, 454, 454, 455, 453, 456, 450, 458, 457, - 459, 454, 461, 459, 460, 451, 455, 464, 460, 466, - 458, 462, 462, 463, 461, 470, 456, 457, 463, 465, + 419, 417, 419, 419, 421, 423, 424, 428, 421, 425, + 426, 433, 427, 430, 166, 433, 428, 429, 436, 430, + 419, 424, 429, 421, 423, 425, 427, 428, 426, 428, + 429, 429, 431, 432, 429, 429, 434, 435, 432, 436, + 437, 431, 441, 435, 438, 434, 437, 439, 438, 440, + 439, 442, 442, 443, 440, 444, 444, 446, 445, 447, + 447, 448, 441, 445, 449, 450, 443, 448, 449, 451, + 446, 452, 453, 454, 454, 455, 452, 453, 456, 457, + 450, 458, 454, 459, 460, 465, 459, 455, 461, 460, + 451, 462, 461, 458, 463, 463, 464, 457, 456, 466, - 465, 468, 468, 473, 471, 472, 475, 476, 464, 478, - 474, 466, 471, 479, 472, 474, 470, 480, 481, 476, - 485, 483, 482, 164, 473, 485, 475, 478, 482, 478, - 483, 479, 481, 484, 486, 487, 489, 480, 488, 484, - 490, 488, 492, 487, 493, 491, 487, 493, 486, 495, - 489, 491, 494, 497, 496, 490, 498, 499, 494, 496, - 500, 499, 492, 495, 501, 500, 502, 503, 504, 505, - 508, 502, 511, 525, 525, 497, 494, 498, 509, 501, - 510, 512, 505, 503, 510, 162, 515, 504, 506, 506, - 508, 511, 523, 509, 506, 513, 506, 512, 516, 513, + 466, 464, 471, 462, 469, 469, 465, 472, 473, 474, + 477, 475, 476, 479, 481, 472, 475, 473, 480, 483, + 484, 482, 477, 471, 487, 483, 553, 490, 553, 484, + 474, 479, 476, 479, 481, 482, 480, 485, 487, 486, + 488, 490, 489, 485, 486, 489, 491, 492, 488, 493, + 495, 488, 494, 492, 496, 494, 495, 497, 498, 500, + 499, 491, 497, 500, 502, 501, 503, 504, 496, 493, + 501, 503, 505, 506, 495, 509, 552, 512, 514, 502, + 498, 499, 510, 504, 511, 513, 506, 517, 511, 552, + 513, 505, 507, 507, 514, 509, 512, 510, 507, 515, - 514, 515, 506, 516, 506, 514, 517, 506, 506, 514, - 518, 520, 519, 521, 506, 523, 524, 522, 519, 518, - 522, 526, 517, 519, 528, 517, 520, 527, 527, 521, - 529, 531, 530, 532, 534, 533, 524, 535, 536, 528, - 533, 559, 529, 534, 559, 537, 526, 530, 539, 543, - 531, 537, 544, 536, 540, 532, 535, 539, 540, 541, - 542, 543, 545, 541, 546, 547, 542, 544, 548, 549, - 550, 553, 551, 549, 551, 554, 554, 556, 546, 553, - 547, 545, 555, 550, 557, 558, 548, 560, 555, 556, - 557, 561, 563, 562, 564, 563, 565, 558, 562, 566, + 507, 519, 517, 515, 516, 518, 507, 520, 507, 516, + 518, 507, 507, 516, 522, 521, 520, 519, 507, 523, + 519, 521, 524, 525, 526, 524, 521, 527, 527, 522, + 528, 529, 529, 530, 533, 523, 532, 531, 534, 537, + 535, 536, 538, 541, 526, 535, 525, 164, 530, 531, + 536, 532, 541, 533, 545, 528, 539, 538, 537, 542, + 534, 543, 539, 542, 544, 543, 545, 546, 547, 548, + 544, 549, 550, 551, 556, 556, 555, 551, 162, 557, + 558, 560, 546, 548, 555, 557, 549, 547, 559, 562, + 550, 563, 558, 560, 559, 561, 564, 565, 561, 566, - 611, 560, 567, 564, 566, 566, 561, 568, 568, 611, - 564, 575, 565, 564, 570, 567, 569, 569, 571, 571, - 570, 572, 572, 573, 576, 574, 579, 580, 578, 573, - 574, 574, 575, 578, 577, 580, 576, 577, 581, 582, - 583, 581, 584, 585, 582, 579, 586, 585, 588, 587, - 589, 590, 586, 587, 592, 589, 591, 591, 593, 594, - 595, 584, 596, 583, 594, 590, 588, 597, 160, 592, - 598, 599, 604, 597, 601, 598, 595, 603, 600, 593, - 607, 600, 596, 602, 602, 599, 600, 608, 604, 600, - 600, 605, 601, 606, 607, 603, 605, 610, 606, 617, + 565, 564, 578, 562, 567, 568, 563, 160, 566, 569, + 568, 568, 570, 570, 578, 566, 571, 571, 566, 572, + 567, 577, 569, 573, 573, 572, 574, 574, 575, 579, + 576, 581, 579, 580, 575, 576, 576, 582, 580, 584, + 583, 585, 577, 583, 584, 582, 586, 587, 588, 589, + 581, 587, 590, 589, 588, 591, 595, 592, 593, 593, + 591, 594, 596, 597, 585, 586, 598, 596, 599, 601, + 590, 592, 603, 600, 599, 606, 594, 595, 600, 597, + 605, 602, 609, 601, 602, 85, 598, 604, 604, 602, + 603, 606, 602, 602, 607, 608, 609, 610, 605, 607, - 618, 612, 608, 610, 612, 613, 614, 615, 616, 613, - 615, 614, 619, 616, 620, 617, 621, 622, 618, 619, - 624, 621, 623, 623, 625, 626, 627, 620, 628, 624, - 629, 613, 630, 635, 643, 627, 629, 622, 630, 631, - 628, 626, 631, 625, 632, 632, 633, 632, 634, 633, - 636, 635, 637, 634, 638, 639, 641, 637, 640, 643, - 650, 639, 641, 640, 636, 642, 644, 646, 642, 645, - 647, 644, 648, 638, 645, 645, 649, 648, 651, 650, - 646, 652, 649, 647, 653, 662, 652, 651, 654, 654, - 655, 648, 648, 656, 657, 658, 656, 655, 659, 664, + 608, 612, 613, 614, 615, 616, 614, 612, 615, 618, + 616, 613, 610, 617, 618, 619, 617, 620, 621, 622, + 624, 623, 625, 625, 626, 621, 623, 627, 628, 629, + 615, 619, 622, 626, 630, 620, 631, 80, 632, 634, + 624, 633, 634, 630, 632, 629, 627, 633, 631, 628, + 635, 635, 636, 635, 637, 636, 638, 639, 640, 637, + 641, 642, 644, 640, 643, 646, 653, 642, 644, 643, + 645, 639, 647, 645, 638, 648, 649, 647, 650, 641, + 648, 648, 651, 655, 654, 653, 652, 651, 655, 649, + 646, 650, 652, 654, 656, 657, 657, 658, 661, 660, - 657, 661, 661, 659, 653, 666, 663, 658, 663, 660, - 662, 656, 667, 659, 660, 660, 668, 665, 664, 665, - 669, 670, 671, 666, 673, 672, 676, 674, 671, 672, - 667, 675, 677, 673, 668, 678, 681, 679, 686, 669, - 683, 670, 674, 680, 676, 682, 675, 678, 684, 680, - 681, 677, 679, 687, 685, 688, 686, 682, 685, 683, - 689, 690, 692, 691, 693, 693, 694, 684, 691, 687, - 694, 695, 696, 688, 698, 697, 692, 699, 689, 689, - 690, 700, 699, 701, 85, 695, 697, 702, 698, 703, - 704, 696, 705, 706, 708, 704, 703, 700, 706, 705, + 659, 651, 651, 659, 658, 660, 662, 663, 664, 664, + 661, 662, 663, 663, 656, 665, 667, 666, 659, 666, + 668, 662, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 679, 675, 674, 667, 678, 680, 682, 676, + 665, 669, 670, 671, 684, 672, 677, 673, 681, 683, + 679, 678, 685, 682, 686, 683, 680, 687, 684, 689, + 681, 688, 694, 689, 685, 690, 691, 692, 693, 695, + 696, 697, 697, 686, 695, 698, 699, 700, 687, 698, + 688, 694, 691, 690, 696, 692, 693, 693, 701, 702, + 699, 704, 703, 705, 707, 706, 700, 703, 712, 701, - 702, 707, 701, 709, 710, 711, 707, 712, 713, 714, - 709, 716, 708, 710, 716, 714, 712, 715, 718, 711, - 713, 717, 715, 720, 719, 717, 721, 722, 723, 723, - 724, 724, 718, 719, 725, 725, 726, 727, 720, 724, - 721, 726, 729, 730, 731, 733, 727, 732, 722, 730, - 734, 732, 735, 736, 737, 739, 738, 733, 740, 736, - 741, 729, 737, 738, 731, 747, 744, 750, 751, 754, - 735, 753, 755, 739, 751, 734, 750, 753, 754, 759, - 741, 744, 747, 740, 742, 761, 742, 756, 755, 742, - 759, 756, 760, 742, 757, 757, 742, 758, 758, 761, + 708, 707, 709, 702, 715, 708, 710, 704, 706, 709, + 711, 710, 705, 713, 714, 711, 712, 716, 715, 717, + 713, 718, 720, 714, 719, 720, 716, 718, 721, 719, + 722, 717, 721, 723, 724, 726, 725, 727, 727, 728, + 728, 735, 723, 733, 722, 729, 729, 730, 728, 724, + 725, 731, 730, 734, 736, 737, 726, 738, 736, 734, + 731, 735, 733, 739, 740, 741, 743, 737, 742, 744, + 740, 745, 748, 741, 754, 742, 751, 761, 761, 755, + 757, 739, 738, 754, 743, 755, 757, 748, 760, 758, + 759, 745, 760, 751, 744, 746, 766, 746, 758, 763, - 762, 763, 773, 742, 742, 766, 742, 763, 765, 767, - 760, 768, 769, 765, 770, 768, 772, 773, 770, 771, - 762, 764, 764, 764, 771, 764, 766, 767, 764, 774, - 778, 778, 779, 764, 770, 772, 769, 776, 775, 764, - 764, 775, 776, 776, 777, 780, 788, 779, 781, 781, - 780, 777, 782, 783, 774, 784, 783, 782, 785, 785, - 784, 786, 787, 786, 789, 788, 790, 792, 789, 791, - 793, 793, 794, 797, 787, 792, 795, 796, 796, 799, - 798, 802, 802, 800, 813, 813, 790, 794, 791, 800, - 795, 797, 798, 801, 803, 814, 814, 805, 801, 803, + 746, 762, 762, 764, 746, 765, 759, 746, 769, 770, + 763, 773, 767, 769, 746, 746, 766, 746, 767, 765, + 771, 764, 768, 768, 768, 776, 768, 772, 774, 768, + 770, 772, 774, 778, 768, 773, 777, 775, 771, 1088, + 768, 768, 775, 779, 776, 783, 779, 780, 774, 781, + 1088, 777, 780, 780, 782, 782, 781, 784, 778, 792, + 783, 786, 784, 785, 785, 787, 786, 788, 787, 789, + 789, 790, 788, 790, 791, 793, 794, 796, 792, 793, + 795, 797, 797, 798, 801, 796, 791, 799, 800, 800, + 803, 802, 805, 854, 804, 854, 794, 805, 798, 795, - 803, 799, 805, 806, 807, 810, 808, 809, 810, 806, - 807, 808, 811, 809, 812, 815, 816, 819, 811, 817, - 818, 820, 812, 815, 817, 821, 827, 818, 822, 822, - 823, 832, 824, 831, 816, 819, 832, 820, 829, 823, - 824, 825, 825, 826, 821, 827, 830, 829, 834, 826, - 833, 834, 836, 835, 837, 830, 838, 831, 835, 833, - 839, 842, 840, 841, 841, 838, 836, 840, 840, 843, - 845, 844, 846, 839, 847, 851, 842, 847, 853, 837, - 844, 849, 854, 849, 852, 847, 850, 850, 843, 852, - 846, 855, 856, 857, 845, 858, 851, 859, 861, 853, + 804, 799, 801, 802, 806, 806, 809, 811, 807, 810, + 812, 809, 803, 807, 807, 810, 812, 813, 814, 816, + 815, 817, 813, 815, 814, 816, 811, 818, 818, 817, + 819, 819, 820, 821, 822, 823, 824, 825, 826, 822, + 820, 828, 823, 827, 827, 830, 830, 829, 832, 836, + 828, 821, 831, 825, 824, 829, 834, 826, 831, 835, + 838, 837, 841, 842, 844, 834, 837, 832, 835, 838, + 840, 839, 843, 836, 839, 840, 841, 844, 845, 846, + 846, 843, 847, 845, 845, 848, 849, 850, 842, 851, + 852, 855, 855, 852, 856, 849, 858, 847, 857, 859, - 862, 860, 854, 863, 858, 860, 864, 866, 80, 863, - 865, 855, 868, 857, 856, 864, 861, 867, 868, 862, - 859, 869, 865, 870, 871, 871, 866, 872, 870, 873, - 874, 867, 875, 876, 877, 869, 878, 879, 873, 880, - 875, 885, 881, 883, 882, 880, 884, 872, 881, 883, - 874, 889, 890, 876, 892, 878, 877, 879, 882, 886, - 884, 885, 887, 888, 890, 886, 891, 888, 887, 896, - 889, 891, 890, 893, 893, 892, 894, 895, 897, 898, - 895, 899, 894, 900, 900, 898, 901, 896, 902, 903, - 904, 897, 908, 902, 905, 904, 904, 909, 906, 907, + 860, 852, 861, 857, 848, 862, 864, 851, 865, 863, + 866, 850, 865, 867, 869, 856, 868, 858, 863, 859, + 860, 870, 868, 869, 861, 862, 871, 872, 866, 864, + 873, 877, 867, 870, 874, 875, 873, 876, 876, 878, + 875, 872, 879, 880, 881, 871, 882, 883, 874, 884, + 877, 879, 881, 885, 886, 887, 888, 890, 889, 878, + 886, 887, 891, 880, 889, 895, 882, 75, 884, 883, + 888, 890, 892, 885, 893, 894, 896, 898, 892, 894, + 893, 897, 891, 902, 895, 900, 897, 903, 896, 899, + 899, 900, 901, 904, 905, 901, 896, 907, 898, 904, - 907, 899, 906, 910, 901, 903, 911, 903, 910, 905, - 913, 916, 914, 917, 908, 918, 921, 909, 920, 920, - 921, 923, 923, 922, 916, 911, 914, 924, 925, 926, - 928, 927, 925, 917, 913, 928, 918, 919, 922, 934, - 919, 929, 919, 942, 926, 927, 919, 932, 919, 942, - 931, 930, 924, 919, 934, 929, 930, 930, 919, 931, - 933, 932, 935, 936, 933, 937, 938, 935, 939, 940, - 937, 949, 941, 943, 951, 936, 933, 935, 943, 944, - 938, 941, 945, 940, 950, 944, 946, 946, 945, 939, - 947, 948, 951, 949, 953, 947, 954, 948, 75, 955, + 903, 902, 906, 906, 908, 909, 910, 911, 914, 908, + 917, 910, 910, 912, 905, 907, 915, 912, 913, 913, + 916, 909, 911, 909, 919, 916, 920, 923, 922, 917, + 914, 924, 926, 926, 927, 928, 915, 74, 927, 932, + 920, 922, 929, 929, 934, 930, 933, 923, 919, 934, + 928, 931, 924, 925, 932, 931, 925, 935, 925, 937, + 933, 936, 925, 938, 925, 940, 936, 936, 937, 925, + 930, 935, 939, 942, 925, 944, 939, 938, 941, 943, + 940, 945, 946, 941, 943, 942, 947, 949, 939, 944, + 955, 948, 949, 941, 950, 947, 946, 948, 951, 956, - 961, 954, 956, 950, 952, 952, 953, 957, 957, 959, - 952, 958, 952, 955, 956, 960, 958, 959, 952, 961, - 962, 963, 964, 952, 952, 967, 965, 969, 964, 960, - 952, 965, 966, 968, 970, 970, 971, 963, 972, 962, - 971, 974, 976, 967, 966, 969, 978, 974, 975, 968, - 977, 975, 980, 981, 979, 977, 983, 980, 972, 978, - 979, 976, 984, 985, 986, 983, 987, 988, 989, 990, - 986, 984, 981, 989, 991, 987, 992, 997, 993, 985, - 74, 996, 994, 995, 1000, 1003, 988, 996, 991, 990, - 993, 994, 995, 998, 997, 1002, 992, 1004, 1005, 998, + 950, 954, 945, 953, 951, 952, 952, 954, 953, 957, + 959, 960, 955, 962, 963, 963, 960, 961, 956, 964, + 967, 966, 959, 68, 964, 962, 968, 957, 958, 958, + 965, 961, 972, 969, 958, 966, 958, 970, 965, 967, + 973, 971, 958, 970, 972, 968, 971, 958, 958, 969, + 974, 975, 976, 976, 958, 977, 978, 980, 973, 977, + 982, 981, 983, 980, 981, 984, 974, 983, 985, 975, + 986, 987, 989, 990, 985, 986, 978, 991, 984, 982, + 992, 989, 990, 993, 994, 996, 992, 997, 998, 995, + 987, 1000, 993, 991, 995, 999, 1002, 1001, 1003, 1008, - 1000, 1006, 1007, 1008, 1013, 1003, 1009, 1017, 1008, 1002, - 1012, 1009, 1005, 1013, 1016, 1012, 1004, 1007, 1015, 1006, - 1014, 1014, 1017, 1016, 1015, 1018, 1020, 1021, 1026, 1025, - 1023, 1023, 1021, 1021, 1023, 1027, 1024, 1028, 1018, 1024, - 1029, 1030, 1020, 1025, 1031, 1032, 1033, 1034, 1026, 1035, - 1031, 1027, 1033, 1029, 1035, 1028, 1030, 1036, 1038, 1039, - 1042, 1038, 1034, 1040, 1041, 1032, 1043, 1044, 1040, 1041, - 1046, 1036, 1044, 1045, 1049, 1043, 1042, 1048, 1045, 1050, - 1039, 1051, 1046, 1048, 1053, 1050, 1054, 1051, 1052, 1052, - 1049, 1055, 1057, 1053, 1055, 1056, 1056, 1058, 1059, 1060, + 1000, 997, 1002, 994, 1004, 996, 1001, 999, 998, 1006, + 1004, 1009, 1010, 1008, 1011, 1003, 1012, 1010, 1013, 1014, + 1020, 1015, 1016, 1019, 63, 1006, 1015, 1016, 1019, 1020, + 1012, 1009, 1024, 1011, 1014, 1022, 1013, 1021, 1021, 1023, + 1025, 1022, 1027, 1031, 1028, 1032, 1031, 1024, 1023, 1028, + 1028, 1030, 1030, 1025, 1033, 1030, 1034, 1035, 1027, 1032, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1038, 1046, + 1040, 1042, 1034, 1036, 1033, 1035, 1037, 1049, 1050, 1045, + 1041, 1043, 1045, 1039, 1047, 1061, 1048, 1050, 1053, 1047, + 1046, 1048, 1051, 1049, 1052, 1055, 1056, 1051, 1057, 1052, - 1061, 1062, 1060, 1063, 1054, 1069, 1064, 1062, 1070, 1063, - 1057, 1064, 1065, 1061, 1066, 1067, 1058, 1065, 1059, 1066, - 1071, 1067, 1072, 1069, 1073, 1073, 1071, 1072, 1070, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1078, 1079, 1074, 1075, - 1081, 1082, 1083, 1084, 1085, 1081, 1080, 1086, 1087, 1076, - 1085, 1077, 1088, 1086, 1083, 1089, 1089, 1088, 1090, 1082, - 1091, 1092, 1084, 1087, 1093, 1094, 1095, 1096, 1093, 1097, - 1099, 1100, 1100, 1092, 1091, 1095, 1101, 1090, 1103, 1102, - 1106, 1101, 1105, 1094, 1102, 1107, 1096, 1108, 1111, 1099, - 1109, 1114, 1108, 68, 1097, 1106, 1105, 1107, 1103, 1109, + 1053, 1055, 1058, 1061, 1057, 1059, 1059, 1060, 1058, 1064, + 1062, 1065, 1056, 1062, 1063, 1063, 1060, 1066, 1067, 1068, + 1069, 1067, 1070, 1077, 1071, 1078, 1069, 1064, 1070, 1071, + 1065, 1072, 1068, 1073, 1074, 1084, 1072, 1066, 1073, 1076, + 1074, 1077, 1079, 1082, 1076, 1078, 1080, 1083, 1079, 1081, + 1081, 1080, 1082, 1084, 1085, 1086, 1083, 1087, 1086, 1089, + 1087, 1090, 1091, 1092, 1089, 1093, 1094, 1098, 1095, 1100, + 1096, 1093, 1094, 1085, 1091, 1096, 1097, 1097, 1099, 1090, + 1101, 1100, 1092, 1095, 1101, 1102, 1098, 1103, 1104, 1105, + 1107, 1111, 1099, 1108, 1108, 1109, 1103, 1110, 1113, 1116, - 1110, 1110, 1118, 1112, 1113, 1119, 1115, 1114, 1111, 1112, - 1113, 1115, 1116, 1117, 1116, 1120, 1118, 1121, 1117, 1119, - 1120, 1122, 1123, 1124, 1125, 1127, 1127, 1128, 1129, 1123, - 1130, 1131, 1121, 1132, 1255, 1135, 1255, 1131, 1124, 1135, - 1122, 1128, 1133, 1125, 1142, 1130, 1129, 1133, 1136, 1136, - 1137, 1138, 1138, 1132, 1140, 1137, 1133, 1139, 1133, 1141, - 1143, 1133, 1141, 1142, 1139, 1144, 1145, 1146, 1140, 1147, - 1148, 1145, 1150, 1149, 1144, 1148, 1151, 1154, 1143, 1153, - 1153, 1147, 1154, 1150, 1155, 1156, 1146, 1149, 1157, 1155, - 1158, 1159, 1160, 1157, 1158, 1151, 1161, 1162, 1163, 1164, + 1109, 1114, 1110, 1102, 1116, 1115, 1117, 1104, 1119, 1107, + 58, 1111, 1113, 1122, 1105, 1117, 1114, 1115, 1118, 1118, + 1120, 1121, 1124, 1126, 1124, 1123, 1120, 1121, 1119, 1122, + 1123, 1125, 1127, 1128, 1129, 1130, 1125, 1126, 1128, 1133, + 1131, 1132, 1135, 1135, 1137, 1136, 1127, 1131, 1138, 1129, + 1140, 1139, 1144, 1144, 1130, 1141, 1132, 1139, 1133, 1136, + 1141, 1143, 1137, 1138, 1148, 1143, 1147, 1145, 1150, 1141, + 1140, 1141, 1145, 1147, 1141, 1146, 1146, 1149, 1148, 1151, + 1149, 1152, 1154, 1153, 1155, 1157, 1156, 1150, 1153, 1158, + 1152, 1156, 1159, 1161, 1161, 1164, 1155, 1151, 1162, 1157, - 1159, 1165, 1167, 1166, 1168, 1156, 1169, 1160, 1165, 1172, - 1163, 1161, 1170, 1171, 1164, 1166, 1162, 1173, 1170, 1175, - 1176, 1167, 1174, 1177, 1169, 1168, 1178, 1179, 1171, 1172, - 1181, 1174, 1180, 1184, 1175, 1177, 1183, 1173, 1186, 1176, - 1185, 1187, 1183, 1188, 1189, 1178, 1186, 1180, 1184, 1189, - 1181, 1190, 1179, 1192, 1185, 1193, 1199, 1194, 1197, 1188, - 1191, 1187, 1199, 1190, 63, 1191, 1191, 1195, 1195, 1193, - 1194, 1197, 1192, 1196, 1196, 1198, 1200, 1200, 1196, 1202, - 1201, 1196, 1196, 1203, 1198, 1201, 1196, 1207, 1202, 1203, - 1204, 1210, 1196, 1205, 1211, 1204, 1196, 1212, 1205, 1206, + 1158, 1154, 1163, 1162, 1165, 1167, 1166, 1163, 1168, 1165, + 1166, 1159, 1169, 1170, 1167, 1164, 1171, 1173, 1172, 1174, + 1175, 1176, 1177, 1168, 1173, 1180, 1179, 1169, 1171, 1178, + 1181, 1174, 1170, 1172, 1182, 1178, 1183, 1184, 1186, 1175, + 1177, 1179, 1176, 1182, 1187, 1180, 1185, 1188, 1189, 1191, + 1181, 1183, 1192, 1194, 1195, 1191, 1184, 1186, 1185, 1193, + 1196, 1194, 1188, 1198, 1200, 1197, 1199, 1192, 1189, 1187, + 1197, 1199, 1199, 1193, 1195, 1198, 1196, 1201, 1206, 1202, + 1203, 1203, 1205, 1200, 1207, 1208, 1208, 1206, 1210, 57, + 1207, 1201, 1202, 1204, 1204, 1205, 1215, 1210, 1204, 1209, - 1206, 1208, 1208, 1213, 1209, 1214, 1212, 1209, 1207, 1209, - 1214, 1210, 1211, 1215, 1216, 1217, 1218, 1221, 1274, 1219, - 1274, 1217, 1218, 1213, 1219, 1220, 1221, 1215, 1223, 1220, - 1230, 1221, 1216, 1221, 1222, 1221, 1226, 1221, 1229, 1222, - 1224, 1224, 1223, 1225, 1225, 1228, 1225, 1226, 1230, 1228, - 1231, 1232, 1233, 1229, 1234, 1235, 1232, 1232, 1236, 1231, - 1235, 1233, 1237, 1238, 1239, 1240, 1243, 1241, 1242, 1242, - 1244, 1237, 1236, 1241, 1243, 1245, 1234, 1246, 1247, 1240, - 1245, 1248, 1238, 1239, 1244, 1249, 1250, 1247, 1248, 1251, - 1253, 1246, 1252, 1252, 1251, 1254, 1254, 1257, 1259, 1258, + 1212, 1204, 1204, 1211, 1209, 1212, 1204, 1218, 1213, 1211, + 1214, 1214, 1204, 1213, 1216, 1216, 1204, 1215, 1217, 1219, + 1220, 1217, 1221, 1217, 1222, 1223, 1220, 1218, 1224, 1225, + 1223, 1221, 1226, 1227, 1230, 1228, 52, 1219, 1226, 1227, + 1228, 1229, 1224, 1230, 1222, 1229, 1231, 1225, 1230, 1232, + 1230, 1231, 1230, 1235, 1230, 1233, 1233, 1234, 1234, 1238, + 1234, 1237, 1239, 1232, 1235, 1237, 1240, 1241, 1242, 1243, + 1245, 1244, 1241, 1241, 1238, 1240, 1244, 1242, 1246, 1247, + 1239, 1248, 1249, 1250, 1245, 1251, 1251, 1246, 1253, 1250, + 1254, 1243, 1255, 1252, 1256, 1254, 1249, 1257, 1247, 1258, - 1257, 1260, 1262, 1249, 1258, 1253, 1261, 1261, 1263, 1263, - 1260, 1250, 1264, 1264, 1265, 1266, 1267, 1259, 1269, 1265, - 1268, 1268, 1262, 1270, 1271, 1272, 1270, 1275, 1278, 1277, - 1272, 1273, 1277, 1280, 1279, 58, 1266, 1267, 1269, 1279, - 1273, 1281, 1282, 1278, 1271, 1275, 1281, 1280, 1283, 1284, - 1282, 1285, 1284, 1283, 1286, 1286, 1285, 1287, 1288, 1289, - 1290, 1291, 1287, 1293, 1294, 1289, 1295, 1290, 1297, 1293, - 1294, 1295, 1296, 1298, 1291, 1299, 1288, 1297, 1296, 1300, - 1300, 1301, 1303, 1305, 1306, 1307, 1299, 1308, 1309, 1310, - 1312, 1313, 1298, 1308, 1309, 1310, 1312, 1314, 1305, 1315, + 1248, 1252, 1253, 1256, 1257, 1259, 1255, 1260, 1261, 1261, + 1262, 1271, 1260, 1263, 1263, 1267, 1264, 1258, 1264, 1266, + 1267, 1268, 1266, 1269, 1275, 1262, 1270, 1270, 1272, 1272, + 1259, 1271, 1269, 1273, 1273, 1276, 1274, 1277, 1277, 1278, + 1268, 1274, 1280, 1279, 1281, 1275, 1279, 1282, 1283, 1284, + 1281, 1284, 1282, 1285, 1288, 1287, 1276, 1283, 1287, 1278, + 1289, 1290, 1280, 1291, 1292, 1289, 1298, 1294, 1291, 1288, + 1294, 1285, 1292, 1293, 1295, 1290, 1296, 1296, 1293, 1295, + 1297, 1299, 1300, 1301, 1298, 1297, 1303, 1299, 1304, 1300, + 1305, 1306, 1303, 1307, 1304, 1305, 1301, 1306, 1308, 1309, - 1303, 1301, 1316, 1318, 1306, 1313, 1317, 1320, 1307, 1319, - 1319, 1313, 1321, 1322, 1316, 1324, 1324, 1314, 1323, 1315, - 1317, 1318, 1325, 1323, 1326, 1328, 1331, 1320, 1329, 1326, - 1330, 1322, 1332, 1329, 1329, 1331, 1333, 1321, 1334, 1335, - 1332, 1336, 1337, 1346, 1328, 1325, 1336, 1339, 1330, 1336, - 1333, 1337, 1343, 1334, 1335, 1345, 1338, 1335, 1338, 1341, - 1342, 1339, 1344, 1343, 1342, 1341, 1347, 1344, 1344, 1346, - 1348, 1349, 1350, 1351, 1345, 1348, 1349, 1352, 1353, 1356, - 1355, 1357, 1352, 1359, 1347, 1358, 1358, 1359, 1360, 1361, - 1350, 1363, 1364, 1351, 1355, 1362, 1365, 1356, 1353, 1357, + 1310, 1310, 1307, 1311, 1313, 1314, 1315, 1316, 1317, 1324, + 1309, 47, 1318, 1319, 1320, 1314, 1325, 1308, 1318, 1319, + 1320, 1315, 1313, 1311, 1322, 1323, 1326, 1316, 1327, 1324, + 1322, 1317, 1328, 1329, 1329, 1330, 1325, 1331, 1326, 1323, + 1332, 1333, 1327, 1334, 1334, 1323, 1333, 1335, 1336, 1338, + 1328, 1339, 1341, 1336, 1340, 1330, 1339, 1339, 1332, 1342, + 1343, 1341, 1331, 1344, 1345, 1356, 18, 1342, 1338, 1348, + 1335, 1348, 1340, 1349, 1343, 1346, 1347, 1352, 1344, 1345, + 1346, 1352, 1345, 1346, 1351, 1347, 1353, 1349, 1354, 1355, + 1351, 1356, 1357, 1354, 1354, 1358, 1359, 1353, 1360, 1361, - 1366, 1362, 1367, 1363, 1368, 1377, 1360, 1369, 1361, 1370, - 1365, 1364, 1369, 1371, 1372, 1366, 1370, 1367, 1371, 1373, - 1374, 1374, 1375, 1368, 1376, 1377, 1378, 1378, 1373, 1379, - 1380, 1381, 1372, 1376, 1383, 1379, 1380, 1375, 1382, 1382, - 1383, 1384, 1385, 1386, 1387, 1381, 1388, 1389, 1386, 1396, - 1387, 57, 1388, 1389, 1390, 1390, 1395, 1384, 1391, 1391, - 1393, 1393, 1394, 1385, 1397, 1395, 1394, 1396, 1398, 1399, - 1400, 1401, 1401, 1402, 1404, 1403, 1397, 1400, 1405, 1404, - 1406, 1407, 1398, 1403, 1399, 1408, 1407, 1407, 1409, 1413, - 1408, 1408, 1405, 1402, 1410, 1410, 1411, 1412, 1413, 1406, + 1358, 1359, 1362, 1363, 1365, 17, 1366, 1362, 1355, 1367, + 1357, 1368, 1368, 1369, 1370, 1371, 1360, 1369, 1365, 1361, + 1372, 1373, 1374, 1363, 1366, 1375, 1372, 1367, 1376, 1377, + 1378, 1379, 1370, 1373, 1371, 1380, 1379, 1382, 1383, 1375, + 1381, 1374, 1380, 1376, 1377, 1381, 1385, 1383, 1386, 1378, + 1384, 1384, 1387, 1388, 1388, 1382, 1389, 1386, 1390, 1391, + 1394, 1385, 1389, 1393, 1390, 1392, 1392, 1395, 1397, 1393, + 1396, 1398, 1387, 1391, 1397, 1396, 1394, 1398, 1399, 1400, + 1400, 1401, 1401, 1404, 1399, 1403, 1403, 1404, 1395, 1405, + 1406, 1407, 1408, 1410, 1409, 1411, 1411, 1412, 1405, 1413, - 1414, 1415, 1416, 1417, 1418, 1414, 1419, 1420, 1409, 1422, - 1418, 1419, 1421, 1423, 1430, 1411, 1412, 1424, 1421, 1423, - 1415, 1417, 1416, 1424, 1425, 1426, 1427, 1428, 1422, 1432, - 1432, 1434, 1431, 1420, 1429, 1430, 1433, 1435, 1441, 1433, - 1436, 1437, 1437, 1425, 1426, 1427, 1428, 1431, 1429, 1442, - 1434, 1441, 1436, 1438, 1438, 1439, 1435, 1440, 1442, 1443, - 1439, 1440, 1444, 1448, 1444, 1446, 1447, 1449, 1444, 1450, - 1452, 1447, 1443, 1451, 1451, 1452, 1453, 1454, 1448, 1456, - 1455, 1444, 1453, 1446, 1456, 1450, 1457, 1449, 1459, 1460, - 1457, 1458, 1454, 1455, 1461, 1458, 1462, 1466, 1463, 1464, + 1410, 1415, 1416, 1407, 1419, 1414, 1408, 1413, 1406, 1409, + 1414, 1420, 1420, 1417, 1421, 1415, 1422, 1412, 1417, 1417, + 1418, 1416, 1423, 1424, 1419, 1418, 1418, 1425, 1424, 1426, + 1427, 1423, 1428, 1421, 1429, 1422, 1430, 1431, 1428, 1429, + 1433, 1432, 1436, 1437, 1434, 1435, 1425, 1432, 1427, 1426, + 1434, 1435, 1438, 1439, 1440, 1441, 1430, 1444, 1442, 1433, + 1444, 1436, 1437, 1431, 1443, 1443, 1445, 1446, 1440, 1447, + 0, 1438, 1439, 1442, 1448, 1448, 1441, 1449, 1449, 1450, + 1452, 1447, 1453, 1451, 1450, 1445, 1446, 1451, 1454, 1457, + 1455, 1453, 1455, 1452, 1458, 1459, 1455, 1460, 1461, 1458, - 1464, 1468, 52, 1461, 1463, 1469, 1472, 1460, 1459, 1482, - 1469, 1470, 1470, 1471, 1478, 1466, 1462, 1474, 1474, 1471, - 1476, 1479, 1468, 1476, 1477, 1477, 1472, 1483, 1481, 1482, - 1478, 1481, 1484, 1484, 1485, 1486, 1483, 1479, 1487, 1488, - 1489, 1490, 1490, 1491, 1488, 1492, 1493, 1494, 1495, 1485, - 1496, 1496, 1491, 1497, 1489, 1498, 1486, 1487, 1502, 1499, - 1500, 1493, 1502, 1492, 1499, 1501, 1501, 1497, 1495, 1503, - 1504, 1504, 1494, 1498, 1505, 1500, 1506, 1507, 1508, 1509, - 1512, 1507, 1511, 1511, 1509, 1513, 1514, 1506, 1515, 1503, - 1513, 1516, 1517, 1512, 1518, 1519, 1505, 1508, 1520, 1520, + 1463, 1454, 1462, 1462, 1465, 1463, 1464, 1457, 1466, 1455, + 1459, 1467, 1464, 1470, 1461, 1473, 1467, 1460, 1468, 1465, + 1469, 1466, 1468, 1471, 1469, 1472, 1474, 1475, 1475, 1477, + 1479, 1480, 1474, 1470, 1472, 1473, 1480, 1481, 1481, 1482, + 1483, 1471, 1485, 1485, 1497, 1482, 1487, 1477, 1489, 1487, + 1490, 1479, 1488, 1488, 1492, 1493, 1494, 1492, 1495, 1497, + 1483, 1496, 1496, 1498, 1489, 1494, 1490, 1499, 1500, 1501, + 1502, 1502, 1503, 1500, 1504, 1493, 1505, 1506, 1495, 1507, + 1509, 1503, 1510, 1501, 1498, 1511, 1499, 1508, 1508, 1512, + 1511, 1505, 1504, 1514, 1509, 1513, 1513, 1514, 1515, 1507, - 1536, 1522, 1514, 1523, 1521, 1516, 1515, 1525, 1518, 1521, - 1526, 1517, 1517, 1524, 1524, 1526, 1525, 1527, 1531, 1536, - 1519, 1522, 1528, 1523, 1528, 1529, 1530, 1532, 1534, 1540, - 1529, 1539, 1530, 1532, 1535, 1535, 1539, 1527, 1531, 1537, - 1541, 1541, 1534, 1542, 1542, 1537, 1543, 1544, 1545, 1546, - 1547, 1547, 1546, 1540, 1548, 1549, 1550, 1553, 1552, 1558, - 1543, 1556, 1553, 1545, 1552, 1544, 1554, 1549, 1551, 1554, - 1556, 1551, 1548, 1557, 1551, 1589, 1550, 1559, 1557, 1589, - 1559, 1560, 1560, 1561, 1558, 1554, 1551, 1562, 1566, 1561, - 1563, 1564, 1564, 1562, 1566, 1563, 1565, 1565, 1567, 1568, + 1510, 1517, 1506, 1518, 1512, 1516, 1516, 1519, 1520, 1524, + 1521, 1519, 1523, 1523, 1518, 1521, 1525, 1526, 1515, 1527, + 1528, 1525, 1524, 1517, 1529, 1530, 1531, 1520, 1532, 1532, + 1533, 0, 1534, 1526, 1528, 1533, 1535, 1527, 1537, 1530, + 1536, 1536, 1539, 1529, 1529, 1538, 1540, 1537, 1540, 1541, + 1538, 1531, 1534, 1542, 1541, 1543, 1535, 1544, 1546, 1542, + 1547, 1547, 1539, 1544, 1548, 1549, 1552, 1555, 1551, 1553, + 1553, 1549, 1546, 1551, 1556, 1543, 1554, 1554, 1557, 1558, + 1560, 1555, 1558, 1548, 1559, 1559, 1562, 1561, 1570, 1564, + 1552, 1563, 1556, 1557, 1563, 1564, 1565, 1563, 1560, 1561, - 1569, 1570, 1571, 1567, 1572, 1573, 1577, 1572, 1574, 1581, - 1575, 1573, 1568, 1576, 1574, 1575, 1578, 1582, 1569, 1576, - 1570, 1578, 1571, 1579, 1579, 1580, 1583, 1581, 1584, 1577, - 1580, 1585, 1587, 1586, 1588, 1591, 1590, 1582, 1590, 1593, - 1594, 1597, 1584, 1595, 1598, 1585, 1583, 1586, 1599, 1596, - 1587, 1593, 1594, 1600, 1591, 1596, 1595, 1601, 1608, 1588, - 1598, 1597, 1603, 1603, 1604, 1605, 1609, 1600, 1599, 1606, - 1605, 1607, 1607, 1608, 1610, 1611, 1612, 1613, 1601, 1614, - 1609, 1606, 1615, 1616, 1604, 1612, 1614, 1618, 1620, 1622, - 1622, 1615, 1613, 1611, 1615, 1623, 1623, 1621, 1610, 1616, + 1566, 1565, 1568, 1566, 1571, 1569, 1562, 1571, 1580, 1563, + 1569, 1568, 1573, 1570, 1572, 1572, 1574, 1582, 1573, 1566, + 1575, 1580, 1574, 1576, 1576, 1575, 1577, 1577, 1578, 1581, + 1579, 1583, 1585, 1586, 1578, 1579, 1582, 1584, 1585, 1586, + 1584, 1587, 1588, 1589, 1590, 1592, 1587, 1581, 1588, 1590, + 1592, 1583, 1591, 1591, 1593, 1594, 1595, 1596, 1600, 1597, + 1598, 1599, 1602, 1601, 1602, 1603, 1589, 1601, 1605, 1606, + 1610, 1596, 1593, 1597, 1598, 1594, 1595, 1607, 1609, 1599, + 1605, 1606, 1608, 1600, 1603, 1611, 1610, 1612, 1608, 1613, + 1607, 1615, 1615, 1616, 1617, 1618, 1619, 1619, 1609, 1617, - 1621, 1625, 1618, 1624, 1628, 1626, 1629, 1618, 1626, 1627, - 1627, 1630, 1632, 1620, 1633, 1624, 1630, 1628, 1631, 1625, - 1634, 1635, 1638, 1631, 1636, 1629, 1637, 1640, 1638, 1634, - 1633, 1632, 1641, 1636, 1642, 1637, 1636, 1639, 1639, 1643, - 1635, 1644, 1647, 1645, 1650, 1641, 1646, 1640, 1645, 1645, - 1651, 1646, 1642, 1643, 1647, 1652, 1652, 1644, 1653, 1655, - 1658, 1654, 1656, 1656, 1655, 1658, 1657, 1659, 1651, 1650, - 1654, 1660, 1661, 1664, 1653, 1657, 1662, 1656, 1657, 1665, - 1666, 1662, 1662, 1667, 47, 1659, 1669, 1664, 1667, 1668, - 1661, 1673, 1660, 1671, 1665, 1668, 1670, 1670, 1672, 1671, + 1620, 1612, 1621, 1622, 1623, 1611, 1625, 1618, 1624, 1628, + 1613, 1626, 1632, 1616, 1627, 1620, 1621, 1624, 1626, 1630, + 1637, 1625, 1623, 1627, 1636, 1628, 1627, 1622, 1633, 1634, + 1634, 1633, 1635, 1635, 1630, 1640, 1636, 1632, 1637, 1630, + 1638, 1639, 1639, 1638, 1641, 1642, 1643, 1644, 1640, 1643, + 1642, 1645, 1644, 1646, 1648, 1647, 1649, 1650, 1652, 1652, + 1653, 1651, 1654, 1641, 1647, 1649, 1650, 1651, 1649, 1646, + 1645, 1655, 1656, 1648, 1657, 1654, 1658, 1663, 1659, 1660, + 1653, 1658, 1658, 1659, 1666, 1664, 1656, 1665, 1665, 1655, + 1657, 1660, 1667, 1668, 1669, 1669, 1670, 1672, 1668, 1671, - 1674, 1675, 1666, 1672, 1669, 1673, 1674, 1675, 1677, 1678, - 1679, 1680, 1681, 1682, 1684, 1681, 1679, 1686, 1687, 1682, - 1689, 1681, 1684, 1678, 1680, 1688, 1690, 1691, 1677, 1689, - 1692, 1693, 1695, 1688, 1694, 1694, 1686, 1687, 1695, 1690, - 1691, 1696, 1697, 1699, 1692, 1693, 1700, 1696, 1698, 1698, - 1701, 1702, 1702, 1703, 1704, 1697, 1694, 1705, 1706, 1707, - 1704, 1709, 1709, 1699, 1700, 1710, 1703, 1711, 1712, 1701, - 1713, 1711, 1716, 1712, 1706, 1713, 1714, 1707, 1715, 1705, - 1718, 1714, 1720, 1719, 1721, 1710, 1719, 1715, 1723, 1718, - 1722, 1722, 1724, 1725, 1720, 1716, 1726, 1726, 1728, 1721, + 1666, 1667, 1663, 1664, 1671, 1670, 1673, 1674, 1670, 1669, + 1677, 1675, 1679, 1678, 1680, 1672, 1675, 1675, 1682, 1680, + 1681, 1683, 1683, 1684, 1677, 1674, 1681, 1673, 1678, 1684, + 1685, 1686, 1687, 1688, 1679, 1685, 1682, 1690, 1687, 1688, + 1691, 1692, 1693, 1694, 1695, 1686, 1694, 1692, 1697, 1699, + 1695, 1700, 1694, 1701, 1691, 1693, 1697, 1690, 1702, 1703, + 1704, 1701, 1705, 1706, 1707, 1708, 1708, 1702, 1699, 1704, + 1700, 1711, 1703, 1709, 1710, 1705, 1713, 1706, 1707, 1709, + 1710, 1712, 1712, 1714, 1711, 1715, 1717, 1708, 1716, 1716, + 1719, 1718, 1720, 1721, 1723, 1723, 1713, 1718, 1724, 1717, - 1727, 1729, 1732, 1730, 1724, 1728, 1733, 1723, 1735, 1736, - 1734, 1737, 1725, 1729, 1727, 1730, 1734, 1737, 1738, 1738, - 1735, 1732, 1739, 1740, 1740, 1739, 1733, 1736, 1742, 1743, - 1744, 1745, 1745, 1742, 1746, 1747, 1744, 1747, 1743, 1748, - 1749, 1750, 1748, 1751, 1752, 1753, 1746, 1754, 1755, 1757, - 1753, 1758, 1754, 1756, 1760, 1763, 1758, 1755, 1759, 18, - 1749, 1751, 1752, 1750, 1757, 1756, 1761, 1759, 1762, 1766, - 1763, 1761, 1768, 1762, 1760, 1764, 1764, 1765, 1761, 1769, - 1759, 1770, 1771, 1765, 1772, 1773, 1772, 1774, 1774, 1777, - 1766, 1768, 1775, 1775, 1776, 1776, 1780, 1770, 1769, 1773, + 1726, 1714, 1725, 1730, 1715, 1726, 1725, 1729, 1720, 1727, + 1728, 1721, 1719, 1732, 1727, 1728, 1729, 1733, 1724, 1734, + 1733, 1735, 1732, 1736, 1736, 1737, 1730, 1738, 1739, 1740, + 1740, 1734, 1741, 1742, 1746, 1747, 1735, 1743, 1744, 1738, + 1742, 1750, 1748, 0, 1737, 1749, 1741, 1739, 1748, 1743, + 1744, 1753, 1751, 1746, 1753, 1747, 1757, 1749, 1751, 1750, + 1752, 1752, 1754, 1754, 1756, 1757, 1758, 1759, 1759, 1756, + 1760, 1761, 1758, 1761, 1762, 1763, 1764, 1762, 1765, 1766, + 1767, 1768, 1760, 1769, 1772, 1767, 1768, 1770, 1771, 1772, + 1774, 1773, 1769, 1777, 0, 1763, 1765, 1766, 1764, 1770, - 1781, 1773, 1771, 1778, 1778, 1779, 1779, 1782, 1782, 1777, - 1783, 1788, 1784, 1785, 1783, 1790, 1785, 1780, 1784, 1787, - 1789, 1781, 1792, 1792, 1791, 1787, 1789, 1791, 1793, 1788, - 1794, 1795, 1795, 1797, 1796, 1794, 1798, 1799, 1799, 1800, - 1790, 1798, 1804, 1802, 1800, 1801, 1803, 1805, 1793, 1796, - 1807, 1801, 1806, 1811, 1797, 1802, 1802, 1802, 1806, 1809, - 1804, 1810, 1802, 1813, 1809, 1809, 1803, 1805, 1811, 1812, - 1807, 1812, 1814, 1815, 1813, 1810, 1816, 1817, 1818, 1815, - 1819, 1819, 1820, 1821, 1821, 1816, 1822, 1814, 1823, 1824, - 1824, 1825, 1825, 1826, 1829, 1829, 1830, 1817, 1831, 1818, + 1773, 1776, 1775, 1771, 1778, 1778, 1776, 1775, 1777, 1779, + 1774, 1780, 1782, 1773, 1775, 1779, 1783, 1784, 1785, 1786, + 1787, 1786, 1788, 1788, 1789, 1789, 1790, 1790, 1791, 1792, + 1792, 1782, 1780, 1784, 1787, 1783, 1787, 1794, 1785, 1793, + 1793, 1795, 1796, 1796, 1798, 1797, 1801, 1802, 1791, 1797, + 1798, 1799, 1801, 1803, 1799, 1804, 1807, 1805, 1794, 1803, + 1805, 1808, 1795, 1806, 1806, 1802, 1808, 1809, 1809, 1810, + 1811, 1818, 1812, 1813, 1813, 1815, 1807, 1812, 1814, 1817, + 1804, 1815, 1816, 1814, 1810, 1819, 1820, 1821, 0, 1818, + 1824, 1811, 1820, 1825, 1816, 1816, 1816, 1823, 1826, 1817, - 1833, 1834, 1836, 1836, 1837, 1835, 1822, 1831, 1820, 1833, - 1823, 1835, 1838, 1826, 1841, 1840, 1839, 1842, 1842, 1843, - 1844, 1830, 1834, 1839, 1840, 1837, 1846, 1838, 1847, 1848, - 1849, 1846, 1850, 1851, 1847, 1851, 1844, 1849, 1850, 1853, - 1841, 1854, 1855, 1855, 1857, 1843, 1856, 1854, 1858, 1848, - 1859, 1856, 1860, 1857, 1861, 1862, 1863, 1861, 1853, 1864, - 1864, 1865, 1868, 1867, 1860, 1866, 1869, 1865, 1858, 1859, - 1869, 1866, 1871, 1862, 1872, 1873, 1875, 1868, 1874, 1874, - 1873, 1878, 1863, 1867, 1876, 1879, 1869, 1880, 1880, 1879, - 1884, 1881, 1871, 1882, 1884, 1875, 1872, 1881, 1885, 1876, + 1826, 1816, 1823, 1823, 1824, 1819, 1827, 1821, 1825, 1828, + 1829, 1830, 1831, 1832, 1833, 1833, 1829, 1827, 1834, 1836, + 1830, 1835, 1835, 1837, 1828, 1838, 1838, 1839, 1839, 1840, + 1843, 1843, 1831, 1844, 1832, 1848, 1849, 1845, 1847, 1836, + 1852, 1850, 1849, 1856, 1834, 1837, 1845, 1847, 1853, 1840, + 1851, 1851, 1854, 1855, 1857, 1857, 1848, 1850, 1844, 1854, + 1858, 1852, 1855, 1853, 1859, 1861, 1862, 1863, 1864, 1856, + 1861, 1865, 1862, 1868, 1866, 1864, 1866, 1865, 1869, 1873, + 1859, 1870, 1870, 1871, 1869, 1872, 1858, 1863, 1871, 1874, + 1875, 1877, 1868, 1876, 1872, 1878, 1876, 1879, 1879, 1873, - 1878, 1887, 1882, 1883, 1883, 1886, 1886, 1888, 1889, 1885, - 1890, 1891, 1892, 1893, 1885, 1890, 1896, 1896, 1894, 1893, - 1895, 1888, 1887, 1897, 1897, 1895, 1898, 1889, 1900, 1901, - 1898, 1891, 1892, 1894, 1902, 1903, 1903, 1900, 1905, 1905, - 1901, 1906, 1907, 1909, 1910, 1901, 1906, 1906, 1907, 1909, - 1911, 1912, 1913, 1915, 1902, 1911, 1916, 1917, 1913, 1918, - 1916, 1919, 1921, 1912, 1920, 1915, 1922, 1919, 1921, 1917, - 1910, 1923, 1924, 1928, 1929, 1925, 1927, 1924, 1931, 1929, - 1935, 1931, 1932, 1932, 1918, 1922, 1920, 1925, 1927, 1933, - 1933, 1923, 1928, 1934, 1934, 1936, 1937, 1940, 1938, 1939, + 1880, 1881, 1875, 1882, 1883, 1886, 1880, 1881, 1874, 1877, + 1884, 1887, 1888, 1890, 1884, 1889, 1889, 1888, 1893, 1883, + 1891, 1878, 1894, 1882, 0, 1886, 1894, 1895, 1895, 1897, + 1884, 1904, 1890, 1887, 1896, 1891, 1900, 1893, 1897, 1899, + 1896, 1898, 1898, 1899, 1901, 1901, 1902, 1900, 1903, 1905, + 1904, 1906, 1900, 1907, 1905, 1908, 1911, 1909, 1910, 1912, + 1912, 1908, 1903, 1910, 1913, 1913, 1914, 1902, 1916, 1911, + 1914, 1906, 1909, 1907, 1917, 1918, 1926, 1916, 1919, 1919, + 1921, 1921, 1922, 1923, 0, 1917, 1925, 1922, 1922, 1923, + 1917, 1927, 1925, 1928, 1929, 1918, 1927, 1931, 1933, 1932, - 1935, 1936, 1937, 1938, 1942, 1939, 1940, 1944, 1945, 1942, - 1944, 1946, 1946, 1948, 1949, 1952, 1950, 1951, 1951, 1957, - 1945, 1950, 1953, 1954, 1952, 1948, 1949, 1953, 1954, 1955, - 1956, 1956, 1955, 1958, 1959, 1960, 1961, 1964, 1962, 1957, - 1961, 1963, 1958, 1962, 1965, 1966, 1967, 1963, 1970, 1969, - 1969, 1972, 1959, 1965, 1960, 1964, 1971, 1973, 1973, 1974, - 1967, 1969, 1975, 1966, 1976, 1971, 1970, 1977, 1974, 1978, - 1983, 1972, 1977, 1983, 1975, 1981, 1981, 1984, 1985, 1990, - 1987, 1989, 1978, 1988, 1992, 1976, 1992, 1989, 1991, 1991, - 1993, 1993, 1994, 1984, 1985, 1987, 1990, 1988, 1996, 1996, + 1929, 1934, 1926, 1932, 1938, 1928, 1935, 1936, 1937, 1931, + 1933, 1939, 1935, 1940, 1937, 1941, 1943, 1944, 1940, 1945, + 1948, 1948, 1947, 1938, 1945, 1947, 1934, 1941, 1943, 1936, + 1951, 1939, 1949, 1949, 1950, 1950, 1944, 1952, 1953, 1956, + 1954, 1955, 1961, 1952, 1953, 1954, 1958, 1955, 1956, 1960, + 1951, 1958, 1960, 1964, 1961, 1962, 1962, 1965, 1966, 1967, + 1967, 1968, 1969, 1966, 1973, 1964, 1970, 1969, 1974, 1965, + 1968, 1970, 1971, 1972, 1972, 1971, 1975, 1974, 1976, 1977, + 1978, 1979, 1980, 1977, 1973, 1978, 1981, 1979, 1982, 1983, + 1985, 1985, 1986, 1988, 1975, 1981, 1987, 1976, 1989, 1989, - 1994, 1997, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2006, - 2000, 2001, 2007, 2002, 2005, 2005, 2012, 2016, 2006, 2008, - 2009, 2010, 2011, 2013, 2014, 2017, 1999, 2018, 2004, 2003, - 2014, 2008, 2009, 2007, 2011, 2020, 2010, 2016, 2013, 2018, - 2019, 2019, 2012, 2014, 2021, 2023, 2022, 2024, 2017, 2022, - 2023, 2026, 2027, 2020, 2027, 2028, 2026, 2029, 2030, 2032, - 2034, 2035, 2029, 2036, 2021, 2030, 2038, 2024, 2032, 2037, - 2035, 2037, 2040, 2028, 2040, 2036, 2041, 2043, 2034, 2042, - 2042, 2044, 2045, 2046, 2045, 2038, 2044, 2047, 2046, 2048, - 2041, 2049, 2047, 2050, 2053, 2051, 2052, 2055, 2057, 2050, + 1980, 1992, 1985, 1983, 1993, 1987, 1982, 1990, 1991, 1993, + 1986, 1994, 2000, 1988, 1997, 1997, 1990, 2001, 1999, 2003, + 1991, 1999, 1992, 2004, 1994, 2005, 2006, 2010, 2000, 2007, + 2007, 2005, 2015, 2001, 2003, 2010, 2008, 2004, 2008, 2009, + 2009, 2012, 2012, 2006, 2013, 2013, 2016, 2017, 2019, 2018, + 2022, 2020, 2016, 2017, 2023, 2015, 2018, 2021, 2021, 2022, + 2024, 2025, 2026, 2028, 2027, 2029, 2032, 2033, 2030, 2034, + 2019, 2020, 2024, 2025, 2030, 2023, 2027, 2026, 2035, 2035, + 2029, 2034, 2036, 2037, 2040, 2038, 2032, 2030, 2038, 2028, + 2033, 2039, 2042, 2043, 2044, 2043, 2039, 2042, 2046, 2048, - 2051, 2058, 2062, 2043, 2128, 2055, 2053, 2048, 2054, 2052, - 2061, 2049, 2128, 2054, 2054, 2058, 2066, 2057, 2059, 2059, - 2060, 2060, 2062, 2063, 2067, 2061, 2064, 2069, 2065, 2063, - 2065, 2064, 2067, 2074, 2066, 2068, 2068, 2070, 2070, 2069, - 2067, 2071, 2071, 2072, 2073, 2076, 2077, 2078, 2077, 2073, - 2079, 2074, 2072, 2080, 2076, 2079, 2079, 2076, 2081, 2082, - 2084, 2085, 2088, 2089, 2086, 2080, 2085, 2081, 2078, 2086, - 2090, 2082, 2084, 2091, 2091, 2088, 2092, 2093, 2095, 2090, - 2094, 2098, 2096, 2089, 2100, 2101, 2099, 2109, 2112, 2120, - 2101, 2110, 2095, 2098, 2092, 2093, 2094, 2096, 2099, 2103, + 2036, 2045, 2050, 2037, 2040, 2046, 2045, 2051, 2048, 2052, + 2054, 2053, 2044, 2053, 2058, 2060, 2051, 2055, 2059, 2059, + 2050, 2052, 2057, 2055, 2057, 2061, 2065, 2063, 2058, 2054, + 2061, 2062, 2063, 2062, 2064, 2066, 2067, 2069, 2068, 2064, + 2070, 2060, 2067, 2068, 2065, 2074, 2075, 2079, 2071, 2072, + 2069, 2078, 2070, 2071, 2071, 2066, 2083, 2072, 2076, 2076, + 2075, 2077, 2077, 2080, 2074, 2081, 2078, 2079, 2084, 2080, + 2081, 2082, 2095, 2082, 2083, 2086, 2084, 2085, 2085, 2087, + 2087, 2088, 2088, 2089, 2084, 2090, 2091, 2086, 2093, 2094, + 2090, 2094, 2089, 2095, 2097, 0, 2096, 2093, 2098, 2099, - 2102, 2106, 2120, 2108, 2100, 2102, 2110, 2106, 2103, 2108, - 2109, 2111, 2113, 2112, 2114, 2114, 2115, 2116, 2116, 2117, - 2106, 2113, 2118, 2119, 2121, 2115, 2118, 2122, 2119, 2111, - 2123, 2124, 17, 2122, 2125, 2126, 2124, 2124, 2117, 2127, - 2125, 2126, 2127, 2121, 2129, 2132, 2132, 2133, 2133, 2134, - 2135, 2135, 2123, 2136, 2136, 2137, 2138, 2139, 2134, 2151, - 2140, 2143, 2133, 2139, 2129, 2140, 2143, 2137, 2141, 2141, - 2142, 2142, 2144, 2133, 2138, 2146, 2147, 2148, 2144, 2146, - 2149, 2148, 2152, 2153, 2151, 2155, 2154, 2152, 2157, 2156, - 2155, 2158, 2159, 2160, 2161, 2161, 2147, 2159, 2162, 2163, + 2093, 2096, 2096, 2101, 2091, 2102, 2097, 2098, 2103, 2105, + 2102, 2099, 2106, 2103, 2107, 2101, 2108, 2108, 2109, 2110, + 2112, 2116, 2105, 2107, 2111, 2114, 2113, 2117, 2118, 0, + 2114, 2127, 2106, 2116, 2112, 2121, 2109, 2110, 2119, 2117, + 2111, 2113, 2120, 2119, 2121, 2124, 2126, 2120, 2118, 2129, + 2128, 2124, 2126, 2130, 2127, 2132, 2132, 2131, 2135, 2133, + 2134, 2134, 2139, 2138, 2124, 2128, 2131, 2129, 2133, 2136, + 2137, 2141, 2147, 2136, 2140, 2137, 2138, 2135, 2130, 2142, + 2140, 2139, 2143, 2144, 2142, 2142, 2146, 2145, 2143, 2144, + 2145, 2152, 2147, 2141, 2146, 2150, 2150, 2151, 2151, 2155, - 2149, 2154, 2162, 2164, 2157, 2165, 2153, 2156, 2164, 2166, - 2167, 2158, 2169, 2168, 2163, 2160, 2170, 2169, 2171, 2172, - 2172, 2175, 2167, 2176, 2177, 2174, 2178, 2166, 2184, 2170, - 2179, 2165, 2168, 2174, 2180, 2182, 2171, 2260, 2187, 2181, - 2175, 2186, 2176, 2184, 2189, 2192, 2189, 2177, 2192, 2179, - 2178, 2181, 2187, 2188, 2186, 2180, 2182, 2190, 2190, 2188, - 2191, 2193, 2194, 2260, 2195, 2191, 2196, 2196, 2197, 2197, - 2198, 2200, 2198, 2203, 2193, 2201, 2194, 2195, 2199, 2199, - 2202, 2202, 2203, 2204, 2204, 2203, 2200, 2206, 2201, 2205, - 2205, 2208, 2206, 2209, 2210, 2211, 2208, 2212, 2212, 2213, + 2152, 2153, 2153, 2154, 2154, 2158, 2156, 2157, 2159, 2159, + 2158, 2155, 2151, 2157, 2160, 2160, 2161, 2165, 2164, 2162, + 2167, 2161, 2164, 2151, 2156, 2162, 2166, 2169, 2170, 2172, + 2166, 2171, 2174, 2170, 2173, 2175, 2176, 2165, 2177, 2173, + 2167, 2178, 2181, 2177, 2172, 2179, 2179, 2183, 2184, 2180, + 2174, 2175, 2169, 2180, 2171, 2182, 2176, 2181, 2185, 2186, + 2182, 2188, 2187, 2178, 2189, 2193, 2184, 2187, 2190, 2190, + 2185, 2192, 2194, 2183, 2188, 2195, 2196, 2197, 2186, 2192, + 2198, 2199, 2189, 2200, 2193, 0, 2204, 2202, 2206, 2205, + 2207, 2194, 2207, 2199, 2206, 2212, 2197, 2211, 2195, 2204, - 2213, 2214, 2215, 2215, 2216, 2217, 2217, 2211, 2218, 0, - 2219, 2220, 2220, 2209, 2210, 2219, 2221, 2221, 2222, 2223, - 2214, 2224, 2216, 2218, 2225, 2227, 2228, 2228, 2223, 2229, - 2227, 2231, 2222, 2230, 2230, 2224, 2232, 2233, 2234, 2234, - 2233, 2236, 2232, 2225, 2235, 2235, 2237, 2240, 2229, 2231, - 2238, 2241, 2238, 2244, 2234, 2242, 2242, 2245, 2249, 2246, - 2236, 2237, 2240, 2247, 2248, 2248, 2250, 2247, 2251, 2252, - 2241, 2250, 2255, 2244, 2246, 2254, 2254, 2249, 2256, 2257, - 2245, 2258, 2259, 2251, 2252, 2256, 2261, 2261, 2262, 2263, - 2266, 2263, 2255, 2257, 2267, 2264, 2266, 2262, 2264, 2258, + 2196, 2198, 2202, 2205, 2200, 2208, 2208, 2209, 2210, 2212, + 2211, 2210, 2209, 2213, 2214, 2214, 2215, 2215, 2216, 2218, + 2216, 2217, 2217, 2219, 2220, 2220, 2213, 2227, 2221, 2222, + 2222, 2223, 2223, 2224, 2218, 2228, 2219, 2221, 2224, 2226, + 2221, 2229, 2230, 2230, 2226, 2231, 2231, 2227, 2232, 2233, + 2233, 2234, 2240, 2229, 2237, 2228, 2235, 2235, 2236, 2237, + 2238, 2238, 2239, 2239, 2242, 2241, 2240, 2232, 2243, 2234, + 2244, 2246, 2248, 2236, 2241, 2250, 2246, 2247, 2247, 2249, + 2249, 2242, 2243, 2252, 2251, 2255, 2252, 2253, 2253, 2244, + 2251, 2248, 2256, 2250, 2254, 2254, 2257, 2259, 2257, 2260, - 2259, 2270, 2268, 2269, 2271, 2273, 2267, 2268, 2269, 2272, - 2273, 2274, 2278, 2264, 2276, 2264, 2277, 2271, 2279, 2276, - 2280, 2277, 2281, 2284, 2279, 2285, 2270, 2278, 2281, 2282, - 2272, 2283, 2286, 2287, 2282, 2286, 2283, 2274, 2285, 2372, - 2288, 2280, 2287, 2289, 2290, 2291, 2296, 2372, 2284, 2288, - 2292, 2293, 2289, 2290, 2294, 2298, 2292, 2293, 2294, 2291, - 2299, 2299, 2300, 2302, 2298, 2305, 2296, 2307, 2300, 2301, - 2301, 2304, 2302, 2303, 2303, 2308, 2304, 2310, 2301, 2309, - 2309, 2311, 2313, 2307, 2314, 2305, 2315, 2305, 2320, 2462, - 2311, 2308, 2310, 2316, 2313, 2318, 2462, 2319, 2318, 2321, + 2261, 2261, 2263, 2253, 2255, 2264, 2265, 2256, 2268, 2266, + 2267, 2267, 2259, 2266, 2269, 2270, 2271, 2274, 2260, 2269, + 2276, 2265, 2263, 2273, 2273, 2275, 2277, 2268, 2264, 2278, + 2270, 2271, 2275, 2279, 2276, 2280, 2280, 2274, 2282, 2281, + 2282, 2286, 2283, 2285, 2277, 2283, 2287, 2278, 2281, 2285, + 2288, 2287, 2289, 2286, 2290, 2288, 2292, 2291, 2293, 2279, + 2283, 2292, 2283, 2295, 2296, 2297, 2298, 2290, 2295, 2296, + 2299, 2300, 2298, 2301, 2304, 2305, 2302, 2289, 2291, 2301, + 2297, 2302, 2303, 2311, 2293, 2307, 2300, 2303, 2305, 2306, + 2316, 2299, 2306, 2308, 2307, 2309, 2310, 2311, 2324, 2304, - 2314, 2315, 2319, 2322, 2322, 2316, 2323, 2323, 2320, 2325, - 2325, 2321, 2326, 2327, 2328, 2326, 2329, 2330, 2327, 2332, - 2328, 2335, 2329, 2331, 2331, 2334, 2330, 2333, 2333, 2336, - 2337, 2337, 2338, 2332, 2340, 2335, 2339, 2334, 2338, 2340, - 2342, 2348, 2343, 2346, 2342, 2343, 2344, 2344, 2336, 2345, - 2339, 2347, 2346, 2349, 2345, 2350, 2350, 2349, 2351, 2353, - 2347, 2348, 2354, 2355, 2353, 2356, 2357, 2358, 2359, 2360, - 2357, 2351, 2361, 2359, 2362, 2360, 2363, 2364, 2361, 2356, - 2365, 2366, 2354, 2355, 2369, 2365, 2368, 2358, 2370, 2380, - 2377, 2371, 2362, 2370, 2375, 2363, 2364, 2371, 2368, 2373, + 2312, 2313, 2308, 2324, 2309, 2310, 2312, 2313, 2314, 2318, + 2316, 2320, 2314, 2319, 2319, 2321, 2321, 2320, 2318, 2322, + 2323, 2323, 2325, 2327, 2321, 2328, 2329, 2329, 2322, 2331, + 2330, 2333, 2334, 2338, 2335, 2336, 2338, 2340, 2331, 2327, + 2341, 2328, 2325, 2333, 2325, 2330, 2339, 2336, 2334, 2335, + 0, 2339, 2341, 2342, 2342, 2343, 2343, 2340, 2345, 2345, + 2346, 2347, 2348, 2346, 2349, 2350, 2347, 2352, 2348, 2355, + 2349, 2351, 2351, 2354, 2350, 2353, 2353, 2356, 2357, 2357, + 2358, 2352, 2360, 2355, 2359, 2354, 2358, 2360, 2362, 2368, + 2363, 2366, 2362, 2363, 2364, 2364, 2356, 2365, 2359, 2367, - 2369, 2373, 2366, 2375, 2377, 2378, 2378, 2379, 2381, 2381, - 2379, 2385, 2384, 2386, 2388, 2380, 2384, 2385, 2387, 2387, - 2391, 2391, 2393, 2388, 2395, 2386, 2396, 2399, 2400, 2401, - 2402, 2409, 2399, 2407, 2401, 2402, 2403, 2403, 2395, 2407, - 2393, 2410, 2396, 2405, 2405, 2408, 2408, 2409, 2411, 2413, - 2415, 2419, 2414, 2411, 2400, 2414, 2421, 2416, 2417, 2417, - 2419, 2420, 2415, 2410, 2422, 2424, 2424, 2420, 2413, 2416, - 2425, 2426, 0, 2425, 2421, 2427, 2429, 2429, 2431, 2422, - 2430, 2430, 2432, 2431, 2434, 2433, 2435, 2436, 2435, 2434, - 2426, 2437, 2438, 2427, 2433, 2440, 2441, 2439, 2442, 2448, + 2366, 2369, 2365, 2370, 2370, 2369, 2371, 2373, 2367, 2368, + 2374, 2375, 2373, 2376, 2377, 2378, 2379, 2380, 2377, 2371, + 2381, 2379, 2382, 2380, 2383, 2384, 2381, 2376, 2385, 2386, + 2374, 2375, 2389, 2385, 2388, 2378, 2390, 2398, 2398, 2391, + 2382, 2390, 2397, 2383, 2384, 2391, 2388, 2392, 2389, 2393, + 2386, 2393, 2395, 2400, 2399, 2392, 2397, 2399, 2401, 2401, + 2404, 2395, 2405, 2406, 2404, 2407, 2407, 2408, 2405, 2411, + 2411, 2413, 2415, 2419, 2416, 2406, 2408, 2420, 2419, 2400, + 2421, 2430, 2422, 2423, 2424, 2424, 2415, 2422, 2423, 2413, + 2416, 2426, 2426, 2428, 2429, 2429, 2431, 2430, 2434, 2428, - 2432, 2436, 2439, 2442, 2438, 2437, 2443, 2443, 2444, 2444, - 2445, 2445, 2446, 2446, 2447, 2440, 2441, 2448, 2449, 2450, - 2450, 2451, 2451, 2449, 2452, 2453, 2447, 2454, 2455, 2456, - 2456, 2457, 2458, 2458, 2459, 2459, 2452, 2453, 2460, 2461, - 2463, 2464, 2466, 2465, 2455, 2467, 2469, 2454, 2465, 2460, - 2457, 2461, 2463, 2468, 2468, 2469, 2470, 2471, 2472, 2473, - 2474, 2464, 2466, 2475, 2476, 2467, 2476, 2477, 2478, 2478, - 2484, 2472, 2479, 2480, 2474, 2481, 2483, 2471, 2485, 2477, - 2499, 2479, 2470, 2473, 2486, 2475, 2487, 2486, 2480, 0, - 2481, 2488, 2484, 2489, 2483, 2497, 2488, 2502, 2489, 2499, + 2432, 2421, 2436, 2420, 2435, 2432, 2440, 2435, 2437, 2438, + 2438, 2442, 2443, 2441, 2436, 2440, 2447, 2434, 2431, 2441, + 2437, 2445, 2445, 2446, 2448, 2453, 2446, 2443, 2454, 2442, + 2450, 2450, 2451, 2451, 2452, 2447, 2455, 2454, 2456, 2452, + 2456, 2455, 2448, 2453, 2457, 2458, 2460, 2461, 2459, 2462, + 2463, 2460, 2464, 2464, 2468, 2463, 2465, 2465, 2457, 2458, + 2459, 2466, 2466, 2467, 2467, 2469, 2468, 2461, 2470, 2462, + 2471, 2471, 2473, 2470, 2472, 2472, 2474, 2475, 2476, 2477, + 2478, 2478, 2479, 2469, 2473, 2480, 2480, 2482, 2474, 2481, + 2481, 2483, 2485, 2484, 2486, 2477, 2488, 2475, 2482, 2476, - 2487, 2485, 2490, 2490, 2491, 2491, 2492, 2492, 2494, 2494, - 2496, 2496, 2498, 2497, 2500, 2503, 2504, 2502, 2506, 2505, - 2507, 2509, 2508, 2498, 2508, 2510, 2511, 2506, 2515, 2500, - 2512, 2512, 2516, 2503, 2514, 2514, 2517, 2522, 2504, 2505, - 2507, 2509, 2515, 2510, 2511, 2517, 2518, 2518, 2520, 2521, - 2521, 2523, 2524, 2525, 2516, 2522, 2526, 2520, 2527, 2524, - 2529, 2528, 2530, 2530, 2531, 2531, 2532, 2533, 2525, 2523, - 2535, 2535, 2534, 2538, 2526, 2539, 2527, 2528, 2534, 2529, - 2536, 2536, 2537, 2540, 2541, 2533, 2532, 2542, 2537, 2543, - 2539, 2538, 2542, 2544, 2545, 2546, 2551, 2546, 2541, 2545, + 2484, 2479, 2487, 2483, 2485, 2489, 2491, 2487, 2490, 2490, + 2492, 2493, 2497, 2494, 2486, 2491, 2488, 2495, 2496, 2498, + 2501, 2498, 2502, 2499, 2503, 2489, 2494, 2500, 2500, 2501, + 2505, 2493, 2496, 2506, 2497, 2499, 2492, 2502, 2507, 2503, + 2508, 2495, 2509, 2508, 2510, 2511, 2512, 2512, 2505, 2510, + 2511, 2513, 2513, 2514, 2514, 2506, 2509, 2516, 2516, 2518, + 2518, 2507, 2519, 2520, 2521, 2524, 2522, 2526, 2525, 2528, + 2527, 2529, 2531, 2530, 2520, 2530, 2532, 2533, 2528, 2537, + 2519, 2522, 2538, 2521, 0, 2524, 2525, 2534, 2534, 2526, + 2527, 2529, 2531, 2537, 2532, 2533, 2536, 2536, 2539, 2540, - 2547, 2547, 2540, 2548, 2554, 2548, 2549, 2549, 2553, 2543, - 2555, 2556, 2558, 2544, 2557, 2551, 2559, 2553, 2562, 2557, - 0, 2563, 2555, 2554, 2563, 2564, 2564, 2565, 2566, 2567, - 2567, 2556, 2558, 2568, 2569, 2559, 2570, 2572, 2562, 2573, - 2570, 2575, 2565, 2573, 2568, 2577, 2566, 2574, 2574, 2569, - 2578, 2579, 2572, 2582, 2575, 2580, 2580, 2583, 2584, 2586, - 2577, 2590, 2584, 2585, 2585, 2582, 2583, 2587, 2587, 2588, - 2578, 2579, 2589, 2591, 2588, 2592, 2599, 2590, 2586, 2593, - 2593, 2589, 2598, 2598, 2601, 2591, 2600, 2600, 2602, 2606, - 2603, 2604, 2605, 2605, 2613, 2592, 2616, 2601, 2599, 2603, + 2540, 2542, 2543, 2543, 2538, 2544, 2545, 2539, 2546, 2548, + 2542, 2547, 2549, 2550, 2551, 2546, 2552, 2552, 2553, 2553, + 2554, 2555, 2556, 2544, 2545, 2560, 2547, 2548, 2556, 2550, + 2549, 2557, 2557, 2551, 2558, 2558, 2559, 2561, 2562, 2555, + 2554, 2563, 2559, 2560, 2564, 2565, 2566, 0, 2567, 2564, + 2569, 2569, 2561, 2567, 2568, 2563, 2568, 2562, 2570, 2573, + 2570, 2571, 2571, 2575, 2576, 2565, 2566, 2577, 2578, 2579, + 2580, 2581, 2575, 2582, 2579, 2580, 2585, 2586, 2573, 2577, + 2586, 2587, 2587, 2576, 2588, 2589, 2590, 2590, 2578, 2591, + 2592, 2581, 2582, 2593, 2595, 2598, 2585, 2593, 2596, 2588, - 2604, 2602, 2608, 2608, 2606, 2611, 2612, 2614, 2613, 2615, - 2611, 2612, 2614, 2617, 2620, 2616, 2618, 2615, 2621, 2623, - 2622, 2627, 2617, 2621, 2618, 2622, 2624, 2624, 2626, 2620, - 2625, 2625, 2629, 2626, 2623, 2628, 2628, 2630, 2631, 2629, - 2627, 2632, 2630, 2633, 0, 2634, 2635, 2635, 2636, 2633, - 2634, 2642, 2637, 2638, 2638, 2644, 2631, 2637, 2644, 2632, - 2639, 2639, 2645, 2636, 2642, 2643, 2643, 2645, 2645, 2646, - 2647, 2648, 2649, 2650, 2646, 2647, 2651, 2650, 2649, 2652, - 2653, 2651, 2654, 2655, 2658, 2648, 2656, 2657, 2652, 2658, - 2654, 2659, 2656, 2657, 2661, 2653, 2663, 2662, 2665, 2663, + 2591, 2600, 2596, 2589, 2601, 2592, 2597, 2597, 2598, 2595, + 2602, 2603, 2603, 2605, 2606, 2607, 2600, 2608, 2608, 2607, + 2609, 2610, 2610, 2606, 2601, 2605, 2611, 2612, 2613, 2614, + 2602, 2611, 2615, 2616, 2616, 2622, 2612, 2621, 2621, 2609, + 2624, 2614, 2623, 2623, 2613, 2625, 2626, 2627, 2628, 2628, + 2629, 2630, 2615, 2624, 0, 2626, 2627, 2622, 2625, 2632, + 2632, 2637, 2635, 2636, 2638, 2639, 2630, 2635, 2636, 2638, + 2629, 2640, 2641, 2639, 2642, 2637, 2644, 2647, 2645, 2646, + 2651, 2641, 2642, 2645, 2646, 2648, 2648, 2649, 2649, 2650, + 2640, 2644, 2647, 2653, 2650, 2652, 2652, 2654, 2655, 2651, - 2667, 2661, 2662, 2659, 2655, 2667, 2668, 2669, 2670, 2671, - 2665, 2668, 2677, 2672, 2673, 2673, 2682, 2674, 2671, 2683, - 0, 2670, 2672, 2678, 2684, 2669, 2674, 2679, 2687, 2678, - 2677, 2685, 2685, 2679, 2686, 2682, 2688, 2689, 2691, 2683, - 2693, 2686, 2695, 2684, 2698, 2688, 2696, 2687, 2690, 2690, - 2696, 2704, 2689, 2697, 2697, 2693, 2704, 2691, 2699, 2700, - 2701, 2706, 2695, 2703, 2699, 2700, 2701, 2702, 2702, 2698, - 2706, 2703, 2707, 2709, 2710, 2712, 2711, 2710, 2713, 2709, - 2711, 2715, 2715, 2716, 2721, 2707, 2717, 2717, 2721, 2712, - 2718, 2718, 2722, 2713, 2720, 2720, 2726, 2722, 2724, 2724, + 2653, 2656, 2654, 2657, 0, 2658, 2659, 2659, 2660, 2657, + 2658, 2666, 2661, 2662, 2662, 2668, 2655, 2661, 2668, 2656, + 2663, 2663, 2669, 2660, 2666, 2667, 2667, 2669, 2669, 2670, + 2671, 2672, 2673, 2674, 2670, 2671, 2675, 2674, 2673, 2676, + 2677, 2675, 2678, 2679, 2682, 2672, 2680, 2681, 2676, 2682, + 2678, 2683, 2680, 2681, 2685, 2677, 2687, 2686, 2689, 2687, + 2691, 2685, 2686, 2683, 2679, 2691, 2692, 2693, 2694, 2695, + 2689, 2692, 2701, 2696, 2697, 2697, 2706, 2698, 2695, 2707, + 0, 2694, 2696, 2702, 2708, 2693, 2698, 2703, 2711, 2702, + 2701, 2709, 2709, 2703, 2710, 2706, 2712, 2713, 2715, 2707, - 2727, 2716, 2728, 2729, 2732, 2727, 2730, 2742, 2729, 2729, - 2733, 2733, 2735, 2735, 2728, 2738, 2726, 2740, 2730, 2736, - 2736, 2746, 2737, 2749, 2732, 2737, 2748, 2742, 2738, 2743, - 2743, 2744, 2744, 2745, 2745, 2740, 2746, 2747, 2747, 2748, - 2750, 2749, 2751, 2752, 2752, 2753, 2756, 2760, 2751, 2753, - 2757, 2759, 2756, 2761, 2750, 2757, 2759, 2759, 2762, 2763, - 2764, 2765, 2775, 2766, 2772, 2763, 2764, 2766, 2767, 2767, - 2760, 2770, 2772, 2761, 2773, 2778, 2770, 2773, 2762, 2776, - 2777, 2777, 2776, 2779, 2780, 2781, 2765, 2775, 2779, 2782, - 2783, 2783, 2778, 2778, 2784, 2785, 2786, 2787, 2785, 2788, + 2717, 2710, 2719, 2708, 2722, 2712, 2720, 2711, 2714, 2714, + 2720, 0, 2713, 2721, 2721, 2717, 2725, 2715, 2723, 2724, + 2726, 0, 2719, 2728, 2723, 2724, 2726, 2727, 2727, 2722, + 2729, 2728, 2731, 2732, 2725, 2729, 2734, 2735, 2737, 2736, + 2735, 2731, 2734, 2736, 2738, 2741, 2732, 2740, 2740, 2742, + 2742, 2751, 2737, 2743, 2743, 2745, 2745, 2746, 2753, 2738, + 2747, 2746, 2757, 2741, 2752, 2747, 2749, 2749, 2754, 2752, + 2753, 2751, 2755, 2754, 2754, 2758, 2758, 2760, 2760, 2761, + 2761, 2763, 2757, 2762, 2755, 2766, 2762, 2765, 2765, 2768, + 2769, 2769, 2770, 2770, 2763, 2771, 2771, 2772, 2773, 2773, - 2791, 2810, 2780, 2782, 2810, 2781, 2785, 2788, 2784, 2789, - 2786, 2800, 2790, 2799, 2789, 2789, 2787, 2790, 2790, 2791, - 2792, 2792, 2793, 2793, 2794, 2794, 2795, 2795, 2796, 2796, - 2797, 2798, 2802, 2799, 2801, 2803, 2798, 2800, 2804, 2801, - 2803, 2805, 2806, 2808, 2808, 2811, 2797, 2804, 2809, 2809, - 2814, 2802, 2813, 2813, 2815, 2815, 2823, 2814, 2819, 2816, - 2820, 2805, 2806, 2811, 2816, 2818, 2818, 2819, 2821, 2820, - 2824, 2824, 2825, 2826, 2823, 2827, 2825, 2821, 2828, 2830, - 2829, 2832, 2826, 2831, 2830, 2830, 2842, 2833, 2837, 2828, - 2832, 2833, 2841, 2837, 2827, 2829, 2831, 2838, 2838, 2840, + 2774, 2775, 2776, 2766, 2777, 2778, 2778, 2779, 2782, 2768, + 2777, 2779, 2772, 2774, 2782, 2783, 2776, 2785, 2786, 2775, + 2783, 2789, 2785, 2785, 2787, 2788, 2790, 2789, 2791, 2792, + 2793, 2793, 2790, 2792, 2796, 2798, 2801, 2799, 2804, 2796, + 2799, 2786, 2806, 2798, 2787, 2788, 2802, 2803, 2803, 2802, + 2807, 2808, 2805, 2791, 2810, 2804, 2804, 2805, 2809, 2809, + 2806, 2801, 2812, 2811, 2813, 2808, 2811, 2814, 2810, 2817, + 2807, 2826, 2815, 0, 2811, 2814, 2812, 2815, 2815, 2816, + 2818, 2818, 2823, 2813, 2816, 2816, 2819, 2819, 2817, 2820, + 2820, 2821, 2821, 2822, 2822, 2824, 2825, 2826, 2823, 2827, - 2840, 2843, 2845, 2845, 2846, 2847, 2841, 2850, 2852, 2851, - 2853, 2842, 2855, 2846, 2857, 2859, 2853, 2847, 2851, 2843, - 2859, 2860, 2861, 2861, 2855, 2862, 2860, 2865, 2852, 2866, - 2872, 2864, 2850, 2873, 2862, 2857, 2864, 2867, 2867, 2872, - 2865, 2867, 2874, 2866, 2869, 2869, 2870, 2870, 2871, 2871, - 2875, 2877, 2881, 2873, 2878, 2875, 2882, 2877, 2879, 2878, - 2883, 2874, 2884, 2879, 2880, 2880, 2885, 2884, 2882, 2886, - 2881, 2887, 2888, 2888, 2890, 2886, 2894, 2891, 2890, 2895, - 2892, 2883, 2891, 2896, 2885, 2892, 2893, 2893, 2898, 2900, - 2900, 2902, 2903, 2904, 2895, 2894, 2887, 2904, 2896, 2906, + 2824, 2828, 2829, 2830, 2827, 2831, 2832, 2829, 2834, 2834, + 2835, 2835, 2830, 2837, 2836, 2840, 2825, 2836, 2839, 2839, + 2828, 2845, 2840, 2841, 2841, 2831, 2832, 2842, 2844, 2844, + 2845, 2837, 2842, 2846, 2847, 2848, 2850, 2851, 2851, 2853, + 2854, 2852, 2846, 2847, 2848, 2852, 2855, 2856, 2853, 2859, + 2857, 2858, 2865, 2865, 2850, 2857, 2857, 2855, 2859, 2854, + 2868, 2860, 2856, 2864, 2858, 2860, 2867, 2867, 2864, 2869, + 2870, 2872, 2872, 2873, 2868, 2874, 2877, 2878, 2880, 2881, + 2883, 2885, 2873, 0, 2887, 2881, 2878, 2874, 2870, 2887, + 2888, 2890, 2883, 2893, 2869, 2888, 2889, 2889, 2880, 2892, - 2905, 2907, 2908, 2912, 2902, 2903, 2909, 2911, 2898, 2905, - 2908, 2909, 2910, 2910, 2913, 2906, 2911, 2914, 2914, 2915, - 2907, 2912, 2918, 2918, 2919, 2919, 2921, 2923, 2923, 2925, - 2926, 2928, 2927, 2930, 2930, 2931, 2928, 2933, 2915, 2934, - 2913, 2932, 2935, 2933, 2938, 2925, 2926, 2921, 2927, 2939, - 2932, 2937, 2937, 2940, 2940, 2931, 2943, 2944, 2938, 2945, - 2947, 2935, 2934, 2944, 2945, 2948, 2948, 2950, 2939, 2949, - 2949, 2951, 2951, 2952, 2953, 2954, 2943, 2956, 2957, 2955, - 2958, 0, 2947, 2953, 2952, 2955, 2960, 2950, 2959, 2959, - 2957, 2951, 2963, 2963, 2961, 2954, 2956, 2961, 2967, 2962, + 2890, 2877, 2885, 2894, 2892, 2902, 2893, 2895, 2895, 2897, + 2897, 2895, 2898, 2898, 2899, 2899, 2900, 2894, 2901, 2908, + 2908, 2903, 2905, 2909, 2902, 2900, 2903, 2906, 2905, 2907, + 2910, 2911, 2906, 2913, 2907, 2912, 2915, 2914, 2901, 2922, + 2912, 2909, 2910, 2914, 2916, 2916, 2918, 2923, 2919, 2920, + 2918, 2913, 2911, 2919, 2920, 2921, 2921, 2924, 2922, 2926, + 2930, 2915, 2923, 2928, 2928, 2931, 2932, 2933, 2934, 2935, + 2932, 2940, 2924, 2930, 2936, 2937, 2933, 2941, 2931, 2926, + 2937, 2939, 2936, 2943, 2934, 2938, 2938, 2949, 2935, 2940, + 2939, 2942, 2942, 2946, 2946, 2947, 2947, 2951, 2951, 2953, - 2958, 2960, 2962, 2968, 2973, 2969, 2970, 2970, 2972, 2971, - 2967, 2969, 2971, 2975, 2972, 2976, 2976, 2978, 2975, 2977, - 2979, 2980, 2973, 2968, 2977, 2983, 2979, 2981, 2981, 2984, - 2985, 2986, 2987, 2987, 2988, 2989, 2978, 2983, 2980, 2980, - 2990, 2992, 2992, 2994, 2986, 2993, 2993, 2984, 2994, 2990, - 2995, 2989, 2996, 2988, 3000, 2985, 3001, 2996, 2997, 2997, - 2998, 2998, 2999, 2999, 2995, 3002, 3008, 3000, 3003, 3005, - 3005, 3002, 3010, 3003, 3011, 3012, 3013, 3013, 3015, 3015, - 3016, 3017, 3001, 3019, 3018, 3008, 3020, 3021, 3021, 3022, - 3022, 3025, 0, 3024, 3010, 3020, 3011, 3012, 3018, 3024, + 2954, 2955, 2943, 2941, 2956, 2957, 2955, 2960, 2949, 2961, + 2957, 2959, 2959, 2962, 2963, 2953, 2954, 2964, 2961, 2962, + 2956, 2966, 2966, 2968, 2967, 2969, 2969, 2960, 2972, 2973, + 2976, 2977, 2977, 2979, 2974, 2973, 2964, 2963, 2967, 2974, + 2978, 2978, 2968, 2980, 2980, 2981, 2982, 2983, 2972, 2985, + 2986, 2984, 2976, 2979, 2987, 2982, 2981, 2984, 2988, 2988, + 2989, 2990, 2986, 2980, 2990, 2996, 2991, 2983, 2985, 2991, + 2992, 2992, 2997, 2998, 2987, 2989, 3002, 2996, 3001, 2998, + 2999, 2999, 3000, 3004, 3001, 3000, 3005, 3005, 3004, 3007, + 3006, 3008, 2997, 3009, 3002, 3006, 3013, 3008, 3010, 3010, - 3017, 3026, 3027, 3019, 3030, 3030, 3016, 3027, 3032, 3032, - 3033, 3025, 3034, 3035, 3037, 3033, 3036, 3038, 3038, 3035, - 3026, 3041, 3037, 3043, 3039, 3041, 3034, 3042, 3036, 3039, - 3044, 3045, 3042, 3046, 3047, 3050, 3045, 3051, 3049, 3052, - 3047, 0, 3054, 3043, 3056, 3046, 3049, 3055, 3057, 3062, - 3044, 3058, 3061, 3060, 3050, 3062, 3058, 3051, 3060, 3052, - 3054, 3056, 3056, 3055, 3065, 3063, 3067, 3078, 3066, 3057, - 3063, 3066, 3061, 3070, 3070, 3071, 3071, 3072, 0, 3067, - 3077, 3072, 3076, 3076, 3065, 3077, 3078, 3079, 3079, 3081, - 3081, 3082, 3082, 3085, 3082, 3083, 3083, 3085, 3083, 3084, + 3012, 3014, 3015, 3016, 3016, 3017, 3018, 3019, 3007, 0, + 3009, 3009, 3012, 3024, 3013, 3015, 3019, 3021, 3021, 3022, + 3022, 3030, 3018, 3023, 3017, 3025, 3014, 3024, 3023, 3029, + 3025, 3026, 3026, 3027, 3027, 3028, 3028, 3031, 3037, 3032, + 3034, 3034, 3029, 3031, 3032, 3039, 3040, 3030, 3042, 3046, + 3041, 3043, 3043, 3045, 3045, 3047, 3049, 3037, 3048, 3051, + 3051, 3055, 3050, 3052, 3052, 3056, 3064, 3039, 3040, 3041, + 3042, 3050, 3048, 3054, 3047, 3046, 3049, 3057, 3063, 3054, + 3064, 3055, 3057, 3063, 3056, 3060, 3060, 3062, 3062, 3065, + 3066, 3067, 3068, 3068, 3071, 3065, 3069, 3073, 3071, 3067, - 3084, 3087, 3084, 3088, 3089, 3089, 3087, 3090, 3091, 3094, - 3095, 3096, 3088, 3097, 3097, 3100, 3096, 3101, 3103, 3102, - 3104, 3106, 3091, 3102, 3101, 3090, 3107, 3103, 3109, 3094, - 3095, 3107, 3108, 3108, 3113, 3104, 3118, 3109, 0, 3106, - 3100, 3110, 3110, 3111, 3111, 3112, 3112, 3114, 3115, 3113, - 3116, 3119, 3114, 3117, 3120, 3116, 3116, 3115, 3121, 3117, - 3115, 3118, 3122, 3121, 3123, 3125, 3119, 3122, 3124, 3124, - 3126, 3125, 3127, 3127, 3129, 3120, 3126, 3128, 3128, 3130, - 3133, 3133, 3136, 3123, 3130, 3135, 3135, 3139, 3139, 3129, - 3147, 3136, 3140, 3140, 3141, 3141, 3142, 3142, 3143, 3143, + 3072, 3069, 3066, 3074, 3075, 3072, 3076, 3077, 3079, 3075, + 3080, 3081, 3082, 3077, 3085, 3084, 3079, 3073, 3076, 3086, + 3087, 3088, 3090, 3074, 3091, 3095, 3088, 3090, 3092, 3080, + 3085, 3081, 3082, 3084, 3092, 3093, 3086, 3086, 3097, 3096, + 3093, 3087, 3096, 3108, 3091, 3095, 3100, 3100, 3101, 3101, + 3102, 3097, 3106, 3106, 3102, 3107, 3109, 3109, 3111, 3111, + 3107, 3116, 3108, 3112, 3112, 3116, 3112, 3113, 3113, 3119, + 3113, 3114, 3114, 3115, 3115, 3118, 3115, 3121, 3119, 3122, + 3118, 3120, 3120, 3125, 3126, 3127, 3128, 3128, 3131, 3132, + 3127, 3134, 3135, 3122, 3133, 3121, 3132, 3137, 3133, 3144, - 3144, 3144, 3145, 3145, 3146, 3146, 3149, 3150, 3150, 3151, - 3152, 3153, 3157, 3155, 3159, 3149, 3147, 3158, 3151, 3156, - 3156, 3163, 3152, 3160, 3160, 3167, 3159, 3157, 3161, 3161, - 3158, 3153, 3155, 3164, 3164, 3168, 3163, 3169, 3168, 3170, - 3170, 3171, 3173, 3167, 3174, 3173, 3175, 3176, 3177, 3179, - 3174, 3178, 3176, 3182, 3185, 3181, 3186, 3189, 3185, 3171, - 3175, 3181, 3182, 3169, 3201, 3179, 3206, 3177, 3198, 3178, - 3208, 3186, 3199, 3198, 3208, 3199, 3209, 3201, 3202, 3202, - 3203, 3203, 3207, 3189, 3204, 3204, 3211, 3213, 3214, 3206, - 3215, 3207, 3216, 3217, 3216, 3215, 3209, 3218, 3218, 3214, + 3134, 3138, 3140, 3125, 3126, 3145, 3138, 3135, 3139, 3139, + 3145, 3140, 3149, 3131, 3144, 3137, 3141, 3141, 3142, 3142, + 3143, 3143, 3146, 3147, 3148, 3150, 3151, 3152, 3147, 3147, + 3148, 3146, 3152, 3153, 3146, 3154, 3184, 3149, 3153, 3156, + 3150, 3155, 3155, 3157, 3160, 3156, 0, 3151, 3184, 3157, + 3158, 3158, 3159, 3159, 3154, 3161, 3164, 3164, 3167, 3160, + 3161, 3166, 3166, 3170, 3170, 3171, 3171, 3167, 3172, 3172, + 3173, 3173, 3175, 3175, 3176, 3176, 3177, 3177, 3178, 3178, + 3179, 3181, 3182, 3182, 3183, 3185, 3188, 3188, 3187, 3189, + 3181, 3191, 3199, 3183, 3195, 3190, 3192, 3192, 3193, 3193, - 3211, 3219, 3220, 3222, 3221, 3223, 3225, 3227, 3217, 3224, - 3213, 3226, 3227, 3228, 3219, 3225, 3230, 3230, 3231, 3222, - 3229, 3220, 3221, 3226, 3224, 3229, 3232, 3236, 3237, 3245, - 3223, 3232, 3238, 3238, 3228, 3239, 3240, 3240, 3231, 3241, - 3241, 3236, 3242, 3242, 3239, 3243, 3243, 3244, 3237, 3245, - 3246, 3247, 3248, 3246, 3249, 3250, 3247, 3248, 3251, 3252, - 3253, 3256, 3254, 3260, 3251, 3261, 3244, 3254, 3255, 3255, - 3250, 3264, 3253, 3252, 3257, 3257, 3259, 3259, 3260, 3249, - 3266, 3256, 3262, 3262, 3261, 3271, 3264, 3269, 3269, 3270, - 3270, 3272, 3275, 3271, 3273, 3274, 3276, 3277, 3266, 3278, + 3196, 3196, 3201, 3191, 3189, 3185, 3179, 3187, 3190, 3195, + 3199, 3200, 3202, 3202, 3200, 3203, 3205, 3206, 3207, 3205, + 3208, 3209, 3211, 3206, 3210, 3208, 3217, 3214, 3201, 3213, + 3217, 3218, 3207, 3203, 3221, 3213, 3214, 3233, 3211, 3230, + 3209, 3238, 3210, 3240, 3230, 3231, 3218, 3240, 3231, 3239, + 3233, 3234, 3234, 3235, 3235, 3236, 3236, 3241, 3239, 3243, + 3221, 3245, 3247, 3246, 3238, 3249, 3248, 3247, 3248, 3250, + 3250, 3252, 3251, 3243, 3246, 3253, 3254, 3241, 3255, 3256, + 3249, 3259, 3257, 3258, 3245, 3251, 3259, 3260, 3262, 3262, + 3252, 3257, 3254, 3253, 3256, 3258, 3261, 3263, 3268, 3264, - 3273, 3274, 3279, 3279, 3278, 3284, 3275, 3281, 3281, 3276, - 3272, 3285, 3290, 3287, 3288, 3291, 3277, 3292, 3288, 3295, - 3291, 3293, 3294, 3296, 3297, 3301, 3284, 3287, 3296, 3297, - 3302, 3285, 3290, 3303, 3293, 3294, 3292, 3306, 3295, 3298, - 3298, 3304, 3304, 3306, 3305, 3301, 3307, 3307, 3302, 3305, - 3308, 3309, 3303, 3310, 3311, 3308, 3309, 3312, 3310, 3314, - 3314, 3315, 3319, 3312, 3316, 3316, 3315, 3318, 3320, 3321, - 3322, 3318, 3323, 3311, 3324, 3320, 3332, 3325, 3323, 3327, - 3327, 3319, 3329, 3329, 3333, 3330, 3331, 3334, 3321, 3322, - 3325, 3331, 3337, 3324, 3330, 3332, 3336, 3330, 3335, 3335, + 3269, 3261, 3271, 3255, 3264, 3270, 3270, 3276, 3260, 3272, + 3272, 3271, 3268, 3273, 3273, 3274, 3274, 3263, 3275, 3275, + 3269, 3277, 3278, 3279, 3280, 3278, 3276, 3281, 3279, 3280, + 3282, 3283, 3284, 3286, 3288, 3285, 3292, 3283, 3286, 3287, + 3287, 3277, 3289, 3289, 3293, 3282, 3284, 3285, 3291, 3291, + 3296, 3292, 3281, 3298, 3288, 3294, 3294, 3301, 3301, 3302, + 3302, 3303, 3304, 3293, 3305, 3296, 3306, 3308, 3307, 3303, + 3305, 3298, 3306, 3309, 3310, 3311, 3311, 3313, 3313, 3310, + 3308, 3304, 3307, 3316, 3319, 3317, 3320, 3322, 3323, 3324, + 3320, 3333, 3309, 3323, 3327, 3328, 3325, 3326, 3319, 3334, - 3334, 3336, 3339, 3333, 3341, 3337, 3340, 3340, 3342, 3342, - 3343, 3343, 3344, 3345, 3346, 3347, 3347, 3344, 0, 3348, - 3345, 3350, 3350, 3341, 3348, 3349, 3353, 3349, 3339, 3351, - 3352, 3355, 3358, 3346, 3354, 3362, 3351, 3352, 3360, 3354, - 3357, 3357, 3361, 3360, 3363, 3353, 3367, 3361, 3364, 3364, - 3355, 3358, 3366, 3366, 3362, 3368, 3369, 3369, 3370, 3370, - 3371, 3373, 3373, 3363, 3375, 3367, 3381, 3371, 3374, 3374, - 3377, 3375, 3380, 3382, 3368, 3377, 0, 3380, 3383, 3383, - 3384, 3384, 0, 0, 0, 3381, 0, 0, 0, 0, - 0, 0, 3382, 3388, 3388, 3388, 3388, 3388, 3388, 3388, + 3328, 3329, 3330, 3330, 3316, 3317, 3329, 3322, 3324, 3325, + 3326, 3333, 3335, 3327, 3336, 3336, 3337, 3334, 3338, 3339, + 3339, 3337, 3340, 3341, 3338, 3342, 3343, 3340, 3341, 3344, + 3342, 3335, 3346, 3346, 3347, 3344, 3348, 3348, 3350, 3347, + 3351, 3352, 3350, 3353, 3354, 3343, 3355, 3356, 3352, 3359, + 3359, 3357, 3355, 3361, 3361, 3363, 3362, 3364, 3365, 3351, + 3363, 3366, 3353, 3354, 3357, 3362, 3356, 3368, 3362, 3367, + 3367, 3369, 3368, 3371, 3366, 3373, 3364, 3365, 3372, 3372, + 3374, 3374, 3375, 3375, 3369, 3376, 3377, 3378, 3379, 3379, + 3376, 3380, 3385, 3377, 3373, 3381, 3380, 3381, 3383, 3371, - 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3390, 3390, 3390, - 3390, 3390, 3390, 3390, 3391, 3391, 3391, 3391, 3391, 3391, - 3391, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3393, 3393, - 3393, 3393, 3393, 3393, 3393, 3394, 3394, 3394, 3394, 3394, - 3394, 3394, 3396, 3396, 0, 3396, 3396, 3396, 3396, 3397, - 3397, 0, 0, 0, 3397, 3397, 3398, 3398, 0, 0, - 3398, 0, 3398, 3399, 0, 0, 0, 0, 0, 3399, - 3400, 3400, 0, 0, 0, 3400, 3400, 3401, 0, 0, - 0, 0, 0, 3401, 3402, 3402, 0, 3402, 3402, 3402, - 3402, 3403, 0, 0, 0, 0, 0, 3403, 3404, 3404, + 3382, 3382, 3384, 3386, 3387, 3383, 3378, 3390, 3386, 3384, + 3392, 3385, 3389, 3389, 3393, 3392, 3394, 3395, 3399, 3393, + 3396, 3396, 3400, 3387, 3398, 3398, 3390, 3401, 3401, 3402, + 3402, 3403, 3405, 3405, 3413, 3394, 3395, 3399, 3403, 3406, + 3406, 3400, 3407, 3409, 3414, 3412, 3415, 3415, 3409, 3407, + 3412, 3416, 3416, 3413, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3414, 3420, 3420, 3420, 3420, 3420, 3420, + 3420, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3422, 3422, + 3422, 3422, 3422, 3422, 3422, 3423, 3423, 3423, 3423, 3423, + 3423, 3423, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3425, - 0, 0, 0, 3404, 3404, 3405, 3405, 0, 3405, 3405, - 3405, 3405, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, - 3387, 3387, 3387 + 3425, 3425, 3425, 3425, 3425, 3425, 3426, 3426, 3426, 3426, + 3426, 3426, 3426, 3428, 3428, 0, 3428, 3428, 3428, 3428, + 3429, 3429, 0, 0, 0, 3429, 3429, 3430, 3430, 0, + 0, 3430, 0, 3430, 3431, 0, 0, 0, 0, 0, + 3431, 3432, 3432, 0, 0, 0, 3432, 3432, 3433, 0, + 0, 0, 0, 0, 3433, 3434, 3434, 0, 3434, 3434, + 3434, 3434, 3435, 0, 0, 0, 0, 0, 3435, 3436, + 3436, 0, 0, 0, 3436, 3436, 3437, 3437, 0, 3437, + 3437, 3437, 3437, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3419, 3419, 3419, 3419 } ; static yy_state_type yy_last_accepting_state; @@ -3212,7 +3238,7 @@ static void config_end_include(void) } #endif -#line 3213 "" +#line 3239 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3221,9 +3247,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3222 "" +#line 3248 "" -#line 3224 "" +#line 3250 "" #define INITIAL 0 #define quotedstring 1 @@ -3447,7 +3473,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3448 "" +#line 3474 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3480,13 +3506,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 >= 3388 ) + if ( yy_current_state >= 3420 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6613 ); + while ( yy_base[yy_current_state] != 6684 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3631,77 +3657,77 @@ YY_RULE_SETUP case 24: YY_RULE_SETUP #line 238 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } +{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } YY_BREAK case 25: YY_RULE_SETUP #line 239 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } +{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } YY_BREAK case 26: YY_RULE_SETUP #line 240 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } YY_BREAK case 27: YY_RULE_SETUP #line 241 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } YY_BREAK case 28: YY_RULE_SETUP #line 242 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 29: YY_RULE_SETUP #line 243 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 30: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 31: YY_RULE_SETUP #line 245 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 32: YY_RULE_SETUP #line 246 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 33: YY_RULE_SETUP #line 247 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 34: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 35: YY_RULE_SETUP #line 249 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 36: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_WIN_CERT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 37: YY_RULE_SETUP #line 251 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 38: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_WIN_CERT) } YY_BREAK case 39: YY_RULE_SETUP @@ -3716,1186 +3742,1186 @@ YY_RULE_SETUP case 41: YY_RULE_SETUP #line 255 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 42: YY_RULE_SETUP #line 256 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 43: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERSUITES) } +{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } YY_BREAK case 44: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_USE_SNI) } +{ YDVAR(1, VAR_TLS_CIPHERS) } YY_BREAK case 45: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTPS_PORT) } +{ YDVAR(1, VAR_TLS_CIPHERSUITES) } YY_BREAK case 46: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_ENDPOINT) } +{ YDVAR(1, VAR_TLS_USE_SNI) } YY_BREAK case 47: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } +{ YDVAR(1, VAR_HTTPS_PORT) } YY_BREAK case 48: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_ENDPOINT) } YY_BREAK case 49: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } YY_BREAK case 50: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NODELAY) } +{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } YY_BREAK case 51: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } +{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } YY_BREAK case 52: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_HTTP_NODELAY) } YY_BREAK case 53: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } YY_BREAK case 54: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 55: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 56: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 57: YY_RULE_SETUP #line 271 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 58: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 59: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 60: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 61: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 62: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 63: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_DSCP) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 64: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 65: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_IP_DSCP) } YY_BREAK case 66: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 67: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 68: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 69: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 70: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 71: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 72: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } YY_BREAK case 73: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 74: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 75: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 76: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 77: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 78: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 79: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 80: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 81: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 82: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 83: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 84: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 85: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 86: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 87: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 88: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } YY_BREAK case 89: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 90: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_CONNECT) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 91: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 92: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_UDP_CONNECT) } YY_BREAK case 93: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 94: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 95: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 96: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 97: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 98: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 99: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 100: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 101: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 102: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 103: YY_RULE_SETUP #line 317 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 104: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 105: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 106: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 107: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_DENY_ANY) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 108: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 109: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(1, VAR_DENY_ANY) } YY_BREAK case 110: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 111: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 112: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 113: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 114: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_NO_CACHE) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 115: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 116: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_NO_CACHE) } YY_BREAK case 117: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 118: YY_RULE_SETUP #line 332 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 119: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 120: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 121: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 122: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 123: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } YY_BREAK case 124: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 125: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 126: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 127: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } +{ YDVAR(0, VAR_RPZ) } YY_BREAK case 128: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } +{ YDVAR(1, VAR_TAGS) } YY_BREAK case 129: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } YY_BREAK case 130: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } YY_BREAK case 131: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_RPZ_LOG) } YY_BREAK case 132: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG_NAME) } YY_BREAK case 133: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 134: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 135: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 136: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 137: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 138: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 139: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 140: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 141: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 142: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 143: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 144: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 145: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 146: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 147: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 148: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 149: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 150: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 151: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 152: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 153: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 154: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 155: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 156: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 157: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 158: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 159: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 160: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 161: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 162: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 163: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 164: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 165: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 166: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 167: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 168: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 169: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 170: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 171: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 172: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 173: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 174: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 189: YY_RULE_SETUP -#line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +#line 403 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 190: YY_RULE_SETUP -#line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +#line 404 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 191: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 192: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 250: YY_RULE_SETUP -#line 466 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } +#line 465 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 251: YY_RULE_SETUP -#line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 466 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 252: YY_RULE_SETUP -#line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +#line 468 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 253: YY_RULE_SETUP #line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 254: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 255: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 256: YY_RULE_SETUP -#line 474 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 473 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 257: YY_RULE_SETUP -#line 476 "./util/configlexer.lex" +#line 474 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 258: YY_RULE_SETUP -#line 478 "./util/configlexer.lex" +#line 476 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 259: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" +#line 478 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 260: YY_RULE_SETUP -#line 482 "./util/configlexer.lex" +#line 480 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 261: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 482 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 262: YY_RULE_SETUP -#line 485 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 484 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP #line 486 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 264: YY_RULE_SETUP #line 487 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 265: YY_RULE_SETUP #line 488 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 276: YY_RULE_SETUP @@ -4905,240 +4931,250 @@ YY_RULE_SETUP case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 279: YY_RULE_SETUP #line 502 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 288: YY_RULE_SETUP -#line 512 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 511 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 289: YY_RULE_SETUP -#line 514 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 512 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 290: YY_RULE_SETUP -#line 515 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 514 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 291: YY_RULE_SETUP #line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 292: YY_RULE_SETUP #line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 293: YY_RULE_SETUP #line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } YY_BREAK case 317: -/* rule 317 can match eol */ YY_RULE_SETUP #line 542 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 318: +YY_RULE_SETUP +#line 543 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 319: +/* rule 319 can match eol */ +YY_RULE_SETUP +#line 544 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 318: +case 320: YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 546 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 319: +case 321: YY_RULE_SETUP -#line 551 "./util/configlexer.lex" +#line 553 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 320: -/* rule 320 can match eol */ +case 322: +/* rule 322 can match eol */ YY_RULE_SETUP -#line 552 "./util/configlexer.lex" +#line 554 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 321: +case 323: YY_RULE_SETUP -#line 554 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5151,34 +5187,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 322: +case 324: YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 568 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 567 "./util/configlexer.lex" +#line 569 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 323: +case 325: YY_RULE_SETUP -#line 572 "./util/configlexer.lex" +#line 574 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 324: -/* rule 324 can match eol */ +case 326: +/* rule 326 can match eol */ YY_RULE_SETUP -#line 573 "./util/configlexer.lex" +#line 575 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 325: +case 327: YY_RULE_SETUP -#line 575 "./util/configlexer.lex" +#line 577 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5191,38 +5227,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 326: +case 328: YY_RULE_SETUP -#line 587 "./util/configlexer.lex" +#line 589 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 589 "./util/configlexer.lex" +#line 591 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 327: -YY_RULE_SETUP -#line 593 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK -case 328: -/* rule 328 can match eol */ -YY_RULE_SETUP -#line 594 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} - YY_BREAK case 329: YY_RULE_SETUP #line 595 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 330: +/* rule 330 can match eol */ YY_RULE_SETUP #line 596 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++;} + YY_BREAK +case 331: +YY_RULE_SETUP +#line 597 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 332: +YY_RULE_SETUP +#line 598 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5230,27 +5266,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 601 "./util/configlexer.lex" +#line 603 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 331: +case 333: YY_RULE_SETUP -#line 605 "./util/configlexer.lex" +#line 607 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 332: -/* rule 332 can match eol */ +case 334: +/* rule 334 can match eol */ YY_RULE_SETUP -#line 606 "./util/configlexer.lex" +#line 608 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 333: +case 335: YY_RULE_SETUP -#line 608 "./util/configlexer.lex" +#line 610 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5260,7 +5296,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 614 "./util/configlexer.lex" +#line 616 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5275,39 +5311,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 334: +case 336: YY_RULE_SETUP -#line 628 "./util/configlexer.lex" +#line 630 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 631 "./util/configlexer.lex" +#line 633 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 335: -YY_RULE_SETUP -#line 635 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK -case 336: -/* rule 336 can match eol */ -YY_RULE_SETUP -#line 636 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } - YY_BREAK case 337: YY_RULE_SETUP #line 637 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 338: +/* rule 338 can match eol */ YY_RULE_SETUP #line 638 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +case 339: +YY_RULE_SETUP +#line 639 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 340: +YY_RULE_SETUP +#line 640 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5316,29 +5352,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 644 "./util/configlexer.lex" +#line 646 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 339: +case 341: YY_RULE_SETUP -#line 648 "./util/configlexer.lex" +#line 650 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 340: -/* rule 340 can match eol */ +case 342: +/* rule 342 can match eol */ YY_RULE_SETUP -#line 649 "./util/configlexer.lex" +#line 651 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 341: +case 343: YY_RULE_SETUP -#line 653 "./util/configlexer.lex" +#line 655 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5347,33 +5383,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 342: +case 344: YY_RULE_SETUP -#line 661 "./util/configlexer.lex" +#line 663 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 343: +case 345: YY_RULE_SETUP -#line 665 "./util/configlexer.lex" +#line 667 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 344: +case 346: YY_RULE_SETUP -#line 669 "./util/configlexer.lex" +#line 671 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 345: +case 347: YY_RULE_SETUP -#line 673 "./util/configlexer.lex" +#line 675 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5374 "" +#line 5410 "" case YY_END_OF_BUFFER: { @@ -5668,7 +5704,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 >= 3388 ) + if ( yy_current_state >= 3420 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5696,11 +5732,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 >= 3388 ) + if ( yy_current_state >= 3420 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3387); + yy_is_jam = (yy_current_state == 3419); return yy_is_jam ? 0 : yy_current_state; } @@ -6339,6 +6375,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 673 "./util/configlexer.lex" +#line 675 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index b52ddf81e..c031fab39 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -235,6 +235,8 @@ tcp-upstream{COLON} { YDVAR(1, VAR_TCP_UPSTREAM) } tcp-mss{COLON} { YDVAR(1, VAR_TCP_MSS) } outgoing-tcp-mss{COLON} { YDVAR(1, VAR_OUTGOING_TCP_MSS) } tcp-idle-timeout{COLON} { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } +max-reuse-tcp-queries{COLON} { YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } +tcp-reuse-timeout{COLON} { YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } edns-tcp-keepalive{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } edns-tcp-keepalive-timeout{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } ssl-upstream{COLON} { YDVAR(1, VAR_SSL_UPSTREAM) } diff --git a/util/configparser.c b/util/configparser.c index 4da644d3a..3faf61c5e 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30706 -/* Bison version. */ -#define YYBISON_VERSION "3.6.4" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.6" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -67,7 +67,7 @@ /* First part of user prologue. */ -#line 38 "./util/configparser.y" +#line 38 "util/configparser.y" #include "config.h" @@ -119,673 +119,7 @@ extern struct config_parser_state* cfg_parser; # endif # endif -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 367, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 379, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 392, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 417, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 442, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 447, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 476, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 516, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ - VAR_MASTER = 527, /* VAR_MASTER */ - VAR_URL = 528, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 549, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 553, /* VAR_RPZ */ - VAR_TAGS = 554, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 559, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 563, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 564, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 565 /* VAR_ZONEMD_REJECT_ABSENCE */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING_ARG 265 -#define VAR_FORCE_TOPLEVEL 266 -#define VAR_SERVER 267 -#define VAR_VERBOSITY 268 -#define VAR_NUM_THREADS 269 -#define VAR_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_PREFER_IP4 273 -#define VAR_DO_IP4 274 -#define VAR_DO_IP6 275 -#define VAR_PREFER_IP6 276 -#define VAR_DO_UDP 277 -#define VAR_DO_TCP 278 -#define VAR_TCP_MSS 279 -#define VAR_OUTGOING_TCP_MSS 280 -#define VAR_TCP_IDLE_TIMEOUT 281 -#define VAR_EDNS_TCP_KEEPALIVE 282 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 -#define VAR_CHROOT 284 -#define VAR_USERNAME 285 -#define VAR_DIRECTORY 286 -#define VAR_LOGFILE 287 -#define VAR_PIDFILE 288 -#define VAR_MSG_CACHE_SIZE 289 -#define VAR_MSG_CACHE_SLABS 290 -#define VAR_NUM_QUERIES_PER_THREAD 291 -#define VAR_RRSET_CACHE_SIZE 292 -#define VAR_RRSET_CACHE_SLABS 293 -#define VAR_OUTGOING_NUM_TCP 294 -#define VAR_INFRA_HOST_TTL 295 -#define VAR_INFRA_LAME_TTL 296 -#define VAR_INFRA_CACHE_SLABS 297 -#define VAR_INFRA_CACHE_NUMHOSTS 298 -#define VAR_INFRA_CACHE_LAME_SIZE 299 -#define VAR_NAME 300 -#define VAR_STUB_ZONE 301 -#define VAR_STUB_HOST 302 -#define VAR_STUB_ADDR 303 -#define VAR_TARGET_FETCH_POLICY 304 -#define VAR_HARDEN_SHORT_BUFSIZE 305 -#define VAR_HARDEN_LARGE_QUERIES 306 -#define VAR_FORWARD_ZONE 307 -#define VAR_FORWARD_HOST 308 -#define VAR_FORWARD_ADDR 309 -#define VAR_DO_NOT_QUERY_ADDRESS 310 -#define VAR_HIDE_IDENTITY 311 -#define VAR_HIDE_VERSION 312 -#define VAR_IDENTITY 313 -#define VAR_VERSION 314 -#define VAR_HARDEN_GLUE 315 -#define VAR_MODULE_CONF 316 -#define VAR_TRUST_ANCHOR_FILE 317 -#define VAR_TRUST_ANCHOR 318 -#define VAR_VAL_OVERRIDE_DATE 319 -#define VAR_BOGUS_TTL 320 -#define VAR_VAL_CLEAN_ADDITIONAL 321 -#define VAR_VAL_PERMISSIVE_MODE 322 -#define VAR_INCOMING_NUM_TCP 323 -#define VAR_MSG_BUFFER_SIZE 324 -#define VAR_KEY_CACHE_SIZE 325 -#define VAR_KEY_CACHE_SLABS 326 -#define VAR_TRUSTED_KEYS_FILE 327 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 -#define VAR_USE_SYSLOG 329 -#define VAR_OUTGOING_INTERFACE 330 -#define VAR_ROOT_HINTS 331 -#define VAR_DO_NOT_QUERY_LOCALHOST 332 -#define VAR_CACHE_MAX_TTL 333 -#define VAR_HARDEN_DNSSEC_STRIPPED 334 -#define VAR_ACCESS_CONTROL 335 -#define VAR_LOCAL_ZONE 336 -#define VAR_LOCAL_DATA 337 -#define VAR_INTERFACE_AUTOMATIC 338 -#define VAR_STATISTICS_INTERVAL 339 -#define VAR_DO_DAEMONIZE 340 -#define VAR_USE_CAPS_FOR_ID 341 -#define VAR_STATISTICS_CUMULATIVE 342 -#define VAR_OUTGOING_PORT_PERMIT 343 -#define VAR_OUTGOING_PORT_AVOID 344 -#define VAR_DLV_ANCHOR_FILE 345 -#define VAR_DLV_ANCHOR 346 -#define VAR_NEG_CACHE_SIZE 347 -#define VAR_HARDEN_REFERRAL_PATH 348 -#define VAR_PRIVATE_ADDRESS 349 -#define VAR_PRIVATE_DOMAIN 350 -#define VAR_REMOTE_CONTROL 351 -#define VAR_CONTROL_ENABLE 352 -#define VAR_CONTROL_INTERFACE 353 -#define VAR_CONTROL_PORT 354 -#define VAR_SERVER_KEY_FILE 355 -#define VAR_SERVER_CERT_FILE 356 -#define VAR_CONTROL_KEY_FILE 357 -#define VAR_CONTROL_CERT_FILE 358 -#define VAR_CONTROL_USE_CERT 359 -#define VAR_EXTENDED_STATISTICS 360 -#define VAR_LOCAL_DATA_PTR 361 -#define VAR_JOSTLE_TIMEOUT 362 -#define VAR_STUB_PRIME 363 -#define VAR_UNWANTED_REPLY_THRESHOLD 364 -#define VAR_LOG_TIME_ASCII 365 -#define VAR_DOMAIN_INSECURE 366 -#define VAR_PYTHON 367 -#define VAR_PYTHON_SCRIPT 368 -#define VAR_VAL_SIG_SKEW_MIN 369 -#define VAR_VAL_SIG_SKEW_MAX 370 -#define VAR_CACHE_MIN_TTL 371 -#define VAR_VAL_LOG_LEVEL 372 -#define VAR_AUTO_TRUST_ANCHOR_FILE 373 -#define VAR_KEEP_MISSING 374 -#define VAR_ADD_HOLDDOWN 375 -#define VAR_DEL_HOLDDOWN 376 -#define VAR_SO_RCVBUF 377 -#define VAR_EDNS_BUFFER_SIZE 378 -#define VAR_PREFETCH 379 -#define VAR_PREFETCH_KEY 380 -#define VAR_SO_SNDBUF 381 -#define VAR_SO_REUSEPORT 382 -#define VAR_HARDEN_BELOW_NXDOMAIN 383 -#define VAR_IGNORE_CD_FLAG 384 -#define VAR_LOG_QUERIES 385 -#define VAR_LOG_REPLIES 386 -#define VAR_LOG_LOCAL_ACTIONS 387 -#define VAR_TCP_UPSTREAM 388 -#define VAR_SSL_UPSTREAM 389 -#define VAR_SSL_SERVICE_KEY 390 -#define VAR_SSL_SERVICE_PEM 391 -#define VAR_SSL_PORT 392 -#define VAR_FORWARD_FIRST 393 -#define VAR_STUB_SSL_UPSTREAM 394 -#define VAR_FORWARD_SSL_UPSTREAM 395 -#define VAR_TLS_CERT_BUNDLE 396 -#define VAR_HTTPS_PORT 397 -#define VAR_HTTP_ENDPOINT 398 -#define VAR_HTTP_MAX_STREAMS 399 -#define VAR_HTTP_QUERY_BUFFER_SIZE 400 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 -#define VAR_HTTP_NODELAY 402 -#define VAR_HTTP_NOTLS_DOWNSTREAM 403 -#define VAR_STUB_FIRST 404 -#define VAR_MINIMAL_RESPONSES 405 -#define VAR_RRSET_ROUNDROBIN 406 -#define VAR_MAX_UDP_SIZE 407 -#define VAR_DELAY_CLOSE 408 -#define VAR_UDP_CONNECT 409 -#define VAR_UNBLOCK_LAN_ZONES 410 -#define VAR_INSECURE_LAN_ZONES 411 -#define VAR_INFRA_CACHE_MIN_RTT 412 -#define VAR_INFRA_KEEP_PROBING 413 -#define VAR_DNS64_PREFIX 414 -#define VAR_DNS64_SYNTHALL 415 -#define VAR_DNS64_IGNORE_AAAA 416 -#define VAR_DNSTAP 417 -#define VAR_DNSTAP_ENABLE 418 -#define VAR_DNSTAP_SOCKET_PATH 419 -#define VAR_DNSTAP_IP 420 -#define VAR_DNSTAP_TLS 421 -#define VAR_DNSTAP_TLS_SERVER_NAME 422 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 -#define VAR_DNSTAP_SEND_IDENTITY 426 -#define VAR_DNSTAP_SEND_VERSION 427 -#define VAR_DNSTAP_BIDIRECTIONAL 428 -#define VAR_DNSTAP_IDENTITY 429 -#define VAR_DNSTAP_VERSION 430 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 -#define VAR_RESPONSE_IP_TAG 437 -#define VAR_RESPONSE_IP 438 -#define VAR_RESPONSE_IP_DATA 439 -#define VAR_HARDEN_ALGO_DOWNGRADE 440 -#define VAR_IP_TRANSPARENT 441 -#define VAR_IP_DSCP 442 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 -#define VAR_IP_RATELIMIT 444 -#define VAR_IP_RATELIMIT_SLABS 445 -#define VAR_IP_RATELIMIT_SIZE 446 -#define VAR_RATELIMIT 447 -#define VAR_RATELIMIT_SLABS 448 -#define VAR_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT_FOR_DOMAIN 450 -#define VAR_RATELIMIT_BELOW_DOMAIN 451 -#define VAR_IP_RATELIMIT_FACTOR 452 -#define VAR_RATELIMIT_FACTOR 453 -#define VAR_SEND_CLIENT_SUBNET 454 -#define VAR_CLIENT_SUBNET_ZONE 455 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 -#define VAR_CLIENT_SUBNET_OPCODE 457 -#define VAR_MAX_CLIENT_SUBNET_IPV4 458 -#define VAR_MAX_CLIENT_SUBNET_IPV6 459 -#define VAR_MIN_CLIENT_SUBNET_IPV4 460 -#define VAR_MIN_CLIENT_SUBNET_IPV6 461 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 -#define VAR_CAPS_WHITELIST 464 -#define VAR_CACHE_MAX_NEGATIVE_TTL 465 -#define VAR_PERMIT_SMALL_HOLDDOWN 466 -#define VAR_QNAME_MINIMISATION 467 -#define VAR_QNAME_MINIMISATION_STRICT 468 -#define VAR_IP_FREEBIND 469 -#define VAR_DEFINE_TAG 470 -#define VAR_LOCAL_ZONE_TAG 471 -#define VAR_ACCESS_CONTROL_TAG 472 -#define VAR_LOCAL_ZONE_OVERRIDE 473 -#define VAR_ACCESS_CONTROL_TAG_ACTION 474 -#define VAR_ACCESS_CONTROL_TAG_DATA 475 -#define VAR_VIEW 476 -#define VAR_ACCESS_CONTROL_VIEW 477 -#define VAR_VIEW_FIRST 478 -#define VAR_SERVE_EXPIRED 479 -#define VAR_SERVE_EXPIRED_TTL 480 -#define VAR_SERVE_EXPIRED_TTL_RESET 481 -#define VAR_SERVE_EXPIRED_REPLY_TTL 482 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 -#define VAR_SERVE_ORIGINAL_TTL 484 -#define VAR_FAKE_DSA 485 -#define VAR_FAKE_SHA1 486 -#define VAR_LOG_IDENTITY 487 -#define VAR_HIDE_TRUSTANCHOR 488 -#define VAR_TRUST_ANCHOR_SIGNALING 489 -#define VAR_AGGRESSIVE_NSEC 490 -#define VAR_USE_SYSTEMD 491 -#define VAR_SHM_ENABLE 492 -#define VAR_SHM_KEY 493 -#define VAR_ROOT_KEY_SENTINEL 494 -#define VAR_DNSCRYPT 495 -#define VAR_DNSCRYPT_ENABLE 496 -#define VAR_DNSCRYPT_PORT 497 -#define VAR_DNSCRYPT_PROVIDER 498 -#define VAR_DNSCRYPT_SECRET_KEY 499 -#define VAR_DNSCRYPT_PROVIDER_CERT 500 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 -#define VAR_PAD_RESPONSES 506 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 -#define VAR_PAD_QUERIES 508 -#define VAR_PAD_QUERIES_BLOCK_SIZE 509 -#define VAR_IPSECMOD_ENABLED 510 -#define VAR_IPSECMOD_HOOK 511 -#define VAR_IPSECMOD_IGNORE_BOGUS 512 -#define VAR_IPSECMOD_MAX_TTL 513 -#define VAR_IPSECMOD_WHITELIST 514 -#define VAR_IPSECMOD_STRICT 515 -#define VAR_CACHEDB 516 -#define VAR_CACHEDB_BACKEND 517 -#define VAR_CACHEDB_SECRETSEED 518 -#define VAR_CACHEDB_REDISHOST 519 -#define VAR_CACHEDB_REDISPORT 520 -#define VAR_CACHEDB_REDISTIMEOUT 521 -#define VAR_CACHEDB_REDISEXPIRERECORDS 522 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 -#define VAR_FOR_UPSTREAM 524 -#define VAR_AUTH_ZONE 525 -#define VAR_ZONEFILE 526 -#define VAR_MASTER 527 -#define VAR_URL 528 -#define VAR_FOR_DOWNSTREAM 529 -#define VAR_FALLBACK_ENABLED 530 -#define VAR_TLS_ADDITIONAL_PORT 531 -#define VAR_LOW_RTT 532 -#define VAR_LOW_RTT_PERMIL 533 -#define VAR_FAST_SERVER_PERMIL 534 -#define VAR_FAST_SERVER_NUM 535 -#define VAR_ALLOW_NOTIFY 536 -#define VAR_TLS_WIN_CERT 537 -#define VAR_TCP_CONNECTION_LIMIT 538 -#define VAR_FORWARD_NO_CACHE 539 -#define VAR_STUB_NO_CACHE 540 -#define VAR_LOG_SERVFAIL 541 -#define VAR_DENY_ANY 542 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 -#define VAR_LOG_TAG_QUERYREPLY 544 -#define VAR_STREAM_WAIT_SIZE 545 -#define VAR_TLS_CIPHERS 546 -#define VAR_TLS_CIPHERSUITES 547 -#define VAR_TLS_USE_SNI 548 -#define VAR_IPSET 549 -#define VAR_IPSET_NAME_V4 550 -#define VAR_IPSET_NAME_V6 551 -#define VAR_TLS_SESSION_TICKET_KEYS 552 -#define VAR_RPZ 553 -#define VAR_TAGS 554 -#define VAR_RPZ_ACTION_OVERRIDE 555 -#define VAR_RPZ_CNAME_OVERRIDE 556 -#define VAR_RPZ_LOG 557 -#define VAR_RPZ_LOG_NAME 558 -#define VAR_DYNLIB 559 -#define VAR_DYNLIB_FILE 560 -#define VAR_EDNS_CLIENT_STRING 561 -#define VAR_EDNS_CLIENT_STRING_OPCODE 562 -#define VAR_NSID 563 -#define VAR_ZONEMD_PERMISSIVE_MODE 564 -#define VAR_ZONEMD_REJECT_ABSENCE 565 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 66 "./util/configparser.y" - - char* str; - -#line 776 "util/configparser.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +#include "configparser.h" /* Symbol kind. */ enum yysymbol_kind_t { @@ -895,548 +229,552 @@ enum yysymbol_kind_t YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */ YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */ YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */ - YYSYMBOL_VAR_EXTENDED_STATISTICS = 105, /* VAR_EXTENDED_STATISTICS */ - YYSYMBOL_VAR_LOCAL_DATA_PTR = 106, /* VAR_LOCAL_DATA_PTR */ - YYSYMBOL_VAR_JOSTLE_TIMEOUT = 107, /* VAR_JOSTLE_TIMEOUT */ - YYSYMBOL_VAR_STUB_PRIME = 108, /* VAR_STUB_PRIME */ - YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 109, /* VAR_UNWANTED_REPLY_THRESHOLD */ - YYSYMBOL_VAR_LOG_TIME_ASCII = 110, /* VAR_LOG_TIME_ASCII */ - YYSYMBOL_VAR_DOMAIN_INSECURE = 111, /* VAR_DOMAIN_INSECURE */ - YYSYMBOL_VAR_PYTHON = 112, /* VAR_PYTHON */ - YYSYMBOL_VAR_PYTHON_SCRIPT = 113, /* VAR_PYTHON_SCRIPT */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 114, /* VAR_VAL_SIG_SKEW_MIN */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 115, /* VAR_VAL_SIG_SKEW_MAX */ - YYSYMBOL_VAR_CACHE_MIN_TTL = 116, /* VAR_CACHE_MIN_TTL */ - YYSYMBOL_VAR_VAL_LOG_LEVEL = 117, /* VAR_VAL_LOG_LEVEL */ - YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 118, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - YYSYMBOL_VAR_KEEP_MISSING = 119, /* VAR_KEEP_MISSING */ - YYSYMBOL_VAR_ADD_HOLDDOWN = 120, /* VAR_ADD_HOLDDOWN */ - YYSYMBOL_VAR_DEL_HOLDDOWN = 121, /* VAR_DEL_HOLDDOWN */ - YYSYMBOL_VAR_SO_RCVBUF = 122, /* VAR_SO_RCVBUF */ - YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 123, /* VAR_EDNS_BUFFER_SIZE */ - YYSYMBOL_VAR_PREFETCH = 124, /* VAR_PREFETCH */ - YYSYMBOL_VAR_PREFETCH_KEY = 125, /* VAR_PREFETCH_KEY */ - YYSYMBOL_VAR_SO_SNDBUF = 126, /* VAR_SO_SNDBUF */ - YYSYMBOL_VAR_SO_REUSEPORT = 127, /* VAR_SO_REUSEPORT */ - YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 128, /* VAR_HARDEN_BELOW_NXDOMAIN */ - YYSYMBOL_VAR_IGNORE_CD_FLAG = 129, /* VAR_IGNORE_CD_FLAG */ - YYSYMBOL_VAR_LOG_QUERIES = 130, /* VAR_LOG_QUERIES */ - YYSYMBOL_VAR_LOG_REPLIES = 131, /* VAR_LOG_REPLIES */ - YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 132, /* VAR_LOG_LOCAL_ACTIONS */ - YYSYMBOL_VAR_TCP_UPSTREAM = 133, /* VAR_TCP_UPSTREAM */ - YYSYMBOL_VAR_SSL_UPSTREAM = 134, /* VAR_SSL_UPSTREAM */ - YYSYMBOL_VAR_SSL_SERVICE_KEY = 135, /* VAR_SSL_SERVICE_KEY */ - YYSYMBOL_VAR_SSL_SERVICE_PEM = 136, /* VAR_SSL_SERVICE_PEM */ - YYSYMBOL_VAR_SSL_PORT = 137, /* VAR_SSL_PORT */ - YYSYMBOL_VAR_FORWARD_FIRST = 138, /* VAR_FORWARD_FIRST */ - YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 139, /* VAR_STUB_SSL_UPSTREAM */ - YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 140, /* VAR_FORWARD_SSL_UPSTREAM */ - YYSYMBOL_VAR_TLS_CERT_BUNDLE = 141, /* VAR_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_HTTPS_PORT = 142, /* VAR_HTTPS_PORT */ - YYSYMBOL_VAR_HTTP_ENDPOINT = 143, /* VAR_HTTP_ENDPOINT */ - YYSYMBOL_VAR_HTTP_MAX_STREAMS = 144, /* VAR_HTTP_MAX_STREAMS */ - YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 145, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 146, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_NODELAY = 147, /* VAR_HTTP_NODELAY */ - YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 148, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - YYSYMBOL_VAR_STUB_FIRST = 149, /* VAR_STUB_FIRST */ - YYSYMBOL_VAR_MINIMAL_RESPONSES = 150, /* VAR_MINIMAL_RESPONSES */ - YYSYMBOL_VAR_RRSET_ROUNDROBIN = 151, /* VAR_RRSET_ROUNDROBIN */ - YYSYMBOL_VAR_MAX_UDP_SIZE = 152, /* VAR_MAX_UDP_SIZE */ - YYSYMBOL_VAR_DELAY_CLOSE = 153, /* VAR_DELAY_CLOSE */ - YYSYMBOL_VAR_UDP_CONNECT = 154, /* VAR_UDP_CONNECT */ - YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 155, /* VAR_UNBLOCK_LAN_ZONES */ - YYSYMBOL_VAR_INSECURE_LAN_ZONES = 156, /* VAR_INSECURE_LAN_ZONES */ - YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 157, /* VAR_INFRA_CACHE_MIN_RTT */ - YYSYMBOL_VAR_INFRA_KEEP_PROBING = 158, /* VAR_INFRA_KEEP_PROBING */ - YYSYMBOL_VAR_DNS64_PREFIX = 159, /* VAR_DNS64_PREFIX */ - YYSYMBOL_VAR_DNS64_SYNTHALL = 160, /* VAR_DNS64_SYNTHALL */ - YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 161, /* VAR_DNS64_IGNORE_AAAA */ - YYSYMBOL_VAR_DNSTAP = 162, /* VAR_DNSTAP */ - YYSYMBOL_VAR_DNSTAP_ENABLE = 163, /* VAR_DNSTAP_ENABLE */ - YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 164, /* VAR_DNSTAP_SOCKET_PATH */ - YYSYMBOL_VAR_DNSTAP_IP = 165, /* VAR_DNSTAP_IP */ - YYSYMBOL_VAR_DNSTAP_TLS = 166, /* VAR_DNSTAP_TLS */ - YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 167, /* VAR_DNSTAP_TLS_SERVER_NAME */ - YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 168, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 169, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 170, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 171, /* VAR_DNSTAP_SEND_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 172, /* VAR_DNSTAP_SEND_VERSION */ - YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 173, /* VAR_DNSTAP_BIDIRECTIONAL */ - YYSYMBOL_VAR_DNSTAP_IDENTITY = 174, /* VAR_DNSTAP_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_VERSION = 175, /* VAR_DNSTAP_VERSION */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 176, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 177, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 178, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 179, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_RESPONSE_IP_TAG = 182, /* VAR_RESPONSE_IP_TAG */ - YYSYMBOL_VAR_RESPONSE_IP = 183, /* VAR_RESPONSE_IP */ - YYSYMBOL_VAR_RESPONSE_IP_DATA = 184, /* VAR_RESPONSE_IP_DATA */ - YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 185, /* VAR_HARDEN_ALGO_DOWNGRADE */ - YYSYMBOL_VAR_IP_TRANSPARENT = 186, /* VAR_IP_TRANSPARENT */ - YYSYMBOL_VAR_IP_DSCP = 187, /* VAR_IP_DSCP */ - YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 188, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - YYSYMBOL_VAR_IP_RATELIMIT = 189, /* VAR_IP_RATELIMIT */ - YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 190, /* VAR_IP_RATELIMIT_SLABS */ - YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 191, /* VAR_IP_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT = 192, /* VAR_RATELIMIT */ - YYSYMBOL_VAR_RATELIMIT_SLABS = 193, /* VAR_RATELIMIT_SLABS */ - YYSYMBOL_VAR_RATELIMIT_SIZE = 194, /* VAR_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 195, /* VAR_RATELIMIT_FOR_DOMAIN */ - YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 196, /* VAR_RATELIMIT_BELOW_DOMAIN */ - YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 197, /* VAR_IP_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_RATELIMIT_FACTOR = 198, /* VAR_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 199, /* VAR_SEND_CLIENT_SUBNET */ - YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 200, /* VAR_CLIENT_SUBNET_ZONE */ - YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 201, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 202, /* VAR_CLIENT_SUBNET_OPCODE */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 203, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 204, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 205, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 206, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 207, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 208, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - YYSYMBOL_VAR_CAPS_WHITELIST = 209, /* VAR_CAPS_WHITELIST */ - YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 210, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 211, /* VAR_PERMIT_SMALL_HOLDDOWN */ - YYSYMBOL_VAR_QNAME_MINIMISATION = 212, /* VAR_QNAME_MINIMISATION */ - YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 213, /* VAR_QNAME_MINIMISATION_STRICT */ - YYSYMBOL_VAR_IP_FREEBIND = 214, /* VAR_IP_FREEBIND */ - YYSYMBOL_VAR_DEFINE_TAG = 215, /* VAR_DEFINE_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_TAG = 216, /* VAR_LOCAL_ZONE_TAG */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 217, /* VAR_ACCESS_CONTROL_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 218, /* VAR_LOCAL_ZONE_OVERRIDE */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 219, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 220, /* VAR_ACCESS_CONTROL_TAG_DATA */ - YYSYMBOL_VAR_VIEW = 221, /* VAR_VIEW */ - YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 222, /* VAR_ACCESS_CONTROL_VIEW */ - YYSYMBOL_VAR_VIEW_FIRST = 223, /* VAR_VIEW_FIRST */ - YYSYMBOL_VAR_SERVE_EXPIRED = 224, /* VAR_SERVE_EXPIRED */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 225, /* VAR_SERVE_EXPIRED_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 226, /* VAR_SERVE_EXPIRED_TTL_RESET */ - YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 227, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 228, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 229, /* VAR_SERVE_ORIGINAL_TTL */ - YYSYMBOL_VAR_FAKE_DSA = 230, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 231, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 232, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 233, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 234, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 235, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 236, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 237, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 238, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 239, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 240, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 241, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 242, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 243, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 244, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 245, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 246, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 248, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 250, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 251, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 252, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 253, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 254, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 255, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 256, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 257, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 258, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 259, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 260, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 261, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 262, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 263, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 264, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 265, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 266, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 267, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 268, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 269, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 270, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 271, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 272, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 273, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 274, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 275, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 276, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 277, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 278, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 279, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 280, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 281, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 282, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 283, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 284, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 285, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 286, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 287, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 288, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 289, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 290, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 291, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 292, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 293, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 294, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 295, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 296, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 297, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 298, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 299, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 300, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 301, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 302, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 303, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 304, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 305, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 306, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 307, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 308, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 309, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 310, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 311, /* $accept */ - YYSYMBOL_toplevelvars = 312, /* toplevelvars */ - YYSYMBOL_toplevelvar = 313, /* toplevelvar */ - YYSYMBOL_force_toplevel = 314, /* force_toplevel */ - YYSYMBOL_serverstart = 315, /* serverstart */ - YYSYMBOL_contents_server = 316, /* contents_server */ - YYSYMBOL_content_server = 317, /* content_server */ - YYSYMBOL_stubstart = 318, /* stubstart */ - YYSYMBOL_contents_stub = 319, /* contents_stub */ - YYSYMBOL_content_stub = 320, /* content_stub */ - YYSYMBOL_forwardstart = 321, /* forwardstart */ - YYSYMBOL_contents_forward = 322, /* contents_forward */ - YYSYMBOL_content_forward = 323, /* content_forward */ - YYSYMBOL_viewstart = 324, /* viewstart */ - YYSYMBOL_contents_view = 325, /* contents_view */ - YYSYMBOL_content_view = 326, /* content_view */ - YYSYMBOL_authstart = 327, /* authstart */ - YYSYMBOL_contents_auth = 328, /* contents_auth */ - YYSYMBOL_content_auth = 329, /* content_auth */ - YYSYMBOL_rpz_tag = 330, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 331, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 332, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 333, /* rpz_log */ - YYSYMBOL_rpz_log_name = 334, /* rpz_log_name */ - YYSYMBOL_rpzstart = 335, /* rpzstart */ - YYSYMBOL_contents_rpz = 336, /* contents_rpz */ - YYSYMBOL_content_rpz = 337, /* content_rpz */ - YYSYMBOL_server_num_threads = 338, /* server_num_threads */ - YYSYMBOL_server_verbosity = 339, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 340, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 341, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 342, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 343, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 344, /* server_shm_key */ - YYSYMBOL_server_port = 345, /* server_port */ - YYSYMBOL_server_send_client_subnet = 346, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 347, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 348, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 349, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 350, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 351, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 352, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 353, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 354, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 355, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 356, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 357, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 358, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 359, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 360, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 361, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 362, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 363, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 364, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 365, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 366, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 367, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 368, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 369, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 370, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 371, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 372, /* server_tcp_idle_timeout */ - YYSYMBOL_server_tcp_keepalive = 373, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 374, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 375, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 376, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 377, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 378, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 379, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 380, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 381, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 382, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 383, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 384, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 385, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 386, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 387, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 388, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 389, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 390, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 391, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 392, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 393, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 394, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 395, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 396, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 397, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 398, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 399, /* server_log_queries */ - YYSYMBOL_server_log_replies = 400, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 401, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 402, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 403, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 404, /* server_chroot */ - YYSYMBOL_server_username = 405, /* server_username */ - YYSYMBOL_server_directory = 406, /* server_directory */ - YYSYMBOL_server_logfile = 407, /* server_logfile */ - YYSYMBOL_server_pidfile = 408, /* server_pidfile */ - YYSYMBOL_server_root_hints = 409, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 410, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 411, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 412, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 413, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 414, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 415, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 416, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 417, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 418, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 419, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 420, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 421, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 422, /* server_identity */ - YYSYMBOL_server_version = 423, /* server_version */ - YYSYMBOL_server_nsid = 424, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 425, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 426, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 427, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 428, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 429, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 430, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 431, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 432, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 433, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 434, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 435, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 436, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 437, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 438, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 439, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 440, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 441, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 442, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 443, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 444, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 445, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 446, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 447, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 448, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 449, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 450, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 451, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 452, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 453, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 454, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 455, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 456, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 457, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 458, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 459, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 460, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 461, /* server_private_address */ - YYSYMBOL_server_private_domain = 462, /* server_private_domain */ - YYSYMBOL_server_prefetch = 463, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 464, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 465, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 466, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 467, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 468, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 469, /* server_access_control */ - YYSYMBOL_server_module_conf = 470, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 471, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 472, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 473, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 474, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 475, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 476, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 477, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 478, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 479, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 480, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 481, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 482, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 483, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 484, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 485, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 486, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 487, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 488, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 489, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 490, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 491, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 492, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 493, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 494, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 495, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 496, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 497, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 498, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 499, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 500, /* server_local_zone */ - YYSYMBOL_server_local_data = 501, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 502, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 503, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 504, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 505, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 506, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 507, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 508, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 509, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 510, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 511, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 512, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 513, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 514, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 515, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 516, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 517, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 518, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 519, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 520, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 521, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 522, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 523, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 524, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 525, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 526, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 527, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 528, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 529, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 530, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 531, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 532, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 533, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 534, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 535, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 536, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 537, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 538, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 539, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 540, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 541, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 542, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 543, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 544, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 545, /* stub_name */ - YYSYMBOL_stub_host = 546, /* stub_host */ - YYSYMBOL_stub_addr = 547, /* stub_addr */ - YYSYMBOL_stub_first = 548, /* stub_first */ - YYSYMBOL_stub_no_cache = 549, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 550, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 551, /* stub_prime */ - YYSYMBOL_forward_name = 552, /* forward_name */ - YYSYMBOL_forward_host = 553, /* forward_host */ - YYSYMBOL_forward_addr = 554, /* forward_addr */ - YYSYMBOL_forward_first = 555, /* forward_first */ - YYSYMBOL_forward_no_cache = 556, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 557, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 558, /* auth_name */ - YYSYMBOL_auth_zonefile = 559, /* auth_zonefile */ - YYSYMBOL_auth_master = 560, /* auth_master */ - YYSYMBOL_auth_url = 561, /* auth_url */ - YYSYMBOL_auth_allow_notify = 562, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_reject_absence = 563, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 564, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 565, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 566, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 567, /* view_name */ - YYSYMBOL_view_local_zone = 568, /* view_local_zone */ - YYSYMBOL_view_response_ip = 569, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 570, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 571, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 572, /* view_local_data_ptr */ - YYSYMBOL_view_first = 573, /* view_first */ - YYSYMBOL_rcstart = 574, /* rcstart */ - YYSYMBOL_contents_rc = 575, /* contents_rc */ - YYSYMBOL_content_rc = 576, /* content_rc */ - YYSYMBOL_rc_control_enable = 577, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 578, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 579, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 580, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 581, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 582, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 583, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 584, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 585, /* dtstart */ - YYSYMBOL_contents_dt = 586, /* contents_dt */ - YYSYMBOL_content_dt = 587, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 588, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 589, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 590, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 591, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 592, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 593, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 594, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 595, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 596, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 597, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 598, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 599, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 600, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 601, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 602, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 603, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 604, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 605, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 606, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 607, /* pythonstart */ - YYSYMBOL_contents_py = 608, /* contents_py */ - YYSYMBOL_content_py = 609, /* content_py */ - YYSYMBOL_py_script = 610, /* py_script */ - YYSYMBOL_dynlibstart = 611, /* dynlibstart */ - YYSYMBOL_contents_dl = 612, /* contents_dl */ - YYSYMBOL_content_dl = 613, /* content_dl */ - YYSYMBOL_dl_file = 614, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 615, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 616, /* server_log_identity */ - YYSYMBOL_server_response_ip = 617, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 618, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 619, /* dnscstart */ - YYSYMBOL_contents_dnsc = 620, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 621, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 622, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 623, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 624, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 625, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 626, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 627, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 628, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 629, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 630, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 631, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 632, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 633, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 634, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 635, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 636, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 637, /* redis_server_host */ - YYSYMBOL_redis_server_port = 638, /* redis_server_port */ - YYSYMBOL_redis_timeout = 639, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 640, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 641, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 642, /* ipsetstart */ - YYSYMBOL_contents_ipset = 643, /* contents_ipset */ - YYSYMBOL_content_ipset = 644, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 645, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 646 /* ipset_name_v6 */ + YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105, /* VAR_TCP_REUSE_TIMEOUT */ + YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES */ + YYSYMBOL_VAR_EXTENDED_STATISTICS = 107, /* VAR_EXTENDED_STATISTICS */ + YYSYMBOL_VAR_LOCAL_DATA_PTR = 108, /* VAR_LOCAL_DATA_PTR */ + YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109, /* VAR_JOSTLE_TIMEOUT */ + YYSYMBOL_VAR_STUB_PRIME = 110, /* VAR_STUB_PRIME */ + YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD */ + YYSYMBOL_VAR_LOG_TIME_ASCII = 112, /* VAR_LOG_TIME_ASCII */ + YYSYMBOL_VAR_DOMAIN_INSECURE = 113, /* VAR_DOMAIN_INSECURE */ + YYSYMBOL_VAR_PYTHON = 114, /* VAR_PYTHON */ + YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ + YYSYMBOL_VAR_CACHE_MIN_TTL = 118, /* VAR_CACHE_MIN_TTL */ + YYSYMBOL_VAR_VAL_LOG_LEVEL = 119, /* VAR_VAL_LOG_LEVEL */ + YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 120, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_KEEP_MISSING = 121, /* VAR_KEEP_MISSING */ + YYSYMBOL_VAR_ADD_HOLDDOWN = 122, /* VAR_ADD_HOLDDOWN */ + YYSYMBOL_VAR_DEL_HOLDDOWN = 123, /* VAR_DEL_HOLDDOWN */ + YYSYMBOL_VAR_SO_RCVBUF = 124, /* VAR_SO_RCVBUF */ + YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 125, /* VAR_EDNS_BUFFER_SIZE */ + YYSYMBOL_VAR_PREFETCH = 126, /* VAR_PREFETCH */ + YYSYMBOL_VAR_PREFETCH_KEY = 127, /* VAR_PREFETCH_KEY */ + YYSYMBOL_VAR_SO_SNDBUF = 128, /* VAR_SO_SNDBUF */ + YYSYMBOL_VAR_SO_REUSEPORT = 129, /* VAR_SO_REUSEPORT */ + YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 130, /* VAR_HARDEN_BELOW_NXDOMAIN */ + YYSYMBOL_VAR_IGNORE_CD_FLAG = 131, /* VAR_IGNORE_CD_FLAG */ + YYSYMBOL_VAR_LOG_QUERIES = 132, /* VAR_LOG_QUERIES */ + YYSYMBOL_VAR_LOG_REPLIES = 133, /* VAR_LOG_REPLIES */ + YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 134, /* VAR_LOG_LOCAL_ACTIONS */ + YYSYMBOL_VAR_TCP_UPSTREAM = 135, /* VAR_TCP_UPSTREAM */ + YYSYMBOL_VAR_SSL_UPSTREAM = 136, /* VAR_SSL_UPSTREAM */ + YYSYMBOL_VAR_SSL_SERVICE_KEY = 137, /* VAR_SSL_SERVICE_KEY */ + YYSYMBOL_VAR_SSL_SERVICE_PEM = 138, /* VAR_SSL_SERVICE_PEM */ + YYSYMBOL_VAR_SSL_PORT = 139, /* VAR_SSL_PORT */ + YYSYMBOL_VAR_FORWARD_FIRST = 140, /* VAR_FORWARD_FIRST */ + YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 141, /* VAR_STUB_SSL_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 142, /* VAR_FORWARD_SSL_UPSTREAM */ + YYSYMBOL_VAR_TLS_CERT_BUNDLE = 143, /* VAR_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_HTTPS_PORT = 144, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 145, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 146, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 147, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 148, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 149, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 150, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 151, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 152, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 153, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 154, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 155, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 156, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 157, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 158, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 159, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 160, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 161, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 162, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 163, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 164, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 165, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 166, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 167, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 168, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 169, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 170, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 171, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 172, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 173, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 174, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 175, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 176, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 177, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 178, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 179, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 184, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 185, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 186, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 187, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 188, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 189, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 190, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 191, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 192, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 193, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 194, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 195, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 196, /* VAR_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 197, /* VAR_RATELIMIT_FOR_DOMAIN */ + YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 198, /* VAR_RATELIMIT_BELOW_DOMAIN */ + YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 199, /* VAR_IP_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_RATELIMIT_FACTOR = 200, /* VAR_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 201, /* VAR_SEND_CLIENT_SUBNET */ + YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 202, /* VAR_CLIENT_SUBNET_ZONE */ + YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 203, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 204, /* VAR_CLIENT_SUBNET_OPCODE */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 205, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 206, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 207, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 208, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 209, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 210, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + YYSYMBOL_VAR_CAPS_WHITELIST = 211, /* VAR_CAPS_WHITELIST */ + YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 212, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 213, /* VAR_PERMIT_SMALL_HOLDDOWN */ + YYSYMBOL_VAR_QNAME_MINIMISATION = 214, /* VAR_QNAME_MINIMISATION */ + YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 215, /* VAR_QNAME_MINIMISATION_STRICT */ + YYSYMBOL_VAR_IP_FREEBIND = 216, /* VAR_IP_FREEBIND */ + YYSYMBOL_VAR_DEFINE_TAG = 217, /* VAR_DEFINE_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_TAG = 218, /* VAR_LOCAL_ZONE_TAG */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 219, /* VAR_ACCESS_CONTROL_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 220, /* VAR_LOCAL_ZONE_OVERRIDE */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 221, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 222, /* VAR_ACCESS_CONTROL_TAG_DATA */ + YYSYMBOL_VAR_VIEW = 223, /* VAR_VIEW */ + YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 224, /* VAR_ACCESS_CONTROL_VIEW */ + YYSYMBOL_VAR_VIEW_FIRST = 225, /* VAR_VIEW_FIRST */ + YYSYMBOL_VAR_SERVE_EXPIRED = 226, /* VAR_SERVE_EXPIRED */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 227, /* VAR_SERVE_EXPIRED_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 228, /* VAR_SERVE_EXPIRED_TTL_RESET */ + YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 229, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 230, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 231, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 232, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 233, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 234, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 235, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 236, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 237, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 238, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 239, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 240, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 241, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 242, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 243, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 244, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 245, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 246, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 247, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 248, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 249, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 250, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 251, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 252, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 253, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 254, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 255, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 256, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 257, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 258, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 259, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 260, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 261, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 262, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 263, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 264, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 265, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 266, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 267, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 268, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 269, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 270, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 271, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 272, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 273, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 274, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 275, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 276, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 277, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 278, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 279, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 280, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 281, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 282, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 283, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 284, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 285, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 286, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 287, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 288, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 289, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 290, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 291, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 292, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 293, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 294, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 295, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 296, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 297, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 298, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 299, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 300, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 301, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 302, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 303, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 304, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 305, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 306, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 307, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 308, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 309, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 310, /* VAR_NSID */ + YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 311, /* VAR_ZONEMD_PERMISSIVE_MODE */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 312, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 313, /* $accept */ + YYSYMBOL_toplevelvars = 314, /* toplevelvars */ + YYSYMBOL_toplevelvar = 315, /* toplevelvar */ + YYSYMBOL_force_toplevel = 316, /* force_toplevel */ + YYSYMBOL_serverstart = 317, /* serverstart */ + YYSYMBOL_contents_server = 318, /* contents_server */ + YYSYMBOL_content_server = 319, /* content_server */ + YYSYMBOL_stubstart = 320, /* stubstart */ + YYSYMBOL_contents_stub = 321, /* contents_stub */ + YYSYMBOL_content_stub = 322, /* content_stub */ + YYSYMBOL_forwardstart = 323, /* forwardstart */ + YYSYMBOL_contents_forward = 324, /* contents_forward */ + YYSYMBOL_content_forward = 325, /* content_forward */ + YYSYMBOL_viewstart = 326, /* viewstart */ + YYSYMBOL_contents_view = 327, /* contents_view */ + YYSYMBOL_content_view = 328, /* content_view */ + YYSYMBOL_authstart = 329, /* authstart */ + YYSYMBOL_contents_auth = 330, /* contents_auth */ + YYSYMBOL_content_auth = 331, /* content_auth */ + YYSYMBOL_rpz_tag = 332, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 333, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 334, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 335, /* rpz_log */ + YYSYMBOL_rpz_log_name = 336, /* rpz_log_name */ + YYSYMBOL_rpzstart = 337, /* rpzstart */ + YYSYMBOL_contents_rpz = 338, /* contents_rpz */ + YYSYMBOL_content_rpz = 339, /* content_rpz */ + YYSYMBOL_server_num_threads = 340, /* server_num_threads */ + YYSYMBOL_server_verbosity = 341, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 342, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 343, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 344, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 345, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 346, /* server_shm_key */ + YYSYMBOL_server_port = 347, /* server_port */ + YYSYMBOL_server_send_client_subnet = 348, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 349, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 350, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 351, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 352, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 353, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 354, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 355, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 356, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 357, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 358, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 359, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 360, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 361, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 362, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 363, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 364, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 365, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 366, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 367, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 368, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 369, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 370, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 371, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 372, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 373, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 374, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 375, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 376, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_keepalive = 377, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 378, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 379, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 380, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 381, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 382, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 383, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 384, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 385, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 386, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 387, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 388, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 389, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 390, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 391, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 392, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 393, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 394, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 395, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 396, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 397, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 398, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 399, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 400, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 401, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 402, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 403, /* server_log_queries */ + YYSYMBOL_server_log_replies = 404, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 405, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 406, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 407, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 408, /* server_chroot */ + YYSYMBOL_server_username = 409, /* server_username */ + YYSYMBOL_server_directory = 410, /* server_directory */ + YYSYMBOL_server_logfile = 411, /* server_logfile */ + YYSYMBOL_server_pidfile = 412, /* server_pidfile */ + YYSYMBOL_server_root_hints = 413, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 414, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 415, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 416, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 417, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 418, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 419, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 420, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 421, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 422, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 423, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 424, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 425, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 426, /* server_identity */ + YYSYMBOL_server_version = 427, /* server_version */ + YYSYMBOL_server_nsid = 428, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 429, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 430, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 431, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 432, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 433, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 434, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 435, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 436, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 437, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 438, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 439, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 440, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 441, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 442, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 443, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 444, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 445, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 446, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 447, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 448, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 449, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 450, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 451, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 452, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 453, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 454, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 455, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 456, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 457, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 458, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 459, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 460, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 461, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 462, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 463, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 464, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 465, /* server_private_address */ + YYSYMBOL_server_private_domain = 466, /* server_private_domain */ + YYSYMBOL_server_prefetch = 467, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 468, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 469, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 470, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 471, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 472, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 473, /* server_access_control */ + YYSYMBOL_server_module_conf = 474, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 475, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 476, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 477, /* server_val_sig_skew_max */ + YYSYMBOL_server_cache_max_ttl = 478, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 479, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 480, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 481, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 482, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 483, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 484, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 485, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 486, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 487, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 488, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 489, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 490, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 491, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 492, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 493, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 494, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 495, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 496, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 497, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 498, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 499, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 500, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 501, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 502, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 503, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 504, /* server_local_zone */ + YYSYMBOL_server_local_data = 505, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 506, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 507, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 508, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 509, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 510, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 511, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 512, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 513, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 514, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 515, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 516, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 517, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 518, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 519, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 520, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 521, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 522, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 523, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 524, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 525, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 526, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 527, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 528, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 529, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 530, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 531, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 532, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 533, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 534, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 535, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 536, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 537, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 538, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 539, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 540, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 541, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 542, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 543, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 544, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 545, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 546, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 547, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 548, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 549, /* stub_name */ + YYSYMBOL_stub_host = 550, /* stub_host */ + YYSYMBOL_stub_addr = 551, /* stub_addr */ + YYSYMBOL_stub_first = 552, /* stub_first */ + YYSYMBOL_stub_no_cache = 553, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 554, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 555, /* stub_prime */ + YYSYMBOL_forward_name = 556, /* forward_name */ + YYSYMBOL_forward_host = 557, /* forward_host */ + YYSYMBOL_forward_addr = 558, /* forward_addr */ + YYSYMBOL_forward_first = 559, /* forward_first */ + YYSYMBOL_forward_no_cache = 560, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 561, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 562, /* auth_name */ + YYSYMBOL_auth_zonefile = 563, /* auth_zonefile */ + YYSYMBOL_auth_master = 564, /* auth_master */ + YYSYMBOL_auth_url = 565, /* auth_url */ + YYSYMBOL_auth_allow_notify = 566, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_reject_absence = 567, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 568, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 569, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 570, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 571, /* view_name */ + YYSYMBOL_view_local_zone = 572, /* view_local_zone */ + YYSYMBOL_view_response_ip = 573, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 574, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 575, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 576, /* view_local_data_ptr */ + YYSYMBOL_view_first = 577, /* view_first */ + YYSYMBOL_rcstart = 578, /* rcstart */ + YYSYMBOL_contents_rc = 579, /* contents_rc */ + YYSYMBOL_content_rc = 580, /* content_rc */ + YYSYMBOL_rc_control_enable = 581, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 582, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 583, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 584, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 585, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 586, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 587, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 588, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 589, /* dtstart */ + YYSYMBOL_contents_dt = 590, /* contents_dt */ + YYSYMBOL_content_dt = 591, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 592, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 593, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 594, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 595, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 596, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 597, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 598, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 599, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 600, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 601, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 602, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 603, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 604, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 605, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 606, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 607, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 608, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 609, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 610, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 611, /* pythonstart */ + YYSYMBOL_contents_py = 612, /* contents_py */ + YYSYMBOL_content_py = 613, /* content_py */ + YYSYMBOL_py_script = 614, /* py_script */ + YYSYMBOL_dynlibstart = 615, /* dynlibstart */ + YYSYMBOL_contents_dl = 616, /* contents_dl */ + YYSYMBOL_content_dl = 617, /* content_dl */ + YYSYMBOL_dl_file = 618, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 619, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 620, /* server_log_identity */ + YYSYMBOL_server_response_ip = 621, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 622, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 623, /* dnscstart */ + YYSYMBOL_contents_dnsc = 624, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 625, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 626, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 627, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 628, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 629, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 630, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 631, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 632, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 633, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 634, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 635, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 636, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 637, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 638, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 639, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 640, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 641, /* redis_server_host */ + YYSYMBOL_redis_server_port = 642, /* redis_server_port */ + YYSYMBOL_redis_timeout = 643, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 644, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 645, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 646, /* ipsetstart */ + YYSYMBOL_contents_ipset = 647, /* contents_ipset */ + YYSYMBOL_content_ipset = 648, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 649, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 650 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1480,6 +818,18 @@ typedef int_least16_t yytype_int16; typedef short yytype_int16; #endif +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -1577,9 +927,9 @@ typedef int yy_state_fast_t; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -1746,18 +1096,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 657 +#define YYLAST 661 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 311 +#define YYNTOKENS 313 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 336 +#define YYNNTS 338 /* YYNRULES -- Number of rules. */ -#define YYNRULES 648 +#define YYNRULES 652 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 963 +#define YYNSTATES 969 -#define YYMAXUTOK 565 +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 567 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1827,7 +1178,7 @@ static const yytype_int16 yytranslate[] = 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 + 305, 306, 307, 308, 309, 310, 311, 312 }; #if YYDEBUG @@ -1857,48 +1208,49 @@ static const yytype_int16 yyrline[] = 289, 289, 289, 290, 290, 291, 292, 292, 293, 293, 294, 294, 295, 295, 296, 296, 296, 297, 297, 297, 298, 298, 298, 299, 299, 300, 300, 301, 301, 302, - 302, 303, 303, 304, 306, 318, 319, 320, 320, 320, - 320, 320, 321, 321, 323, 335, 336, 337, 337, 337, - 337, 338, 338, 340, 354, 355, 356, 356, 356, 356, - 357, 357, 357, 359, 377, 378, 379, 379, 379, 379, - 380, 380, 380, 381, 381, 384, 403, 420, 428, 438, - 446, 463, 464, 465, 465, 465, 465, 465, 466, 466, - 466, 467, 467, 469, 478, 487, 498, 507, 516, 525, - 536, 545, 557, 571, 586, 597, 614, 631, 648, 665, - 680, 695, 708, 723, 732, 741, 750, 759, 768, 777, - 786, 795, 804, 813, 822, 831, 840, 849, 862, 871, - 884, 893, 902, 911, 918, 925, 934, 941, 950, 958, - 965, 972, 980, 989, 997, 1013, 1021, 1029, 1037, 1045, - 1053, 1062, 1071, 1085, 1094, 1103, 1112, 1121, 1130, 1139, - 1146, 1153, 1179, 1187, 1194, 1201, 1208, 1215, 1223, 1231, - 1239, 1246, 1257, 1268, 1275, 1284, 1293, 1302, 1309, 1316, - 1332, 1340, 1348, 1358, 1368, 1378, 1392, 1400, 1413, 1424, - 1432, 1445, 1454, 1463, 1472, 1481, 1491, 1501, 1509, 1522, - 1531, 1539, 1548, 1556, 1569, 1578, 1588, 1595, 1605, 1615, - 1625, 1635, 1645, 1655, 1665, 1675, 1682, 1689, 1696, 1705, - 1714, 1723, 1732, 1739, 1749, 1769, 1776, 1794, 1807, 1820, - 1829, 1838, 1847, 1856, 1866, 1876, 1887, 1896, 1905, 1914, - 1923, 1932, 1941, 1950, 1963, 1976, 1985, 1992, 2001, 2010, - 2019, 2028, 2037, 2045, 2058, 2066, 2111, 2118, 2133, 2143, - 2153, 2160, 2167, 2174, 2183, 2191, 2205, 2226, 2247, 2259, - 2271, 2283, 2292, 2313, 2323, 2332, 2340, 2348, 2361, 2374, - 2389, 2404, 2413, 2422, 2428, 2437, 2446, 2456, 2466, 2476, - 2485, 2495, 2504, 2517, 2530, 2542, 2556, 2568, 2582, 2591, - 2603, 2613, 2620, 2627, 2636, 2645, 2655, 2665, 2675, 2682, - 2689, 2698, 2707, 2717, 2727, 2734, 2741, 2748, 2756, 2766, - 2776, 2786, 2796, 2806, 2845, 2855, 2863, 2871, 2886, 2895, - 2900, 2901, 2902, 2902, 2902, 2903, 2903, 2903, 2904, 2904, - 2906, 2916, 2925, 2932, 2939, 2946, 2953, 2960, 2967, 2972, - 2973, 2974, 2974, 2974, 2975, 2975, 2975, 2976, 2977, 2977, - 2978, 2978, 2979, 2979, 2980, 2981, 2982, 2983, 2984, 2985, - 2987, 2996, 3006, 3013, 3020, 3029, 3036, 3043, 3050, 3057, - 3066, 3075, 3082, 3089, 3099, 3109, 3119, 3129, 3139, 3149, - 3154, 3155, 3156, 3158, 3164, 3169, 3170, 3171, 3173, 3179, - 3189, 3196, 3205, 3213, 3218, 3219, 3221, 3221, 3221, 3222, - 3222, 3223, 3224, 3225, 3226, 3227, 3229, 3239, 3248, 3255, - 3264, 3271, 3280, 3288, 3301, 3309, 3322, 3327, 3328, 3329, - 3329, 3330, 3330, 3330, 3331, 3333, 3345, 3357, 3369, 3384, - 3397, 3410, 3421, 3426, 3427, 3428, 3428, 3430, 3445 + 302, 303, 303, 304, 304, 305, 308, 320, 321, 322, + 322, 322, 322, 322, 323, 323, 325, 337, 338, 339, + 339, 339, 339, 340, 340, 342, 356, 357, 358, 358, + 358, 358, 359, 359, 359, 361, 379, 380, 381, 381, + 381, 381, 382, 382, 382, 383, 383, 386, 405, 422, + 430, 440, 448, 465, 466, 467, 467, 467, 467, 467, + 468, 468, 468, 469, 469, 471, 480, 489, 500, 509, + 518, 527, 538, 547, 559, 573, 588, 599, 616, 633, + 650, 667, 682, 697, 710, 725, 734, 743, 752, 761, + 770, 779, 788, 797, 806, 815, 824, 833, 842, 851, + 864, 875, 886, 895, 908, 917, 926, 935, 942, 949, + 958, 965, 974, 982, 989, 996, 1004, 1013, 1021, 1037, + 1045, 1053, 1061, 1069, 1077, 1086, 1095, 1109, 1118, 1127, + 1136, 1145, 1154, 1163, 1170, 1177, 1203, 1211, 1218, 1225, + 1232, 1239, 1247, 1255, 1263, 1270, 1281, 1292, 1299, 1308, + 1317, 1326, 1333, 1340, 1356, 1364, 1372, 1382, 1392, 1402, + 1416, 1424, 1437, 1448, 1456, 1469, 1478, 1487, 1496, 1505, + 1515, 1525, 1533, 1546, 1555, 1563, 1572, 1580, 1593, 1602, + 1612, 1619, 1629, 1639, 1649, 1659, 1669, 1679, 1689, 1699, + 1706, 1713, 1720, 1729, 1738, 1747, 1756, 1763, 1773, 1793, + 1800, 1818, 1831, 1844, 1853, 1862, 1871, 1880, 1890, 1900, + 1911, 1920, 1929, 1938, 1947, 1956, 1965, 1974, 1987, 2000, + 2009, 2016, 2025, 2034, 2043, 2052, 2061, 2069, 2082, 2090, + 2135, 2142, 2157, 2167, 2177, 2184, 2191, 2198, 2207, 2215, + 2229, 2250, 2271, 2283, 2295, 2307, 2316, 2337, 2347, 2356, + 2364, 2372, 2385, 2398, 2413, 2428, 2437, 2446, 2452, 2461, + 2470, 2480, 2490, 2500, 2509, 2519, 2528, 2541, 2554, 2566, + 2580, 2592, 2606, 2615, 2627, 2637, 2644, 2651, 2660, 2669, + 2679, 2689, 2699, 2706, 2713, 2722, 2731, 2741, 2751, 2758, + 2765, 2772, 2780, 2790, 2800, 2810, 2820, 2830, 2869, 2879, + 2887, 2895, 2910, 2919, 2924, 2925, 2926, 2926, 2926, 2927, + 2927, 2927, 2928, 2928, 2930, 2940, 2949, 2956, 2963, 2970, + 2977, 2984, 2991, 2996, 2997, 2998, 2998, 2998, 2999, 2999, + 2999, 3000, 3001, 3001, 3002, 3002, 3003, 3003, 3004, 3005, + 3006, 3007, 3008, 3009, 3011, 3020, 3030, 3037, 3044, 3053, + 3060, 3067, 3074, 3081, 3090, 3099, 3106, 3113, 3123, 3133, + 3143, 3153, 3163, 3173, 3178, 3179, 3180, 3182, 3188, 3193, + 3194, 3195, 3197, 3203, 3213, 3220, 3229, 3237, 3242, 3243, + 3245, 3245, 3245, 3246, 3246, 3247, 3248, 3249, 3250, 3251, + 3253, 3263, 3272, 3279, 3288, 3295, 3304, 3312, 3325, 3333, + 3346, 3351, 3352, 3353, 3353, 3354, 3354, 3354, 3355, 3357, + 3369, 3381, 3393, 3408, 3421, 3434, 3445, 3450, 3451, 3452, + 3452, 3454, 3469 }; #endif @@ -1947,32 +1299,34 @@ static const char *const yytname[] = "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE", "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", - "VAR_CONTROL_USE_CERT", "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", - "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", - "VAR_LOG_TIME_ASCII", "VAR_DOMAIN_INSECURE", "VAR_PYTHON", - "VAR_PYTHON_SCRIPT", "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", - "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", - "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", - "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", - "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", - "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", - "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", - "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", - "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", - "VAR_FORWARD_SSL_UPSTREAM", "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", - "VAR_HTTP_ENDPOINT", "VAR_HTTP_MAX_STREAMS", - "VAR_HTTP_QUERY_BUFFER_SIZE", "VAR_HTTP_RESPONSE_BUFFER_SIZE", - "VAR_HTTP_NODELAY", "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", - "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", - "VAR_DELAY_CLOSE", "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", - "VAR_INSECURE_LAN_ZONES", "VAR_INFRA_CACHE_MIN_RTT", - "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL", - "VAR_DNS64_IGNORE_AAAA", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE", - "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP", "VAR_DNSTAP_TLS", - "VAR_DNSTAP_TLS_SERVER_NAME", "VAR_DNSTAP_TLS_CERT_BUNDLE", - "VAR_DNSTAP_TLS_CLIENT_KEY_FILE", "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", - "VAR_DNSTAP_SEND_IDENTITY", "VAR_DNSTAP_SEND_VERSION", - "VAR_DNSTAP_BIDIRECTIONAL", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", + "VAR_CONTROL_USE_CERT", "VAR_TCP_REUSE_TIMEOUT", + "VAR_MAX_REUSE_TCP_QUERIES", "VAR_EXTENDED_STATISTICS", + "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", + "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", + "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", + "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL", + "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", + "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", + "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY", + "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN", + "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_LOG_REPLIES", + "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", + "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", + "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", + "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT", + "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE", + "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY", + "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", + "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", + "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES", + "VAR_INFRA_CACHE_MIN_RTT", "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", + "VAR_DNS64_SYNTHALL", "VAR_DNS64_IGNORE_AAAA", "VAR_DNSTAP", + "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP", + "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME", + "VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE", + "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY", + "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_BIDIRECTIONAL", + "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", @@ -2050,7 +1404,8 @@ static const char *const yytname[] = "server_interface_automatic", "server_do_ip4", "server_do_ip6", "server_do_udp", "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6", "server_tcp_mss", "server_outgoing_tcp_mss", - "server_tcp_idle_timeout", "server_tcp_keepalive", + "server_tcp_idle_timeout", "server_max_reuse_tcp_queries", + "server_tcp_reuse_timeout", "server_tcp_keepalive", "server_tcp_keepalive_timeout", "server_tcp_upstream", "server_udp_upstream_without_downstream", "server_ssl_upstream", "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", @@ -2208,11 +1563,11 @@ static const yytype_int16 yytoknum[] = 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565 + 565, 566, 567 }; #endif -#define YYPACT_NINF (-299) +#define YYPACT_NINF (-298) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -2226,103 +1581,103 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -299, 0, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 292, -39, -35, -43, -44, -28, -67, -93, - -108, -298, -221, -222, -292, 3, 4, 5, 6, 37, - 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 54, 55, 56, 57, 58, 79, - 80, 81, 82, 83, 84, 85, 87, 88, 89, 91, - 92, 94, 96, 97, 98, 99, 101, 103, 104, 105, + -298, 0, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, 294, -43, -38, -42, -44, -28, -29, -147, + -109, -297, -190, -188, -289, 3, 4, 27, 28, 31, + 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, + 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 87, 89, 90, 91, + 93, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 132, 133, 134, 135, 136, 137, + 126, 127, 128, 129, 130, 131, 132, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, + 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 212, 213, 214, 216, 222, 223, 224, 225, 226, - 228, 229, 231, 232, 237, 238, 240, 241, 242, 244, - 245, 246, 247, 248, 249, 250, 252, 253, 254, 255, - 257, 258, 259, 266, 267, 268, 269, 270, 271, 272, + 210, 211, 212, 214, 215, 216, 218, 224, 225, 226, + 227, 228, 230, 231, 233, 239, 240, 241, 242, 243, + 244, 246, 247, 248, 249, 250, 251, 252, 254, 255, + 256, 257, 259, 260, 261, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 285, 286, 287, 289, 290, 291, 293, 327, 328, - 329, 330, 334, 335, 336, 378, 379, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 380, 381, 382, 383, 384, 385, 386, -299, -299, -299, - -299, -299, -299, -299, -299, 390, 394, 395, 420, 421, - 422, -299, -299, -299, -299, -299, -299, -299, 431, 444, - 445, 446, 447, 448, 449, -299, -299, -299, -299, -299, - -299, -299, -299, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 459, 460, 461, 462, 463, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 503, 505, - 522, 523, 524, 525, 526, 527, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 528, 529, 530, 531, 532, - 543, 544, 545, 546, 547, 548, 549, 551, 552, 553, - 554, 555, 556, 557, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 560, -299, -299, 563, -299, -299, - 566, 567, 576, 577, 578, 580, 581, 582, 583, 584, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, 585, 586, 587, 592, 593, 594, -299, -299, -299, - -299, -299, -299, -299, 595, 596, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 597, - 598, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 599, 600, 601, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 602, 603, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 604, - 605, 606, 607, 608, 609, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 610, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 611, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 612, -299, -299, 613, 614, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, 615, 616, 617, -299, -299, -299, -299, -299, -299, - -299, -299, -299 + 283, 284, 285, 287, 288, 289, 291, 292, 293, 295, + 329, 330, 331, 332, 336, 337, 338, 380, 381, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, 382, 383, 384, 385, 386, 387, + 388, -298, -298, -298, -298, -298, -298, -298, -298, 394, + 398, 399, 424, 425, 426, -298, -298, -298, -298, -298, + -298, -298, 435, 448, 449, 450, 451, 452, 453, -298, + -298, -298, -298, -298, -298, -298, -298, 454, 455, 456, + 457, 458, 459, 460, 461, 462, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, 463, 464, 465, 466, + 467, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, 507, 509, 526, 527, 528, 529, 530, 531, + -298, -298, -298, -298, -298, -298, -298, -298, -298, 532, + 533, 534, 535, 536, 547, 548, 549, 550, 551, 552, + 553, 555, 556, 557, 558, 559, 560, 561, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, 564, -298, + -298, 567, -298, -298, 570, 571, 580, 581, 582, 584, + 585, 586, 587, 588, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, 589, 590, 591, 596, 597, + 598, -298, -298, -298, -298, -298, -298, -298, 599, 600, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, 601, 602, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, 603, 604, 605, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, 606, 607, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, 608, 609, 610, 611, 612, + 613, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, 614, -298, -298, -298, -298, -298, -298, + -298, -298, -298, 615, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, 616, -298, -298, 617, 618, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, 619, 620, 621, + -298, -298, -298, -298, -298, -298, -298, -298, -298 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -2330,10 +1685,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 234, 244, 529, 589, 548, - 253, 603, 626, 263, 642, 280, 594, 3, 17, 21, - 236, 246, 255, 265, 282, 531, 550, 591, 596, 605, - 628, 644, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 236, 246, 533, 593, 552, + 255, 607, 630, 265, 646, 282, 598, 3, 17, 21, + 238, 248, 257, 267, 284, 535, 554, 595, 600, 609, + 632, 648, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2355,156 +1710,156 @@ static const yytype_int16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 22, 23, - 86, 89, 98, 200, 201, 24, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 37, 77, 25, 90, - 91, 48, 70, 85, 26, 27, 30, 31, 28, 29, - 32, 33, 34, 35, 36, 121, 212, 122, 124, 125, - 126, 214, 219, 215, 226, 227, 228, 229, 127, 128, - 129, 130, 131, 132, 133, 196, 87, 76, 102, 119, - 120, 224, 221, 123, 38, 39, 40, 41, 42, 78, - 92, 93, 108, 64, 74, 65, 204, 205, 103, 58, - 59, 203, 60, 61, 232, 112, 116, 137, 147, 174, - 150, 225, 113, 71, 43, 44, 45, 100, 138, 139, - 140, 141, 46, 47, 49, 50, 52, 53, 51, 145, - 151, 54, 55, 56, 62, 81, 117, 95, 146, 88, - 170, 96, 97, 114, 115, 222, 101, 57, 79, 82, - 63, 66, 104, 105, 80, 171, 106, 67, 68, 69, - 213, 118, 188, 189, 190, 191, 192, 193, 194, 202, - 107, 75, 233, 109, 110, 111, 172, 72, 73, 94, - 83, 84, 99, 134, 135, 223, 136, 142, 143, 144, - 175, 176, 178, 180, 181, 179, 182, 197, 148, 149, - 154, 155, 152, 153, 156, 157, 159, 158, 216, 218, - 217, 173, 183, 184, 185, 186, 187, 206, 208, 207, - 209, 210, 211, 230, 231, 177, 195, 198, 199, 220, - 0, 0, 0, 0, 0, 0, 0, 235, 237, 238, - 239, 241, 242, 243, 240, 0, 0, 0, 0, 0, - 0, 245, 247, 248, 249, 250, 251, 252, 0, 0, - 0, 0, 0, 0, 0, 254, 256, 257, 260, 261, - 258, 262, 259, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 264, 266, 267, 268, 269, 273, 274, 270, - 271, 272, 0, 0, 0, 0, 0, 285, 289, 290, - 291, 292, 281, 283, 284, 286, 287, 288, 0, 0, - 0, 0, 0, 0, 0, 0, 530, 532, 534, 533, - 539, 535, 536, 537, 538, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 22, 23, 86, 89, 98, 200, 201, 24, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 37, 77, + 25, 90, 91, 48, 70, 85, 26, 27, 30, 31, + 28, 29, 32, 33, 34, 234, 235, 35, 36, 121, + 212, 122, 124, 125, 126, 214, 219, 215, 226, 227, + 228, 229, 127, 128, 129, 130, 131, 132, 133, 196, + 87, 76, 102, 119, 120, 224, 221, 123, 38, 39, + 40, 41, 42, 78, 92, 93, 108, 64, 74, 65, + 204, 205, 103, 58, 59, 203, 60, 61, 232, 112, + 116, 137, 147, 174, 150, 225, 113, 71, 43, 44, + 45, 100, 138, 139, 140, 141, 46, 47, 49, 50, + 52, 53, 51, 145, 151, 54, 55, 56, 62, 81, + 117, 95, 146, 88, 170, 96, 97, 114, 115, 222, + 101, 57, 79, 82, 63, 66, 104, 105, 80, 171, + 106, 67, 68, 69, 213, 118, 188, 189, 190, 191, + 192, 193, 194, 202, 107, 75, 233, 109, 110, 111, + 172, 72, 73, 94, 83, 84, 99, 134, 135, 223, + 136, 142, 143, 144, 175, 176, 178, 180, 181, 179, + 182, 197, 148, 149, 154, 155, 152, 153, 156, 157, + 159, 158, 216, 218, 217, 173, 183, 184, 185, 186, + 187, 206, 208, 207, 209, 210, 211, 230, 231, 177, + 195, 198, 199, 220, 0, 0, 0, 0, 0, 0, + 0, 237, 239, 240, 241, 243, 244, 245, 242, 0, + 0, 0, 0, 0, 0, 247, 249, 250, 251, 252, + 253, 254, 0, 0, 0, 0, 0, 0, 0, 256, + 258, 259, 262, 263, 260, 264, 261, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 268, 269, 270, + 271, 275, 276, 272, 273, 274, 0, 0, 0, 0, + 0, 287, 291, 292, 293, 294, 283, 285, 286, 288, + 289, 290, 0, 0, 0, 0, 0, 0, 0, 0, + 534, 536, 538, 537, 543, 539, 540, 541, 542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 549, 551, 553, 552, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 0, 590, 592, 0, 595, 597, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 604, 606, 607, 608, 610, 611, 609, 612, 613, 614, - 615, 0, 0, 0, 0, 0, 0, 627, 629, 630, - 631, 632, 633, 634, 0, 0, 643, 645, 646, 294, - 293, 300, 313, 311, 323, 319, 320, 324, 321, 322, - 325, 326, 327, 328, 329, 359, 360, 361, 362, 363, - 389, 390, 391, 397, 398, 316, 399, 400, 403, 401, - 402, 406, 407, 408, 422, 374, 375, 377, 378, 409, - 425, 368, 370, 426, 432, 433, 434, 317, 388, 452, - 453, 369, 446, 352, 312, 364, 423, 429, 410, 0, - 0, 456, 318, 295, 351, 414, 296, 314, 315, 365, - 366, 454, 412, 416, 417, 297, 457, 392, 421, 353, - 373, 427, 428, 431, 445, 367, 450, 448, 449, 380, - 387, 418, 419, 381, 382, 411, 436, 354, 355, 358, - 330, 332, 333, 334, 335, 336, 343, 344, 345, 346, - 347, 348, 349, 458, 459, 461, 393, 394, 395, 396, - 404, 405, 462, 463, 464, 0, 0, 0, 413, 383, - 385, 599, 473, 477, 475, 474, 478, 476, 0, 0, - 481, 482, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 415, 430, 451, 486, 487, 384, 465, 0, - 0, 0, 0, 0, 0, 437, 438, 439, 440, 441, - 442, 443, 444, 600, 376, 371, 435, 350, 298, 299, - 372, 488, 489, 490, 491, 492, 494, 493, 495, 496, - 497, 331, 338, 483, 485, 484, 337, 0, 357, 420, - 460, 356, 386, 339, 340, 342, 341, 0, 499, 379, - 447, 500, 501, 502, 506, 505, 503, 504, 507, 508, - 509, 510, 512, 511, 522, 0, 526, 527, 0, 0, - 528, 513, 520, 514, 515, 516, 519, 521, 517, 518, - 275, 276, 277, 278, 279, 540, 542, 541, 544, 545, - 546, 547, 543, 570, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 571, 581, 582, 583, 584, 585, 586, - 587, 588, 593, 598, 616, 617, 618, 621, 619, 620, - 622, 623, 624, 625, 635, 636, 637, 638, 639, 640, - 647, 648, 424, 455, 472, 601, 602, 479, 480, 466, - 467, 0, 0, 0, 471, 641, 498, 523, 524, 525, - 470, 468, 469 + 0, 0, 0, 0, 0, 0, 0, 0, 553, 555, + 557, 556, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 0, 594, + 596, 0, 599, 601, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 608, 610, 611, 612, 614, 615, + 613, 616, 617, 618, 619, 0, 0, 0, 0, 0, + 0, 631, 633, 634, 635, 636, 637, 638, 0, 0, + 647, 649, 650, 296, 295, 302, 315, 313, 325, 321, + 322, 326, 323, 324, 327, 328, 329, 332, 333, 363, + 364, 365, 366, 367, 393, 394, 395, 401, 402, 318, + 403, 404, 407, 405, 406, 410, 411, 412, 426, 378, + 379, 381, 382, 413, 429, 372, 374, 430, 436, 437, + 438, 319, 392, 456, 457, 373, 450, 356, 314, 368, + 427, 433, 414, 0, 0, 460, 320, 297, 355, 418, + 298, 316, 317, 369, 370, 458, 416, 420, 421, 331, + 330, 299, 461, 396, 425, 357, 377, 431, 432, 435, + 449, 371, 454, 452, 453, 384, 391, 422, 423, 385, + 386, 415, 440, 358, 359, 362, 334, 336, 337, 338, + 339, 340, 347, 348, 349, 350, 351, 352, 353, 462, + 463, 465, 397, 398, 399, 400, 408, 409, 466, 467, + 468, 0, 0, 0, 417, 387, 389, 603, 477, 481, + 479, 478, 482, 480, 0, 0, 485, 486, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 419, 434, + 455, 490, 491, 388, 469, 0, 0, 0, 0, 0, + 0, 441, 442, 443, 444, 445, 446, 447, 448, 604, + 380, 375, 439, 354, 300, 301, 376, 492, 493, 494, + 495, 496, 498, 497, 499, 500, 501, 335, 342, 487, + 489, 488, 341, 0, 361, 424, 464, 360, 390, 343, + 344, 346, 345, 0, 503, 383, 451, 504, 505, 506, + 510, 509, 507, 508, 511, 512, 513, 514, 516, 515, + 526, 0, 530, 531, 0, 0, 532, 517, 524, 518, + 519, 520, 523, 525, 521, 522, 277, 278, 279, 280, + 281, 544, 546, 545, 548, 549, 550, 551, 547, 574, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 575, + 585, 586, 587, 588, 589, 590, 591, 592, 597, 602, + 620, 621, 622, 625, 623, 624, 626, 627, 628, 629, + 639, 640, 641, 642, 643, 644, 651, 652, 428, 459, + 476, 605, 606, 483, 484, 470, 471, 0, 0, 0, + 475, 645, 502, 527, 528, 529, 474, 472, 473 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 265, 591, 618, - 619, 620, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299 + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, 267, + 595, 622, 623, 624, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, + -298, -298, -298, -298, -298, -298, -298, -298 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 257, 20, 33, 477, - 21, 34, 491, 22, 35, 505, 23, 36, 522, 537, - 538, 539, 540, 541, 24, 37, 542, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 478, 479, 480, 481, 482, 483, - 484, 492, 493, 494, 495, 496, 497, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 506, 507, 508, 509, - 510, 511, 512, 25, 38, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 26, 39, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 27, 40, 605, 606, - 28, 41, 608, 609, 465, 466, 467, 468, 29, 42, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 30, 43, 637, 638, 639, 640, 641, 642, 643, - 469, 31, 44, 646, 647, 648 + 0, 1, 17, 18, 19, 32, 259, 20, 33, 481, + 21, 34, 495, 22, 35, 509, 23, 36, 526, 541, + 542, 543, 544, 545, 24, 37, 546, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 482, 483, 484, 485, + 486, 487, 488, 496, 497, 498, 499, 500, 501, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 510, 511, + 512, 513, 514, 515, 516, 25, 38, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 26, 39, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 27, 40, + 609, 610, 28, 41, 612, 613, 469, 470, 471, 472, + 29, 42, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 30, 43, 641, 642, 643, 644, 645, + 646, 647, 473, 31, 44, 650, 651, 652 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -2512,153 +1867,155 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 513, 498, 644, 645, 604, 470, 607, 471, 472, - 485, 3, 4, 649, 650, 651, 652, 513, 486, 487, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 548, 549, 550, 551, 552, 553, 554, 555, 499, 500, - 631, 632, 633, 634, 635, 636, 5, 653, 654, 655, - 656, 657, 6, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 501, 668, 669, 670, 671, 672, 473, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 673, - 674, 675, 676, 677, 678, 679, 7, 680, 681, 682, - 474, 683, 684, 488, 685, 489, 686, 687, 688, 689, - 475, 690, 8, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 502, 503, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 9, 738, 739, 740, 741, 742, 743, 744, - 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, - 504, 755, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 794, 10, 795, 796, 797, 514, 798, 515, 516, 517, - 518, 519, 799, 800, 801, 802, 803, 520, 804, 805, - 11, 806, 807, 515, 516, 517, 476, 808, 809, 490, - 810, 811, 812, 520, 813, 814, 815, 816, 817, 818, - 819, 12, 820, 821, 822, 823, 521, 824, 825, 826, - 13, 532, 533, 534, 535, 536, 827, 828, 829, 830, - 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, - 841, 842, 843, 844, 14, 845, 846, 847, 15, 848, - 849, 850, 543, 851, 16, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 852, 853, 854, - 855, 77, 78, 79, 856, 857, 858, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 859, 860, - 861, 862, 863, 864, 865, 866, 867, 121, 122, 123, - 868, 124, 125, 126, 869, 870, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 871, 872, 873, 151, 152, 153, 154, 155, 156, 157, - 158, 874, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 875, 876, 877, 878, 879, 880, - 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 895, 210, 896, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 897, 898, 899, 900, 901, 902, 903, 904, - 905, 906, 907, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 908, 909, 910, 911, 912, 913, 914, - 237, 915, 916, 917, 918, 919, 920, 921, 238, 239, - 922, 240, 241, 923, 242, 243, 924, 925, 244, 245, - 246, 247, 248, 249, 250, 251, 926, 927, 928, 252, - 929, 930, 931, 932, 933, 934, 935, 936, 253, 254, - 255, 256, 937, 938, 939, 940, 941, 942, 943, 944, - 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 544, 0, + 2, 517, 474, 502, 475, 476, 608, 489, 648, 649, + 611, 3, 4, 653, 654, 490, 491, 517, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 655, 656, 503, + 504, 657, 658, 659, 660, 661, 5, 662, 663, 664, + 665, 666, 6, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 667, 668, 669, 505, 477, 552, 553, + 554, 555, 556, 557, 558, 559, 635, 636, 637, 638, + 639, 640, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 7, 684, 478, 685, + 686, 687, 492, 688, 493, 689, 690, 691, 479, 692, + 693, 694, 695, 696, 8, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 506, 507, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, + 740, 741, 742, 743, 9, 744, 745, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, + 759, 760, 761, 508, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, + 798, 799, 800, 10, 801, 802, 803, 518, 804, 519, + 520, 521, 522, 523, 805, 806, 807, 808, 809, 524, + 810, 811, 11, 812, 480, 519, 520, 521, 494, 813, + 814, 815, 816, 817, 818, 524, 819, 820, 821, 822, + 823, 824, 825, 12, 826, 827, 828, 829, 525, 830, + 831, 832, 13, 536, 537, 538, 539, 540, 833, 834, + 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, + 845, 846, 847, 848, 849, 850, 14, 851, 852, 853, + 15, 854, 855, 856, 547, 857, 16, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 858, + 859, 860, 861, 77, 78, 79, 862, 863, 864, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 865, 866, 867, 868, 869, 870, 871, 872, 873, 121, + 122, 123, 124, 125, 874, 126, 127, 128, 875, 876, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 877, 878, 879, 153, 154, 155, + 156, 157, 158, 159, 160, 880, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 881, 882, + 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, + 893, 894, 895, 896, 897, 898, 899, 900, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 901, 212, 902, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 903, 904, 905, 906, + 907, 908, 909, 910, 911, 912, 913, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 914, 915, 916, + 917, 918, 919, 920, 239, 921, 922, 923, 924, 925, + 926, 927, 240, 241, 928, 242, 243, 929, 244, 245, + 930, 931, 246, 247, 248, 249, 250, 251, 252, 253, + 932, 933, 934, 254, 935, 936, 937, 938, 939, 940, + 941, 942, 255, 256, 257, 258, 943, 944, 945, 946, + 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, + 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, + 967, 968, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 545, 546, 547 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, + 550, 551 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 295, 296, 113, 45, 305, 47, 48, - 45, 11, 12, 10, 10, 10, 10, 45, 53, 54, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 97, 98, 99, 100, 101, 102, 103, 104, 81, 82, - 262, 263, 264, 265, 266, 267, 46, 10, 10, 10, - 10, 10, 52, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 106, 10, 10, 10, 10, 10, 108, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 10, - 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, - 139, 10, 10, 138, 10, 140, 10, 10, 10, 10, - 149, 10, 112, 10, 10, 10, 10, 10, 10, 10, + 0, 45, 45, 45, 47, 48, 115, 45, 297, 298, + 307, 11, 12, 10, 10, 53, 54, 45, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 10, 10, 81, + 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, + 10, 10, 52, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 10, 10, 10, 108, 110, 97, 98, + 99, 100, 101, 102, 103, 104, 264, 265, 266, 267, + 268, 269, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 96, 10, 141, 10, + 10, 10, 140, 10, 142, 10, 10, 10, 151, 10, + 10, 10, 10, 10, 114, 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, - 183, 184, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 185, 186, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 162, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 164, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 223, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 225, 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, 221, 10, 10, 10, 269, 10, 271, 272, 273, - 274, 275, 10, 10, 10, 10, 10, 281, 10, 10, - 240, 10, 10, 271, 272, 273, 285, 10, 10, 284, - 10, 10, 10, 281, 10, 10, 10, 10, 10, 10, - 10, 261, 10, 10, 10, 10, 310, 10, 10, 10, - 270, 299, 300, 301, 302, 303, 10, 10, 10, 10, + 10, 10, 10, 223, 10, 10, 10, 271, 10, 273, + 274, 275, 276, 277, 10, 10, 10, 10, 10, 283, + 10, 10, 242, 10, 287, 273, 274, 275, 286, 10, + 10, 10, 10, 10, 10, 283, 10, 10, 10, 10, + 10, 10, 10, 263, 10, 10, 10, 10, 312, 10, + 10, 10, 272, 301, 302, 303, 304, 305, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 294, 10, 10, 10, 298, 10, - 10, 10, 37, 10, 304, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 10, 10, 10, - 10, 49, 50, 51, 10, 10, 10, 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, 91, 92, 93, 94, 95, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 105, 106, 107, - 10, 109, 110, 111, 10, 10, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 10, 10, 10, 141, 142, 143, 144, 145, 146, 147, - 148, 10, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 296, 10, 10, 10, + 300, 10, 10, 10, 37, 10, 306, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 10, + 10, 10, 10, 49, 50, 51, 10, 10, 10, 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, 91, 92, 93, 94, 95, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 105, + 106, 107, 108, 109, 10, 111, 112, 113, 10, 10, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 10, 10, 10, 143, 144, 145, + 146, 147, 148, 149, 150, 10, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 10, 222, 10, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 10, 10, 10, 10, 10, 10, 10, - 268, 10, 10, 10, 10, 10, 10, 10, 276, 277, - 10, 279, 280, 10, 282, 283, 10, 10, 286, 287, - 288, 289, 290, 291, 292, 293, 10, 10, 10, 297, - 10, 10, 10, 10, 10, 10, 10, 10, 306, 307, - 308, 309, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 10, 224, 10, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 10, 10, 10, + 10, 10, 10, 10, 270, 10, 10, 10, 10, 10, + 10, 10, 278, 279, 10, 281, 282, 10, 284, 285, + 10, 10, 288, 289, 290, 291, 292, 293, 294, 295, + 10, 10, 10, 299, 10, 10, 10, 10, 10, 10, + 10, 10, 308, 309, 310, 311, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 37, -1, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 37, 37, 37 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 312, 0, 11, 12, 46, 52, 96, 112, 162, - 221, 240, 261, 270, 294, 298, 304, 313, 314, 315, - 318, 321, 324, 327, 335, 574, 585, 607, 611, 619, - 632, 642, 316, 319, 322, 325, 328, 336, 575, 586, - 608, 612, 620, 633, 643, 13, 14, 15, 16, 17, + 0, 314, 0, 11, 12, 46, 52, 96, 114, 164, + 223, 242, 263, 272, 296, 300, 306, 315, 316, 317, + 320, 323, 326, 329, 337, 578, 589, 611, 615, 623, + 636, 646, 318, 321, 324, 327, 330, 338, 579, 590, + 612, 616, 624, 637, 647, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@ -2666,20 +2023,20 @@ static const yytype_int16 yystos[] = 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, 105, 106, 107, 109, 110, 111, 114, 115, 116, + 95, 105, 106, 107, 108, 109, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 141, 142, 143, 144, 145, 146, 147, 148, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 137, 138, 139, 143, 144, 145, 146, 147, 148, 149, + 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 268, 276, 277, - 279, 280, 282, 283, 286, 287, 288, 289, 290, 291, - 292, 293, 297, 306, 307, 308, 309, 317, 338, 339, + 221, 222, 224, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 270, + 278, 279, 281, 282, 284, 285, 288, 289, 290, 291, + 292, 293, 294, 295, 299, 308, 309, 310, 311, 319, 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, @@ -2700,25 +2057,26 @@ static const yytype_int16 yystos[] = 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 615, 616, 617, 618, 641, - 45, 47, 48, 108, 139, 149, 285, 320, 545, 546, - 547, 548, 549, 550, 551, 45, 53, 54, 138, 140, - 284, 323, 552, 553, 554, 555, 556, 557, 45, 81, - 82, 106, 183, 184, 223, 326, 567, 568, 569, 570, - 571, 572, 573, 45, 269, 271, 272, 273, 274, 275, - 281, 310, 329, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 299, 300, 301, 302, 303, 330, 331, 332, - 333, 334, 337, 558, 559, 560, 561, 562, 97, 98, - 99, 100, 101, 102, 103, 104, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 587, 588, 589, 590, 591, 592, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 619, + 620, 621, 622, 645, 45, 47, 48, 110, 141, 151, + 287, 322, 549, 550, 551, 552, 553, 554, 555, 45, + 53, 54, 140, 142, 286, 325, 556, 557, 558, 559, + 560, 561, 45, 81, 82, 108, 185, 186, 225, 328, + 571, 572, 573, 574, 575, 576, 577, 45, 271, 273, + 274, 275, 276, 277, 283, 312, 331, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 301, 302, 303, 304, + 305, 332, 333, 334, 335, 336, 339, 562, 563, 564, + 565, 566, 97, 98, 99, 100, 101, 102, 103, 104, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 113, 609, 610, 305, 613, 614, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 262, 263, 264, 265, 266, 267, 634, 635, 636, - 637, 638, 639, 640, 295, 296, 644, 645, 646, 10, + 603, 604, 605, 606, 607, 608, 609, 610, 115, 613, + 614, 307, 617, 618, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 264, 265, 266, 267, 268, + 269, 638, 639, 640, 641, 642, 643, 644, 297, 298, + 648, 649, 650, 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, @@ -2749,43 +2107,42 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 311, 312, 312, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 314, 315, - 316, 316, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 318, 319, 319, 320, 320, 320, - 320, 320, 320, 320, 321, 322, 322, 323, 323, 323, - 323, 323, 323, 324, 325, 325, 326, 326, 326, 326, - 326, 326, 326, 327, 328, 328, 329, 329, 329, 329, - 329, 329, 329, 329, 329, 330, 331, 332, 333, 334, - 335, 336, 336, 337, 337, 337, 337, 337, 337, 337, - 337, 337, 337, 338, 339, 340, 341, 342, 343, 344, + 0, 313, 314, 314, 315, 315, 315, 315, 315, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 316, 317, + 318, 318, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 320, 321, 321, 322, + 322, 322, 322, 322, 322, 322, 323, 324, 324, 325, + 325, 325, 325, 325, 325, 326, 327, 327, 328, 328, + 328, 328, 328, 328, 328, 329, 330, 330, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 332, 333, 334, + 335, 336, 337, 338, 338, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 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, @@ -2809,18 +2166,19 @@ static const yytype_int16 yyr1[] = 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 575, 576, 576, 576, 576, 576, 576, 576, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 586, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 575, 576, 577, 578, 579, 579, 580, 580, 580, 580, + 580, 580, 580, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 590, 591, 591, 591, 591, 591, + 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, + 591, 591, 591, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 608, 609, 610, 611, 612, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 620, 621, 621, 621, 621, - 621, 621, 621, 621, 621, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 633, 634, - 634, 634, 634, 634, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 643, 644, 644, 645, 646 + 608, 609, 610, 611, 612, 612, 613, 614, 615, 616, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 624, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 637, 638, 638, 638, 638, 638, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 647, 648, + 648, 649, 650 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2849,13 +2207,13 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, @@ -2868,29 +2226,30 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 3, 4, 4, - 4, 3, 3, 2, 2, 2, 2, 2, 2, 3, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 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, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 4, 4, 4, 3, 3, 2, 2, 2, + 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, + 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 2, 1, 2, + 0, 1, 2, 2, 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 2, 0, 1, 2, 1, 2, 0, 1, 2, 2, - 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, - 2, 3, 1, 2, 0, 1, 1, 2, 2 + 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 3, 1, 2, 0, 1, + 1, 2, 2 }; @@ -2969,7 +2328,7 @@ yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT @@ -2977,7 +2336,7 @@ yy_symbol_value_print (FILE *yyo, YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3091,18 +2450,18 @@ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -3120,34 +2479,30 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize; + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The state stack. */ + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ + /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -3161,15 +2516,6 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -3370,24 +2716,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 198 "./util/configparser.y" + case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ +#line 198 "util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 3379 "util/configparser.c" +#line 2725 "util/configparser.c" break; - case 19: -#line 204 "./util/configparser.y" + case 19: /* serverstart: VAR_SERVER */ +#line 204 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 3387 "util/configparser.c" +#line 2733 "util/configparser.c" break; - case 234: -#line 307 "./util/configparser.y" + case 236: /* stubstart: VAR_STUB_ZONE */ +#line 309 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -3398,11 +2744,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3402 "util/configparser.c" +#line 2748 "util/configparser.c" break; - case 244: -#line 324 "./util/configparser.y" + case 246: /* forwardstart: VAR_FORWARD_ZONE */ +#line 326 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -3413,11 +2759,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3417 "util/configparser.c" +#line 2763 "util/configparser.c" break; - case 253: -#line 341 "./util/configparser.y" + case 255: /* viewstart: VAR_VIEW */ +#line 343 "util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -3430,11 +2776,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3434 "util/configparser.c" +#line 2780 "util/configparser.c" break; - case 263: -#line 360 "./util/configparser.y" + case 265: /* authstart: VAR_AUTH_ZONE */ +#line 362 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -3451,11 +2797,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3455 "util/configparser.c" +#line 2801 "util/configparser.c" break; - case 275: -#line 385 "./util/configparser.y" + case 277: /* rpz_tag: VAR_TAGS STRING_ARG */ +#line 387 "util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -3472,11 +2818,11 @@ yyreduce: } } -#line 3476 "util/configparser.c" +#line 2822 "util/configparser.c" break; - case 276: -#line 404 "./util/configparser.y" + case 278: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ +#line 406 "util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -3491,21 +2837,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 3495 "util/configparser.c" +#line 2841 "util/configparser.c" break; - case 277: -#line 421 "./util/configparser.y" + case 279: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ +#line 423 "util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 3505 "util/configparser.c" +#line 2851 "util/configparser.c" break; - case 278: -#line 429 "./util/configparser.y" + case 280: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ +#line 431 "util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3513,21 +2859,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3517 "util/configparser.c" +#line 2863 "util/configparser.c" break; - case 279: -#line 439 "./util/configparser.y" + case 281: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ +#line 441 "util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3527 "util/configparser.c" +#line 2873 "util/configparser.c" break; - case 280: -#line 447 "./util/configparser.y" + case 282: /* rpzstart: VAR_RPZ */ +#line 449 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -3543,11 +2889,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3547 "util/configparser.c" +#line 2893 "util/configparser.c" break; - case 293: -#line 470 "./util/configparser.y" + case 295: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ +#line 472 "util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3555,11 +2901,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 2905 "util/configparser.c" break; - case 294: -#line 479 "./util/configparser.y" + case 296: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ +#line 481 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3567,11 +2913,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3571 "util/configparser.c" +#line 2917 "util/configparser.c" break; - case 295: -#line 488 "./util/configparser.y" + case 297: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ +#line 490 "util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3581,11 +2927,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3585 "util/configparser.c" +#line 2931 "util/configparser.c" break; - case 296: -#line 499 "./util/configparser.y" + case 298: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ +#line 501 "util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3593,11 +2939,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3597 "util/configparser.c" +#line 2943 "util/configparser.c" break; - case 297: -#line 508 "./util/configparser.y" + case 299: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ +#line 510 "util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3605,11 +2951,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3609 "util/configparser.c" +#line 2955 "util/configparser.c" break; - case 298: -#line 517 "./util/configparser.y" + case 300: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ +#line 519 "util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3617,11 +2963,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3621 "util/configparser.c" +#line 2967 "util/configparser.c" break; - case 299: -#line 526 "./util/configparser.y" + case 301: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ +#line 528 "util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3631,11 +2977,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3635 "util/configparser.c" +#line 2981 "util/configparser.c" break; - case 300: -#line 537 "./util/configparser.y" + case 302: /* server_port: VAR_PORT STRING_ARG */ +#line 539 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3643,11 +2989,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3647 "util/configparser.c" +#line 2993 "util/configparser.c" break; - case 301: -#line 546 "./util/configparser.y" + case 303: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ +#line 548 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3658,11 +3004,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3662 "util/configparser.c" +#line 3008 "util/configparser.c" break; - case 302: -#line 558 "./util/configparser.y" + case 304: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ +#line 560 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3674,11 +3020,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3678 "util/configparser.c" +#line 3024 "util/configparser.c" break; - case 303: -#line 572 "./util/configparser.y" + case 305: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ +#line 574 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3692,11 +3038,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3696 "util/configparser.c" +#line 3042 "util/configparser.c" break; - case 304: -#line 587 "./util/configparser.y" + case 306: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ +#line 589 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3706,11 +3052,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3710 "util/configparser.c" +#line 3056 "util/configparser.c" break; - case 305: -#line 598 "./util/configparser.y" + case 307: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 600 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3726,11 +3072,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3730 "util/configparser.c" +#line 3076 "util/configparser.c" break; - case 306: -#line 615 "./util/configparser.y" + case 308: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 617 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3746,11 +3092,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3750 "util/configparser.c" +#line 3096 "util/configparser.c" break; - case 307: -#line 632 "./util/configparser.y" + case 309: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 634 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3766,11 +3112,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3770 "util/configparser.c" +#line 3116 "util/configparser.c" break; - case 308: -#line 649 "./util/configparser.y" + case 310: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 651 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3786,11 +3132,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3790 "util/configparser.c" +#line 3136 "util/configparser.c" break; - case 309: -#line 666 "./util/configparser.y" + case 311: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ +#line 668 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3804,11 +3150,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3808 "util/configparser.c" +#line 3154 "util/configparser.c" break; - case 310: -#line 681 "./util/configparser.y" + case 312: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ +#line 683 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3822,11 +3168,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3826 "util/configparser.c" +#line 3172 "util/configparser.c" break; - case 311: -#line 696 "./util/configparser.y" + case 313: /* server_interface: VAR_INTERFACE STRING_ARG */ +#line 698 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3838,11 +3184,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3842 "util/configparser.c" +#line 3188 "util/configparser.c" break; - case 312: -#line 709 "./util/configparser.y" + case 314: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ +#line 711 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3856,11 +3202,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3860 "util/configparser.c" +#line 3206 "util/configparser.c" break; - case 313: -#line 724 "./util/configparser.y" + case 315: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ +#line 726 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3868,11 +3214,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3872 "util/configparser.c" +#line 3218 "util/configparser.c" break; - case 314: -#line 733 "./util/configparser.y" + case 316: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ +#line 735 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3880,11 +3226,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3884 "util/configparser.c" +#line 3230 "util/configparser.c" break; - case 315: -#line 742 "./util/configparser.y" + case 317: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ +#line 744 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3892,11 +3238,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3896 "util/configparser.c" +#line 3242 "util/configparser.c" break; - case 316: -#line 751 "./util/configparser.y" + case 318: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ +#line 753 "util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3904,11 +3250,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3908 "util/configparser.c" +#line 3254 "util/configparser.c" break; - case 317: -#line 760 "./util/configparser.y" + case 319: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ +#line 762 "util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3916,11 +3262,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3920 "util/configparser.c" +#line 3266 "util/configparser.c" break; - case 318: -#line 769 "./util/configparser.y" + case 320: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ +#line 771 "util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3928,11 +3274,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3932 "util/configparser.c" +#line 3278 "util/configparser.c" break; - case 319: -#line 778 "./util/configparser.y" + case 321: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ +#line 780 "util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3940,11 +3286,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3944 "util/configparser.c" +#line 3290 "util/configparser.c" break; - case 320: -#line 787 "./util/configparser.y" + case 322: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ +#line 789 "util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3952,11 +3298,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3956 "util/configparser.c" +#line 3302 "util/configparser.c" break; - case 321: -#line 796 "./util/configparser.y" + case 323: /* server_do_udp: VAR_DO_UDP STRING_ARG */ +#line 798 "util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3964,11 +3310,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3968 "util/configparser.c" +#line 3314 "util/configparser.c" break; - case 322: -#line 805 "./util/configparser.y" + case 324: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ +#line 807 "util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3976,11 +3322,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3980 "util/configparser.c" +#line 3326 "util/configparser.c" break; - case 323: -#line 814 "./util/configparser.y" + case 325: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ +#line 816 "util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3988,11 +3334,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3992 "util/configparser.c" +#line 3338 "util/configparser.c" break; - case 324: -#line 823 "./util/configparser.y" + case 326: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ +#line 825 "util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4000,11 +3346,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4004 "util/configparser.c" +#line 3350 "util/configparser.c" break; - case 325: -#line 832 "./util/configparser.y" + case 327: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ +#line 834 "util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4012,11 +3358,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4016 "util/configparser.c" +#line 3362 "util/configparser.c" break; - case 326: -#line 841 "./util/configparser.y" + case 328: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ +#line 843 "util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4024,11 +3370,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4028 "util/configparser.c" +#line 3374 "util/configparser.c" break; - case 327: -#line 850 "./util/configparser.y" + case 329: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ +#line 852 "util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4040,11 +3386,39 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4044 "util/configparser.c" +#line 3390 "util/configparser.c" break; - case 328: -#line 863 "./util/configparser.y" + case 330: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ +#line 865 "util/configparser.y" + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3404 "util/configparser.c" + break; + + case 331: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ +#line 876 "util/configparser.y" + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[0].str)) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3418 "util/configparser.c" + break; + + case 332: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ +#line 887 "util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4052,11 +3426,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4056 "util/configparser.c" +#line 3430 "util/configparser.c" break; - case 329: -#line 872 "./util/configparser.y" + case 333: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ +#line 896 "util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4068,11 +3442,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4072 "util/configparser.c" +#line 3446 "util/configparser.c" break; - case 330: -#line 885 "./util/configparser.y" + case 334: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ +#line 909 "util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4080,11 +3454,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4084 "util/configparser.c" +#line 3458 "util/configparser.c" break; - case 331: -#line 894 "./util/configparser.y" + case 335: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ +#line 918 "util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4092,11 +3466,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4096 "util/configparser.c" +#line 3470 "util/configparser.c" break; - case 332: -#line 903 "./util/configparser.y" + case 336: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ +#line 927 "util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4104,31 +3478,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4108 "util/configparser.c" +#line 3482 "util/configparser.c" break; - case 333: -#line 912 "./util/configparser.y" + case 337: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ +#line 936 "util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 4118 "util/configparser.c" +#line 3492 "util/configparser.c" break; - case 334: -#line 919 "./util/configparser.y" + case 338: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ +#line 943 "util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 4128 "util/configparser.c" +#line 3502 "util/configparser.c" break; - case 335: -#line 926 "./util/configparser.y" + case 339: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ +#line 950 "util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4136,21 +3510,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4140 "util/configparser.c" +#line 3514 "util/configparser.c" break; - case 336: -#line 935 "./util/configparser.y" + case 340: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ +#line 959 "util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 4150 "util/configparser.c" +#line 3524 "util/configparser.c" break; - case 337: -#line 942 "./util/configparser.y" + case 341: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ +#line 966 "util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4158,53 +3532,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4162 "util/configparser.c" +#line 3536 "util/configparser.c" break; - case 338: -#line 951 "./util/configparser.y" + case 342: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ +#line 975 "util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4173 "util/configparser.c" +#line 3547 "util/configparser.c" break; - case 339: -#line 959 "./util/configparser.y" + case 343: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ +#line 983 "util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 4183 "util/configparser.c" +#line 3557 "util/configparser.c" break; - case 340: -#line 966 "./util/configparser.y" + case 344: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ +#line 990 "util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 4193 "util/configparser.c" +#line 3567 "util/configparser.c" break; - case 341: -#line 973 "./util/configparser.y" + case 345: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ +#line 997 "util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4204 "util/configparser.c" +#line 3578 "util/configparser.c" break; - case 342: -#line 981 "./util/configparser.y" + case 346: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ +#line 1005 "util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4212,11 +3586,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4216 "util/configparser.c" +#line 3590 "util/configparser.c" break; - case 343: -#line 990 "./util/configparser.y" + case 347: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ +#line 1014 "util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4224,11 +3598,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4228 "util/configparser.c" +#line 3602 "util/configparser.c" break; - case 344: -#line 998 "./util/configparser.y" + case 348: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ +#line 1022 "util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -4244,11 +3618,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 4248 "util/configparser.c" +#line 3622 "util/configparser.c" break; - case 345: -#line 1014 "./util/configparser.y" + case 349: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ +#line 1038 "util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4256,11 +3630,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4260 "util/configparser.c" +#line 3634 "util/configparser.c" break; - case 346: -#line 1022 "./util/configparser.y" + case 350: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ +#line 1046 "util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4268,11 +3642,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4272 "util/configparser.c" +#line 3646 "util/configparser.c" break; - case 347: -#line 1030 "./util/configparser.y" + case 351: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ +#line 1054 "util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4280,11 +3654,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4284 "util/configparser.c" +#line 3658 "util/configparser.c" break; - case 348: -#line 1038 "./util/configparser.y" + case 352: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ +#line 1062 "util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4292,11 +3666,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4296 "util/configparser.c" +#line 3670 "util/configparser.c" break; - case 349: -#line 1046 "./util/configparser.y" + case 353: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ +#line 1070 "util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4304,11 +3678,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4308 "util/configparser.c" +#line 3682 "util/configparser.c" break; - case 350: -#line 1054 "./util/configparser.y" + case 354: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ +#line 1078 "util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4316,11 +3690,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4320 "util/configparser.c" +#line 3694 "util/configparser.c" break; - case 351: -#line 1063 "./util/configparser.y" + case 355: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ +#line 1087 "util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4328,11 +3702,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4332 "util/configparser.c" +#line 3706 "util/configparser.c" break; - case 352: -#line 1072 "./util/configparser.y" + case 356: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ +#line 1096 "util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4345,11 +3719,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4349 "util/configparser.c" +#line 3723 "util/configparser.c" break; - case 353: -#line 1086 "./util/configparser.y" + case 357: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ +#line 1110 "util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4357,11 +3731,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4361 "util/configparser.c" +#line 3735 "util/configparser.c" break; - case 354: -#line 1095 "./util/configparser.y" + case 358: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ +#line 1119 "util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4369,11 +3743,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" +#line 3747 "util/configparser.c" break; - case 355: -#line 1104 "./util/configparser.y" + case 359: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ +#line 1128 "util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4381,11 +3755,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4385 "util/configparser.c" +#line 3759 "util/configparser.c" break; - case 356: -#line 1113 "./util/configparser.y" + case 360: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ +#line 1137 "util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4393,11 +3767,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4397 "util/configparser.c" +#line 3771 "util/configparser.c" break; - case 357: -#line 1122 "./util/configparser.y" + case 361: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ +#line 1146 "util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4405,11 +3779,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4409 "util/configparser.c" +#line 3783 "util/configparser.c" break; - case 358: -#line 1131 "./util/configparser.y" + case 362: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ +#line 1155 "util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4417,31 +3791,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4421 "util/configparser.c" +#line 3795 "util/configparser.c" break; - case 359: -#line 1140 "./util/configparser.y" + case 363: /* server_chroot: VAR_CHROOT STRING_ARG */ +#line 1164 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 4431 "util/configparser.c" +#line 3805 "util/configparser.c" break; - case 360: -#line 1147 "./util/configparser.y" + case 364: /* server_username: VAR_USERNAME STRING_ARG */ +#line 1171 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 4441 "util/configparser.c" +#line 3815 "util/configparser.c" break; - case 361: -#line 1154 "./util/configparser.y" + case 365: /* server_directory: VAR_DIRECTORY STRING_ARG */ +#line 1178 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -4466,105 +3840,105 @@ yyreduce: } } } -#line 4470 "util/configparser.c" +#line 3844 "util/configparser.c" break; - case 362: -#line 1180 "./util/configparser.y" + case 366: /* server_logfile: VAR_LOGFILE STRING_ARG */ +#line 1204 "util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 4481 "util/configparser.c" +#line 3855 "util/configparser.c" break; - case 363: -#line 1188 "./util/configparser.y" + case 367: /* server_pidfile: VAR_PIDFILE STRING_ARG */ +#line 1212 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 4491 "util/configparser.c" +#line 3865 "util/configparser.c" break; - case 364: -#line 1195 "./util/configparser.y" + case 368: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ +#line 1219 "util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4501 "util/configparser.c" +#line 3875 "util/configparser.c" break; - case 365: -#line 1202 "./util/configparser.y" + case 369: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ +#line 1226 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4511 "util/configparser.c" +#line 3885 "util/configparser.c" break; - case 366: -#line 1209 "./util/configparser.y" + case 370: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ +#line 1233 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4521 "util/configparser.c" +#line 3895 "util/configparser.c" break; - case 367: -#line 1216 "./util/configparser.y" + case 371: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1240 "util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4532 "util/configparser.c" +#line 3906 "util/configparser.c" break; - case 368: -#line 1224 "./util/configparser.y" + case 372: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1248 "util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4543 "util/configparser.c" +#line 3917 "util/configparser.c" break; - case 369: -#line 1232 "./util/configparser.y" + case 373: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ +#line 1256 "util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4554 "util/configparser.c" +#line 3928 "util/configparser.c" break; - case 370: -#line 1240 "./util/configparser.y" + case 374: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ +#line 1264 "util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4564 "util/configparser.c" +#line 3938 "util/configparser.c" break; - case 371: -#line 1247 "./util/configparser.y" + case 375: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ +#line 1271 "util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4574,11 +3948,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4578 "util/configparser.c" +#line 3952 "util/configparser.c" break; - case 372: -#line 1258 "./util/configparser.y" + case 376: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ +#line 1282 "util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4588,21 +3962,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4592 "util/configparser.c" +#line 3966 "util/configparser.c" break; - case 373: -#line 1269 "./util/configparser.y" + case 377: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ +#line 1293 "util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4602 "util/configparser.c" +#line 3976 "util/configparser.c" break; - case 374: -#line 1276 "./util/configparser.y" + case 378: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ +#line 1300 "util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4610,11 +3984,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4614 "util/configparser.c" +#line 3988 "util/configparser.c" break; - case 375: -#line 1285 "./util/configparser.y" + case 379: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ +#line 1309 "util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4622,11 +3996,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4626 "util/configparser.c" +#line 4000 "util/configparser.c" break; - case 376: -#line 1294 "./util/configparser.y" + case 380: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ +#line 1318 "util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4634,31 +4008,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4638 "util/configparser.c" +#line 4012 "util/configparser.c" break; - case 377: -#line 1303 "./util/configparser.y" + case 381: /* server_identity: VAR_IDENTITY STRING_ARG */ +#line 1327 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4648 "util/configparser.c" +#line 4022 "util/configparser.c" break; - case 378: -#line 1310 "./util/configparser.y" + case 382: /* server_version: VAR_VERSION STRING_ARG */ +#line 1334 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4658 "util/configparser.c" +#line 4032 "util/configparser.c" break; - case 379: -#line 1317 "./util/configparser.y" + case 383: /* server_nsid: VAR_NSID STRING_ARG */ +#line 1341 "util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4673,33 +4047,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4677 "util/configparser.c" +#line 4051 "util/configparser.c" break; - case 380: -#line 1333 "./util/configparser.y" + case 384: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ +#line 1357 "util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4688 "util/configparser.c" +#line 4062 "util/configparser.c" break; - case 381: -#line 1341 "./util/configparser.y" + case 385: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ +#line 1365 "util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 4073 "util/configparser.c" break; - case 382: -#line 1349 "./util/configparser.y" + case 386: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ +#line 1373 "util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4708,11 +4082,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4712 "util/configparser.c" +#line 4086 "util/configparser.c" break; - case 383: -#line 1359 "./util/configparser.y" + case 387: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ +#line 1383 "util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4721,11 +4095,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4725 "util/configparser.c" +#line 4099 "util/configparser.c" break; - case 384: -#line 1369 "./util/configparser.y" + case 388: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ +#line 1393 "util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4734,11 +4108,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4738 "util/configparser.c" +#line 4112 "util/configparser.c" break; - case 385: -#line 1379 "./util/configparser.y" + case 389: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ +#line 1403 "util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4751,22 +4125,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4755 "util/configparser.c" +#line 4129 "util/configparser.c" break; - case 386: -#line 1393 "./util/configparser.y" + case 390: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ +#line 1417 "util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4766 "util/configparser.c" +#line 4140 "util/configparser.c" break; - case 387: -#line 1401 "./util/configparser.y" + case 391: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ +#line 1425 "util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4778,11 +4152,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4782 "util/configparser.c" +#line 4156 "util/configparser.c" break; - case 388: -#line 1414 "./util/configparser.y" + case 392: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ +#line 1438 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4792,22 +4166,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4796 "util/configparser.c" +#line 4170 "util/configparser.c" break; - case 389: -#line 1425 "./util/configparser.y" + case 393: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ +#line 1449 "util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4807 "util/configparser.c" +#line 4181 "util/configparser.c" break; - case 390: -#line 1433 "./util/configparser.y" + case 394: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ +#line 1457 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4819,11 +4193,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4823 "util/configparser.c" +#line 4197 "util/configparser.c" break; - case 391: -#line 1446 "./util/configparser.y" + case 395: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ +#line 1470 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4831,11 +4205,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4835 "util/configparser.c" +#line 4209 "util/configparser.c" break; - case 392: -#line 1455 "./util/configparser.y" + case 396: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ +#line 1479 "util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4843,11 +4217,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4847 "util/configparser.c" +#line 4221 "util/configparser.c" break; - case 393: -#line 1464 "./util/configparser.y" + case 397: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ +#line 1488 "util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4855,11 +4229,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4859 "util/configparser.c" +#line 4233 "util/configparser.c" break; - case 394: -#line 1473 "./util/configparser.y" + case 398: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ +#line 1497 "util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4867,11 +4241,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4871 "util/configparser.c" +#line 4245 "util/configparser.c" break; - case 395: -#line 1482 "./util/configparser.y" + case 399: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ +#line 1506 "util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4880,11 +4254,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4884 "util/configparser.c" +#line 4258 "util/configparser.c" break; - case 396: -#line 1492 "./util/configparser.y" + case 400: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ +#line 1516 "util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4893,22 +4267,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4897 "util/configparser.c" +#line 4271 "util/configparser.c" break; - case 397: -#line 1502 "./util/configparser.y" + case 401: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ +#line 1526 "util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4908 "util/configparser.c" +#line 4282 "util/configparser.c" break; - case 398: -#line 1510 "./util/configparser.y" + case 402: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ +#line 1534 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4920,11 +4294,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4924 "util/configparser.c" +#line 4298 "util/configparser.c" break; - case 399: -#line 1523 "./util/configparser.y" + case 403: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ +#line 1547 "util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4932,22 +4306,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4936 "util/configparser.c" +#line 4310 "util/configparser.c" break; - case 400: -#line 1532 "./util/configparser.y" + case 404: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ +#line 1556 "util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4947 "util/configparser.c" +#line 4321 "util/configparser.c" break; - case 401: -#line 1540 "./util/configparser.y" + case 405: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ +#line 1564 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4955,22 +4329,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4959 "util/configparser.c" +#line 4333 "util/configparser.c" break; - case 402: -#line 1549 "./util/configparser.y" + case 406: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ +#line 1573 "util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4970 "util/configparser.c" +#line 4344 "util/configparser.c" break; - case 403: -#line 1557 "./util/configparser.y" + case 407: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ +#line 1581 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4982,11 +4356,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4986 "util/configparser.c" +#line 4360 "util/configparser.c" break; - case 404: -#line 1570 "./util/configparser.y" + case 408: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ +#line 1594 "util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4994,11 +4368,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4998 "util/configparser.c" +#line 4372 "util/configparser.c" break; - case 405: -#line 1579 "./util/configparser.y" + case 409: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ +#line 1603 "util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5007,21 +4381,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5011 "util/configparser.c" +#line 4385 "util/configparser.c" break; - case 406: -#line 1589 "./util/configparser.y" + case 410: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ +#line 1613 "util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 5021 "util/configparser.c" +#line 4395 "util/configparser.c" break; - case 407: -#line 1596 "./util/configparser.y" + case 411: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ +#line 1620 "util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5030,11 +4404,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5034 "util/configparser.c" +#line 4408 "util/configparser.c" break; - case 408: -#line 1606 "./util/configparser.y" + case 412: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ +#line 1630 "util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5043,11 +4417,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5047 "util/configparser.c" +#line 4421 "util/configparser.c" break; - case 409: -#line 1616 "./util/configparser.y" + case 413: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ +#line 1640 "util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5056,11 +4430,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5060 "util/configparser.c" +#line 4434 "util/configparser.c" break; - case 410: -#line 1626 "./util/configparser.y" + case 414: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ +#line 1650 "util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5069,11 +4443,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5073 "util/configparser.c" +#line 4447 "util/configparser.c" break; - case 411: -#line 1636 "./util/configparser.y" + case 415: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ +#line 1660 "util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5082,11 +4456,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5086 "util/configparser.c" +#line 4460 "util/configparser.c" break; - case 412: -#line 1646 "./util/configparser.y" + case 416: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ +#line 1670 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5095,11 +4469,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5099 "util/configparser.c" +#line 4473 "util/configparser.c" break; - case 413: -#line 1656 "./util/configparser.y" + case 417: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ +#line 1680 "util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5108,11 +4482,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5112 "util/configparser.c" +#line 4486 "util/configparser.c" break; - case 414: -#line 1666 "./util/configparser.y" + case 418: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ +#line 1690 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5121,41 +4495,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5125 "util/configparser.c" +#line 4499 "util/configparser.c" break; - case 415: -#line 1676 "./util/configparser.y" + case 419: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ +#line 1700 "util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5135 "util/configparser.c" +#line 4509 "util/configparser.c" break; - case 416: -#line 1683 "./util/configparser.y" + case 420: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ +#line 1707 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5145 "util/configparser.c" +#line 4519 "util/configparser.c" break; - case 417: -#line 1690 "./util/configparser.y" + case 421: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ +#line 1714 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5155 "util/configparser.c" +#line 4529 "util/configparser.c" break; - case 418: -#line 1697 "./util/configparser.y" + case 422: /* server_prefetch: VAR_PREFETCH STRING_ARG */ +#line 1721 "util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5163,11 +4537,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5167 "util/configparser.c" +#line 4541 "util/configparser.c" break; - case 419: -#line 1706 "./util/configparser.y" + case 423: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ +#line 1730 "util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5175,11 +4549,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5179 "util/configparser.c" +#line 4553 "util/configparser.c" break; - case 420: -#line 1715 "./util/configparser.y" + case 424: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ +#line 1739 "util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5187,11 +4561,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5191 "util/configparser.c" +#line 4565 "util/configparser.c" break; - case 421: -#line 1724 "./util/configparser.y" + case 425: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ +#line 1748 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5199,21 +4573,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5203 "util/configparser.c" +#line 4577 "util/configparser.c" break; - case 422: -#line 1733 "./util/configparser.y" + case 426: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ +#line 1757 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5213 "util/configparser.c" +#line 4587 "util/configparser.c" break; - case 423: -#line 1740 "./util/configparser.y" + case 427: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ +#line 1764 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5222,11 +4596,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5226 "util/configparser.c" +#line 4600 "util/configparser.c" break; - case 424: -#line 1750 "./util/configparser.y" + case 428: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ +#line 1774 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -5245,21 +4619,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 5249 "util/configparser.c" +#line 4623 "util/configparser.c" break; - case 425: -#line 1770 "./util/configparser.y" + case 429: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ +#line 1794 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 5259 "util/configparser.c" +#line 4633 "util/configparser.c" break; - case 426: -#line 1777 "./util/configparser.y" + case 430: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ +#line 1801 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5276,11 +4650,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5280 "util/configparser.c" +#line 4654 "util/configparser.c" break; - case 427: -#line 1795 "./util/configparser.y" + case 431: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ +#line 1819 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5292,11 +4666,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5296 "util/configparser.c" +#line 4670 "util/configparser.c" break; - case 428: -#line 1808 "./util/configparser.y" + case 432: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ +#line 1832 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5308,11 +4682,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5312 "util/configparser.c" +#line 4686 "util/configparser.c" break; - case 429: -#line 1821 "./util/configparser.y" + case 433: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ +#line 1845 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5320,11 +4694,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5324 "util/configparser.c" +#line 4698 "util/configparser.c" break; - case 430: -#line 1830 "./util/configparser.y" + case 434: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ +#line 1854 "util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5332,11 +4706,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5336 "util/configparser.c" +#line 4710 "util/configparser.c" break; - case 431: -#line 1839 "./util/configparser.y" + case 435: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ +#line 1863 "util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5344,11 +4718,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5348 "util/configparser.c" +#line 4722 "util/configparser.c" break; - case 432: -#line 1848 "./util/configparser.y" + case 436: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ +#line 1872 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5356,11 +4730,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5360 "util/configparser.c" +#line 4734 "util/configparser.c" break; - case 433: -#line 1857 "./util/configparser.y" + case 437: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ +#line 1881 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5369,11 +4743,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5373 "util/configparser.c" +#line 4747 "util/configparser.c" break; - case 434: -#line 1867 "./util/configparser.y" + case 438: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ +#line 1891 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5382,11 +4756,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5386 "util/configparser.c" +#line 4760 "util/configparser.c" break; - case 435: -#line 1877 "./util/configparser.y" + case 439: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ +#line 1901 "util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5396,11 +4770,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5400 "util/configparser.c" +#line 4774 "util/configparser.c" break; - case 436: -#line 1888 "./util/configparser.y" + case 440: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ +#line 1912 "util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5408,11 +4782,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5412 "util/configparser.c" +#line 4786 "util/configparser.c" break; - case 437: -#line 1897 "./util/configparser.y" + case 441: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ +#line 1921 "util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5420,11 +4794,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5424 "util/configparser.c" +#line 4798 "util/configparser.c" break; - case 438: -#line 1906 "./util/configparser.y" + case 442: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ +#line 1930 "util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5432,11 +4806,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5436 "util/configparser.c" +#line 4810 "util/configparser.c" break; - case 439: -#line 1915 "./util/configparser.y" + case 443: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ +#line 1939 "util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5444,11 +4818,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5448 "util/configparser.c" +#line 4822 "util/configparser.c" break; - case 440: -#line 1924 "./util/configparser.y" + case 444: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ +#line 1948 "util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5456,11 +4830,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5460 "util/configparser.c" +#line 4834 "util/configparser.c" break; - case 441: -#line 1933 "./util/configparser.y" + case 445: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ +#line 1957 "util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5468,11 +4842,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5472 "util/configparser.c" +#line 4846 "util/configparser.c" break; - case 442: -#line 1942 "./util/configparser.y" + case 446: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ +#line 1966 "util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5480,11 +4854,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5484 "util/configparser.c" +#line 4858 "util/configparser.c" break; - case 443: -#line 1951 "./util/configparser.y" + case 447: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ +#line 1975 "util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5496,11 +4870,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5500 "util/configparser.c" +#line 4874 "util/configparser.c" break; - case 444: -#line 1964 "./util/configparser.y" + case 448: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ +#line 1988 "util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5512,11 +4886,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5516 "util/configparser.c" +#line 4890 "util/configparser.c" break; - case 445: -#line 1977 "./util/configparser.y" + case 449: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ +#line 2001 "util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5524,21 +4898,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5528 "util/configparser.c" +#line 4902 "util/configparser.c" break; - case 446: -#line 1986 "./util/configparser.y" + case 450: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ +#line 2010 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 5538 "util/configparser.c" +#line 4912 "util/configparser.c" break; - case 447: -#line 1993 "./util/configparser.y" + case 451: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ +#line 2017 "util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5546,11 +4920,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5550 "util/configparser.c" +#line 4924 "util/configparser.c" break; - case 448: -#line 2002 "./util/configparser.y" + case 452: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ +#line 2026 "util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5558,11 +4932,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5562 "util/configparser.c" +#line 4936 "util/configparser.c" break; - case 449: -#line 2011 "./util/configparser.y" + case 453: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ +#line 2035 "util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5570,11 +4944,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5574 "util/configparser.c" +#line 4948 "util/configparser.c" break; - case 450: -#line 2020 "./util/configparser.y" + case 454: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ +#line 2044 "util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5582,11 +4956,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5586 "util/configparser.c" +#line 4960 "util/configparser.c" break; - case 451: -#line 2029 "./util/configparser.y" + case 455: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ +#line 2053 "util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5595,22 +4969,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5599 "util/configparser.c" +#line 4973 "util/configparser.c" break; - case 452: -#line 2038 "./util/configparser.y" + case 456: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ +#line 2062 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5610 "util/configparser.c" +#line 4984 "util/configparser.c" break; - case 453: -#line 2046 "./util/configparser.y" + case 457: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ +#line 2070 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5622,22 +4996,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5626 "util/configparser.c" +#line 5000 "util/configparser.c" break; - case 454: -#line 2059 "./util/configparser.y" + case 458: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ +#line 2083 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5637 "util/configparser.c" +#line 5011 "util/configparser.c" break; - case 455: -#line 2067 "./util/configparser.y" + case 459: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2091 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5681,21 +5055,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5685 "util/configparser.c" +#line 5059 "util/configparser.c" break; - case 456: -#line 2112 "./util/configparser.y" + case 460: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2136 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5695 "util/configparser.c" +#line 5069 "util/configparser.c" break; - case 457: -#line 2119 "./util/configparser.y" + case 461: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2143 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5709,11 +5083,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5713 "util/configparser.c" +#line 5087 "util/configparser.c" break; - case 458: -#line 2134 "./util/configparser.y" + case 462: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ +#line 2158 "util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5722,11 +5096,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5726 "util/configparser.c" +#line 5100 "util/configparser.c" break; - case 459: -#line 2144 "./util/configparser.y" + case 463: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ +#line 2168 "util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5735,41 +5109,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5739 "util/configparser.c" +#line 5113 "util/configparser.c" break; - case 460: -#line 2154 "./util/configparser.y" + case 464: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ +#line 2178 "util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5749 "util/configparser.c" +#line 5123 "util/configparser.c" break; - case 461: -#line 2161 "./util/configparser.y" + case 465: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ +#line 2185 "util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5759 "util/configparser.c" +#line 5133 "util/configparser.c" break; - case 462: -#line 2168 "./util/configparser.y" + case 466: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ +#line 2192 "util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5769 "util/configparser.c" +#line 5143 "util/configparser.c" break; - case 463: -#line 2175 "./util/configparser.y" + case 467: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ +#line 2199 "util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5777,22 +5151,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5781 "util/configparser.c" +#line 5155 "util/configparser.c" break; - case 464: -#line 2184 "./util/configparser.y" + case 468: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ +#line 2208 "util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5792 "util/configparser.c" +#line 5166 "util/configparser.c" break; - case 465: -#line 2192 "./util/configparser.y" + case 469: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ +#line 2216 "util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5805,11 +5179,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5809 "util/configparser.c" +#line 5183 "util/configparser.c" break; - case 466: -#line 2206 "./util/configparser.y" + case 470: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ +#line 2230 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5829,11 +5203,11 @@ yyreduce: } } } -#line 5833 "util/configparser.c" +#line 5207 "util/configparser.c" break; - case 467: -#line 2227 "./util/configparser.y" + case 471: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ +#line 2251 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5853,11 +5227,11 @@ yyreduce: } } } -#line 5857 "util/configparser.c" +#line 5231 "util/configparser.c" break; - case 468: -#line 2248 "./util/configparser.y" + case 472: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ +#line 2272 "util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5868,11 +5242,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5872 "util/configparser.c" +#line 5246 "util/configparser.c" break; - case 469: -#line 2260 "./util/configparser.y" + case 473: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ +#line 2284 "util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5883,11 +5257,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5887 "util/configparser.c" +#line 5261 "util/configparser.c" break; - case 470: -#line 2272 "./util/configparser.y" + case 474: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ +#line 2296 "util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5898,11 +5272,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5902 "util/configparser.c" +#line 5276 "util/configparser.c" break; - case 471: -#line 2284 "./util/configparser.y" + case 475: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ +#line 2308 "util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5910,11 +5284,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5914 "util/configparser.c" +#line 5288 "util/configparser.c" break; - case 472: -#line 2293 "./util/configparser.y" + case 476: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ +#line 2317 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5934,11 +5308,11 @@ yyreduce: } } } -#line 5938 "util/configparser.c" +#line 5312 "util/configparser.c" break; - case 473: -#line 2314 "./util/configparser.y" + case 477: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ +#line 2338 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5946,11 +5320,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5950 "util/configparser.c" +#line 5324 "util/configparser.c" break; - case 474: -#line 2324 "./util/configparser.y" + case 478: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ +#line 2348 "util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5958,33 +5332,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5962 "util/configparser.c" +#line 5336 "util/configparser.c" break; - case 475: -#line 2333 "./util/configparser.y" + case 479: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ +#line 2357 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5973 "util/configparser.c" +#line 5347 "util/configparser.c" break; - case 476: -#line 2341 "./util/configparser.y" + case 480: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ +#line 2365 "util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5984 "util/configparser.c" +#line 5358 "util/configparser.c" break; - case 477: -#line 2349 "./util/configparser.y" + case 481: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ +#line 2373 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5996,11 +5370,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6000 "util/configparser.c" +#line 5374 "util/configparser.c" break; - case 478: -#line 2362 "./util/configparser.y" + case 482: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ +#line 2386 "util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6012,11 +5386,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6016 "util/configparser.c" +#line 5390 "util/configparser.c" break; - case 479: -#line 2375 "./util/configparser.y" + case 483: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ +#line 2399 "util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6030,11 +5404,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 6034 "util/configparser.c" +#line 5408 "util/configparser.c" break; - case 480: -#line 2390 "./util/configparser.y" + case 484: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ +#line 2414 "util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6048,11 +5422,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 6052 "util/configparser.c" +#line 5426 "util/configparser.c" break; - case 481: -#line 2405 "./util/configparser.y" + case 485: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ +#line 2429 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6060,11 +5434,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6064 "util/configparser.c" +#line 5438 "util/configparser.c" break; - case 482: -#line 2414 "./util/configparser.y" + case 486: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ +#line 2438 "util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6072,20 +5446,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6076 "util/configparser.c" +#line 5450 "util/configparser.c" break; - case 483: -#line 2423 "./util/configparser.y" + case 487: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ +#line 2447 "util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 6085 "util/configparser.c" +#line 5459 "util/configparser.c" break; - case 484: -#line 2429 "./util/configparser.y" + case 488: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ +#line 2453 "util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -6093,11 +5467,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6097 "util/configparser.c" +#line 5471 "util/configparser.c" break; - case 485: -#line 2438 "./util/configparser.y" + case 489: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ +#line 2462 "util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6105,11 +5479,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6109 "util/configparser.c" +#line 5483 "util/configparser.c" break; - case 486: -#line 2447 "./util/configparser.y" + case 490: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ +#line 2471 "util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6118,11 +5492,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6122 "util/configparser.c" +#line 5496 "util/configparser.c" break; - case 487: -#line 2457 "./util/configparser.y" + case 491: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ +#line 2481 "util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6131,11 +5505,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6135 "util/configparser.c" +#line 5509 "util/configparser.c" break; - case 488: -#line 2467 "./util/configparser.y" + case 492: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ +#line 2491 "util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6144,11 +5518,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6148 "util/configparser.c" +#line 5522 "util/configparser.c" break; - case 489: -#line 2477 "./util/configparser.y" + case 493: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ +#line 2501 "util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6156,11 +5530,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6160 "util/configparser.c" +#line 5534 "util/configparser.c" break; - case 490: -#line 2486 "./util/configparser.y" + case 494: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ +#line 2510 "util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6169,11 +5543,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6173 "util/configparser.c" +#line 5547 "util/configparser.c" break; - case 491: -#line 2496 "./util/configparser.y" + case 495: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ +#line 2520 "util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6181,11 +5555,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6185 "util/configparser.c" +#line 5559 "util/configparser.c" break; - case 492: -#line 2505 "./util/configparser.y" + case 496: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ +#line 2529 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -6197,11 +5571,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6201 "util/configparser.c" +#line 5575 "util/configparser.c" break; - case 493: -#line 2518 "./util/configparser.y" + case 497: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ +#line 2542 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -6213,11 +5587,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6217 "util/configparser.c" +#line 5591 "util/configparser.c" break; - case 494: -#line 2531 "./util/configparser.y" + case 498: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ +#line 2555 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -6228,11 +5602,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6232 "util/configparser.c" +#line 5606 "util/configparser.c" break; - case 495: -#line 2543 "./util/configparser.y" + case 499: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ +#line 2567 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -6245,11 +5619,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6249 "util/configparser.c" +#line 5623 "util/configparser.c" break; - case 496: -#line 2557 "./util/configparser.y" + case 500: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ +#line 2581 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -6260,11 +5634,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6264 "util/configparser.c" +#line 5638 "util/configparser.c" break; - case 497: -#line 2569 "./util/configparser.y" + case 501: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ +#line 2593 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -6277,11 +5651,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6281 "util/configparser.c" +#line 5655 "util/configparser.c" break; - case 498: -#line 2583 "./util/configparser.y" + case 502: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ +#line 2607 "util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -6289,11 +5663,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 6293 "util/configparser.c" +#line 5667 "util/configparser.c" break; - case 499: -#line 2592 "./util/configparser.y" + case 503: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ +#line 2616 "util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6304,11 +5678,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 6308 "util/configparser.c" +#line 5682 "util/configparser.c" break; - case 500: -#line 2604 "./util/configparser.y" + case 504: /* stub_name: VAR_NAME STRING_ARG */ +#line 2628 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -6317,31 +5691,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 6321 "util/configparser.c" +#line 5695 "util/configparser.c" break; - case 501: -#line 2614 "./util/configparser.y" + case 505: /* stub_host: VAR_STUB_HOST STRING_ARG */ +#line 2638 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6331 "util/configparser.c" +#line 5705 "util/configparser.c" break; - case 502: -#line 2621 "./util/configparser.y" + case 506: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ +#line 2645 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6341 "util/configparser.c" +#line 5715 "util/configparser.c" break; - case 503: -#line 2628 "./util/configparser.y" + case 507: /* stub_first: VAR_STUB_FIRST STRING_ARG */ +#line 2652 "util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6349,11 +5723,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6353 "util/configparser.c" +#line 5727 "util/configparser.c" break; - case 504: -#line 2637 "./util/configparser.y" + case 508: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ +#line 2661 "util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6361,11 +5735,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6365 "util/configparser.c" +#line 5739 "util/configparser.c" break; - case 505: -#line 2646 "./util/configparser.y" + case 509: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ +#line 2670 "util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6374,11 +5748,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6378 "util/configparser.c" +#line 5752 "util/configparser.c" break; - case 506: -#line 2656 "./util/configparser.y" + case 510: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ +#line 2680 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6387,11 +5761,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6391 "util/configparser.c" +#line 5765 "util/configparser.c" break; - case 507: -#line 2666 "./util/configparser.y" + case 511: /* forward_name: VAR_NAME STRING_ARG */ +#line 2690 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -6400,31 +5774,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 6404 "util/configparser.c" +#line 5778 "util/configparser.c" break; - case 508: -#line 2676 "./util/configparser.y" + case 512: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ +#line 2700 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6414 "util/configparser.c" +#line 5788 "util/configparser.c" break; - case 509: -#line 2683 "./util/configparser.y" + case 513: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ +#line 2707 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6424 "util/configparser.c" +#line 5798 "util/configparser.c" break; - case 510: -#line 2690 "./util/configparser.y" + case 514: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ +#line 2714 "util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6432,11 +5806,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6436 "util/configparser.c" +#line 5810 "util/configparser.c" break; - case 511: -#line 2699 "./util/configparser.y" + case 515: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ +#line 2723 "util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6444,11 +5818,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6448 "util/configparser.c" +#line 5822 "util/configparser.c" break; - case 512: -#line 2708 "./util/configparser.y" + case 516: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ +#line 2732 "util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6457,11 +5831,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6461 "util/configparser.c" +#line 5835 "util/configparser.c" break; - case 513: -#line 2718 "./util/configparser.y" + case 517: /* auth_name: VAR_NAME STRING_ARG */ +#line 2742 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -6470,52 +5844,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 6474 "util/configparser.c" +#line 5848 "util/configparser.c" break; - case 514: -#line 2728 "./util/configparser.y" + case 518: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ +#line 2752 "util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 6484 "util/configparser.c" +#line 5858 "util/configparser.c" break; - case 515: -#line 2735 "./util/configparser.y" + case 519: /* auth_master: VAR_MASTER STRING_ARG */ +#line 2759 "util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6494 "util/configparser.c" +#line 5868 "util/configparser.c" break; - case 516: -#line 2742 "./util/configparser.y" + case 520: /* auth_url: VAR_URL STRING_ARG */ +#line 2766 "util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6504 "util/configparser.c" +#line 5878 "util/configparser.c" break; - case 517: -#line 2749 "./util/configparser.y" + case 521: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ +#line 2773 "util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6515 "util/configparser.c" +#line 5889 "util/configparser.c" break; - case 518: -#line 2757 "./util/configparser.y" + case 522: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ +#line 2781 "util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6524,11 +5898,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6528 "util/configparser.c" +#line 5902 "util/configparser.c" break; - case 519: -#line 2767 "./util/configparser.y" + case 523: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ +#line 2791 "util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6537,11 +5911,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6541 "util/configparser.c" +#line 5915 "util/configparser.c" break; - case 520: -#line 2777 "./util/configparser.y" + case 524: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ +#line 2801 "util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6550,11 +5924,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6554 "util/configparser.c" +#line 5928 "util/configparser.c" break; - case 521: -#line 2787 "./util/configparser.y" + case 525: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ +#line 2811 "util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6563,11 +5937,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6567 "util/configparser.c" +#line 5941 "util/configparser.c" break; - case 522: -#line 2797 "./util/configparser.y" + case 526: /* view_name: VAR_NAME STRING_ARG */ +#line 2821 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6576,11 +5950,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6580 "util/configparser.c" +#line 5954 "util/configparser.c" break; - case 523: -#line 2807 "./util/configparser.y" + case 527: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2831 "util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -6618,11 +5992,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6622 "util/configparser.c" +#line 5996 "util/configparser.c" break; - case 524: -#line 2846 "./util/configparser.y" + case 528: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 2870 "util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6631,33 +6005,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6635 "util/configparser.c" +#line 6009 "util/configparser.c" break; - case 525: -#line 2856 "./util/configparser.y" + case 529: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 2880 "util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6646 "util/configparser.c" +#line 6020 "util/configparser.c" break; - case 526: -#line 2864 "./util/configparser.y" + case 530: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2888 "util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6657 "util/configparser.c" +#line 6031 "util/configparser.c" break; - case 527: -#line 2872 "./util/configparser.y" + case 531: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2896 "util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6671,11 +6045,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6675 "util/configparser.c" +#line 6049 "util/configparser.c" break; - case 528: -#line 2887 "./util/configparser.y" + case 532: /* view_first: VAR_VIEW_FIRST STRING_ARG */ +#line 2911 "util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6683,19 +6057,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6687 "util/configparser.c" +#line 6061 "util/configparser.c" break; - case 529: -#line 2896 "./util/configparser.y" + case 533: /* rcstart: VAR_REMOTE_CONTROL */ +#line 2920 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6695 "util/configparser.c" +#line 6069 "util/configparser.c" break; - case 540: -#line 2907 "./util/configparser.y" + case 544: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ +#line 2931 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6704,11 +6078,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6708 "util/configparser.c" +#line 6082 "util/configparser.c" break; - case 541: -#line 2917 "./util/configparser.y" + case 545: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ +#line 2941 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6716,79 +6090,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6720 "util/configparser.c" +#line 6094 "util/configparser.c" break; - case 542: -#line 2926 "./util/configparser.y" + case 546: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ +#line 2950 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6730 "util/configparser.c" +#line 6104 "util/configparser.c" break; - case 543: -#line 2933 "./util/configparser.y" + case 547: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ +#line 2957 "util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6740 "util/configparser.c" +#line 6114 "util/configparser.c" break; - case 544: -#line 2940 "./util/configparser.y" + case 548: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ +#line 2964 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6750 "util/configparser.c" +#line 6124 "util/configparser.c" break; - case 545: -#line 2947 "./util/configparser.y" + case 549: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ +#line 2971 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6760 "util/configparser.c" +#line 6134 "util/configparser.c" break; - case 546: -#line 2954 "./util/configparser.y" + case 550: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ +#line 2978 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6770 "util/configparser.c" +#line 6144 "util/configparser.c" break; - case 547: -#line 2961 "./util/configparser.y" + case 551: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ +#line 2985 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6780 "util/configparser.c" +#line 6154 "util/configparser.c" break; - case 548: -#line 2968 "./util/configparser.y" + case 552: /* dtstart: VAR_DNSTAP */ +#line 2992 "util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6788 "util/configparser.c" +#line 6162 "util/configparser.c" break; - case 570: -#line 2988 "./util/configparser.y" + case 574: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ +#line 3012 "util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6796,11 +6170,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6800 "util/configparser.c" +#line 6174 "util/configparser.c" break; - case 571: -#line 2997 "./util/configparser.y" + case 575: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ +#line 3021 "util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6809,31 +6183,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6813 "util/configparser.c" +#line 6187 "util/configparser.c" break; - case 572: -#line 3007 "./util/configparser.y" + case 576: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ +#line 3031 "util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6823 "util/configparser.c" +#line 6197 "util/configparser.c" break; - case 573: -#line 3014 "./util/configparser.y" + case 577: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ +#line 3038 "util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6833 "util/configparser.c" +#line 6207 "util/configparser.c" break; - case 574: -#line 3021 "./util/configparser.y" + case 578: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ +#line 3045 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6841,51 +6215,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6845 "util/configparser.c" +#line 6219 "util/configparser.c" break; - case 575: -#line 3030 "./util/configparser.y" + case 579: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ +#line 3054 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6855 "util/configparser.c" +#line 6229 "util/configparser.c" break; - case 576: -#line 3037 "./util/configparser.y" + case 580: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ +#line 3061 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6865 "util/configparser.c" +#line 6239 "util/configparser.c" break; - case 577: -#line 3044 "./util/configparser.y" + case 581: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ +#line 3068 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6875 "util/configparser.c" +#line 6249 "util/configparser.c" break; - case 578: -#line 3051 "./util/configparser.y" + case 582: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ +#line 3075 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6885 "util/configparser.c" +#line 6259 "util/configparser.c" break; - case 579: -#line 3058 "./util/configparser.y" + case 583: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ +#line 3082 "util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6893,11 +6267,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6897 "util/configparser.c" +#line 6271 "util/configparser.c" break; - case 580: -#line 3067 "./util/configparser.y" + case 584: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ +#line 3091 "util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6905,31 +6279,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6909 "util/configparser.c" +#line 6283 "util/configparser.c" break; - case 581: -#line 3076 "./util/configparser.y" + case 585: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ +#line 3100 "util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 6919 "util/configparser.c" +#line 6293 "util/configparser.c" break; - case 582: -#line 3083 "./util/configparser.y" + case 586: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ +#line 3107 "util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 6929 "util/configparser.c" +#line 6303 "util/configparser.c" break; - case 583: -#line 3090 "./util/configparser.y" + case 587: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ +#line 3114 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6938,11 +6312,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6942 "util/configparser.c" +#line 6316 "util/configparser.c" break; - case 584: -#line 3100 "./util/configparser.y" + case 588: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ +#line 3124 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6951,11 +6325,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6955 "util/configparser.c" +#line 6329 "util/configparser.c" break; - case 585: -#line 3110 "./util/configparser.y" + case 589: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ +#line 3134 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6964,11 +6338,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6968 "util/configparser.c" +#line 6342 "util/configparser.c" break; - case 586: -#line 3120 "./util/configparser.y" + case 590: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ +#line 3144 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6977,11 +6351,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6981 "util/configparser.c" +#line 6355 "util/configparser.c" break; - case 587: -#line 3130 "./util/configparser.y" + case 591: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ +#line 3154 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6990,11 +6364,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6994 "util/configparser.c" +#line 6368 "util/configparser.c" break; - case 588: -#line 3140 "./util/configparser.y" + case 592: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ +#line 3164 "util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7003,47 +6377,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7007 "util/configparser.c" +#line 6381 "util/configparser.c" break; - case 589: -#line 3150 "./util/configparser.y" + case 593: /* pythonstart: VAR_PYTHON */ +#line 3174 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 7015 "util/configparser.c" +#line 6389 "util/configparser.c" break; - case 593: -#line 3159 "./util/configparser.y" + case 597: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ +#line 3183 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7025 "util/configparser.c" +#line 6399 "util/configparser.c" break; - case 594: -#line 3165 "./util/configparser.y" + case 598: /* dynlibstart: VAR_DYNLIB */ +#line 3189 "util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 7033 "util/configparser.c" +#line 6407 "util/configparser.c" break; - case 598: -#line 3174 "./util/configparser.y" + case 602: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ +#line 3198 "util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7043 "util/configparser.c" +#line 6417 "util/configparser.c" break; - case 599: -#line 3180 "./util/configparser.y" + case 603: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ +#line 3204 "util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7052,21 +6426,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7056 "util/configparser.c" +#line 6430 "util/configparser.c" break; - case 600: -#line 3190 "./util/configparser.y" + case 604: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ +#line 3214 "util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 7066 "util/configparser.c" +#line 6440 "util/configparser.c" break; - case 601: -#line 3197 "./util/configparser.y" + case 605: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3221 "util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -7074,30 +6448,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 7078 "util/configparser.c" +#line 6452 "util/configparser.c" break; - case 602: -#line 3206 "./util/configparser.y" + case 606: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3230 "util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 7089 "util/configparser.c" +#line 6463 "util/configparser.c" break; - case 603: -#line 3214 "./util/configparser.y" + case 607: /* dnscstart: VAR_DNSCRYPT */ +#line 3238 "util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7097 "util/configparser.c" +#line 6471 "util/configparser.c" break; - case 616: -#line 3230 "./util/configparser.y" + case 620: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ +#line 3254 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7105,11 +6479,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7109 "util/configparser.c" +#line 6483 "util/configparser.c" break; - case 617: -#line 3240 "./util/configparser.y" + case 621: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ +#line 3264 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7117,21 +6491,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7121 "util/configparser.c" +#line 6495 "util/configparser.c" break; - case 618: -#line 3249 "./util/configparser.y" + case 622: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ +#line 3273 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 7131 "util/configparser.c" +#line 6505 "util/configparser.c" break; - case 619: -#line 3256 "./util/configparser.y" + case 623: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ +#line 3280 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -7139,21 +6513,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7143 "util/configparser.c" +#line 6517 "util/configparser.c" break; - case 620: -#line 3265 "./util/configparser.y" + case 624: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ +#line 3289 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 7153 "util/configparser.c" +#line 6527 "util/configparser.c" break; - case 621: -#line 3272 "./util/configparser.y" + case 625: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ +#line 3296 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -7161,22 +6535,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 7165 "util/configparser.c" +#line 6539 "util/configparser.c" break; - case 622: -#line 3281 "./util/configparser.y" + case 626: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ +#line 3305 "util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7176 "util/configparser.c" +#line 6550 "util/configparser.c" break; - case 623: -#line 3289 "./util/configparser.y" + case 627: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ +#line 3313 "util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7188,22 +6562,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7192 "util/configparser.c" +#line 6566 "util/configparser.c" break; - case 624: -#line 3302 "./util/configparser.y" + case 628: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ +#line 3326 "util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7203 "util/configparser.c" +#line 6577 "util/configparser.c" break; - case 625: -#line 3310 "./util/configparser.y" + case 629: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ +#line 3334 "util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7215,19 +6589,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7219 "util/configparser.c" +#line 6593 "util/configparser.c" break; - case 626: -#line 3323 "./util/configparser.y" + case 630: /* cachedbstart: VAR_CACHEDB */ +#line 3347 "util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 7227 "util/configparser.c" +#line 6601 "util/configparser.c" break; - case 635: -#line 3334 "./util/configparser.y" + case 639: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ +#line 3358 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -7238,11 +6612,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7242 "util/configparser.c" +#line 6616 "util/configparser.c" break; - case 636: -#line 3346 "./util/configparser.y" + case 640: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ +#line 3370 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -7253,11 +6627,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7257 "util/configparser.c" +#line 6631 "util/configparser.c" break; - case 637: -#line 3358 "./util/configparser.y" + case 641: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ +#line 3382 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -7268,11 +6642,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7272 "util/configparser.c" +#line 6646 "util/configparser.c" break; - case 638: -#line 3370 "./util/configparser.y" + case 642: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ +#line 3394 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -7286,11 +6660,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7290 "util/configparser.c" +#line 6664 "util/configparser.c" break; - case 639: -#line 3385 "./util/configparser.y" + case 643: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ +#line 3409 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -7302,11 +6676,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7306 "util/configparser.c" +#line 6680 "util/configparser.c" break; - case 640: -#line 3398 "./util/configparser.y" + case 644: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ +#line 3422 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -7318,11 +6692,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7322 "util/configparser.c" +#line 6696 "util/configparser.c" break; - case 641: -#line 3411 "./util/configparser.y" + case 645: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ +#line 3435 "util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -7332,19 +6706,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 7336 "util/configparser.c" +#line 6710 "util/configparser.c" break; - case 642: -#line 3422 "./util/configparser.y" + case 646: /* ipsetstart: VAR_IPSET */ +#line 3446 "util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 7344 "util/configparser.c" +#line 6718 "util/configparser.c" break; - case 647: -#line 3431 "./util/configparser.y" + case 651: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ +#line 3455 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -7358,11 +6732,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7362 "util/configparser.c" +#line 6736 "util/configparser.c" break; - case 648: -#line 3446 "./util/configparser.y" + case 652: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ +#line 3470 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -7376,11 +6750,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7380 "util/configparser.c" +#line 6754 "util/configparser.c" break; -#line 7384 "util/configparser.c" +#line 6758 "util/configparser.c" default: break; } @@ -7540,13 +6914,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -7574,7 +6948,7 @@ yyreturn: return yyresult; } -#line 3460 "./util/configparser.y" +#line 3484 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index fcbb51ec4..58935003b 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -156,216 +156,219 @@ extern int yydebug; VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_EXTENDED_STATISTICS = 360, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 361, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 362, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 363, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 364, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 365, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 366, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 367, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 368, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 369, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 370, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 371, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 372, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 373, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 374, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 375, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 376, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 377, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 378, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 379, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 380, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 381, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 382, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 383, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 384, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 385, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 386, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 387, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 388, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 389, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 390, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 391, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 392, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 393, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 394, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 395, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 396, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 397, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 398, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 399, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 400, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 402, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 403, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 404, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 405, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 406, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 407, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 408, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 409, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 410, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 411, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 412, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 413, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 414, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 415, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 416, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 417, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 418, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 419, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 420, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 421, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 422, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 423, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 426, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 427, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 428, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 429, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 430, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 437, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 438, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 439, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 440, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 441, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 442, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 443, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 444, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 445, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 446, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 447, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 448, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 449, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 450, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 451, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 452, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 453, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 454, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 455, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 457, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 458, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 459, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 460, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 461, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 464, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 465, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 466, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 467, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 468, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 469, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 470, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 471, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 472, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 473, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 474, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 475, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 476, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 477, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 478, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 479, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 480, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 481, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 482, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 484, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 485, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 486, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 487, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 488, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 489, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 490, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 491, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 492, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 493, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 494, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 495, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 496, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 497, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 498, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 499, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 500, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 501, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 503, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 505, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 506, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 507, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 508, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 509, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 510, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 511, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 512, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 513, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 514, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 515, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 516, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 517, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 518, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 519, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 520, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 521, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 522, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 523, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 524, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 525, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 526, /* VAR_ZONEFILE */ - VAR_MASTER = 527, /* VAR_MASTER */ - VAR_URL = 528, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 529, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 530, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 531, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 532, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 533, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 534, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 535, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 536, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 537, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 538, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 539, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 540, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 541, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 542, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 543, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 544, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 545, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 546, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 547, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 548, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 549, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 550, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 551, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 552, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 553, /* VAR_RPZ */ - VAR_TAGS = 554, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 555, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 556, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 557, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 558, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 559, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 560, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 561, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 562, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 563, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 564, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 565 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 381, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ + VAR_SSL_SERVICE_KEY = 392, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 393, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 394, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 395, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 396, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 397, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 398, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 399, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 400, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 401, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 402, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 403, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 404, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 405, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 406, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 407, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 408, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 409, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 410, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 411, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 412, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 413, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 414, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 415, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 416, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 417, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 418, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 419, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 420, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 421, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 422, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 423, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 424, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 425, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 426, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 428, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 429, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 430, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 431, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 432, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 439, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 440, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 441, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 442, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 443, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 444, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 445, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 446, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 447, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 448, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 449, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 450, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 451, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 452, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 453, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 454, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 455, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 456, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 457, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 458, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 459, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 460, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 462, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 464, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 466, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 467, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 468, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 469, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 470, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 471, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 472, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 473, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 474, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 475, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 476, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 477, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 478, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 479, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 480, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 481, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 482, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 483, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 484, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 485, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 486, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 487, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 488, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 489, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 490, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 491, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 492, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 493, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 494, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 495, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 496, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 497, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 498, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 499, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 500, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 501, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 502, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 503, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 504, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 506, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 508, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 509, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 510, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 511, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 512, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 513, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 514, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 515, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 516, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 517, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 518, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 519, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 520, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 521, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 522, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 523, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 524, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 525, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 526, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 527, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 528, /* VAR_ZONEFILE */ + VAR_MASTER = 529, /* VAR_MASTER */ + VAR_URL = 530, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 531, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 532, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 533, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 534, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 535, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 536, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 537, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 538, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 539, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 540, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 541, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 542, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 543, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 544, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 545, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 546, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 547, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 548, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 549, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 550, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 551, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 552, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 553, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 554, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 555, /* VAR_RPZ */ + VAR_TAGS = 556, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 557, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 558, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 559, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 560, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 561, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 562, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 563, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 564, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 565, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 566, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_REJECT_ABSENCE = 567 /* VAR_ZONEMD_REJECT_ABSENCE */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ +#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -471,222 +474,224 @@ extern int yydebug; #define VAR_CONTROL_KEY_FILE 357 #define VAR_CONTROL_CERT_FILE 358 #define VAR_CONTROL_USE_CERT 359 -#define VAR_EXTENDED_STATISTICS 360 -#define VAR_LOCAL_DATA_PTR 361 -#define VAR_JOSTLE_TIMEOUT 362 -#define VAR_STUB_PRIME 363 -#define VAR_UNWANTED_REPLY_THRESHOLD 364 -#define VAR_LOG_TIME_ASCII 365 -#define VAR_DOMAIN_INSECURE 366 -#define VAR_PYTHON 367 -#define VAR_PYTHON_SCRIPT 368 -#define VAR_VAL_SIG_SKEW_MIN 369 -#define VAR_VAL_SIG_SKEW_MAX 370 -#define VAR_CACHE_MIN_TTL 371 -#define VAR_VAL_LOG_LEVEL 372 -#define VAR_AUTO_TRUST_ANCHOR_FILE 373 -#define VAR_KEEP_MISSING 374 -#define VAR_ADD_HOLDDOWN 375 -#define VAR_DEL_HOLDDOWN 376 -#define VAR_SO_RCVBUF 377 -#define VAR_EDNS_BUFFER_SIZE 378 -#define VAR_PREFETCH 379 -#define VAR_PREFETCH_KEY 380 -#define VAR_SO_SNDBUF 381 -#define VAR_SO_REUSEPORT 382 -#define VAR_HARDEN_BELOW_NXDOMAIN 383 -#define VAR_IGNORE_CD_FLAG 384 -#define VAR_LOG_QUERIES 385 -#define VAR_LOG_REPLIES 386 -#define VAR_LOG_LOCAL_ACTIONS 387 -#define VAR_TCP_UPSTREAM 388 -#define VAR_SSL_UPSTREAM 389 -#define VAR_SSL_SERVICE_KEY 390 -#define VAR_SSL_SERVICE_PEM 391 -#define VAR_SSL_PORT 392 -#define VAR_FORWARD_FIRST 393 -#define VAR_STUB_SSL_UPSTREAM 394 -#define VAR_FORWARD_SSL_UPSTREAM 395 -#define VAR_TLS_CERT_BUNDLE 396 -#define VAR_HTTPS_PORT 397 -#define VAR_HTTP_ENDPOINT 398 -#define VAR_HTTP_MAX_STREAMS 399 -#define VAR_HTTP_QUERY_BUFFER_SIZE 400 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 -#define VAR_HTTP_NODELAY 402 -#define VAR_HTTP_NOTLS_DOWNSTREAM 403 -#define VAR_STUB_FIRST 404 -#define VAR_MINIMAL_RESPONSES 405 -#define VAR_RRSET_ROUNDROBIN 406 -#define VAR_MAX_UDP_SIZE 407 -#define VAR_DELAY_CLOSE 408 -#define VAR_UDP_CONNECT 409 -#define VAR_UNBLOCK_LAN_ZONES 410 -#define VAR_INSECURE_LAN_ZONES 411 -#define VAR_INFRA_CACHE_MIN_RTT 412 -#define VAR_INFRA_KEEP_PROBING 413 -#define VAR_DNS64_PREFIX 414 -#define VAR_DNS64_SYNTHALL 415 -#define VAR_DNS64_IGNORE_AAAA 416 -#define VAR_DNSTAP 417 -#define VAR_DNSTAP_ENABLE 418 -#define VAR_DNSTAP_SOCKET_PATH 419 -#define VAR_DNSTAP_IP 420 -#define VAR_DNSTAP_TLS 421 -#define VAR_DNSTAP_TLS_SERVER_NAME 422 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 -#define VAR_DNSTAP_SEND_IDENTITY 426 -#define VAR_DNSTAP_SEND_VERSION 427 -#define VAR_DNSTAP_BIDIRECTIONAL 428 -#define VAR_DNSTAP_IDENTITY 429 -#define VAR_DNSTAP_VERSION 430 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 -#define VAR_RESPONSE_IP_TAG 437 -#define VAR_RESPONSE_IP 438 -#define VAR_RESPONSE_IP_DATA 439 -#define VAR_HARDEN_ALGO_DOWNGRADE 440 -#define VAR_IP_TRANSPARENT 441 -#define VAR_IP_DSCP 442 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 -#define VAR_IP_RATELIMIT 444 -#define VAR_IP_RATELIMIT_SLABS 445 -#define VAR_IP_RATELIMIT_SIZE 446 -#define VAR_RATELIMIT 447 -#define VAR_RATELIMIT_SLABS 448 -#define VAR_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT_FOR_DOMAIN 450 -#define VAR_RATELIMIT_BELOW_DOMAIN 451 -#define VAR_IP_RATELIMIT_FACTOR 452 -#define VAR_RATELIMIT_FACTOR 453 -#define VAR_SEND_CLIENT_SUBNET 454 -#define VAR_CLIENT_SUBNET_ZONE 455 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 -#define VAR_CLIENT_SUBNET_OPCODE 457 -#define VAR_MAX_CLIENT_SUBNET_IPV4 458 -#define VAR_MAX_CLIENT_SUBNET_IPV6 459 -#define VAR_MIN_CLIENT_SUBNET_IPV4 460 -#define VAR_MIN_CLIENT_SUBNET_IPV6 461 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 -#define VAR_CAPS_WHITELIST 464 -#define VAR_CACHE_MAX_NEGATIVE_TTL 465 -#define VAR_PERMIT_SMALL_HOLDDOWN 466 -#define VAR_QNAME_MINIMISATION 467 -#define VAR_QNAME_MINIMISATION_STRICT 468 -#define VAR_IP_FREEBIND 469 -#define VAR_DEFINE_TAG 470 -#define VAR_LOCAL_ZONE_TAG 471 -#define VAR_ACCESS_CONTROL_TAG 472 -#define VAR_LOCAL_ZONE_OVERRIDE 473 -#define VAR_ACCESS_CONTROL_TAG_ACTION 474 -#define VAR_ACCESS_CONTROL_TAG_DATA 475 -#define VAR_VIEW 476 -#define VAR_ACCESS_CONTROL_VIEW 477 -#define VAR_VIEW_FIRST 478 -#define VAR_SERVE_EXPIRED 479 -#define VAR_SERVE_EXPIRED_TTL 480 -#define VAR_SERVE_EXPIRED_TTL_RESET 481 -#define VAR_SERVE_EXPIRED_REPLY_TTL 482 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 -#define VAR_SERVE_ORIGINAL_TTL 484 -#define VAR_FAKE_DSA 485 -#define VAR_FAKE_SHA1 486 -#define VAR_LOG_IDENTITY 487 -#define VAR_HIDE_TRUSTANCHOR 488 -#define VAR_TRUST_ANCHOR_SIGNALING 489 -#define VAR_AGGRESSIVE_NSEC 490 -#define VAR_USE_SYSTEMD 491 -#define VAR_SHM_ENABLE 492 -#define VAR_SHM_KEY 493 -#define VAR_ROOT_KEY_SENTINEL 494 -#define VAR_DNSCRYPT 495 -#define VAR_DNSCRYPT_ENABLE 496 -#define VAR_DNSCRYPT_PORT 497 -#define VAR_DNSCRYPT_PROVIDER 498 -#define VAR_DNSCRYPT_SECRET_KEY 499 -#define VAR_DNSCRYPT_PROVIDER_CERT 500 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 501 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 502 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 503 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 504 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 505 -#define VAR_PAD_RESPONSES 506 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 507 -#define VAR_PAD_QUERIES 508 -#define VAR_PAD_QUERIES_BLOCK_SIZE 509 -#define VAR_IPSECMOD_ENABLED 510 -#define VAR_IPSECMOD_HOOK 511 -#define VAR_IPSECMOD_IGNORE_BOGUS 512 -#define VAR_IPSECMOD_MAX_TTL 513 -#define VAR_IPSECMOD_WHITELIST 514 -#define VAR_IPSECMOD_STRICT 515 -#define VAR_CACHEDB 516 -#define VAR_CACHEDB_BACKEND 517 -#define VAR_CACHEDB_SECRETSEED 518 -#define VAR_CACHEDB_REDISHOST 519 -#define VAR_CACHEDB_REDISPORT 520 -#define VAR_CACHEDB_REDISTIMEOUT 521 -#define VAR_CACHEDB_REDISEXPIRERECORDS 522 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 523 -#define VAR_FOR_UPSTREAM 524 -#define VAR_AUTH_ZONE 525 -#define VAR_ZONEFILE 526 -#define VAR_MASTER 527 -#define VAR_URL 528 -#define VAR_FOR_DOWNSTREAM 529 -#define VAR_FALLBACK_ENABLED 530 -#define VAR_TLS_ADDITIONAL_PORT 531 -#define VAR_LOW_RTT 532 -#define VAR_LOW_RTT_PERMIL 533 -#define VAR_FAST_SERVER_PERMIL 534 -#define VAR_FAST_SERVER_NUM 535 -#define VAR_ALLOW_NOTIFY 536 -#define VAR_TLS_WIN_CERT 537 -#define VAR_TCP_CONNECTION_LIMIT 538 -#define VAR_FORWARD_NO_CACHE 539 -#define VAR_STUB_NO_CACHE 540 -#define VAR_LOG_SERVFAIL 541 -#define VAR_DENY_ANY 542 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 543 -#define VAR_LOG_TAG_QUERYREPLY 544 -#define VAR_STREAM_WAIT_SIZE 545 -#define VAR_TLS_CIPHERS 546 -#define VAR_TLS_CIPHERSUITES 547 -#define VAR_TLS_USE_SNI 548 -#define VAR_IPSET 549 -#define VAR_IPSET_NAME_V4 550 -#define VAR_IPSET_NAME_V6 551 -#define VAR_TLS_SESSION_TICKET_KEYS 552 -#define VAR_RPZ 553 -#define VAR_TAGS 554 -#define VAR_RPZ_ACTION_OVERRIDE 555 -#define VAR_RPZ_CNAME_OVERRIDE 556 -#define VAR_RPZ_LOG 557 -#define VAR_RPZ_LOG_NAME 558 -#define VAR_DYNLIB 559 -#define VAR_DYNLIB_FILE 560 -#define VAR_EDNS_CLIENT_STRING 561 -#define VAR_EDNS_CLIENT_STRING_OPCODE 562 -#define VAR_NSID 563 -#define VAR_ZONEMD_PERMISSIVE_MODE 564 -#define VAR_ZONEMD_REJECT_ABSENCE 565 +#define VAR_TCP_REUSE_TIMEOUT 360 +#define VAR_MAX_REUSE_TCP_QUERIES 361 +#define VAR_EXTENDED_STATISTICS 362 +#define VAR_LOCAL_DATA_PTR 363 +#define VAR_JOSTLE_TIMEOUT 364 +#define VAR_STUB_PRIME 365 +#define VAR_UNWANTED_REPLY_THRESHOLD 366 +#define VAR_LOG_TIME_ASCII 367 +#define VAR_DOMAIN_INSECURE 368 +#define VAR_PYTHON 369 +#define VAR_PYTHON_SCRIPT 370 +#define VAR_VAL_SIG_SKEW_MIN 371 +#define VAR_VAL_SIG_SKEW_MAX 372 +#define VAR_CACHE_MIN_TTL 373 +#define VAR_VAL_LOG_LEVEL 374 +#define VAR_AUTO_TRUST_ANCHOR_FILE 375 +#define VAR_KEEP_MISSING 376 +#define VAR_ADD_HOLDDOWN 377 +#define VAR_DEL_HOLDDOWN 378 +#define VAR_SO_RCVBUF 379 +#define VAR_EDNS_BUFFER_SIZE 380 +#define VAR_PREFETCH 381 +#define VAR_PREFETCH_KEY 382 +#define VAR_SO_SNDBUF 383 +#define VAR_SO_REUSEPORT 384 +#define VAR_HARDEN_BELOW_NXDOMAIN 385 +#define VAR_IGNORE_CD_FLAG 386 +#define VAR_LOG_QUERIES 387 +#define VAR_LOG_REPLIES 388 +#define VAR_LOG_LOCAL_ACTIONS 389 +#define VAR_TCP_UPSTREAM 390 +#define VAR_SSL_UPSTREAM 391 +#define VAR_SSL_SERVICE_KEY 392 +#define VAR_SSL_SERVICE_PEM 393 +#define VAR_SSL_PORT 394 +#define VAR_FORWARD_FIRST 395 +#define VAR_STUB_SSL_UPSTREAM 396 +#define VAR_FORWARD_SSL_UPSTREAM 397 +#define VAR_TLS_CERT_BUNDLE 398 +#define VAR_HTTPS_PORT 399 +#define VAR_HTTP_ENDPOINT 400 +#define VAR_HTTP_MAX_STREAMS 401 +#define VAR_HTTP_QUERY_BUFFER_SIZE 402 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 403 +#define VAR_HTTP_NODELAY 404 +#define VAR_HTTP_NOTLS_DOWNSTREAM 405 +#define VAR_STUB_FIRST 406 +#define VAR_MINIMAL_RESPONSES 407 +#define VAR_RRSET_ROUNDROBIN 408 +#define VAR_MAX_UDP_SIZE 409 +#define VAR_DELAY_CLOSE 410 +#define VAR_UDP_CONNECT 411 +#define VAR_UNBLOCK_LAN_ZONES 412 +#define VAR_INSECURE_LAN_ZONES 413 +#define VAR_INFRA_CACHE_MIN_RTT 414 +#define VAR_INFRA_KEEP_PROBING 415 +#define VAR_DNS64_PREFIX 416 +#define VAR_DNS64_SYNTHALL 417 +#define VAR_DNS64_IGNORE_AAAA 418 +#define VAR_DNSTAP 419 +#define VAR_DNSTAP_ENABLE 420 +#define VAR_DNSTAP_SOCKET_PATH 421 +#define VAR_DNSTAP_IP 422 +#define VAR_DNSTAP_TLS 423 +#define VAR_DNSTAP_TLS_SERVER_NAME 424 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 425 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 426 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 427 +#define VAR_DNSTAP_SEND_IDENTITY 428 +#define VAR_DNSTAP_SEND_VERSION 429 +#define VAR_DNSTAP_BIDIRECTIONAL 430 +#define VAR_DNSTAP_IDENTITY 431 +#define VAR_DNSTAP_VERSION 432 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 433 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 434 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 436 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 438 +#define VAR_RESPONSE_IP_TAG 439 +#define VAR_RESPONSE_IP 440 +#define VAR_RESPONSE_IP_DATA 441 +#define VAR_HARDEN_ALGO_DOWNGRADE 442 +#define VAR_IP_TRANSPARENT 443 +#define VAR_IP_DSCP 444 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 445 +#define VAR_IP_RATELIMIT 446 +#define VAR_IP_RATELIMIT_SLABS 447 +#define VAR_IP_RATELIMIT_SIZE 448 +#define VAR_RATELIMIT 449 +#define VAR_RATELIMIT_SLABS 450 +#define VAR_RATELIMIT_SIZE 451 +#define VAR_RATELIMIT_FOR_DOMAIN 452 +#define VAR_RATELIMIT_BELOW_DOMAIN 453 +#define VAR_IP_RATELIMIT_FACTOR 454 +#define VAR_RATELIMIT_FACTOR 455 +#define VAR_SEND_CLIENT_SUBNET 456 +#define VAR_CLIENT_SUBNET_ZONE 457 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 458 +#define VAR_CLIENT_SUBNET_OPCODE 459 +#define VAR_MAX_CLIENT_SUBNET_IPV4 460 +#define VAR_MAX_CLIENT_SUBNET_IPV6 461 +#define VAR_MIN_CLIENT_SUBNET_IPV4 462 +#define VAR_MIN_CLIENT_SUBNET_IPV6 463 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 464 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 465 +#define VAR_CAPS_WHITELIST 466 +#define VAR_CACHE_MAX_NEGATIVE_TTL 467 +#define VAR_PERMIT_SMALL_HOLDDOWN 468 +#define VAR_QNAME_MINIMISATION 469 +#define VAR_QNAME_MINIMISATION_STRICT 470 +#define VAR_IP_FREEBIND 471 +#define VAR_DEFINE_TAG 472 +#define VAR_LOCAL_ZONE_TAG 473 +#define VAR_ACCESS_CONTROL_TAG 474 +#define VAR_LOCAL_ZONE_OVERRIDE 475 +#define VAR_ACCESS_CONTROL_TAG_ACTION 476 +#define VAR_ACCESS_CONTROL_TAG_DATA 477 +#define VAR_VIEW 478 +#define VAR_ACCESS_CONTROL_VIEW 479 +#define VAR_VIEW_FIRST 480 +#define VAR_SERVE_EXPIRED 481 +#define VAR_SERVE_EXPIRED_TTL 482 +#define VAR_SERVE_EXPIRED_TTL_RESET 483 +#define VAR_SERVE_EXPIRED_REPLY_TTL 484 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 485 +#define VAR_SERVE_ORIGINAL_TTL 486 +#define VAR_FAKE_DSA 487 +#define VAR_FAKE_SHA1 488 +#define VAR_LOG_IDENTITY 489 +#define VAR_HIDE_TRUSTANCHOR 490 +#define VAR_TRUST_ANCHOR_SIGNALING 491 +#define VAR_AGGRESSIVE_NSEC 492 +#define VAR_USE_SYSTEMD 493 +#define VAR_SHM_ENABLE 494 +#define VAR_SHM_KEY 495 +#define VAR_ROOT_KEY_SENTINEL 496 +#define VAR_DNSCRYPT 497 +#define VAR_DNSCRYPT_ENABLE 498 +#define VAR_DNSCRYPT_PORT 499 +#define VAR_DNSCRYPT_PROVIDER 500 +#define VAR_DNSCRYPT_SECRET_KEY 501 +#define VAR_DNSCRYPT_PROVIDER_CERT 502 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 503 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 504 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 505 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 506 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 507 +#define VAR_PAD_RESPONSES 508 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 509 +#define VAR_PAD_QUERIES 510 +#define VAR_PAD_QUERIES_BLOCK_SIZE 511 +#define VAR_IPSECMOD_ENABLED 512 +#define VAR_IPSECMOD_HOOK 513 +#define VAR_IPSECMOD_IGNORE_BOGUS 514 +#define VAR_IPSECMOD_MAX_TTL 515 +#define VAR_IPSECMOD_WHITELIST 516 +#define VAR_IPSECMOD_STRICT 517 +#define VAR_CACHEDB 518 +#define VAR_CACHEDB_BACKEND 519 +#define VAR_CACHEDB_SECRETSEED 520 +#define VAR_CACHEDB_REDISHOST 521 +#define VAR_CACHEDB_REDISPORT 522 +#define VAR_CACHEDB_REDISTIMEOUT 523 +#define VAR_CACHEDB_REDISEXPIRERECORDS 524 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 525 +#define VAR_FOR_UPSTREAM 526 +#define VAR_AUTH_ZONE 527 +#define VAR_ZONEFILE 528 +#define VAR_MASTER 529 +#define VAR_URL 530 +#define VAR_FOR_DOWNSTREAM 531 +#define VAR_FALLBACK_ENABLED 532 +#define VAR_TLS_ADDITIONAL_PORT 533 +#define VAR_LOW_RTT 534 +#define VAR_LOW_RTT_PERMIL 535 +#define VAR_FAST_SERVER_PERMIL 536 +#define VAR_FAST_SERVER_NUM 537 +#define VAR_ALLOW_NOTIFY 538 +#define VAR_TLS_WIN_CERT 539 +#define VAR_TCP_CONNECTION_LIMIT 540 +#define VAR_FORWARD_NO_CACHE 541 +#define VAR_STUB_NO_CACHE 542 +#define VAR_LOG_SERVFAIL 543 +#define VAR_DENY_ANY 544 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 545 +#define VAR_LOG_TAG_QUERYREPLY 546 +#define VAR_STREAM_WAIT_SIZE 547 +#define VAR_TLS_CIPHERS 548 +#define VAR_TLS_CIPHERSUITES 549 +#define VAR_TLS_USE_SNI 550 +#define VAR_IPSET 551 +#define VAR_IPSET_NAME_V4 552 +#define VAR_IPSET_NAME_V6 553 +#define VAR_TLS_SESSION_TICKET_KEYS 554 +#define VAR_RPZ 555 +#define VAR_TAGS 556 +#define VAR_RPZ_ACTION_OVERRIDE 557 +#define VAR_RPZ_CNAME_OVERRIDE 558 +#define VAR_RPZ_LOG 559 +#define VAR_RPZ_LOG_NAME 560 +#define VAR_DYNLIB 561 +#define VAR_DYNLIB_FILE 562 +#define VAR_EDNS_CLIENT_STRING 563 +#define VAR_EDNS_CLIENT_STRING_OPCODE 564 +#define VAR_NSID 565 +#define VAR_ZONEMD_PERMISSIVE_MODE 566 +#define VAR_ZONEMD_REJECT_ABSENCE 567 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 66 "./util/configparser.y" +#line 66 "util/configparser.y" char* str; -#line 690 "util/configparser.h" +#line 695 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 10f5ac1c4..6d82938c3 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -100,7 +100,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_PRIVATE_DOMAIN VAR_REMOTE_CONTROL VAR_CONTROL_ENABLE %token VAR_CONTROL_INTERFACE VAR_CONTROL_PORT VAR_SERVER_KEY_FILE %token VAR_SERVER_CERT_FILE VAR_CONTROL_KEY_FILE VAR_CONTROL_CERT_FILE -%token VAR_CONTROL_USE_CERT +%token VAR_CONTROL_USE_CERT VAR_TCP_REUSE_TIMEOUT VAR_MAX_REUSE_TCP_QUERIES %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN @@ -301,7 +301,9 @@ content_server: server_num_threads | server_verbosity | server_port | server_tls_ciphersuites | server_tls_session_ticket_keys | server_tls_use_sni | server_edns_client_string | server_edns_client_string_opcode | server_nsid | - server_zonemd_permissive_mode + server_zonemd_permissive_mode | server_max_reuse_tcp_queries | + server_tcp_reuse_timeout + ; stubstart: VAR_STUB_ZONE { @@ -859,6 +861,28 @@ server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG free($2); } ; +server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi($2); + free($2); + } + ; +server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi($2); + free($2); + } + ; server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG { OUTYY(("P(server_tcp_keepalive:%s)\n", $2)); From c71a7faddde3f5853809c44d9d68a5053ff8f802 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 22 Apr 2021 08:57:50 +0200 Subject: [PATCH 008/156] Changelog note for #466 - Merge #466 from FGasper: Support OpenSSLs that lack SSL_get0_alpn_selected. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index af6ee1ab1..3e7148713 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +22 April 2021: Wouter + - Merge #466 from FGasper: Support OpenSSLs that lack + SSL_get0_alpn_selected. + 13 April 2021: George - Fix documentation comment for files previously residing in checkconf/. - Remove unused functions worker_handle_reply and libworker_handle_reply. From 25425d9aa74347b728bd15e1b70e821159ec0854 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 22 Apr 2021 09:00:15 +0200 Subject: [PATCH 009/156] - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. --- config.h.in | 3 +++ configure | 2 +- doc/Changelog | 1 + util/net_help.c | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config.h.in b/config.h.in index 103ad9f00..fd382694a 100644 --- a/config.h.in +++ b/config.h.in @@ -529,6 +529,9 @@ function. */ #undef HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB +/* Define to 1 if you have the `SSL_get0_alpn_selected' function. */ +#undef HAVE_SSL_GET0_ALPN_SELECTED + /* Define to 1 if you have the `SSL_get0_peername' function. */ #undef HAVE_SSL_GET0_PEERNAME diff --git a/configure b/configure index 266691d42..f86683f76 100755 --- a/configure +++ b/configure @@ -18418,7 +18418,7 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/doc/Changelog b/doc/Changelog index 3e7148713..d6e1e485a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 22 April 2021: Wouter - Merge #466 from FGasper: Support OpenSSLs that lack SSL_get0_alpn_selected. + - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. 13 April 2021: George - Fix documentation comment for files previously residing in checkconf/. diff --git a/util/net_help.c b/util/net_help.c index bcc8d34bd..06bc1f5dd 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -887,7 +887,7 @@ log_cert(unsigned level, const char* str, void* cert) } #endif /* HAVE_SSL */ -#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) +#if defined(HAVE_SSL) && defined(HAVE_NGHTTP2) && defined(HAVE_SSL_CTX_SET_ALPN_SELECT_CB) static int alpn_select_cb(SSL* ATTR_UNUSED(ssl), const unsigned char** out, unsigned char* outlen, const unsigned char* in, unsigned int inlen, void* ATTR_UNUSED(arg)) From a45a7efe694d7524d2d37070b5266453004bd4a1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 22 Apr 2021 09:05:43 +0200 Subject: [PATCH 010/156] - Further fix for #468: detect SSL_CTX_set_alpn_protos for build with OpenSSL 1.0.1. --- config.h.in | 3 +++ configure | 2 +- configure.ac | 2 +- doc/Changelog | 2 ++ testcode/dohclient.c | 2 ++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/config.h.in b/config.h.in index fd382694a..a843d703d 100644 --- a/config.h.in +++ b/config.h.in @@ -516,6 +516,9 @@ /* Define if you have the SSL libraries installed. */ #undef HAVE_SSL +/* Define to 1 if you have the `SSL_CTX_set_alpn_protos' function. */ +#undef HAVE_SSL_CTX_SET_ALPN_PROTOS + /* Define to 1 if you have the `SSL_CTX_set_alpn_select_cb' function. */ #undef HAVE_SSL_CTX_SET_ALPN_SELECT_CB diff --git a/configure b/configure index f86683f76..30e061f35 100755 --- a/configure +++ b/configure @@ -18418,7 +18418,7 @@ done # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected +for ac_func in OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected SSL_CTX_set_alpn_protos do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" diff --git a/configure.ac b/configure.ac index ba5bf0058..14d9b02c2 100644 --- a/configure.ac +++ b/configure.ac @@ -859,7 +859,7 @@ AC_CHECK_FUNCS([OPENSSL_config EVP_sha1 EVP_sha256 EVP_sha512 FIPS_mode EVP_MD_C # these check_funcs need -lssl BAKLIBS="$LIBS" LIBS="-lssl $LIBS" -AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected]) +AC_CHECK_FUNCS([OPENSSL_init_ssl SSL_CTX_set_security_level SSL_set1_host SSL_get0_peername X509_VERIFY_PARAM_set1_host SSL_CTX_set_ciphersuites SSL_CTX_set_tlsext_ticket_key_evp_cb SSL_CTX_set_alpn_select_cb SSL_get0_alpn_selected SSL_CTX_set_alpn_protos]) LIBS="$BAKLIBS" AC_CHECK_DECLS([SSL_COMP_get_compression_methods,sk_SSL_COMP_pop_free,SSL_CTX_set_ecdh_auto], [], [], [ diff --git a/doc/Changelog b/doc/Changelog index d6e1e485a..793b40cf1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,8 @@ - Merge #466 from FGasper: Support OpenSSLs that lack SSL_get0_alpn_selected. - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. + - Further fix for #468: detect SSL_CTX_set_alpn_protos for build with + OpenSSL 1.0.1. 13 April 2021: George - Fix documentation comment for files previously residing in checkconf/. diff --git a/testcode/dohclient.c b/testcode/dohclient.c index 263418049..b00bb15e0 100644 --- a/testcode/dohclient.c +++ b/testcode/dohclient.c @@ -501,7 +501,9 @@ run(struct http2_session* h2_session, int port, int no_tls, int count, char** q) if(!no_tls) { ctx = connect_sslctx_create(NULL, NULL, NULL, 0); if(!ctx) fatal_exit("cannot create ssl ctx"); +#ifdef HAVE_SSL_CTX_SET_ALPN_PROTOS SSL_CTX_set_alpn_protos(ctx, (const unsigned char *)"\x02h2", 3); +#endif ssl = outgoing_ssl_fd(ctx, fd); if(!ssl) { printf("cannot create ssl\n"); From 7226d2f9f24f2047357a192ebb7be9754357fe93 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 22 Apr 2021 09:41:04 +0200 Subject: [PATCH 011/156] - Fix that testcode dohclient has OpenSSL initialisation calls. --- doc/Changelog | 1 + testcode/dohclient.c | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 793b40cf1..85eb78c2a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ - Fix #468: OpenSSL 1.0.1 can no longer build Unbound. - Further fix for #468: detect SSL_CTX_set_alpn_protos for build with OpenSSL 1.0.1. + - Fix that testcode dohclient has OpenSSL initialisation calls. 13 April 2021: George - Fix documentation comment for files previously residing in checkconf/. diff --git a/testcode/dohclient.c b/testcode/dohclient.c index b00bb15e0..0dc039f26 100644 --- a/testcode/dohclient.c +++ b/testcode/dohclient.c @@ -622,7 +622,25 @@ int main(int argc, char** argv) return 1; } - + if(!no_tls) { +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) + ERR_load_SSL_strings(); +#endif +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_CRYPTO) +# ifndef S_SPLINT_S + OpenSSL_add_all_algorithms(); +# endif +#else + OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS + | OPENSSL_INIT_ADD_ALL_DIGESTS + | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); +#endif +#if OPENSSL_VERSION_NUMBER < 0x10100000 || !defined(HAVE_OPENSSL_INIT_SSL) + (void)SSL_library_init(); +#else + (void)OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS, NULL); +#endif + } run(h2_session, port, no_tls, argc, argv); checklock_stop(); From 77451862f0455c532aa9f6d30f8fb429d2f3a609 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 26 Apr 2021 16:07:28 +0200 Subject: [PATCH 012/156] Changelog note for PR #470 - Merge #470 from edevil: Allow configuration of persistent TCP connections. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 85eb78c2a..84572302d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +26 April 2021: Wouter + - Merge #470 from edevil: Allow configuration of persistent TCP + connections. + 22 April 2021: Wouter - Merge #466 from FGasper: Support OpenSSLs that lack SSL_get0_alpn_selected. From 4604f30d704af8f2ec8101428ab4d416bbade5e0 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 28 Apr 2021 14:05:23 +0200 Subject: [PATCH 013/156] - Fix #474: always_null and others inside view. --- doc/Changelog | 3 + util/configparser.c | 2659 +++++++++++++++++++++++++++---------------- util/configparser.h | 11 +- util/configparser.y | 13 +- 4 files changed, 1686 insertions(+), 1000 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 84572302d..977a73136 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +28 April 2021: Wouter + - Fix #474: always_null and others inside view. + 26 April 2021: Wouter - Merge #470 from edevil: Allow configuration of persistent TCP connections. diff --git a/util/configparser.c b/util/configparser.c index 3faf61c5e..3acfe4452 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output, and Bison version. */ -#define YYBISON 30706 +/* Identify Bison output. */ +#define YYBISON 1 -/* Bison version string. */ -#define YYBISON_VERSION "3.7.6" +/* Bison version. */ +#define YYBISON_VERSION "3.6.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -67,7 +67,7 @@ /* First part of user prologue. */ -#line 38 "util/configparser.y" +#line 38 "./util/configparser.y" #include "config.h" @@ -119,7 +119,677 @@ extern struct config_parser_state* cfg_parser; # endif # endif -#include "configparser.h" +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 381, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ + VAR_SSL_SERVICE_KEY = 392, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 393, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 394, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 395, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 396, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 397, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 398, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 399, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 400, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 401, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 402, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 403, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 404, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 405, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 406, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 407, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 408, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 409, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 410, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 411, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 412, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 413, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 414, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 415, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 416, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 417, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 418, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 419, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 420, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 421, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 422, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 423, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 424, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 425, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 426, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 428, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 429, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 430, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 431, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 432, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 439, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 440, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 441, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 442, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 443, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 444, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 445, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 446, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 447, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 448, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 449, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 450, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 451, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 452, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 453, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 454, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 455, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 456, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 457, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 458, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 459, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 460, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 462, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 464, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 466, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 467, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 468, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 469, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 470, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 471, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 472, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 473, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 474, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 475, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 476, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 477, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 478, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 479, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 480, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 481, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 482, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 483, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 484, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 485, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 486, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 487, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 488, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 489, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 490, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 491, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 492, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 493, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 494, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 495, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 496, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 497, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 498, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 499, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 500, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 501, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 502, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 503, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 504, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 506, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 508, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 509, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 510, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 511, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 512, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 513, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 514, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 515, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 516, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 517, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 518, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 519, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 520, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 521, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 522, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 523, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 524, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 525, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 526, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 527, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 528, /* VAR_ZONEFILE */ + VAR_MASTER = 529, /* VAR_MASTER */ + VAR_URL = 530, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 531, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 532, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 533, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 534, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 535, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 536, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 537, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 538, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 539, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 540, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 541, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 542, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 543, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 544, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 545, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 546, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 547, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 548, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 549, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 550, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 551, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 552, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 553, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 554, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 555, /* VAR_RPZ */ + VAR_TAGS = 556, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 557, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 558, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 559, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 560, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 561, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 562, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 563, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 564, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 565, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 566, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_REJECT_ABSENCE = 567 /* VAR_ZONEMD_REJECT_ABSENCE */ + }; + typedef enum yytokentype yytoken_kind_t; +#endif +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 +#define SPACE 258 +#define LETTER 259 +#define NEWLINE 260 +#define COMMENT 261 +#define COLON 262 +#define ANY 263 +#define ZONESTR 264 +#define STRING_ARG 265 +#define VAR_FORCE_TOPLEVEL 266 +#define VAR_SERVER 267 +#define VAR_VERBOSITY 268 +#define VAR_NUM_THREADS 269 +#define VAR_PORT 270 +#define VAR_OUTGOING_RANGE 271 +#define VAR_INTERFACE 272 +#define VAR_PREFER_IP4 273 +#define VAR_DO_IP4 274 +#define VAR_DO_IP6 275 +#define VAR_PREFER_IP6 276 +#define VAR_DO_UDP 277 +#define VAR_DO_TCP 278 +#define VAR_TCP_MSS 279 +#define VAR_OUTGOING_TCP_MSS 280 +#define VAR_TCP_IDLE_TIMEOUT 281 +#define VAR_EDNS_TCP_KEEPALIVE 282 +#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 +#define VAR_CHROOT 284 +#define VAR_USERNAME 285 +#define VAR_DIRECTORY 286 +#define VAR_LOGFILE 287 +#define VAR_PIDFILE 288 +#define VAR_MSG_CACHE_SIZE 289 +#define VAR_MSG_CACHE_SLABS 290 +#define VAR_NUM_QUERIES_PER_THREAD 291 +#define VAR_RRSET_CACHE_SIZE 292 +#define VAR_RRSET_CACHE_SLABS 293 +#define VAR_OUTGOING_NUM_TCP 294 +#define VAR_INFRA_HOST_TTL 295 +#define VAR_INFRA_LAME_TTL 296 +#define VAR_INFRA_CACHE_SLABS 297 +#define VAR_INFRA_CACHE_NUMHOSTS 298 +#define VAR_INFRA_CACHE_LAME_SIZE 299 +#define VAR_NAME 300 +#define VAR_STUB_ZONE 301 +#define VAR_STUB_HOST 302 +#define VAR_STUB_ADDR 303 +#define VAR_TARGET_FETCH_POLICY 304 +#define VAR_HARDEN_SHORT_BUFSIZE 305 +#define VAR_HARDEN_LARGE_QUERIES 306 +#define VAR_FORWARD_ZONE 307 +#define VAR_FORWARD_HOST 308 +#define VAR_FORWARD_ADDR 309 +#define VAR_DO_NOT_QUERY_ADDRESS 310 +#define VAR_HIDE_IDENTITY 311 +#define VAR_HIDE_VERSION 312 +#define VAR_IDENTITY 313 +#define VAR_VERSION 314 +#define VAR_HARDEN_GLUE 315 +#define VAR_MODULE_CONF 316 +#define VAR_TRUST_ANCHOR_FILE 317 +#define VAR_TRUST_ANCHOR 318 +#define VAR_VAL_OVERRIDE_DATE 319 +#define VAR_BOGUS_TTL 320 +#define VAR_VAL_CLEAN_ADDITIONAL 321 +#define VAR_VAL_PERMISSIVE_MODE 322 +#define VAR_INCOMING_NUM_TCP 323 +#define VAR_MSG_BUFFER_SIZE 324 +#define VAR_KEY_CACHE_SIZE 325 +#define VAR_KEY_CACHE_SLABS 326 +#define VAR_TRUSTED_KEYS_FILE 327 +#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 +#define VAR_USE_SYSLOG 329 +#define VAR_OUTGOING_INTERFACE 330 +#define VAR_ROOT_HINTS 331 +#define VAR_DO_NOT_QUERY_LOCALHOST 332 +#define VAR_CACHE_MAX_TTL 333 +#define VAR_HARDEN_DNSSEC_STRIPPED 334 +#define VAR_ACCESS_CONTROL 335 +#define VAR_LOCAL_ZONE 336 +#define VAR_LOCAL_DATA 337 +#define VAR_INTERFACE_AUTOMATIC 338 +#define VAR_STATISTICS_INTERVAL 339 +#define VAR_DO_DAEMONIZE 340 +#define VAR_USE_CAPS_FOR_ID 341 +#define VAR_STATISTICS_CUMULATIVE 342 +#define VAR_OUTGOING_PORT_PERMIT 343 +#define VAR_OUTGOING_PORT_AVOID 344 +#define VAR_DLV_ANCHOR_FILE 345 +#define VAR_DLV_ANCHOR 346 +#define VAR_NEG_CACHE_SIZE 347 +#define VAR_HARDEN_REFERRAL_PATH 348 +#define VAR_PRIVATE_ADDRESS 349 +#define VAR_PRIVATE_DOMAIN 350 +#define VAR_REMOTE_CONTROL 351 +#define VAR_CONTROL_ENABLE 352 +#define VAR_CONTROL_INTERFACE 353 +#define VAR_CONTROL_PORT 354 +#define VAR_SERVER_KEY_FILE 355 +#define VAR_SERVER_CERT_FILE 356 +#define VAR_CONTROL_KEY_FILE 357 +#define VAR_CONTROL_CERT_FILE 358 +#define VAR_CONTROL_USE_CERT 359 +#define VAR_TCP_REUSE_TIMEOUT 360 +#define VAR_MAX_REUSE_TCP_QUERIES 361 +#define VAR_EXTENDED_STATISTICS 362 +#define VAR_LOCAL_DATA_PTR 363 +#define VAR_JOSTLE_TIMEOUT 364 +#define VAR_STUB_PRIME 365 +#define VAR_UNWANTED_REPLY_THRESHOLD 366 +#define VAR_LOG_TIME_ASCII 367 +#define VAR_DOMAIN_INSECURE 368 +#define VAR_PYTHON 369 +#define VAR_PYTHON_SCRIPT 370 +#define VAR_VAL_SIG_SKEW_MIN 371 +#define VAR_VAL_SIG_SKEW_MAX 372 +#define VAR_CACHE_MIN_TTL 373 +#define VAR_VAL_LOG_LEVEL 374 +#define VAR_AUTO_TRUST_ANCHOR_FILE 375 +#define VAR_KEEP_MISSING 376 +#define VAR_ADD_HOLDDOWN 377 +#define VAR_DEL_HOLDDOWN 378 +#define VAR_SO_RCVBUF 379 +#define VAR_EDNS_BUFFER_SIZE 380 +#define VAR_PREFETCH 381 +#define VAR_PREFETCH_KEY 382 +#define VAR_SO_SNDBUF 383 +#define VAR_SO_REUSEPORT 384 +#define VAR_HARDEN_BELOW_NXDOMAIN 385 +#define VAR_IGNORE_CD_FLAG 386 +#define VAR_LOG_QUERIES 387 +#define VAR_LOG_REPLIES 388 +#define VAR_LOG_LOCAL_ACTIONS 389 +#define VAR_TCP_UPSTREAM 390 +#define VAR_SSL_UPSTREAM 391 +#define VAR_SSL_SERVICE_KEY 392 +#define VAR_SSL_SERVICE_PEM 393 +#define VAR_SSL_PORT 394 +#define VAR_FORWARD_FIRST 395 +#define VAR_STUB_SSL_UPSTREAM 396 +#define VAR_FORWARD_SSL_UPSTREAM 397 +#define VAR_TLS_CERT_BUNDLE 398 +#define VAR_HTTPS_PORT 399 +#define VAR_HTTP_ENDPOINT 400 +#define VAR_HTTP_MAX_STREAMS 401 +#define VAR_HTTP_QUERY_BUFFER_SIZE 402 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 403 +#define VAR_HTTP_NODELAY 404 +#define VAR_HTTP_NOTLS_DOWNSTREAM 405 +#define VAR_STUB_FIRST 406 +#define VAR_MINIMAL_RESPONSES 407 +#define VAR_RRSET_ROUNDROBIN 408 +#define VAR_MAX_UDP_SIZE 409 +#define VAR_DELAY_CLOSE 410 +#define VAR_UDP_CONNECT 411 +#define VAR_UNBLOCK_LAN_ZONES 412 +#define VAR_INSECURE_LAN_ZONES 413 +#define VAR_INFRA_CACHE_MIN_RTT 414 +#define VAR_INFRA_KEEP_PROBING 415 +#define VAR_DNS64_PREFIX 416 +#define VAR_DNS64_SYNTHALL 417 +#define VAR_DNS64_IGNORE_AAAA 418 +#define VAR_DNSTAP 419 +#define VAR_DNSTAP_ENABLE 420 +#define VAR_DNSTAP_SOCKET_PATH 421 +#define VAR_DNSTAP_IP 422 +#define VAR_DNSTAP_TLS 423 +#define VAR_DNSTAP_TLS_SERVER_NAME 424 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 425 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 426 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 427 +#define VAR_DNSTAP_SEND_IDENTITY 428 +#define VAR_DNSTAP_SEND_VERSION 429 +#define VAR_DNSTAP_BIDIRECTIONAL 430 +#define VAR_DNSTAP_IDENTITY 431 +#define VAR_DNSTAP_VERSION 432 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 433 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 434 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 436 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 438 +#define VAR_RESPONSE_IP_TAG 439 +#define VAR_RESPONSE_IP 440 +#define VAR_RESPONSE_IP_DATA 441 +#define VAR_HARDEN_ALGO_DOWNGRADE 442 +#define VAR_IP_TRANSPARENT 443 +#define VAR_IP_DSCP 444 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 445 +#define VAR_IP_RATELIMIT 446 +#define VAR_IP_RATELIMIT_SLABS 447 +#define VAR_IP_RATELIMIT_SIZE 448 +#define VAR_RATELIMIT 449 +#define VAR_RATELIMIT_SLABS 450 +#define VAR_RATELIMIT_SIZE 451 +#define VAR_RATELIMIT_FOR_DOMAIN 452 +#define VAR_RATELIMIT_BELOW_DOMAIN 453 +#define VAR_IP_RATELIMIT_FACTOR 454 +#define VAR_RATELIMIT_FACTOR 455 +#define VAR_SEND_CLIENT_SUBNET 456 +#define VAR_CLIENT_SUBNET_ZONE 457 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 458 +#define VAR_CLIENT_SUBNET_OPCODE 459 +#define VAR_MAX_CLIENT_SUBNET_IPV4 460 +#define VAR_MAX_CLIENT_SUBNET_IPV6 461 +#define VAR_MIN_CLIENT_SUBNET_IPV4 462 +#define VAR_MIN_CLIENT_SUBNET_IPV6 463 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 464 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 465 +#define VAR_CAPS_WHITELIST 466 +#define VAR_CACHE_MAX_NEGATIVE_TTL 467 +#define VAR_PERMIT_SMALL_HOLDDOWN 468 +#define VAR_QNAME_MINIMISATION 469 +#define VAR_QNAME_MINIMISATION_STRICT 470 +#define VAR_IP_FREEBIND 471 +#define VAR_DEFINE_TAG 472 +#define VAR_LOCAL_ZONE_TAG 473 +#define VAR_ACCESS_CONTROL_TAG 474 +#define VAR_LOCAL_ZONE_OVERRIDE 475 +#define VAR_ACCESS_CONTROL_TAG_ACTION 476 +#define VAR_ACCESS_CONTROL_TAG_DATA 477 +#define VAR_VIEW 478 +#define VAR_ACCESS_CONTROL_VIEW 479 +#define VAR_VIEW_FIRST 480 +#define VAR_SERVE_EXPIRED 481 +#define VAR_SERVE_EXPIRED_TTL 482 +#define VAR_SERVE_EXPIRED_TTL_RESET 483 +#define VAR_SERVE_EXPIRED_REPLY_TTL 484 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 485 +#define VAR_SERVE_ORIGINAL_TTL 486 +#define VAR_FAKE_DSA 487 +#define VAR_FAKE_SHA1 488 +#define VAR_LOG_IDENTITY 489 +#define VAR_HIDE_TRUSTANCHOR 490 +#define VAR_TRUST_ANCHOR_SIGNALING 491 +#define VAR_AGGRESSIVE_NSEC 492 +#define VAR_USE_SYSTEMD 493 +#define VAR_SHM_ENABLE 494 +#define VAR_SHM_KEY 495 +#define VAR_ROOT_KEY_SENTINEL 496 +#define VAR_DNSCRYPT 497 +#define VAR_DNSCRYPT_ENABLE 498 +#define VAR_DNSCRYPT_PORT 499 +#define VAR_DNSCRYPT_PROVIDER 500 +#define VAR_DNSCRYPT_SECRET_KEY 501 +#define VAR_DNSCRYPT_PROVIDER_CERT 502 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 503 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 504 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 505 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 506 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 507 +#define VAR_PAD_RESPONSES 508 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 509 +#define VAR_PAD_QUERIES 510 +#define VAR_PAD_QUERIES_BLOCK_SIZE 511 +#define VAR_IPSECMOD_ENABLED 512 +#define VAR_IPSECMOD_HOOK 513 +#define VAR_IPSECMOD_IGNORE_BOGUS 514 +#define VAR_IPSECMOD_MAX_TTL 515 +#define VAR_IPSECMOD_WHITELIST 516 +#define VAR_IPSECMOD_STRICT 517 +#define VAR_CACHEDB 518 +#define VAR_CACHEDB_BACKEND 519 +#define VAR_CACHEDB_SECRETSEED 520 +#define VAR_CACHEDB_REDISHOST 521 +#define VAR_CACHEDB_REDISPORT 522 +#define VAR_CACHEDB_REDISTIMEOUT 523 +#define VAR_CACHEDB_REDISEXPIRERECORDS 524 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 525 +#define VAR_FOR_UPSTREAM 526 +#define VAR_AUTH_ZONE 527 +#define VAR_ZONEFILE 528 +#define VAR_MASTER 529 +#define VAR_URL 530 +#define VAR_FOR_DOWNSTREAM 531 +#define VAR_FALLBACK_ENABLED 532 +#define VAR_TLS_ADDITIONAL_PORT 533 +#define VAR_LOW_RTT 534 +#define VAR_LOW_RTT_PERMIL 535 +#define VAR_FAST_SERVER_PERMIL 536 +#define VAR_FAST_SERVER_NUM 537 +#define VAR_ALLOW_NOTIFY 538 +#define VAR_TLS_WIN_CERT 539 +#define VAR_TCP_CONNECTION_LIMIT 540 +#define VAR_FORWARD_NO_CACHE 541 +#define VAR_STUB_NO_CACHE 542 +#define VAR_LOG_SERVFAIL 543 +#define VAR_DENY_ANY 544 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 545 +#define VAR_LOG_TAG_QUERYREPLY 546 +#define VAR_STREAM_WAIT_SIZE 547 +#define VAR_TLS_CIPHERS 548 +#define VAR_TLS_CIPHERSUITES 549 +#define VAR_TLS_USE_SNI 550 +#define VAR_IPSET 551 +#define VAR_IPSET_NAME_V4 552 +#define VAR_IPSET_NAME_V6 553 +#define VAR_TLS_SESSION_TICKET_KEYS 554 +#define VAR_RPZ 555 +#define VAR_TAGS 556 +#define VAR_RPZ_ACTION_OVERRIDE 557 +#define VAR_RPZ_CNAME_OVERRIDE 558 +#define VAR_RPZ_LOG 559 +#define VAR_RPZ_LOG_NAME 560 +#define VAR_DYNLIB 561 +#define VAR_DYNLIB_FILE 562 +#define VAR_EDNS_CLIENT_STRING 563 +#define VAR_EDNS_CLIENT_STRING_OPCODE 564 +#define VAR_NSID 565 +#define VAR_ZONEMD_PERMISSIVE_MODE 566 +#define VAR_ZONEMD_REJECT_ABSENCE 567 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 66 "./util/configparser.y" + + char* str; + +#line 780 "util/configparser.c" + +}; +typedef union YYSTYPE YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ /* Symbol kind. */ enum yysymbol_kind_t { @@ -818,18 +1488,6 @@ typedef int_least16_t yytype_int16; typedef short yytype_int16; #endif -/* Work around bug in HP-UX 11.23, which defines these macros - incorrectly for preprocessor constants. This workaround can likely - be removed in 2023, as HPE has promised support for HP-UX 11.23 - (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of - . */ -#ifdef __hpux -# undef UINT_LEAST8_MAX -# undef UINT_LEAST16_MAX -# define UINT_LEAST8_MAX 255 -# define UINT_LEAST16_MAX 65535 -#endif - #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -927,9 +1585,9 @@ typedef int yy_state_fast_t; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YY_USE(E) ((void) (E)) +# define YYUSE(E) ((void) (E)) #else -# define YY_USE(E) /* empty */ +# define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -1107,7 +1765,6 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 969 -/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 567 @@ -1237,20 +1894,20 @@ static const yytype_int16 yyrline[] = 2470, 2480, 2490, 2500, 2509, 2519, 2528, 2541, 2554, 2566, 2580, 2592, 2606, 2615, 2627, 2637, 2644, 2651, 2660, 2669, 2679, 2689, 2699, 2706, 2713, 2722, 2731, 2741, 2751, 2758, - 2765, 2772, 2780, 2790, 2800, 2810, 2820, 2830, 2869, 2879, - 2887, 2895, 2910, 2919, 2924, 2925, 2926, 2926, 2926, 2927, - 2927, 2927, 2928, 2928, 2930, 2940, 2949, 2956, 2963, 2970, - 2977, 2984, 2991, 2996, 2997, 2998, 2998, 2998, 2999, 2999, - 2999, 3000, 3001, 3001, 3002, 3002, 3003, 3003, 3004, 3005, - 3006, 3007, 3008, 3009, 3011, 3020, 3030, 3037, 3044, 3053, - 3060, 3067, 3074, 3081, 3090, 3099, 3106, 3113, 3123, 3133, - 3143, 3153, 3163, 3173, 3178, 3179, 3180, 3182, 3188, 3193, - 3194, 3195, 3197, 3203, 3213, 3220, 3229, 3237, 3242, 3243, - 3245, 3245, 3245, 3246, 3246, 3247, 3248, 3249, 3250, 3251, - 3253, 3263, 3272, 3279, 3288, 3295, 3304, 3312, 3325, 3333, - 3346, 3351, 3352, 3353, 3353, 3354, 3354, 3354, 3355, 3357, - 3369, 3381, 3393, 3408, 3421, 3434, 3445, 3450, 3451, 3452, - 3452, 3454, 3469 + 2765, 2772, 2780, 2790, 2800, 2810, 2820, 2830, 2876, 2886, + 2894, 2902, 2917, 2926, 2931, 2932, 2933, 2933, 2933, 2934, + 2934, 2934, 2935, 2935, 2937, 2947, 2956, 2963, 2970, 2977, + 2984, 2991, 2998, 3003, 3004, 3005, 3005, 3005, 3006, 3006, + 3006, 3007, 3008, 3008, 3009, 3009, 3010, 3010, 3011, 3012, + 3013, 3014, 3015, 3016, 3018, 3027, 3037, 3044, 3051, 3060, + 3067, 3074, 3081, 3088, 3097, 3106, 3113, 3120, 3130, 3140, + 3150, 3160, 3170, 3180, 3185, 3186, 3187, 3189, 3195, 3200, + 3201, 3202, 3204, 3210, 3220, 3227, 3236, 3244, 3249, 3250, + 3252, 3252, 3252, 3253, 3253, 3254, 3255, 3256, 3257, 3258, + 3260, 3270, 3279, 3286, 3295, 3302, 3311, 3319, 3332, 3340, + 3353, 3358, 3359, 3360, 3360, 3361, 3361, 3361, 3362, 3364, + 3376, 3388, 3400, 3415, 3428, 3441, 3452, 3457, 3458, 3459, + 3459, 3461, 3476 }; #endif @@ -1826,7 +2483,7 @@ static const yytype_int16 yypgoto[] = /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 1, 17, 18, 19, 32, 259, 20, 33, 481, + -1, 1, 17, 18, 19, 32, 259, 20, 33, 481, 21, 34, 495, 22, 35, 509, 23, 36, 526, 541, 542, 543, 544, 545, 24, 37, 546, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, @@ -2328,7 +2985,7 @@ yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YY_USE (yyoutput); + YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT @@ -2336,7 +2993,7 @@ yy_symbol_value_print (FILE *yyo, YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); + YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -2450,18 +3107,18 @@ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YY_USE (yyvaluep); + YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YY_USE (yykind); + YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } -/* Lookahead token kind. */ +/* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -2479,30 +3136,34 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate = 0; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus = 0; + int yyerrstatus; - /* Refer to the stacks through separate pointers, to allow yyoverflow + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize = YYINITDEPTH; + YYPTRDIFF_T yystacksize; - /* The state stack: array, bottom, top. */ + /* The state stack. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss = yyssa; - yy_state_t *yyssp = yyss; + yy_state_t *yyss; + yy_state_t *yyssp; - /* The semantic value stack: array, bottom, top. */ + /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp = yyvs; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead symbol kind. */ + /* Lookahead token as an internal (translated) token number. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -2516,6 +3177,15 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; + yynerrs = 0; + yystate = 0; + yyerrstatus = 0; + + yystacksize = YYINITDEPTH; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + + YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -2716,24 +3386,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ -#line 198 "util/configparser.y" + case 18: +#line 198 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2725 "util/configparser.c" +#line 3395 "util/configparser.c" break; - case 19: /* serverstart: VAR_SERVER */ -#line 204 "util/configparser.y" + case 19: +#line 204 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2733 "util/configparser.c" +#line 3403 "util/configparser.c" break; - case 236: /* stubstart: VAR_STUB_ZONE */ -#line 309 "util/configparser.y" + case 236: +#line 309 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2744,11 +3414,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2748 "util/configparser.c" +#line 3418 "util/configparser.c" break; - case 246: /* forwardstart: VAR_FORWARD_ZONE */ -#line 326 "util/configparser.y" + case 246: +#line 326 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2759,11 +3429,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2763 "util/configparser.c" +#line 3433 "util/configparser.c" break; - case 255: /* viewstart: VAR_VIEW */ -#line 343 "util/configparser.y" + case 255: +#line 343 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2776,11 +3446,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2780 "util/configparser.c" +#line 3450 "util/configparser.c" break; - case 265: /* authstart: VAR_AUTH_ZONE */ -#line 362 "util/configparser.y" + case 265: +#line 362 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2797,11 +3467,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2801 "util/configparser.c" +#line 3471 "util/configparser.c" break; - case 277: /* rpz_tag: VAR_TAGS STRING_ARG */ -#line 387 "util/configparser.y" + case 277: +#line 387 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2818,11 +3488,11 @@ yyreduce: } } -#line 2822 "util/configparser.c" +#line 3492 "util/configparser.c" break; - case 278: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ -#line 406 "util/configparser.y" + case 278: +#line 406 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -2837,21 +3507,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2841 "util/configparser.c" +#line 3511 "util/configparser.c" break; - case 279: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ -#line 423 "util/configparser.y" + case 279: +#line 423 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 2851 "util/configparser.c" +#line 3521 "util/configparser.c" break; - case 280: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ -#line 431 "util/configparser.y" + case 280: +#line 431 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2859,21 +3529,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2863 "util/configparser.c" +#line 3533 "util/configparser.c" break; - case 281: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ -#line 441 "util/configparser.y" + case 281: +#line 441 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 2873 "util/configparser.c" +#line 3543 "util/configparser.c" break; - case 282: /* rpzstart: VAR_RPZ */ -#line 449 "util/configparser.y" + case 282: +#line 449 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2889,11 +3559,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2893 "util/configparser.c" +#line 3563 "util/configparser.c" break; - case 295: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ -#line 472 "util/configparser.y" + case 295: +#line 472 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2901,11 +3571,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2905 "util/configparser.c" +#line 3575 "util/configparser.c" break; - case 296: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ -#line 481 "util/configparser.y" + case 296: +#line 481 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2913,11 +3583,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2917 "util/configparser.c" +#line 3587 "util/configparser.c" break; - case 297: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ -#line 490 "util/configparser.y" + case 297: +#line 490 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2927,11 +3597,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2931 "util/configparser.c" +#line 3601 "util/configparser.c" break; - case 298: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ -#line 501 "util/configparser.y" + case 298: +#line 501 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2939,11 +3609,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2943 "util/configparser.c" +#line 3613 "util/configparser.c" break; - case 299: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ -#line 510 "util/configparser.y" + case 299: +#line 510 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2951,11 +3621,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2955 "util/configparser.c" +#line 3625 "util/configparser.c" break; - case 300: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ -#line 519 "util/configparser.y" + case 300: +#line 519 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2963,11 +3633,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2967 "util/configparser.c" +#line 3637 "util/configparser.c" break; - case 301: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ -#line 528 "util/configparser.y" + case 301: +#line 528 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -2977,11 +3647,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2981 "util/configparser.c" +#line 3651 "util/configparser.c" break; - case 302: /* server_port: VAR_PORT STRING_ARG */ -#line 539 "util/configparser.y" + case 302: +#line 539 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2989,11 +3659,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2993 "util/configparser.c" +#line 3663 "util/configparser.c" break; - case 303: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ -#line 548 "util/configparser.y" + case 303: +#line 548 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3004,11 +3674,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3008 "util/configparser.c" +#line 3678 "util/configparser.c" break; - case 304: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ -#line 560 "util/configparser.y" + case 304: +#line 560 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3020,11 +3690,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3024 "util/configparser.c" +#line 3694 "util/configparser.c" break; - case 305: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ -#line 574 "util/configparser.y" + case 305: +#line 574 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3038,11 +3708,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3042 "util/configparser.c" +#line 3712 "util/configparser.c" break; - case 306: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ -#line 589 "util/configparser.y" + case 306: +#line 589 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3052,11 +3722,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3056 "util/configparser.c" +#line 3726 "util/configparser.c" break; - case 307: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 600 "util/configparser.y" + case 307: +#line 600 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3072,11 +3742,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3076 "util/configparser.c" +#line 3746 "util/configparser.c" break; - case 308: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 617 "util/configparser.y" + case 308: +#line 617 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3092,11 +3762,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3096 "util/configparser.c" +#line 3766 "util/configparser.c" break; - case 309: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 634 "util/configparser.y" + case 309: +#line 634 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3112,11 +3782,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3116 "util/configparser.c" +#line 3786 "util/configparser.c" break; - case 310: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 651 "util/configparser.y" + case 310: +#line 651 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3132,11 +3802,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3136 "util/configparser.c" +#line 3806 "util/configparser.c" break; - case 311: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ -#line 668 "util/configparser.y" + case 311: +#line 668 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3150,11 +3820,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3154 "util/configparser.c" +#line 3824 "util/configparser.c" break; - case 312: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ -#line 683 "util/configparser.y" + case 312: +#line 683 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3168,11 +3838,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3172 "util/configparser.c" +#line 3842 "util/configparser.c" break; - case 313: /* server_interface: VAR_INTERFACE STRING_ARG */ -#line 698 "util/configparser.y" + case 313: +#line 698 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3184,11 +3854,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3188 "util/configparser.c" +#line 3858 "util/configparser.c" break; - case 314: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ -#line 711 "util/configparser.y" + case 314: +#line 711 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3202,11 +3872,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3206 "util/configparser.c" +#line 3876 "util/configparser.c" break; - case 315: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ -#line 726 "util/configparser.y" + case 315: +#line 726 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3214,11 +3884,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3218 "util/configparser.c" +#line 3888 "util/configparser.c" break; - case 316: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ -#line 735 "util/configparser.y" + case 316: +#line 735 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3226,11 +3896,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3230 "util/configparser.c" +#line 3900 "util/configparser.c" break; - case 317: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ -#line 744 "util/configparser.y" + case 317: +#line 744 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3238,11 +3908,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3242 "util/configparser.c" +#line 3912 "util/configparser.c" break; - case 318: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ -#line 753 "util/configparser.y" + case 318: +#line 753 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3250,11 +3920,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3254 "util/configparser.c" +#line 3924 "util/configparser.c" break; - case 319: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ -#line 762 "util/configparser.y" + case 319: +#line 762 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3262,11 +3932,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3266 "util/configparser.c" +#line 3936 "util/configparser.c" break; - case 320: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ -#line 771 "util/configparser.y" + case 320: +#line 771 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3274,11 +3944,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3278 "util/configparser.c" +#line 3948 "util/configparser.c" break; - case 321: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ -#line 780 "util/configparser.y" + case 321: +#line 780 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3286,11 +3956,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3290 "util/configparser.c" +#line 3960 "util/configparser.c" break; - case 322: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ -#line 789 "util/configparser.y" + case 322: +#line 789 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3298,11 +3968,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3302 "util/configparser.c" +#line 3972 "util/configparser.c" break; - case 323: /* server_do_udp: VAR_DO_UDP STRING_ARG */ -#line 798 "util/configparser.y" + case 323: +#line 798 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3310,11 +3980,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3314 "util/configparser.c" +#line 3984 "util/configparser.c" break; - case 324: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ -#line 807 "util/configparser.y" + case 324: +#line 807 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3322,11 +3992,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3326 "util/configparser.c" +#line 3996 "util/configparser.c" break; - case 325: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ -#line 816 "util/configparser.y" + case 325: +#line 816 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3334,11 +4004,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3338 "util/configparser.c" +#line 4008 "util/configparser.c" break; - case 326: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ -#line 825 "util/configparser.y" + case 326: +#line 825 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3346,11 +4016,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3350 "util/configparser.c" +#line 4020 "util/configparser.c" break; - case 327: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ -#line 834 "util/configparser.y" + case 327: +#line 834 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3358,11 +4028,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3362 "util/configparser.c" +#line 4032 "util/configparser.c" break; - case 328: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ -#line 843 "util/configparser.y" + case 328: +#line 843 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3370,11 +4040,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3374 "util/configparser.c" +#line 4044 "util/configparser.c" break; - case 329: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ -#line 852 "util/configparser.y" + case 329: +#line 852 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3386,11 +4056,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3390 "util/configparser.c" +#line 4060 "util/configparser.c" break; - case 330: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ -#line 865 "util/configparser.y" + case 330: +#line 865 "./util/configparser.y" { OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3400,11 +4070,11 @@ yyreduce: else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3404 "util/configparser.c" +#line 4074 "util/configparser.c" break; - case 331: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ -#line 876 "util/configparser.y" + case 331: +#line 876 "./util/configparser.y" { OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3414,11 +4084,11 @@ yyreduce: else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3418 "util/configparser.c" +#line 4088 "util/configparser.c" break; - case 332: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ -#line 887 "util/configparser.y" + case 332: +#line 887 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3426,11 +4096,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3430 "util/configparser.c" +#line 4100 "util/configparser.c" break; - case 333: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ -#line 896 "util/configparser.y" + case 333: +#line 896 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3442,11 +4112,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3446 "util/configparser.c" +#line 4116 "util/configparser.c" break; - case 334: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ -#line 909 "util/configparser.y" + case 334: +#line 909 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3454,11 +4124,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3458 "util/configparser.c" +#line 4128 "util/configparser.c" break; - case 335: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ -#line 918 "util/configparser.y" + case 335: +#line 918 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3466,11 +4136,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3470 "util/configparser.c" +#line 4140 "util/configparser.c" break; - case 336: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ -#line 927 "util/configparser.y" + case 336: +#line 927 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3478,31 +4148,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3482 "util/configparser.c" +#line 4152 "util/configparser.c" break; - case 337: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ -#line 936 "util/configparser.y" + case 337: +#line 936 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 3492 "util/configparser.c" +#line 4162 "util/configparser.c" break; - case 338: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ -#line 943 "util/configparser.y" + case 338: +#line 943 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 3502 "util/configparser.c" +#line 4172 "util/configparser.c" break; - case 339: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ -#line 950 "util/configparser.y" + case 339: +#line 950 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3510,21 +4180,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3514 "util/configparser.c" +#line 4184 "util/configparser.c" break; - case 340: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ -#line 959 "util/configparser.y" + case 340: +#line 959 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3524 "util/configparser.c" +#line 4194 "util/configparser.c" break; - case 341: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ -#line 966 "util/configparser.y" + case 341: +#line 966 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3532,53 +4202,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3536 "util/configparser.c" +#line 4206 "util/configparser.c" break; - case 342: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ -#line 975 "util/configparser.y" + case 342: +#line 975 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3547 "util/configparser.c" +#line 4217 "util/configparser.c" break; - case 343: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ -#line 983 "util/configparser.y" + case 343: +#line 983 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 3557 "util/configparser.c" +#line 4227 "util/configparser.c" break; - case 344: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ -#line 990 "util/configparser.y" + case 344: +#line 990 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 3567 "util/configparser.c" +#line 4237 "util/configparser.c" break; - case 345: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ -#line 997 "util/configparser.y" + case 345: +#line 997 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3578 "util/configparser.c" +#line 4248 "util/configparser.c" break; - case 346: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ -#line 1005 "util/configparser.y" + case 346: +#line 1005 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3586,11 +4256,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3590 "util/configparser.c" +#line 4260 "util/configparser.c" break; - case 347: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ -#line 1014 "util/configparser.y" + case 347: +#line 1014 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3598,11 +4268,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3602 "util/configparser.c" +#line 4272 "util/configparser.c" break; - case 348: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ -#line 1022 "util/configparser.y" + case 348: +#line 1022 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3618,11 +4288,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3622 "util/configparser.c" +#line 4292 "util/configparser.c" break; - case 349: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ -#line 1038 "util/configparser.y" + case 349: +#line 1038 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3630,11 +4300,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" +#line 4304 "util/configparser.c" break; - case 350: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ -#line 1046 "util/configparser.y" + case 350: +#line 1046 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3642,11 +4312,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3646 "util/configparser.c" +#line 4316 "util/configparser.c" break; - case 351: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ -#line 1054 "util/configparser.y" + case 351: +#line 1054 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3654,11 +4324,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3658 "util/configparser.c" +#line 4328 "util/configparser.c" break; - case 352: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ -#line 1062 "util/configparser.y" + case 352: +#line 1062 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3666,11 +4336,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3670 "util/configparser.c" +#line 4340 "util/configparser.c" break; - case 353: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ -#line 1070 "util/configparser.y" + case 353: +#line 1070 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3678,11 +4348,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3682 "util/configparser.c" +#line 4352 "util/configparser.c" break; - case 354: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ -#line 1078 "util/configparser.y" + case 354: +#line 1078 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3690,11 +4360,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3694 "util/configparser.c" +#line 4364 "util/configparser.c" break; - case 355: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ -#line 1087 "util/configparser.y" + case 355: +#line 1087 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3702,11 +4372,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3706 "util/configparser.c" +#line 4376 "util/configparser.c" break; - case 356: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ -#line 1096 "util/configparser.y" + case 356: +#line 1096 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3719,11 +4389,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3723 "util/configparser.c" +#line 4393 "util/configparser.c" break; - case 357: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ -#line 1110 "util/configparser.y" + case 357: +#line 1110 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3731,11 +4401,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3735 "util/configparser.c" +#line 4405 "util/configparser.c" break; - case 358: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ -#line 1119 "util/configparser.y" + case 358: +#line 1119 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3743,11 +4413,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3747 "util/configparser.c" +#line 4417 "util/configparser.c" break; - case 359: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ -#line 1128 "util/configparser.y" + case 359: +#line 1128 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3755,11 +4425,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3759 "util/configparser.c" +#line 4429 "util/configparser.c" break; - case 360: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ -#line 1137 "util/configparser.y" + case 360: +#line 1137 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3767,11 +4437,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3771 "util/configparser.c" +#line 4441 "util/configparser.c" break; - case 361: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ -#line 1146 "util/configparser.y" + case 361: +#line 1146 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3779,11 +4449,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3783 "util/configparser.c" +#line 4453 "util/configparser.c" break; - case 362: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ -#line 1155 "util/configparser.y" + case 362: +#line 1155 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3791,31 +4461,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3795 "util/configparser.c" +#line 4465 "util/configparser.c" break; - case 363: /* server_chroot: VAR_CHROOT STRING_ARG */ -#line 1164 "util/configparser.y" + case 363: +#line 1164 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3805 "util/configparser.c" +#line 4475 "util/configparser.c" break; - case 364: /* server_username: VAR_USERNAME STRING_ARG */ -#line 1171 "util/configparser.y" + case 364: +#line 1171 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3815 "util/configparser.c" +#line 4485 "util/configparser.c" break; - case 365: /* server_directory: VAR_DIRECTORY STRING_ARG */ -#line 1178 "util/configparser.y" + case 365: +#line 1178 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3840,105 +4510,105 @@ yyreduce: } } } -#line 3844 "util/configparser.c" +#line 4514 "util/configparser.c" break; - case 366: /* server_logfile: VAR_LOGFILE STRING_ARG */ -#line 1204 "util/configparser.y" + case 366: +#line 1204 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3855 "util/configparser.c" +#line 4525 "util/configparser.c" break; - case 367: /* server_pidfile: VAR_PIDFILE STRING_ARG */ -#line 1212 "util/configparser.y" + case 367: +#line 1212 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3865 "util/configparser.c" +#line 4535 "util/configparser.c" break; - case 368: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ -#line 1219 "util/configparser.y" + case 368: +#line 1219 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3875 "util/configparser.c" +#line 4545 "util/configparser.c" break; - case 369: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ -#line 1226 "util/configparser.y" + case 369: +#line 1226 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3885 "util/configparser.c" +#line 4555 "util/configparser.c" break; - case 370: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ -#line 1233 "util/configparser.y" + case 370: +#line 1233 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3895 "util/configparser.c" +#line 4565 "util/configparser.c" break; - case 371: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1240 "util/configparser.y" + case 371: +#line 1240 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3906 "util/configparser.c" +#line 4576 "util/configparser.c" break; - case 372: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1248 "util/configparser.y" + case 372: +#line 1248 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3917 "util/configparser.c" +#line 4587 "util/configparser.c" break; - case 373: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ -#line 1256 "util/configparser.y" + case 373: +#line 1256 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3928 "util/configparser.c" +#line 4598 "util/configparser.c" break; - case 374: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ -#line 1264 "util/configparser.y" + case 374: +#line 1264 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3938 "util/configparser.c" +#line 4608 "util/configparser.c" break; - case 375: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ -#line 1271 "util/configparser.y" + case 375: +#line 1271 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3948,11 +4618,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3952 "util/configparser.c" +#line 4622 "util/configparser.c" break; - case 376: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ -#line 1282 "util/configparser.y" + case 376: +#line 1282 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3962,21 +4632,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3966 "util/configparser.c" +#line 4636 "util/configparser.c" break; - case 377: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ -#line 1293 "util/configparser.y" + case 377: +#line 1293 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3976 "util/configparser.c" +#line 4646 "util/configparser.c" break; - case 378: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ -#line 1300 "util/configparser.y" + case 378: +#line 1300 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3984,11 +4654,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3988 "util/configparser.c" +#line 4658 "util/configparser.c" break; - case 379: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ -#line 1309 "util/configparser.y" + case 379: +#line 1309 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3996,11 +4666,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4000 "util/configparser.c" +#line 4670 "util/configparser.c" break; - case 380: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ -#line 1318 "util/configparser.y" + case 380: +#line 1318 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4008,31 +4678,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4012 "util/configparser.c" +#line 4682 "util/configparser.c" break; - case 381: /* server_identity: VAR_IDENTITY STRING_ARG */ -#line 1327 "util/configparser.y" + case 381: +#line 1327 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4022 "util/configparser.c" +#line 4692 "util/configparser.c" break; - case 382: /* server_version: VAR_VERSION STRING_ARG */ -#line 1334 "util/configparser.y" + case 382: +#line 1334 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4032 "util/configparser.c" +#line 4702 "util/configparser.c" break; - case 383: /* server_nsid: VAR_NSID STRING_ARG */ -#line 1341 "util/configparser.y" + case 383: +#line 1341 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4047,33 +4717,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4051 "util/configparser.c" +#line 4721 "util/configparser.c" break; - case 384: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ -#line 1357 "util/configparser.y" + case 384: +#line 1357 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4062 "util/configparser.c" +#line 4732 "util/configparser.c" break; - case 385: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ -#line 1365 "util/configparser.y" + case 385: +#line 1365 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4073 "util/configparser.c" +#line 4743 "util/configparser.c" break; - case 386: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ -#line 1373 "util/configparser.y" + case 386: +#line 1373 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4082,11 +4752,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4086 "util/configparser.c" +#line 4756 "util/configparser.c" break; - case 387: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ -#line 1383 "util/configparser.y" + case 387: +#line 1383 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4095,11 +4765,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4099 "util/configparser.c" +#line 4769 "util/configparser.c" break; - case 388: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ -#line 1393 "util/configparser.y" + case 388: +#line 1393 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4108,11 +4778,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4112 "util/configparser.c" +#line 4782 "util/configparser.c" break; - case 389: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ -#line 1403 "util/configparser.y" + case 389: +#line 1403 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4125,22 +4795,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4129 "util/configparser.c" +#line 4799 "util/configparser.c" break; - case 390: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ -#line 1417 "util/configparser.y" + case 390: +#line 1417 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4140 "util/configparser.c" +#line 4810 "util/configparser.c" break; - case 391: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ -#line 1425 "util/configparser.y" + case 391: +#line 1425 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4152,11 +4822,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4156 "util/configparser.c" +#line 4826 "util/configparser.c" break; - case 392: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ -#line 1438 "util/configparser.y" + case 392: +#line 1438 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4166,22 +4836,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4170 "util/configparser.c" +#line 4840 "util/configparser.c" break; - case 393: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ -#line 1449 "util/configparser.y" + case 393: +#line 1449 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4181 "util/configparser.c" +#line 4851 "util/configparser.c" break; - case 394: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ -#line 1457 "util/configparser.y" + case 394: +#line 1457 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4193,11 +4863,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4197 "util/configparser.c" +#line 4867 "util/configparser.c" break; - case 395: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ -#line 1470 "util/configparser.y" + case 395: +#line 1470 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4205,11 +4875,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4209 "util/configparser.c" +#line 4879 "util/configparser.c" break; - case 396: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ -#line 1479 "util/configparser.y" + case 396: +#line 1479 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4217,11 +4887,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4221 "util/configparser.c" +#line 4891 "util/configparser.c" break; - case 397: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ -#line 1488 "util/configparser.y" + case 397: +#line 1488 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4229,11 +4899,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4233 "util/configparser.c" +#line 4903 "util/configparser.c" break; - case 398: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ -#line 1497 "util/configparser.y" + case 398: +#line 1497 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4241,11 +4911,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4245 "util/configparser.c" +#line 4915 "util/configparser.c" break; - case 399: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ -#line 1506 "util/configparser.y" + case 399: +#line 1506 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4254,11 +4924,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4258 "util/configparser.c" +#line 4928 "util/configparser.c" break; - case 400: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ -#line 1516 "util/configparser.y" + case 400: +#line 1516 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4267,22 +4937,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4271 "util/configparser.c" +#line 4941 "util/configparser.c" break; - case 401: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ -#line 1526 "util/configparser.y" + case 401: +#line 1526 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4282 "util/configparser.c" +#line 4952 "util/configparser.c" break; - case 402: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ -#line 1534 "util/configparser.y" + case 402: +#line 1534 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4294,11 +4964,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4298 "util/configparser.c" +#line 4968 "util/configparser.c" break; - case 403: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ -#line 1547 "util/configparser.y" + case 403: +#line 1547 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4306,22 +4976,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4310 "util/configparser.c" +#line 4980 "util/configparser.c" break; - case 404: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ -#line 1556 "util/configparser.y" + case 404: +#line 1556 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4321 "util/configparser.c" +#line 4991 "util/configparser.c" break; - case 405: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ -#line 1564 "util/configparser.y" + case 405: +#line 1564 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4329,22 +4999,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4333 "util/configparser.c" +#line 5003 "util/configparser.c" break; - case 406: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ -#line 1573 "util/configparser.y" + case 406: +#line 1573 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4344 "util/configparser.c" +#line 5014 "util/configparser.c" break; - case 407: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ -#line 1581 "util/configparser.y" + case 407: +#line 1581 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4356,11 +5026,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4360 "util/configparser.c" +#line 5030 "util/configparser.c" break; - case 408: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ -#line 1594 "util/configparser.y" + case 408: +#line 1594 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4368,11 +5038,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4372 "util/configparser.c" +#line 5042 "util/configparser.c" break; - case 409: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ -#line 1603 "util/configparser.y" + case 409: +#line 1603 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4381,21 +5051,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4385 "util/configparser.c" +#line 5055 "util/configparser.c" break; - case 410: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ -#line 1613 "util/configparser.y" + case 410: +#line 1613 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 4395 "util/configparser.c" +#line 5065 "util/configparser.c" break; - case 411: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ -#line 1620 "util/configparser.y" + case 411: +#line 1620 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4404,11 +5074,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4408 "util/configparser.c" +#line 5078 "util/configparser.c" break; - case 412: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ -#line 1630 "util/configparser.y" + case 412: +#line 1630 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4417,11 +5087,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4421 "util/configparser.c" +#line 5091 "util/configparser.c" break; - case 413: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ -#line 1640 "util/configparser.y" + case 413: +#line 1640 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4430,11 +5100,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4434 "util/configparser.c" +#line 5104 "util/configparser.c" break; - case 414: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ -#line 1650 "util/configparser.y" + case 414: +#line 1650 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4443,11 +5113,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4447 "util/configparser.c" +#line 5117 "util/configparser.c" break; - case 415: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ -#line 1660 "util/configparser.y" + case 415: +#line 1660 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4456,11 +5126,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4460 "util/configparser.c" +#line 5130 "util/configparser.c" break; - case 416: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ -#line 1670 "util/configparser.y" + case 416: +#line 1670 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4469,11 +5139,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4473 "util/configparser.c" +#line 5143 "util/configparser.c" break; - case 417: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ -#line 1680 "util/configparser.y" + case 417: +#line 1680 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4482,11 +5152,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4486 "util/configparser.c" +#line 5156 "util/configparser.c" break; - case 418: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ -#line 1690 "util/configparser.y" + case 418: +#line 1690 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4495,41 +5165,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4499 "util/configparser.c" +#line 5169 "util/configparser.c" break; - case 419: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ -#line 1700 "util/configparser.y" + case 419: +#line 1700 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4509 "util/configparser.c" +#line 5179 "util/configparser.c" break; - case 420: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ -#line 1707 "util/configparser.y" + case 420: +#line 1707 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4519 "util/configparser.c" +#line 5189 "util/configparser.c" break; - case 421: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ -#line 1714 "util/configparser.y" + case 421: +#line 1714 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4529 "util/configparser.c" +#line 5199 "util/configparser.c" break; - case 422: /* server_prefetch: VAR_PREFETCH STRING_ARG */ -#line 1721 "util/configparser.y" + case 422: +#line 1721 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4537,11 +5207,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4541 "util/configparser.c" +#line 5211 "util/configparser.c" break; - case 423: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ -#line 1730 "util/configparser.y" + case 423: +#line 1730 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4549,11 +5219,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4553 "util/configparser.c" +#line 5223 "util/configparser.c" break; - case 424: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ -#line 1739 "util/configparser.y" + case 424: +#line 1739 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4561,11 +5231,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4565 "util/configparser.c" +#line 5235 "util/configparser.c" break; - case 425: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ -#line 1748 "util/configparser.y" + case 425: +#line 1748 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4573,21 +5243,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4577 "util/configparser.c" +#line 5247 "util/configparser.c" break; - case 426: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ -#line 1757 "util/configparser.y" + case 426: +#line 1757 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4587 "util/configparser.c" +#line 5257 "util/configparser.c" break; - case 427: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ -#line 1764 "util/configparser.y" + case 427: +#line 1764 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4596,11 +5266,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4600 "util/configparser.c" +#line 5270 "util/configparser.c" break; - case 428: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ -#line 1774 "util/configparser.y" + case 428: +#line 1774 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -4619,21 +5289,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4623 "util/configparser.c" +#line 5293 "util/configparser.c" break; - case 429: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ -#line 1794 "util/configparser.y" + case 429: +#line 1794 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 4633 "util/configparser.c" +#line 5303 "util/configparser.c" break; - case 430: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ -#line 1801 "util/configparser.y" + case 430: +#line 1801 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4650,11 +5320,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4654 "util/configparser.c" +#line 5324 "util/configparser.c" break; - case 431: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ -#line 1819 "util/configparser.y" + case 431: +#line 1819 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4666,11 +5336,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4670 "util/configparser.c" +#line 5340 "util/configparser.c" break; - case 432: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ -#line 1832 "util/configparser.y" + case 432: +#line 1832 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4682,11 +5352,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4686 "util/configparser.c" +#line 5356 "util/configparser.c" break; - case 433: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ -#line 1845 "util/configparser.y" + case 433: +#line 1845 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4694,11 +5364,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4698 "util/configparser.c" +#line 5368 "util/configparser.c" break; - case 434: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ -#line 1854 "util/configparser.y" + case 434: +#line 1854 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4706,11 +5376,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4710 "util/configparser.c" +#line 5380 "util/configparser.c" break; - case 435: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ -#line 1863 "util/configparser.y" + case 435: +#line 1863 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4718,11 +5388,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4722 "util/configparser.c" +#line 5392 "util/configparser.c" break; - case 436: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ -#line 1872 "util/configparser.y" + case 436: +#line 1872 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4730,11 +5400,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4734 "util/configparser.c" +#line 5404 "util/configparser.c" break; - case 437: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ -#line 1881 "util/configparser.y" + case 437: +#line 1881 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4743,11 +5413,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4747 "util/configparser.c" +#line 5417 "util/configparser.c" break; - case 438: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ -#line 1891 "util/configparser.y" + case 438: +#line 1891 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4756,11 +5426,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4760 "util/configparser.c" +#line 5430 "util/configparser.c" break; - case 439: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ -#line 1901 "util/configparser.y" + case 439: +#line 1901 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4770,11 +5440,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4774 "util/configparser.c" +#line 5444 "util/configparser.c" break; - case 440: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ -#line 1912 "util/configparser.y" + case 440: +#line 1912 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4782,11 +5452,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4786 "util/configparser.c" +#line 5456 "util/configparser.c" break; - case 441: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ -#line 1921 "util/configparser.y" + case 441: +#line 1921 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4794,11 +5464,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4798 "util/configparser.c" +#line 5468 "util/configparser.c" break; - case 442: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ -#line 1930 "util/configparser.y" + case 442: +#line 1930 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4806,11 +5476,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4810 "util/configparser.c" +#line 5480 "util/configparser.c" break; - case 443: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ -#line 1939 "util/configparser.y" + case 443: +#line 1939 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4818,11 +5488,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4822 "util/configparser.c" +#line 5492 "util/configparser.c" break; - case 444: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ -#line 1948 "util/configparser.y" + case 444: +#line 1948 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4830,11 +5500,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4834 "util/configparser.c" +#line 5504 "util/configparser.c" break; - case 445: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ -#line 1957 "util/configparser.y" + case 445: +#line 1957 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4842,11 +5512,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4846 "util/configparser.c" +#line 5516 "util/configparser.c" break; - case 446: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ -#line 1966 "util/configparser.y" + case 446: +#line 1966 "./util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4854,11 +5524,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4858 "util/configparser.c" +#line 5528 "util/configparser.c" break; - case 447: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ -#line 1975 "util/configparser.y" + case 447: +#line 1975 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4870,11 +5540,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4874 "util/configparser.c" +#line 5544 "util/configparser.c" break; - case 448: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ -#line 1988 "util/configparser.y" + case 448: +#line 1988 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4886,11 +5556,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4890 "util/configparser.c" +#line 5560 "util/configparser.c" break; - case 449: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ -#line 2001 "util/configparser.y" + case 449: +#line 2001 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4898,21 +5568,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4902 "util/configparser.c" +#line 5572 "util/configparser.c" break; - case 450: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ -#line 2010 "util/configparser.y" + case 450: +#line 2010 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 4912 "util/configparser.c" +#line 5582 "util/configparser.c" break; - case 451: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ -#line 2017 "util/configparser.y" + case 451: +#line 2017 "./util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4920,11 +5590,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4924 "util/configparser.c" +#line 5594 "util/configparser.c" break; - case 452: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ -#line 2026 "util/configparser.y" + case 452: +#line 2026 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4932,11 +5602,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4936 "util/configparser.c" +#line 5606 "util/configparser.c" break; - case 453: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ -#line 2035 "util/configparser.y" + case 453: +#line 2035 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4944,11 +5614,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4948 "util/configparser.c" +#line 5618 "util/configparser.c" break; - case 454: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ -#line 2044 "util/configparser.y" + case 454: +#line 2044 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4956,11 +5626,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4960 "util/configparser.c" +#line 5630 "util/configparser.c" break; - case 455: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ -#line 2053 "util/configparser.y" + case 455: +#line 2053 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4969,22 +5639,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4973 "util/configparser.c" +#line 5643 "util/configparser.c" break; - case 456: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ -#line 2062 "util/configparser.y" + case 456: +#line 2062 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4984 "util/configparser.c" +#line 5654 "util/configparser.c" break; - case 457: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ -#line 2070 "util/configparser.y" + case 457: +#line 2070 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4996,22 +5666,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5000 "util/configparser.c" +#line 5670 "util/configparser.c" break; - case 458: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ -#line 2083 "util/configparser.y" + case 458: +#line 2083 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5011 "util/configparser.c" +#line 5681 "util/configparser.c" break; - case 459: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2091 "util/configparser.y" + case 459: +#line 2091 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5055,21 +5725,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5059 "util/configparser.c" +#line 5729 "util/configparser.c" break; - case 460: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2136 "util/configparser.y" + case 460: +#line 2136 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5069 "util/configparser.c" +#line 5739 "util/configparser.c" break; - case 461: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2143 "util/configparser.y" + case 461: +#line 2143 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5083,11 +5753,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5087 "util/configparser.c" +#line 5757 "util/configparser.c" break; - case 462: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ -#line 2158 "util/configparser.y" + case 462: +#line 2158 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5096,11 +5766,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5100 "util/configparser.c" +#line 5770 "util/configparser.c" break; - case 463: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ -#line 2168 "util/configparser.y" + case 463: +#line 2168 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5109,41 +5779,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5113 "util/configparser.c" +#line 5783 "util/configparser.c" break; - case 464: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ -#line 2178 "util/configparser.y" + case 464: +#line 2178 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5123 "util/configparser.c" +#line 5793 "util/configparser.c" break; - case 465: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ -#line 2185 "util/configparser.y" + case 465: +#line 2185 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5133 "util/configparser.c" +#line 5803 "util/configparser.c" break; - case 466: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ -#line 2192 "util/configparser.y" + case 466: +#line 2192 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5143 "util/configparser.c" +#line 5813 "util/configparser.c" break; - case 467: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ -#line 2199 "util/configparser.y" + case 467: +#line 2199 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5151,22 +5821,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5155 "util/configparser.c" +#line 5825 "util/configparser.c" break; - case 468: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ -#line 2208 "util/configparser.y" + case 468: +#line 2208 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5166 "util/configparser.c" +#line 5836 "util/configparser.c" break; - case 469: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ -#line 2216 "util/configparser.y" + case 469: +#line 2216 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5179,11 +5849,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5183 "util/configparser.c" +#line 5853 "util/configparser.c" break; - case 470: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ -#line 2230 "util/configparser.y" + case 470: +#line 2230 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5203,11 +5873,11 @@ yyreduce: } } } -#line 5207 "util/configparser.c" +#line 5877 "util/configparser.c" break; - case 471: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ -#line 2251 "util/configparser.y" + case 471: +#line 2251 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5227,11 +5897,11 @@ yyreduce: } } } -#line 5231 "util/configparser.c" +#line 5901 "util/configparser.c" break; - case 472: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ -#line 2272 "util/configparser.y" + case 472: +#line 2272 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5242,11 +5912,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5246 "util/configparser.c" +#line 5916 "util/configparser.c" break; - case 473: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ -#line 2284 "util/configparser.y" + case 473: +#line 2284 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5257,11 +5927,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5261 "util/configparser.c" +#line 5931 "util/configparser.c" break; - case 474: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ -#line 2296 "util/configparser.y" + case 474: +#line 2296 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5272,11 +5942,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5276 "util/configparser.c" +#line 5946 "util/configparser.c" break; - case 475: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ -#line 2308 "util/configparser.y" + case 475: +#line 2308 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5284,11 +5954,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5288 "util/configparser.c" +#line 5958 "util/configparser.c" break; - case 476: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ -#line 2317 "util/configparser.y" + case 476: +#line 2317 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5308,11 +5978,11 @@ yyreduce: } } } -#line 5312 "util/configparser.c" +#line 5982 "util/configparser.c" break; - case 477: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ -#line 2338 "util/configparser.y" + case 477: +#line 2338 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5320,11 +5990,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5324 "util/configparser.c" +#line 5994 "util/configparser.c" break; - case 478: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ -#line 2348 "util/configparser.y" + case 478: +#line 2348 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5332,33 +6002,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5336 "util/configparser.c" +#line 6006 "util/configparser.c" break; - case 479: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ -#line 2357 "util/configparser.y" + case 479: +#line 2357 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5347 "util/configparser.c" +#line 6017 "util/configparser.c" break; - case 480: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ -#line 2365 "util/configparser.y" + case 480: +#line 2365 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5358 "util/configparser.c" +#line 6028 "util/configparser.c" break; - case 481: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ -#line 2373 "util/configparser.y" + case 481: +#line 2373 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5370,11 +6040,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5374 "util/configparser.c" +#line 6044 "util/configparser.c" break; - case 482: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ -#line 2386 "util/configparser.y" + case 482: +#line 2386 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5386,11 +6056,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5390 "util/configparser.c" +#line 6060 "util/configparser.c" break; - case 483: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ -#line 2399 "util/configparser.y" + case 483: +#line 2399 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -5404,11 +6074,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5408 "util/configparser.c" +#line 6078 "util/configparser.c" break; - case 484: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ -#line 2414 "util/configparser.y" + case 484: +#line 2414 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -5422,11 +6092,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5426 "util/configparser.c" +#line 6096 "util/configparser.c" break; - case 485: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ -#line 2429 "util/configparser.y" + case 485: +#line 2429 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5434,11 +6104,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5438 "util/configparser.c" +#line 6108 "util/configparser.c" break; - case 486: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ -#line 2438 "util/configparser.y" + case 486: +#line 2438 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5446,20 +6116,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5450 "util/configparser.c" +#line 6120 "util/configparser.c" break; - case 487: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ -#line 2447 "util/configparser.y" + case 487: +#line 2447 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5459 "util/configparser.c" +#line 6129 "util/configparser.c" break; - case 488: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ -#line 2453 "util/configparser.y" + case 488: +#line 2453 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5467,11 +6137,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5471 "util/configparser.c" +#line 6141 "util/configparser.c" break; - case 489: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ -#line 2462 "util/configparser.y" + case 489: +#line 2462 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5479,11 +6149,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5483 "util/configparser.c" +#line 6153 "util/configparser.c" break; - case 490: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ -#line 2471 "util/configparser.y" + case 490: +#line 2471 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5492,11 +6162,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5496 "util/configparser.c" +#line 6166 "util/configparser.c" break; - case 491: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ -#line 2481 "util/configparser.y" + case 491: +#line 2481 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5505,11 +6175,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5509 "util/configparser.c" +#line 6179 "util/configparser.c" break; - case 492: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ -#line 2491 "util/configparser.y" + case 492: +#line 2491 "./util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5518,11 +6188,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5522 "util/configparser.c" +#line 6192 "util/configparser.c" break; - case 493: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ -#line 2501 "util/configparser.y" + case 493: +#line 2501 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5530,11 +6200,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5534 "util/configparser.c" +#line 6204 "util/configparser.c" break; - case 494: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ -#line 2510 "util/configparser.y" + case 494: +#line 2510 "./util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5543,11 +6213,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5547 "util/configparser.c" +#line 6217 "util/configparser.c" break; - case 495: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ -#line 2520 "util/configparser.y" + case 495: +#line 2520 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5555,11 +6225,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5559 "util/configparser.c" +#line 6229 "util/configparser.c" break; - case 496: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ -#line 2529 "util/configparser.y" + case 496: +#line 2529 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5571,11 +6241,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5575 "util/configparser.c" +#line 6245 "util/configparser.c" break; - case 497: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ -#line 2542 "util/configparser.y" + case 497: +#line 2542 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5587,11 +6257,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5591 "util/configparser.c" +#line 6261 "util/configparser.c" break; - case 498: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ -#line 2555 "util/configparser.y" + case 498: +#line 2555 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5602,11 +6272,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5606 "util/configparser.c" +#line 6276 "util/configparser.c" break; - case 499: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ -#line 2567 "util/configparser.y" + case 499: +#line 2567 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5619,11 +6289,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5623 "util/configparser.c" +#line 6293 "util/configparser.c" break; - case 500: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ -#line 2581 "util/configparser.y" + case 500: +#line 2581 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5634,11 +6304,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5638 "util/configparser.c" +#line 6308 "util/configparser.c" break; - case 501: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ -#line 2593 "util/configparser.y" + case 501: +#line 2593 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5651,11 +6321,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5655 "util/configparser.c" +#line 6325 "util/configparser.c" break; - case 502: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ -#line 2607 "util/configparser.y" + case 502: +#line 2607 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -5663,11 +6333,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 5667 "util/configparser.c" +#line 6337 "util/configparser.c" break; - case 503: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ -#line 2616 "util/configparser.y" + case 503: +#line 2616 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5678,11 +6348,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 5682 "util/configparser.c" +#line 6352 "util/configparser.c" break; - case 504: /* stub_name: VAR_NAME STRING_ARG */ -#line 2628 "util/configparser.y" + case 504: +#line 2628 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5691,31 +6361,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5695 "util/configparser.c" +#line 6365 "util/configparser.c" break; - case 505: /* stub_host: VAR_STUB_HOST STRING_ARG */ -#line 2638 "util/configparser.y" + case 505: +#line 2638 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5705 "util/configparser.c" +#line 6375 "util/configparser.c" break; - case 506: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ -#line 2645 "util/configparser.y" + case 506: +#line 2645 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5715 "util/configparser.c" +#line 6385 "util/configparser.c" break; - case 507: /* stub_first: VAR_STUB_FIRST STRING_ARG */ -#line 2652 "util/configparser.y" + case 507: +#line 2652 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5723,11 +6393,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5727 "util/configparser.c" +#line 6397 "util/configparser.c" break; - case 508: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ -#line 2661 "util/configparser.y" + case 508: +#line 2661 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5735,11 +6405,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5739 "util/configparser.c" +#line 6409 "util/configparser.c" break; - case 509: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ -#line 2670 "util/configparser.y" + case 509: +#line 2670 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5748,11 +6418,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5752 "util/configparser.c" +#line 6422 "util/configparser.c" break; - case 510: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ -#line 2680 "util/configparser.y" + case 510: +#line 2680 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5761,11 +6431,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5765 "util/configparser.c" +#line 6435 "util/configparser.c" break; - case 511: /* forward_name: VAR_NAME STRING_ARG */ -#line 2690 "util/configparser.y" + case 511: +#line 2690 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5774,31 +6444,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5778 "util/configparser.c" +#line 6448 "util/configparser.c" break; - case 512: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ -#line 2700 "util/configparser.y" + case 512: +#line 2700 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5788 "util/configparser.c" +#line 6458 "util/configparser.c" break; - case 513: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ -#line 2707 "util/configparser.y" + case 513: +#line 2707 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5798 "util/configparser.c" +#line 6468 "util/configparser.c" break; - case 514: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ -#line 2714 "util/configparser.y" + case 514: +#line 2714 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5806,11 +6476,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5810 "util/configparser.c" +#line 6480 "util/configparser.c" break; - case 515: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ -#line 2723 "util/configparser.y" + case 515: +#line 2723 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5818,11 +6488,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5822 "util/configparser.c" +#line 6492 "util/configparser.c" break; - case 516: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ -#line 2732 "util/configparser.y" + case 516: +#line 2732 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5831,11 +6501,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5835 "util/configparser.c" +#line 6505 "util/configparser.c" break; - case 517: /* auth_name: VAR_NAME STRING_ARG */ -#line 2742 "util/configparser.y" + case 517: +#line 2742 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5844,52 +6514,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5848 "util/configparser.c" +#line 6518 "util/configparser.c" break; - case 518: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ -#line 2752 "util/configparser.y" + case 518: +#line 2752 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 5858 "util/configparser.c" +#line 6528 "util/configparser.c" break; - case 519: /* auth_master: VAR_MASTER STRING_ARG */ -#line 2759 "util/configparser.y" + case 519: +#line 2759 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5868 "util/configparser.c" +#line 6538 "util/configparser.c" break; - case 520: /* auth_url: VAR_URL STRING_ARG */ -#line 2766 "util/configparser.y" + case 520: +#line 2766 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5878 "util/configparser.c" +#line 6548 "util/configparser.c" break; - case 521: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ -#line 2773 "util/configparser.y" + case 521: +#line 2773 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5889 "util/configparser.c" +#line 6559 "util/configparser.c" break; - case 522: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ -#line 2781 "util/configparser.y" + case 522: +#line 2781 "./util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5898,11 +6568,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5902 "util/configparser.c" +#line 6572 "util/configparser.c" break; - case 523: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ -#line 2791 "util/configparser.y" + case 523: +#line 2791 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5911,11 +6581,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5915 "util/configparser.c" +#line 6585 "util/configparser.c" break; - case 524: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ -#line 2801 "util/configparser.y" + case 524: +#line 2801 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5924,11 +6594,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5928 "util/configparser.c" +#line 6598 "util/configparser.c" break; - case 525: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ -#line 2811 "util/configparser.y" + case 525: +#line 2811 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5937,11 +6607,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5941 "util/configparser.c" +#line 6611 "util/configparser.c" break; - case 526: /* view_name: VAR_NAME STRING_ARG */ -#line 2821 "util/configparser.y" + case 526: +#line 2821 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5950,11 +6620,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5954 "util/configparser.c" +#line 6624 "util/configparser.c" break; - case 527: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2831 "util/configparser.y" + case 527: +#line 2831 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5964,13 +6634,20 @@ yyreduce: && strcmp((yyvsp[0].str), "always_transparent")!=0 && strcmp((yyvsp[0].str), "always_refuse")!=0 && strcmp((yyvsp[0].str), "always_nxdomain")!=0 + && strcmp((yyvsp[0].str), "always_nodata")!=0 + && strcmp((yyvsp[0].str), "always_deny")!=0 + && strcmp((yyvsp[0].str), "always_null")!=0 && strcmp((yyvsp[0].str), "noview")!=0 - && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0) { + && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 + && strcmp((yyvsp[0].str), "inform_redirect") != 0 + && strcmp((yyvsp[0].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); + "inform_redirect, always_transparent, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " + "noview, nodefault or ipset"); free((yyvsp[-1].str)); free((yyvsp[0].str)); } else if(strcmp((yyvsp[0].str), "nodefault")==0) { @@ -5992,11 +6669,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5996 "util/configparser.c" +#line 6673 "util/configparser.c" break; - case 528: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 2870 "util/configparser.y" + case 528: +#line 2877 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6005,33 +6682,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6009 "util/configparser.c" +#line 6686 "util/configparser.c" break; - case 529: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 2880 "util/configparser.y" + case 529: +#line 2887 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6020 "util/configparser.c" +#line 6697 "util/configparser.c" break; - case 530: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2888 "util/configparser.y" + case 530: +#line 2895 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6031 "util/configparser.c" +#line 6708 "util/configparser.c" break; - case 531: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2896 "util/configparser.y" + case 531: +#line 2903 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6045,11 +6722,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6049 "util/configparser.c" +#line 6726 "util/configparser.c" break; - case 532: /* view_first: VAR_VIEW_FIRST STRING_ARG */ -#line 2911 "util/configparser.y" + case 532: +#line 2918 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6057,19 +6734,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6061 "util/configparser.c" +#line 6738 "util/configparser.c" break; - case 533: /* rcstart: VAR_REMOTE_CONTROL */ -#line 2920 "util/configparser.y" + case 533: +#line 2927 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6069 "util/configparser.c" +#line 6746 "util/configparser.c" break; - case 544: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ -#line 2931 "util/configparser.y" + case 544: +#line 2938 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6078,11 +6755,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6082 "util/configparser.c" +#line 6759 "util/configparser.c" break; - case 545: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ -#line 2941 "util/configparser.y" + case 545: +#line 2948 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6090,79 +6767,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6094 "util/configparser.c" +#line 6771 "util/configparser.c" break; - case 546: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ -#line 2950 "util/configparser.y" + case 546: +#line 2957 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6104 "util/configparser.c" +#line 6781 "util/configparser.c" break; - case 547: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ -#line 2957 "util/configparser.y" + case 547: +#line 2964 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6114 "util/configparser.c" +#line 6791 "util/configparser.c" break; - case 548: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ -#line 2964 "util/configparser.y" + case 548: +#line 2971 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6124 "util/configparser.c" +#line 6801 "util/configparser.c" break; - case 549: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ -#line 2971 "util/configparser.y" + case 549: +#line 2978 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6134 "util/configparser.c" +#line 6811 "util/configparser.c" break; - case 550: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ -#line 2978 "util/configparser.y" + case 550: +#line 2985 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6144 "util/configparser.c" +#line 6821 "util/configparser.c" break; - case 551: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ -#line 2985 "util/configparser.y" + case 551: +#line 2992 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6154 "util/configparser.c" +#line 6831 "util/configparser.c" break; - case 552: /* dtstart: VAR_DNSTAP */ -#line 2992 "util/configparser.y" + case 552: +#line 2999 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6162 "util/configparser.c" +#line 6839 "util/configparser.c" break; - case 574: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ -#line 3012 "util/configparser.y" + case 574: +#line 3019 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6170,11 +6847,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6174 "util/configparser.c" +#line 6851 "util/configparser.c" break; - case 575: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ -#line 3021 "util/configparser.y" + case 575: +#line 3028 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6183,31 +6860,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6187 "util/configparser.c" +#line 6864 "util/configparser.c" break; - case 576: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ -#line 3031 "util/configparser.y" + case 576: +#line 3038 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6197 "util/configparser.c" +#line 6874 "util/configparser.c" break; - case 577: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ -#line 3038 "util/configparser.y" + case 577: +#line 3045 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6207 "util/configparser.c" +#line 6884 "util/configparser.c" break; - case 578: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ -#line 3045 "util/configparser.y" + case 578: +#line 3052 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6215,51 +6892,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6219 "util/configparser.c" +#line 6896 "util/configparser.c" break; - case 579: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ -#line 3054 "util/configparser.y" + case 579: +#line 3061 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6229 "util/configparser.c" +#line 6906 "util/configparser.c" break; - case 580: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ -#line 3061 "util/configparser.y" + case 580: +#line 3068 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6239 "util/configparser.c" +#line 6916 "util/configparser.c" break; - case 581: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ -#line 3068 "util/configparser.y" + case 581: +#line 3075 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6249 "util/configparser.c" +#line 6926 "util/configparser.c" break; - case 582: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ -#line 3075 "util/configparser.y" + case 582: +#line 3082 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6259 "util/configparser.c" +#line 6936 "util/configparser.c" break; - case 583: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ -#line 3082 "util/configparser.y" + case 583: +#line 3089 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6267,11 +6944,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6271 "util/configparser.c" +#line 6948 "util/configparser.c" break; - case 584: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ -#line 3091 "util/configparser.y" + case 584: +#line 3098 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6279,31 +6956,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6283 "util/configparser.c" +#line 6960 "util/configparser.c" break; - case 585: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ -#line 3100 "util/configparser.y" + case 585: +#line 3107 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 6293 "util/configparser.c" +#line 6970 "util/configparser.c" break; - case 586: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ -#line 3107 "util/configparser.y" + case 586: +#line 3114 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 6303 "util/configparser.c" +#line 6980 "util/configparser.c" break; - case 587: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ -#line 3114 "util/configparser.y" + case 587: +#line 3121 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6312,11 +6989,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6316 "util/configparser.c" +#line 6993 "util/configparser.c" break; - case 588: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ -#line 3124 "util/configparser.y" + case 588: +#line 3131 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6325,11 +7002,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6329 "util/configparser.c" +#line 7006 "util/configparser.c" break; - case 589: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ -#line 3134 "util/configparser.y" + case 589: +#line 3141 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6338,11 +7015,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6342 "util/configparser.c" +#line 7019 "util/configparser.c" break; - case 590: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ -#line 3144 "util/configparser.y" + case 590: +#line 3151 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6351,11 +7028,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6355 "util/configparser.c" +#line 7032 "util/configparser.c" break; - case 591: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ -#line 3154 "util/configparser.y" + case 591: +#line 3161 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6364,11 +7041,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6368 "util/configparser.c" +#line 7045 "util/configparser.c" break; - case 592: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ -#line 3164 "util/configparser.y" + case 592: +#line 3171 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6377,47 +7054,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6381 "util/configparser.c" +#line 7058 "util/configparser.c" break; - case 593: /* pythonstart: VAR_PYTHON */ -#line 3174 "util/configparser.y" + case 593: +#line 3181 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6389 "util/configparser.c" +#line 7066 "util/configparser.c" break; - case 597: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ -#line 3183 "util/configparser.y" + case 597: +#line 3190 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6399 "util/configparser.c" +#line 7076 "util/configparser.c" break; - case 598: /* dynlibstart: VAR_DYNLIB */ -#line 3189 "util/configparser.y" + case 598: +#line 3196 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6407 "util/configparser.c" +#line 7084 "util/configparser.c" break; - case 602: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ -#line 3198 "util/configparser.y" + case 602: +#line 3205 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6417 "util/configparser.c" +#line 7094 "util/configparser.c" break; - case 603: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ -#line 3204 "util/configparser.y" + case 603: +#line 3211 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6426,21 +7103,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6430 "util/configparser.c" +#line 7107 "util/configparser.c" break; - case 604: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ -#line 3214 "util/configparser.y" + case 604: +#line 3221 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 6440 "util/configparser.c" +#line 7117 "util/configparser.c" break; - case 605: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 3221 "util/configparser.y" + case 605: +#line 3228 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6448,30 +7125,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6452 "util/configparser.c" +#line 7129 "util/configparser.c" break; - case 606: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 3230 "util/configparser.y" + case 606: +#line 3237 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6463 "util/configparser.c" +#line 7140 "util/configparser.c" break; - case 607: /* dnscstart: VAR_DNSCRYPT */ -#line 3238 "util/configparser.y" + case 607: +#line 3245 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6471 "util/configparser.c" +#line 7148 "util/configparser.c" break; - case 620: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ -#line 3254 "util/configparser.y" + case 620: +#line 3261 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6479,11 +7156,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6483 "util/configparser.c" +#line 7160 "util/configparser.c" break; - case 621: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ -#line 3264 "util/configparser.y" + case 621: +#line 3271 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6491,21 +7168,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6495 "util/configparser.c" +#line 7172 "util/configparser.c" break; - case 622: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ -#line 3273 "util/configparser.y" + case 622: +#line 3280 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 6505 "util/configparser.c" +#line 7182 "util/configparser.c" break; - case 623: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ -#line 3280 "util/configparser.y" + case 623: +#line 3287 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -6513,21 +7190,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 6517 "util/configparser.c" +#line 7194 "util/configparser.c" break; - case 624: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ -#line 3289 "util/configparser.y" + case 624: +#line 3296 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 6527 "util/configparser.c" +#line 7204 "util/configparser.c" break; - case 625: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ -#line 3296 "util/configparser.y" + case 625: +#line 3303 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -6535,22 +7212,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 6539 "util/configparser.c" +#line 7216 "util/configparser.c" break; - case 626: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ -#line 3305 "util/configparser.y" + case 626: +#line 3312 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6550 "util/configparser.c" +#line 7227 "util/configparser.c" break; - case 627: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ -#line 3313 "util/configparser.y" + case 627: +#line 3320 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6562,22 +7239,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6566 "util/configparser.c" +#line 7243 "util/configparser.c" break; - case 628: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ -#line 3326 "util/configparser.y" + case 628: +#line 3333 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6577 "util/configparser.c" +#line 7254 "util/configparser.c" break; - case 629: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ -#line 3334 "util/configparser.y" + case 629: +#line 3341 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6589,19 +7266,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6593 "util/configparser.c" +#line 7270 "util/configparser.c" break; - case 630: /* cachedbstart: VAR_CACHEDB */ -#line 3347 "util/configparser.y" + case 630: +#line 3354 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6601 "util/configparser.c" +#line 7278 "util/configparser.c" break; - case 639: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ -#line 3358 "util/configparser.y" + case 639: +#line 3365 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6612,11 +7289,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6616 "util/configparser.c" +#line 7293 "util/configparser.c" break; - case 640: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ -#line 3370 "util/configparser.y" + case 640: +#line 3377 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6627,11 +7304,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6631 "util/configparser.c" +#line 7308 "util/configparser.c" break; - case 641: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ -#line 3382 "util/configparser.y" + case 641: +#line 3389 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6642,11 +7319,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6646 "util/configparser.c" +#line 7323 "util/configparser.c" break; - case 642: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ -#line 3394 "util/configparser.y" + case 642: +#line 3401 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6660,11 +7337,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6664 "util/configparser.c" +#line 7341 "util/configparser.c" break; - case 643: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ -#line 3409 "util/configparser.y" + case 643: +#line 3416 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6676,11 +7353,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6680 "util/configparser.c" +#line 7357 "util/configparser.c" break; - case 644: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ -#line 3422 "util/configparser.y" + case 644: +#line 3429 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6692,11 +7369,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6696 "util/configparser.c" +#line 7373 "util/configparser.c" break; - case 645: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ -#line 3435 "util/configparser.y" + case 645: +#line 3442 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6706,19 +7383,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6710 "util/configparser.c" +#line 7387 "util/configparser.c" break; - case 646: /* ipsetstart: VAR_IPSET */ -#line 3446 "util/configparser.y" + case 646: +#line 3453 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6718 "util/configparser.c" +#line 7395 "util/configparser.c" break; - case 651: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ -#line 3455 "util/configparser.y" + case 651: +#line 3462 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6732,11 +7409,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6736 "util/configparser.c" +#line 7413 "util/configparser.c" break; - case 652: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ -#line 3470 "util/configparser.y" + case 652: +#line 3477 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6750,11 +7427,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6754 "util/configparser.c" +#line 7431 "util/configparser.c" break; -#line 6758 "util/configparser.c" +#line 7435 "util/configparser.c" default: break; } @@ -6914,13 +7591,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - goto yyreturn; + /* Fall through. */ #endif -/*-------------------------------------------------------. -| yyreturn -- parsing is finished, clean up and return. | -`-------------------------------------------------------*/ +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -6948,7 +7625,7 @@ yyreturn: return yyresult; } -#line 3484 "util/configparser.y" +#line 3491 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 58935003b..5f1f73fec 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.7.6. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -368,7 +368,6 @@ extern int yydebug; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ -#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -687,11 +686,11 @@ extern int yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 66 "util/configparser.y" +#line 66 "./util/configparser.y" char* str; -#line 695 "util/configparser.h" +#line 694 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 6d82938c3..3561630b3 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -2837,13 +2837,20 @@ view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG && strcmp($3, "always_transparent")!=0 && strcmp($3, "always_refuse")!=0 && strcmp($3, "always_nxdomain")!=0 + && strcmp($3, "always_nodata")!=0 + && strcmp($3, "always_deny")!=0 + && strcmp($3, "always_null")!=0 && strcmp($3, "noview")!=0 - && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0) { + && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0 + && strcmp($3, "inform_redirect") != 0 + && strcmp($3, "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); + "inform_redirect, always_transparent, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " + "noview, nodefault or ipset"); free($2); free($3); } else if(strcmp($3, "nodefault")==0) { From 45328d37b100b1bc6a5a14d7b36beafcd912f7d5 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Wed, 28 Apr 2021 16:15:52 +0200 Subject: [PATCH 014/156] - Fix compiler warning for signed/unsigned comparison for max_reuse_tcp_queries. --- doc/Changelog | 4 ++++ services/outside_network.h | 2 +- util/config_file.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 977a73136..35ee6786f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +28 April 2021: George + - Fix compiler warning for signed/unsigned comparison for + max_reuse_tcp_queries. + 28 April 2021: Wouter - Fix #474: always_null and others inside view. diff --git a/services/outside_network.h b/services/outside_network.h index 58ab8b262..b71469372 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -159,7 +159,7 @@ struct outside_network { /** number of tcp communication points in use. */ size_t num_tcp_outgoing; /** max number of queries on a reuse connection */ - int max_reuse_tcp_queries; + size_t max_reuse_tcp_queries; /** timeout for REUSE entries in milliseconds. */ int tcp_reuse_timeout; /** diff --git a/util/config_file.h b/util/config_file.h index 34f098696..8b629d1dd 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -94,7 +94,7 @@ struct config_file { /** do tcp query support. */ int do_tcp; /** max number of queries on a reuse connection. */ - int max_reuse_tcp_queries; + size_t max_reuse_tcp_queries; /** timeout for REUSE entries in milliseconds. */ int tcp_reuse_timeout; /** tcp upstream queries (no UDP upstream queries) */ From 90198ee07196e726a9c9da607d6cf62b1f5886f2 Mon Sep 17 00:00:00 2001 From: gthess Date: Wed, 28 Apr 2021 16:40:48 +0200 Subject: [PATCH 015/156] Create issue templates Create issue templates for bug reports and feature requests. --- .github/ISSUE_TEMPLATE/bug_report.md | 41 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 31 +++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..3b783bb63 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,41 @@ +--- +name: Bug report +about: Create a report to help us improve Unbound +title: '' +labels: '' +assignees: '' + +--- + + + +**Describe the bug** +A clear and concise description of what the bug is. + +**To reproduce** +Steps to reproduce the behavior: +1. +2. +3. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**System:** + - Unbound version: + - OS: + - `unbound -V` output: + +**Additional information** +Add any other information that you may have gathered about the issue here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..1a3910694 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,31 @@ +--- +name: Feature request +about: Suggest an idea for Unbound +title: "[FR]" +labels: '' +assignees: '' + +--- + + + +**Current behavior** +Is there a current behavior that the feature relates to? +If yes, would you wish the current behavior to change? + +**Describe the desired feature** +A clear and concise description of what the feature should be. + +**Potential use-case** +Describe how you see this feature being useful to other Unbound users. From e07f973938b12577701374da7e606490c1e5afcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Cruz?= Date: Tue, 27 Apr 2021 18:43:19 +0100 Subject: [PATCH 016/156] Allow configuration of TCP timeout while waiting for response This allows us to configure how long Unbound will wait for a response on a TCP connection. --- daemon/worker.c | 3 +- doc/example.conf.in | 3 + doc/unbound.conf.5.in | 4 + libunbound/libworker.c | 3 +- services/outside_network.c | 12 +- services/outside_network.h | 6 +- testcode/fake_event.c | 3 +- util/config_file.c | 3 + util/config_file.h | 2 + util/configlexer.c | 7081 ++++++++++++++++++++++++++ util/configlexer.lex | 1 + util/configparser.c | 9683 +++++++++++++++++------------------- util/configparser.h | 1050 ++-- util/configparser.y | 15 +- util/net_help.h | 2 - 15 files changed, 12235 insertions(+), 5636 deletions(-) diff --git a/daemon/worker.c b/daemon/worker.c index b560e4493..7537bd33d 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1795,7 +1795,8 @@ worker_init(struct worker* worker, struct config_file *cfg, cfg->do_udp || cfg->udp_upstream_without_downstream, worker->daemon->connect_sslctx, cfg->delay_close, cfg->tls_use_sni, dtenv, cfg->udp_connect, - cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout); + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout, + cfg->tcp_auth_query_timeout); if(!worker->back) { log_err("could not create outgoing sockets"); worker_delete(worker); diff --git a/doc/example.conf.in b/doc/example.conf.in index 17b1b7741..3a9e50144 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -905,6 +905,9 @@ server: # tcp-reuse-timeout: 60000 # Max number of queries on a reuse connection. # max-reuse-tcp-queries: 200 + # Timeout in milliseconds for TCP queries to auth servers. + # tcp-auth-query-timeout: 3000 + # Python config section. To enable: # o use --with-pythonmodule to configure before compiling. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index e58d3533a..9aa12c65c 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -460,6 +460,10 @@ The maximum number of queries that can be sent on a persistent TCP connection. This option defaults to 200 queries. .TP +.B tcp-auth-query-timeout: \fI\fR +Timeout in milliseconds for TCP queries to auth servers. +This option defaults to 3000 milliseconds. +.TP .B edns-tcp-keepalive: \fI\fR Enable or disable EDNS TCP Keepalive. Default is no. .TP diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 0c43a4110..4733eb464 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -242,7 +242,8 @@ libworker_setup(struct ub_ctx* ctx, int is_bg, struct ub_event_base* eb) cfg->outgoing_tcp_mss, &libworker_alloc_cleanup, w, cfg->do_udp || cfg->udp_upstream_without_downstream, w->sslctx, cfg->delay_close, cfg->tls_use_sni, NULL, cfg->udp_connect, - cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout); + cfg->max_reuse_tcp_queries, cfg->tcp_reuse_timeout, + cfg->tcp_auth_query_timeout); w->env->outnet = w->back; if(!w->is_bg || w->is_bg_thread) { lock_basic_unlock(&ctx->cfglock); diff --git a/services/outside_network.c b/services/outside_network.c index 353809759..5fb4f3faa 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -1404,7 +1404,8 @@ outside_network_create(struct comm_base *base, size_t bufsize, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env* dtenv, - int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout) + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout, + int tcp_auth_query_timeout) { struct outside_network* outnet = (struct outside_network*) calloc(1, sizeof(struct outside_network)); @@ -1418,6 +1419,7 @@ outside_network_create(struct comm_base *base, size_t bufsize, outnet->num_tcp = num_tcp; outnet->max_reuse_tcp_queries = max_reuse_tcp_queries; outnet->tcp_reuse_timeout= tcp_reuse_timeout; + outnet->tcp_auth_query_timeout = tcp_auth_query_timeout; outnet->num_tcp_outgoing = 0; outnet->infra = infra; outnet->rnd = rnd; @@ -2875,7 +2877,7 @@ serviced_tcp_initiate(struct serviced_query* sq, sldns_buffer* buff) sq->status==serviced_query_TCP_EDNS?"EDNS":""); serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS); sq->last_sent_time = *sq->outnet->now_tv; - sq->pending = pending_tcp_query(sq, buff, TCP_AUTH_QUERY_TIMEOUT, + sq->pending = pending_tcp_query(sq, buff, sq->outnet->tcp_auth_query_timeout, serviced_tcp_callback, sq); if(!sq->pending) { /* delete from tree so that a retry by above layer does not @@ -2903,10 +2905,10 @@ serviced_tcp_send(struct serviced_query* sq, sldns_buffer* buff) sq->last_sent_time = *sq->outnet->now_tv; if(sq->tcp_upstream || sq->ssl_upstream) { timeout = rtt; - if(rtt >= UNKNOWN_SERVER_NICENESS && rtt < TCP_AUTH_QUERY_TIMEOUT) - timeout = TCP_AUTH_QUERY_TIMEOUT; + if(rtt >= UNKNOWN_SERVER_NICENESS && rtt < sq->outnet->tcp_auth_query_timeout) + timeout = sq->outnet->tcp_auth_query_timeout; } else { - timeout = TCP_AUTH_QUERY_TIMEOUT; + timeout = sq->outnet->tcp_auth_query_timeout; } sq->pending = pending_tcp_query(sq, buff, timeout, serviced_tcp_callback, sq); diff --git a/services/outside_network.h b/services/outside_network.h index b71469372..071f37dde 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -162,6 +162,8 @@ struct outside_network { size_t max_reuse_tcp_queries; /** timeout for REUSE entries in milliseconds. */ int tcp_reuse_timeout; + /** timeout in milliseconds for TCP queries to auth servers. */ + int tcp_auth_query_timeout; /** * tree of still-open and waiting tcp connections for reuse. * can be closed and reopened to get a new tcp connection. @@ -541,6 +543,7 @@ struct serviced_query { * @param udp_connect: if the udp_connect option is enabled. * @param max_reuse_tcp_queries: max number of queries on a reuse connection. * @param tcp_reuse_timeout: timeout for REUSE entries in milliseconds. + * @param tcp_auth_query_timeout: timeout in milliseconds for TCP queries to auth servers. * @return: the new structure (with no pending answers) or NULL on error. */ struct outside_network* outside_network_create(struct comm_base* base, @@ -550,7 +553,8 @@ struct outside_network* outside_network_create(struct comm_base* base, int numavailports, size_t unwanted_threshold, int tcp_mss, void (*unwanted_action)(void*), void* unwanted_param, int do_udp, void* sslctx, int delayclose, int tls_use_sni, struct dt_env *dtenv, - int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout); + int udp_connect, int max_reuse_tcp_queries, int tcp_reuse_timeout, + int tcp_auth_query_timeout); /** * Delete outside_network structure. diff --git a/testcode/fake_event.c b/testcode/fake_event.c index d0bd14ecb..125355f05 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -1047,7 +1047,8 @@ outside_network_create(struct comm_base* base, size_t bufsize, int ATTR_UNUSED(do_udp), void* ATTR_UNUSED(sslctx), int ATTR_UNUSED(delayclose), int ATTR_UNUSED(tls_use_sni), struct dt_env* ATTR_UNUSED(dtenv), int ATTR_UNUSED(udp_connect), - int ATTR_UNUSED(max_reuse_tcp_queries), int ATTR_UNUSED(tcp_reuse_timeout)) + int ATTR_UNUSED(max_reuse_tcp_queries), int ATTR_UNUSED(tcp_reuse_timeout), + int ATTR_UNUSED(tcp_auth_query_timeout)) { struct replay_runtime* runtime = (struct replay_runtime*)base; struct outside_network* outnet = calloc(1, diff --git a/util/config_file.c b/util/config_file.c index 938f6748e..1d6374156 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -112,6 +112,7 @@ config_create(void) cfg->tcp_mss = 0; cfg->outgoing_tcp_mss = 0; cfg->tcp_idle_timeout = 30 * 1000; /* 30s in millisecs */ + cfg->tcp_auth_query_timeout = 3 * 1000; /* 3s in millisecs */ cfg->do_tcp_keepalive = 0; cfg->tcp_keepalive_timeout = 120 * 1000; /* 120s in millisecs */ cfg->ssl_service_key = NULL; @@ -519,6 +520,7 @@ int config_set_option(struct config_file* cfg, const char* opt, udp_upstream_without_downstream) else S_NUMBER_NONZERO("tcp-mss:", tcp_mss) else S_NUMBER_NONZERO("outgoing-tcp-mss:", outgoing_tcp_mss) + else S_NUMBER_NONZERO("tcp-auth-query-timeout:", tcp_auth_query_timeout) else S_NUMBER_NONZERO("tcp-idle-timeout:", tcp_idle_timeout) else S_NUMBER_NONZERO("max-reuse-tcp-queries:", max_reuse_tcp_queries) else S_NUMBER_NONZERO("tcp-reuse-timeout:", tcp_reuse_timeout) @@ -1011,6 +1013,7 @@ config_get_option(struct config_file* cfg, const char* opt, 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_DEC(opt, "tcp-auth-query-timeout", tcp_auth_query_timeout) else O_DEC(opt, "tcp-idle-timeout", tcp_idle_timeout) else O_DEC(opt, "max-reuse-tcp-queries", max_reuse_tcp_queries) else O_DEC(opt, "tcp-reuse-timeout", tcp_reuse_timeout) diff --git a/util/config_file.h b/util/config_file.h index 8b629d1dd..524e648fe 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -97,6 +97,8 @@ struct config_file { size_t max_reuse_tcp_queries; /** timeout for REUSE entries in milliseconds. */ int tcp_reuse_timeout; + /** timeout in milliseconds for TCP queries to auth servers. */ + int tcp_auth_query_timeout; /** tcp upstream queries (no UDP upstream queries) */ int tcp_upstream; /** udp upstream enabled when no UDP downstream is enabled (do_udp no)*/ diff --git a/util/configlexer.c b/util/configlexer.c index 6f6dc4f45..fac54a193 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -6378,3 +6378,7084 @@ void yyfree (void * ptr ) #line 675 "./util/configlexer.lex" + +#line 3 "" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 35 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +typedef uint64_t flex_uint64_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart(yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t yyleng; + +extern FILE *yyin, *yyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart (FILE *input_file ); +void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); +void yy_delete_buffer (YY_BUFFER_STATE b ); +void yy_flush_buffer (YY_BUFFER_STATE b ); +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state (void ); + +static void yyensure_buffer_stack (void ); +static void yy_load_buffer_state (void ); +static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *yyalloc (yy_size_t ); +void *yyrealloc (void *,yy_size_t ); +void yyfree (void * ); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer(yyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +typedef unsigned char YY_CHAR; + +FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int yylineno; + +int yylineno = 1; + +extern char *yytext; +#define yytext_ptr yytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + (yytext_ptr) -= (yy_more_len); \ + yyleng = (yy_size_t) (yy_cp - (yytext_ptr)); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 348 +#define YY_END_OF_BUFFER 349 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[3439] = + { 0, + 1, 1, 322, 322, 326, 326, 330, 330, 334, 334, + 1, 1, 338, 338, 342, 342, 349, 346, 1, 320, + 320, 347, 2, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 347, 322, 323, 323, 324, + 347, 326, 327, 327, 328, 347, 333, 330, 331, 331, + 332, 347, 334, 335, 335, 336, 347, 345, 321, 2, + 325, 345, 347, 341, 338, 339, 339, 340, 347, 342, + 343, 343, 344, 347, 346, 0, 1, 2, 2, 2, + 2, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 322, + 0, 326, 0, 333, 0, 330, 334, 0, 345, 0, + 2, 2, 345, 341, 0, 338, 342, 0, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 128, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 137, + 346, 346, 346, 346, 346, 346, 346, 345, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 112, 346, 319, + 346, 346, 346, 346, 346, 346, 346, 8, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 129, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 142, 346, 346, 345, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 312, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 67, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 244, 346, + 14, 15, 346, 19, 18, 346, 346, 228, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 135, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 226, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 3, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 345, 346, 346, 346, 346, 346, 346, 346, + 306, 346, 346, 305, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 329, 346, 346, 346, 346, 346, 346, 346, 346, + 66, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 70, 346, 275, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 313, + 314, 346, 346, 346, 346, 346, 346, 346, 71, 346, + 346, 136, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 132, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 215, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 21, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 161, + 346, 346, 346, 346, 345, 329, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 110, 346, 346, + 346, 346, 346, 346, 346, 283, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 185, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 160, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 109, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 35, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 36, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 68, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 134, 346, 346, 345, + 346, 346, 346, 346, 346, 127, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 69, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 248, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 186, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 57, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 266, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 61, 346, 62, 346, 346, 346, 346, 346, 113, 346, + 114, 346, 346, 346, 346, 111, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 7, 346, 346, + 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 237, 346, 346, 346, 346, 163, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 249, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 48, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 58, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 207, 346, 206, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 16, 17, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 72, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 214, 346, 346, 346, 346, 346, + + 346, 116, 346, 115, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 198, 346, + 346, 346, 346, 346, 346, 346, 346, 143, 346, 346, + 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 104, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 92, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 227, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 97, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 65, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 201, 202, 346, + 346, 346, 277, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 6, 346, 346, 346, + 346, 346, 346, 296, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 281, 346, 346, 346, 346, 346, 346, 307, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 45, 346, 346, 346, 346, 47, 346, 346, + 346, 93, 346, 346, 346, 346, 346, 55, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 345, 346, 194, + 346, 346, 346, 138, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 219, 346, 195, 346, 346, 346, + 234, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 56, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 140, 121, 346, 122, 346, 346, 346, 120, + 346, 346, 346, 346, 346, 346, 346, 346, 158, 346, + 346, 53, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 265, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 196, 346, + 346, 346, 346, 346, 199, 346, 205, 346, 346, 346, + 346, 346, 346, 233, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 108, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 133, + + 346, 346, 346, 346, 346, 346, 346, 63, 346, 346, + 346, 29, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 20, 346, 346, 346, 346, 346, 346, + 30, 39, 346, 168, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, + 346, 346, 346, 346, 346, 346, 80, 82, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 285, 346, 346, 346, 346, 245, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 123, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 157, + 346, 49, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 300, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 162, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 294, 346, 346, 346, + 225, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 310, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 179, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 117, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 174, 346, 187, 346, 346, 346, + 346, 346, 346, 345, 346, 146, 346, 346, 346, 346, + 346, 103, 346, 346, 346, 346, 217, 346, 346, 346, + 346, 346, 346, 235, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 257, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 139, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 178, 346, 346, 346, + + 346, 346, 346, 83, 346, 84, 346, 346, 346, 346, + 346, 64, 303, 346, 346, 346, 346, 346, 91, 188, + 346, 208, 346, 238, 346, 346, 200, 278, 346, 346, + 346, 346, 346, 346, 76, 346, 190, 346, 346, 346, + 346, 346, 9, 346, 346, 346, 346, 346, 107, 346, + 346, 346, 346, 270, 346, 346, 346, 346, 216, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, + 346, 346, 346, 346, 177, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 164, 346, 284, 346, 346, + 346, 346, 346, 256, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 229, 346, 346, 346, 346, + 346, 276, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 304, 346, 189, 346, 346, 346, 346, 346, + 346, 346, 346, 75, 77, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 106, 346, 346, 346, 346, 268, + 346, 346, 346, 346, 280, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 221, 37, 31, + 33, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 38, 346, 32, 34, 346, 346, 346, 346, + 346, 346, 346, 346, 102, 346, 346, 346, 346, 346, + 346, 346, 346, 345, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 223, 220, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 74, 346, 346, 346, 141, + + 346, 124, 346, 346, 346, 346, 346, 346, 346, 346, + 159, 50, 346, 346, 346, 337, 13, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 298, 346, 301, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 12, 346, 346, 22, 346, 346, 346, 346, 346, + 274, 346, 346, 346, 346, 282, 346, 346, 346, 78, + 346, 231, 346, 346, 346, 346, 346, 222, 346, 346, + 73, 346, 346, 346, 346, 346, 23, 346, 346, 46, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 173, 172, 346, 346, 337, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 224, 218, 346, 236, + 346, 346, 286, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 85, 346, 346, 346, 346, + 269, 346, 346, 346, 346, 204, 346, 346, 346, 346, + 346, 230, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 308, 309, 170, 346, 346, 79, 346, + 346, 346, 346, 180, 346, 346, 346, 118, 119, 346, + 346, 346, 25, 346, 346, 165, 346, 167, 346, 209, + + 346, 346, 346, 346, 171, 346, 346, 346, 346, 239, + 346, 346, 346, 346, 346, 346, 346, 148, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 247, 346, 346, 346, 346, 346, 346, 346, 317, 346, + 27, 346, 279, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 89, 210, 346, + 346, 267, 346, 302, 346, 203, 346, 346, 346, 346, + 346, 59, 346, 346, 346, 346, 346, 346, 4, 346, + 346, 346, 346, 131, 147, 346, 346, 346, 184, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 242, 40, 41, + 346, 346, 346, 346, 346, 346, 346, 287, 346, 346, + 346, 346, 346, 346, 346, 255, 346, 346, 346, 346, + 346, 346, 346, 346, 213, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 88, 346, 60, + 273, 346, 243, 346, 346, 346, 346, 346, 11, 346, + 346, 346, 346, 346, 346, 346, 346, 130, 346, 346, + 346, 346, 211, 94, 346, 346, 43, 346, 346, 346, + 346, 346, 346, 346, 346, 176, 346, 346, 346, 346, + 346, 346, 346, 150, 346, 346, 346, 346, 246, 346, + + 346, 346, 346, 346, 254, 346, 346, 346, 346, 144, + 346, 346, 346, 125, 126, 346, 346, 346, 96, 100, + 95, 346, 346, 346, 346, 86, 346, 346, 346, 346, + 346, 346, 10, 346, 346, 346, 346, 346, 271, 311, + 346, 346, 346, 346, 346, 316, 42, 346, 346, 346, + 346, 346, 175, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 101, 99, + 346, 54, 346, 346, 87, 299, 346, 346, 346, 346, + 24, 346, 346, 346, 346, 346, 197, 346, 346, 346, + + 346, 346, 212, 346, 346, 346, 346, 346, 346, 346, + 346, 193, 346, 346, 166, 81, 346, 346, 346, 346, + 346, 288, 346, 346, 346, 346, 346, 346, 346, 251, + 346, 346, 250, 145, 346, 346, 98, 51, 346, 151, + 152, 155, 156, 153, 154, 90, 297, 346, 346, 272, + 346, 346, 346, 26, 346, 169, 346, 346, 346, 346, + 192, 346, 241, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 182, 181, 44, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 346, 346, 295, 346, + 346, 346, 346, 105, 346, 240, 346, 264, 292, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 318, 346, 52, 5, 346, 346, 232, 346, 346, 293, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 252, + 28, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 253, 346, 346, 346, 149, 346, 346, + 346, 346, 346, 346, 346, 346, 183, 346, 191, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 289, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + + 346, 346, 346, 346, 346, 346, 315, 346, 346, 260, + 346, 346, 346, 346, 346, 290, 346, 346, 346, 346, + 346, 346, 291, 346, 346, 346, 258, 346, 261, 262, + 346, 346, 346, 346, 346, 259, 263, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 5, 6, 1, 1, 1, 7, 1, + 1, 1, 1, 1, 8, 1, 1, 1, 9, 1, + 10, 11, 1, 12, 1, 1, 1, 13, 1, 1, + 1, 1, 1, 1, 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, + 1, 40, 1, 1, 1, 1, 41, 42, 43, 44, + + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[67] = + { 0, + 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, + 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int16_t yy_base[3457] = + { 0, + 0, 0, 64, 67, 70, 72, 78, 84, 89, 92, + 131, 137, 112, 118, 123, 142, 429, 383, 96, 9825, + 9825, 9825, 160, 185, 116, 183, 229, 132, 175, 173, + 232, 50, 66, 120, 263, 275, 151, 323, 134, 375, + 416, 286, 308, 283, 126, 237, 374, 9825, 9825, 9825, + 95, 372, 9825, 9825, 9825, 186, 361, 373, 9825, 9825, + 9825, 258, 309, 9825, 9825, 9825, 104, 293, 9825, 266, + 9825, 167, 351, 281, 311, 9825, 9825, 9825, 369, 268, + 9825, 9825, 9825, 146, 252, 378, 177, 0, 392, 0, + 0, 303, 270, 235, 317, 362, 344, 384, 178, 177, + + 226, 420, 377, 330, 379, 402, 414, 419, 410, 453, + 319, 367, 440, 429, 447, 454, 463, 459, 458, 489, + 495, 484, 474, 493, 499, 460, 500, 504, 510, 492, + 524, 520, 532, 525, 537, 529, 412, 533, 558, 539, + 531, 548, 565, 559, 250, 505, 587, 575, 574, 584, + 570, 580, 610, 601, 595, 604, 607, 614, 615, 208, + 294, 205, 236, 194, 670, 225, 180, 326, 158, 674, + 678, 0, 623, 152, 682, 176, 130, 653, 650, 680, + 661, 609, 675, 670, 676, 666, 671, 682, 672, 691, + 720, 697, 696, 703, 256, 726, 770, 731, 723, 714, + + 734, 737, 724, 718, 745, 740, 749, 759, 766, 728, + 773, 760, 772, 787, 819, 789, 762, 797, 339, 802, + 827, 378, 808, 443, 832, 805, 699, 829, 725, 838, + 836, 844, 843, 835, 852, 847, 866, 860, 849, 864, + 875, 874, 871, 865, 868, 911, 885, 878, 893, 892, + 894, 907, 908, 902, 913, 781, 909, 920, 921, 935, + 912, 937, 930, 919, 943, 950, 948, 956, 957, 938, + 958, 955, 953, 960, 954, 973, 969, 984, 994, 986, + 993, 1002, 989, 995, 988, 996, 999, 987, 1013, 1014, + 1022, 1026, 144, 1020, 1029, 1031, 1019, 1028, 1039, 1041, + + 1051, 1052, 1053, 1036, 1057, 1062, 1072, 1069, 1070, 1076, + 1079, 1088, 1055, 1067, 1065, 1082, 1092, 1098, 1087, 1100, + 1091, 1103, 1115, 1106, 1120, 1099, 1134, 1132, 1127, 1159, + 1136, 1128, 1148, 1189, 1154, 1143, 1162, 1185, 1169, 1155, + 1190, 1182, 1193, 1205, 1191, 1204, 1197, 1206, 1224, 1227, + 1215, 1231, 1229, 1220, 1226, 1233, 1249, 1258, 9825, 1242, + 1240, 1269, 1260, 1266, 1275, 1267, 1296, 1273, 1283, 1279, + 1291, 1298, 1344, 1392, 1293, 1311, 1301, 1304, 1307, 9825, + 1333, 1308, 1441, 1339, 1328, 1329, 1363, 1340, 1331, 1355, + 1364, 1356, 1300, 1359, 1367, 1390, 1403, 1400, 1379, 1389, + + 1406, 1419, 1410, 1306, 1438, 1427, 1437, 1431, 1383, 1434, + 1446, 1458, 1479, 1461, 1475, 1476, 1480, 1493, 1496, 1497, + 1508, 1503, 1486, 1502, 1518, 1515, 1522, 1528, 1573, 1484, + 1529, 1535, 1542, 1532, 1520, 1448, 1547, 1554, 1549, 1561, + 1562, 1556, 1579, 1401, 1567, 1583, 1570, 1575, 1597, 1580, + 1594, 1598, 1599, 1607, 1600, 1609, 1593, 1620, 1630, 1635, + 1637, 1634, 1643, 1645, 1627, 1651, 1631, 9825, 1654, 9825, + 1642, 1657, 1667, 1662, 1661, 1671, 1673, 9825, 1677, 1669, + 1679, 1688, 1706, 1696, 1712, 1681, 1703, 1708, 1718, 1711, + 1713, 1714, 1700, 1731, 1736, 1723, 1744, 1729, 1732, 1738, + + 1752, 1745, 1761, 1746, 1748, 1755, 1795, 9825, 1750, 1764, + 1771, 1779, 1773, 1797, 1789, 1800, 1828, 1793, 1812, 1824, + 1798, 1851, 1830, 1831, 1823, 1836, 1834, 1848, 1841, 1861, + 1850, 1857, 1858, 1852, 1860, 1875, 1881, 1872, 1879, 1889, + 9825, 1888, 1899, 1900, 1906, 1893, 1896, 1909, 1898, 1914, + 1892, 1930, 1922, 1938, 1918, 1936, 1943, 1919, 1939, 1952, + 1941, 1945, 1946, 1949, 1954, 1947, 1973, 1967, 1990, 1971, + 1988, 1993, 2000, 1996, 1997, 2004, 2006, 1981, 1991, 2009, + 2008, 1995, 1999, 2018, 2020, 2005, 2019, 2033, 2047, 2039, + 2026, 2045, 2035, 2053, 2036, 2040, 2052, 2042, 2048, 2064, + + 2077, 2059, 2086, 2065, 2092, 2069, 2074, 2100, 2101, 2085, + 2088, 9825, 2107, 2102, 2115, 2127, 2117, 2120, 2130, 2121, + 2125, 2129, 2128, 2134, 2140, 2146, 2142, 2152, 2138, 2156, + 2165, 2163, 2113, 2170, 2178, 2186, 2179, 2183, 2173, 2180, + 2184, 2177, 2198, 2190, 2217, 2211, 2199, 2215, 2232, 2206, + 2216, 2230, 2233, 2212, 2225, 2240, 2228, 2236, 2246, 2251, + 2241, 2258, 2274, 2271, 2264, 2257, 2281, 2267, 2285, 2272, + 2275, 2277, 2284, 2280, 2310, 2311, 2309, 2304, 2306, 2305, + 2307, 2312, 2313, 2330, 2327, 2329, 2332, 2322, 2331, 2342, + 2356, 2345, 2346, 2348, 2358, 2359, 2375, 2367, 2364, 2391, + + 2370, 2379, 2385, 2386, 2394, 2393, 2397, 2388, 2403, 2412, + 2407, 2424, 2426, 2415, 2425, 2436, 2421, 2437, 2428, 2340, + 2442, 2451, 2434, 2443, 2441, 2456, 2452, 2455, 2475, 2479, + 2485, 2481, 2478, 9825, 2470, 2495, 2472, 2490, 2484, 2493, + 2482, 2506, 2502, 2497, 2507, 2501, 2512, 2558, 9825, 2515, + 9825, 9825, 2521, 9825, 9825, 2535, 2541, 9825, 2548, 2537, + 2539, 2545, 2568, 2582, 2573, 2561, 2572, 2571, 2566, 2618, + 2596, 2581, 2594, 2611, 2565, 2613, 2621, 2605, 2616, 2629, + 2632, 2655, 2607, 2660, 2650, 2662, 2668, 2666, 2670, 2674, + 2672, 2676, 2663, 2664, 2680, 2688, 2685, 2701, 2712, 2699, + + 2702, 2717, 2703, 2707, 2698, 2690, 2722, 2723, 2737, 9825, + 2728, 2729, 2732, 2743, 2747, 2758, 2739, 2755, 2749, 2762, + 2763, 2759, 2750, 2760, 2764, 2754, 2777, 2756, 2773, 2787, + 2789, 2780, 2806, 2784, 9825, 2799, 2800, 2786, 2807, 2813, + 2802, 2814, 2801, 2818, 2829, 2804, 2852, 2847, 2835, 2832, + 2844, 2830, 2837, 2857, 9825, 2856, 2861, 2842, 2862, 2845, + 2871, 2872, 2874, 2877, 2893, 2880, 2882, 2887, 2881, 2911, + 2901, 2904, 2898, 2907, 2906, 2914, 2926, 2930, 2915, 2927, + 2925, 2938, 2931, 2928, 2939, 2934, 2941, 2944, 2955, 2974, + 2961, 2981, 2963, 2965, 2984, 2986, 2966, 2976, 2987, 2989, + + 2979, 2997, 3001, 3002, 2991, 3004, 3015, 3003, 3019, 3020, + 3028, 3021, 3040, 3026, 3045, 3042, 3029, 3032, 3053, 3035, + 9825, 3047, 3059, 9825, 3048, 3057, 3062, 3108, 3081, 3087, + 3078, 3063, 3069, 3095, 3088, 3098, 3096, 3118, 3107, 3122, + 3123, 3138, 3121, 3128, 3135, 3148, 3152, 3140, 3157, 3159, + 3167, 3172, 3100, 3162, 3176, 381, 3183, 3160, 3178, 3174, + 3224, 3179, 3180, 3188, 3184, 3189, 3208, 3206, 3207, 3201, + 3212, 3210, 3227, 3237, 3233, 3228, 3240, 3248, 3236, 3257, + 3254, 9825, 3267, 3265, 3259, 3271, 3269, 3284, 3275, 3270, + 9825, 3281, 3291, 3283, 3292, 3295, 3287, 3307, 3293, 3301, + + 3303, 3309, 3316, 3320, 3318, 3327, 3337, 9825, 3319, 9825, + 3339, 3338, 3336, 3330, 3345, 3342, 3340, 3356, 3365, 9825, + 9825, 3368, 3366, 3376, 3379, 3369, 3374, 3371, 9825, 3383, + 3412, 9825, 3390, 3405, 3395, 3393, 3398, 3397, 3406, 3416, + 3428, 3407, 3433, 3422, 3424, 3430, 9825, 3435, 3426, 3440, + 3443, 3434, 3454, 3461, 3464, 3456, 9825, 3446, 3460, 3453, + 3483, 3482, 3475, 3467, 3486, 3491, 3479, 3480, 3478, 3501, + 3487, 3506, 3513, 3510, 3512, 3525, 3516, 3527, 9825, 3518, + 3511, 3514, 3535, 3531, 3532, 3537, 3538, 3533, 3530, 3550, + 3552, 3556, 3561, 3554, 3557, 3568, 3573, 3575, 3570, 3581, + + 3571, 3582, 3576, 3577, 91, 3588, 3583, 3599, 3580, 9825, + 3602, 3611, 3615, 3617, 3603, 128, 3610, 3612, 3613, 3626, + 3632, 3634, 3616, 3640, 3651, 3639, 3652, 3654, 3659, 3646, + 3648, 3665, 3661, 3650, 3667, 3675, 3653, 9825, 3671, 3679, + 3677, 3685, 3699, 3687, 3714, 9825, 3704, 3709, 3711, 3713, + 3717, 3715, 3718, 3720, 3731, 3741, 3747, 3734, 3742, 3757, + 3745, 3756, 3744, 9825, 3764, 3760, 3768, 3755, 3780, 3766, + 3769, 3783, 3784, 3782, 3776, 3789, 3806, 3796, 3795, 3797, + 3802, 3811, 3812, 3810, 3816, 3823, 3819, 3829, 3837, 3833, + 3826, 3840, 3838, 9825, 3847, 3853, 3856, 3854, 3846, 3861, + + 3864, 3859, 3892, 3875, 3876, 3886, 3883, 3926, 3888, 3896, + 3911, 3913, 3915, 3916, 3917, 3919, 3928, 3929, 3938, 3936, + 3964, 3889, 3950, 3923, 3961, 3951, 3974, 3966, 3955, 3986, + 3988, 3982, 3981, 4007, 3997, 3976, 3947, 4006, 3999, 9825, + 4014, 4004, 3993, 4013, 4035, 4030, 4020, 4031, 4037, 4044, + 4040, 4041, 4047, 4049, 4054, 4048, 4058, 4065, 4063, 4064, + 4082, 4066, 4069, 4074, 4095, 4083, 4102, 4101, 9825, 4104, + 4100, 4093, 4099, 4113, 4097, 4114, 4118, 4110, 4122, 4126, + 4123, 4128, 4134, 4130, 4132, 4141, 4149, 4129, 4156, 4144, + 9825, 4160, 4157, 4159, 4153, 4161, 4165, 4177, 4192, 4191, + + 4197, 4200, 4183, 4202, 4199, 4190, 9825, 4207, 4212, 4209, + 4216, 4204, 4218, 4227, 4215, 4224, 9825, 4228, 4239, 4232, + 4230, 4225, 4226, 4261, 4252, 9825, 4265, 4264, 4242, 4243, + 4255, 4254, 4269, 4271, 4266, 4275, 4279, 4296, 4280, 4281, + 4298, 9825, 4290, 4315, 4294, 4307, 4310, 4305, 4311, 4329, + 4343, 4313, 4331, 4327, 9825, 4325, 4346, 4352, 4362, 4340, + 4338, 4354, 4356, 4371, 4366, 4360, 4377, 4365, 9825, 4381, + 4378, 4379, 4393, 4398, 4383, 4399, 4405, 4403, 4400, 4417, + 4420, 4421, 4414, 4411, 4427, 4432, 4422, 4430, 4449, 4438, + 4442, 4448, 4454, 4457, 4461, 4456, 4471, 4466, 4458, 4452, + + 4481, 4492, 4494, 4495, 4490, 4501, 9825, 4496, 4499, 4497, + 4487, 4498, 4493, 4489, 4508, 4511, 4516, 4519, 4535, 4530, + 4522, 4550, 4552, 4528, 4555, 4532, 4534, 4549, 4559, 4546, + 4554, 4542, 4571, 4567, 4568, 4563, 4575, 4577, 4578, 4598, + 4581, 4587, 4590, 4591, 4593, 4576, 4604, 4611, 4618, 4603, + 4613, 4614, 4628, 4629, 4630, 4638, 4631, 4634, 4637, 4661, + 9825, 4633, 4647, 4639, 4648, 4656, 4673, 4671, 4687, 4669, + 4678, 4681, 4685, 4688, 4677, 4675, 4700, 4690, 4706, 4721, + 9825, 4704, 9825, 4702, 4720, 4727, 4711, 4712, 9825, 4726, + 9825, 4731, 4730, 4719, 4724, 9825, 4738, 4739, 4736, 4755, + + 4749, 4743, 4757, 4752, 4758, 4770, 4766, 4785, 4765, 4763, + 4779, 4778, 4768, 4797, 4795, 4792, 4784, 4799, 4817, 4816, + 4807, 4822, 4806, 4818, 4831, 4813, 4833, 9825, 4839, 4840, + 4837, 4830, 4834, 4849, 4851, 4854, 4847, 4874, 4877, 4864, + 4865, 4883, 4878, 4881, 4869, 4891, 4895, 4899, 4897, 4908, + 9825, 4892, 4888, 4902, 4901, 9825, 4918, 4912, 4924, 4929, + 4926, 4914, 4916, 4934, 4941, 4920, 4943, 4946, 4968, 4951, + 4949, 4969, 9825, 4953, 4970, 4952, 4957, 4983, 4990, 4995, + 4987, 4993, 4999, 4996, 4998, 5005, 4989, 5009, 5004, 5008, + 5010, 5013, 5034, 5014, 5006, 5037, 5043, 5041, 5026, 5027, + + 5030, 5035, 5038, 5045, 5040, 5053, 5056, 5061, 5062, 9825, + 5070, 5072, 5079, 5080, 5071, 5077, 5074, 5086, 5075, 9825, + 5095, 5083, 5107, 5102, 5115, 5109, 5111, 5104, 5099, 5123, + 5118, 5130, 5144, 5119, 9825, 5134, 9825, 5138, 5145, 5140, + 5147, 5146, 5150, 5166, 5170, 5165, 5160, 5177, 5181, 5183, + 5167, 5173, 5190, 5193, 5209, 5192, 5171, 5202, 5187, 5210, + 5204, 5211, 5208, 5232, 5228, 5229, 9825, 9825, 5215, 5226, + 5242, 5230, 5238, 5249, 5257, 5252, 5270, 5259, 5262, 5260, + 5295, 9825, 5266, 5267, 5274, 5287, 5235, 5285, 5298, 5305, + 5301, 5294, 5316, 5307, 9825, 5297, 5304, 5320, 5314, 5333, + + 5321, 9825, 5329, 9825, 5319, 5330, 5331, 5345, 5343, 5340, + 5346, 5348, 5354, 5357, 5362, 5364, 5379, 5365, 5385, 5366, + 5369, 5375, 5390, 5384, 5404, 5381, 5391, 5382, 9825, 5401, + 5395, 5412, 5414, 5418, 5420, 5417, 5406, 9825, 5427, 5432, + 5428, 5422, 5438, 5439, 5445, 5441, 5448, 5447, 5444, 5464, + 5465, 9825, 5454, 5459, 5474, 5468, 5471, 5484, 5470, 5491, + 5482, 9825, 5478, 5487, 5498, 5499, 5500, 5506, 5510, 5495, + 5497, 5502, 5514, 5523, 5525, 5522, 5524, 5529, 5533, 5539, + 5542, 5565, 5540, 5549, 5553, 5507, 5547, 9825, 5554, 5559, + 5563, 5567, 5580, 5569, 5592, 5584, 5598, 5581, 5599, 5602, + + 5594, 5595, 5613, 5614, 5607, 5620, 9825, 5622, 5606, 5632, + 5610, 5628, 5636, 5619, 5633, 5644, 5637, 5627, 5651, 5660, + 5662, 5658, 5678, 5649, 5650, 5653, 5675, 5654, 9825, 5698, + 5672, 5688, 5655, 5693, 5694, 5711, 5699, 5687, 5689, 5712, + 5696, 5726, 5713, 5719, 5728, 5732, 5723, 9825, 9825, 5742, + 5720, 5735, 9825, 5739, 5730, 5757, 5747, 5758, 5740, 5749, + 5766, 5756, 5753, 5776, 5755, 5770, 9825, 5782, 5794, 5775, + 5789, 5799, 5803, 9825, 5788, 5804, 5798, 5806, 5792, 5790, + 5793, 5815, 5821, 5817, 5814, 5828, 5823, 5841, 5825, 5831, + 5839, 9825, 5833, 5842, 5844, 5847, 5838, 5848, 9825, 5858, + + 5874, 5860, 5873, 5872, 5882, 5885, 5886, 5883, 5871, 5880, + 5876, 5888, 5891, 5903, 5901, 5899, 5910, 5909, 5918, 5927, + 5932, 5930, 9825, 5926, 5940, 5919, 5942, 9825, 5943, 5968, + 5937, 9825, 5945, 5921, 5944, 5953, 5960, 9825, 5961, 5971, + 5967, 5957, 5986, 5963, 5991, 5970, 5976, 5972, 5981, 9825, + 5995, 5992, 6000, 9825, 5998, 6009, 6014, 6015, 5997, 6026, + 6023, 6025, 6027, 6022, 9825, 6034, 9825, 6032, 6028, 6042, + 9825, 6036, 6052, 6041, 6045, 6038, 6066, 6072, 6073, 6051, + 6060, 6074, 6063, 6065, 6078, 6089, 6090, 6068, 6079, 6096, + 6098, 9825, 6117, 6101, 6111, 6104, 6121, 6123, 6115, 6109, + + 6128, 6113, 9825, 9825, 6134, 9825, 6140, 6136, 6142, 9825, + 6147, 6150, 6170, 6149, 6167, 6169, 6172, 6165, 9825, 6175, + 6177, 9825, 6157, 6176, 6186, 6181, 6179, 6163, 6210, 6203, + 6193, 6204, 6205, 6206, 6207, 6196, 6209, 6223, 9825, 6198, + 6230, 6228, 6227, 6234, 6238, 6232, 6255, 6243, 9825, 6259, + 6245, 6248, 6268, 6269, 9825, 6262, 9825, 6265, 6272, 6282, + 6275, 6278, 6289, 9825, 6286, 6287, 6306, 6285, 6302, 6315, + 6313, 6314, 6304, 6300, 6328, 6321, 6312, 6323, 6337, 6343, + 9825, 6338, 6340, 6336, 6355, 6344, 6341, 6348, 6353, 6364, + 6342, 6381, 6372, 6365, 6373, 6375, 6385, 6390, 6378, 9825, + + 6398, 6404, 6388, 6418, 6399, 6405, 6408, 9825, 6415, 6423, + 6424, 9825, 6417, 6419, 6431, 6443, 6434, 6435, 6432, 6438, + 6446, 6449, 6466, 9825, 6456, 6457, 6454, 6467, 6473, 6476, + 9825, 9825, 6483, 9825, 6480, 6465, 6482, 6490, 6479, 6505, + 6511, 6509, 6519, 6501, 6517, 6522, 6510, 6506, 6531, 6512, + 6556, 6535, 6545, 6539, 6547, 6533, 9825, 9825, 6543, 6558, + 6554, 6564, 6566, 6565, 6560, 6562, 6570, 6587, 6568, 6571, + 6601, 9825, 6595, 6586, 6603, 6589, 9825, 6583, 6612, 6596, + 6605, 6613, 6611, 6615, 6621, 6622, 6628, 6624, 6633, 6638, + 6647, 6635, 6639, 6651, 6640, 6664, 6658, 6654, 6643, 9825, + + 6665, 6656, 6668, 6666, 6670, 6682, 6655, 6692, 6684, 9825, + 6691, 9825, 6695, 6693, 6709, 6710, 6713, 6718, 6714, 6711, + 6716, 6733, 6725, 6727, 6745, 6729, 6734, 6735, 6754, 6756, + 6758, 6759, 6761, 9825, 6762, 6743, 6744, 6757, 6777, 6778, + 6760, 6780, 6781, 6797, 6783, 6795, 6801, 6802, 6789, 6804, + 6792, 6806, 6796, 9825, 6807, 6811, 6816, 6814, 6819, 6826, + 6818, 6849, 6817, 6833, 6836, 6853, 9825, 6839, 6842, 6856, + 9825, 6847, 6845, 6843, 6869, 6857, 6870, 6866, 6860, 6876, + 9825, 6886, 6879, 6883, 6887, 6893, 6894, 6878, 6906, 6900, + 6913, 6905, 9825, 6924, 6910, 6936, 6938, 6919, 6932, 6926, + + 6949, 6903, 9825, 6950, 6952, 6933, 6963, 6966, 6946, 6965, + 6969, 6973, 6981, 6958, 6974, 6985, 6982, 6989, 6990, 6993, + 6992, 6994, 7000, 7007, 9825, 6977, 9825, 7013, 7027, 7008, + 7030, 7014, 7035, 7032, 7024, 9825, 7026, 7029, 7043, 7033, + 7038, 9825, 7040, 7060, 7053, 7065, 9825, 7058, 7073, 7062, + 7069, 7083, 7085, 9825, 7084, 7087, 7088, 7096, 7099, 7089, + 7097, 7092, 7100, 7095, 7104, 7102, 7129, 7137, 7122, 7133, + 9825, 7131, 7139, 7140, 7141, 7134, 7144, 7127, 7148, 7150, + 7159, 9825, 7171, 7158, 7161, 7168, 7179, 7164, 7185, 7160, + 7186, 7175, 7170, 7177, 7195, 7180, 9825, 7202, 7199, 7213, + + 7226, 7216, 7223, 9825, 7221, 9825, 7217, 7232, 7234, 7209, + 7238, 9825, 9825, 7242, 7243, 7244, 7247, 7240, 9825, 9825, + 7254, 9825, 7245, 9825, 7241, 7259, 9825, 9825, 7272, 7252, + 7264, 7279, 7282, 7280, 9825, 7288, 9825, 7294, 7291, 7281, + 7271, 7290, 9825, 7304, 7298, 7314, 7315, 7303, 9825, 7307, + 7305, 7311, 7318, 9825, 7310, 7332, 7317, 7321, 9825, 7345, + 7313, 7342, 7331, 7343, 7350, 7359, 7337, 7353, 7356, 7360, + 7364, 7369, 7366, 7375, 7381, 7385, 7390, 7387, 7379, 7395, + 7402, 7404, 7398, 7393, 7406, 7401, 7388, 7407, 7419, 7416, + 7438, 7439, 7430, 7432, 7440, 7437, 7431, 7448, 7434, 7436, + + 7442, 7443, 7446, 7457, 7469, 7461, 7473, 7464, 7488, 7480, + 7493, 7489, 7491, 7495, 9825, 7484, 7481, 7474, 7520, 7512, + 7500, 7529, 7528, 7531, 7535, 9825, 7537, 9825, 7539, 7524, + 7530, 7525, 7533, 9825, 7550, 7527, 7551, 7554, 7567, 7559, + 7578, 7562, 7565, 7566, 7586, 9825, 7585, 7577, 7568, 7589, + 7588, 9825, 7593, 7596, 7581, 7601, 7614, 7607, 7606, 7609, + 7615, 7611, 7632, 7635, 7617, 7625, 7633, 7640, 7645, 7652, + 7638, 7646, 7636, 7654, 7648, 7649, 7651, 7672, 7682, 7674, + 7683, 7686, 9825, 7670, 9825, 7678, 7673, 7679, 7688, 7697, + 7698, 7700, 7704, 9825, 9825, 7701, 7714, 7707, 7711, 7715, + + 7722, 7725, 7724, 7728, 9825, 7730, 7742, 7737, 7727, 9825, + 7741, 7738, 7750, 7761, 9825, 7759, 7753, 7772, 7774, 7760, + 7775, 7773, 7781, 7766, 7780, 7764, 7794, 9825, 9825, 9825, + 9825, 7795, 7788, 7804, 7799, 7800, 7805, 7807, 7809, 7820, + 7808, 7815, 9825, 7824, 9825, 9825, 7833, 7839, 7832, 7843, + 7841, 7806, 7845, 7842, 9825, 7847, 7851, 7853, 7852, 7861, + 7863, 7859, 7865, 7882, 7880, 7888, 7877, 7878, 7902, 7894, + 7897, 7885, 7901, 7903, 7908, 9825, 9825, 7904, 7910, 7913, + 7918, 7914, 7927, 7920, 7941, 7935, 7933, 7940, 7936, 7942, + 7931, 7947, 7953, 7959, 7943, 9825, 7965, 7966, 7954, 9825, + + 7961, 9825, 7970, 7978, 7967, 7974, 7980, 7981, 7994, 7997, + 9825, 9825, 7986, 8001, 8003, 9825, 9825, 7992, 7998, 7996, + 8020, 8019, 8008, 8023, 8014, 8034, 8021, 9825, 8022, 9825, + 8024, 8035, 8043, 8030, 8057, 8063, 8042, 8068, 8065, 8064, + 8069, 9825, 8066, 8067, 9825, 8073, 8076, 8077, 8071, 8082, + 9825, 8087, 8092, 8078, 8086, 9825, 8089, 8107, 8112, 9825, + 8118, 9825, 8100, 8116, 8113, 8128, 8114, 9825, 8102, 8129, + 9825, 8131, 8132, 8133, 8137, 8138, 9825, 8135, 8143, 9825, + 8146, 8142, 8153, 8167, 8156, 8168, 8159, 8157, 8160, 8181, + 8179, 8178, 9825, 9825, 8190, 8184, 73, 8196, 8177, 8183, + + 8187, 8186, 8195, 8193, 8208, 8197, 9825, 9825, 8210, 9825, + 8213, 8222, 9825, 8201, 8228, 8232, 8229, 8236, 8239, 8223, + 8224, 8244, 8240, 8258, 8248, 8245, 8268, 8282, 8283, 8260, + 8280, 8285, 8289, 8291, 8293, 8281, 8295, 8278, 8275, 8299, + 8296, 8306, 8305, 8309, 8310, 9825, 8334, 8335, 8336, 8322, + 9825, 8343, 8337, 8345, 8341, 9825, 8347, 8342, 8349, 8350, + 8356, 9825, 8357, 8352, 8376, 8372, 8363, 8377, 8374, 8360, + 8378, 8384, 8390, 9825, 9825, 9825, 8392, 8395, 9825, 8396, + 8386, 8385, 8407, 9825, 8406, 8405, 8416, 9825, 9825, 8404, + 8421, 8427, 9825, 8415, 8403, 9825, 8432, 9825, 8418, 9825, + + 8433, 8441, 8448, 8431, 9825, 8442, 8437, 8443, 8477, 9825, + 8461, 8472, 8479, 8471, 8462, 8464, 8485, 9825, 8491, 8487, + 8488, 8494, 8484, 8489, 8476, 8495, 8505, 8518, 8506, 8525, + 9825, 8522, 8529, 8530, 8536, 8519, 8524, 8527, 9825, 8520, + 9825, 8541, 9825, 8546, 8547, 8544, 8561, 8556, 8557, 8569, + 8573, 8554, 8571, 8567, 8563, 8579, 8574, 9825, 9825, 8591, + 8592, 9825, 8581, 9825, 8595, 9825, 8594, 8597, 8604, 8598, + 8606, 9825, 8615, 8603, 8608, 8631, 8605, 8620, 9825, 8626, + 8629, 8630, 8634, 9825, 9825, 8625, 8651, 8654, 9825, 8638, + 8648, 8662, 8652, 8644, 8663, 8657, 8665, 8653, 8656, 8650, + + 8676, 8677, 8685, 8678, 8695, 8696, 8701, 9825, 9825, 9825, + 8694, 8687, 8713, 8710, 8708, 8718, 8709, 9825, 8712, 8716, + 8714, 8723, 8735, 8730, 8731, 9825, 8737, 8733, 8728, 8739, + 8732, 8744, 8740, 8759, 9825, 8761, 8765, 8767, 8770, 8776, + 8773, 8777, 8782, 8774, 8779, 8775, 8780, 9825, 8789, 9825, + 9825, 8791, 9825, 8771, 8795, 8794, 8797, 8814, 9825, 8796, + 8799, 8808, 8816, 8809, 8822, 8828, 8833, 9825, 8839, 8818, + 8832, 8842, 9825, 9825, 8840, 8848, 9825, 8850, 8857, 8849, + 8844, 8841, 8856, 8870, 8867, 9825, 8869, 8874, 8865, 8866, + 8876, 8875, 8889, 9825, 8890, 8888, 8884, 8899, 9825, 8891, + + 8894, 8906, 8908, 8900, 9825, 8915, 8918, 8933, 8925, 9825, + 8921, 8936, 8927, 9825, 9825, 8943, 8944, 8945, 9825, 9825, + 9825, 8953, 8950, 8942, 8958, 9825, 8959, 8975, 8980, 8962, + 8985, 8960, 9825, 8976, 8983, 8990, 8977, 8979, 9825, 9825, + 8974, 8978, 8991, 8997, 8989, 9825, 9825, 8986, 9007, 9022, + 9006, 9012, 9825, 9010, 9024, 9030, 9023, 9034, 9031, 9040, + 9033, 9038, 9054, 9052, 9049, 9044, 9053, 9051, 9059, 9077, + 9065, 9046, 9050, 9079, 9074, 9083, 9073, 9089, 9825, 9825, + 9087, 9825, 9097, 9093, 9825, 9825, 9098, 9103, 9105, 9107, + 9825, 9108, 9113, 9117, 9118, 9096, 9825, 9110, 9126, 9124, + + 9115, 9111, 9825, 9128, 9120, 9136, 9135, 9130, 9129, 9147, + 9152, 9825, 9144, 9161, 9825, 9825, 9146, 9162, 9154, 9166, + 9151, 9825, 9173, 9177, 9168, 9178, 9171, 9179, 9185, 9825, + 9181, 9175, 9825, 9825, 9195, 9198, 9825, 9825, 9189, 9825, + 9825, 9825, 9825, 9825, 9825, 9825, 9825, 9214, 9217, 9825, + 9205, 9221, 9223, 9825, 9227, 9825, 9206, 9222, 9226, 9216, + 9825, 9224, 9825, 9212, 9241, 9232, 9253, 9245, 9265, 9248, + 9250, 9249, 9254, 9246, 9259, 9275, 9273, 9278, 9268, 9286, + 9290, 9279, 9298, 9825, 9825, 9825, 9293, 9288, 9304, 9300, + 9314, 9318, 9321, 9322, 9305, 9313, 9320, 9332, 9334, 9317, + + 9328, 9357, 9340, 9326, 9351, 9358, 9348, 9362, 9825, 9363, + 9359, 9352, 9372, 9825, 9361, 9825, 9355, 9825, 9825, 9377, + 9379, 9383, 9375, 9392, 9397, 9382, 9395, 9386, 9388, 9411, + 9825, 9412, 9825, 9825, 9404, 9406, 9825, 9400, 9413, 9825, + 9409, 9423, 9415, 9403, 9424, 9427, 9440, 9442, 9448, 9825, + 9825, 9438, 9439, 9441, 9449, 9454, 9467, 9462, 9465, 9466, + 9472, 9461, 9483, 9825, 9479, 9486, 9482, 9825, 9492, 9476, + 9493, 9489, 9498, 9488, 9502, 9499, 9825, 9504, 9825, 9501, + 9524, 9525, 9515, 9518, 9527, 9542, 9541, 9545, 9825, 9523, + 9552, 9528, 9555, 9561, 9554, 9564, 9565, 9511, 9570, 9576, + + 9514, 9580, 9583, 9574, 9572, 9581, 9825, 9594, 9596, 9825, + 9601, 9604, 9597, 9599, 9611, 9825, 9595, 9610, 9613, 9624, + 9619, 9623, 9825, 9634, 9635, 9637, 9825, 9636, 9825, 9825, + 9642, 9639, 9646, 9648, 9649, 9825, 9825, 9825, 9705, 9712, + 9719, 9726, 9733, 9740, 9747, 102, 9754, 9761, 9768, 9775, + 9782, 9789, 9796, 9803, 9810, 9817 + } ; + +static yyconst flex_int16_t yy_def[3457] = + { 0, + 3438, 1, 3439, 3439, 3440, 3440, 3441, 3441, 3442, 3442, + 3443, 3443, 3444, 3444, 3445, 3445, 3438, 3446, 3438, 3438, + 3438, 3438, 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3448, 3438, 3438, 3438, + 3448, 3449, 3438, 3438, 3438, 3449, 3450, 3438, 3438, 3438, + 3438, 3450, 3451, 3438, 3438, 3438, 3451, 3452, 3438, 3453, + 3438, 3452, 3452, 3454, 3438, 3438, 3438, 3438, 3454, 3455, + 3438, 3438, 3438, 3455, 3446, 3446, 3438, 3456, 3447, 3456, + 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3448, + 3448, 3449, 3449, 3450, 3450, 3438, 3451, 3451, 3452, 3452, + 3453, 3453, 3452, 3454, 3454, 3438, 3455, 3455, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3452, 3452, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + + 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3438, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3452, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3438, 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, + + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3438, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3438, 3446, 3446, 3452, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3438, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3446, 3438, 3446, 3446, 3438, 3446, 3438, 3446, 3438, + + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3438, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, + + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3438, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3438, 3446, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3438, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 0, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438 + } ; + +static yyconst flex_int16_t yy_nxt[9892] = + { 0, + 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, + 18, 18, 22, 24, 25, 26, 27, 28, 29, 18, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 18, 18, 18, 45, 46, + 24, 25, 26, 27, 28, 29, 18, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 18, 18, 18, 45, 48, 49, 50, 48, + 49, 50, 53, 54, 53, 54, 55, 119, 55, 58, + 59, 60, 61, 120, 22, 58, 59, 60, 61, 86, + 22, 64, 65, 66, 64, 65, 66, 87, 160, 160, + + 1311, 88, 85, 51, 119, 86, 51, 167, 167, 56, + 120, 56, 170, 75, 76, 77, 78, 62, 22, 75, + 76, 77, 78, 62, 22, 81, 82, 83, 67, 97, + 86, 67, 19, 20, 21, 69, 70, 71, 19, 20, + 21, 69, 70, 71, 81, 82, 83, 121, 108, 177, + 177, 79, 72, 159, 409, 86, 97, 79, 72, 86, + 137, 90, 84, 90, 90, 86, 90, 170, 109, 178, + 73, 86, 90, 86, 121, 108, 73, 176, 87, 72, + 159, 84, 88, 86, 130, 72, 112, 137, 110, 162, + 86, 175, 162, 173, 113, 109, 98, 170, 188, 91, + + 92, 93, 111, 99, 94, 114, 170, 100, 187, 95, + 101, 130, 86, 112, 86, 110, 86, 86, 96, 168, + 173, 113, 86, 98, 86, 188, 166, 92, 93, 111, + 99, 94, 114, 165, 100, 187, 95, 101, 85, 162, + 85, 85, 162, 85, 163, 96, 102, 161, 115, 85, + 103, 116, 189, 104, 181, 105, 106, 252, 117, 164, + 118, 164, 164, 292, 164, 86, 107, 90, 86, 90, + 90, 86, 90, 102, 86, 115, 122, 103, 116, 189, + 104, 181, 105, 106, 123, 117, 180, 118, 126, 86, + 124, 86, 127, 107, 125, 86, 156, 160, 160, 148, + + 157, 149, 86, 122, 158, 172, 128, 178, 129, 86, + 150, 123, 176, 180, 86, 126, 151, 124, 179, 127, + 175, 125, 86, 156, 152, 86, 148, 157, 149, 167, + 167, 158, 170, 128, 153, 129, 131, 150, 154, 155, + 132, 182, 86, 151, 133, 179, 328, 86, 168, 205, + 134, 152, 169, 135, 169, 169, 86, 169, 86, 184, + 136, 153, 86, 131, 195, 154, 155, 132, 182, 86, + 174, 133, 174, 174, 166, 174, 205, 134, 86, 85, + 135, 85, 85, 86, 85, 332, 184, 136, 138, 1165, + 85, 195, 139, 90, 183, 90, 90, 206, 90, 185, + + 165, 86, 140, 141, 90, 142, 86, 193, 194, 197, + 196, 163, 186, 161, 86, 138, 86, 86, 86, 139, + 86, 183, 86, 86, 206, 240, 185, 198, 3438, 140, + 141, 91, 142, 143, 193, 194, 144, 196, 190, 186, + 199, 86, 201, 145, 191, 200, 192, 146, 147, 86, + 334, 86, 240, 86, 198, 86, 207, 3438, 86, 86, + 143, 208, 3438, 144, 209, 190, 215, 199, 86, 201, + 145, 191, 200, 192, 146, 147, 202, 203, 211, 86, + 210, 212, 86, 207, 204, 228, 86, 3438, 208, 217, + 216, 209, 86, 86, 213, 214, 3438, 86, 86, 86, + + 225, 3438, 86, 202, 203, 211, 218, 210, 212, 226, + 220, 204, 228, 86, 221, 223, 217, 216, 227, 229, + 224, 213, 214, 86, 232, 230, 219, 225, 86, 253, + 222, 86, 86, 218, 86, 231, 226, 220, 86, 86, + 233, 221, 223, 86, 86, 227, 229, 224, 235, 86, + 234, 232, 230, 219, 237, 236, 253, 222, 238, 86, + 3438, 239, 231, 86, 86, 241, 245, 233, 86, 246, + 86, 86, 86, 3438, 242, 235, 86, 234, 86, 247, + 248, 237, 236, 243, 251, 238, 3438, 86, 239, 244, + 3438, 249, 241, 245, 257, 250, 246, 86, 86, 3438, + + 254, 242, 259, 261, 86, 258, 247, 248, 262, 86, + 243, 251, 267, 86, 86, 260, 244, 255, 249, 86, + 256, 257, 250, 86, 263, 266, 86, 254, 268, 259, + 261, 270, 258, 264, 86, 262, 277, 269, 272, 267, + 86, 271, 260, 86, 255, 265, 86, 256, 86, 86, + 3438, 263, 266, 86, 86, 268, 177, 177, 270, 3438, + 264, 3438, 170, 277, 269, 272, 3438, 273, 271, 3438, + 3438, 164, 265, 164, 164, 169, 164, 169, 169, 90, + 169, 90, 90, 174, 90, 174, 174, 274, 174, 86, + 3438, 276, 3438, 280, 273, 278, 281, 282, 283, 284, + + 86, 275, 279, 3438, 285, 86, 338, 3438, 3438, 86, + 86, 86, 286, 290, 86, 86, 291, 172, 276, 86, + 280, 86, 278, 281, 282, 283, 284, 287, 275, 279, + 86, 285, 340, 288, 289, 86, 86, 293, 86, 286, + 290, 294, 86, 291, 301, 303, 3438, 302, 306, 3438, + 307, 304, 308, 86, 305, 314, 310, 86, 295, 86, + 288, 289, 86, 86, 86, 86, 311, 86, 294, 3438, + 86, 301, 303, 86, 302, 306, 86, 307, 304, 86, + 309, 305, 314, 310, 86, 295, 296, 312, 86, 318, + 317, 297, 313, 311, 326, 370, 298, 315, 86, 86, + + 316, 86, 299, 300, 319, 86, 325, 309, 3438, 86, + 3438, 86, 86, 296, 312, 329, 318, 317, 297, 313, + 86, 326, 370, 298, 315, 327, 86, 316, 86, 299, + 300, 319, 320, 325, 330, 321, 86, 322, 337, 335, + 333, 86, 329, 342, 86, 331, 339, 86, 3438, 323, + 344, 324, 327, 336, 341, 3438, 3438, 3438, 86, 320, + 345, 3438, 321, 343, 322, 337, 86, 333, 86, 351, + 346, 86, 331, 339, 86, 86, 323, 86, 324, 347, + 336, 341, 86, 86, 348, 349, 86, 345, 86, 352, + 343, 86, 353, 356, 350, 354, 351, 346, 355, 86, + + 357, 364, 360, 86, 86, 86, 347, 86, 361, 362, + 86, 348, 349, 86, 86, 367, 352, 86, 358, 353, + 356, 350, 354, 359, 86, 355, 363, 357, 373, 360, + 369, 86, 86, 86, 368, 361, 362, 365, 366, 372, + 371, 86, 374, 375, 376, 378, 86, 86, 86, 3438, + 86, 86, 86, 363, 377, 381, 379, 369, 86, 86, + 86, 368, 380, 383, 365, 366, 372, 371, 3438, 86, + 375, 384, 378, 386, 86, 387, 86, 86, 382, 388, + 390, 377, 86, 379, 389, 3438, 391, 86, 385, 86, + 392, 394, 86, 86, 170, 86, 86, 86, 384, 86, + + 386, 395, 387, 396, 393, 382, 388, 390, 86, 398, + 397, 389, 86, 391, 3438, 385, 399, 392, 401, 403, + 405, 400, 402, 86, 404, 86, 86, 86, 86, 406, + 396, 393, 86, 86, 86, 86, 407, 397, 86, 408, + 3438, 86, 411, 399, 412, 401, 403, 413, 400, 402, + 410, 404, 86, 86, 415, 414, 406, 416, 86, 86, + 419, 86, 420, 407, 421, 86, 408, 86, 86, 411, + 86, 412, 417, 418, 413, 86, 422, 410, 86, 423, + 86, 415, 414, 426, 416, 424, 428, 431, 3438, 420, + 86, 86, 86, 427, 86, 429, 86, 432, 433, 417, + + 418, 86, 425, 422, 86, 435, 86, 434, 86, 86, + 426, 86, 424, 436, 431, 86, 438, 437, 86, 430, + 427, 86, 439, 445, 432, 433, 86, 86, 441, 425, + 86, 86, 435, 440, 434, 443, 442, 86, 86, 86, + 436, 446, 86, 438, 437, 86, 430, 447, 3438, 439, + 445, 448, 444, 3438, 86, 441, 3438, 455, 456, 86, + 440, 3438, 443, 442, 3438, 457, 86, 86, 463, 462, + 469, 86, 3438, 86, 447, 86, 467, 3438, 448, 444, + 449, 468, 86, 450, 455, 456, 464, 86, 451, 452, + 453, 454, 457, 86, 86, 463, 462, 469, 86, 465, + + 466, 86, 470, 3438, 458, 3438, 459, 449, 86, 478, + 450, 471, 476, 464, 472, 451, 452, 453, 454, 460, + 473, 86, 461, 479, 86, 477, 465, 466, 86, 86, + 86, 458, 86, 459, 474, 475, 86, 480, 471, 476, + 481, 472, 482, 86, 86, 86, 460, 473, 483, 461, + 479, 485, 477, 484, 86, 3438, 488, 493, 486, 86, + 487, 474, 475, 86, 480, 86, 86, 481, 86, 482, + 86, 489, 86, 490, 492, 483, 494, 495, 485, 86, + 484, 86, 491, 496, 493, 486, 507, 487, 86, 497, + 498, 3438, 499, 500, 505, 3438, 506, 86, 489, 86, + + 490, 492, 3438, 508, 495, 86, 86, 549, 86, 491, + 496, 501, 86, 562, 86, 509, 497, 498, 86, 499, + 500, 505, 86, 506, 502, 522, 523, 503, 525, 504, + 86, 526, 86, 527, 530, 86, 540, 86, 501, 86, + 86, 541, 509, 86, 524, 86, 86, 86, 528, 539, + 86, 502, 522, 523, 503, 525, 504, 510, 526, 511, + 527, 530, 545, 3438, 529, 512, 538, 86, 86, 513, + 86, 524, 86, 544, 514, 528, 539, 515, 86, 170, + 3438, 542, 546, 86, 510, 547, 511, 548, 543, 545, + 567, 529, 512, 538, 86, 86, 513, 550, 86, 551, + + 544, 514, 86, 86, 515, 516, 86, 517, 542, 546, + 553, 557, 547, 612, 548, 543, 552, 555, 86, 554, + 518, 558, 86, 519, 550, 520, 551, 521, 86, 86, + 3438, 86, 516, 559, 517, 556, 560, 561, 557, 86, + 86, 3438, 86, 552, 555, 86, 554, 518, 558, 86, + 519, 563, 520, 3438, 521, 531, 532, 566, 86, 564, + 559, 565, 556, 560, 561, 533, 86, 534, 535, 536, + 86, 568, 537, 86, 569, 570, 86, 86, 563, 3438, + 86, 604, 531, 532, 566, 86, 564, 86, 565, 571, + 572, 598, 533, 573, 534, 535, 536, 86, 568, 537, + + 86, 569, 570, 574, 575, 3438, 576, 577, 604, 3438, + 578, 579, 3438, 581, 86, 86, 584, 585, 86, 86, + 573, 3438, 3438, 86, 582, 86, 3438, 603, 580, 586, + 574, 575, 86, 576, 577, 86, 86, 578, 579, 583, + 581, 86, 86, 584, 585, 588, 587, 86, 589, 590, + 599, 582, 600, 602, 86, 580, 586, 86, 601, 86, + 591, 86, 592, 3438, 607, 605, 583, 86, 86, 610, + 606, 86, 588, 587, 86, 589, 590, 599, 608, 600, + 602, 86, 616, 615, 613, 601, 86, 591, 86, 592, + 593, 607, 605, 86, 609, 86, 610, 606, 594, 595, + + 86, 86, 596, 597, 611, 608, 86, 618, 614, 86, + 615, 613, 86, 617, 86, 620, 621, 593, 86, 86, + 622, 609, 86, 626, 624, 594, 595, 619, 623, 596, + 597, 611, 86, 86, 618, 614, 86, 86, 86, 86, + 617, 625, 620, 621, 627, 628, 86, 622, 86, 3438, + 626, 624, 629, 630, 619, 623, 632, 3438, 631, 86, + 634, 3438, 633, 3438, 635, 636, 86, 637, 625, 86, + 86, 627, 628, 86, 86, 638, 86, 639, 642, 629, + 630, 86, 86, 632, 86, 631, 3438, 634, 640, 633, + 86, 635, 636, 86, 637, 641, 86, 644, 653, 647, + + 86, 86, 638, 643, 639, 642, 86, 645, 86, 646, + 86, 648, 86, 650, 649, 640, 86, 651, 86, 652, + 86, 660, 641, 3438, 644, 653, 647, 86, 655, 654, + 643, 656, 661, 657, 645, 86, 646, 658, 648, 86, + 659, 649, 86, 663, 651, 86, 662, 86, 3438, 665, + 86, 86, 86, 86, 669, 655, 654, 86, 656, 661, + 657, 666, 86, 667, 658, 668, 664, 659, 86, 670, + 86, 86, 671, 662, 673, 86, 665, 86, 672, 674, + 675, 669, 684, 86, 86, 86, 3438, 86, 666, 86, + 667, 86, 668, 664, 86, 687, 670, 685, 686, 671, + + 86, 673, 3438, 86, 688, 672, 674, 675, 676, 684, + 86, 3438, 86, 677, 689, 678, 691, 690, 86, 698, + 694, 679, 687, 680, 685, 686, 681, 682, 86, 695, + 3438, 688, 86, 683, 86, 676, 86, 86, 703, 86, + 677, 689, 678, 691, 690, 692, 698, 694, 679, 693, + 680, 86, 696, 681, 682, 697, 695, 701, 699, 702, + 683, 706, 86, 86, 3438, 703, 705, 86, 700, 86, + 86, 704, 692, 86, 708, 86, 693, 709, 707, 696, + 86, 710, 697, 712, 701, 711, 702, 86, 706, 86, + 86, 86, 714, 705, 713, 700, 86, 86, 704, 86, + + 86, 708, 715, 716, 709, 707, 717, 718, 710, 719, + 712, 86, 711, 722, 86, 720, 721, 723, 86, 714, + 86, 713, 728, 724, 726, 3438, 735, 86, 86, 715, + 716, 86, 86, 717, 718, 86, 719, 86, 86, 170, + 725, 727, 720, 721, 723, 86, 729, 730, 86, 728, + 724, 726, 731, 86, 732, 734, 733, 86, 86, 737, + 739, 86, 743, 736, 3438, 738, 3438, 725, 727, 86, + 3438, 742, 740, 729, 730, 86, 741, 86, 86, 731, + 86, 732, 86, 733, 86, 86, 86, 739, 86, 743, + 736, 86, 738, 86, 744, 747, 750, 748, 742, 740, + + 751, 745, 749, 741, 746, 752, 86, 753, 754, 755, + 86, 756, 86, 757, 759, 760, 3438, 3438, 758, 764, + 86, 744, 747, 750, 761, 762, 763, 86, 745, 86, + 86, 746, 86, 765, 86, 86, 86, 766, 86, 86, + 767, 759, 760, 86, 86, 86, 764, 86, 86, 769, + 768, 761, 762, 763, 770, 771, 772, 86, 86, 86, + 765, 774, 773, 776, 766, 86, 775, 767, 3438, 778, + 779, 781, 86, 777, 86, 86, 769, 768, 86, 86, + 780, 86, 771, 772, 86, 783, 86, 86, 774, 773, + 776, 86, 86, 775, 782, 788, 778, 779, 86, 790, + + 777, 784, 791, 86, 86, 789, 785, 780, 86, 786, + 787, 794, 783, 86, 796, 795, 86, 792, 793, 3438, + 817, 782, 788, 797, 86, 86, 790, 86, 784, 791, + 798, 86, 789, 785, 801, 802, 786, 787, 794, 86, + 86, 86, 795, 799, 792, 793, 86, 803, 806, 804, + 797, 808, 86, 807, 86, 805, 86, 798, 810, 86, + 86, 801, 802, 811, 86, 800, 86, 86, 86, 86, + 799, 813, 809, 86, 803, 806, 804, 86, 808, 86, + 807, 86, 805, 812, 814, 86, 815, 816, 818, 3438, + 811, 86, 800, 819, 822, 86, 820, 821, 813, 809, + + 823, 826, 86, 824, 86, 828, 825, 829, 827, 86, + 812, 814, 86, 815, 816, 818, 86, 86, 86, 86, + 819, 822, 86, 86, 830, 86, 831, 823, 826, 86, + 824, 836, 833, 825, 829, 827, 832, 86, 86, 834, + 841, 837, 3438, 842, 835, 86, 843, 838, 850, 846, + 86, 86, 3438, 831, 86, 86, 86, 844, 836, 833, + 845, 839, 840, 832, 86, 847, 848, 86, 837, 86, + 842, 86, 86, 843, 838, 86, 846, 856, 854, 86, + 86, 849, 851, 855, 844, 86, 3438, 845, 839, 840, + 86, 852, 847, 848, 857, 858, 86, 86, 859, 860, + + 3438, 853, 861, 86, 856, 862, 86, 863, 849, 851, + 86, 86, 865, 86, 86, 864, 86, 866, 852, 86, + 86, 857, 858, 86, 86, 859, 860, 867, 853, 861, + 868, 869, 862, 870, 863, 871, 873, 875, 872, 865, + 874, 3438, 864, 86, 86, 86, 86, 912, 86, 86, + 86, 86, 86, 879, 867, 877, 878, 868, 869, 876, + 870, 86, 871, 873, 880, 872, 86, 874, 86, 86, + 86, 86, 882, 881, 884, 883, 3438, 891, 885, 86, + 879, 86, 877, 878, 86, 86, 876, 86, 886, 887, + 888, 880, 889, 890, 3438, 86, 893, 86, 86, 882, + + 881, 884, 883, 86, 891, 885, 86, 892, 895, 86, + 894, 897, 896, 900, 86, 886, 887, 888, 86, 889, + 890, 898, 901, 893, 86, 86, 903, 86, 899, 902, + 86, 3438, 86, 86, 892, 895, 86, 894, 897, 896, + 900, 904, 86, 905, 907, 906, 86, 909, 898, 901, + 915, 86, 911, 903, 86, 899, 902, 908, 910, 913, + 86, 3438, 917, 86, 86, 86, 914, 86, 904, 916, + 905, 907, 906, 86, 909, 86, 86, 915, 919, 911, + 86, 170, 86, 918, 908, 910, 913, 921, 920, 917, + 86, 86, 922, 914, 86, 86, 916, 924, 925, 926, + + 923, 927, 928, 3438, 929, 919, 930, 3438, 931, 86, + 918, 86, 933, 934, 86, 920, 936, 86, 86, 922, + 86, 86, 935, 86, 86, 925, 926, 923, 927, 86, + 932, 929, 86, 930, 86, 931, 86, 937, 938, 933, + 86, 86, 947, 936, 939, 86, 86, 3438, 3438, 935, + 948, 86, 3438, 3438, 86, 3438, 949, 932, 952, 950, + 86, 954, 3438, 3438, 937, 938, 951, 953, 3438, 947, + 3438, 939, 940, 961, 86, 941, 86, 948, 86, 942, + 86, 955, 943, 949, 86, 952, 950, 86, 954, 944, + 945, 958, 946, 951, 953, 956, 957, 86, 959, 940, + + 86, 973, 941, 960, 86, 86, 942, 86, 955, 943, + 86, 86, 86, 969, 970, 3438, 944, 945, 958, 946, + 86, 86, 956, 957, 971, 959, 983, 972, 973, 974, + 960, 962, 963, 86, 964, 86, 977, 965, 976, 3438, + 969, 970, 966, 978, 86, 975, 86, 980, 967, 968, + 86, 971, 86, 983, 972, 86, 974, 86, 962, 963, + 86, 964, 981, 977, 965, 976, 979, 982, 86, 966, + 978, 86, 975, 984, 980, 967, 968, 985, 3438, 986, + 3438, 987, 3438, 988, 991, 989, 3438, 993, 3438, 86, + 992, 990, 3438, 979, 86, 994, 995, 1006, 3438, 86, + + 984, 86, 86, 86, 985, 86, 986, 86, 987, 86, + 988, 86, 989, 86, 993, 86, 997, 992, 990, 86, + 996, 998, 994, 995, 86, 999, 1000, 86, 1001, 86, + 1002, 1004, 1005, 1003, 3438, 1008, 1012, 86, 86, 1007, + 86, 86, 86, 997, 1009, 1011, 86, 996, 998, 1010, + 1014, 86, 999, 1000, 1017, 1001, 86, 1002, 1004, 1005, + 1003, 86, 86, 1013, 1015, 1016, 1007, 86, 86, 1019, + 3438, 86, 1011, 1018, 1020, 1021, 86, 1024, 86, 1022, + 1023, 1017, 86, 1025, 1026, 1029, 86, 1028, 86, 86, + 1013, 1015, 1032, 86, 86, 86, 1019, 86, 86, 86, + + 1018, 86, 86, 86, 1024, 1027, 1022, 1023, 1030, 1031, + 1025, 1026, 86, 1033, 1028, 1034, 86, 1040, 3438, 86, + 1035, 1036, 1037, 86, 1038, 86, 86, 1042, 86, 1045, + 3438, 1041, 1027, 3438, 1039, 1030, 1031, 3438, 86, 86, + 86, 86, 1034, 86, 1040, 86, 86, 1035, 1036, 1037, + 1044, 1038, 86, 86, 1042, 1043, 1045, 86, 1041, 1046, + 1048, 1039, 1049, 1050, 1047, 1051, 1052, 1053, 86, 86, + 1056, 86, 1054, 1057, 86, 1058, 86, 1044, 1060, 1059, + 1055, 86, 1043, 86, 86, 3438, 86, 1048, 3438, 1049, + 1050, 86, 1051, 1052, 1053, 86, 86, 1056, 1067, 1054, + + 86, 86, 1058, 1061, 1062, 1060, 1059, 1055, 1063, 1064, + 86, 86, 1069, 86, 1065, 1066, 86, 1068, 1070, 86, + 86, 86, 1071, 3438, 1075, 1067, 86, 1079, 1072, 1073, + 1061, 1062, 86, 1074, 1076, 1063, 1064, 86, 3438, 1069, + 86, 1065, 1066, 86, 1068, 86, 86, 1078, 1084, 1071, + 86, 1075, 1077, 86, 86, 1072, 1073, 1081, 1080, 1082, + 1074, 1076, 1089, 1083, 86, 86, 86, 86, 1086, 86, + 86, 1085, 1087, 86, 1078, 1084, 1088, 86, 86, 1077, + 86, 1090, 1097, 86, 1081, 1080, 1082, 1091, 1092, 1093, + 1083, 1095, 3438, 1096, 86, 1086, 3438, 1094, 1085, 1087, + + 86, 3438, 86, 1088, 86, 86, 1101, 1098, 1104, 1097, + 1103, 1099, 1102, 86, 1091, 86, 1093, 1105, 86, 1100, + 86, 1106, 1108, 86, 1094, 86, 86, 3438, 86, 1107, + 86, 1110, 3438, 1101, 1098, 1109, 86, 1103, 1099, 1102, + 86, 86, 86, 86, 1105, 1112, 1100, 1115, 1106, 1113, + 1111, 1114, 1116, 1117, 86, 1119, 1107, 3438, 86, 86, + 86, 1118, 1109, 1120, 1121, 86, 1123, 86, 86, 3438, + 1122, 86, 1112, 1126, 86, 1138, 1113, 1111, 1114, 170, + 1117, 86, 1119, 1124, 86, 1125, 86, 86, 1118, 1127, + 1120, 1121, 86, 1123, 1135, 1128, 86, 1122, 86, 3438, + + 1126, 86, 86, 1136, 3438, 1137, 1139, 1162, 86, 3438, + 1124, 1140, 1125, 1143, 1145, 1141, 1127, 86, 3438, 1146, + 86, 1135, 1128, 1129, 1142, 1130, 86, 86, 3438, 1131, + 1136, 1132, 1137, 1139, 86, 86, 1133, 86, 1140, 86, + 1143, 1134, 1141, 1147, 1144, 1152, 86, 86, 1151, 1148, + 1129, 1142, 1130, 3438, 1149, 1153, 1131, 86, 1132, 1154, + 86, 86, 86, 1133, 3438, 1155, 1150, 86, 1134, 1163, + 1147, 1144, 1152, 1157, 86, 1151, 1148, 86, 1156, 86, + 1159, 1149, 1153, 1158, 3438, 1160, 1154, 86, 1164, 1161, + 1166, 86, 1155, 1150, 1167, 3438, 86, 1178, 86, 86, + + 1157, 86, 1181, 1177, 1169, 1156, 86, 1159, 1180, 1168, + 1158, 86, 1160, 86, 1179, 86, 1161, 86, 86, 86, + 3438, 1167, 86, 86, 1178, 1182, 1183, 86, 86, 1181, + 1177, 1169, 1185, 1184, 1188, 1180, 1168, 1170, 1187, 3438, + 86, 1179, 1171, 1186, 1172, 86, 86, 86, 1194, 86, + 1173, 86, 1182, 1183, 1189, 1174, 1175, 1190, 1191, 1185, + 1184, 3438, 1176, 86, 1170, 1187, 86, 86, 1192, 1171, + 1186, 1172, 86, 1195, 1197, 86, 86, 1173, 1193, 86, + 1198, 1189, 1174, 1175, 1190, 1191, 1196, 86, 1200, 1176, + 1199, 1202, 1203, 86, 1201, 1192, 86, 3438, 86, 1208, + + 1195, 1204, 1205, 3438, 86, 1193, 86, 1198, 86, 86, + 86, 1207, 1206, 1196, 86, 1200, 1209, 1199, 1210, 1203, + 86, 1201, 86, 86, 1211, 1212, 86, 1213, 1204, 1205, + 86, 86, 86, 1215, 86, 1214, 1218, 1216, 1207, 1206, + 86, 1217, 86, 1209, 1220, 1210, 86, 1221, 86, 3438, + 3438, 1211, 1212, 1224, 1213, 86, 1219, 86, 86, 86, + 1215, 1225, 1214, 1218, 1216, 1222, 86, 1228, 1217, 86, + 1223, 1226, 1227, 1229, 1221, 86, 86, 86, 86, 86, + 1224, 86, 1230, 1219, 86, 1231, 1234, 1232, 1225, 1233, + 1235, 3438, 1222, 3438, 1228, 86, 1237, 1223, 1226, 1227, + + 1229, 1236, 3438, 1241, 86, 86, 1242, 86, 86, 1230, + 86, 1238, 1231, 86, 1232, 86, 1233, 1235, 86, 1239, + 1243, 1244, 86, 1237, 1240, 1245, 1246, 1247, 1236, 86, + 1241, 1248, 86, 1242, 86, 1250, 86, 86, 1238, 1251, + 1252, 1254, 3438, 1249, 86, 86, 86, 1243, 1244, 1253, + 1256, 86, 1245, 1246, 1247, 86, 1255, 1258, 1248, 1257, + 1259, 86, 1260, 86, 1265, 86, 1251, 86, 1254, 86, + 1249, 1267, 86, 86, 86, 1261, 1253, 1256, 1262, 86, + 1264, 1263, 86, 1255, 1258, 86, 1257, 1259, 1266, 1260, + 1268, 1265, 86, 86, 1269, 86, 1270, 1271, 1267, 86, + + 86, 1272, 1261, 86, 1273, 1262, 86, 1264, 1263, 1274, + 1276, 1275, 1278, 1279, 86, 1266, 1277, 86, 86, 86, + 1280, 86, 86, 1270, 1271, 86, 86, 1281, 1272, 1282, + 86, 1273, 1283, 1284, 1285, 1286, 1274, 1276, 1275, 1278, + 86, 1287, 1289, 1277, 1291, 86, 1288, 3438, 1290, 86, + 86, 86, 86, 86, 1281, 86, 1282, 86, 1292, 1293, + 1284, 1295, 1286, 1294, 86, 1296, 86, 1297, 1287, 86, + 86, 86, 86, 1288, 86, 1290, 86, 86, 1299, 1298, + 1303, 1301, 1304, 1307, 1300, 1292, 1293, 3438, 1295, 86, + 1294, 86, 1296, 86, 1297, 86, 86, 1305, 1306, 1302, + + 86, 1310, 1309, 3438, 1313, 1299, 1298, 86, 1301, 86, + 86, 1300, 86, 1308, 86, 86, 86, 1315, 1312, 86, + 86, 86, 86, 1317, 1305, 1306, 1302, 86, 1310, 1309, + 1314, 1313, 1318, 1316, 1319, 1320, 1321, 1323, 86, 1322, + 1308, 86, 170, 1324, 1315, 1312, 1326, 1328, 1327, 86, + 86, 86, 86, 1325, 86, 86, 86, 1314, 1329, 1318, + 1316, 1319, 1320, 1321, 1323, 86, 1322, 1330, 1332, 1331, + 1324, 86, 1334, 86, 1335, 1327, 1333, 3438, 86, 86, + 1325, 1338, 1336, 1342, 1341, 86, 1339, 86, 1337, 86, + 86, 86, 86, 86, 1330, 1332, 1331, 3438, 86, 1334, + + 86, 1335, 1340, 1333, 86, 1343, 86, 1344, 1338, 1336, + 86, 1341, 1345, 1339, 86, 1337, 86, 1346, 86, 1347, + 1352, 3438, 1353, 3438, 86, 1355, 86, 3438, 1354, 1340, + 3438, 1348, 1343, 1358, 1344, 3438, 1356, 3438, 86, 1345, + 1349, 1357, 1350, 86, 1346, 1351, 1347, 1352, 86, 1353, + 86, 1359, 86, 86, 86, 1354, 86, 86, 1348, 86, + 1358, 1360, 1361, 1356, 1362, 1363, 1364, 1349, 1357, 1350, + 86, 1366, 1351, 86, 1365, 1368, 1369, 1370, 1359, 1367, + 86, 86, 1374, 86, 86, 1371, 86, 1372, 1360, 1361, + 1375, 1362, 1363, 1364, 86, 86, 86, 1373, 1366, 86, + + 1379, 1365, 1368, 86, 1370, 86, 1367, 86, 86, 1374, + 1376, 1377, 1371, 1378, 1372, 86, 1380, 1375, 3438, 86, + 1382, 86, 86, 86, 1373, 1381, 1383, 1379, 86, 1386, + 1384, 3438, 1385, 3438, 86, 86, 86, 1376, 1377, 1387, + 1378, 86, 1388, 1380, 1390, 86, 1391, 1382, 1389, 86, + 86, 86, 1381, 1383, 1398, 86, 1386, 1384, 86, 1385, + 1392, 1393, 86, 1395, 1394, 86, 1387, 1396, 86, 1388, + 1397, 1390, 86, 1391, 1401, 1389, 86, 86, 1402, 86, + 1399, 1404, 1400, 1405, 3438, 86, 86, 1392, 1393, 1403, + 1395, 1394, 86, 86, 1396, 86, 1411, 1397, 86, 1406, + + 86, 1401, 1409, 86, 1407, 1402, 1408, 1399, 1404, 1400, + 1405, 1410, 3438, 1419, 86, 86, 1403, 1420, 1421, 3438, + 3438, 1433, 86, 1411, 1425, 86, 1422, 86, 86, 1409, + 1435, 86, 1423, 1408, 3438, 86, 1426, 1424, 1410, 1412, + 1419, 3438, 1428, 1413, 1420, 1427, 1414, 1415, 1433, 1430, + 86, 1416, 86, 1422, 86, 86, 86, 1417, 86, 1423, + 1452, 1418, 86, 1426, 1424, 86, 1412, 86, 86, 1428, + 1413, 1429, 1427, 1414, 1415, 86, 1430, 86, 1416, 1431, + 1434, 1432, 1436, 1437, 1417, 1440, 86, 1452, 1418, 86, + 86, 1438, 1439, 1441, 86, 1442, 3438, 1444, 1429, 1443, + + 86, 3438, 1451, 86, 3438, 86, 1431, 1434, 1432, 1436, + 1437, 3438, 1440, 86, 1450, 86, 1453, 1454, 1438, 1439, + 86, 86, 1455, 1458, 1444, 86, 1443, 86, 1445, 1451, + 1456, 1457, 86, 1446, 1459, 1447, 86, 1448, 86, 1449, + 3438, 1450, 1460, 86, 3438, 86, 86, 1461, 1464, 1455, + 1458, 1462, 86, 86, 1463, 1445, 1470, 1456, 1457, 86, + 1446, 1459, 1447, 1465, 1448, 1466, 1449, 1471, 1472, 86, + 86, 1467, 1468, 1469, 86, 1464, 86, 3438, 1462, 86, + 86, 1463, 1474, 86, 1473, 1476, 86, 86, 86, 1475, + 1465, 1480, 1466, 86, 1471, 1472, 1478, 86, 1467, 1468, + + 1469, 1477, 86, 86, 86, 86, 1479, 1481, 86, 1474, + 1482, 1473, 1476, 86, 1483, 1484, 1475, 1486, 1480, 1485, + 1488, 86, 86, 1478, 1487, 1489, 1491, 1493, 1477, 1490, + 3438, 1492, 86, 1479, 86, 1496, 86, 1482, 86, 86, + 86, 86, 1484, 86, 1486, 1499, 1485, 1488, 1501, 86, + 1503, 1487, 86, 86, 1493, 1494, 1490, 86, 1492, 1495, + 1497, 86, 86, 1498, 1500, 86, 1502, 86, 86, 86, + 1504, 86, 1499, 86, 1505, 1506, 1508, 1503, 1510, 1509, + 86, 3438, 1494, 86, 1507, 1511, 1495, 1497, 86, 3438, + 1498, 1500, 86, 1502, 1512, 86, 86, 1504, 86, 86, + + 86, 1505, 1506, 1508, 86, 1510, 1509, 1513, 1514, 3438, + 1515, 1507, 1511, 1517, 1521, 1520, 86, 1516, 1519, 1522, + 1518, 1512, 86, 1524, 3438, 1525, 1523, 1528, 3438, 86, + 86, 86, 3438, 1535, 1513, 1514, 86, 1515, 86, 86, + 1517, 86, 1520, 86, 1516, 1519, 86, 1518, 86, 1526, + 1527, 86, 1525, 1523, 86, 86, 1529, 86, 1530, 1532, + 1534, 1531, 1533, 86, 86, 86, 86, 86, 1536, 86, + 1537, 170, 1538, 3438, 1541, 1542, 1526, 1527, 86, 1543, + 1544, 86, 86, 1529, 1546, 1530, 1532, 1534, 1531, 1533, + 1539, 86, 1551, 86, 86, 3438, 1540, 1537, 1547, 1545, + + 86, 1541, 1542, 86, 86, 86, 1543, 1544, 86, 1549, + 86, 1546, 1548, 1550, 86, 1553, 1552, 1539, 86, 86, + 86, 1554, 1555, 1540, 1557, 1547, 1545, 1556, 1558, 86, + 1559, 1560, 1569, 86, 1566, 86, 1549, 86, 1561, 1548, + 1550, 3438, 1553, 1552, 86, 1567, 86, 3438, 1554, 86, + 86, 1557, 86, 1568, 86, 1558, 1562, 1559, 1560, 1563, + 1564, 1566, 1570, 1565, 86, 1561, 86, 3438, 86, 1572, + 86, 1574, 1567, 1577, 1573, 1571, 1575, 86, 3438, 86, + 1568, 3438, 86, 1562, 1576, 86, 1563, 1564, 1578, 1570, + 1565, 86, 1580, 86, 1581, 86, 1579, 1582, 1574, 86, + + 1577, 86, 1571, 1575, 86, 86, 1586, 1583, 1584, 1585, + 86, 1576, 1590, 1588, 1587, 1578, 86, 86, 86, 1580, + 86, 1581, 86, 1579, 1582, 3438, 3438, 1591, 1597, 3438, + 1589, 1592, 86, 1586, 1583, 1584, 1585, 86, 86, 86, + 1588, 1587, 86, 1593, 86, 1596, 1598, 1594, 1595, 1599, + 86, 1601, 1600, 86, 1591, 1597, 86, 1589, 1592, 86, + 86, 86, 1602, 1604, 1607, 1603, 86, 1606, 1608, 86, + 1593, 86, 1596, 1598, 1594, 1595, 1599, 86, 1601, 1600, + 1605, 86, 1609, 1610, 1611, 1613, 1612, 86, 86, 1602, + 1604, 86, 1603, 86, 1606, 86, 86, 86, 1614, 1615, + + 86, 1616, 1617, 1618, 3438, 86, 3438, 1605, 1620, 1609, + 86, 1611, 1613, 1612, 1619, 1621, 1626, 1623, 1622, 1625, + 86, 3438, 1624, 3438, 1628, 1614, 86, 1627, 86, 86, + 1618, 86, 86, 86, 86, 86, 86, 86, 86, 1630, + 86, 1619, 1621, 1626, 1623, 1622, 1625, 86, 1629, 1624, + 86, 1628, 1631, 1633, 1627, 86, 1632, 1634, 86, 1636, + 1638, 86, 1635, 1640, 1637, 1641, 1630, 86, 1639, 86, + 1642, 86, 1646, 86, 86, 1629, 1643, 1644, 1647, 1631, + 1633, 86, 1651, 1632, 1648, 86, 1645, 1638, 86, 86, + 1640, 86, 1641, 86, 86, 1639, 1653, 1642, 86, 1646, + + 1649, 1650, 86, 1643, 1644, 1654, 86, 86, 1652, 1660, + 86, 1648, 1655, 1645, 86, 86, 86, 86, 1656, 1659, + 86, 1657, 1658, 1653, 1662, 3438, 86, 1649, 1650, 86, + 86, 1661, 86, 1663, 1664, 1652, 1660, 86, 1666, 1655, + 1667, 1668, 86, 86, 1665, 1656, 1659, 1669, 1657, 1658, + 86, 1662, 86, 86, 1670, 1672, 1671, 86, 1661, 3438, + 1663, 1664, 1673, 1677, 1678, 1666, 1679, 86, 86, 86, + 86, 1665, 86, 86, 1669, 1674, 86, 86, 86, 1675, + 1680, 1670, 1672, 1671, 1681, 1682, 86, 86, 1683, 1673, + 1677, 1678, 1676, 1679, 1684, 86, 1685, 3438, 1687, 3438, + + 86, 1688, 1674, 1686, 1689, 1691, 1675, 1680, 86, 1690, + 86, 1681, 86, 1694, 86, 1683, 86, 86, 1700, 1676, + 86, 1692, 1693, 1685, 86, 1687, 86, 86, 1688, 86, + 1686, 1689, 1691, 1695, 1696, 1697, 1690, 1698, 1702, 86, + 1699, 86, 1704, 86, 1701, 86, 1703, 1705, 1692, 1693, + 86, 86, 1706, 1707, 3438, 3438, 1712, 3438, 86, 86, + 86, 1696, 1697, 86, 1698, 86, 86, 1699, 1709, 86, + 86, 1701, 1708, 1703, 1705, 86, 1710, 86, 86, 1706, + 1707, 1711, 86, 1712, 1713, 1714, 1719, 1716, 86, 1715, + 3438, 86, 1717, 1720, 86, 1709, 86, 86, 1718, 1708, + + 1723, 1727, 86, 1710, 86, 86, 1721, 86, 1711, 86, + 1724, 1713, 1714, 1719, 1716, 1722, 1715, 86, 86, 1717, + 1720, 1725, 1726, 86, 86, 1718, 1728, 1723, 1727, 1729, + 3438, 86, 1730, 1721, 86, 1732, 86, 1724, 86, 1731, + 1733, 1734, 1722, 3438, 1736, 86, 86, 1735, 1725, 1726, + 1737, 1738, 86, 1728, 1740, 86, 86, 86, 1741, 1730, + 3438, 86, 1732, 3438, 1742, 1739, 1731, 1733, 1734, 170, + 86, 1736, 86, 86, 1735, 1743, 86, 1737, 86, 86, + 1746, 1740, 1744, 1745, 1747, 1741, 86, 1748, 86, 3438, + 86, 1742, 1739, 86, 1749, 1752, 1750, 1751, 1754, 1753, + + 1762, 1755, 1743, 86, 86, 1756, 1758, 1746, 86, 1744, + 1745, 1747, 1757, 86, 1748, 1760, 86, 86, 1761, 1764, + 86, 1749, 86, 1750, 1751, 1754, 1753, 86, 1755, 1759, + 86, 86, 1756, 1763, 86, 1765, 86, 1767, 86, 1757, + 86, 86, 1768, 1771, 1770, 1761, 1764, 86, 1766, 1772, + 1774, 86, 1769, 86, 1773, 86, 1759, 86, 1780, 86, + 1763, 3438, 1765, 86, 1767, 86, 1781, 1775, 86, 1768, + 1771, 1770, 1787, 86, 1784, 1766, 1772, 1774, 1776, 1769, + 86, 1773, 86, 1777, 1782, 86, 1778, 1785, 86, 1786, + 86, 86, 86, 1781, 1775, 1788, 86, 1789, 1779, 1787, + + 1783, 1784, 1790, 1794, 1791, 1776, 1792, 86, 86, 86, + 1777, 1782, 1793, 1778, 1785, 1795, 1786, 1801, 3438, 1797, + 1802, 1804, 86, 1800, 3438, 1779, 86, 1783, 86, 86, + 1796, 1791, 86, 1792, 86, 86, 1799, 86, 86, 1793, + 1798, 1805, 1795, 86, 86, 86, 1797, 86, 86, 86, + 1800, 1803, 86, 86, 1806, 1807, 1809, 1796, 1808, 1810, + 3438, 1812, 1811, 1799, 1813, 86, 86, 1798, 1805, 86, + 1815, 1814, 1817, 86, 86, 1818, 86, 86, 1803, 86, + 86, 1806, 86, 1809, 86, 1808, 1810, 1823, 1812, 1811, + 1816, 1813, 86, 1819, 1820, 86, 1821, 1815, 1814, 1817, + + 86, 86, 1818, 1824, 1822, 1825, 1826, 1829, 1828, 86, + 86, 86, 1827, 86, 86, 1830, 86, 1816, 86, 86, + 1819, 1820, 86, 1821, 1831, 86, 1832, 3438, 1833, 1837, + 1824, 1822, 1825, 1826, 86, 1828, 1834, 1835, 86, 1827, + 1836, 86, 1830, 86, 1838, 1839, 86, 1843, 86, 1840, + 86, 1831, 1848, 1832, 86, 1833, 1837, 86, 86, 1849, + 1847, 1844, 86, 1834, 1835, 1841, 1845, 1836, 1842, 86, + 1850, 1838, 1839, 86, 1843, 1846, 1840, 86, 1866, 86, + 1851, 1852, 1853, 86, 86, 86, 86, 1847, 1844, 86, + 1854, 1855, 1841, 1845, 1856, 1842, 1857, 1850, 1859, 86, + + 1858, 1860, 1846, 3438, 86, 86, 86, 1851, 1852, 86, + 86, 1861, 86, 1865, 1867, 3438, 86, 1854, 1855, 1868, + 86, 1856, 86, 1857, 1862, 1859, 86, 1858, 1860, 86, + 1863, 86, 86, 1864, 1870, 1869, 1872, 1871, 1861, 1873, + 1865, 86, 1897, 86, 1874, 1875, 1868, 86, 86, 86, + 86, 1862, 1877, 1876, 86, 1879, 1878, 1863, 1880, 1881, + 1864, 1870, 1869, 1872, 1871, 86, 1882, 86, 86, 86, + 1883, 86, 1875, 1885, 86, 3438, 1886, 86, 3438, 1877, + 1876, 86, 1879, 1878, 1884, 1880, 1881, 1887, 86, 1888, + 1890, 86, 1893, 1882, 1894, 1889, 86, 1883, 86, 86, + + 1885, 86, 1891, 1886, 1896, 86, 86, 1892, 1895, 86, + 1899, 1884, 1900, 86, 1887, 1898, 1888, 1890, 1901, 1893, + 1902, 1894, 1889, 1903, 86, 1904, 86, 1907, 1911, 1905, + 1906, 1896, 3438, 86, 86, 1895, 86, 86, 3438, 1908, + 86, 3438, 1898, 86, 86, 1901, 86, 1902, 1909, 1912, + 1913, 1915, 1904, 86, 1910, 86, 1905, 1906, 86, 86, + 86, 1914, 1916, 3438, 1917, 1918, 1908, 1919, 86, 86, + 86, 1925, 86, 1920, 1923, 1909, 1912, 1913, 1915, 86, + 1921, 1910, 86, 1922, 86, 86, 1926, 86, 1914, 1916, + 1927, 1917, 1918, 86, 1919, 1924, 86, 1928, 1929, 1930, + + 1920, 86, 1932, 86, 86, 86, 1931, 1921, 86, 1933, + 1922, 1934, 1937, 1938, 86, 1935, 3438, 1927, 86, 1936, + 86, 86, 1924, 86, 86, 1929, 1930, 1939, 1940, 86, + 86, 1941, 3438, 1931, 86, 1942, 1933, 1943, 1944, 1937, + 86, 1945, 1935, 86, 3438, 86, 1936, 1947, 1946, 1949, + 1950, 86, 1948, 86, 1939, 1940, 86, 86, 1941, 86, + 1954, 86, 1942, 1956, 1943, 1944, 86, 170, 1945, 1952, + 1951, 86, 1953, 1955, 1947, 1946, 1949, 86, 86, 1948, + 86, 1961, 1965, 86, 86, 1959, 86, 86, 1957, 1958, + 1956, 1960, 1962, 86, 1967, 1968, 1952, 1951, 86, 1953, + + 1955, 1963, 1964, 86, 86, 1970, 1966, 86, 1969, 86, + 86, 1971, 1959, 86, 1993, 1957, 1958, 86, 1960, 1962, + 1973, 86, 1968, 86, 1972, 1974, 86, 1975, 1963, 1964, + 86, 1976, 1977, 1966, 86, 1969, 86, 86, 86, 86, + 1979, 86, 1980, 1981, 1978, 86, 86, 1973, 1982, 86, + 1984, 1972, 1974, 86, 1975, 3438, 1983, 1990, 1976, 1977, + 1985, 86, 86, 86, 86, 1992, 3438, 1979, 86, 1980, + 1981, 1978, 86, 1986, 1987, 1982, 1991, 1984, 86, 86, + 1994, 86, 1988, 1983, 1990, 1995, 86, 1985, 86, 1989, + 1996, 1997, 86, 86, 1999, 2000, 2003, 2001, 86, 1998, + + 1986, 1987, 86, 1991, 86, 2002, 86, 1994, 86, 1988, + 2004, 2006, 1995, 2005, 2012, 2007, 1989, 1996, 1997, 86, + 86, 1999, 2000, 86, 2001, 2010, 1998, 2008, 2009, 2014, + 2011, 86, 2002, 86, 86, 2013, 2015, 86, 86, 2016, + 2005, 86, 2007, 2018, 3438, 86, 86, 2017, 2019, 86, + 2021, 2020, 86, 86, 2008, 2009, 2022, 2011, 86, 86, + 2024, 86, 2013, 2015, 2023, 2028, 86, 86, 2025, 2042, + 2018, 86, 86, 2026, 2017, 86, 86, 2021, 2020, 2027, + 2034, 2033, 2036, 86, 3438, 2035, 2037, 2024, 86, 86, + 86, 2023, 86, 86, 86, 2025, 2042, 86, 2040, 86, + + 2026, 86, 2029, 2030, 2031, 2038, 2027, 2034, 2033, 2032, + 2039, 86, 2035, 2037, 86, 2041, 2043, 86, 2045, 2047, + 2046, 2044, 2048, 3438, 2049, 2040, 86, 86, 86, 2029, + 2030, 2031, 86, 86, 2050, 86, 2032, 86, 86, 2051, + 3438, 2054, 2041, 2043, 2055, 2052, 2047, 2046, 2044, 2048, + 86, 86, 86, 2053, 2057, 2056, 2059, 2058, 86, 86, + 2060, 2050, 86, 2061, 2062, 86, 2051, 86, 2054, 86, + 2064, 86, 2052, 2065, 86, 2063, 2066, 2068, 86, 86, + 2053, 86, 2056, 2059, 2058, 2067, 86, 2060, 86, 2070, + 2061, 2069, 86, 2071, 86, 86, 86, 86, 2072, 2073, + + 2065, 2074, 2063, 2066, 2068, 86, 2077, 2075, 2076, 86, + 2081, 2080, 2067, 2083, 86, 86, 2070, 2078, 2069, 2079, + 2071, 86, 2084, 2082, 2085, 2072, 2073, 86, 86, 86, + 2091, 86, 86, 86, 2075, 2076, 2087, 86, 86, 2086, + 2083, 2090, 86, 86, 2078, 86, 2079, 2088, 2092, 2084, + 2082, 2085, 2089, 86, 86, 2095, 86, 2093, 2094, 2100, + 86, 2099, 86, 2087, 86, 2097, 2086, 86, 2090, 2101, + 86, 2096, 86, 2105, 2088, 2102, 2098, 86, 86, 2089, + 86, 86, 2095, 86, 2093, 2094, 86, 86, 2099, 2103, + 2104, 2106, 2097, 2107, 2108, 2112, 2101, 86, 2096, 86, + + 2105, 2109, 2102, 2098, 2113, 2116, 2114, 2115, 2119, 2110, + 86, 86, 86, 86, 2111, 86, 2103, 2104, 2106, 86, + 2107, 86, 86, 2117, 86, 86, 2122, 86, 2109, 2120, + 86, 2113, 2116, 2114, 2115, 2118, 2110, 2121, 86, 2124, + 86, 2111, 86, 2123, 2135, 2125, 2126, 2127, 86, 86, + 2117, 2130, 2136, 2122, 2131, 2132, 2120, 86, 86, 2137, + 86, 2138, 2118, 2128, 2121, 86, 86, 2140, 2129, 86, + 2123, 86, 2125, 2126, 2127, 2133, 86, 2139, 2130, 86, + 2134, 86, 86, 86, 86, 2141, 2137, 2142, 2138, 2150, + 2128, 2143, 86, 2145, 2144, 2129, 86, 2146, 2147, 86, + + 86, 2148, 86, 3438, 2139, 2151, 86, 86, 2149, 86, + 86, 170, 2141, 2155, 2142, 86, 2150, 2154, 2143, 2152, + 86, 2144, 2156, 2153, 2146, 86, 2157, 2158, 2148, 2159, + 86, 86, 2151, 2160, 86, 2149, 86, 86, 3438, 86, + 2155, 2161, 2162, 2164, 2154, 2163, 2152, 2166, 86, 2156, + 2153, 2165, 2167, 86, 86, 2168, 2159, 2172, 2171, 2173, + 2169, 86, 86, 2177, 86, 86, 86, 86, 2161, 2162, + 2164, 86, 2163, 86, 2166, 86, 2170, 86, 2165, 2167, + 86, 86, 2168, 2174, 86, 2171, 2173, 2169, 2176, 2175, + 86, 86, 2178, 2180, 2182, 2179, 2181, 2184, 2185, 86, + + 2186, 3438, 86, 2170, 86, 86, 2183, 86, 3438, 3438, + 2174, 86, 86, 86, 3438, 2176, 2175, 86, 86, 2178, + 2180, 2182, 2179, 2181, 2188, 2185, 2187, 2186, 86, 86, + 2189, 2191, 2192, 2183, 2194, 86, 2193, 86, 2199, 2196, + 86, 2190, 2197, 86, 2195, 2198, 2200, 3438, 86, 3438, + 86, 2188, 86, 2187, 86, 2201, 86, 2189, 2191, 2192, + 86, 2194, 86, 2193, 2202, 2199, 2196, 86, 2190, 2197, + 2203, 2195, 2198, 86, 2204, 86, 2205, 2206, 2207, 86, + 2208, 86, 2201, 2209, 2210, 2211, 86, 2212, 86, 86, + 2213, 2202, 2214, 2216, 2215, 2219, 86, 2203, 3438, 3438, + + 2217, 2204, 86, 2205, 86, 2207, 86, 2208, 86, 86, + 2209, 86, 2211, 2218, 86, 86, 86, 2213, 86, 2214, + 86, 2215, 2219, 2220, 2221, 86, 2222, 2217, 2223, 2224, + 2231, 2226, 86, 2225, 2227, 86, 2228, 86, 3438, 2234, + 2218, 2229, 86, 86, 86, 86, 86, 2237, 86, 86, + 2220, 2221, 2233, 2222, 2230, 2223, 2224, 2231, 2226, 2241, + 2225, 2227, 86, 2228, 2235, 2232, 86, 86, 2229, 86, + 2236, 86, 2238, 86, 2237, 2239, 2240, 86, 2242, 2233, + 3438, 2230, 86, 2245, 86, 2243, 2241, 86, 2244, 2249, + 3438, 2235, 2232, 2247, 86, 2246, 2251, 2236, 86, 2238, + + 2252, 86, 2239, 2240, 86, 2242, 2248, 86, 86, 2250, + 2245, 86, 2243, 2253, 86, 2244, 2249, 86, 2254, 2256, + 2247, 86, 2246, 2255, 86, 86, 86, 2252, 86, 2257, + 2258, 2259, 2261, 2248, 2260, 2262, 2250, 2264, 2263, 86, + 2253, 86, 3438, 86, 2266, 86, 2256, 2265, 2271, 2267, + 2255, 86, 86, 86, 86, 2275, 2257, 2258, 2259, 2261, + 86, 2260, 86, 2268, 2264, 2263, 2270, 86, 2272, 2269, + 2276, 2273, 2278, 2274, 2265, 86, 86, 86, 2277, 86, + 86, 86, 86, 86, 2281, 3438, 2283, 86, 2284, 2282, + 2268, 3438, 86, 2270, 86, 2272, 2269, 2276, 2273, 2278, + + 2274, 2279, 3438, 86, 86, 2277, 2285, 2286, 2287, 2280, + 3438, 86, 86, 2283, 86, 2284, 2282, 86, 2290, 2288, + 86, 2291, 2289, 2294, 86, 2292, 2295, 86, 2279, 86, + 2293, 3438, 2296, 2285, 2286, 2287, 2280, 86, 86, 2297, + 2298, 2299, 2300, 86, 86, 2290, 2288, 86, 2291, 2289, + 2294, 2301, 2302, 2295, 86, 2303, 86, 86, 86, 2296, + 2306, 3438, 86, 86, 2304, 2305, 2297, 2298, 2299, 2300, + 86, 86, 2308, 86, 86, 2307, 2309, 86, 2301, 2302, + 2311, 2312, 86, 2310, 2314, 86, 2313, 2306, 86, 3438, + 2315, 2304, 2305, 86, 3438, 86, 86, 2316, 2319, 2308, + + 2320, 2317, 2307, 2309, 86, 86, 86, 2311, 2312, 2321, + 2310, 2314, 86, 2313, 2318, 86, 2323, 2315, 86, 86, + 2322, 86, 86, 2325, 2316, 2319, 2324, 2320, 2317, 86, + 2326, 2327, 2328, 2329, 3438, 2331, 2321, 2332, 2333, 2330, + 86, 2318, 2337, 2323, 86, 86, 2334, 2322, 86, 86, + 86, 170, 2338, 2324, 2339, 2342, 86, 2326, 86, 2328, + 2329, 86, 2331, 2335, 2332, 2341, 2330, 2340, 2336, 2351, + 86, 2343, 86, 2334, 86, 2346, 2347, 3438, 86, 2348, + 2354, 2339, 86, 3438, 86, 2344, 86, 2352, 2355, 2349, + 2350, 3438, 2341, 86, 2340, 86, 2345, 86, 2343, 86, + + 2353, 86, 2346, 86, 86, 86, 2348, 86, 2356, 86, + 86, 2357, 2344, 3438, 2352, 2355, 2349, 2350, 2358, 2359, + 2361, 2360, 86, 2345, 3438, 86, 86, 2353, 86, 2362, + 2365, 2363, 2364, 3438, 86, 86, 2371, 3438, 2357, 2369, + 86, 2366, 86, 2367, 86, 2358, 2359, 2361, 2360, 2372, + 86, 86, 86, 2368, 86, 2382, 2362, 2365, 2363, 2364, + 86, 86, 2370, 86, 2374, 2373, 2369, 86, 2366, 2376, + 2367, 2378, 86, 2375, 86, 2377, 2372, 86, 86, 86, + 2368, 2379, 86, 2380, 2381, 2383, 86, 2384, 2389, 2370, + 86, 2374, 2373, 86, 86, 86, 2376, 86, 2378, 2385, + + 2375, 2386, 2377, 86, 86, 86, 2387, 86, 2379, 86, + 2380, 2381, 2383, 2388, 2384, 2389, 2390, 2391, 2392, 2394, + 2393, 86, 3438, 86, 2396, 2397, 2385, 2395, 2386, 2399, + 86, 86, 86, 2387, 86, 2398, 2400, 3438, 2403, 2404, + 2388, 2406, 2401, 2390, 2391, 2392, 2394, 2393, 86, 86, + 86, 2396, 86, 86, 2395, 86, 2399, 86, 2402, 2405, + 2408, 2407, 2398, 2400, 86, 2403, 86, 2409, 86, 2401, + 2412, 2413, 86, 86, 86, 2416, 2417, 2410, 2414, 2415, + 2411, 2418, 86, 86, 86, 2402, 2405, 2408, 2407, 2419, + 2420, 2421, 2422, 86, 2409, 86, 86, 86, 86, 86, + + 86, 86, 2416, 2417, 2410, 2414, 2415, 2411, 2418, 2424, + 2425, 2423, 2426, 2427, 2428, 2429, 86, 86, 2421, 86, + 86, 2431, 86, 2435, 2434, 2430, 2437, 2433, 86, 2443, + 3438, 86, 2432, 2440, 86, 86, 86, 2425, 2423, 2426, + 86, 86, 2429, 86, 2439, 86, 86, 2436, 2431, 2438, + 86, 2434, 2430, 86, 2433, 86, 86, 86, 86, 2432, + 2440, 3438, 2441, 2445, 2444, 86, 2447, 2446, 2449, 2454, + 2452, 2439, 86, 2448, 2436, 86, 2438, 2442, 86, 2450, + 2451, 86, 86, 2456, 86, 2453, 86, 2457, 86, 2441, + 2445, 2444, 86, 2447, 2446, 86, 86, 2452, 2459, 86, + + 2448, 2455, 2461, 2458, 2442, 86, 2450, 2451, 86, 86, + 2456, 2460, 2453, 2462, 2457, 86, 2465, 86, 86, 2466, + 2469, 2467, 86, 2463, 2464, 86, 86, 2468, 2455, 2461, + 2458, 2472, 86, 86, 2473, 2470, 3438, 2471, 2460, 86, + 2462, 2480, 86, 2465, 86, 86, 2466, 2469, 2467, 86, + 2463, 2464, 86, 2474, 2468, 2475, 2476, 2477, 86, 2478, + 2483, 2473, 2470, 86, 2471, 86, 2479, 2481, 2480, 2482, + 2484, 86, 86, 2485, 3438, 86, 2488, 86, 3438, 2486, + 2474, 3438, 2475, 2476, 2477, 86, 2478, 2483, 86, 86, + 2489, 86, 2487, 2479, 2481, 2491, 2482, 86, 2490, 2492, + + 2493, 2499, 86, 2494, 86, 86, 2486, 2500, 86, 2502, + 2495, 2496, 86, 86, 2497, 2505, 86, 2489, 2498, 2487, + 86, 86, 2491, 2501, 86, 2490, 2492, 2493, 86, 86, + 2494, 86, 86, 86, 2503, 2508, 2502, 2495, 2496, 86, + 2504, 2497, 3438, 2506, 3438, 2498, 86, 86, 2509, 2510, + 2501, 2507, 86, 86, 2513, 2515, 2511, 2514, 2512, 2517, + 2516, 2503, 2508, 86, 2518, 86, 86, 2504, 86, 86, + 2506, 170, 86, 2522, 86, 2509, 2510, 86, 2507, 86, + 2520, 2513, 86, 2511, 2514, 2512, 2517, 2516, 2519, 2521, + 2523, 2518, 86, 2525, 2524, 2526, 2528, 86, 2527, 86, + + 2522, 86, 2529, 2531, 86, 2530, 2532, 2520, 86, 2534, + 2533, 3438, 86, 2536, 3438, 2519, 2521, 2523, 2535, 2537, + 2525, 2524, 86, 86, 86, 2527, 86, 86, 86, 2529, + 2538, 86, 2530, 2539, 86, 86, 86, 2533, 86, 86, + 2536, 86, 2540, 86, 2541, 2535, 2537, 2544, 2542, 3438, + 2543, 3438, 2546, 3438, 2545, 2548, 3438, 2538, 2547, 2550, + 2539, 86, 2552, 3438, 2551, 2549, 86, 2561, 86, 2540, + 86, 3438, 86, 86, 2544, 2542, 86, 2543, 86, 86, + 86, 2545, 2548, 86, 2553, 2547, 2550, 86, 2554, 86, + 2555, 2551, 2549, 2556, 2557, 2558, 2559, 86, 86, 86, + + 86, 2564, 2560, 86, 2562, 2563, 3438, 86, 2565, 86, + 86, 2553, 2566, 2567, 86, 2554, 86, 2555, 86, 86, + 2556, 2557, 2558, 2559, 86, 86, 2568, 2569, 2564, 2560, + 2570, 2562, 2563, 2571, 86, 2565, 2572, 2573, 86, 2566, + 2567, 86, 2574, 2575, 3438, 2576, 3438, 2578, 86, 2577, + 2581, 2579, 86, 2568, 2569, 86, 86, 2570, 2580, 2583, + 86, 2584, 86, 2572, 2573, 86, 2585, 2587, 2582, 2574, + 2575, 86, 2576, 86, 2578, 2586, 2577, 86, 2579, 86, + 86, 86, 86, 86, 86, 2580, 86, 2588, 2584, 2589, + 2590, 86, 2594, 86, 2587, 2582, 2592, 2591, 86, 2593, + + 2595, 2596, 2586, 86, 2597, 2599, 3438, 2600, 3438, 2598, + 86, 86, 2607, 2602, 2588, 2605, 2589, 2590, 86, 86, + 86, 86, 2610, 2592, 2591, 2615, 2593, 86, 2606, 86, + 86, 2597, 2599, 86, 2600, 2601, 2598, 86, 2603, 2604, + 2602, 2608, 86, 86, 86, 2609, 86, 2611, 2612, 86, + 86, 2613, 86, 86, 86, 2606, 86, 86, 2614, 2616, + 86, 2617, 2601, 2621, 2618, 2603, 2604, 2619, 2608, 3438, + 86, 86, 2609, 2620, 2611, 2612, 86, 2624, 2613, 2622, + 2623, 86, 86, 2627, 86, 2614, 2616, 2628, 2617, 86, + 2621, 2618, 86, 2629, 2619, 86, 2625, 2630, 86, 86, + + 2620, 2626, 2631, 86, 2624, 86, 2622, 2623, 86, 2633, + 2627, 2632, 2634, 3438, 86, 2635, 3438, 2636, 86, 3438, + 86, 2641, 2637, 2625, 86, 2638, 86, 86, 2626, 86, + 2639, 2643, 86, 2640, 86, 2642, 2633, 86, 2632, 2634, + 86, 86, 2635, 86, 2636, 86, 86, 2644, 2641, 2637, + 2645, 2646, 2638, 2647, 2655, 86, 2648, 2639, 86, 2649, + 2640, 2650, 2642, 2651, 2656, 2652, 2653, 3438, 2654, 86, + 86, 86, 3438, 86, 2644, 86, 86, 86, 86, 86, + 2647, 86, 86, 2648, 2657, 86, 2649, 86, 2650, 2658, + 2651, 2656, 2652, 2653, 2659, 2654, 86, 2660, 2662, 2661, + + 86, 3438, 2663, 86, 2664, 3438, 2665, 3438, 86, 2671, + 2666, 2657, 86, 86, 2669, 2670, 2658, 2674, 2667, 170, + 86, 2659, 2668, 86, 2660, 2662, 2661, 86, 86, 2663, + 86, 2664, 86, 2665, 86, 2672, 2671, 2666, 2673, 86, + 2676, 2669, 2670, 2677, 2674, 2667, 2675, 3438, 2678, 2668, + 2679, 86, 2680, 2682, 2681, 3438, 2683, 2686, 3438, 86, + 2684, 3438, 2672, 86, 86, 2673, 86, 86, 86, 86, + 86, 3438, 86, 2675, 86, 2678, 86, 2679, 86, 2680, + 2682, 2681, 2685, 2683, 2686, 2687, 2688, 2684, 2689, 86, + 86, 2690, 2691, 86, 2692, 2693, 2694, 2696, 86, 2695, + + 2700, 86, 2698, 2697, 86, 86, 86, 86, 2702, 2685, + 2699, 2703, 2687, 2688, 2701, 2689, 86, 86, 2690, 2691, + 86, 2692, 2693, 2694, 86, 86, 2695, 86, 86, 2698, + 2697, 2704, 86, 2705, 2706, 86, 2707, 2699, 2703, 2708, + 86, 2701, 2710, 2709, 2711, 86, 86, 2712, 86, 2713, + 86, 2715, 2716, 86, 86, 2714, 86, 2717, 2704, 2718, + 2705, 2706, 3438, 2707, 86, 2723, 2708, 2721, 2719, 2710, + 2709, 86, 86, 2720, 86, 86, 2713, 86, 2715, 86, + 2722, 2724, 2714, 2725, 86, 86, 2728, 86, 86, 2726, + 86, 86, 2723, 86, 2721, 2719, 2727, 2729, 2730, 2732, + + 2720, 2731, 3438, 2734, 2733, 3438, 3438, 2722, 2724, 86, + 2725, 86, 86, 86, 2736, 2737, 2726, 86, 86, 2742, + 2735, 86, 86, 2727, 2729, 86, 2732, 86, 2731, 2741, + 2734, 2733, 2738, 2740, 2745, 2739, 86, 86, 2743, 86, + 86, 2736, 2737, 86, 2748, 2744, 86, 2735, 2746, 2751, + 86, 2747, 2752, 86, 86, 3438, 2741, 2749, 2750, 2738, + 2740, 86, 2739, 86, 86, 2743, 86, 86, 2753, 86, + 2754, 2748, 2744, 2756, 2758, 2746, 86, 86, 2747, 2752, + 86, 86, 2755, 2757, 2749, 2750, 2760, 2762, 2759, 86, + 2763, 2761, 86, 3438, 2765, 2753, 2767, 2754, 86, 86, + + 86, 2758, 2764, 86, 2766, 86, 2768, 3438, 2769, 2755, + 2757, 86, 86, 86, 86, 2759, 2771, 2763, 2761, 86, + 86, 2765, 2770, 2767, 2772, 2773, 2774, 86, 2775, 2764, + 2776, 2766, 2777, 86, 86, 2769, 2780, 2786, 86, 86, + 2778, 3438, 2779, 86, 86, 86, 86, 86, 86, 2770, + 2781, 2772, 2773, 2774, 86, 2775, 2782, 2776, 2783, 86, + 2784, 2785, 2788, 86, 2786, 3438, 2787, 2778, 2790, 2779, + 2791, 86, 86, 2793, 2789, 2794, 2795, 2781, 86, 2792, + 86, 86, 86, 2782, 86, 2783, 86, 2784, 2785, 2788, + 86, 86, 86, 2787, 2797, 2790, 2796, 2791, 86, 2798, + + 86, 2789, 86, 2795, 86, 2799, 2792, 2800, 2801, 2802, + 2804, 2803, 2805, 3438, 3438, 2807, 86, 86, 2806, 86, + 2808, 170, 2810, 2796, 86, 2812, 2798, 86, 2811, 2809, + 2813, 2814, 2799, 86, 2800, 2801, 86, 2804, 2803, 2805, + 86, 86, 86, 86, 2815, 2806, 2816, 86, 2817, 86, + 2819, 2818, 86, 86, 2824, 2811, 2809, 86, 2814, 86, + 2825, 2820, 2822, 2821, 2823, 3438, 86, 2827, 3438, 2830, + 86, 2815, 86, 2816, 86, 86, 2826, 2819, 2818, 86, + 86, 86, 86, 2829, 2828, 2831, 86, 2832, 2820, 2822, + 2821, 2823, 86, 86, 2827, 2833, 2830, 2834, 86, 2835, + + 86, 2836, 2837, 2826, 86, 86, 86, 2838, 2841, 86, + 2829, 2828, 2831, 86, 2832, 3438, 2840, 86, 2839, 86, + 86, 2842, 2833, 2843, 2834, 86, 2835, 2845, 2836, 2837, + 2844, 86, 2846, 86, 2838, 86, 86, 86, 2847, 2848, + 86, 2850, 86, 2840, 2849, 2839, 2851, 86, 2842, 2853, + 2843, 2855, 2852, 86, 2845, 2856, 2854, 2844, 86, 86, + 86, 86, 86, 86, 2858, 2847, 2848, 2857, 2850, 86, + 2859, 2849, 2860, 86, 86, 2861, 2853, 2862, 2855, 2852, + 2867, 86, 86, 2854, 2863, 3438, 2864, 2865, 3438, 3438, + 2874, 2868, 2866, 2869, 2857, 3438, 86, 2870, 2875, 2860, + + 2872, 2876, 86, 86, 86, 86, 86, 86, 86, 2871, + 86, 2863, 86, 2864, 2865, 86, 86, 86, 2868, 2866, + 2869, 86, 2873, 2877, 2870, 86, 86, 2872, 86, 2878, + 2879, 86, 2880, 2881, 2886, 2883, 2871, 2882, 2885, 86, + 2884, 86, 2887, 2888, 2889, 3438, 86, 2893, 2890, 2873, + 2877, 86, 86, 86, 2896, 86, 2878, 86, 3438, 2880, + 2881, 2886, 2891, 2892, 2882, 2885, 2897, 86, 86, 2887, + 86, 86, 86, 2894, 86, 2890, 86, 86, 2895, 2898, + 2900, 86, 86, 2899, 2901, 86, 2903, 2902, 2904, 2891, + 2892, 2905, 86, 2897, 2906, 86, 86, 2907, 86, 86, + + 2894, 2908, 2915, 2909, 2914, 2895, 86, 86, 2910, 2918, + 2899, 2901, 2911, 2903, 2902, 2912, 86, 86, 86, 2913, + 86, 2906, 86, 86, 2917, 86, 86, 2919, 2908, 86, + 2916, 2914, 86, 2920, 86, 86, 86, 2921, 2922, 2911, + 86, 3438, 2912, 2923, 3438, 2924, 2913, 86, 3438, 86, + 2930, 2917, 86, 2927, 2919, 2929, 2931, 2916, 2925, 2926, + 2920, 86, 86, 86, 2921, 2922, 2932, 86, 86, 2928, + 2923, 86, 2924, 2933, 2935, 86, 2936, 2930, 86, 86, + 2927, 2934, 2929, 86, 86, 2925, 2926, 86, 2937, 2938, + 2940, 2942, 2943, 2932, 2939, 2941, 2928, 86, 2944, 86, + + 2933, 2935, 2945, 2936, 2946, 3438, 2947, 86, 2934, 2948, + 2950, 3438, 2949, 2951, 86, 2937, 2952, 86, 2942, 86, + 86, 86, 86, 2954, 86, 2944, 2955, 2953, 86, 2945, + 86, 2946, 86, 2947, 86, 86, 2948, 2950, 86, 2949, + 2951, 2956, 2957, 2952, 86, 86, 2958, 2959, 86, 86, + 2954, 2960, 2961, 2955, 2953, 2962, 2963, 2964, 2965, 2966, + 3438, 86, 3438, 2967, 2972, 3438, 3438, 2978, 2956, 2957, + 2968, 2969, 2979, 86, 86, 86, 86, 2970, 2960, 2961, + 86, 86, 86, 2963, 86, 2965, 86, 2971, 86, 86, + 2967, 86, 2973, 2974, 2975, 86, 86, 2968, 2969, 86, + + 2976, 2977, 86, 2980, 2970, 2981, 2982, 2984, 2985, 2983, + 2996, 86, 2986, 86, 2971, 86, 86, 86, 2989, 2973, + 2974, 2975, 2987, 86, 86, 86, 2990, 2976, 2977, 86, + 2980, 86, 2981, 2982, 86, 86, 2983, 2988, 2993, 2986, + 2991, 2992, 86, 86, 86, 86, 86, 2995, 2994, 2987, + 2999, 2998, 3002, 2990, 86, 86, 2997, 86, 3000, 3003, + 86, 3001, 3004, 3438, 2988, 2993, 86, 2991, 2992, 3005, + 86, 86, 86, 3008, 2995, 2994, 86, 2999, 2998, 3002, + 86, 86, 86, 2997, 3009, 3000, 3003, 86, 3001, 3004, + 3006, 3010, 3011, 3007, 3012, 3013, 3005, 3438, 3015, 3438, + + 86, 86, 3014, 86, 3016, 3017, 3018, 3438, 3438, 3021, + 86, 86, 3022, 3020, 3019, 86, 86, 3006, 86, 3011, + 3007, 3012, 3013, 86, 86, 3024, 86, 86, 86, 3014, + 86, 3016, 3017, 86, 86, 3023, 3021, 3026, 3027, 3022, + 3020, 3019, 3438, 3025, 86, 86, 3028, 3029, 3438, 3030, + 3031, 3032, 3034, 3035, 3033, 3438, 3438, 86, 86, 86, + 3038, 86, 3023, 86, 86, 3027, 86, 3044, 86, 86, + 3025, 3036, 3037, 3028, 3029, 86, 3030, 3031, 3032, 3034, + 86, 3033, 3039, 86, 3040, 86, 86, 3038, 3041, 3042, + 3043, 3048, 3045, 86, 3044, 86, 86, 3046, 3036, 3037, + + 86, 3047, 86, 3050, 3051, 3049, 86, 3053, 86, 3039, + 86, 3040, 86, 86, 3052, 3041, 3042, 3043, 86, 3045, + 86, 3056, 3054, 3058, 3046, 3055, 3057, 3059, 3047, 3061, + 86, 86, 3049, 86, 86, 3060, 86, 86, 3062, 3065, + 3063, 3052, 86, 86, 86, 86, 3068, 86, 3056, 3054, + 3058, 3064, 3055, 3057, 86, 3066, 3061, 3069, 3070, 86, + 3073, 3067, 3060, 3082, 86, 86, 3065, 3063, 86, 86, + 86, 3071, 3072, 86, 3074, 3077, 3076, 86, 3064, 3075, + 3079, 3083, 3066, 86, 3069, 3081, 3080, 86, 3067, 86, + 86, 86, 86, 86, 3078, 86, 86, 3086, 3071, 3072, + + 3084, 86, 86, 3076, 86, 3087, 3075, 3079, 3083, 3085, + 3088, 3089, 3081, 3080, 3090, 86, 86, 86, 3091, 3092, + 3093, 3078, 3094, 3095, 86, 3096, 86, 3084, 3099, 3098, + 3438, 3100, 3087, 86, 86, 86, 3085, 3088, 3089, 3097, + 86, 3090, 3102, 3105, 3110, 3091, 3092, 86, 86, 86, + 3095, 86, 86, 86, 3101, 86, 3098, 86, 3100, 3103, + 3104, 3106, 86, 3107, 3109, 3108, 3097, 86, 3112, 86, + 86, 86, 86, 3114, 86, 3111, 86, 3115, 86, 86, + 3113, 3101, 3124, 86, 3116, 3119, 3103, 3104, 3106, 3120, + 3107, 3109, 3108, 3118, 3121, 3112, 3117, 3125, 86, 3122, + + 86, 3126, 3111, 3438, 86, 3128, 86, 3113, 3133, 86, + 86, 3116, 86, 86, 86, 86, 86, 3123, 86, 86, + 3118, 86, 3127, 3117, 3125, 3130, 3122, 3132, 86, 3129, + 86, 3131, 3128, 86, 86, 86, 86, 3134, 86, 3135, + 3139, 3137, 3136, 3138, 3123, 3140, 3141, 86, 86, 3127, + 3142, 3150, 3130, 86, 3132, 86, 3129, 86, 3131, 3144, + 3146, 86, 3147, 3143, 3134, 3151, 3135, 86, 3137, 3136, + 3138, 86, 86, 3145, 3148, 3149, 3152, 3142, 86, 86, + 86, 86, 3153, 86, 3154, 3155, 3144, 86, 86, 86, + 3143, 3156, 3151, 3159, 3438, 86, 86, 3157, 3158, 3160, + + 3145, 3148, 3149, 3152, 86, 86, 86, 3161, 86, 86, + 3162, 3154, 3155, 86, 86, 86, 3164, 3171, 3156, 3163, + 3159, 3166, 3167, 86, 3157, 3158, 3160, 86, 86, 86, + 86, 3165, 3172, 86, 3161, 3168, 3169, 3162, 86, 86, + 3174, 3170, 3175, 3164, 3171, 86, 3163, 86, 3166, 3167, + 3173, 3177, 3178, 3176, 86, 3179, 3180, 86, 3165, 3172, + 86, 3181, 3168, 3169, 86, 3182, 86, 3183, 3170, 3175, + 3185, 3186, 86, 3184, 3191, 86, 3194, 3173, 3177, 3178, + 3176, 86, 86, 86, 86, 3187, 3188, 3438, 3181, 86, + 3189, 3190, 86, 3195, 3183, 3192, 3193, 86, 86, 86, + + 3184, 86, 3197, 3194, 3196, 3199, 3200, 3198, 3202, 3203, + 3201, 3438, 3438, 86, 86, 86, 86, 86, 86, 86, + 3195, 3204, 86, 3205, 86, 86, 3206, 3208, 86, 86, + 86, 3196, 3199, 3200, 3198, 3202, 86, 3201, 3207, 3209, + 3210, 3211, 3212, 3215, 3213, 86, 86, 3214, 3204, 86, + 3205, 86, 3216, 3206, 3208, 3218, 3223, 3231, 3230, 3221, + 3217, 86, 86, 86, 3222, 3207, 3209, 3210, 3211, 86, + 86, 3213, 86, 86, 3214, 3219, 3227, 86, 3220, 86, + 3225, 3224, 3218, 86, 3226, 86, 3233, 3217, 86, 86, + 86, 86, 86, 86, 3228, 3234, 3229, 3232, 86, 3237, + + 3235, 3438, 3219, 3227, 86, 3220, 3236, 3225, 3224, 3238, + 3240, 3226, 86, 86, 3239, 3241, 86, 3242, 86, 3243, + 3244, 3228, 86, 3229, 3232, 3245, 86, 3235, 86, 3246, + 3247, 3249, 86, 3236, 3248, 86, 86, 86, 3250, 3252, + 3254, 3239, 86, 3253, 86, 3251, 86, 86, 3256, 86, + 86, 3255, 86, 3259, 86, 3258, 86, 86, 3249, 86, + 3260, 3248, 3257, 86, 3261, 86, 3252, 86, 86, 86, + 3253, 3262, 3251, 3263, 86, 86, 3264, 3265, 3255, 3267, + 3259, 3268, 3258, 86, 3270, 86, 86, 3260, 3269, 3257, + 86, 86, 3266, 86, 3271, 3272, 3277, 3438, 3262, 3276, + + 86, 86, 3273, 3264, 3265, 86, 3267, 86, 3268, 3274, + 86, 3278, 86, 3275, 86, 3269, 86, 86, 86, 3266, + 86, 3271, 3272, 3277, 86, 3279, 3276, 3280, 86, 3273, + 3283, 3281, 3282, 3284, 86, 3285, 3274, 86, 3278, 3286, + 3275, 3287, 3289, 3288, 86, 86, 3438, 3292, 3290, 3294, + 3291, 86, 3279, 86, 3280, 86, 86, 3283, 3281, 3282, + 86, 86, 86, 86, 3293, 86, 86, 3295, 3287, 3289, + 3288, 86, 3296, 3298, 3292, 3290, 3294, 3291, 3297, 3300, + 86, 3299, 3301, 3302, 86, 86, 3303, 86, 86, 86, + 3438, 3293, 86, 86, 3295, 3306, 3304, 3305, 86, 3296, + + 3298, 3307, 3309, 3308, 86, 3297, 3300, 86, 3299, 3301, + 3302, 3310, 86, 3303, 86, 3311, 3314, 86, 86, 3312, + 3313, 3315, 3306, 3304, 3305, 86, 3316, 86, 3307, 86, + 3308, 3317, 86, 3318, 3319, 3322, 3320, 86, 3310, 86, + 3438, 3438, 3311, 86, 86, 3321, 3312, 3313, 3315, 3323, + 3329, 3324, 86, 86, 3325, 3326, 86, 86, 3317, 86, + 86, 86, 3322, 3320, 3327, 86, 3328, 86, 3330, 3438, + 3331, 86, 3321, 86, 3333, 3334, 3323, 3329, 3324, 86, + 3332, 3325, 3326, 3336, 3337, 3339, 3335, 86, 3338, 3340, + 86, 86, 3341, 3328, 86, 3330, 86, 86, 86, 3344, + + 86, 86, 86, 3342, 3345, 3349, 3343, 3332, 3346, 3438, + 3336, 86, 3339, 3335, 86, 3338, 86, 3348, 86, 3341, + 3347, 86, 86, 3350, 3351, 86, 3354, 86, 3359, 3355, + 3342, 86, 3349, 3343, 86, 3346, 86, 3352, 3353, 86, + 3357, 3356, 86, 86, 3348, 86, 3358, 3347, 86, 3360, + 86, 86, 86, 3354, 86, 3359, 3355, 3362, 3361, 3363, + 3364, 3368, 86, 86, 3352, 3353, 86, 3357, 3356, 3366, + 3365, 3369, 3367, 3358, 3370, 3371, 3360, 86, 86, 86, + 86, 86, 3372, 3373, 3362, 3361, 3363, 86, 86, 3374, + 3376, 3377, 3375, 86, 3379, 3385, 3366, 3365, 3369, 3367, + + 86, 86, 3371, 3378, 86, 86, 86, 3381, 3380, 3372, + 3373, 86, 3382, 3389, 3438, 86, 3374, 3388, 86, 3375, + 3383, 86, 86, 3407, 3387, 86, 3410, 86, 86, 3384, + 3378, 86, 86, 3386, 3381, 3380, 3438, 86, 86, 3382, + 86, 86, 3392, 86, 3388, 3390, 3393, 3383, 3391, 3394, + 86, 3387, 3395, 86, 86, 3396, 3384, 86, 3397, 3401, + 3386, 3399, 86, 86, 86, 3400, 86, 86, 3402, 3392, + 3398, 3404, 3390, 3393, 3403, 3391, 3394, 3438, 3438, 3395, + 86, 86, 3396, 3405, 86, 3397, 3401, 3408, 3399, 3414, + 3409, 86, 3400, 86, 86, 3402, 3406, 3398, 3404, 3411, + + 86, 3403, 3412, 86, 86, 3413, 3416, 3423, 3438, 86, + 3405, 86, 3415, 86, 3408, 86, 3414, 3409, 3418, 86, + 86, 3419, 86, 3406, 3422, 3438, 3411, 3417, 3420, 3412, + 3421, 3427, 3413, 86, 86, 86, 86, 3426, 86, 3415, + 86, 3424, 3428, 86, 3425, 3418, 3429, 3430, 3419, 86, + 86, 3422, 86, 3432, 3417, 3420, 3431, 3421, 86, 3433, + 3436, 3437, 86, 86, 3426, 3438, 3438, 3438, 3424, 3428, + 3434, 3425, 3438, 86, 86, 86, 86, 3435, 86, 3438, + 3432, 86, 3438, 3431, 3438, 86, 3433, 86, 86, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3434, 3438, 3438, + + 3438, 3438, 3438, 3438, 3435, 47, 47, 47, 47, 47, + 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, + 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, + 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, + 74, 74, 74, 74, 74, 74, 74, 80, 80, 80, + 80, 80, 80, 80, 89, 89, 3438, 89, 89, 89, + 89, 160, 160, 3438, 3438, 3438, 160, 160, 162, 162, + 3438, 3438, 162, 3438, 162, 164, 3438, 3438, 3438, 3438, + 3438, 164, 167, 167, 3438, 3438, 3438, 167, 167, 169, + 3438, 3438, 3438, 3438, 3438, 169, 171, 171, 3438, 171, + + 171, 171, 171, 174, 3438, 3438, 3438, 3438, 3438, 174, + 177, 177, 3438, 3438, 3438, 177, 177, 90, 90, 3438, + 90, 90, 90, 90, 17, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438 + + } ; + +static yyconst flex_int16_t yy_chk[9892] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 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, 32, 6, 7, + 7, 7, 7, 33, 7, 8, 8, 8, 8, 32, + 8, 9, 9, 9, 10, 10, 10, 19, 51, 51, + + 1105, 19, 3446, 3, 32, 33, 4, 67, 67, 5, + 33, 6, 2797, 13, 13, 13, 13, 7, 13, 14, + 14, 14, 14, 8, 14, 15, 15, 15, 9, 25, + 1105, 10, 11, 11, 11, 11, 11, 11, 12, 12, + 12, 12, 12, 12, 16, 16, 16, 34, 28, 84, + 84, 13, 11, 45, 293, 25, 25, 14, 12, 34, + 39, 23, 15, 23, 23, 45, 23, 1116, 28, 177, + 11, 28, 23, 39, 34, 28, 12, 176, 87, 11, + 45, 16, 87, 293, 37, 12, 30, 39, 29, 56, + 37, 174, 56, 72, 30, 28, 26, 169, 100, 23, + + 24, 24, 29, 26, 24, 30, 72, 26, 99, 24, + 26, 37, 30, 30, 29, 29, 100, 99, 24, 167, + 72, 30, 26, 26, 24, 100, 166, 24, 24, 29, + 26, 24, 30, 164, 26, 99, 24, 26, 46, 163, + 46, 46, 163, 46, 162, 24, 27, 160, 31, 46, + 27, 31, 101, 27, 94, 27, 27, 145, 31, 62, + 31, 62, 62, 195, 62, 101, 27, 70, 27, 70, + 70, 31, 70, 27, 94, 31, 35, 27, 31, 101, + 27, 94, 27, 27, 35, 31, 93, 31, 36, 145, + 35, 85, 36, 27, 35, 195, 44, 161, 161, 42, + + 44, 42, 35, 35, 44, 70, 36, 80, 36, 93, + 42, 35, 75, 93, 36, 36, 42, 35, 92, 36, + 74, 35, 44, 44, 43, 42, 42, 44, 42, 168, + 168, 44, 68, 36, 43, 36, 38, 42, 43, 43, + 38, 95, 92, 42, 38, 92, 219, 43, 63, 111, + 38, 43, 73, 38, 73, 73, 95, 73, 111, 97, + 38, 43, 38, 38, 104, 43, 43, 38, 95, 104, + 79, 38, 79, 79, 58, 79, 111, 38, 219, 86, + 38, 86, 86, 97, 86, 222, 97, 38, 40, 956, + 86, 104, 40, 89, 96, 89, 89, 112, 89, 98, + + 57, 96, 40, 40, 89, 40, 112, 103, 103, 106, + 105, 52, 98, 47, 40, 40, 103, 222, 105, 40, + 956, 96, 18, 98, 112, 137, 98, 106, 17, 40, + 40, 89, 40, 41, 103, 103, 41, 105, 102, 98, + 107, 106, 109, 41, 102, 108, 102, 41, 41, 109, + 224, 137, 137, 107, 106, 41, 113, 0, 108, 102, + 41, 114, 0, 41, 115, 102, 118, 107, 114, 109, + 41, 102, 108, 102, 41, 41, 110, 110, 117, 113, + 116, 117, 224, 113, 110, 126, 115, 0, 114, 119, + 118, 115, 110, 116, 117, 117, 0, 119, 118, 126, + + 123, 0, 117, 110, 110, 117, 120, 116, 117, 124, + 121, 110, 126, 123, 121, 122, 119, 118, 125, 127, + 122, 117, 117, 122, 130, 128, 120, 123, 120, 146, + 121, 130, 124, 120, 121, 129, 124, 121, 125, 127, + 131, 121, 122, 128, 146, 125, 127, 122, 133, 129, + 132, 130, 128, 120, 135, 134, 146, 121, 135, 132, + 0, 136, 129, 131, 134, 138, 140, 131, 136, 141, + 141, 133, 138, 0, 139, 133, 135, 132, 140, 142, + 143, 135, 134, 139, 144, 135, 0, 142, 136, 139, + 0, 143, 138, 140, 148, 143, 141, 139, 144, 0, + + 147, 139, 149, 151, 143, 148, 142, 143, 152, 151, + 139, 144, 155, 149, 148, 150, 139, 147, 143, 152, + 147, 148, 143, 150, 153, 154, 147, 147, 156, 149, + 151, 158, 148, 153, 155, 152, 182, 157, 173, 155, + 154, 159, 150, 156, 147, 153, 157, 147, 182, 153, + 0, 153, 154, 158, 159, 156, 178, 178, 158, 0, + 153, 0, 173, 182, 157, 173, 0, 179, 159, 0, + 0, 165, 153, 165, 165, 170, 165, 170, 170, 171, + 170, 171, 171, 175, 171, 175, 175, 180, 175, 179, + 0, 181, 0, 184, 179, 183, 185, 186, 187, 188, + + 181, 180, 183, 0, 189, 186, 227, 0, 0, 184, + 187, 189, 190, 193, 183, 185, 194, 171, 181, 180, + 184, 188, 183, 185, 186, 187, 188, 191, 180, 183, + 190, 189, 229, 191, 192, 193, 192, 196, 227, 190, + 193, 196, 194, 194, 198, 200, 0, 199, 203, 0, + 204, 201, 205, 200, 202, 210, 206, 204, 196, 191, + 191, 192, 199, 203, 229, 196, 207, 210, 196, 0, + 198, 198, 200, 201, 199, 203, 202, 204, 201, 206, + 205, 202, 210, 206, 205, 196, 197, 208, 207, 213, + 212, 197, 209, 207, 217, 256, 197, 211, 208, 212, + + 211, 217, 197, 197, 214, 209, 216, 205, 0, 197, + 0, 213, 211, 197, 208, 220, 213, 212, 197, 209, + 256, 217, 256, 197, 211, 218, 214, 211, 216, 197, + 197, 214, 215, 216, 221, 215, 218, 215, 226, 225, + 223, 220, 220, 231, 226, 221, 228, 223, 0, 215, + 233, 215, 218, 225, 230, 0, 0, 0, 215, 215, + 234, 0, 215, 232, 215, 226, 221, 223, 228, 239, + 235, 225, 221, 228, 234, 231, 215, 230, 215, 236, + 225, 230, 233, 232, 237, 238, 236, 234, 239, 240, + 232, 235, 241, 244, 238, 242, 239, 235, 243, 238, + + 245, 251, 247, 240, 244, 237, 236, 245, 248, 249, + 243, 237, 238, 242, 241, 253, 240, 248, 246, 241, + 244, 238, 242, 246, 247, 243, 250, 245, 259, 247, + 255, 250, 249, 251, 254, 248, 249, 252, 252, 258, + 257, 254, 260, 261, 262, 264, 252, 253, 257, 0, + 246, 261, 255, 250, 263, 267, 265, 255, 264, 258, + 259, 254, 266, 268, 252, 252, 258, 257, 0, 263, + 261, 269, 264, 270, 260, 271, 262, 270, 267, 272, + 274, 263, 265, 265, 273, 0, 275, 267, 269, 266, + 276, 278, 273, 275, 272, 268, 269, 271, 269, 274, + + 270, 279, 271, 280, 277, 267, 272, 274, 277, 282, + 281, 273, 276, 275, 0, 269, 283, 276, 285, 287, + 289, 284, 286, 278, 288, 280, 288, 285, 283, 290, + 280, 277, 281, 279, 284, 286, 291, 281, 287, 292, + 0, 282, 295, 283, 296, 285, 287, 297, 284, 286, + 294, 288, 289, 290, 299, 298, 290, 300, 297, 294, + 303, 291, 304, 291, 305, 292, 292, 298, 295, 295, + 296, 296, 301, 302, 297, 304, 306, 294, 299, 307, + 300, 299, 298, 309, 300, 308, 311, 313, 0, 304, + 301, 302, 303, 310, 313, 312, 305, 314, 315, 301, + + 302, 306, 308, 306, 315, 317, 314, 316, 308, 309, + 309, 307, 308, 318, 313, 310, 320, 319, 311, 312, + 310, 316, 321, 326, 314, 315, 319, 312, 323, 308, + 321, 317, 317, 322, 316, 325, 324, 318, 326, 320, + 318, 327, 322, 320, 319, 324, 312, 328, 0, 321, + 326, 329, 325, 0, 323, 323, 0, 331, 332, 325, + 322, 0, 325, 324, 0, 333, 329, 332, 336, 335, + 340, 328, 0, 327, 328, 331, 339, 0, 329, 325, + 330, 339, 336, 330, 331, 332, 337, 333, 330, 330, + 330, 330, 333, 335, 340, 336, 335, 340, 330, 338, + + 338, 337, 341, 0, 334, 0, 334, 330, 339, 347, + 330, 342, 345, 337, 342, 330, 330, 330, 330, 334, + 343, 342, 334, 348, 338, 346, 338, 338, 334, 341, + 345, 334, 343, 334, 344, 344, 347, 349, 342, 345, + 350, 342, 351, 346, 344, 348, 334, 343, 352, 334, + 348, 354, 346, 353, 351, 0, 357, 361, 355, 354, + 356, 344, 344, 349, 349, 355, 350, 350, 353, 351, + 352, 358, 356, 358, 360, 352, 362, 363, 354, 361, + 353, 360, 358, 364, 361, 355, 370, 356, 357, 364, + 365, 0, 365, 366, 368, 0, 369, 358, 358, 363, + + 358, 360, 0, 371, 363, 364, 366, 393, 362, 358, + 364, 367, 368, 404, 365, 372, 364, 365, 370, 365, + 366, 368, 369, 369, 367, 375, 376, 367, 377, 367, + 371, 378, 375, 379, 382, 367, 386, 372, 367, 393, + 377, 386, 372, 378, 376, 404, 379, 382, 381, 385, + 376, 367, 375, 376, 367, 377, 367, 373, 378, 373, + 379, 382, 389, 0, 381, 373, 384, 385, 386, 373, + 389, 376, 381, 388, 373, 381, 385, 373, 384, 388, + 0, 387, 390, 373, 373, 391, 373, 392, 387, 389, + 409, 381, 373, 384, 390, 392, 373, 394, 394, 395, + + 388, 373, 387, 391, 373, 374, 395, 374, 387, 390, + 397, 399, 391, 444, 392, 387, 396, 398, 399, 397, + 374, 400, 409, 374, 394, 374, 395, 374, 400, 396, + 0, 374, 374, 401, 374, 398, 402, 403, 399, 398, + 444, 0, 397, 396, 398, 401, 397, 374, 400, 403, + 374, 405, 374, 0, 374, 383, 383, 408, 402, 406, + 401, 407, 398, 402, 403, 383, 406, 383, 383, 383, + 408, 410, 383, 410, 411, 412, 407, 405, 405, 0, + 383, 436, 383, 383, 408, 411, 406, 436, 407, 413, + 413, 430, 383, 414, 383, 383, 383, 412, 410, 383, + + 414, 411, 412, 415, 416, 0, 417, 418, 436, 0, + 419, 419, 0, 420, 415, 416, 422, 423, 413, 417, + 414, 0, 0, 430, 421, 423, 0, 435, 419, 424, + 415, 416, 418, 417, 418, 419, 420, 419, 419, 421, + 420, 424, 422, 422, 423, 426, 425, 421, 427, 428, + 431, 421, 432, 434, 426, 419, 424, 425, 433, 435, + 428, 427, 428, 0, 439, 437, 421, 428, 431, 442, + 438, 434, 426, 425, 432, 427, 428, 431, 440, 432, + 434, 433, 448, 447, 445, 433, 437, 428, 439, 428, + 429, 439, 437, 438, 441, 442, 442, 438, 429, 429, + + 440, 441, 429, 429, 443, 440, 445, 450, 446, 447, + 447, 445, 429, 449, 448, 452, 453, 429, 443, 450, + 454, 441, 446, 457, 455, 429, 429, 451, 454, 429, + 429, 443, 457, 451, 450, 446, 449, 452, 453, 455, + 449, 456, 452, 453, 458, 459, 454, 454, 456, 0, + 457, 455, 460, 461, 451, 454, 463, 0, 462, 458, + 465, 0, 464, 0, 466, 467, 465, 469, 456, 459, + 467, 458, 459, 462, 460, 471, 461, 472, 475, 460, + 461, 471, 463, 463, 464, 462, 0, 465, 473, 464, + 466, 466, 467, 469, 469, 474, 472, 477, 486, 480, + + 475, 474, 471, 476, 472, 475, 473, 479, 480, 479, + 476, 481, 477, 483, 482, 473, 479, 484, 481, 485, + 486, 492, 474, 0, 477, 486, 480, 482, 488, 487, + 476, 488, 493, 489, 479, 484, 479, 490, 481, 493, + 491, 482, 487, 495, 484, 483, 494, 488, 0, 496, + 490, 485, 491, 492, 500, 488, 487, 489, 488, 493, + 489, 497, 496, 498, 490, 499, 495, 491, 498, 501, + 494, 499, 502, 494, 504, 495, 496, 500, 503, 505, + 506, 500, 509, 497, 502, 504, 0, 505, 497, 509, + 498, 501, 499, 495, 506, 512, 501, 510, 511, 502, + + 503, 504, 0, 510, 513, 503, 505, 506, 507, 509, + 511, 0, 513, 507, 514, 507, 516, 515, 512, 521, + 518, 507, 512, 507, 510, 511, 507, 507, 515, 519, + 0, 513, 518, 507, 507, 507, 514, 521, 525, 516, + 507, 514, 507, 516, 515, 517, 521, 518, 507, 517, + 507, 519, 520, 507, 507, 520, 519, 523, 522, 524, + 507, 528, 525, 520, 0, 525, 527, 517, 522, 523, + 524, 526, 517, 527, 530, 526, 517, 531, 529, 520, + 529, 532, 520, 534, 523, 533, 524, 528, 528, 531, + 522, 534, 536, 527, 535, 522, 532, 533, 526, 535, + + 530, 530, 537, 538, 531, 529, 539, 540, 532, 542, + 534, 538, 533, 545, 536, 543, 544, 546, 539, 536, + 537, 535, 551, 547, 549, 0, 558, 542, 540, 537, + 538, 551, 546, 539, 540, 547, 542, 549, 543, 544, + 548, 550, 543, 544, 546, 545, 552, 553, 548, 551, + 547, 549, 554, 550, 555, 557, 556, 555, 558, 560, + 562, 553, 566, 559, 0, 561, 0, 548, 550, 552, + 0, 565, 563, 552, 553, 556, 564, 554, 559, 554, + 561, 555, 557, 556, 562, 563, 566, 562, 564, 566, + 559, 560, 561, 565, 567, 568, 570, 569, 565, 563, + + 571, 567, 569, 564, 567, 572, 568, 573, 574, 575, + 570, 576, 567, 577, 578, 579, 0, 0, 577, 583, + 578, 567, 568, 570, 580, 581, 582, 571, 567, 569, + 579, 567, 572, 584, 582, 574, 575, 585, 583, 573, + 586, 578, 579, 576, 586, 577, 583, 581, 580, 588, + 587, 580, 581, 582, 589, 590, 591, 584, 587, 585, + 584, 593, 592, 595, 585, 591, 594, 586, 0, 597, + 598, 600, 588, 596, 593, 595, 588, 587, 590, 596, + 599, 598, 590, 591, 592, 602, 589, 599, 593, 592, + 595, 597, 594, 594, 601, 604, 597, 598, 602, 606, + + 596, 603, 607, 600, 604, 605, 603, 599, 606, 603, + 603, 610, 602, 607, 613, 611, 601, 608, 609, 0, + 633, 601, 604, 614, 610, 603, 606, 611, 603, 607, + 615, 605, 605, 603, 617, 618, 603, 603, 610, 608, + 609, 614, 611, 616, 608, 609, 613, 619, 622, 620, + 614, 624, 633, 623, 615, 621, 617, 615, 626, 618, + 620, 617, 618, 627, 621, 616, 616, 623, 622, 619, + 616, 629, 625, 624, 619, 622, 620, 629, 624, 625, + 623, 627, 621, 628, 630, 626, 631, 632, 634, 0, + 627, 628, 616, 635, 637, 630, 636, 636, 629, 625, + + 638, 641, 632, 639, 631, 643, 640, 644, 642, 634, + 628, 630, 639, 631, 632, 634, 642, 635, 637, 640, + 635, 637, 638, 641, 645, 636, 646, 638, 641, 644, + 639, 650, 648, 640, 644, 642, 647, 643, 647, 649, + 653, 651, 0, 654, 649, 650, 655, 652, 661, 658, + 646, 654, 0, 646, 648, 651, 645, 656, 650, 648, + 657, 652, 652, 647, 655, 659, 660, 657, 651, 652, + 654, 649, 653, 655, 652, 658, 658, 665, 664, 656, + 661, 660, 662, 664, 656, 659, 0, 657, 652, 652, + 660, 663, 659, 660, 666, 667, 666, 662, 668, 669, + + 0, 663, 670, 665, 665, 671, 668, 672, 660, 662, + 664, 670, 674, 663, 671, 673, 672, 675, 663, 674, + 667, 666, 667, 673, 669, 668, 669, 676, 663, 670, + 677, 678, 671, 679, 672, 680, 682, 684, 681, 674, + 683, 0, 673, 678, 680, 679, 681, 720, 677, 675, + 676, 682, 683, 688, 676, 686, 687, 677, 678, 685, + 679, 688, 680, 682, 689, 681, 685, 683, 686, 684, + 689, 687, 691, 690, 693, 692, 0, 699, 694, 720, + 688, 690, 686, 687, 692, 693, 685, 694, 695, 695, + 696, 689, 697, 698, 0, 691, 701, 695, 696, 691, + + 690, 693, 692, 699, 699, 694, 698, 700, 703, 701, + 702, 705, 704, 708, 697, 695, 695, 696, 702, 697, + 698, 706, 709, 701, 703, 704, 711, 708, 707, 710, + 700, 0, 706, 705, 700, 703, 707, 702, 705, 704, + 708, 712, 709, 713, 715, 714, 711, 717, 706, 709, + 723, 710, 719, 711, 714, 707, 710, 716, 718, 721, + 717, 0, 725, 712, 715, 713, 722, 719, 712, 724, + 713, 715, 714, 723, 717, 716, 718, 723, 727, 719, + 725, 721, 724, 726, 716, 718, 721, 729, 728, 725, + 722, 727, 730, 722, 728, 726, 724, 731, 732, 733, + + 730, 735, 736, 0, 737, 727, 738, 0, 739, 735, + 726, 737, 741, 742, 729, 728, 744, 733, 730, 730, + 732, 741, 743, 739, 731, 732, 733, 730, 735, 738, + 740, 737, 740, 738, 736, 739, 744, 745, 746, 741, + 746, 743, 750, 744, 747, 742, 745, 0, 0, 743, + 753, 747, 0, 0, 750, 0, 756, 740, 760, 757, + 753, 762, 0, 0, 745, 746, 759, 761, 0, 750, + 0, 747, 748, 769, 756, 748, 760, 753, 761, 748, + 757, 763, 748, 756, 762, 760, 757, 759, 762, 748, + 748, 766, 748, 759, 761, 764, 765, 748, 767, 748, + + 766, 775, 748, 768, 775, 769, 748, 763, 763, 748, + 768, 767, 765, 771, 772, 0, 748, 748, 766, 748, + 772, 764, 764, 765, 773, 767, 783, 774, 775, 776, + 768, 770, 770, 773, 770, 771, 778, 770, 777, 0, + 771, 772, 770, 779, 778, 776, 783, 781, 770, 770, + 774, 773, 776, 783, 774, 779, 776, 770, 770, 770, + 777, 770, 782, 778, 770, 777, 780, 782, 780, 770, + 779, 781, 776, 784, 781, 770, 770, 785, 0, 786, + 0, 787, 0, 788, 791, 789, 0, 793, 0, 785, + 792, 790, 0, 780, 782, 794, 795, 806, 0, 784, + + 784, 786, 793, 794, 785, 788, 786, 787, 787, 789, + 788, 791, 789, 790, 793, 792, 797, 792, 790, 795, + 796, 798, 794, 795, 797, 799, 800, 796, 801, 806, + 802, 804, 805, 803, 0, 808, 812, 805, 800, 807, + 798, 801, 803, 797, 809, 811, 804, 796, 798, 809, + 814, 799, 799, 800, 817, 801, 802, 802, 804, 805, + 803, 807, 808, 813, 815, 816, 807, 811, 812, 819, + 0, 813, 811, 818, 820, 821, 809, 824, 817, 822, + 823, 817, 814, 825, 826, 829, 815, 828, 819, 823, + 813, 815, 832, 826, 818, 828, 819, 816, 822, 824, + + 818, 820, 821, 825, 824, 827, 822, 823, 830, 831, + 825, 826, 829, 833, 828, 834, 827, 841, 0, 832, + 836, 837, 838, 834, 839, 838, 830, 843, 831, 846, + 0, 842, 827, 0, 840, 830, 831, 0, 836, 837, + 843, 841, 834, 846, 841, 833, 839, 836, 837, 838, + 845, 839, 840, 842, 843, 844, 846, 844, 842, 847, + 848, 840, 849, 850, 847, 851, 852, 853, 845, 852, + 856, 850, 854, 857, 849, 858, 853, 845, 860, 859, + 854, 858, 844, 851, 860, 0, 848, 848, 0, 849, + 850, 847, 851, 852, 853, 856, 854, 856, 867, 854, + + 857, 859, 858, 861, 862, 860, 859, 854, 863, 864, + 861, 862, 869, 863, 865, 866, 864, 868, 870, 866, + 869, 867, 871, 0, 875, 867, 868, 879, 872, 873, + 861, 862, 865, 874, 876, 863, 864, 873, 0, 869, + 871, 865, 866, 872, 868, 875, 874, 878, 884, 871, + 870, 875, 877, 876, 879, 872, 873, 881, 880, 882, + 874, 876, 889, 883, 881, 877, 880, 884, 886, 878, + 883, 885, 887, 886, 878, 884, 888, 882, 885, 877, + 887, 890, 897, 888, 881, 880, 882, 891, 892, 893, + 883, 895, 0, 896, 889, 886, 0, 894, 885, 887, + + 891, 0, 893, 888, 894, 897, 900, 898, 903, 897, + 902, 899, 901, 890, 891, 898, 893, 904, 901, 899, + 892, 905, 907, 895, 894, 896, 899, 0, 900, 906, + 905, 909, 0, 900, 898, 908, 902, 902, 899, 901, + 903, 904, 908, 906, 904, 911, 899, 913, 905, 912, + 910, 912, 913, 914, 907, 916, 906, 0, 909, 910, + 912, 915, 908, 917, 918, 914, 920, 911, 917, 0, + 919, 918, 911, 925, 920, 932, 912, 910, 912, 913, + 914, 916, 916, 922, 915, 923, 922, 925, 915, 926, + 917, 918, 919, 920, 929, 927, 926, 919, 923, 0, + + 925, 927, 932, 930, 0, 931, 933, 953, 933, 0, + 922, 934, 923, 937, 939, 935, 926, 931, 0, 939, + 929, 929, 927, 928, 936, 928, 930, 935, 0, 928, + 930, 928, 931, 933, 934, 937, 928, 936, 934, 953, + 937, 928, 935, 940, 938, 944, 939, 928, 943, 941, + 928, 936, 928, 0, 942, 944, 928, 938, 928, 945, + 943, 940, 941, 928, 0, 946, 942, 944, 928, 954, + 940, 938, 944, 948, 945, 943, 941, 942, 947, 948, + 950, 942, 944, 949, 0, 951, 945, 946, 955, 952, + 957, 947, 946, 942, 958, 0, 949, 963, 950, 958, + + 948, 954, 966, 962, 960, 947, 951, 950, 965, 959, + 949, 952, 951, 960, 964, 955, 952, 959, 962, 963, + 0, 958, 957, 965, 963, 967, 968, 964, 966, 966, + 962, 960, 970, 969, 973, 965, 959, 961, 972, 0, + 970, 964, 961, 971, 961, 968, 969, 967, 979, 972, + 961, 971, 967, 968, 974, 961, 961, 975, 976, 970, + 969, 0, 961, 961, 961, 972, 973, 976, 977, 961, + 971, 961, 975, 980, 983, 979, 974, 961, 978, 977, + 984, 974, 961, 961, 975, 976, 981, 978, 986, 961, + 985, 988, 989, 981, 987, 977, 980, 0, 985, 995, + + 980, 990, 992, 0, 984, 978, 983, 984, 987, 990, + 986, 994, 993, 981, 989, 986, 996, 985, 997, 989, + 992, 987, 994, 988, 998, 999, 997, 1000, 990, 992, + 993, 995, 999, 1002, 996, 1001, 1005, 1003, 994, 993, + 1000, 1004, 1001, 996, 1007, 997, 998, 1009, 1002, 0, + 0, 998, 999, 1013, 1000, 1003, 1006, 1005, 1009, 1004, + 1002, 1014, 1001, 1005, 1003, 1011, 1006, 1017, 1004, 1014, + 1012, 1015, 1016, 1018, 1009, 1013, 1007, 1012, 1011, 1017, + 1013, 1016, 1019, 1006, 1015, 1022, 1025, 1023, 1014, 1024, + 1026, 0, 1011, 0, 1017, 1018, 1028, 1012, 1015, 1016, + + 1018, 1027, 0, 1033, 1019, 1023, 1033, 1022, 1026, 1019, + 1028, 1030, 1022, 1027, 1023, 1024, 1024, 1026, 1025, 1031, + 1034, 1035, 1030, 1028, 1031, 1036, 1037, 1038, 1027, 1033, + 1033, 1039, 1036, 1033, 1035, 1041, 1038, 1037, 1030, 1042, + 1043, 1045, 0, 1040, 1034, 1039, 1042, 1034, 1035, 1044, + 1048, 1031, 1036, 1037, 1038, 1040, 1046, 1050, 1039, 1049, + 1051, 1044, 1052, 1045, 1058, 1049, 1042, 1041, 1045, 1046, + 1040, 1060, 1043, 1052, 1048, 1053, 1044, 1048, 1054, 1050, + 1056, 1055, 1051, 1046, 1050, 1058, 1049, 1051, 1059, 1052, + 1061, 1058, 1060, 1053, 1062, 1056, 1063, 1064, 1060, 1059, + + 1054, 1065, 1053, 1055, 1066, 1054, 1064, 1056, 1055, 1067, + 1069, 1068, 1071, 1072, 1063, 1059, 1070, 1069, 1067, 1068, + 1073, 1062, 1061, 1063, 1064, 1065, 1071, 1074, 1065, 1075, + 1066, 1066, 1076, 1077, 1078, 1080, 1067, 1069, 1068, 1071, + 1070, 1081, 1083, 1070, 1085, 1072, 1082, 0, 1084, 1074, + 1081, 1075, 1073, 1082, 1074, 1077, 1075, 1080, 1086, 1087, + 1077, 1089, 1080, 1088, 1076, 1090, 1078, 1091, 1081, 1089, + 1084, 1085, 1088, 1082, 1083, 1084, 1086, 1087, 1093, 1092, + 1097, 1095, 1098, 1101, 1094, 1086, 1087, 0, 1089, 1090, + 1088, 1091, 1090, 1094, 1091, 1092, 1095, 1099, 1100, 1096, + + 1093, 1104, 1103, 0, 1107, 1093, 1092, 1096, 1095, 1099, + 1101, 1094, 1097, 1102, 1098, 1103, 1104, 1109, 1106, 1109, + 1100, 1102, 1107, 1112, 1099, 1100, 1096, 1106, 1104, 1103, + 1108, 1107, 1113, 1111, 1114, 1115, 1117, 1119, 1108, 1118, + 1102, 1111, 1115, 1120, 1109, 1106, 1122, 1124, 1123, 1117, + 1112, 1118, 1119, 1121, 1113, 1123, 1114, 1108, 1125, 1113, + 1111, 1114, 1115, 1117, 1119, 1120, 1118, 1126, 1128, 1127, + 1120, 1121, 1130, 1122, 1131, 1123, 1129, 0, 1126, 1124, + 1121, 1134, 1132, 1139, 1137, 1130, 1135, 1131, 1133, 1134, + 1125, 1127, 1137, 1128, 1126, 1128, 1127, 0, 1129, 1130, + + 1133, 1131, 1136, 1129, 1132, 1140, 1135, 1141, 1134, 1132, + 1139, 1137, 1142, 1135, 1136, 1133, 1141, 1143, 1140, 1144, + 1147, 0, 1148, 0, 1142, 1150, 1144, 0, 1149, 1136, + 0, 1145, 1140, 1153, 1141, 0, 1151, 0, 1143, 1142, + 1145, 1152, 1145, 1147, 1143, 1145, 1144, 1147, 1148, 1148, + 1149, 1154, 1150, 1145, 1152, 1149, 1151, 1153, 1145, 1154, + 1153, 1155, 1156, 1151, 1157, 1158, 1159, 1145, 1152, 1145, + 1155, 1161, 1145, 1158, 1160, 1163, 1165, 1166, 1154, 1162, + 1156, 1159, 1170, 1163, 1161, 1167, 1157, 1168, 1155, 1156, + 1171, 1157, 1158, 1159, 1168, 1162, 1160, 1169, 1161, 1166, + + 1175, 1160, 1163, 1165, 1166, 1170, 1162, 1167, 1171, 1170, + 1172, 1173, 1167, 1174, 1168, 1175, 1176, 1171, 0, 1169, + 1178, 1174, 1172, 1173, 1169, 1177, 1179, 1175, 1176, 1182, + 1180, 0, 1181, 0, 1179, 1178, 1180, 1172, 1173, 1183, + 1174, 1181, 1184, 1176, 1186, 1177, 1187, 1178, 1185, 1184, + 1182, 1183, 1177, 1179, 1195, 1185, 1182, 1180, 1187, 1181, + 1188, 1189, 1186, 1191, 1190, 1191, 1183, 1192, 1188, 1184, + 1193, 1186, 1190, 1187, 1198, 1185, 1189, 1193, 1199, 1192, + 1196, 1201, 1197, 1202, 0, 1199, 1195, 1188, 1189, 1200, + 1191, 1190, 1196, 1198, 1192, 1197, 1207, 1193, 1202, 1203, + + 1200, 1198, 1205, 1201, 1203, 1199, 1204, 1196, 1201, 1197, + 1202, 1206, 0, 1209, 1204, 1205, 1200, 1210, 1211, 0, + 0, 1222, 1207, 1207, 1215, 1206, 1212, 1209, 1222, 1205, + 1224, 1203, 1213, 1204, 0, 1210, 1216, 1214, 1206, 1208, + 1209, 0, 1218, 1208, 1210, 1217, 1208, 1208, 1222, 1220, + 1211, 1208, 1212, 1212, 1213, 1214, 1215, 1208, 1216, 1213, + 1237, 1208, 1224, 1216, 1214, 1208, 1208, 1217, 1218, 1218, + 1208, 1219, 1217, 1208, 1208, 1220, 1220, 1219, 1208, 1221, + 1223, 1221, 1225, 1226, 1208, 1229, 1237, 1237, 1208, 1223, + 1226, 1227, 1228, 1230, 1229, 1231, 0, 1233, 1219, 1232, + + 1225, 0, 1236, 1221, 0, 1228, 1221, 1223, 1221, 1225, + 1226, 0, 1229, 1227, 1235, 1236, 1238, 1238, 1227, 1228, + 1233, 1232, 1239, 1243, 1233, 1230, 1232, 1231, 1234, 1236, + 1241, 1242, 1243, 1234, 1244, 1234, 1235, 1234, 1239, 1234, + 0, 1235, 1245, 1242, 0, 1238, 1234, 1245, 1248, 1239, + 1243, 1246, 1244, 1241, 1247, 1234, 1254, 1241, 1242, 1247, + 1234, 1244, 1234, 1249, 1234, 1250, 1234, 1255, 1256, 1246, + 1248, 1251, 1252, 1253, 1245, 1248, 1249, 0, 1246, 1251, + 1252, 1247, 1258, 1250, 1257, 1260, 1253, 1256, 1254, 1259, + 1249, 1264, 1250, 1255, 1255, 1256, 1262, 1257, 1251, 1252, + + 1253, 1261, 1259, 1260, 1258, 1262, 1263, 1265, 1263, 1258, + 1266, 1257, 1260, 1264, 1267, 1268, 1259, 1271, 1264, 1270, + 1273, 1261, 1266, 1262, 1272, 1274, 1276, 1278, 1261, 1275, + 0, 1277, 1272, 1263, 1265, 1281, 1275, 1266, 1273, 1271, + 1268, 1267, 1268, 1270, 1271, 1284, 1270, 1273, 1286, 1278, + 1288, 1272, 1274, 1276, 1278, 1279, 1275, 1277, 1277, 1280, + 1282, 1279, 1281, 1283, 1285, 1280, 1287, 1282, 1288, 1284, + 1289, 1285, 1284, 1283, 1290, 1292, 1294, 1288, 1296, 1295, + 1286, 0, 1279, 1290, 1293, 1297, 1280, 1282, 1287, 0, + 1283, 1285, 1295, 1287, 1298, 1289, 1293, 1289, 1294, 1292, + + 1296, 1290, 1292, 1294, 1297, 1296, 1295, 1299, 1300, 0, + 1301, 1293, 1297, 1303, 1308, 1306, 1298, 1302, 1305, 1309, + 1304, 1298, 1303, 1311, 0, 1312, 1310, 1315, 0, 1306, + 1300, 1299, 0, 1323, 1299, 1300, 1301, 1301, 1305, 1302, + 1303, 1304, 1306, 1312, 1302, 1305, 1308, 1304, 1310, 1313, + 1314, 1309, 1312, 1310, 1315, 1311, 1316, 1313, 1318, 1320, + 1322, 1319, 1321, 1316, 1322, 1323, 1314, 1318, 1324, 1321, + 1325, 1320, 1327, 0, 1329, 1330, 1313, 1314, 1319, 1331, + 1332, 1329, 1330, 1316, 1334, 1318, 1320, 1322, 1319, 1321, + 1328, 1325, 1339, 1332, 1331, 0, 1328, 1325, 1335, 1333, + + 1324, 1329, 1330, 1328, 1327, 1335, 1331, 1332, 1333, 1337, + 1334, 1334, 1336, 1338, 1336, 1341, 1340, 1328, 1337, 1339, + 1340, 1343, 1344, 1328, 1345, 1335, 1333, 1344, 1346, 1343, + 1347, 1348, 1356, 1345, 1352, 1338, 1337, 1341, 1349, 1336, + 1338, 0, 1341, 1340, 1348, 1353, 1346, 0, 1343, 1347, + 1349, 1345, 1352, 1354, 1344, 1346, 1350, 1347, 1348, 1350, + 1351, 1352, 1357, 1351, 1356, 1349, 1354, 0, 1350, 1359, + 1353, 1360, 1353, 1363, 1359, 1358, 1361, 1361, 0, 1360, + 1354, 0, 1351, 1350, 1362, 1357, 1350, 1351, 1364, 1357, + 1351, 1358, 1366, 1362, 1367, 1363, 1365, 1368, 1360, 1366, + + 1363, 1359, 1358, 1361, 1368, 1365, 1373, 1370, 1371, 1372, + 1364, 1362, 1377, 1375, 1374, 1364, 1367, 1371, 1372, 1366, + 1370, 1367, 1375, 1365, 1368, 0, 0, 1378, 1384, 0, + 1376, 1379, 1373, 1373, 1370, 1371, 1372, 1374, 1376, 1379, + 1375, 1374, 1378, 1380, 1377, 1383, 1385, 1381, 1382, 1386, + 1384, 1388, 1387, 1383, 1378, 1384, 1380, 1376, 1379, 1381, + 1382, 1387, 1389, 1391, 1394, 1390, 1385, 1393, 1395, 1388, + 1380, 1386, 1383, 1385, 1381, 1382, 1386, 1390, 1388, 1387, + 1392, 1391, 1396, 1397, 1398, 1400, 1399, 1392, 1389, 1389, + 1391, 1400, 1390, 1393, 1393, 1396, 1394, 1399, 1401, 1402, + + 1395, 1403, 1404, 1405, 0, 1398, 0, 1392, 1408, 1396, + 1397, 1398, 1400, 1399, 1406, 1409, 1414, 1411, 1410, 1413, + 1401, 0, 1412, 0, 1416, 1401, 1411, 1415, 1414, 1405, + 1405, 1402, 1413, 1403, 1404, 1408, 1410, 1412, 1409, 1418, + 1406, 1406, 1409, 1414, 1411, 1410, 1413, 1415, 1417, 1412, + 1416, 1416, 1419, 1421, 1415, 1417, 1420, 1422, 1418, 1423, + 1424, 1421, 1422, 1426, 1423, 1427, 1418, 1424, 1425, 1420, + 1428, 1426, 1432, 1427, 1419, 1417, 1429, 1430, 1433, 1419, + 1421, 1432, 1437, 1420, 1434, 1430, 1431, 1424, 1428, 1422, + 1426, 1423, 1427, 1431, 1425, 1425, 1439, 1428, 1429, 1432, + + 1435, 1436, 1436, 1429, 1430, 1440, 1434, 1435, 1438, 1446, + 1433, 1434, 1441, 1431, 1437, 1446, 1438, 1439, 1442, 1445, + 1441, 1443, 1444, 1439, 1448, 0, 1442, 1435, 1436, 1443, + 1444, 1447, 1445, 1449, 1450, 1438, 1446, 1440, 1452, 1441, + 1453, 1454, 1450, 1447, 1451, 1442, 1445, 1455, 1443, 1444, + 1448, 1448, 1451, 1452, 1456, 1458, 1457, 1449, 1447, 0, + 1449, 1450, 1459, 1462, 1463, 1452, 1464, 1453, 1454, 1455, + 1457, 1451, 1462, 1458, 1455, 1460, 1459, 1456, 1464, 1460, + 1465, 1456, 1458, 1457, 1466, 1467, 1463, 1465, 1468, 1459, + 1462, 1463, 1460, 1464, 1469, 1466, 1470, 0, 1472, 0, + + 1460, 1473, 1460, 1471, 1474, 1476, 1460, 1465, 1470, 1475, + 1468, 1466, 1467, 1479, 1476, 1468, 1475, 1471, 1487, 1460, + 1472, 1477, 1478, 1470, 1473, 1472, 1469, 1474, 1473, 1478, + 1471, 1474, 1476, 1480, 1482, 1484, 1475, 1485, 1490, 1477, + 1486, 1484, 1493, 1482, 1488, 1479, 1492, 1494, 1477, 1478, + 1487, 1488, 1495, 1497, 0, 0, 1502, 0, 1494, 1485, + 1480, 1482, 1484, 1495, 1485, 1490, 1486, 1486, 1499, 1493, + 1492, 1488, 1498, 1492, 1494, 1499, 1500, 1497, 1498, 1495, + 1497, 1501, 1502, 1502, 1503, 1504, 1509, 1506, 1501, 1505, + 0, 1504, 1507, 1510, 1500, 1499, 1503, 1505, 1508, 1498, + + 1513, 1517, 1510, 1500, 1509, 1507, 1511, 1513, 1501, 1506, + 1514, 1503, 1504, 1509, 1506, 1512, 1505, 1512, 1511, 1507, + 1510, 1515, 1516, 1517, 1508, 1508, 1518, 1513, 1517, 1519, + 0, 1516, 1520, 1511, 1515, 1522, 1514, 1514, 1518, 1521, + 1523, 1524, 1512, 0, 1526, 1523, 1521, 1525, 1515, 1516, + 1527, 1529, 1526, 1518, 1531, 1520, 1519, 1524, 1532, 1520, + 0, 1522, 1522, 0, 1533, 1530, 1521, 1523, 1524, 1532, + 1525, 1526, 1527, 1533, 1525, 1534, 1531, 1527, 1529, 1530, + 1536, 1531, 1535, 1535, 1537, 1532, 1537, 1538, 1534, 0, + 1535, 1533, 1530, 1536, 1539, 1542, 1540, 1541, 1544, 1543, + + 1553, 1545, 1534, 1540, 1541, 1546, 1548, 1536, 1545, 1535, + 1535, 1537, 1547, 1538, 1538, 1550, 1539, 1543, 1552, 1555, + 1544, 1539, 1542, 1540, 1541, 1544, 1543, 1553, 1545, 1549, + 1546, 1552, 1546, 1554, 1547, 1557, 1549, 1559, 1548, 1547, + 1555, 1554, 1560, 1563, 1562, 1552, 1555, 1550, 1558, 1564, + 1566, 1558, 1561, 1562, 1565, 1563, 1549, 1557, 1570, 1566, + 1554, 0, 1557, 1559, 1559, 1561, 1571, 1567, 1560, 1560, + 1563, 1562, 1577, 1564, 1574, 1558, 1564, 1566, 1568, 1561, + 1565, 1565, 1567, 1569, 1572, 1568, 1569, 1575, 1571, 1576, + 1570, 1576, 1574, 1571, 1567, 1578, 1577, 1579, 1569, 1577, + + 1572, 1574, 1580, 1584, 1581, 1568, 1582, 1569, 1572, 1575, + 1569, 1572, 1583, 1569, 1575, 1585, 1576, 1591, 0, 1587, + 1592, 1594, 1578, 1590, 0, 1569, 1581, 1572, 1587, 1579, + 1586, 1581, 1582, 1582, 1580, 1584, 1589, 1585, 1583, 1583, + 1588, 1595, 1585, 1589, 1586, 1595, 1587, 1590, 1588, 1591, + 1590, 1593, 1592, 1594, 1596, 1597, 1599, 1586, 1598, 1600, + 0, 1602, 1601, 1589, 1603, 1599, 1600, 1588, 1595, 1601, + 1605, 1604, 1607, 1593, 1602, 1608, 1596, 1603, 1593, 1605, + 1598, 1596, 1597, 1599, 1604, 1598, 1600, 1614, 1602, 1601, + 1606, 1603, 1606, 1609, 1611, 1607, 1612, 1605, 1604, 1607, + + 1608, 1609, 1608, 1615, 1613, 1616, 1617, 1621, 1619, 1611, + 1615, 1612, 1618, 1617, 1619, 1622, 1616, 1606, 1613, 1614, + 1609, 1611, 1622, 1612, 1623, 1618, 1624, 0, 1625, 1629, + 1615, 1613, 1616, 1617, 1621, 1619, 1626, 1627, 1629, 1618, + 1628, 1624, 1622, 1628, 1630, 1631, 1623, 1634, 1626, 1632, + 1627, 1623, 1640, 1624, 1625, 1625, 1629, 1631, 1634, 1641, + 1639, 1636, 1630, 1626, 1627, 1633, 1636, 1628, 1633, 1632, + 1642, 1630, 1631, 1636, 1634, 1638, 1632, 1638, 1657, 1640, + 1643, 1644, 1645, 1633, 1639, 1642, 1641, 1639, 1636, 1643, + 1646, 1647, 1633, 1636, 1648, 1633, 1649, 1642, 1651, 1647, + + 1650, 1652, 1638, 0, 1646, 1644, 1651, 1643, 1644, 1645, + 1657, 1653, 1652, 1656, 1658, 0, 1648, 1646, 1647, 1659, + 1649, 1648, 1650, 1649, 1654, 1651, 1659, 1650, 1652, 1653, + 1655, 1656, 1654, 1655, 1661, 1660, 1663, 1662, 1653, 1664, + 1656, 1658, 1687, 1661, 1664, 1665, 1659, 1663, 1655, 1660, + 1662, 1654, 1669, 1666, 1669, 1671, 1670, 1655, 1672, 1673, + 1655, 1661, 1660, 1663, 1662, 1670, 1674, 1665, 1666, 1672, + 1675, 1664, 1665, 1676, 1687, 0, 1676, 1673, 0, 1669, + 1666, 1671, 1671, 1670, 1675, 1672, 1673, 1677, 1674, 1678, + 1680, 1676, 1683, 1674, 1684, 1679, 1675, 1675, 1678, 1680, + + 1676, 1679, 1681, 1676, 1686, 1683, 1684, 1681, 1685, 1677, + 1689, 1675, 1690, 1685, 1677, 1688, 1678, 1680, 1691, 1683, + 1692, 1684, 1679, 1693, 1688, 1694, 1686, 1698, 1701, 1696, + 1697, 1686, 0, 1692, 1681, 1685, 1696, 1689, 0, 1699, + 1691, 0, 1688, 1697, 1690, 1691, 1694, 1692, 1700, 1703, + 1705, 1707, 1694, 1699, 1700, 1693, 1696, 1697, 1705, 1698, + 1701, 1706, 1708, 0, 1709, 1710, 1699, 1711, 1703, 1706, + 1707, 1716, 1700, 1712, 1715, 1700, 1703, 1705, 1707, 1710, + 1713, 1700, 1709, 1714, 1708, 1711, 1717, 1712, 1706, 1708, + 1718, 1709, 1710, 1713, 1711, 1715, 1714, 1719, 1720, 1721, + + 1712, 1715, 1723, 1716, 1718, 1720, 1722, 1713, 1721, 1724, + 1714, 1725, 1728, 1730, 1722, 1726, 0, 1718, 1717, 1727, + 1726, 1728, 1715, 1724, 1719, 1720, 1721, 1731, 1732, 1723, + 1727, 1733, 0, 1722, 1731, 1734, 1724, 1735, 1736, 1728, + 1730, 1737, 1726, 1725, 0, 1737, 1727, 1740, 1739, 1742, + 1743, 1732, 1741, 1733, 1731, 1732, 1736, 1734, 1733, 1735, + 1747, 1742, 1734, 1749, 1735, 1736, 1739, 1741, 1737, 1745, + 1744, 1740, 1746, 1748, 1740, 1739, 1742, 1743, 1744, 1741, + 1746, 1755, 1759, 1749, 1745, 1753, 1748, 1747, 1750, 1751, + 1749, 1754, 1756, 1753, 1761, 1763, 1745, 1744, 1754, 1746, + + 1748, 1757, 1758, 1750, 1751, 1765, 1760, 1756, 1764, 1759, + 1757, 1766, 1753, 1755, 1786, 1750, 1751, 1763, 1754, 1756, + 1768, 1761, 1763, 1758, 1767, 1769, 1764, 1770, 1757, 1758, + 1760, 1771, 1772, 1760, 1770, 1764, 1771, 1765, 1766, 1767, + 1774, 1772, 1775, 1776, 1773, 1768, 1786, 1768, 1777, 1769, + 1779, 1767, 1769, 1773, 1770, 0, 1778, 1783, 1771, 1772, + 1780, 1776, 1774, 1777, 1775, 1785, 0, 1774, 1778, 1775, + 1776, 1773, 1779, 1780, 1781, 1777, 1784, 1779, 1780, 1783, + 1787, 1781, 1782, 1778, 1783, 1789, 1787, 1780, 1784, 1782, + 1790, 1791, 1785, 1789, 1793, 1794, 1796, 1794, 1790, 1792, + + 1780, 1781, 1791, 1784, 1782, 1795, 1792, 1787, 1794, 1782, + 1797, 1799, 1789, 1798, 1805, 1800, 1782, 1790, 1791, 1793, + 1798, 1793, 1794, 1796, 1794, 1803, 1792, 1801, 1802, 1808, + 1804, 1795, 1795, 1801, 1802, 1806, 1809, 1797, 1799, 1810, + 1798, 1800, 1800, 1812, 0, 1809, 1805, 1811, 1813, 1811, + 1815, 1814, 1803, 1804, 1801, 1802, 1816, 1804, 1814, 1806, + 1818, 1808, 1806, 1809, 1817, 1822, 1818, 1812, 1819, 1833, + 1812, 1810, 1815, 1820, 1811, 1813, 1817, 1815, 1814, 1821, + 1825, 1824, 1827, 1816, 0, 1826, 1828, 1818, 1824, 1825, + 1819, 1817, 1826, 1828, 1833, 1819, 1833, 1822, 1831, 1820, + + 1820, 1821, 1823, 1823, 1823, 1830, 1821, 1825, 1824, 1823, + 1830, 1831, 1826, 1828, 1827, 1832, 1834, 1823, 1836, 1838, + 1837, 1835, 1839, 0, 1840, 1831, 1838, 1832, 1839, 1823, + 1823, 1823, 1834, 1835, 1841, 1841, 1823, 1830, 1837, 1842, + 0, 1845, 1832, 1834, 1846, 1843, 1838, 1837, 1835, 1839, + 1836, 1840, 1843, 1844, 1850, 1847, 1852, 1851, 1844, 1851, + 1854, 1841, 1847, 1855, 1856, 1842, 1842, 1845, 1845, 1855, + 1858, 1846, 1843, 1859, 1852, 1857, 1860, 1862, 1854, 1859, + 1844, 1850, 1847, 1852, 1851, 1861, 1857, 1854, 1860, 1864, + 1855, 1863, 1863, 1865, 1865, 1862, 1856, 1858, 1866, 1868, + + 1859, 1869, 1857, 1860, 1862, 1861, 1872, 1870, 1871, 1866, + 1877, 1876, 1861, 1879, 1870, 1864, 1864, 1873, 1863, 1875, + 1865, 1868, 1880, 1878, 1881, 1866, 1868, 1875, 1871, 1880, + 1887, 1879, 1881, 1869, 1870, 1871, 1883, 1877, 1872, 1882, + 1879, 1886, 1873, 1876, 1873, 1878, 1875, 1884, 1888, 1880, + 1878, 1881, 1885, 1885, 1882, 1891, 1884, 1889, 1890, 1896, + 1883, 1895, 1887, 1883, 1889, 1893, 1882, 1886, 1886, 1897, + 1890, 1891, 1893, 1902, 1884, 1898, 1894, 1897, 1891, 1885, + 1888, 1894, 1891, 1895, 1889, 1890, 1896, 1898, 1895, 1900, + 1901, 1903, 1893, 1904, 1905, 1908, 1897, 1900, 1891, 1902, + + 1902, 1906, 1898, 1894, 1909, 1912, 1910, 1911, 1915, 1907, + 1909, 1904, 1903, 1901, 1907, 1911, 1900, 1901, 1903, 1910, + 1904, 1905, 1908, 1913, 1906, 1907, 1918, 1912, 1906, 1916, + 1913, 1909, 1912, 1910, 1911, 1914, 1907, 1917, 1916, 1920, + 1915, 1907, 1914, 1919, 1931, 1921, 1922, 1924, 1918, 1917, + 1913, 1926, 1933, 1918, 1927, 1929, 1916, 1919, 1926, 1934, + 1934, 1935, 1914, 1925, 1917, 1924, 1920, 1937, 1925, 1922, + 1919, 1921, 1921, 1922, 1924, 1930, 1931, 1936, 1926, 1925, + 1930, 1927, 1929, 1935, 1933, 1939, 1934, 1940, 1935, 1948, + 1925, 1941, 1936, 1943, 1942, 1925, 1942, 1944, 1945, 1937, + + 1939, 1946, 1944, 0, 1936, 1949, 1941, 1930, 1947, 1946, + 1940, 1948, 1939, 1955, 1940, 1947, 1948, 1953, 1941, 1951, + 1949, 1942, 1956, 1952, 1944, 1943, 1957, 1958, 1946, 1959, + 1945, 1952, 1949, 1960, 1951, 1947, 1959, 1955, 0, 1953, + 1955, 1961, 1962, 1964, 1953, 1963, 1951, 1968, 1956, 1956, + 1952, 1966, 1969, 1957, 1958, 1970, 1959, 1975, 1974, 1976, + 1972, 1964, 1961, 1980, 1962, 1960, 1963, 1969, 1961, 1962, + 1964, 1968, 1963, 1966, 1968, 1972, 1973, 1976, 1966, 1969, + 1974, 1970, 1970, 1977, 1975, 1974, 1976, 1972, 1979, 1978, + 1980, 1973, 1981, 1983, 1985, 1982, 1984, 1987, 1988, 1981, + + 1989, 0, 1983, 1973, 1984, 1977, 1986, 1988, 0, 0, + 1977, 1978, 1979, 1982, 0, 1979, 1978, 1985, 1989, 1981, + 1983, 1985, 1982, 1984, 1991, 1988, 1990, 1989, 1986, 1987, + 1993, 1994, 1995, 1986, 1997, 1990, 1996, 1991, 2002, 1999, + 1994, 1993, 2000, 1996, 1998, 2001, 2005, 0, 2000, 0, + 1995, 1991, 2002, 1990, 1999, 2007, 1993, 1993, 1994, 1995, + 1997, 1997, 1998, 1996, 2008, 2002, 1999, 2001, 1993, 2000, + 2009, 1998, 2001, 2005, 2011, 2008, 2012, 2013, 2014, 2007, + 2015, 2009, 2007, 2016, 2017, 2018, 2011, 2020, 2014, 2012, + 2021, 2008, 2023, 2025, 2024, 2028, 2023, 2009, 0, 0, + + 2026, 2011, 2028, 2012, 2018, 2014, 2015, 2015, 2016, 2013, + 2016, 2017, 2018, 2027, 2020, 2024, 2021, 2021, 2027, 2023, + 2026, 2024, 2028, 2029, 2030, 2025, 2031, 2026, 2032, 2033, + 2040, 2035, 2031, 2034, 2036, 2036, 2037, 2040, 0, 2043, + 2027, 2038, 2030, 2032, 2033, 2034, 2035, 2046, 2037, 2029, + 2029, 2030, 2042, 2031, 2038, 2032, 2033, 2040, 2035, 2051, + 2034, 2036, 2038, 2037, 2044, 2041, 2043, 2042, 2038, 2041, + 2045, 2046, 2047, 2044, 2046, 2048, 2050, 2045, 2052, 2042, + 0, 2038, 2048, 2056, 2051, 2053, 2051, 2052, 2054, 2061, + 0, 2044, 2041, 2059, 2047, 2058, 2063, 2045, 2050, 2047, + + 2065, 2056, 2048, 2050, 2058, 2052, 2060, 2053, 2054, 2062, + 2056, 2059, 2053, 2066, 2061, 2054, 2061, 2062, 2067, 2069, + 2059, 2060, 2058, 2068, 2068, 2065, 2066, 2065, 2063, 2070, + 2071, 2072, 2074, 2060, 2073, 2075, 2062, 2077, 2076, 2074, + 2066, 2069, 0, 2073, 2079, 2067, 2069, 2078, 2084, 2079, + 2068, 2077, 2071, 2072, 2070, 2088, 2070, 2071, 2072, 2074, + 2076, 2073, 2078, 2080, 2077, 2076, 2083, 2075, 2085, 2082, + 2089, 2086, 2091, 2087, 2078, 2084, 2079, 2082, 2090, 2083, + 2087, 2091, 2080, 2086, 2093, 0, 2095, 2088, 2096, 2094, + 2080, 0, 2089, 2083, 2085, 2085, 2082, 2089, 2086, 2091, + + 2087, 2092, 0, 2090, 2094, 2090, 2097, 2098, 2099, 2092, + 0, 2093, 2095, 2095, 2096, 2096, 2094, 2099, 2102, 2101, + 2092, 2103, 2101, 2105, 2097, 2104, 2106, 2103, 2092, 2098, + 2104, 0, 2107, 2097, 2098, 2099, 2092, 2101, 2105, 2109, + 2110, 2111, 2113, 2102, 2106, 2102, 2101, 2107, 2103, 2101, + 2105, 2114, 2115, 2106, 2109, 2116, 2113, 2104, 2114, 2107, + 2119, 0, 2110, 2111, 2117, 2118, 2109, 2110, 2111, 2113, + 2115, 2119, 2121, 2117, 2118, 2120, 2122, 2120, 2114, 2115, + 2125, 2126, 2116, 2123, 2128, 2121, 2127, 2119, 2122, 0, + 2129, 2117, 2118, 2127, 0, 2125, 2126, 2130, 2135, 2121, + + 2136, 2133, 2120, 2122, 2136, 2123, 2128, 2125, 2126, 2137, + 2123, 2128, 2129, 2127, 2133, 2130, 2139, 2129, 2139, 2135, + 2138, 2137, 2133, 2141, 2130, 2135, 2140, 2136, 2133, 2138, + 2142, 2143, 2144, 2145, 0, 2147, 2137, 2148, 2149, 2146, + 2144, 2133, 2152, 2139, 2140, 2148, 2150, 2138, 2142, 2147, + 2141, 2150, 2153, 2140, 2154, 2159, 2145, 2142, 2143, 2144, + 2145, 2146, 2147, 2151, 2148, 2156, 2146, 2155, 2151, 2166, + 2149, 2160, 2156, 2150, 2152, 2161, 2162, 0, 2154, 2163, + 2169, 2154, 2159, 0, 2153, 2160, 2155, 2167, 2170, 2164, + 2165, 0, 2156, 2161, 2155, 2151, 2160, 2160, 2160, 2165, + + 2168, 2166, 2161, 2162, 2164, 2163, 2163, 2169, 2171, 2167, + 2170, 2173, 2160, 0, 2167, 2170, 2164, 2165, 2174, 2175, + 2178, 2176, 2178, 2160, 0, 2174, 2168, 2168, 2176, 2179, + 2182, 2180, 2181, 0, 2173, 2180, 2188, 0, 2173, 2186, + 2171, 2183, 2175, 2184, 2181, 2174, 2175, 2178, 2176, 2189, + 2183, 2179, 2182, 2185, 2184, 2199, 2179, 2182, 2180, 2181, + 2185, 2186, 2187, 2188, 2191, 2190, 2186, 2187, 2183, 2193, + 2184, 2195, 2189, 2192, 2192, 2194, 2189, 2190, 2193, 2195, + 2185, 2196, 2199, 2197, 2198, 2201, 2191, 2202, 2207, 2187, + 2194, 2191, 2190, 2198, 2207, 2202, 2193, 2197, 2195, 2203, + + 2192, 2204, 2194, 2196, 2201, 2204, 2205, 2203, 2196, 2205, + 2197, 2198, 2201, 2206, 2202, 2207, 2208, 2209, 2211, 2214, + 2213, 2206, 0, 2209, 2216, 2217, 2203, 2215, 2204, 2219, + 2211, 2208, 2214, 2205, 2213, 2218, 2220, 0, 2223, 2224, + 2206, 2226, 2221, 2208, 2209, 2211, 2214, 2213, 2215, 2216, + 2220, 2216, 2217, 2219, 2215, 2221, 2219, 2218, 2222, 2225, + 2228, 2227, 2218, 2220, 2223, 2223, 2224, 2229, 2226, 2221, + 2231, 2232, 2222, 2227, 2228, 2236, 2237, 2230, 2233, 2235, + 2230, 2238, 2236, 2237, 2225, 2222, 2225, 2228, 2227, 2239, + 2240, 2241, 2242, 2229, 2229, 2230, 2238, 2231, 2232, 2241, + + 2233, 2235, 2236, 2237, 2230, 2233, 2235, 2230, 2238, 2244, + 2245, 2243, 2246, 2247, 2248, 2249, 2239, 2240, 2241, 2242, + 2243, 2251, 2245, 2256, 2255, 2250, 2258, 2253, 2249, 2263, + 0, 2251, 2252, 2261, 2246, 2253, 2244, 2245, 2243, 2246, + 2247, 2248, 2249, 2250, 2260, 2252, 2255, 2257, 2251, 2259, + 2256, 2255, 2250, 2258, 2253, 2257, 2263, 2261, 2259, 2252, + 2261, 0, 2262, 2265, 2264, 2260, 2268, 2266, 2270, 2276, + 2274, 2260, 2264, 2269, 2257, 2265, 2259, 2262, 2268, 2272, + 2273, 2269, 2274, 2278, 2273, 2275, 2272, 2279, 2262, 2262, + 2265, 2264, 2266, 2268, 2266, 2270, 2276, 2274, 2282, 2279, + + 2269, 2277, 2284, 2280, 2262, 2278, 2272, 2273, 2275, 2277, + 2278, 2283, 2275, 2285, 2279, 2280, 2288, 2288, 2283, 2289, + 2292, 2290, 2284, 2286, 2287, 2282, 2285, 2291, 2277, 2284, + 2280, 2294, 2286, 2287, 2295, 2292, 0, 2292, 2283, 2290, + 2285, 2302, 2302, 2288, 2292, 2289, 2289, 2292, 2290, 2295, + 2286, 2287, 2291, 2296, 2291, 2297, 2298, 2299, 2298, 2300, + 2306, 2295, 2292, 2294, 2292, 2300, 2301, 2304, 2302, 2305, + 2307, 2299, 2306, 2308, 0, 2296, 2311, 2297, 0, 2309, + 2296, 0, 2297, 2298, 2299, 2309, 2300, 2306, 2301, 2304, + 2312, 2305, 2310, 2301, 2304, 2314, 2305, 2314, 2313, 2315, + + 2316, 2322, 2307, 2317, 2310, 2308, 2309, 2323, 2311, 2326, + 2318, 2319, 2312, 2315, 2320, 2330, 2326, 2312, 2321, 2310, + 2313, 2317, 2314, 2324, 2316, 2313, 2315, 2316, 2318, 2319, + 2317, 2321, 2320, 2322, 2328, 2332, 2326, 2318, 2319, 2323, + 2329, 2320, 0, 2331, 0, 2321, 2324, 2330, 2333, 2334, + 2324, 2331, 2328, 2332, 2337, 2339, 2335, 2338, 2335, 2341, + 2340, 2328, 2332, 2335, 2343, 2337, 2329, 2329, 2338, 2331, + 2331, 2334, 2340, 2348, 2333, 2333, 2334, 2341, 2331, 2343, + 2345, 2337, 2339, 2335, 2338, 2335, 2341, 2340, 2344, 2346, + 2349, 2343, 2345, 2351, 2350, 2352, 2355, 2348, 2353, 2344, + + 2348, 2350, 2356, 2358, 2346, 2357, 2359, 2345, 2351, 2361, + 2360, 0, 2349, 2363, 0, 2344, 2346, 2349, 2362, 2364, + 2351, 2350, 2352, 2355, 2353, 2353, 2356, 2357, 2360, 2356, + 2365, 2362, 2357, 2366, 2364, 2358, 2361, 2360, 2359, 2363, + 2363, 2366, 2367, 2365, 2368, 2362, 2364, 2372, 2369, 0, + 2370, 0, 2374, 0, 2373, 2376, 0, 2365, 2375, 2378, + 2366, 2369, 2380, 0, 2379, 2377, 2378, 2390, 2367, 2367, + 2372, 0, 2370, 2376, 2372, 2369, 2368, 2370, 2373, 2374, + 2375, 2373, 2376, 2377, 2381, 2375, 2378, 2379, 2383, 2380, + 2384, 2379, 2377, 2385, 2386, 2387, 2388, 2384, 2381, 2390, + + 2385, 2393, 2389, 2388, 2391, 2392, 0, 2386, 2394, 2393, + 2383, 2381, 2395, 2396, 2392, 2383, 2394, 2384, 2387, 2396, + 2385, 2386, 2387, 2388, 2389, 2391, 2398, 2399, 2393, 2389, + 2400, 2391, 2392, 2401, 2395, 2394, 2402, 2403, 2399, 2395, + 2396, 2398, 2405, 2407, 0, 2408, 0, 2410, 2410, 2409, + 2415, 2411, 2400, 2398, 2399, 2402, 2407, 2400, 2414, 2417, + 2405, 2418, 2403, 2402, 2403, 2401, 2421, 2425, 2416, 2405, + 2407, 2408, 2408, 2409, 2410, 2423, 2409, 2411, 2411, 2418, + 2425, 2414, 2415, 2416, 2423, 2414, 2417, 2426, 2418, 2429, + 2430, 2430, 2434, 2421, 2425, 2416, 2432, 2431, 2426, 2433, + + 2436, 2438, 2423, 2431, 2439, 2441, 0, 2442, 0, 2440, + 2441, 2429, 2451, 2445, 2426, 2448, 2429, 2430, 2432, 2434, + 2440, 2433, 2455, 2432, 2431, 2461, 2433, 2436, 2450, 2442, + 2439, 2439, 2441, 2438, 2442, 2444, 2440, 2445, 2446, 2447, + 2445, 2452, 2448, 2444, 2451, 2453, 2450, 2456, 2457, 2455, + 2452, 2458, 2461, 2446, 2447, 2450, 2457, 2453, 2460, 2462, + 2458, 2463, 2444, 2467, 2464, 2446, 2447, 2465, 2452, 0, + 2463, 2456, 2453, 2466, 2456, 2457, 2467, 2470, 2458, 2468, + 2469, 2462, 2464, 2473, 2460, 2460, 2462, 2474, 2463, 2465, + 2467, 2464, 2468, 2475, 2465, 2469, 2471, 2476, 2466, 2470, + + 2466, 2472, 2477, 2471, 2470, 2473, 2468, 2469, 2472, 2479, + 2473, 2478, 2480, 0, 2474, 2481, 0, 2482, 2479, 0, + 2475, 2487, 2483, 2471, 2476, 2484, 2478, 2487, 2472, 2477, + 2485, 2489, 2484, 2486, 2480, 2488, 2479, 2483, 2478, 2480, + 2486, 2481, 2481, 2482, 2482, 2485, 2488, 2490, 2487, 2483, + 2491, 2492, 2484, 2493, 2501, 2490, 2494, 2485, 2489, 2495, + 2486, 2496, 2488, 2497, 2502, 2498, 2499, 0, 2500, 2493, + 2497, 2494, 0, 2499, 2490, 2500, 2496, 2491, 2492, 2495, + 2493, 2501, 2502, 2494, 2503, 2503, 2495, 2498, 2496, 2504, + 2497, 2502, 2498, 2499, 2505, 2500, 2504, 2506, 2508, 2507, + + 2506, 0, 2509, 2508, 2510, 0, 2511, 0, 2505, 2518, + 2512, 2503, 2507, 2518, 2516, 2517, 2504, 2521, 2513, 2510, + 2517, 2505, 2514, 2516, 2506, 2508, 2507, 2509, 2512, 2509, + 2513, 2510, 2511, 2511, 2514, 2519, 2518, 2512, 2520, 2521, + 2523, 2516, 2517, 2524, 2521, 2513, 2522, 0, 2525, 2514, + 2527, 2520, 2529, 2531, 2530, 0, 2532, 2536, 0, 2519, + 2533, 0, 2519, 2530, 2532, 2520, 2536, 2523, 2522, 2531, + 2524, 0, 2533, 2522, 2525, 2525, 2527, 2527, 2529, 2529, + 2531, 2530, 2535, 2532, 2536, 2537, 2538, 2533, 2539, 2535, + 2537, 2540, 2541, 2538, 2542, 2543, 2544, 2547, 2540, 2545, + + 2551, 2542, 2549, 2548, 2543, 2544, 2539, 2549, 2554, 2535, + 2550, 2555, 2537, 2538, 2553, 2539, 2548, 2541, 2540, 2541, + 2555, 2542, 2543, 2544, 2547, 2545, 2545, 2551, 2550, 2549, + 2548, 2556, 2553, 2557, 2558, 2554, 2559, 2550, 2555, 2560, + 2556, 2553, 2562, 2561, 2563, 2559, 2558, 2564, 2560, 2565, + 2562, 2567, 2568, 2557, 2561, 2566, 2565, 2569, 2556, 2570, + 2557, 2558, 0, 2559, 2566, 2575, 2560, 2573, 2571, 2562, + 2561, 2563, 2567, 2572, 2564, 2573, 2565, 2571, 2567, 2568, + 2574, 2576, 2566, 2577, 2569, 2572, 2580, 2575, 2576, 2578, + 2577, 2570, 2575, 2574, 2573, 2571, 2579, 2581, 2582, 2586, + + 2572, 2584, 0, 2588, 2587, 0, 0, 2574, 2576, 2584, + 2577, 2578, 2587, 2580, 2590, 2591, 2578, 2586, 2588, 2598, + 2589, 2579, 2581, 2579, 2581, 2582, 2586, 2589, 2584, 2597, + 2588, 2587, 2592, 2596, 2601, 2593, 2590, 2591, 2599, 2592, + 2596, 2590, 2591, 2593, 2604, 2600, 2598, 2589, 2602, 2608, + 2599, 2603, 2609, 2597, 2600, 0, 2597, 2606, 2607, 2592, + 2596, 2601, 2593, 2603, 2602, 2599, 2609, 2604, 2611, 2606, + 2612, 2604, 2600, 2614, 2617, 2602, 2608, 2612, 2603, 2609, + 2611, 2607, 2613, 2616, 2606, 2607, 2619, 2621, 2618, 2613, + 2622, 2620, 2617, 0, 2624, 2611, 2626, 2612, 2616, 2620, + + 2614, 2617, 2623, 2626, 2625, 2624, 2627, 0, 2632, 2613, + 2616, 2618, 2622, 2619, 2621, 2618, 2634, 2622, 2620, 2625, + 2623, 2624, 2633, 2626, 2635, 2636, 2637, 2633, 2638, 2623, + 2639, 2625, 2640, 2627, 2632, 2632, 2644, 2652, 2635, 2636, + 2641, 0, 2642, 2634, 2637, 2652, 2638, 2641, 2639, 2633, + 2647, 2635, 2636, 2637, 2642, 2638, 2648, 2639, 2649, 2640, + 2650, 2651, 2654, 2644, 2652, 0, 2653, 2641, 2657, 2642, + 2658, 2649, 2647, 2660, 2656, 2661, 2662, 2647, 2648, 2659, + 2651, 2654, 2650, 2648, 2653, 2649, 2656, 2650, 2651, 2654, + 2657, 2659, 2658, 2653, 2664, 2657, 2663, 2658, 2662, 2665, + + 2660, 2656, 2661, 2662, 2663, 2666, 2659, 2667, 2668, 2669, + 2671, 2670, 2672, 0, 0, 2674, 2667, 2668, 2673, 2665, + 2675, 2664, 2679, 2663, 2672, 2681, 2665, 2666, 2680, 2678, + 2681, 2682, 2666, 2670, 2667, 2668, 2671, 2671, 2670, 2672, + 2673, 2669, 2674, 2678, 2683, 2673, 2684, 2675, 2685, 2679, + 2687, 2686, 2680, 2682, 2692, 2680, 2678, 2681, 2682, 2684, + 2693, 2688, 2690, 2689, 2691, 0, 2683, 2695, 0, 2699, + 2691, 2683, 2687, 2684, 2686, 2689, 2694, 2687, 2686, 2688, + 2685, 2690, 2695, 2698, 2697, 2701, 2692, 2703, 2688, 2690, + 2689, 2691, 2693, 2699, 2695, 2704, 2699, 2705, 2694, 2706, + + 2701, 2707, 2708, 2694, 2697, 2698, 2705, 2709, 2714, 2703, + 2698, 2697, 2701, 2706, 2703, 0, 2713, 2704, 2710, 2707, + 2708, 2715, 2704, 2718, 2705, 2713, 2706, 2720, 2707, 2708, + 2719, 2718, 2721, 2709, 2709, 2720, 2710, 2719, 2722, 2723, + 2714, 2725, 2715, 2713, 2724, 2710, 2726, 2723, 2715, 2729, + 2718, 2732, 2727, 2725, 2720, 2733, 2731, 2719, 2722, 2721, + 2727, 2729, 2724, 2731, 2735, 2722, 2723, 2734, 2725, 2734, + 2736, 2724, 2737, 2726, 2732, 2738, 2729, 2739, 2732, 2727, + 2746, 2737, 2733, 2731, 2740, 0, 2741, 2743, 0, 0, + 2754, 2747, 2744, 2748, 2734, 0, 2735, 2749, 2755, 2737, + + 2752, 2757, 2736, 2740, 2739, 2743, 2744, 2738, 2741, 2750, + 2749, 2740, 2746, 2741, 2743, 2747, 2748, 2754, 2747, 2744, + 2748, 2750, 2753, 2758, 2749, 2755, 2752, 2752, 2757, 2759, + 2761, 2753, 2763, 2764, 2769, 2766, 2750, 2765, 2767, 2763, + 2766, 2769, 2770, 2772, 2773, 0, 2758, 2778, 2774, 2753, + 2758, 2759, 2765, 2767, 2782, 2764, 2759, 2761, 0, 2763, + 2764, 2769, 2775, 2776, 2765, 2767, 2783, 2766, 2770, 2770, + 2772, 2773, 2774, 2779, 2778, 2774, 2775, 2776, 2781, 2784, + 2786, 2782, 2779, 2785, 2787, 2781, 2789, 2788, 2790, 2775, + 2776, 2791, 2783, 2783, 2792, 2785, 2788, 2795, 2787, 2789, + + 2779, 2796, 2803, 2798, 2802, 2781, 2784, 2786, 2798, 2806, + 2785, 2787, 2799, 2789, 2788, 2800, 2799, 2792, 2791, 2801, + 2790, 2792, 2800, 2796, 2805, 2802, 2801, 2809, 2796, 2795, + 2804, 2802, 2804, 2811, 2803, 2798, 2806, 2812, 2814, 2799, + 2814, 0, 2800, 2815, 0, 2816, 2801, 2805, 0, 2809, + 2821, 2805, 2811, 2818, 2809, 2820, 2822, 2804, 2817, 2817, + 2811, 2812, 2820, 2821, 2812, 2814, 2823, 2815, 2817, 2819, + 2815, 2816, 2816, 2824, 2825, 2818, 2826, 2821, 2819, 2823, + 2818, 2824, 2820, 2822, 2826, 2817, 2817, 2825, 2827, 2828, + 2829, 2830, 2831, 2823, 2828, 2829, 2819, 2824, 2832, 2830, + + 2824, 2825, 2833, 2826, 2834, 0, 2835, 2827, 2824, 2836, + 2838, 0, 2837, 2839, 2839, 2827, 2840, 2838, 2830, 2831, + 2836, 2828, 2829, 2842, 2832, 2832, 2843, 2841, 2833, 2833, + 2834, 2834, 2835, 2835, 2837, 2841, 2836, 2838, 2840, 2837, + 2839, 2844, 2845, 2840, 2843, 2842, 2847, 2848, 2844, 2845, + 2842, 2849, 2850, 2843, 2841, 2852, 2853, 2854, 2855, 2857, + 0, 2850, 0, 2858, 2864, 0, 0, 2870, 2844, 2845, + 2859, 2860, 2870, 2847, 2848, 2849, 2853, 2861, 2849, 2850, + 2855, 2858, 2852, 2853, 2854, 2855, 2857, 2863, 2859, 2860, + 2858, 2864, 2865, 2866, 2867, 2861, 2863, 2859, 2860, 2870, + + 2868, 2869, 2867, 2871, 2861, 2872, 2873, 2878, 2880, 2877, + 2895, 2866, 2881, 2869, 2863, 2865, 2868, 2871, 2885, 2865, + 2866, 2867, 2882, 2872, 2882, 2881, 2886, 2868, 2869, 2873, + 2871, 2877, 2872, 2873, 2878, 2880, 2877, 2883, 2891, 2881, + 2887, 2890, 2895, 2890, 2886, 2885, 2883, 2894, 2892, 2882, + 2901, 2899, 2904, 2886, 2894, 2887, 2897, 2899, 2902, 2906, + 2891, 2903, 2907, 0, 2883, 2891, 2892, 2887, 2890, 2908, + 2904, 2897, 2901, 2911, 2894, 2892, 2907, 2901, 2899, 2904, + 2902, 2906, 2908, 2897, 2912, 2902, 2906, 2903, 2903, 2907, + 2909, 2913, 2914, 2909, 2915, 2916, 2908, 0, 2919, 0, + + 2911, 2915, 2917, 2916, 2920, 2921, 2922, 0, 0, 2925, + 2914, 2912, 2926, 2924, 2923, 2925, 2909, 2909, 2913, 2914, + 2909, 2915, 2916, 2923, 2917, 2928, 2920, 2921, 2924, 2917, + 2919, 2920, 2921, 2922, 2926, 2927, 2925, 2930, 2932, 2926, + 2924, 2923, 0, 2929, 2927, 2929, 2933, 2934, 0, 2935, + 2936, 2937, 2940, 2942, 2938, 0, 0, 2928, 2936, 2940, + 2946, 2932, 2927, 2937, 2930, 2932, 2938, 2952, 2933, 2934, + 2929, 2944, 2945, 2933, 2934, 2935, 2935, 2936, 2937, 2940, + 2942, 2938, 2947, 2946, 2948, 2944, 2945, 2946, 2949, 2950, + 2951, 2956, 2953, 2952, 2952, 2948, 2949, 2954, 2944, 2945, + + 2947, 2955, 2955, 2960, 2961, 2957, 2954, 2965, 2950, 2947, + 2953, 2948, 2951, 2957, 2963, 2949, 2950, 2951, 2956, 2953, + 2963, 2969, 2967, 2971, 2954, 2968, 2970, 2973, 2955, 2975, + 2960, 2961, 2957, 2967, 2965, 2974, 2968, 2970, 2976, 2980, + 2977, 2963, 2974, 2969, 2977, 2971, 2983, 2975, 2969, 2967, + 2971, 2978, 2968, 2970, 2973, 2981, 2975, 2986, 2987, 2978, + 2991, 2982, 2974, 2999, 2986, 2980, 2980, 2977, 2981, 2982, + 2976, 2988, 2990, 2983, 2992, 2995, 2994, 2990, 2978, 2993, + 2996, 3000, 2981, 2994, 2986, 2998, 2997, 2991, 2982, 3000, + 2987, 2993, 2998, 2988, 2995, 2999, 2996, 3003, 2988, 2990, + + 3001, 2992, 2995, 2994, 2997, 3004, 2993, 2996, 3000, 3002, + 3005, 3006, 2998, 2997, 3007, 3001, 3002, 3004, 3011, 3012, + 3013, 2995, 3014, 3015, 3003, 3016, 3012, 3001, 3020, 3019, + 0, 3021, 3004, 3011, 3005, 3006, 3002, 3005, 3006, 3017, + 3007, 3007, 3023, 3025, 3031, 3011, 3012, 3015, 3017, 3014, + 3015, 3019, 3013, 3021, 3022, 3020, 3019, 3016, 3021, 3024, + 3024, 3027, 3022, 3028, 3030, 3029, 3017, 3029, 3033, 3024, + 3025, 3031, 3028, 3036, 3023, 3032, 3027, 3037, 3030, 3033, + 3034, 3022, 3046, 3032, 3038, 3041, 3024, 3024, 3027, 3042, + 3028, 3030, 3029, 3040, 3043, 3033, 3039, 3047, 3034, 3044, + + 3036, 3049, 3032, 0, 3037, 3054, 3038, 3034, 3060, 3039, + 3054, 3038, 3041, 3044, 3046, 3040, 3042, 3045, 3045, 3047, + 3040, 3043, 3052, 3039, 3047, 3056, 3044, 3058, 3049, 3055, + 3052, 3057, 3054, 3056, 3055, 3060, 3057, 3061, 3061, 3062, + 3066, 3064, 3063, 3065, 3045, 3067, 3069, 3062, 3064, 3052, + 3070, 3081, 3056, 3058, 3058, 3063, 3055, 3070, 3057, 3072, + 3076, 3065, 3078, 3071, 3061, 3082, 3062, 3066, 3064, 3063, + 3065, 3071, 3067, 3075, 3079, 3080, 3083, 3070, 3069, 3075, + 3082, 3072, 3084, 3081, 3085, 3087, 3072, 3076, 3080, 3078, + 3071, 3088, 3082, 3091, 0, 3083, 3079, 3089, 3090, 3092, + + 3075, 3079, 3080, 3083, 3089, 3090, 3085, 3093, 3087, 3084, + 3095, 3085, 3087, 3088, 3092, 3091, 3097, 3104, 3088, 3096, + 3091, 3100, 3101, 3097, 3089, 3090, 3092, 3096, 3093, 3095, + 3100, 3098, 3106, 3101, 3093, 3102, 3102, 3095, 3098, 3104, + 3108, 3103, 3109, 3097, 3104, 3102, 3096, 3103, 3100, 3101, + 3107, 3112, 3113, 3111, 3106, 3116, 3117, 3107, 3098, 3106, + 3111, 3118, 3102, 3102, 3109, 3122, 3113, 3123, 3103, 3109, + 3125, 3127, 3108, 3124, 3130, 3112, 3132, 3107, 3112, 3113, + 3111, 3124, 3116, 3117, 3118, 3128, 3128, 0, 3118, 3123, + 3129, 3129, 3122, 3134, 3123, 3131, 3131, 3125, 3127, 3132, + + 3124, 3130, 3136, 3132, 3135, 3138, 3141, 3137, 3143, 3144, + 3142, 0, 0, 3141, 3128, 3134, 3137, 3142, 3138, 3129, + 3134, 3145, 3135, 3148, 3131, 3148, 3149, 3151, 3145, 3136, + 3143, 3135, 3138, 3141, 3137, 3143, 3144, 3142, 3150, 3152, + 3154, 3155, 3156, 3159, 3157, 3151, 3149, 3158, 3145, 3154, + 3148, 3152, 3160, 3149, 3151, 3162, 3165, 3173, 3172, 3164, + 3161, 3150, 3157, 3155, 3164, 3150, 3152, 3154, 3155, 3156, + 3159, 3157, 3161, 3158, 3158, 3163, 3169, 3162, 3163, 3160, + 3167, 3166, 3162, 3166, 3168, 3172, 3175, 3161, 3165, 3173, + 3168, 3164, 3167, 3163, 3170, 3176, 3171, 3174, 3169, 3181, + + 3177, 0, 3163, 3169, 3171, 3163, 3178, 3167, 3166, 3183, + 3187, 3168, 3177, 3175, 3184, 3188, 3170, 3189, 3174, 3190, + 3192, 3170, 3176, 3171, 3174, 3193, 3181, 3177, 3178, 3194, + 3195, 3198, 3184, 3178, 3196, 3196, 3183, 3187, 3199, 3201, + 3204, 3184, 3188, 3202, 3189, 3200, 3190, 3192, 3206, 3198, + 3202, 3205, 3193, 3209, 3201, 3208, 3194, 3195, 3198, 3205, + 3210, 3196, 3207, 3200, 3211, 3199, 3201, 3204, 3209, 3208, + 3202, 3213, 3200, 3214, 3207, 3206, 3217, 3218, 3205, 3220, + 3209, 3221, 3208, 3213, 3224, 3217, 3210, 3210, 3223, 3207, + 3221, 3211, 3219, 3219, 3225, 3226, 3232, 0, 3213, 3231, + + 3214, 3218, 3227, 3217, 3218, 3220, 3220, 3225, 3221, 3228, + 3227, 3235, 3223, 3229, 3232, 3223, 3224, 3226, 3228, 3219, + 3231, 3225, 3226, 3232, 3229, 3236, 3231, 3239, 3239, 3227, + 3251, 3248, 3249, 3252, 3235, 3253, 3228, 3236, 3235, 3255, + 3229, 3257, 3259, 3258, 3251, 3257, 0, 3264, 3260, 3266, + 3262, 3264, 3236, 3248, 3239, 3260, 3249, 3251, 3248, 3249, + 3252, 3258, 3253, 3262, 3265, 3259, 3255, 3267, 3257, 3259, + 3258, 3266, 3268, 3270, 3264, 3260, 3266, 3262, 3269, 3272, + 3265, 3271, 3273, 3274, 3268, 3274, 3275, 3270, 3272, 3271, + 0, 3265, 3267, 3273, 3267, 3278, 3276, 3277, 3275, 3268, + + 3270, 3279, 3281, 3280, 3269, 3269, 3272, 3279, 3271, 3273, + 3274, 3282, 3277, 3275, 3276, 3283, 3289, 3278, 3282, 3287, + 3288, 3290, 3278, 3276, 3277, 3280, 3291, 3288, 3279, 3281, + 3280, 3292, 3287, 3293, 3294, 3297, 3295, 3283, 3282, 3290, + 0, 0, 3283, 3289, 3295, 3296, 3287, 3288, 3290, 3298, + 3304, 3299, 3296, 3291, 3300, 3301, 3300, 3292, 3292, 3297, + 3293, 3294, 3297, 3295, 3302, 3304, 3303, 3301, 3305, 0, + 3306, 3298, 3296, 3299, 3308, 3310, 3298, 3304, 3299, 3303, + 3307, 3300, 3301, 3312, 3313, 3317, 3311, 3307, 3315, 3320, + 3305, 3312, 3321, 3303, 3317, 3305, 3302, 3306, 3311, 3324, + + 3315, 3308, 3310, 3322, 3325, 3329, 3323, 3307, 3326, 0, + 3312, 3313, 3317, 3311, 3323, 3315, 3320, 3328, 3321, 3321, + 3327, 3326, 3322, 3330, 3332, 3328, 3338, 3329, 3344, 3339, + 3322, 3324, 3329, 3323, 3327, 3326, 3325, 3335, 3336, 3338, + 3342, 3341, 3344, 3335, 3328, 3336, 3343, 3327, 3341, 3345, + 3330, 3332, 3339, 3338, 3343, 3344, 3339, 3347, 3346, 3348, + 3349, 3355, 3342, 3345, 3335, 3336, 3346, 3342, 3341, 3353, + 3352, 3356, 3354, 3343, 3357, 3358, 3345, 3352, 3353, 3347, + 3354, 3348, 3359, 3360, 3347, 3346, 3348, 3349, 3355, 3361, + 3363, 3365, 3362, 3356, 3367, 3374, 3353, 3352, 3356, 3354, + + 3362, 3358, 3358, 3366, 3359, 3360, 3357, 3370, 3369, 3359, + 3360, 3361, 3371, 3380, 0, 3370, 3361, 3378, 3365, 3362, + 3372, 3367, 3363, 3398, 3376, 3366, 3401, 3374, 3372, 3373, + 3366, 3369, 3371, 3375, 3370, 3369, 0, 3373, 3376, 3371, + 3380, 3375, 3382, 3378, 3378, 3381, 3383, 3372, 3381, 3384, + 3398, 3376, 3385, 3401, 3383, 3386, 3373, 3384, 3387, 3392, + 3375, 3390, 3390, 3381, 3382, 3391, 3385, 3392, 3393, 3382, + 3388, 3395, 3381, 3383, 3394, 3381, 3384, 0, 0, 3385, + 3387, 3386, 3386, 3396, 3388, 3387, 3392, 3399, 3390, 3405, + 3400, 3391, 3391, 3395, 3393, 3393, 3397, 3388, 3395, 3402, + + 3394, 3394, 3403, 3396, 3397, 3404, 3408, 3417, 0, 3399, + 3396, 3405, 3406, 3404, 3399, 3400, 3405, 3400, 3411, 3402, + 3406, 3412, 3403, 3397, 3415, 0, 3402, 3409, 3413, 3403, + 3414, 3421, 3404, 3408, 3417, 3409, 3413, 3420, 3414, 3406, + 3411, 3418, 3422, 3412, 3419, 3411, 3424, 3425, 3412, 3418, + 3415, 3415, 3419, 3428, 3409, 3413, 3426, 3414, 3421, 3431, + 3434, 3435, 3422, 3420, 3420, 0, 0, 0, 3418, 3422, + 3432, 3419, 0, 3424, 3425, 3428, 3426, 3433, 3432, 0, + 3428, 3431, 0, 3426, 0, 3433, 3431, 3434, 3435, 0, + 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, + + 0, 0, 0, 0, 3433, 3439, 3439, 3439, 3439, 3439, + 3439, 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3441, + 3441, 3441, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442, + 3442, 3442, 3442, 3443, 3443, 3443, 3443, 3443, 3443, 3443, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445, 3445, + 3445, 3445, 3445, 3445, 3447, 3447, 0, 3447, 3447, 3447, + 3447, 3448, 3448, 0, 0, 0, 3448, 3448, 3449, 3449, + 0, 0, 3449, 0, 3449, 3450, 0, 0, 0, 0, + 0, 3450, 3451, 3451, 0, 0, 0, 3451, 3451, 3452, + 0, 0, 0, 0, 0, 3452, 3453, 3453, 0, 3453, + + 3453, 3453, 3453, 3454, 0, 0, 0, 0, 0, 3454, + 3455, 3455, 0, 0, 0, 3455, 3455, 3456, 3456, 0, + 3456, 3456, 3456, 3456, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438 + + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int yy_flex_debug; +int yy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +static int yy_more_flag = 0; +static int yy_more_len = 0; +#define yymore() ((yy_more_flag) = 1) +#define YY_MORE_ADJ (yy_more_len) +#define YY_RESTORE_YY_MORE_OFFSET +char *yytext; +#line 1 "util/configlexer.lex" +#line 2 "util/configlexer.lex" +/* + * configlexer.lex - lexical analyzer for unbound config file + * + * Copyright (c) 2001-2006, NLnet Labs. All rights reserved + * + * See LICENSE for the license. + * + */ + +/* because flex keeps having sign-unsigned compare problems that are unfixed*/ +#if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2)))) +#pragma GCC diagnostic ignored "-Wsign-compare" +#endif + +#include +#include +#ifdef HAVE_GLOB_H +# include +#endif + +#include "util/config_file.h" +#include "util/configparser.h" +void ub_c_error(const char *message); + +#if 0 +#define LEXOUT(s) printf s /* used ONLY when debugging */ +#else +#define LEXOUT(s) +#endif + +/** avoid warning in about fwrite return value */ +#define ECHO ub_c_error_msg("syntax error at text: %s", yytext) + +/** A parser variable, this is a statement in the config file which is + * of the form variable: value1 value2 ... nargs is the number of values. */ +#define YDVAR(nargs, var) \ + num_args=(nargs); \ + LEXOUT(("v(%s%d) ", yytext, num_args)); \ + if(num_args > 0) { BEGIN(val); } \ + return (var); + +struct inc_state { + char* filename; + int line; + YY_BUFFER_STATE buffer; + struct inc_state* next; + int inc_toplevel; +}; +static struct inc_state* config_include_stack = NULL; +static int inc_depth = 0; +static int inc_prev = 0; +static int num_args = 0; +static int inc_toplevel = 0; + +void init_cfg_parse(void) +{ + config_include_stack = NULL; + inc_depth = 0; + inc_prev = 0; + num_args = 0; + inc_toplevel = 0; +} + +static void config_start_include(const char* filename, int toplevel) +{ + FILE *input; + struct inc_state* s; + char* nm; + if(inc_depth+1 > 100000) { + ub_c_error_msg("too many include files"); + return; + } + if(*filename == '\0') { + ub_c_error_msg("empty include file name"); + return; + } + s = (struct inc_state*)malloc(sizeof(*s)); + if(!s) { + ub_c_error_msg("include %s: malloc failure", filename); + return; + } + if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, + strlen(cfg_parser->chroot)) == 0) { + filename += strlen(cfg_parser->chroot); + } + nm = strdup(filename); + if(!nm) { + ub_c_error_msg("include %s: strdup failure", filename); + free(s); + return; + } + input = fopen(filename, "r"); + if(!input) { + ub_c_error_msg("cannot open include file '%s': %s", + filename, strerror(errno)); + free(s); + free(nm); + return; + } + LEXOUT(("switch_to_include_file(%s)\n", filename)); + inc_depth++; + s->filename = cfg_parser->filename; + s->line = cfg_parser->line; + s->buffer = YY_CURRENT_BUFFER; + s->inc_toplevel = inc_toplevel; + s->next = config_include_stack; + config_include_stack = s; + cfg_parser->filename = nm; + cfg_parser->line = 1; + inc_toplevel = toplevel; + yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE)); +} + +static void config_start_include_glob(const char* filename, int toplevel) +{ + + /* check for wildcards */ +#ifdef HAVE_GLOB + glob_t g; + int i, r, flags; + if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') && + !strchr(filename, '{') && !strchr(filename, '~'))) { + flags = 0 +#ifdef GLOB_ERR + | GLOB_ERR +#endif + /* do not set GLOB_NOSORT so the results are sorted + and in a predictable order. */ +#ifdef GLOB_BRACE + | GLOB_BRACE +#endif +#ifdef GLOB_TILDE + | GLOB_TILDE +#endif + ; + memset(&g, 0, sizeof(g)); + if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, + strlen(cfg_parser->chroot)) == 0) { + filename += strlen(cfg_parser->chroot); + } + r = glob(filename, flags, NULL, &g); + if(r) { + /* some error */ + globfree(&g); + if(r == GLOB_NOMATCH) + return; /* no matches for pattern */ + config_start_include(filename, toplevel); /* let original deal with it */ + return; + } + /* process files found, if any */ + for(i=(int)g.gl_pathc-1; i>=0; i--) { + config_start_include(g.gl_pathv[i], toplevel); + } + globfree(&g); + return; + } +#endif /* HAVE_GLOB */ + + config_start_include(filename, toplevel); +} + +static void config_end_include(void) +{ + struct inc_state* s = config_include_stack; + --inc_depth; + if(!s) return; + free(cfg_parser->filename); + cfg_parser->filename = s->filename; + cfg_parser->line = s->line; + yy_delete_buffer(YY_CURRENT_BUFFER); + yy_switch_to_buffer(s->buffer); + config_include_stack = s->next; + inc_toplevel = s->inc_toplevel; + free(s); +} + +#ifndef yy_set_bol /* compat definition, for flex 2.4.6 */ +#define yy_set_bol(at_bol) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ + } +#endif + +#define YY_NO_INPUT 1 +#line 191 "util/configlexer.lex" +#ifndef YY_NO_UNPUT +#define YY_NO_UNPUT 1 +#endif +#ifndef YY_NO_INPUT +#define YY_NO_INPUT 1 +#endif + +#line 3965 "" + +#define INITIAL 0 +#define quotedstring 1 +#define singlequotedstr 2 +#define include 3 +#define include_quoted 4 +#define val 5 +#define include_toplevel 6 +#define include_toplevel_quoted 7 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#include +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy (void ); + +int yyget_debug (void ); + +void yyset_debug (int debug_flag ); + +YY_EXTRA_TYPE yyget_extra (void ); + +void yyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *yyget_in (void ); + +void yyset_in (FILE * in_str ); + +FILE *yyget_out (void ); + +void yyset_out (FILE * out_str ); + +yy_size_t yyget_leng (void ); + +char *yyget_text (void ); + +int yyget_lineno (void ); + +void yyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap (void ); +#else +extern int yywrap (void ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + yy_size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex (void); + +#define YY_DECL int yylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 211 "util/configlexer.lex" + +#line 4154 "" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + (yy_more_len) = 0; + if ( (yy_more_flag) ) + { + (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); + (yy_more_flag) = 0; + } + yy_cp = (yy_c_buf_p); + + /* Support of yytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 3439 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 9825 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 212 "util/configlexer.lex" +{ + LEXOUT(("SP ")); /* ignore */ } + YY_BREAK +case 2: +YY_RULE_SETUP +#line 214 "util/configlexer.lex" +{ + /* note that flex makes the longest match and '.' is any but not nl */ + LEXOUT(("comment(%s) ", yytext)); /* ignore */ } + YY_BREAK +case 3: +YY_RULE_SETUP +#line 217 "util/configlexer.lex" +{ YDVAR(0, VAR_SERVER) } + YY_BREAK +case 4: +YY_RULE_SETUP +#line 218 "util/configlexer.lex" +{ YDVAR(1, VAR_QNAME_MINIMISATION) } + YY_BREAK +case 5: +YY_RULE_SETUP +#line 219 "util/configlexer.lex" +{ YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) } + YY_BREAK +case 6: +YY_RULE_SETUP +#line 220 "util/configlexer.lex" +{ YDVAR(1, VAR_NUM_THREADS) } + YY_BREAK +case 7: +YY_RULE_SETUP +#line 221 "util/configlexer.lex" +{ YDVAR(1, VAR_VERBOSITY) } + YY_BREAK +case 8: +YY_RULE_SETUP +#line 222 "util/configlexer.lex" +{ YDVAR(1, VAR_PORT) } + YY_BREAK +case 9: +YY_RULE_SETUP +#line 223 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_RANGE) } + YY_BREAK +case 10: +YY_RULE_SETUP +#line 224 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } + YY_BREAK +case 11: +YY_RULE_SETUP +#line 225 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_PORT_AVOID) } + YY_BREAK +case 12: +YY_RULE_SETUP +#line 226 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_NUM_TCP) } + YY_BREAK +case 13: +YY_RULE_SETUP +#line 227 "util/configlexer.lex" +{ YDVAR(1, VAR_INCOMING_NUM_TCP) } + YY_BREAK +case 14: +YY_RULE_SETUP +#line 228 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_IP4) } + YY_BREAK +case 15: +YY_RULE_SETUP +#line 229 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_IP6) } + YY_BREAK +case 16: +YY_RULE_SETUP +#line 230 "util/configlexer.lex" +{ YDVAR(1, VAR_PREFER_IP4) } + YY_BREAK +case 17: +YY_RULE_SETUP +#line 231 "util/configlexer.lex" +{ YDVAR(1, VAR_PREFER_IP6) } + YY_BREAK +case 18: +YY_RULE_SETUP +#line 232 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_UDP) } + YY_BREAK +case 19: +YY_RULE_SETUP +#line 233 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_TCP) } + YY_BREAK +case 20: +YY_RULE_SETUP +#line 234 "util/configlexer.lex" +{ YDVAR(1, VAR_TCP_UPSTREAM) } + YY_BREAK +case 21: +YY_RULE_SETUP +#line 235 "util/configlexer.lex" +{ YDVAR(1, VAR_TCP_MSS) } + YY_BREAK +case 22: +YY_RULE_SETUP +#line 236 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_TCP_MSS) } + YY_BREAK +case 23: +YY_RULE_SETUP +#line 237 "util/configlexer.lex" +{ YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } + YY_BREAK +case 24: +YY_RULE_SETUP +#line 238 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } + YY_BREAK +case 25: +YY_RULE_SETUP +#line 239 "util/configlexer.lex" +{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } + YY_BREAK +case 26: +YY_RULE_SETUP +#line 240 "util/configlexer.lex" +{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } + YY_BREAK +case 27: +YY_RULE_SETUP +#line 241 "util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } + YY_BREAK +case 28: +YY_RULE_SETUP +#line 242 "util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } + YY_BREAK +case 29: +YY_RULE_SETUP +#line 243 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_UPSTREAM) } + YY_BREAK +case 30: +YY_RULE_SETUP +#line 244 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_UPSTREAM) } + YY_BREAK +case 31: +YY_RULE_SETUP +#line 245 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } + YY_BREAK +case 32: +YY_RULE_SETUP +#line 246 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } + YY_BREAK +case 33: +YY_RULE_SETUP +#line 247 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } + YY_BREAK +case 34: +YY_RULE_SETUP +#line 248 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } + YY_BREAK +case 35: +YY_RULE_SETUP +#line 249 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_PORT) } + YY_BREAK +case 36: +YY_RULE_SETUP +#line 250 "util/configlexer.lex" +{ YDVAR(1, VAR_SSL_PORT) } + YY_BREAK +case 37: +YY_RULE_SETUP +#line 251 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } + YY_BREAK +case 38: +YY_RULE_SETUP +#line 252 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } + YY_BREAK +case 39: +YY_RULE_SETUP +#line 253 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_WIN_CERT) } + YY_BREAK +case 40: +YY_RULE_SETUP +#line 254 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } + YY_BREAK +case 41: +YY_RULE_SETUP +#line 255 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } + YY_BREAK +case 42: +YY_RULE_SETUP +#line 256 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } + YY_BREAK +case 43: +YY_RULE_SETUP +#line 257 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } + YY_BREAK +case 44: +YY_RULE_SETUP +#line 258 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } + YY_BREAK +case 45: +YY_RULE_SETUP +#line 259 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_CIPHERS) } + YY_BREAK +case 46: +YY_RULE_SETUP +#line 260 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_CIPHERSUITES) } + YY_BREAK +case 47: +YY_RULE_SETUP +#line 261 "util/configlexer.lex" +{ YDVAR(1, VAR_TLS_USE_SNI) } + YY_BREAK +case 48: +YY_RULE_SETUP +#line 262 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTPS_PORT) } + YY_BREAK +case 49: +YY_RULE_SETUP +#line 263 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_ENDPOINT) } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 264 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 265 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 266 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } + YY_BREAK +case 53: +YY_RULE_SETUP +#line 267 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_NODELAY) } + YY_BREAK +case 54: +YY_RULE_SETUP +#line 268 "util/configlexer.lex" +{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } + YY_BREAK +case 55: +YY_RULE_SETUP +#line 269 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_SYSTEMD) } + YY_BREAK +case 56: +YY_RULE_SETUP +#line 270 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_DAEMONIZE) } + YY_BREAK +case 57: +YY_RULE_SETUP +#line 271 "util/configlexer.lex" +{ YDVAR(1, VAR_INTERFACE) } + YY_BREAK +case 58: +YY_RULE_SETUP +#line 272 "util/configlexer.lex" +{ YDVAR(1, VAR_INTERFACE) } + YY_BREAK +case 59: +YY_RULE_SETUP +#line 273 "util/configlexer.lex" +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 274 "util/configlexer.lex" +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } + YY_BREAK +case 61: +YY_RULE_SETUP +#line 275 "util/configlexer.lex" +{ YDVAR(1, VAR_SO_RCVBUF) } + YY_BREAK +case 62: +YY_RULE_SETUP +#line 276 "util/configlexer.lex" +{ YDVAR(1, VAR_SO_SNDBUF) } + YY_BREAK +case 63: +YY_RULE_SETUP +#line 277 "util/configlexer.lex" +{ YDVAR(1, VAR_SO_REUSEPORT) } + YY_BREAK +case 64: +YY_RULE_SETUP +#line 278 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_TRANSPARENT) } + YY_BREAK +case 65: +YY_RULE_SETUP +#line 279 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_FREEBIND) } + YY_BREAK +case 66: +YY_RULE_SETUP +#line 280 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_DSCP) } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 281 "util/configlexer.lex" +{ YDVAR(1, VAR_CHROOT) } + YY_BREAK +case 68: +YY_RULE_SETUP +#line 282 "util/configlexer.lex" +{ YDVAR(1, VAR_USERNAME) } + YY_BREAK +case 69: +YY_RULE_SETUP +#line 283 "util/configlexer.lex" +{ YDVAR(1, VAR_DIRECTORY) } + YY_BREAK +case 70: +YY_RULE_SETUP +#line 284 "util/configlexer.lex" +{ YDVAR(1, VAR_LOGFILE) } + YY_BREAK +case 71: +YY_RULE_SETUP +#line 285 "util/configlexer.lex" +{ YDVAR(1, VAR_PIDFILE) } + YY_BREAK +case 72: +YY_RULE_SETUP +#line 286 "util/configlexer.lex" +{ YDVAR(1, VAR_ROOT_HINTS) } + YY_BREAK +case 73: +YY_RULE_SETUP +#line 287 "util/configlexer.lex" +{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 288 "util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } + YY_BREAK +case 75: +YY_RULE_SETUP +#line 289 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } + YY_BREAK +case 76: +YY_RULE_SETUP +#line 290 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } + YY_BREAK +case 77: +YY_RULE_SETUP +#line 291 "util/configlexer.lex" +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } + YY_BREAK +case 78: +YY_RULE_SETUP +#line 292 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } + YY_BREAK +case 79: +YY_RULE_SETUP +#line 293 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } + YY_BREAK +case 80: +YY_RULE_SETUP +#line 294 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHE_MAX_TTL) } + YY_BREAK +case 81: +YY_RULE_SETUP +#line 295 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } + YY_BREAK +case 82: +YY_RULE_SETUP +#line 296 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHE_MIN_TTL) } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 297 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_HOST_TTL) } + YY_BREAK +case 84: +YY_RULE_SETUP +#line 298 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_LAME_TTL) } + YY_BREAK +case 85: +YY_RULE_SETUP +#line 299 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } + YY_BREAK +case 86: +YY_RULE_SETUP +#line 300 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } + YY_BREAK +case 87: +YY_RULE_SETUP +#line 301 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } + YY_BREAK +case 88: +YY_RULE_SETUP +#line 302 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } + YY_BREAK +case 89: +YY_RULE_SETUP +#line 303 "util/configlexer.lex" +{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } + YY_BREAK +case 90: +YY_RULE_SETUP +#line 304 "util/configlexer.lex" +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } + YY_BREAK +case 91: +YY_RULE_SETUP +#line 305 "util/configlexer.lex" +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } + YY_BREAK +case 92: +YY_RULE_SETUP +#line 306 "util/configlexer.lex" +{ YDVAR(1, VAR_DELAY_CLOSE) } + YY_BREAK +case 93: +YY_RULE_SETUP +#line 307 "util/configlexer.lex" +{ YDVAR(1, VAR_UDP_CONNECT) } + YY_BREAK +case 94: +YY_RULE_SETUP +#line 308 "util/configlexer.lex" +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } + YY_BREAK +case 95: +YY_RULE_SETUP +#line 309 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } + YY_BREAK +case 96: +YY_RULE_SETUP +#line 310 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } + YY_BREAK +case 97: +YY_RULE_SETUP +#line 311 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_GLUE) } + YY_BREAK +case 98: +YY_RULE_SETUP +#line 312 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } + YY_BREAK +case 99: +YY_RULE_SETUP +#line 313 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } + YY_BREAK +case 100: +YY_RULE_SETUP +#line 314 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } + YY_BREAK +case 101: +YY_RULE_SETUP +#line 315 "util/configlexer.lex" +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } + YY_BREAK +case 102: +YY_RULE_SETUP +#line 316 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } + YY_BREAK +case 103: +YY_RULE_SETUP +#line 317 "util/configlexer.lex" +{ YDVAR(1, VAR_CAPS_WHITELIST) } + YY_BREAK +case 104: +YY_RULE_SETUP +#line 318 "util/configlexer.lex" +{ YDVAR(1, VAR_CAPS_WHITELIST) } + YY_BREAK +case 105: +YY_RULE_SETUP +#line 319 "util/configlexer.lex" +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } + YY_BREAK +case 106: +YY_RULE_SETUP +#line 320 "util/configlexer.lex" +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } + YY_BREAK +case 107: +YY_RULE_SETUP +#line 321 "util/configlexer.lex" +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } + YY_BREAK +case 108: +YY_RULE_SETUP +#line 322 "util/configlexer.lex" +{ YDVAR(1, VAR_PREFETCH_KEY) } + YY_BREAK +case 109: +YY_RULE_SETUP +#line 323 "util/configlexer.lex" +{ YDVAR(1, VAR_PREFETCH) } + YY_BREAK +case 110: +YY_RULE_SETUP +#line 324 "util/configlexer.lex" +{ YDVAR(1, VAR_DENY_ANY) } + YY_BREAK +case 111: +YY_RULE_SETUP +#line 325 "util/configlexer.lex" +{ YDVAR(0, VAR_STUB_ZONE) } + YY_BREAK +case 112: +YY_RULE_SETUP +#line 326 "util/configlexer.lex" +{ YDVAR(1, VAR_NAME) } + YY_BREAK +case 113: +YY_RULE_SETUP +#line 327 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_ADDR) } + YY_BREAK +case 114: +YY_RULE_SETUP +#line 328 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_HOST) } + YY_BREAK +case 115: +YY_RULE_SETUP +#line 329 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_PRIME) } + YY_BREAK +case 116: +YY_RULE_SETUP +#line 330 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_FIRST) } + YY_BREAK +case 117: +YY_RULE_SETUP +#line 331 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_NO_CACHE) } + YY_BREAK +case 118: +YY_RULE_SETUP +#line 332 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } + YY_BREAK +case 119: +YY_RULE_SETUP +#line 333 "util/configlexer.lex" +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } + YY_BREAK +case 120: +YY_RULE_SETUP +#line 334 "util/configlexer.lex" +{ YDVAR(0, VAR_FORWARD_ZONE) } + YY_BREAK +case 121: +YY_RULE_SETUP +#line 335 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_ADDR) } + YY_BREAK +case 122: +YY_RULE_SETUP +#line 336 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_HOST) } + YY_BREAK +case 123: +YY_RULE_SETUP +#line 337 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_FIRST) } + YY_BREAK +case 124: +YY_RULE_SETUP +#line 338 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } + YY_BREAK +case 125: +YY_RULE_SETUP +#line 339 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } + YY_BREAK +case 126: +YY_RULE_SETUP +#line 340 "util/configlexer.lex" +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } + YY_BREAK +case 127: +YY_RULE_SETUP +#line 341 "util/configlexer.lex" +{ YDVAR(0, VAR_AUTH_ZONE) } + YY_BREAK +case 128: +YY_RULE_SETUP +#line 342 "util/configlexer.lex" +{ YDVAR(0, VAR_RPZ) } + YY_BREAK +case 129: +YY_RULE_SETUP +#line 343 "util/configlexer.lex" +{ YDVAR(1, VAR_TAGS) } + YY_BREAK +case 130: +YY_RULE_SETUP +#line 344 "util/configlexer.lex" +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } + YY_BREAK +case 131: +YY_RULE_SETUP +#line 345 "util/configlexer.lex" +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } + YY_BREAK +case 132: +YY_RULE_SETUP +#line 346 "util/configlexer.lex" +{ YDVAR(1, VAR_RPZ_LOG) } + YY_BREAK +case 133: +YY_RULE_SETUP +#line 347 "util/configlexer.lex" +{ YDVAR(1, VAR_RPZ_LOG_NAME) } + YY_BREAK +case 134: +YY_RULE_SETUP +#line 348 "util/configlexer.lex" +{ YDVAR(1, VAR_ZONEFILE) } + YY_BREAK +case 135: +YY_RULE_SETUP +#line 349 "util/configlexer.lex" +{ YDVAR(1, VAR_MASTER) } + YY_BREAK +case 136: +YY_RULE_SETUP +#line 350 "util/configlexer.lex" +{ YDVAR(1, VAR_MASTER) } + YY_BREAK +case 137: +YY_RULE_SETUP +#line 351 "util/configlexer.lex" +{ YDVAR(1, VAR_URL) } + YY_BREAK +case 138: +YY_RULE_SETUP +#line 352 "util/configlexer.lex" +{ YDVAR(1, VAR_ALLOW_NOTIFY) } + YY_BREAK +case 139: +YY_RULE_SETUP +#line 353 "util/configlexer.lex" +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } + YY_BREAK +case 140: +YY_RULE_SETUP +#line 354 "util/configlexer.lex" +{ YDVAR(1, VAR_FOR_UPSTREAM) } + YY_BREAK +case 141: +YY_RULE_SETUP +#line 355 "util/configlexer.lex" +{ YDVAR(1, VAR_FALLBACK_ENABLED) } + YY_BREAK +case 142: +YY_RULE_SETUP +#line 356 "util/configlexer.lex" +{ YDVAR(0, VAR_VIEW) } + YY_BREAK +case 143: +YY_RULE_SETUP +#line 357 "util/configlexer.lex" +{ YDVAR(1, VAR_VIEW_FIRST) } + YY_BREAK +case 144: +YY_RULE_SETUP +#line 358 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } + YY_BREAK +case 145: +YY_RULE_SETUP +#line 359 "util/configlexer.lex" +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } + YY_BREAK +case 146: +YY_RULE_SETUP +#line 360 "util/configlexer.lex" +{ YDVAR(2, VAR_ACCESS_CONTROL) } + YY_BREAK +case 147: +YY_RULE_SETUP +#line 361 "util/configlexer.lex" +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } + YY_BREAK +case 148: +YY_RULE_SETUP +#line 362 "util/configlexer.lex" +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } + YY_BREAK +case 149: +YY_RULE_SETUP +#line 363 "util/configlexer.lex" +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } + YY_BREAK +case 150: +YY_RULE_SETUP +#line 364 "util/configlexer.lex" +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } + YY_BREAK +case 151: +YY_RULE_SETUP +#line 365 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } + YY_BREAK +case 152: +YY_RULE_SETUP +#line 366 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } + YY_BREAK +case 153: +YY_RULE_SETUP +#line 367 "util/configlexer.lex" +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } + YY_BREAK +case 154: +YY_RULE_SETUP +#line 368 "util/configlexer.lex" +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 369 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } + YY_BREAK +case 156: +YY_RULE_SETUP +#line 370 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } + YY_BREAK +case 157: +YY_RULE_SETUP +#line 371 "util/configlexer.lex" +{ YDVAR(1, VAR_HIDE_IDENTITY) } + YY_BREAK +case 158: +YY_RULE_SETUP +#line 372 "util/configlexer.lex" +{ YDVAR(1, VAR_HIDE_VERSION) } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 373 "util/configlexer.lex" +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 374 "util/configlexer.lex" +{ YDVAR(1, VAR_IDENTITY) } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 375 "util/configlexer.lex" +{ YDVAR(1, VAR_VERSION) } + YY_BREAK +case 162: +YY_RULE_SETUP +#line 376 "util/configlexer.lex" +{ YDVAR(1, VAR_MODULE_CONF) } + YY_BREAK +case 163: +YY_RULE_SETUP +#line 377 "util/configlexer.lex" +{ YDVAR(1, VAR_DLV_ANCHOR) } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 378 "util/configlexer.lex" +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } + YY_BREAK +case 165: +YY_RULE_SETUP +#line 379 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } + YY_BREAK +case 166: +YY_RULE_SETUP +#line 380 "util/configlexer.lex" +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } + YY_BREAK +case 167: +YY_RULE_SETUP +#line 381 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } + YY_BREAK +case 168: +YY_RULE_SETUP +#line 382 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUST_ANCHOR) } + YY_BREAK +case 169: +YY_RULE_SETUP +#line 383 "util/configlexer.lex" +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } + YY_BREAK +case 170: +YY_RULE_SETUP +#line 384 "util/configlexer.lex" +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } + YY_BREAK +case 171: +YY_RULE_SETUP +#line 385 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } + YY_BREAK +case 172: +YY_RULE_SETUP +#line 386 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } + YY_BREAK +case 173: +YY_RULE_SETUP +#line 387 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } + YY_BREAK +case 174: +YY_RULE_SETUP +#line 388 "util/configlexer.lex" +{ YDVAR(1, VAR_BOGUS_TTL) } + YY_BREAK +case 175: +YY_RULE_SETUP +#line 389 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } + YY_BREAK +case 176: +YY_RULE_SETUP +#line 390 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } + YY_BREAK +case 177: +YY_RULE_SETUP +#line 391 "util/configlexer.lex" +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } + YY_BREAK +case 178: +YY_RULE_SETUP +#line 392 "util/configlexer.lex" +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } + YY_BREAK +case 179: +YY_RULE_SETUP +#line 393 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_EXPIRED) } + YY_BREAK +case 180: +YY_RULE_SETUP +#line 394 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } + YY_BREAK +case 181: +YY_RULE_SETUP +#line 395 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } + YY_BREAK +case 182: +YY_RULE_SETUP +#line 396 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } + YY_BREAK +case 183: +YY_RULE_SETUP +#line 397 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } + YY_BREAK +case 184: +YY_RULE_SETUP +#line 398 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } + YY_BREAK +case 185: +YY_RULE_SETUP +#line 399 "util/configlexer.lex" +{ YDVAR(1, VAR_FAKE_DSA) } + YY_BREAK +case 186: +YY_RULE_SETUP +#line 400 "util/configlexer.lex" +{ YDVAR(1, VAR_FAKE_SHA1) } + YY_BREAK +case 187: +YY_RULE_SETUP +#line 401 "util/configlexer.lex" +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } + YY_BREAK +case 188: +YY_RULE_SETUP +#line 402 "util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } + YY_BREAK +case 189: +YY_RULE_SETUP +#line 403 "util/configlexer.lex" +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } + YY_BREAK +case 190: +YY_RULE_SETUP +#line 404 "util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } + YY_BREAK +case 191: +YY_RULE_SETUP +#line 405 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } + YY_BREAK +case 192: +YY_RULE_SETUP +#line 407 "util/configlexer.lex" +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } + YY_BREAK +case 193: +YY_RULE_SETUP +#line 408 "util/configlexer.lex" +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } + YY_BREAK +case 194: +YY_RULE_SETUP +#line 409 "util/configlexer.lex" +{ YDVAR(1, VAR_ADD_HOLDDOWN) } + YY_BREAK +case 195: +YY_RULE_SETUP +#line 410 "util/configlexer.lex" +{ YDVAR(1, VAR_DEL_HOLDDOWN) } + YY_BREAK +case 196: +YY_RULE_SETUP +#line 411 "util/configlexer.lex" +{ YDVAR(1, VAR_KEEP_MISSING) } + YY_BREAK +case 197: +YY_RULE_SETUP +#line 412 "util/configlexer.lex" +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } + YY_BREAK +case 198: +YY_RULE_SETUP +#line 413 "util/configlexer.lex" +{ YDVAR(1, VAR_USE_SYSLOG) } + YY_BREAK +case 199: +YY_RULE_SETUP +#line 414 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_IDENTITY) } + YY_BREAK +case 200: +YY_RULE_SETUP +#line 415 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_TIME_ASCII) } + YY_BREAK +case 201: +YY_RULE_SETUP +#line 416 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_QUERIES) } + YY_BREAK +case 202: +YY_RULE_SETUP +#line 417 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_REPLIES) } + YY_BREAK +case 203: +YY_RULE_SETUP +#line 418 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } + YY_BREAK +case 204: +YY_RULE_SETUP +#line 419 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } + YY_BREAK +case 205: +YY_RULE_SETUP +#line 420 "util/configlexer.lex" +{ YDVAR(1, VAR_LOG_SERVFAIL) } + YY_BREAK +case 206: +YY_RULE_SETUP +#line 421 "util/configlexer.lex" +{ YDVAR(2, VAR_LOCAL_ZONE) } + YY_BREAK +case 207: +YY_RULE_SETUP +#line 422 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA) } + YY_BREAK +case 208: +YY_RULE_SETUP +#line 423 "util/configlexer.lex" +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } + YY_BREAK +case 209: +YY_RULE_SETUP +#line 424 "util/configlexer.lex" +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } + YY_BREAK +case 210: +YY_RULE_SETUP +#line 425 "util/configlexer.lex" +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } + YY_BREAK +case 211: +YY_RULE_SETUP +#line 426 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } + YY_BREAK +case 212: +YY_RULE_SETUP +#line 427 "util/configlexer.lex" +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } + YY_BREAK +case 213: +YY_RULE_SETUP +#line 428 "util/configlexer.lex" +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } + YY_BREAK +case 214: +YY_RULE_SETUP +#line 429 "util/configlexer.lex" +{ YDVAR(1, VAR_SHM_ENABLE) } + YY_BREAK +case 215: +YY_RULE_SETUP +#line 430 "util/configlexer.lex" +{ YDVAR(1, VAR_SHM_KEY) } + YY_BREAK +case 216: +YY_RULE_SETUP +#line 431 "util/configlexer.lex" +{ YDVAR(0, VAR_REMOTE_CONTROL) } + YY_BREAK +case 217: +YY_RULE_SETUP +#line 432 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_ENABLE) } + YY_BREAK +case 218: +YY_RULE_SETUP +#line 433 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_INTERFACE) } + YY_BREAK +case 219: +YY_RULE_SETUP +#line 434 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_PORT) } + YY_BREAK +case 220: +YY_RULE_SETUP +#line 435 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_USE_CERT) } + YY_BREAK +case 221: +YY_RULE_SETUP +#line 436 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_KEY_FILE) } + YY_BREAK +case 222: +YY_RULE_SETUP +#line 437 "util/configlexer.lex" +{ YDVAR(1, VAR_SERVER_CERT_FILE) } + YY_BREAK +case 223: +YY_RULE_SETUP +#line 438 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } + YY_BREAK +case 224: +YY_RULE_SETUP +#line 439 "util/configlexer.lex" +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } + YY_BREAK +case 225: +YY_RULE_SETUP +#line 440 "util/configlexer.lex" +{ YDVAR(1, VAR_PYTHON_SCRIPT) } + YY_BREAK +case 226: +YY_RULE_SETUP +#line 441 "util/configlexer.lex" +{ YDVAR(0, VAR_PYTHON) } + YY_BREAK +case 227: +YY_RULE_SETUP +#line 442 "util/configlexer.lex" +{ YDVAR(1, VAR_DYNLIB_FILE) } + YY_BREAK +case 228: +YY_RULE_SETUP +#line 443 "util/configlexer.lex" +{ YDVAR(0, VAR_DYNLIB) } + YY_BREAK +case 229: +YY_RULE_SETUP +#line 444 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } + YY_BREAK +case 230: +YY_RULE_SETUP +#line 445 "util/configlexer.lex" +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } + YY_BREAK +case 231: +YY_RULE_SETUP +#line 446 "util/configlexer.lex" +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } + YY_BREAK +case 232: +YY_RULE_SETUP +#line 447 "util/configlexer.lex" +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } + YY_BREAK +case 233: +YY_RULE_SETUP +#line 448 "util/configlexer.lex" +{ YDVAR(1, VAR_MAX_UDP_SIZE) } + YY_BREAK +case 234: +YY_RULE_SETUP +#line 449 "util/configlexer.lex" +{ YDVAR(1, VAR_DNS64_PREFIX) } + YY_BREAK +case 235: +YY_RULE_SETUP +#line 450 "util/configlexer.lex" +{ YDVAR(1, VAR_DNS64_SYNTHALL) } + YY_BREAK +case 236: +YY_RULE_SETUP +#line 451 "util/configlexer.lex" +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } + YY_BREAK +case 237: +YY_RULE_SETUP +#line 452 "util/configlexer.lex" +{ YDVAR(1, VAR_DEFINE_TAG) } + YY_BREAK +case 238: +YY_RULE_SETUP +#line 453 "util/configlexer.lex" +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } + YY_BREAK +case 239: +YY_RULE_SETUP +#line 454 "util/configlexer.lex" +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } + YY_BREAK +case 240: +YY_RULE_SETUP +#line 455 "util/configlexer.lex" +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } + YY_BREAK +case 241: +YY_RULE_SETUP +#line 456 "util/configlexer.lex" +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } + YY_BREAK +case 242: +YY_RULE_SETUP +#line 457 "util/configlexer.lex" +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } + YY_BREAK +case 243: +YY_RULE_SETUP +#line 458 "util/configlexer.lex" +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } + YY_BREAK +case 244: +YY_RULE_SETUP +#line 459 "util/configlexer.lex" +{ YDVAR(0, VAR_DNSTAP) } + YY_BREAK +case 245: +YY_RULE_SETUP +#line 460 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_ENABLE) } + YY_BREAK +case 246: +YY_RULE_SETUP +#line 461 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } + YY_BREAK +case 247: +YY_RULE_SETUP +#line 462 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } + YY_BREAK +case 248: +YY_RULE_SETUP +#line 463 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IP) } + YY_BREAK +case 249: +YY_RULE_SETUP +#line 464 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS) } + YY_BREAK +case 250: +YY_RULE_SETUP +#line 465 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } + YY_BREAK +case 251: +YY_RULE_SETUP +#line 466 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } + YY_BREAK +case 252: +YY_RULE_SETUP +#line 467 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } + YY_BREAK +case 253: +YY_RULE_SETUP +#line 469 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } + YY_BREAK +case 254: +YY_RULE_SETUP +#line 471 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } + YY_BREAK +case 255: +YY_RULE_SETUP +#line 472 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } + YY_BREAK +case 256: +YY_RULE_SETUP +#line 473 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } + YY_BREAK +case 257: +YY_RULE_SETUP +#line 474 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } + YY_BREAK +case 258: +YY_RULE_SETUP +#line 475 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } + YY_BREAK +case 259: +YY_RULE_SETUP +#line 477 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YY_BREAK +case 260: +YY_RULE_SETUP +#line 479 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YY_BREAK +case 261: +YY_RULE_SETUP +#line 481 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YY_BREAK +case 262: +YY_RULE_SETUP +#line 483 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YY_BREAK +case 263: +YY_RULE_SETUP +#line 485 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YY_BREAK +case 264: +YY_RULE_SETUP +#line 487 "util/configlexer.lex" +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } + YY_BREAK +case 265: +YY_RULE_SETUP +#line 488 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_RATELIMIT) } + YY_BREAK +case 266: +YY_RULE_SETUP +#line 489 "util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT) } + YY_BREAK +case 267: +YY_RULE_SETUP +#line 490 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } + YY_BREAK +case 268: +YY_RULE_SETUP +#line 491 "util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_SLABS) } + YY_BREAK +case 269: +YY_RULE_SETUP +#line 492 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } + YY_BREAK +case 270: +YY_RULE_SETUP +#line 493 "util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_SIZE) } + YY_BREAK +case 271: +YY_RULE_SETUP +#line 494 "util/configlexer.lex" +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } + YY_BREAK +case 272: +YY_RULE_SETUP +#line 495 "util/configlexer.lex" +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } + YY_BREAK +case 273: +YY_RULE_SETUP +#line 496 "util/configlexer.lex" +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } + YY_BREAK +case 274: +YY_RULE_SETUP +#line 497 "util/configlexer.lex" +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } + YY_BREAK +case 275: +YY_RULE_SETUP +#line 498 "util/configlexer.lex" +{ YDVAR(1, VAR_LOW_RTT) } + YY_BREAK +case 276: +YY_RULE_SETUP +#line 499 "util/configlexer.lex" +{ YDVAR(1, VAR_FAST_SERVER_NUM) } + YY_BREAK +case 277: +YY_RULE_SETUP +#line 500 "util/configlexer.lex" +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } + YY_BREAK +case 278: +YY_RULE_SETUP +#line 501 "util/configlexer.lex" +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } + YY_BREAK +case 279: +YY_RULE_SETUP +#line 502 "util/configlexer.lex" +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } + YY_BREAK +case 280: +YY_RULE_SETUP +#line 503 "util/configlexer.lex" +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } + YY_BREAK +case 281: +YY_RULE_SETUP +#line 504 "util/configlexer.lex" +{ YDVAR(2, VAR_RESPONSE_IP) } + YY_BREAK +case 282: +YY_RULE_SETUP +#line 505 "util/configlexer.lex" +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } + YY_BREAK +case 283: +YY_RULE_SETUP +#line 506 "util/configlexer.lex" +{ YDVAR(0, VAR_DNSCRYPT) } + YY_BREAK +case 284: +YY_RULE_SETUP +#line 507 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } + YY_BREAK +case 285: +YY_RULE_SETUP +#line 508 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PORT) } + YY_BREAK +case 286: +YY_RULE_SETUP +#line 509 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } + YY_BREAK +case 287: +YY_RULE_SETUP +#line 510 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } + YY_BREAK +case 288: +YY_RULE_SETUP +#line 511 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } + YY_BREAK +case 289: +YY_RULE_SETUP +#line 512 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } + YY_BREAK +case 290: +YY_RULE_SETUP +#line 513 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } + YY_BREAK +case 291: +YY_RULE_SETUP +#line 515 "util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YY_BREAK +case 292: +YY_RULE_SETUP +#line 517 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } + YY_BREAK +case 293: +YY_RULE_SETUP +#line 518 "util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } + YY_BREAK +case 294: +YY_RULE_SETUP +#line 519 "util/configlexer.lex" +{ YDVAR(1, VAR_PAD_RESPONSES) } + YY_BREAK +case 295: +YY_RULE_SETUP +#line 520 "util/configlexer.lex" +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } + YY_BREAK +case 296: +YY_RULE_SETUP +#line 521 "util/configlexer.lex" +{ YDVAR(1, VAR_PAD_QUERIES) } + YY_BREAK +case 297: +YY_RULE_SETUP +#line 522 "util/configlexer.lex" +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } + YY_BREAK +case 298: +YY_RULE_SETUP +#line 523 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } + YY_BREAK +case 299: +YY_RULE_SETUP +#line 524 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } + YY_BREAK +case 300: +YY_RULE_SETUP +#line 525 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_HOOK) } + YY_BREAK +case 301: +YY_RULE_SETUP +#line 526 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } + YY_BREAK +case 302: +YY_RULE_SETUP +#line 527 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } + YY_BREAK +case 303: +YY_RULE_SETUP +#line 528 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } + YY_BREAK +case 304: +YY_RULE_SETUP +#line 529 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSECMOD_STRICT) } + YY_BREAK +case 305: +YY_RULE_SETUP +#line 530 "util/configlexer.lex" +{ YDVAR(0, VAR_CACHEDB) } + YY_BREAK +case 306: +YY_RULE_SETUP +#line 531 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_BACKEND) } + YY_BREAK +case 307: +YY_RULE_SETUP +#line 532 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } + YY_BREAK +case 308: +YY_RULE_SETUP +#line 533 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } + YY_BREAK +case 309: +YY_RULE_SETUP +#line 534 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } + YY_BREAK +case 310: +YY_RULE_SETUP +#line 535 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } + YY_BREAK +case 311: +YY_RULE_SETUP +#line 536 "util/configlexer.lex" +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } + YY_BREAK +case 312: +YY_RULE_SETUP +#line 537 "util/configlexer.lex" +{ YDVAR(0, VAR_IPSET) } + YY_BREAK +case 313: +YY_RULE_SETUP +#line 538 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSET_NAME_V4) } + YY_BREAK +case 314: +YY_RULE_SETUP +#line 539 "util/configlexer.lex" +{ YDVAR(1, VAR_IPSET_NAME_V6) } + YY_BREAK +case 315: +YY_RULE_SETUP +#line 540 "util/configlexer.lex" +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } + YY_BREAK +case 316: +YY_RULE_SETUP +#line 541 "util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 317: +YY_RULE_SETUP +#line 542 "util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 318: +YY_RULE_SETUP +#line 543 "util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 319: +YY_RULE_SETUP +#line 544 "util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 320: +/* rule 320 can match eol */ +YY_RULE_SETUP +#line 545 "util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +/* Quoted strings. Strip leading and ending quotes */ +case 321: +YY_RULE_SETUP +#line 548 "util/configlexer.lex" +{ BEGIN(quotedstring); LEXOUT(("QS ")); } + YY_BREAK +case YY_STATE_EOF(quotedstring): +#line 549 "util/configlexer.lex" +{ + yyerror("EOF inside quoted string"); + if(--num_args == 0) { BEGIN(INITIAL); } + else { BEGIN(val); } +} + YY_BREAK +case 322: +YY_RULE_SETUP +#line 554 "util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 323: +/* rule 323 can match eol */ +YY_RULE_SETUP +#line 555 "util/configlexer.lex" +{ yyerror("newline inside quoted string, no end \""); + cfg_parser->line++; BEGIN(INITIAL); } + YY_BREAK +case 324: +YY_RULE_SETUP +#line 557 "util/configlexer.lex" +{ + LEXOUT(("QE ")); + if(--num_args == 0) { BEGIN(INITIAL); } + else { BEGIN(val); } + yytext[yyleng - 1] = '\0'; + yylval.str = strdup(yytext); + if(!yylval.str) + yyerror("out of memory"); + return STRING_ARG; +} + YY_BREAK +/* Single Quoted strings. Strip leading and ending quotes */ +case 325: +YY_RULE_SETUP +#line 569 "util/configlexer.lex" +{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); } + YY_BREAK +case YY_STATE_EOF(singlequotedstr): +#line 570 "util/configlexer.lex" +{ + yyerror("EOF inside quoted string"); + if(--num_args == 0) { BEGIN(INITIAL); } + else { BEGIN(val); } +} + YY_BREAK +case 326: +YY_RULE_SETUP +#line 575 "util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 327: +/* rule 327 can match eol */ +YY_RULE_SETUP +#line 576 "util/configlexer.lex" +{ yyerror("newline inside quoted string, no end '"); + cfg_parser->line++; BEGIN(INITIAL); } + YY_BREAK +case 328: +YY_RULE_SETUP +#line 578 "util/configlexer.lex" +{ + LEXOUT(("SQE ")); + if(--num_args == 0) { BEGIN(INITIAL); } + else { BEGIN(val); } + yytext[yyleng - 1] = '\0'; + yylval.str = strdup(yytext); + if(!yylval.str) + yyerror("out of memory"); + return STRING_ARG; +} + YY_BREAK +/* include: directive */ +case 329: +YY_RULE_SETUP +#line 590 "util/configlexer.lex" +{ + LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } + YY_BREAK +case YY_STATE_EOF(include): +#line 592 "util/configlexer.lex" +{ + yyerror("EOF inside include directive"); + BEGIN(inc_prev); +} + YY_BREAK +case 330: +YY_RULE_SETUP +#line 596 "util/configlexer.lex" +{ LEXOUT(("ISP ")); /* ignore */ } + YY_BREAK +case 331: +/* rule 331 can match eol */ +YY_RULE_SETUP +#line 597 "util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++;} + YY_BREAK +case 332: +YY_RULE_SETUP +#line 598 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 333: +YY_RULE_SETUP +#line 599 "util/configlexer.lex" +{ + LEXOUT(("Iunquotedstr(%s) ", yytext)); + config_start_include_glob(yytext, 0); + BEGIN(inc_prev); +} + YY_BREAK +case YY_STATE_EOF(include_quoted): +#line 604 "util/configlexer.lex" +{ + yyerror("EOF inside quoted string"); + BEGIN(inc_prev); +} + YY_BREAK +case 334: +YY_RULE_SETUP +#line 608 "util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 335: +/* rule 335 can match eol */ +YY_RULE_SETUP +#line 609 "util/configlexer.lex" +{ yyerror("newline before \" in include name"); + cfg_parser->line++; BEGIN(inc_prev); } + YY_BREAK +case 336: +YY_RULE_SETUP +#line 611 "util/configlexer.lex" +{ + LEXOUT(("IQE ")); + yytext[yyleng - 1] = '\0'; + config_start_include_glob(yytext, 0); + BEGIN(inc_prev); +} + YY_BREAK +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(val): +#line 617 "util/configlexer.lex" +{ + LEXOUT(("LEXEOF ")); + yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ + if (!config_include_stack) { + yyterminate(); + } else { + int prev_toplevel = inc_toplevel; + fclose(yyin); + config_end_include(); + if(prev_toplevel) return (VAR_FORCE_TOPLEVEL); + } +} + YY_BREAK +/* include-toplevel: directive */ +case 337: +YY_RULE_SETUP +#line 631 "util/configlexer.lex" +{ + LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); +} + YY_BREAK +case YY_STATE_EOF(include_toplevel): +#line 634 "util/configlexer.lex" +{ + yyerror("EOF inside include_toplevel directive"); + BEGIN(inc_prev); +} + YY_BREAK +case 338: +YY_RULE_SETUP +#line 638 "util/configlexer.lex" +{ LEXOUT(("ITSP ")); /* ignore */ } + YY_BREAK +case 339: +/* rule 339 can match eol */ +YY_RULE_SETUP +#line 639 "util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +case 340: +YY_RULE_SETUP +#line 640 "util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 341: +YY_RULE_SETUP +#line 641 "util/configlexer.lex" +{ + LEXOUT(("ITunquotedstr(%s) ", yytext)); + config_start_include_glob(yytext, 1); + BEGIN(inc_prev); + return (VAR_FORCE_TOPLEVEL); +} + YY_BREAK +case YY_STATE_EOF(include_toplevel_quoted): +#line 647 "util/configlexer.lex" +{ + yyerror("EOF inside quoted string"); + BEGIN(inc_prev); +} + YY_BREAK +case 342: +YY_RULE_SETUP +#line 651 "util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 343: +/* rule 343 can match eol */ +YY_RULE_SETUP +#line 652 "util/configlexer.lex" +{ + yyerror("newline before \" in include name"); + cfg_parser->line++; BEGIN(inc_prev); +} + YY_BREAK +case 344: +YY_RULE_SETUP +#line 656 "util/configlexer.lex" +{ + LEXOUT(("ITQE ")); + yytext[yyleng - 1] = '\0'; + config_start_include_glob(yytext, 1); + BEGIN(inc_prev); + return (VAR_FORCE_TOPLEVEL); +} + YY_BREAK +case 345: +YY_RULE_SETUP +#line 664 "util/configlexer.lex" +{ LEXOUT(("unquotedstr(%s) ", yytext)); + if(--num_args == 0) { BEGIN(INITIAL); } + yylval.str = strdup(yytext); return STRING_ARG; } + YY_BREAK +case 346: +YY_RULE_SETUP +#line 668 "util/configlexer.lex" +{ + ub_c_error_msg("unknown keyword '%s'", yytext); + } + YY_BREAK +case 347: +YY_RULE_SETUP +#line 672 "util/configlexer.lex" +{ + ub_c_error_msg("stray '%s'", yytext); + } + YY_BREAK +case 348: +YY_RULE_SETUP +#line 676 "util/configlexer.lex" +ECHO; + YY_BREAK +#line 6121 "" + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( yywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart(yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 3439 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + 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 >= 3439 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 3438); + + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart(yyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( ) ) + return 0; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer(yyin,YY_BUF_SIZE ); + } + + yy_init_buffer(YY_CURRENT_BUFFER,input_file ); + yy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void yy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * + */ + void yy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree((void *) b->yy_ch_buf ); + + yyfree((void *) b ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + yy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void yy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void yypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +{ + + return yy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n, i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) yyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int yyget_lineno (void) +{ + + return yylineno; +} + +/** Get the input stream. + * + */ +FILE *yyget_in (void) +{ + return yyin; +} + +/** Get the output stream. + * + */ +FILE *yyget_out (void) +{ + return yyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t yyget_leng (void) +{ + return yyleng; +} + +/** Get the current token. + * + */ + +char *yyget_text (void) +{ + return yytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void yyset_lineno (int line_number ) +{ + + yylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * in_str ) +{ + yyin = in_str ; +} + +void yyset_out (FILE * out_str ) +{ + yyout = out_str ; +} + +int yyget_debug (void) +{ + return yy_flex_debug; +} + +void yyset_debug (int bdebug ) +{ + yy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = (FILE *) 0; + yyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(); + } + + /* Destroy the stack itself. */ + yyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *yyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void yyfree (void * ptr ) +{ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 676 "util/configlexer.lex" + + + diff --git a/util/configlexer.lex b/util/configlexer.lex index c031fab39..e982463d1 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -237,6 +237,7 @@ outgoing-tcp-mss{COLON} { YDVAR(1, VAR_OUTGOING_TCP_MSS) } tcp-idle-timeout{COLON} { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } max-reuse-tcp-queries{COLON} { YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } tcp-reuse-timeout{COLON} { YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } +tcp-auth-query-timeout{COLON} { YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } edns-tcp-keepalive{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } edns-tcp-keepalive-timeout{COLON} { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } ssl-upstream{COLON} { YDVAR(1, VAR_SSL_UPSTREAM) } diff --git a/util/configparser.c b/util/configparser.c index 3acfe4452..e37e5551b 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Bison implementation for Yacc-like parsers in C +/* Skeleton implementation for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, - Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + the Free Software Foundation; either version 2, or (at your option) + any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,7 +16,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -34,10 +36,6 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -49,7 +47,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.6.4" +#define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -57,406 +55,331 @@ /* Pure parsers. */ #define YYPURE 0 -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 +/* Using locations. */ +#define YYLSP_NEEDED 0 - -/* First part of user prologue. */ -#line 38 "./util/configparser.y" - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "util/configyyrename.h" -#include "util/config_file.h" -#include "util/net_help.h" - -int ub_c_lex(void); -void ub_c_error(const char *message); - -static void validate_respip_action(const char* action); - -/* these need to be global, otherwise they cannot be used inside yacc */ -extern struct config_parser_state* cfg_parser; - -#if 0 -#define OUTYY(s) printf s /* used ONLY when debugging */ -#else -#define OUTYY(s) -#endif - - -#line 100 "util/configparser.c" - -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif -# ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# else -# define YY_NULLPTR ((void*)0) -# endif -# endif - -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ - VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ - VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 369, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 381, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 392, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 393, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 394, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 395, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 396, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 397, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 398, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 399, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 400, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 401, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 402, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 403, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 404, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 405, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 406, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 407, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 408, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 409, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 410, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 411, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 412, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 413, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 414, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 415, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 416, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 417, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 418, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 419, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 420, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 421, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 422, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 423, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 424, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 425, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 426, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 428, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 429, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 430, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 431, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 432, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 439, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 440, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 441, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 442, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 443, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 444, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 445, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 446, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 447, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 448, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 449, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 450, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 451, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 452, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 453, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 454, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 455, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 456, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 457, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 458, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 459, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 460, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 462, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 464, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 466, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 467, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 468, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 469, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 470, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 471, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 472, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 473, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 474, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 475, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 476, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 477, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 478, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 479, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 480, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 481, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 482, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 483, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 484, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 485, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 486, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 487, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 488, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 489, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 490, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 491, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 492, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 493, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 494, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 495, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 496, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 497, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 498, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 499, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 500, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 501, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 502, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 503, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 504, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 506, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 508, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 509, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 510, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 511, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 512, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 513, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 514, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 515, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 516, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 517, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 518, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 519, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 520, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 521, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 522, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 523, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 524, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 525, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 526, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 527, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 528, /* VAR_ZONEFILE */ - VAR_MASTER = 529, /* VAR_MASTER */ - VAR_URL = 530, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 531, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 532, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 533, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 534, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 535, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 536, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 537, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 538, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 539, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 540, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 541, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 542, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 543, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 544, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 545, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 546, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 547, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 548, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 549, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 550, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 551, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 552, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 553, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 554, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 555, /* VAR_RPZ */ - VAR_TAGS = 556, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 557, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 558, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 559, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 560, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 561, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 562, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 563, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 564, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 565, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 566, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 567 /* VAR_ZONEMD_REJECT_ABSENCE */ - }; - typedef enum yytokentype yytoken_kind_t; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + SPACE = 258, + LETTER = 259, + NEWLINE = 260, + COMMENT = 261, + COLON = 262, + ANY = 263, + ZONESTR = 264, + STRING_ARG = 265, + VAR_FORCE_TOPLEVEL = 266, + VAR_SERVER = 267, + VAR_VERBOSITY = 268, + VAR_NUM_THREADS = 269, + VAR_PORT = 270, + VAR_OUTGOING_RANGE = 271, + VAR_INTERFACE = 272, + VAR_PREFER_IP4 = 273, + VAR_DO_IP4 = 274, + VAR_DO_IP6 = 275, + VAR_PREFER_IP6 = 276, + VAR_DO_UDP = 277, + VAR_DO_TCP = 278, + VAR_TCP_MSS = 279, + VAR_OUTGOING_TCP_MSS = 280, + VAR_TCP_IDLE_TIMEOUT = 281, + VAR_EDNS_TCP_KEEPALIVE = 282, + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, + VAR_CHROOT = 284, + VAR_USERNAME = 285, + VAR_DIRECTORY = 286, + VAR_LOGFILE = 287, + VAR_PIDFILE = 288, + VAR_MSG_CACHE_SIZE = 289, + VAR_MSG_CACHE_SLABS = 290, + VAR_NUM_QUERIES_PER_THREAD = 291, + VAR_RRSET_CACHE_SIZE = 292, + VAR_RRSET_CACHE_SLABS = 293, + VAR_OUTGOING_NUM_TCP = 294, + VAR_INFRA_HOST_TTL = 295, + VAR_INFRA_LAME_TTL = 296, + VAR_INFRA_CACHE_SLABS = 297, + VAR_INFRA_CACHE_NUMHOSTS = 298, + VAR_INFRA_CACHE_LAME_SIZE = 299, + VAR_NAME = 300, + VAR_STUB_ZONE = 301, + VAR_STUB_HOST = 302, + VAR_STUB_ADDR = 303, + VAR_TARGET_FETCH_POLICY = 304, + VAR_HARDEN_SHORT_BUFSIZE = 305, + VAR_HARDEN_LARGE_QUERIES = 306, + VAR_FORWARD_ZONE = 307, + VAR_FORWARD_HOST = 308, + VAR_FORWARD_ADDR = 309, + VAR_DO_NOT_QUERY_ADDRESS = 310, + VAR_HIDE_IDENTITY = 311, + VAR_HIDE_VERSION = 312, + VAR_IDENTITY = 313, + VAR_VERSION = 314, + VAR_HARDEN_GLUE = 315, + VAR_MODULE_CONF = 316, + VAR_TRUST_ANCHOR_FILE = 317, + VAR_TRUST_ANCHOR = 318, + VAR_VAL_OVERRIDE_DATE = 319, + VAR_BOGUS_TTL = 320, + VAR_VAL_CLEAN_ADDITIONAL = 321, + VAR_VAL_PERMISSIVE_MODE = 322, + VAR_INCOMING_NUM_TCP = 323, + VAR_MSG_BUFFER_SIZE = 324, + VAR_KEY_CACHE_SIZE = 325, + VAR_KEY_CACHE_SLABS = 326, + VAR_TRUSTED_KEYS_FILE = 327, + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, + VAR_USE_SYSLOG = 329, + VAR_OUTGOING_INTERFACE = 330, + VAR_ROOT_HINTS = 331, + VAR_DO_NOT_QUERY_LOCALHOST = 332, + VAR_CACHE_MAX_TTL = 333, + VAR_HARDEN_DNSSEC_STRIPPED = 334, + VAR_ACCESS_CONTROL = 335, + VAR_LOCAL_ZONE = 336, + VAR_LOCAL_DATA = 337, + VAR_INTERFACE_AUTOMATIC = 338, + VAR_STATISTICS_INTERVAL = 339, + VAR_DO_DAEMONIZE = 340, + VAR_USE_CAPS_FOR_ID = 341, + VAR_STATISTICS_CUMULATIVE = 342, + VAR_OUTGOING_PORT_PERMIT = 343, + VAR_OUTGOING_PORT_AVOID = 344, + VAR_DLV_ANCHOR_FILE = 345, + VAR_DLV_ANCHOR = 346, + VAR_NEG_CACHE_SIZE = 347, + VAR_HARDEN_REFERRAL_PATH = 348, + VAR_PRIVATE_ADDRESS = 349, + VAR_PRIVATE_DOMAIN = 350, + VAR_REMOTE_CONTROL = 351, + VAR_CONTROL_ENABLE = 352, + VAR_CONTROL_INTERFACE = 353, + VAR_CONTROL_PORT = 354, + VAR_SERVER_KEY_FILE = 355, + VAR_SERVER_CERT_FILE = 356, + VAR_CONTROL_KEY_FILE = 357, + VAR_CONTROL_CERT_FILE = 358, + VAR_CONTROL_USE_CERT = 359, + VAR_TCP_REUSE_TIMEOUT = 360, + VAR_MAX_REUSE_TCP_QUERIES = 361, + VAR_EXTENDED_STATISTICS = 362, + VAR_LOCAL_DATA_PTR = 363, + VAR_JOSTLE_TIMEOUT = 364, + VAR_STUB_PRIME = 365, + VAR_UNWANTED_REPLY_THRESHOLD = 366, + VAR_LOG_TIME_ASCII = 367, + VAR_DOMAIN_INSECURE = 368, + VAR_PYTHON = 369, + VAR_PYTHON_SCRIPT = 370, + VAR_VAL_SIG_SKEW_MIN = 371, + VAR_VAL_SIG_SKEW_MAX = 372, + VAR_CACHE_MIN_TTL = 373, + VAR_VAL_LOG_LEVEL = 374, + VAR_AUTO_TRUST_ANCHOR_FILE = 375, + VAR_KEEP_MISSING = 376, + VAR_ADD_HOLDDOWN = 377, + VAR_DEL_HOLDDOWN = 378, + VAR_SO_RCVBUF = 379, + VAR_EDNS_BUFFER_SIZE = 380, + VAR_PREFETCH = 381, + VAR_PREFETCH_KEY = 382, + VAR_SO_SNDBUF = 383, + VAR_SO_REUSEPORT = 384, + VAR_HARDEN_BELOW_NXDOMAIN = 385, + VAR_IGNORE_CD_FLAG = 386, + VAR_LOG_QUERIES = 387, + VAR_LOG_REPLIES = 388, + VAR_LOG_LOCAL_ACTIONS = 389, + VAR_TCP_UPSTREAM = 390, + VAR_SSL_UPSTREAM = 391, + VAR_TCP_AUTH_QUERY_TIMEOUT = 392, + VAR_SSL_SERVICE_KEY = 393, + VAR_SSL_SERVICE_PEM = 394, + VAR_SSL_PORT = 395, + VAR_FORWARD_FIRST = 396, + VAR_STUB_SSL_UPSTREAM = 397, + VAR_FORWARD_SSL_UPSTREAM = 398, + VAR_TLS_CERT_BUNDLE = 399, + VAR_HTTPS_PORT = 400, + VAR_HTTP_ENDPOINT = 401, + VAR_HTTP_MAX_STREAMS = 402, + VAR_HTTP_QUERY_BUFFER_SIZE = 403, + VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, + VAR_HTTP_NODELAY = 405, + VAR_HTTP_NOTLS_DOWNSTREAM = 406, + VAR_STUB_FIRST = 407, + VAR_MINIMAL_RESPONSES = 408, + VAR_RRSET_ROUNDROBIN = 409, + VAR_MAX_UDP_SIZE = 410, + VAR_DELAY_CLOSE = 411, + VAR_UDP_CONNECT = 412, + VAR_UNBLOCK_LAN_ZONES = 413, + VAR_INSECURE_LAN_ZONES = 414, + VAR_INFRA_CACHE_MIN_RTT = 415, + VAR_INFRA_KEEP_PROBING = 416, + VAR_DNS64_PREFIX = 417, + VAR_DNS64_SYNTHALL = 418, + VAR_DNS64_IGNORE_AAAA = 419, + VAR_DNSTAP = 420, + VAR_DNSTAP_ENABLE = 421, + VAR_DNSTAP_SOCKET_PATH = 422, + VAR_DNSTAP_IP = 423, + VAR_DNSTAP_TLS = 424, + VAR_DNSTAP_TLS_SERVER_NAME = 425, + VAR_DNSTAP_TLS_CERT_BUNDLE = 426, + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, + VAR_DNSTAP_SEND_IDENTITY = 429, + VAR_DNSTAP_SEND_VERSION = 430, + VAR_DNSTAP_BIDIRECTIONAL = 431, + VAR_DNSTAP_IDENTITY = 432, + VAR_DNSTAP_VERSION = 433, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, + VAR_RESPONSE_IP_TAG = 440, + VAR_RESPONSE_IP = 441, + VAR_RESPONSE_IP_DATA = 442, + VAR_HARDEN_ALGO_DOWNGRADE = 443, + VAR_IP_TRANSPARENT = 444, + VAR_IP_DSCP = 445, + VAR_DISABLE_DNSSEC_LAME_CHECK = 446, + VAR_IP_RATELIMIT = 447, + VAR_IP_RATELIMIT_SLABS = 448, + VAR_IP_RATELIMIT_SIZE = 449, + VAR_RATELIMIT = 450, + VAR_RATELIMIT_SLABS = 451, + VAR_RATELIMIT_SIZE = 452, + VAR_RATELIMIT_FOR_DOMAIN = 453, + VAR_RATELIMIT_BELOW_DOMAIN = 454, + VAR_IP_RATELIMIT_FACTOR = 455, + VAR_RATELIMIT_FACTOR = 456, + VAR_SEND_CLIENT_SUBNET = 457, + VAR_CLIENT_SUBNET_ZONE = 458, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, + VAR_CLIENT_SUBNET_OPCODE = 460, + VAR_MAX_CLIENT_SUBNET_IPV4 = 461, + VAR_MAX_CLIENT_SUBNET_IPV6 = 462, + VAR_MIN_CLIENT_SUBNET_IPV4 = 463, + VAR_MIN_CLIENT_SUBNET_IPV6 = 464, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, + VAR_CAPS_WHITELIST = 467, + VAR_CACHE_MAX_NEGATIVE_TTL = 468, + VAR_PERMIT_SMALL_HOLDDOWN = 469, + VAR_QNAME_MINIMISATION = 470, + VAR_QNAME_MINIMISATION_STRICT = 471, + VAR_IP_FREEBIND = 472, + VAR_DEFINE_TAG = 473, + VAR_LOCAL_ZONE_TAG = 474, + VAR_ACCESS_CONTROL_TAG = 475, + VAR_LOCAL_ZONE_OVERRIDE = 476, + VAR_ACCESS_CONTROL_TAG_ACTION = 477, + VAR_ACCESS_CONTROL_TAG_DATA = 478, + VAR_VIEW = 479, + VAR_ACCESS_CONTROL_VIEW = 480, + VAR_VIEW_FIRST = 481, + VAR_SERVE_EXPIRED = 482, + VAR_SERVE_EXPIRED_TTL = 483, + VAR_SERVE_EXPIRED_TTL_RESET = 484, + VAR_SERVE_EXPIRED_REPLY_TTL = 485, + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, + VAR_SERVE_ORIGINAL_TTL = 487, + VAR_FAKE_DSA = 488, + VAR_FAKE_SHA1 = 489, + VAR_LOG_IDENTITY = 490, + VAR_HIDE_TRUSTANCHOR = 491, + VAR_TRUST_ANCHOR_SIGNALING = 492, + VAR_AGGRESSIVE_NSEC = 493, + VAR_USE_SYSTEMD = 494, + VAR_SHM_ENABLE = 495, + VAR_SHM_KEY = 496, + VAR_ROOT_KEY_SENTINEL = 497, + VAR_DNSCRYPT = 498, + VAR_DNSCRYPT_ENABLE = 499, + VAR_DNSCRYPT_PORT = 500, + VAR_DNSCRYPT_PROVIDER = 501, + VAR_DNSCRYPT_SECRET_KEY = 502, + VAR_DNSCRYPT_PROVIDER_CERT = 503, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, + VAR_PAD_RESPONSES = 509, + VAR_PAD_RESPONSES_BLOCK_SIZE = 510, + VAR_PAD_QUERIES = 511, + VAR_PAD_QUERIES_BLOCK_SIZE = 512, + VAR_IPSECMOD_ENABLED = 513, + VAR_IPSECMOD_HOOK = 514, + VAR_IPSECMOD_IGNORE_BOGUS = 515, + VAR_IPSECMOD_MAX_TTL = 516, + VAR_IPSECMOD_WHITELIST = 517, + VAR_IPSECMOD_STRICT = 518, + VAR_CACHEDB = 519, + VAR_CACHEDB_BACKEND = 520, + VAR_CACHEDB_SECRETSEED = 521, + VAR_CACHEDB_REDISHOST = 522, + VAR_CACHEDB_REDISPORT = 523, + VAR_CACHEDB_REDISTIMEOUT = 524, + VAR_CACHEDB_REDISEXPIRERECORDS = 525, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, + VAR_FOR_UPSTREAM = 527, + VAR_AUTH_ZONE = 528, + VAR_ZONEFILE = 529, + VAR_MASTER = 530, + VAR_URL = 531, + VAR_FOR_DOWNSTREAM = 532, + VAR_FALLBACK_ENABLED = 533, + VAR_TLS_ADDITIONAL_PORT = 534, + VAR_LOW_RTT = 535, + VAR_LOW_RTT_PERMIL = 536, + VAR_FAST_SERVER_PERMIL = 537, + VAR_FAST_SERVER_NUM = 538, + VAR_ALLOW_NOTIFY = 539, + VAR_TLS_WIN_CERT = 540, + VAR_TCP_CONNECTION_LIMIT = 541, + VAR_FORWARD_NO_CACHE = 542, + VAR_STUB_NO_CACHE = 543, + VAR_LOG_SERVFAIL = 544, + VAR_DENY_ANY = 545, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, + VAR_LOG_TAG_QUERYREPLY = 547, + VAR_STREAM_WAIT_SIZE = 548, + VAR_TLS_CIPHERS = 549, + VAR_TLS_CIPHERSUITES = 550, + VAR_TLS_USE_SNI = 551, + VAR_IPSET = 552, + VAR_IPSET_NAME_V4 = 553, + VAR_IPSET_NAME_V6 = 554, + VAR_TLS_SESSION_TICKET_KEYS = 555, + VAR_RPZ = 556, + VAR_TAGS = 557, + VAR_RPZ_ACTION_OVERRIDE = 558, + VAR_RPZ_CNAME_OVERRIDE = 559, + VAR_RPZ_LOG = 560, + VAR_RPZ_LOG_NAME = 561, + VAR_DYNLIB = 562, + VAR_DYNLIB_FILE = 563, + VAR_EDNS_CLIENT_STRING = 564, + VAR_EDNS_CLIENT_STRING_OPCODE = 565, + VAR_NSID = 566, + VAR_ZONEMD_PERMISSIVE_MODE = 567, + VAR_ZONEMD_REJECT_ABSENCE = 568 + }; #endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 +/* Tokens. */ #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@ -591,939 +514,287 @@ extern int yydebug; #define VAR_LOG_LOCAL_ACTIONS 389 #define VAR_TCP_UPSTREAM 390 #define VAR_SSL_UPSTREAM 391 -#define VAR_SSL_SERVICE_KEY 392 -#define VAR_SSL_SERVICE_PEM 393 -#define VAR_SSL_PORT 394 -#define VAR_FORWARD_FIRST 395 -#define VAR_STUB_SSL_UPSTREAM 396 -#define VAR_FORWARD_SSL_UPSTREAM 397 -#define VAR_TLS_CERT_BUNDLE 398 -#define VAR_HTTPS_PORT 399 -#define VAR_HTTP_ENDPOINT 400 -#define VAR_HTTP_MAX_STREAMS 401 -#define VAR_HTTP_QUERY_BUFFER_SIZE 402 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 403 -#define VAR_HTTP_NODELAY 404 -#define VAR_HTTP_NOTLS_DOWNSTREAM 405 -#define VAR_STUB_FIRST 406 -#define VAR_MINIMAL_RESPONSES 407 -#define VAR_RRSET_ROUNDROBIN 408 -#define VAR_MAX_UDP_SIZE 409 -#define VAR_DELAY_CLOSE 410 -#define VAR_UDP_CONNECT 411 -#define VAR_UNBLOCK_LAN_ZONES 412 -#define VAR_INSECURE_LAN_ZONES 413 -#define VAR_INFRA_CACHE_MIN_RTT 414 -#define VAR_INFRA_KEEP_PROBING 415 -#define VAR_DNS64_PREFIX 416 -#define VAR_DNS64_SYNTHALL 417 -#define VAR_DNS64_IGNORE_AAAA 418 -#define VAR_DNSTAP 419 -#define VAR_DNSTAP_ENABLE 420 -#define VAR_DNSTAP_SOCKET_PATH 421 -#define VAR_DNSTAP_IP 422 -#define VAR_DNSTAP_TLS 423 -#define VAR_DNSTAP_TLS_SERVER_NAME 424 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 425 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 426 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 427 -#define VAR_DNSTAP_SEND_IDENTITY 428 -#define VAR_DNSTAP_SEND_VERSION 429 -#define VAR_DNSTAP_BIDIRECTIONAL 430 -#define VAR_DNSTAP_IDENTITY 431 -#define VAR_DNSTAP_VERSION 432 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 436 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 437 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 438 -#define VAR_RESPONSE_IP_TAG 439 -#define VAR_RESPONSE_IP 440 -#define VAR_RESPONSE_IP_DATA 441 -#define VAR_HARDEN_ALGO_DOWNGRADE 442 -#define VAR_IP_TRANSPARENT 443 -#define VAR_IP_DSCP 444 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 445 -#define VAR_IP_RATELIMIT 446 -#define VAR_IP_RATELIMIT_SLABS 447 -#define VAR_IP_RATELIMIT_SIZE 448 -#define VAR_RATELIMIT 449 -#define VAR_RATELIMIT_SLABS 450 -#define VAR_RATELIMIT_SIZE 451 -#define VAR_RATELIMIT_FOR_DOMAIN 452 -#define VAR_RATELIMIT_BELOW_DOMAIN 453 -#define VAR_IP_RATELIMIT_FACTOR 454 -#define VAR_RATELIMIT_FACTOR 455 -#define VAR_SEND_CLIENT_SUBNET 456 -#define VAR_CLIENT_SUBNET_ZONE 457 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 458 -#define VAR_CLIENT_SUBNET_OPCODE 459 -#define VAR_MAX_CLIENT_SUBNET_IPV4 460 -#define VAR_MAX_CLIENT_SUBNET_IPV6 461 -#define VAR_MIN_CLIENT_SUBNET_IPV4 462 -#define VAR_MIN_CLIENT_SUBNET_IPV6 463 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 464 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 465 -#define VAR_CAPS_WHITELIST 466 -#define VAR_CACHE_MAX_NEGATIVE_TTL 467 -#define VAR_PERMIT_SMALL_HOLDDOWN 468 -#define VAR_QNAME_MINIMISATION 469 -#define VAR_QNAME_MINIMISATION_STRICT 470 -#define VAR_IP_FREEBIND 471 -#define VAR_DEFINE_TAG 472 -#define VAR_LOCAL_ZONE_TAG 473 -#define VAR_ACCESS_CONTROL_TAG 474 -#define VAR_LOCAL_ZONE_OVERRIDE 475 -#define VAR_ACCESS_CONTROL_TAG_ACTION 476 -#define VAR_ACCESS_CONTROL_TAG_DATA 477 -#define VAR_VIEW 478 -#define VAR_ACCESS_CONTROL_VIEW 479 -#define VAR_VIEW_FIRST 480 -#define VAR_SERVE_EXPIRED 481 -#define VAR_SERVE_EXPIRED_TTL 482 -#define VAR_SERVE_EXPIRED_TTL_RESET 483 -#define VAR_SERVE_EXPIRED_REPLY_TTL 484 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 485 -#define VAR_SERVE_ORIGINAL_TTL 486 -#define VAR_FAKE_DSA 487 -#define VAR_FAKE_SHA1 488 -#define VAR_LOG_IDENTITY 489 -#define VAR_HIDE_TRUSTANCHOR 490 -#define VAR_TRUST_ANCHOR_SIGNALING 491 -#define VAR_AGGRESSIVE_NSEC 492 -#define VAR_USE_SYSTEMD 493 -#define VAR_SHM_ENABLE 494 -#define VAR_SHM_KEY 495 -#define VAR_ROOT_KEY_SENTINEL 496 -#define VAR_DNSCRYPT 497 -#define VAR_DNSCRYPT_ENABLE 498 -#define VAR_DNSCRYPT_PORT 499 -#define VAR_DNSCRYPT_PROVIDER 500 -#define VAR_DNSCRYPT_SECRET_KEY 501 -#define VAR_DNSCRYPT_PROVIDER_CERT 502 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 503 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 504 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 505 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 506 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 507 -#define VAR_PAD_RESPONSES 508 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 509 -#define VAR_PAD_QUERIES 510 -#define VAR_PAD_QUERIES_BLOCK_SIZE 511 -#define VAR_IPSECMOD_ENABLED 512 -#define VAR_IPSECMOD_HOOK 513 -#define VAR_IPSECMOD_IGNORE_BOGUS 514 -#define VAR_IPSECMOD_MAX_TTL 515 -#define VAR_IPSECMOD_WHITELIST 516 -#define VAR_IPSECMOD_STRICT 517 -#define VAR_CACHEDB 518 -#define VAR_CACHEDB_BACKEND 519 -#define VAR_CACHEDB_SECRETSEED 520 -#define VAR_CACHEDB_REDISHOST 521 -#define VAR_CACHEDB_REDISPORT 522 -#define VAR_CACHEDB_REDISTIMEOUT 523 -#define VAR_CACHEDB_REDISEXPIRERECORDS 524 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 525 -#define VAR_FOR_UPSTREAM 526 -#define VAR_AUTH_ZONE 527 -#define VAR_ZONEFILE 528 -#define VAR_MASTER 529 -#define VAR_URL 530 -#define VAR_FOR_DOWNSTREAM 531 -#define VAR_FALLBACK_ENABLED 532 -#define VAR_TLS_ADDITIONAL_PORT 533 -#define VAR_LOW_RTT 534 -#define VAR_LOW_RTT_PERMIL 535 -#define VAR_FAST_SERVER_PERMIL 536 -#define VAR_FAST_SERVER_NUM 537 -#define VAR_ALLOW_NOTIFY 538 -#define VAR_TLS_WIN_CERT 539 -#define VAR_TCP_CONNECTION_LIMIT 540 -#define VAR_FORWARD_NO_CACHE 541 -#define VAR_STUB_NO_CACHE 542 -#define VAR_LOG_SERVFAIL 543 -#define VAR_DENY_ANY 544 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 545 -#define VAR_LOG_TAG_QUERYREPLY 546 -#define VAR_STREAM_WAIT_SIZE 547 -#define VAR_TLS_CIPHERS 548 -#define VAR_TLS_CIPHERSUITES 549 -#define VAR_TLS_USE_SNI 550 -#define VAR_IPSET 551 -#define VAR_IPSET_NAME_V4 552 -#define VAR_IPSET_NAME_V6 553 -#define VAR_TLS_SESSION_TICKET_KEYS 554 -#define VAR_RPZ 555 -#define VAR_TAGS 556 -#define VAR_RPZ_ACTION_OVERRIDE 557 -#define VAR_RPZ_CNAME_OVERRIDE 558 -#define VAR_RPZ_LOG 559 -#define VAR_RPZ_LOG_NAME 560 -#define VAR_DYNLIB 561 -#define VAR_DYNLIB_FILE 562 -#define VAR_EDNS_CLIENT_STRING 563 -#define VAR_EDNS_CLIENT_STRING_OPCODE 564 -#define VAR_NSID 565 -#define VAR_ZONEMD_PERMISSIVE_MODE 566 -#define VAR_ZONEMD_REJECT_ABSENCE 567 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 392 +#define VAR_SSL_SERVICE_KEY 393 +#define VAR_SSL_SERVICE_PEM 394 +#define VAR_SSL_PORT 395 +#define VAR_FORWARD_FIRST 396 +#define VAR_STUB_SSL_UPSTREAM 397 +#define VAR_FORWARD_SSL_UPSTREAM 398 +#define VAR_TLS_CERT_BUNDLE 399 +#define VAR_HTTPS_PORT 400 +#define VAR_HTTP_ENDPOINT 401 +#define VAR_HTTP_MAX_STREAMS 402 +#define VAR_HTTP_QUERY_BUFFER_SIZE 403 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 404 +#define VAR_HTTP_NODELAY 405 +#define VAR_HTTP_NOTLS_DOWNSTREAM 406 +#define VAR_STUB_FIRST 407 +#define VAR_MINIMAL_RESPONSES 408 +#define VAR_RRSET_ROUNDROBIN 409 +#define VAR_MAX_UDP_SIZE 410 +#define VAR_DELAY_CLOSE 411 +#define VAR_UDP_CONNECT 412 +#define VAR_UNBLOCK_LAN_ZONES 413 +#define VAR_INSECURE_LAN_ZONES 414 +#define VAR_INFRA_CACHE_MIN_RTT 415 +#define VAR_INFRA_KEEP_PROBING 416 +#define VAR_DNS64_PREFIX 417 +#define VAR_DNS64_SYNTHALL 418 +#define VAR_DNS64_IGNORE_AAAA 419 +#define VAR_DNSTAP 420 +#define VAR_DNSTAP_ENABLE 421 +#define VAR_DNSTAP_SOCKET_PATH 422 +#define VAR_DNSTAP_IP 423 +#define VAR_DNSTAP_TLS 424 +#define VAR_DNSTAP_TLS_SERVER_NAME 425 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 426 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 427 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 428 +#define VAR_DNSTAP_SEND_IDENTITY 429 +#define VAR_DNSTAP_SEND_VERSION 430 +#define VAR_DNSTAP_BIDIRECTIONAL 431 +#define VAR_DNSTAP_IDENTITY 432 +#define VAR_DNSTAP_VERSION 433 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 434 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 435 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 436 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 437 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 438 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 439 +#define VAR_RESPONSE_IP_TAG 440 +#define VAR_RESPONSE_IP 441 +#define VAR_RESPONSE_IP_DATA 442 +#define VAR_HARDEN_ALGO_DOWNGRADE 443 +#define VAR_IP_TRANSPARENT 444 +#define VAR_IP_DSCP 445 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 446 +#define VAR_IP_RATELIMIT 447 +#define VAR_IP_RATELIMIT_SLABS 448 +#define VAR_IP_RATELIMIT_SIZE 449 +#define VAR_RATELIMIT 450 +#define VAR_RATELIMIT_SLABS 451 +#define VAR_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT_FOR_DOMAIN 453 +#define VAR_RATELIMIT_BELOW_DOMAIN 454 +#define VAR_IP_RATELIMIT_FACTOR 455 +#define VAR_RATELIMIT_FACTOR 456 +#define VAR_SEND_CLIENT_SUBNET 457 +#define VAR_CLIENT_SUBNET_ZONE 458 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 459 +#define VAR_CLIENT_SUBNET_OPCODE 460 +#define VAR_MAX_CLIENT_SUBNET_IPV4 461 +#define VAR_MAX_CLIENT_SUBNET_IPV6 462 +#define VAR_MIN_CLIENT_SUBNET_IPV4 463 +#define VAR_MIN_CLIENT_SUBNET_IPV6 464 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 465 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 466 +#define VAR_CAPS_WHITELIST 467 +#define VAR_CACHE_MAX_NEGATIVE_TTL 468 +#define VAR_PERMIT_SMALL_HOLDDOWN 469 +#define VAR_QNAME_MINIMISATION 470 +#define VAR_QNAME_MINIMISATION_STRICT 471 +#define VAR_IP_FREEBIND 472 +#define VAR_DEFINE_TAG 473 +#define VAR_LOCAL_ZONE_TAG 474 +#define VAR_ACCESS_CONTROL_TAG 475 +#define VAR_LOCAL_ZONE_OVERRIDE 476 +#define VAR_ACCESS_CONTROL_TAG_ACTION 477 +#define VAR_ACCESS_CONTROL_TAG_DATA 478 +#define VAR_VIEW 479 +#define VAR_ACCESS_CONTROL_VIEW 480 +#define VAR_VIEW_FIRST 481 +#define VAR_SERVE_EXPIRED 482 +#define VAR_SERVE_EXPIRED_TTL 483 +#define VAR_SERVE_EXPIRED_TTL_RESET 484 +#define VAR_SERVE_EXPIRED_REPLY_TTL 485 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 486 +#define VAR_SERVE_ORIGINAL_TTL 487 +#define VAR_FAKE_DSA 488 +#define VAR_FAKE_SHA1 489 +#define VAR_LOG_IDENTITY 490 +#define VAR_HIDE_TRUSTANCHOR 491 +#define VAR_TRUST_ANCHOR_SIGNALING 492 +#define VAR_AGGRESSIVE_NSEC 493 +#define VAR_USE_SYSTEMD 494 +#define VAR_SHM_ENABLE 495 +#define VAR_SHM_KEY 496 +#define VAR_ROOT_KEY_SENTINEL 497 +#define VAR_DNSCRYPT 498 +#define VAR_DNSCRYPT_ENABLE 499 +#define VAR_DNSCRYPT_PORT 500 +#define VAR_DNSCRYPT_PROVIDER 501 +#define VAR_DNSCRYPT_SECRET_KEY 502 +#define VAR_DNSCRYPT_PROVIDER_CERT 503 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 504 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 505 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 506 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 507 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 508 +#define VAR_PAD_RESPONSES 509 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 510 +#define VAR_PAD_QUERIES 511 +#define VAR_PAD_QUERIES_BLOCK_SIZE 512 +#define VAR_IPSECMOD_ENABLED 513 +#define VAR_IPSECMOD_HOOK 514 +#define VAR_IPSECMOD_IGNORE_BOGUS 515 +#define VAR_IPSECMOD_MAX_TTL 516 +#define VAR_IPSECMOD_WHITELIST 517 +#define VAR_IPSECMOD_STRICT 518 +#define VAR_CACHEDB 519 +#define VAR_CACHEDB_BACKEND 520 +#define VAR_CACHEDB_SECRETSEED 521 +#define VAR_CACHEDB_REDISHOST 522 +#define VAR_CACHEDB_REDISPORT 523 +#define VAR_CACHEDB_REDISTIMEOUT 524 +#define VAR_CACHEDB_REDISEXPIRERECORDS 525 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 526 +#define VAR_FOR_UPSTREAM 527 +#define VAR_AUTH_ZONE 528 +#define VAR_ZONEFILE 529 +#define VAR_MASTER 530 +#define VAR_URL 531 +#define VAR_FOR_DOWNSTREAM 532 +#define VAR_FALLBACK_ENABLED 533 +#define VAR_TLS_ADDITIONAL_PORT 534 +#define VAR_LOW_RTT 535 +#define VAR_LOW_RTT_PERMIL 536 +#define VAR_FAST_SERVER_PERMIL 537 +#define VAR_FAST_SERVER_NUM 538 +#define VAR_ALLOW_NOTIFY 539 +#define VAR_TLS_WIN_CERT 540 +#define VAR_TCP_CONNECTION_LIMIT 541 +#define VAR_FORWARD_NO_CACHE 542 +#define VAR_STUB_NO_CACHE 543 +#define VAR_LOG_SERVFAIL 544 +#define VAR_DENY_ANY 545 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 546 +#define VAR_LOG_TAG_QUERYREPLY 547 +#define VAR_STREAM_WAIT_SIZE 548 +#define VAR_TLS_CIPHERS 549 +#define VAR_TLS_CIPHERSUITES 550 +#define VAR_TLS_USE_SNI 551 +#define VAR_IPSET 552 +#define VAR_IPSET_NAME_V4 553 +#define VAR_IPSET_NAME_V6 554 +#define VAR_TLS_SESSION_TICKET_KEYS 555 +#define VAR_RPZ 556 +#define VAR_TAGS 557 +#define VAR_RPZ_ACTION_OVERRIDE 558 +#define VAR_RPZ_CNAME_OVERRIDE 559 +#define VAR_RPZ_LOG 560 +#define VAR_RPZ_LOG_NAME 561 +#define VAR_DYNLIB 562 +#define VAR_DYNLIB_FILE 563 +#define VAR_EDNS_CLIENT_STRING 564 +#define VAR_EDNS_CLIENT_STRING_OPCODE 565 +#define VAR_NSID 566 +#define VAR_ZONEMD_PERMISSIVE_MODE 567 +#define VAR_ZONEMD_REJECT_ABSENCE 568 -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 66 "./util/configparser.y" - char* str; -#line 780 "util/configparser.c" -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 +/* Copy the first part of user declarations. */ +#line 38 "util/configparser.y" + +#include "config.h" + +#include +#include +#include +#include +#include + +#include "util/configyyrename.h" +#include "util/config_file.h" +#include "util/net_help.h" + +int ub_c_lex(void); +void ub_c_error(const char *message); + +static void validate_respip_action(const char* action); + +/* these need to be global, otherwise they cannot be used inside yacc */ +extern struct config_parser_state* cfg_parser; + +#if 0 +#define OUTYY(s) printf s /* used ONLY when debugging */ +#else +#define OUTYY(s) #endif -extern YYSTYPE yylval; -int yyparse (void); +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ -/* Symbol kind. */ -enum yysymbol_kind_t +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE +#line 66 "util/configparser.y" { - YYSYMBOL_YYEMPTY = -2, - YYSYMBOL_YYEOF = 0, /* "end of file" */ - YYSYMBOL_YYerror = 1, /* error */ - YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ - YYSYMBOL_SPACE = 3, /* SPACE */ - YYSYMBOL_LETTER = 4, /* LETTER */ - YYSYMBOL_NEWLINE = 5, /* NEWLINE */ - YYSYMBOL_COMMENT = 6, /* COMMENT */ - YYSYMBOL_COLON = 7, /* COLON */ - YYSYMBOL_ANY = 8, /* ANY */ - YYSYMBOL_ZONESTR = 9, /* ZONESTR */ - YYSYMBOL_STRING_ARG = 10, /* STRING_ARG */ - YYSYMBOL_VAR_FORCE_TOPLEVEL = 11, /* VAR_FORCE_TOPLEVEL */ - YYSYMBOL_VAR_SERVER = 12, /* VAR_SERVER */ - YYSYMBOL_VAR_VERBOSITY = 13, /* VAR_VERBOSITY */ - YYSYMBOL_VAR_NUM_THREADS = 14, /* VAR_NUM_THREADS */ - YYSYMBOL_VAR_PORT = 15, /* VAR_PORT */ - YYSYMBOL_VAR_OUTGOING_RANGE = 16, /* VAR_OUTGOING_RANGE */ - YYSYMBOL_VAR_INTERFACE = 17, /* VAR_INTERFACE */ - YYSYMBOL_VAR_PREFER_IP4 = 18, /* VAR_PREFER_IP4 */ - YYSYMBOL_VAR_DO_IP4 = 19, /* VAR_DO_IP4 */ - YYSYMBOL_VAR_DO_IP6 = 20, /* VAR_DO_IP6 */ - YYSYMBOL_VAR_PREFER_IP6 = 21, /* VAR_PREFER_IP6 */ - YYSYMBOL_VAR_DO_UDP = 22, /* VAR_DO_UDP */ - YYSYMBOL_VAR_DO_TCP = 23, /* VAR_DO_TCP */ - YYSYMBOL_VAR_TCP_MSS = 24, /* VAR_TCP_MSS */ - YYSYMBOL_VAR_OUTGOING_TCP_MSS = 25, /* VAR_OUTGOING_TCP_MSS */ - YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 26, /* VAR_TCP_IDLE_TIMEOUT */ - YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 27, /* VAR_EDNS_TCP_KEEPALIVE */ - YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 28, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - YYSYMBOL_VAR_CHROOT = 29, /* VAR_CHROOT */ - YYSYMBOL_VAR_USERNAME = 30, /* VAR_USERNAME */ - YYSYMBOL_VAR_DIRECTORY = 31, /* VAR_DIRECTORY */ - YYSYMBOL_VAR_LOGFILE = 32, /* VAR_LOGFILE */ - YYSYMBOL_VAR_PIDFILE = 33, /* VAR_PIDFILE */ - YYSYMBOL_VAR_MSG_CACHE_SIZE = 34, /* VAR_MSG_CACHE_SIZE */ - YYSYMBOL_VAR_MSG_CACHE_SLABS = 35, /* VAR_MSG_CACHE_SLABS */ - YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 36, /* VAR_NUM_QUERIES_PER_THREAD */ - YYSYMBOL_VAR_RRSET_CACHE_SIZE = 37, /* VAR_RRSET_CACHE_SIZE */ - YYSYMBOL_VAR_RRSET_CACHE_SLABS = 38, /* VAR_RRSET_CACHE_SLABS */ - YYSYMBOL_VAR_OUTGOING_NUM_TCP = 39, /* VAR_OUTGOING_NUM_TCP */ - YYSYMBOL_VAR_INFRA_HOST_TTL = 40, /* VAR_INFRA_HOST_TTL */ - YYSYMBOL_VAR_INFRA_LAME_TTL = 41, /* VAR_INFRA_LAME_TTL */ - YYSYMBOL_VAR_INFRA_CACHE_SLABS = 42, /* VAR_INFRA_CACHE_SLABS */ - YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 43, /* VAR_INFRA_CACHE_NUMHOSTS */ - YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 44, /* VAR_INFRA_CACHE_LAME_SIZE */ - YYSYMBOL_VAR_NAME = 45, /* VAR_NAME */ - YYSYMBOL_VAR_STUB_ZONE = 46, /* VAR_STUB_ZONE */ - YYSYMBOL_VAR_STUB_HOST = 47, /* VAR_STUB_HOST */ - YYSYMBOL_VAR_STUB_ADDR = 48, /* VAR_STUB_ADDR */ - YYSYMBOL_VAR_TARGET_FETCH_POLICY = 49, /* VAR_TARGET_FETCH_POLICY */ - YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 50, /* VAR_HARDEN_SHORT_BUFSIZE */ - YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 51, /* VAR_HARDEN_LARGE_QUERIES */ - YYSYMBOL_VAR_FORWARD_ZONE = 52, /* VAR_FORWARD_ZONE */ - YYSYMBOL_VAR_FORWARD_HOST = 53, /* VAR_FORWARD_HOST */ - YYSYMBOL_VAR_FORWARD_ADDR = 54, /* VAR_FORWARD_ADDR */ - YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 55, /* VAR_DO_NOT_QUERY_ADDRESS */ - YYSYMBOL_VAR_HIDE_IDENTITY = 56, /* VAR_HIDE_IDENTITY */ - YYSYMBOL_VAR_HIDE_VERSION = 57, /* VAR_HIDE_VERSION */ - YYSYMBOL_VAR_IDENTITY = 58, /* VAR_IDENTITY */ - YYSYMBOL_VAR_VERSION = 59, /* VAR_VERSION */ - YYSYMBOL_VAR_HARDEN_GLUE = 60, /* VAR_HARDEN_GLUE */ - YYSYMBOL_VAR_MODULE_CONF = 61, /* VAR_MODULE_CONF */ - YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 62, /* VAR_TRUST_ANCHOR_FILE */ - YYSYMBOL_VAR_TRUST_ANCHOR = 63, /* VAR_TRUST_ANCHOR */ - YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 64, /* VAR_VAL_OVERRIDE_DATE */ - YYSYMBOL_VAR_BOGUS_TTL = 65, /* VAR_BOGUS_TTL */ - YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 66, /* VAR_VAL_CLEAN_ADDITIONAL */ - YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 67, /* VAR_VAL_PERMISSIVE_MODE */ - YYSYMBOL_VAR_INCOMING_NUM_TCP = 68, /* VAR_INCOMING_NUM_TCP */ - YYSYMBOL_VAR_MSG_BUFFER_SIZE = 69, /* VAR_MSG_BUFFER_SIZE */ - YYSYMBOL_VAR_KEY_CACHE_SIZE = 70, /* VAR_KEY_CACHE_SIZE */ - YYSYMBOL_VAR_KEY_CACHE_SLABS = 71, /* VAR_KEY_CACHE_SLABS */ - YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 72, /* VAR_TRUSTED_KEYS_FILE */ - YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 73, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - YYSYMBOL_VAR_USE_SYSLOG = 74, /* VAR_USE_SYSLOG */ - YYSYMBOL_VAR_OUTGOING_INTERFACE = 75, /* VAR_OUTGOING_INTERFACE */ - YYSYMBOL_VAR_ROOT_HINTS = 76, /* VAR_ROOT_HINTS */ - YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 77, /* VAR_DO_NOT_QUERY_LOCALHOST */ - YYSYMBOL_VAR_CACHE_MAX_TTL = 78, /* VAR_CACHE_MAX_TTL */ - YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 79, /* VAR_HARDEN_DNSSEC_STRIPPED */ - YYSYMBOL_VAR_ACCESS_CONTROL = 80, /* VAR_ACCESS_CONTROL */ - YYSYMBOL_VAR_LOCAL_ZONE = 81, /* VAR_LOCAL_ZONE */ - YYSYMBOL_VAR_LOCAL_DATA = 82, /* VAR_LOCAL_DATA */ - YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 83, /* VAR_INTERFACE_AUTOMATIC */ - YYSYMBOL_VAR_STATISTICS_INTERVAL = 84, /* VAR_STATISTICS_INTERVAL */ - YYSYMBOL_VAR_DO_DAEMONIZE = 85, /* VAR_DO_DAEMONIZE */ - YYSYMBOL_VAR_USE_CAPS_FOR_ID = 86, /* VAR_USE_CAPS_FOR_ID */ - YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 87, /* VAR_STATISTICS_CUMULATIVE */ - YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 88, /* VAR_OUTGOING_PORT_PERMIT */ - YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 89, /* VAR_OUTGOING_PORT_AVOID */ - YYSYMBOL_VAR_DLV_ANCHOR_FILE = 90, /* VAR_DLV_ANCHOR_FILE */ - YYSYMBOL_VAR_DLV_ANCHOR = 91, /* VAR_DLV_ANCHOR */ - YYSYMBOL_VAR_NEG_CACHE_SIZE = 92, /* VAR_NEG_CACHE_SIZE */ - YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 93, /* VAR_HARDEN_REFERRAL_PATH */ - YYSYMBOL_VAR_PRIVATE_ADDRESS = 94, /* VAR_PRIVATE_ADDRESS */ - YYSYMBOL_VAR_PRIVATE_DOMAIN = 95, /* VAR_PRIVATE_DOMAIN */ - YYSYMBOL_VAR_REMOTE_CONTROL = 96, /* VAR_REMOTE_CONTROL */ - YYSYMBOL_VAR_CONTROL_ENABLE = 97, /* VAR_CONTROL_ENABLE */ - YYSYMBOL_VAR_CONTROL_INTERFACE = 98, /* VAR_CONTROL_INTERFACE */ - YYSYMBOL_VAR_CONTROL_PORT = 99, /* VAR_CONTROL_PORT */ - YYSYMBOL_VAR_SERVER_KEY_FILE = 100, /* VAR_SERVER_KEY_FILE */ - YYSYMBOL_VAR_SERVER_CERT_FILE = 101, /* VAR_SERVER_CERT_FILE */ - YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */ - YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */ - YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */ - YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105, /* VAR_TCP_REUSE_TIMEOUT */ - YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES */ - YYSYMBOL_VAR_EXTENDED_STATISTICS = 107, /* VAR_EXTENDED_STATISTICS */ - YYSYMBOL_VAR_LOCAL_DATA_PTR = 108, /* VAR_LOCAL_DATA_PTR */ - YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109, /* VAR_JOSTLE_TIMEOUT */ - YYSYMBOL_VAR_STUB_PRIME = 110, /* VAR_STUB_PRIME */ - YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD */ - YYSYMBOL_VAR_LOG_TIME_ASCII = 112, /* VAR_LOG_TIME_ASCII */ - YYSYMBOL_VAR_DOMAIN_INSECURE = 113, /* VAR_DOMAIN_INSECURE */ - YYSYMBOL_VAR_PYTHON = 114, /* VAR_PYTHON */ - YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ - YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ - YYSYMBOL_VAR_CACHE_MIN_TTL = 118, /* VAR_CACHE_MIN_TTL */ - YYSYMBOL_VAR_VAL_LOG_LEVEL = 119, /* VAR_VAL_LOG_LEVEL */ - YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 120, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - YYSYMBOL_VAR_KEEP_MISSING = 121, /* VAR_KEEP_MISSING */ - YYSYMBOL_VAR_ADD_HOLDDOWN = 122, /* VAR_ADD_HOLDDOWN */ - YYSYMBOL_VAR_DEL_HOLDDOWN = 123, /* VAR_DEL_HOLDDOWN */ - YYSYMBOL_VAR_SO_RCVBUF = 124, /* VAR_SO_RCVBUF */ - YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 125, /* VAR_EDNS_BUFFER_SIZE */ - YYSYMBOL_VAR_PREFETCH = 126, /* VAR_PREFETCH */ - YYSYMBOL_VAR_PREFETCH_KEY = 127, /* VAR_PREFETCH_KEY */ - YYSYMBOL_VAR_SO_SNDBUF = 128, /* VAR_SO_SNDBUF */ - YYSYMBOL_VAR_SO_REUSEPORT = 129, /* VAR_SO_REUSEPORT */ - YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 130, /* VAR_HARDEN_BELOW_NXDOMAIN */ - YYSYMBOL_VAR_IGNORE_CD_FLAG = 131, /* VAR_IGNORE_CD_FLAG */ - YYSYMBOL_VAR_LOG_QUERIES = 132, /* VAR_LOG_QUERIES */ - YYSYMBOL_VAR_LOG_REPLIES = 133, /* VAR_LOG_REPLIES */ - YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 134, /* VAR_LOG_LOCAL_ACTIONS */ - YYSYMBOL_VAR_TCP_UPSTREAM = 135, /* VAR_TCP_UPSTREAM */ - YYSYMBOL_VAR_SSL_UPSTREAM = 136, /* VAR_SSL_UPSTREAM */ - YYSYMBOL_VAR_SSL_SERVICE_KEY = 137, /* VAR_SSL_SERVICE_KEY */ - YYSYMBOL_VAR_SSL_SERVICE_PEM = 138, /* VAR_SSL_SERVICE_PEM */ - YYSYMBOL_VAR_SSL_PORT = 139, /* VAR_SSL_PORT */ - YYSYMBOL_VAR_FORWARD_FIRST = 140, /* VAR_FORWARD_FIRST */ - YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 141, /* VAR_STUB_SSL_UPSTREAM */ - YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 142, /* VAR_FORWARD_SSL_UPSTREAM */ - YYSYMBOL_VAR_TLS_CERT_BUNDLE = 143, /* VAR_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_HTTPS_PORT = 144, /* VAR_HTTPS_PORT */ - YYSYMBOL_VAR_HTTP_ENDPOINT = 145, /* VAR_HTTP_ENDPOINT */ - YYSYMBOL_VAR_HTTP_MAX_STREAMS = 146, /* VAR_HTTP_MAX_STREAMS */ - YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 147, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 148, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_NODELAY = 149, /* VAR_HTTP_NODELAY */ - YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 150, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - YYSYMBOL_VAR_STUB_FIRST = 151, /* VAR_STUB_FIRST */ - YYSYMBOL_VAR_MINIMAL_RESPONSES = 152, /* VAR_MINIMAL_RESPONSES */ - YYSYMBOL_VAR_RRSET_ROUNDROBIN = 153, /* VAR_RRSET_ROUNDROBIN */ - YYSYMBOL_VAR_MAX_UDP_SIZE = 154, /* VAR_MAX_UDP_SIZE */ - YYSYMBOL_VAR_DELAY_CLOSE = 155, /* VAR_DELAY_CLOSE */ - YYSYMBOL_VAR_UDP_CONNECT = 156, /* VAR_UDP_CONNECT */ - YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 157, /* VAR_UNBLOCK_LAN_ZONES */ - YYSYMBOL_VAR_INSECURE_LAN_ZONES = 158, /* VAR_INSECURE_LAN_ZONES */ - YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 159, /* VAR_INFRA_CACHE_MIN_RTT */ - YYSYMBOL_VAR_INFRA_KEEP_PROBING = 160, /* VAR_INFRA_KEEP_PROBING */ - YYSYMBOL_VAR_DNS64_PREFIX = 161, /* VAR_DNS64_PREFIX */ - YYSYMBOL_VAR_DNS64_SYNTHALL = 162, /* VAR_DNS64_SYNTHALL */ - YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 163, /* VAR_DNS64_IGNORE_AAAA */ - YYSYMBOL_VAR_DNSTAP = 164, /* VAR_DNSTAP */ - YYSYMBOL_VAR_DNSTAP_ENABLE = 165, /* VAR_DNSTAP_ENABLE */ - YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 166, /* VAR_DNSTAP_SOCKET_PATH */ - YYSYMBOL_VAR_DNSTAP_IP = 167, /* VAR_DNSTAP_IP */ - YYSYMBOL_VAR_DNSTAP_TLS = 168, /* VAR_DNSTAP_TLS */ - YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 169, /* VAR_DNSTAP_TLS_SERVER_NAME */ - YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 170, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 171, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 172, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 173, /* VAR_DNSTAP_SEND_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 174, /* VAR_DNSTAP_SEND_VERSION */ - YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 175, /* VAR_DNSTAP_BIDIRECTIONAL */ - YYSYMBOL_VAR_DNSTAP_IDENTITY = 176, /* VAR_DNSTAP_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_VERSION = 177, /* VAR_DNSTAP_VERSION */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 178, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 179, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_RESPONSE_IP_TAG = 184, /* VAR_RESPONSE_IP_TAG */ - YYSYMBOL_VAR_RESPONSE_IP = 185, /* VAR_RESPONSE_IP */ - YYSYMBOL_VAR_RESPONSE_IP_DATA = 186, /* VAR_RESPONSE_IP_DATA */ - YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 187, /* VAR_HARDEN_ALGO_DOWNGRADE */ - YYSYMBOL_VAR_IP_TRANSPARENT = 188, /* VAR_IP_TRANSPARENT */ - YYSYMBOL_VAR_IP_DSCP = 189, /* VAR_IP_DSCP */ - YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 190, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - YYSYMBOL_VAR_IP_RATELIMIT = 191, /* VAR_IP_RATELIMIT */ - YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 192, /* VAR_IP_RATELIMIT_SLABS */ - YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 193, /* VAR_IP_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT = 194, /* VAR_RATELIMIT */ - YYSYMBOL_VAR_RATELIMIT_SLABS = 195, /* VAR_RATELIMIT_SLABS */ - YYSYMBOL_VAR_RATELIMIT_SIZE = 196, /* VAR_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 197, /* VAR_RATELIMIT_FOR_DOMAIN */ - YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 198, /* VAR_RATELIMIT_BELOW_DOMAIN */ - YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 199, /* VAR_IP_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_RATELIMIT_FACTOR = 200, /* VAR_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 201, /* VAR_SEND_CLIENT_SUBNET */ - YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 202, /* VAR_CLIENT_SUBNET_ZONE */ - YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 203, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 204, /* VAR_CLIENT_SUBNET_OPCODE */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 205, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 206, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 207, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 208, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 209, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 210, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - YYSYMBOL_VAR_CAPS_WHITELIST = 211, /* VAR_CAPS_WHITELIST */ - YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 212, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 213, /* VAR_PERMIT_SMALL_HOLDDOWN */ - YYSYMBOL_VAR_QNAME_MINIMISATION = 214, /* VAR_QNAME_MINIMISATION */ - YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 215, /* VAR_QNAME_MINIMISATION_STRICT */ - YYSYMBOL_VAR_IP_FREEBIND = 216, /* VAR_IP_FREEBIND */ - YYSYMBOL_VAR_DEFINE_TAG = 217, /* VAR_DEFINE_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_TAG = 218, /* VAR_LOCAL_ZONE_TAG */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 219, /* VAR_ACCESS_CONTROL_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 220, /* VAR_LOCAL_ZONE_OVERRIDE */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 221, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 222, /* VAR_ACCESS_CONTROL_TAG_DATA */ - YYSYMBOL_VAR_VIEW = 223, /* VAR_VIEW */ - YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 224, /* VAR_ACCESS_CONTROL_VIEW */ - YYSYMBOL_VAR_VIEW_FIRST = 225, /* VAR_VIEW_FIRST */ - YYSYMBOL_VAR_SERVE_EXPIRED = 226, /* VAR_SERVE_EXPIRED */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 227, /* VAR_SERVE_EXPIRED_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 228, /* VAR_SERVE_EXPIRED_TTL_RESET */ - YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 229, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 230, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 231, /* VAR_SERVE_ORIGINAL_TTL */ - YYSYMBOL_VAR_FAKE_DSA = 232, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 233, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 234, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 235, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 236, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 237, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 238, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 239, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 240, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 241, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 242, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 243, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 244, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 245, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 246, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 247, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 248, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 249, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 250, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 251, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 252, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 253, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 254, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 255, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 256, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 257, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 258, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 259, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 260, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 261, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 262, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 263, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 264, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 265, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 266, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 267, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 268, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 269, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 270, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 271, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 272, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 273, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 274, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 275, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 276, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 277, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 278, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 279, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 280, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 281, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 282, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 283, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 284, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 285, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 286, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 287, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 288, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 289, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 290, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 291, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 292, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 293, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 294, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 295, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 296, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 297, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 298, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 299, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 300, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 301, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 302, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 303, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 304, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 305, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 306, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 307, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 308, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 309, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 310, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 311, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 312, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 313, /* $accept */ - YYSYMBOL_toplevelvars = 314, /* toplevelvars */ - YYSYMBOL_toplevelvar = 315, /* toplevelvar */ - YYSYMBOL_force_toplevel = 316, /* force_toplevel */ - YYSYMBOL_serverstart = 317, /* serverstart */ - YYSYMBOL_contents_server = 318, /* contents_server */ - YYSYMBOL_content_server = 319, /* content_server */ - YYSYMBOL_stubstart = 320, /* stubstart */ - YYSYMBOL_contents_stub = 321, /* contents_stub */ - YYSYMBOL_content_stub = 322, /* content_stub */ - YYSYMBOL_forwardstart = 323, /* forwardstart */ - YYSYMBOL_contents_forward = 324, /* contents_forward */ - YYSYMBOL_content_forward = 325, /* content_forward */ - YYSYMBOL_viewstart = 326, /* viewstart */ - YYSYMBOL_contents_view = 327, /* contents_view */ - YYSYMBOL_content_view = 328, /* content_view */ - YYSYMBOL_authstart = 329, /* authstart */ - YYSYMBOL_contents_auth = 330, /* contents_auth */ - YYSYMBOL_content_auth = 331, /* content_auth */ - YYSYMBOL_rpz_tag = 332, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 333, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 334, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 335, /* rpz_log */ - YYSYMBOL_rpz_log_name = 336, /* rpz_log_name */ - YYSYMBOL_rpzstart = 337, /* rpzstart */ - YYSYMBOL_contents_rpz = 338, /* contents_rpz */ - YYSYMBOL_content_rpz = 339, /* content_rpz */ - YYSYMBOL_server_num_threads = 340, /* server_num_threads */ - YYSYMBOL_server_verbosity = 341, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 342, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 343, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 344, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 345, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 346, /* server_shm_key */ - YYSYMBOL_server_port = 347, /* server_port */ - YYSYMBOL_server_send_client_subnet = 348, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 349, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 350, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 351, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 352, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 353, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 354, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 355, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 356, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 357, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 358, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 359, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 360, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 361, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 362, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 363, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 364, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 365, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 366, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 367, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 368, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 369, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 370, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 371, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 372, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 373, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 374, /* server_tcp_idle_timeout */ - YYSYMBOL_server_max_reuse_tcp_queries = 375, /* server_max_reuse_tcp_queries */ - YYSYMBOL_server_tcp_reuse_timeout = 376, /* server_tcp_reuse_timeout */ - YYSYMBOL_server_tcp_keepalive = 377, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 378, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 379, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 380, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 381, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 382, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 383, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 384, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 385, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 386, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 387, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 388, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 389, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 390, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 391, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 392, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 393, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 394, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 395, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 396, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 397, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 398, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 399, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 400, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 401, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 402, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 403, /* server_log_queries */ - YYSYMBOL_server_log_replies = 404, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 405, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 406, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 407, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 408, /* server_chroot */ - YYSYMBOL_server_username = 409, /* server_username */ - YYSYMBOL_server_directory = 410, /* server_directory */ - YYSYMBOL_server_logfile = 411, /* server_logfile */ - YYSYMBOL_server_pidfile = 412, /* server_pidfile */ - YYSYMBOL_server_root_hints = 413, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 414, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 415, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 416, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 417, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 418, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 419, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 420, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 421, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 422, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 423, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 424, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 425, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 426, /* server_identity */ - YYSYMBOL_server_version = 427, /* server_version */ - YYSYMBOL_server_nsid = 428, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 429, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 430, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 431, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 432, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 433, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 434, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 435, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 436, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 437, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 438, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 439, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 440, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 441, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 442, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 443, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 444, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 445, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 446, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 447, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 448, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 449, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 450, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 451, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 452, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 453, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 454, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 455, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 456, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 457, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 458, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 459, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 460, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 461, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 462, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 463, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 464, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 465, /* server_private_address */ - YYSYMBOL_server_private_domain = 466, /* server_private_domain */ - YYSYMBOL_server_prefetch = 467, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 468, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 469, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 470, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 471, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 472, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 473, /* server_access_control */ - YYSYMBOL_server_module_conf = 474, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 475, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 476, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 477, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 478, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 479, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 480, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 481, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 482, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 483, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 484, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 485, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 486, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 487, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 488, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 489, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 490, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 491, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 492, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 493, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 494, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 495, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 496, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 497, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 498, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 499, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 500, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 501, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 502, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 503, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 504, /* server_local_zone */ - YYSYMBOL_server_local_data = 505, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 506, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 507, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 508, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 509, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 510, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 511, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 512, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 513, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 514, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 515, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 516, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 517, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 518, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 519, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 520, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 521, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 522, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 523, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 524, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 525, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 526, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 527, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 528, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 529, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 530, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 531, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 532, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 533, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 534, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 535, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 536, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 537, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 538, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 539, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 540, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 541, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 542, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 543, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 544, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 545, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 546, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 547, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 548, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 549, /* stub_name */ - YYSYMBOL_stub_host = 550, /* stub_host */ - YYSYMBOL_stub_addr = 551, /* stub_addr */ - YYSYMBOL_stub_first = 552, /* stub_first */ - YYSYMBOL_stub_no_cache = 553, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 554, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 555, /* stub_prime */ - YYSYMBOL_forward_name = 556, /* forward_name */ - YYSYMBOL_forward_host = 557, /* forward_host */ - YYSYMBOL_forward_addr = 558, /* forward_addr */ - YYSYMBOL_forward_first = 559, /* forward_first */ - YYSYMBOL_forward_no_cache = 560, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 561, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 562, /* auth_name */ - YYSYMBOL_auth_zonefile = 563, /* auth_zonefile */ - YYSYMBOL_auth_master = 564, /* auth_master */ - YYSYMBOL_auth_url = 565, /* auth_url */ - YYSYMBOL_auth_allow_notify = 566, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_reject_absence = 567, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 568, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 569, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 570, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 571, /* view_name */ - YYSYMBOL_view_local_zone = 572, /* view_local_zone */ - YYSYMBOL_view_response_ip = 573, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 574, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 575, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 576, /* view_local_data_ptr */ - YYSYMBOL_view_first = 577, /* view_first */ - YYSYMBOL_rcstart = 578, /* rcstart */ - YYSYMBOL_contents_rc = 579, /* contents_rc */ - YYSYMBOL_content_rc = 580, /* content_rc */ - YYSYMBOL_rc_control_enable = 581, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 582, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 583, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 584, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 585, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 586, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 587, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 588, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 589, /* dtstart */ - YYSYMBOL_contents_dt = 590, /* contents_dt */ - YYSYMBOL_content_dt = 591, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 592, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 593, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 594, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 595, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 596, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 597, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 598, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 599, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 600, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 601, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 602, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 603, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 604, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 605, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 606, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 607, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 608, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 609, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 610, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 611, /* pythonstart */ - YYSYMBOL_contents_py = 612, /* contents_py */ - YYSYMBOL_content_py = 613, /* content_py */ - YYSYMBOL_py_script = 614, /* py_script */ - YYSYMBOL_dynlibstart = 615, /* dynlibstart */ - YYSYMBOL_contents_dl = 616, /* contents_dl */ - YYSYMBOL_content_dl = 617, /* content_dl */ - YYSYMBOL_dl_file = 618, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 619, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 620, /* server_log_identity */ - YYSYMBOL_server_response_ip = 621, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 622, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 623, /* dnscstart */ - YYSYMBOL_contents_dnsc = 624, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 625, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 626, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 627, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 628, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 629, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 630, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 631, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 632, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 633, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 634, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 635, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 636, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 637, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 638, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 639, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 640, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 641, /* redis_server_host */ - YYSYMBOL_redis_server_port = 642, /* redis_server_port */ - YYSYMBOL_redis_timeout = 643, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 644, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 645, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 646, /* ipsetstart */ - YYSYMBOL_contents_ipset = 647, /* contents_ipset */ - YYSYMBOL_content_ipset = 648, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 649, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 650 /* ipset_name_v6 */ -}; -typedef enum yysymbol_kind_t yysymbol_kind_t; + char* str; +} +/* Line 193 of yacc.c. */ +#line 755 "util/configparser.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ +#line 768 "util/configparser.c" #ifdef short # undef short #endif -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - and (if available) are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif -#endif - -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; #else -typedef signed char yytype_int8; -#endif - -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; -#else -typedef short yytype_int16; -#endif - -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; #endif -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; #else -typedef int yytype_uint16; +typedef short int yytype_int8; #endif -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; #endif #ifndef YYSIZE_T @@ -1531,100 +802,55 @@ typedef int yytype_uint16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned +# define YYSIZE_T unsigned int # endif #endif -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - - -/* Stored state numbers (used for stacks). */ -typedef yytype_int16 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ -# define YY_(Msgid) Msgid -# endif -#endif - - -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define YY_ATTRIBUTE_PURE -# endif -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED +# define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YYUSE(e) ((void) (e)) #else -# define YYUSE(E) /* empty */ +# define YYUSE(e) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) #else -# define YY_INITIAL_VALUE(Value) Value +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; #endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END -#endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ +{ + return i; +} #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - - -#define YY_ASSERT(E) ((void) (0 && (E))) - -#if !defined yyoverflow +#if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1641,11 +867,11 @@ typedef int yy_state_fast_t; # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 +# ifndef _STDLIB_H +# define _STDLIB_H 1 # endif # endif # endif @@ -1653,8 +879,8 @@ typedef int yy_state_fast_t; # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -1668,116 +894,111 @@ typedef int yy_state_fast_t; # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined EXIT_SUCCESS \ +# if (defined __cplusplus && ! defined _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 +# ifndef _STDLIB_H +# define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* !defined yyoverflow */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yy_state_t yyss_alloc; - YYSTYPE yyvs_alloc; -}; + yytype_int16 yyss; + YYSTYPE yyvs; + }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -# define YYCOPY_NEEDED 1 +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYPTRDIFF_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ - } \ - while (0) +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) #endif -#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) -# else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYPTRDIFF_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ - while (0) -# endif -# endif -#endif /* !YYCOPY_NEEDED */ - /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 661 +#define YYLAST 663 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 313 +#define YYNTOKENS 314 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 338 +#define YYNNTS 339 /* YYNRULES -- Number of rules. */ -#define YYNRULES 652 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 969 +#define YYNRULES 654 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 972 -#define YYMAXUTOK 567 +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 568 +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ -#define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK \ - ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ - : YYSYMBOL_YYUNDEF) - -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ -static const yytype_int16 yytranslate[] = +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1835,12 +1056,253 @@ static const yytype_int16 yytranslate[] = 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 + 305, 306, 307, 308, 309, 310, 311, 312, 313 }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_int16 yyrline[] = +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 4, 7, 10, 13, 16, 19, 22, + 25, 28, 31, 34, 37, 40, 43, 46, 48, 50, + 52, 55, 56, 58, 60, 62, 64, 66, 68, 70, + 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, + 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, + 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, + 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, + 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, + 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, + 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, + 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, + 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, + 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, + 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, + 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, + 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, + 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, + 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, + 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, + 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, + 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, + 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, + 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, + 472, 474, 476, 478, 480, 482, 484, 486, 488, 491, + 492, 494, 496, 498, 500, 502, 504, 506, 508, 511, + 512, 514, 516, 518, 520, 522, 524, 526, 529, 530, + 532, 534, 536, 538, 540, 542, 544, 546, 549, 550, + 552, 554, 556, 558, 560, 562, 564, 566, 568, 571, + 574, 577, 580, 583, 585, 588, 589, 591, 593, 595, + 597, 599, 601, 603, 605, 607, 609, 612, 615, 618, + 621, 624, 627, 630, 633, 636, 639, 642, 645, 648, + 651, 654, 657, 660, 663, 666, 669, 672, 675, 678, + 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, + 711, 714, 717, 720, 723, 726, 729, 732, 735, 738, + 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, + 771, 774, 777, 780, 783, 786, 789, 792, 795, 798, + 801, 804, 807, 810, 813, 816, 819, 822, 825, 828, + 831, 834, 837, 840, 843, 846, 849, 852, 855, 858, + 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, + 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, + 921, 924, 927, 930, 933, 936, 939, 942, 945, 948, + 951, 954, 957, 960, 963, 966, 969, 972, 975, 978, + 981, 984, 987, 990, 993, 996, 999, 1002, 1005, 1008, + 1011, 1015, 1018, 1021, 1024, 1027, 1030, 1033, 1036, 1039, + 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, + 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099, + 1102, 1105, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, + 1133, 1136, 1139, 1143, 1147, 1152, 1157, 1162, 1166, 1170, + 1173, 1176, 1179, 1182, 1185, 1188, 1192, 1196, 1199, 1202, + 1205, 1208, 1211, 1214, 1217, 1220, 1223, 1226, 1229, 1232, + 1235, 1238, 1241, 1244, 1247, 1251, 1254, 1257, 1260, 1263, + 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1287, 1290, 1293, + 1296, 1299, 1302, 1305, 1308, 1311, 1314, 1317, 1320, 1323, + 1327, 1331, 1335, 1338, 1341, 1344, 1346, 1349, 1350, 1352, + 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1369, 1372, 1375, + 1378, 1381, 1384, 1387, 1390, 1392, 1395, 1396, 1398, 1400, + 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, + 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1437, 1440, 1443, + 1446, 1449, 1452, 1455, 1458, 1461, 1464, 1467, 1470, 1473, + 1476, 1479, 1482, 1485, 1488, 1491, 1493, 1496, 1497, 1499, + 1502, 1504, 1507, 1508, 1510, 1513, 1516, 1519, 1523, 1527, + 1529, 1532, 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547, + 1549, 1551, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, + 1577, 1580, 1583, 1585, 1588, 1589, 1591, 1593, 1595, 1597, + 1599, 1601, 1604, 1607, 1610, 1613, 1616, 1619, 1623, 1625, + 1628, 1629, 1631, 1633, 1636 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 315, 0, -1, -1, 315, 316, -1, 318, 319, -1, + 321, 322, -1, 324, 325, -1, 613, 614, -1, 580, + 581, -1, 591, 592, -1, 327, 328, -1, 625, 626, + -1, 638, 639, -1, 648, 649, -1, 330, 331, -1, + 338, 339, -1, 617, 618, -1, 317, -1, 11, -1, + 12, -1, 319, 320, -1, -1, 341, -1, 342, -1, + 348, -1, 361, -1, 367, -1, 368, -1, 371, -1, + 372, -1, 369, -1, 370, -1, 373, -1, 374, -1, + 375, -1, 379, -1, 380, -1, 359, -1, 410, -1, + 411, -1, 412, -1, 413, -1, 414, -1, 440, -1, + 441, -1, 442, -1, 448, -1, 449, -1, 364, -1, + 450, -1, 451, -1, 454, -1, 452, -1, 453, -1, + 457, -1, 458, -1, 459, -1, 473, -1, 425, -1, + 426, -1, 428, -1, 429, -1, 460, -1, 476, -1, + 419, -1, 421, -1, 477, -1, 483, -1, 484, -1, + 485, -1, 365, -1, 439, -1, 503, -1, 504, -1, + 420, -1, 497, -1, 403, -1, 360, -1, 415, -1, + 474, -1, 480, -1, 461, -1, 475, -1, 506, -1, + 507, -1, 366, -1, 343, -1, 402, -1, 465, -1, + 344, -1, 362, -1, 363, -1, 416, -1, 417, -1, + 505, -1, 463, -1, 467, -1, 468, -1, 345, -1, + 508, -1, 443, -1, 472, -1, 404, -1, 424, -1, + 478, -1, 479, -1, 482, -1, 496, -1, 418, -1, + 499, -1, 500, -1, 501, -1, 431, -1, 438, -1, + 469, -1, 470, -1, 432, -1, 462, -1, 487, -1, + 405, -1, 406, -1, 381, -1, 383, -1, 409, -1, + 384, -1, 385, -1, 386, -1, 394, -1, 395, -1, + 396, -1, 397, -1, 398, -1, 399, -1, 400, -1, + 509, -1, 510, -1, 512, -1, 433, -1, 444, -1, + 445, -1, 446, -1, 447, -1, 513, -1, 514, -1, + 515, -1, 455, -1, 464, -1, 434, -1, 524, -1, + 525, -1, 436, -1, 456, -1, 528, -1, 529, -1, + 526, -1, 527, -1, 530, -1, 531, -1, 533, -1, + 532, -1, 349, -1, 350, -1, 351, -1, 352, -1, + 353, -1, 354, -1, 355, -1, 356, -1, 357, -1, + 358, -1, 466, -1, 481, -1, 502, -1, 537, -1, + 435, -1, 516, -1, 517, -1, 621, -1, 518, -1, + 521, -1, 519, -1, 520, -1, 522, -1, 538, -1, + 539, -1, 540, -1, 541, -1, 542, -1, 488, -1, + 489, -1, 490, -1, 491, -1, 492, -1, 493, -1, + 494, -1, 622, -1, 401, -1, 523, -1, 623, -1, + 624, -1, 346, -1, 347, -1, 495, -1, 427, -1, + 422, -1, 423, -1, 543, -1, 545, -1, 544, -1, + 546, -1, 547, -1, 548, -1, 382, -1, 486, -1, + 387, -1, 389, -1, 534, -1, 536, -1, 535, -1, + 388, -1, 647, -1, 408, -1, 471, -1, 511, -1, + 407, -1, 437, -1, 390, -1, 391, -1, 392, -1, + 393, -1, 549, -1, 550, -1, 430, -1, 498, -1, + 376, -1, 377, -1, 378, -1, 46, -1, 322, 323, + -1, -1, 551, -1, 552, -1, 553, -1, 557, -1, + 554, -1, 555, -1, 556, -1, 52, -1, 325, 326, + -1, -1, 558, -1, 559, -1, 560, -1, 561, -1, + 562, -1, 563, -1, 224, -1, 328, 329, -1, -1, + 573, -1, 574, -1, 577, -1, 579, -1, 575, -1, + 576, -1, 578, -1, 273, -1, 331, 332, -1, -1, + 564, -1, 565, -1, 566, -1, 567, -1, 570, -1, + 571, -1, 572, -1, 568, -1, 569, -1, 302, 10, + -1, 303, 10, -1, 304, 10, -1, 305, 10, -1, + 306, 10, -1, 301, -1, 339, 340, -1, -1, 564, + -1, 565, -1, 333, -1, 566, -1, 567, -1, 568, + -1, 334, -1, 335, -1, 336, -1, 337, -1, 14, + 10, -1, 13, 10, -1, 84, 10, -1, 87, 10, + -1, 107, 10, -1, 240, 10, -1, 241, 10, -1, + 15, 10, -1, 202, 10, -1, 203, 10, -1, 204, + 10, -1, 205, 10, -1, 206, 10, -1, 207, 10, + -1, 208, 10, -1, 209, 10, -1, 210, 10, -1, + 211, 10, -1, 17, 10, -1, 75, 10, -1, 16, + 10, -1, 88, 10, -1, 89, 10, -1, 39, 10, + -1, 68, 10, -1, 83, 10, -1, 19, 10, -1, + 20, 10, -1, 22, 10, -1, 23, 10, -1, 18, + 10, -1, 21, 10, -1, 24, 10, -1, 25, 10, + -1, 26, 10, -1, 106, 10, -1, 105, 10, -1, + 137, 10, -1, 27, 10, -1, 28, 10, -1, 135, + 10, -1, 271, 10, -1, 136, 10, -1, 138, 10, + -1, 139, 10, -1, 140, 10, -1, 144, 10, -1, + 285, 10, -1, 279, 10, -1, 294, 10, -1, 295, + 10, -1, 300, 10, -1, 296, 10, -1, 145, 10, + -1, 146, 10, -1, 147, 10, -1, 148, 10, -1, + 149, 10, -1, 150, 10, -1, 151, 10, -1, 239, + 10, -1, 85, 10, -1, 74, 10, -1, 112, 10, + -1, 132, 10, -1, 133, 10, -1, 292, 10, -1, + 289, 10, -1, 134, 10, -1, 29, 10, -1, 30, + 10, -1, 31, 10, -1, 32, 10, -1, 33, 10, + -1, 76, 10, -1, 90, 10, -1, 91, 10, -1, + 120, 10, -1, 62, 10, -1, 72, 10, -1, 63, + 10, -1, 237, 10, -1, 242, 10, -1, 113, 10, + -1, 56, 10, -1, 57, 10, -1, 236, 10, -1, + 58, 10, -1, 59, 10, -1, 311, 10, -1, 124, + 10, -1, 128, 10, -1, 129, 10, -1, 189, 10, + -1, 217, 10, -1, 190, 10, -1, 293, 10, -1, + 125, 10, -1, 69, 10, -1, 34, 10, -1, 35, + 10, -1, 36, 10, -1, 109, 10, -1, 156, 10, + -1, 157, 10, -1, 158, 10, -1, 159, 10, -1, + 37, 10, -1, 38, 10, -1, 40, 10, -1, 41, + 10, -1, 43, 10, -1, 44, 10, -1, 42, 10, + -1, 160, 10, -1, 161, 10, -1, 49, 10, -1, + 50, 10, -1, 51, 10, -1, 60, 10, -1, 79, + 10, -1, 130, 10, -1, 93, 10, -1, 188, 10, + -1, 86, 10, -1, 212, 10, -1, 94, 10, -1, + 95, 10, -1, 126, 10, -1, 127, 10, -1, 290, + 10, -1, 111, 10, -1, 55, 10, -1, 77, 10, + -1, 80, 10, 10, -1, 61, 10, -1, 64, 10, + -1, 116, 10, -1, 117, 10, -1, 78, 10, -1, + 213, 10, -1, 118, 10, -1, 65, 10, -1, 66, + 10, -1, 67, 10, -1, 238, 10, -1, 131, 10, + -1, 227, 10, -1, 228, 10, -1, 229, 10, -1, + 230, 10, -1, 231, 10, -1, 232, 10, -1, 233, + 10, -1, 234, 10, -1, 119, 10, -1, 73, 10, + -1, 312, 10, -1, 122, 10, -1, 123, 10, -1, + 121, 10, -1, 214, 10, -1, 70, 10, -1, 71, + 10, -1, 92, 10, -1, 81, 10, 10, -1, 82, + 10, -1, 108, 10, -1, 153, 10, -1, 154, 10, + -1, 291, 10, -1, 155, 10, -1, 162, 10, -1, + 163, 10, -1, 164, 10, -1, 218, 10, -1, 219, + 10, 10, -1, 220, 10, 10, -1, 222, 10, 10, + 10, -1, 223, 10, 10, 10, -1, 221, 10, 10, + 10, -1, 225, 10, 10, -1, 185, 10, 10, -1, + 192, 10, -1, 195, 10, -1, 194, 10, -1, 197, + 10, -1, 193, 10, -1, 196, 10, -1, 198, 10, + 10, -1, 199, 10, 10, -1, 200, 10, -1, 201, + 10, -1, 280, 10, -1, 283, 10, -1, 282, 10, + -1, 215, 10, -1, 216, 10, -1, 254, 10, -1, + 255, 10, -1, 256, 10, -1, 257, 10, -1, 258, + 10, -1, 260, 10, -1, 259, 10, -1, 261, 10, + -1, 262, 10, -1, 263, 10, -1, 309, 10, 10, + -1, 310, 10, -1, 45, 10, -1, 47, 10, -1, + 48, 10, -1, 152, 10, -1, 288, 10, -1, 142, + 10, -1, 110, 10, -1, 45, 10, -1, 53, 10, + -1, 54, 10, -1, 141, 10, -1, 287, 10, -1, + 143, 10, -1, 45, 10, -1, 274, 10, -1, 275, + 10, -1, 276, 10, -1, 284, 10, -1, 313, 10, + -1, 277, 10, -1, 272, 10, -1, 278, 10, -1, + 45, 10, -1, 81, 10, 10, -1, 186, 10, 10, + -1, 187, 10, 10, -1, 82, 10, -1, 108, 10, + -1, 226, 10, -1, 96, -1, 581, 582, -1, -1, + 583, -1, 585, -1, 584, -1, 587, -1, 588, -1, + 589, -1, 590, -1, 586, -1, 97, 10, -1, 99, + 10, -1, 98, 10, -1, 104, 10, -1, 100, 10, + -1, 101, 10, -1, 102, 10, -1, 103, 10, -1, + 165, -1, 592, 593, -1, -1, 594, -1, 596, -1, + 595, -1, 597, -1, 598, -1, 599, -1, 600, -1, + 601, -1, 602, -1, 603, -1, 604, -1, 605, -1, + 606, -1, 607, -1, 608, -1, 609, -1, 610, -1, + 611, -1, 612, -1, 166, 10, -1, 176, 10, -1, + 167, 10, -1, 168, 10, -1, 169, 10, -1, 170, + 10, -1, 171, 10, -1, 172, 10, -1, 173, 10, + -1, 174, 10, -1, 175, 10, -1, 177, 10, -1, + 178, 10, -1, 179, 10, -1, 180, 10, -1, 181, + 10, -1, 182, 10, -1, 183, 10, -1, 184, 10, + -1, 114, -1, 614, 615, -1, -1, 616, -1, 115, + 10, -1, 307, -1, 618, 619, -1, -1, 620, -1, + 308, 10, -1, 191, 10, -1, 235, 10, -1, 186, + 10, 10, -1, 187, 10, 10, -1, 243, -1, 626, + 627, -1, -1, 628, -1, 629, -1, 630, -1, 633, + -1, 631, -1, 632, -1, 634, -1, 635, -1, 636, + -1, 637, -1, 244, 10, -1, 245, 10, -1, 246, + 10, -1, 248, 10, -1, 249, 10, -1, 247, 10, + -1, 250, 10, -1, 251, 10, -1, 252, 10, -1, + 253, 10, -1, 264, -1, 639, 640, -1, -1, 641, + -1, 642, -1, 643, -1, 644, -1, 645, -1, 646, + -1, 265, 10, -1, 266, 10, -1, 267, 10, -1, + 268, 10, -1, 269, 10, -1, 270, 10, -1, 286, + 10, 10, -1, 297, -1, 649, 650, -1, -1, 651, + -1, 652, -1, 298, 10, -1, 299, 10, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = { 0, 188, 188, 188, 189, 189, 190, 190, 191, 191, 191, 192, 192, 193, 193, 194, 194, 195, 197, 203, @@ -1865,69 +1327,62 @@ static const yytype_int16 yyrline[] = 289, 289, 289, 290, 290, 291, 292, 292, 293, 293, 294, 294, 295, 295, 296, 296, 296, 297, 297, 297, 298, 298, 298, 299, 299, 300, 300, 301, 301, 302, - 302, 303, 303, 304, 304, 305, 308, 320, 321, 322, - 322, 322, 322, 322, 323, 323, 325, 337, 338, 339, - 339, 339, 339, 340, 340, 342, 356, 357, 358, 358, - 358, 358, 359, 359, 359, 361, 379, 380, 381, 381, - 381, 381, 382, 382, 382, 383, 383, 386, 405, 422, - 430, 440, 448, 465, 466, 467, 467, 467, 467, 467, - 468, 468, 468, 469, 469, 471, 480, 489, 500, 509, - 518, 527, 538, 547, 559, 573, 588, 599, 616, 633, - 650, 667, 682, 697, 710, 725, 734, 743, 752, 761, - 770, 779, 788, 797, 806, 815, 824, 833, 842, 851, - 864, 875, 886, 895, 908, 917, 926, 935, 942, 949, - 958, 965, 974, 982, 989, 996, 1004, 1013, 1021, 1037, - 1045, 1053, 1061, 1069, 1077, 1086, 1095, 1109, 1118, 1127, - 1136, 1145, 1154, 1163, 1170, 1177, 1203, 1211, 1218, 1225, - 1232, 1239, 1247, 1255, 1263, 1270, 1281, 1292, 1299, 1308, - 1317, 1326, 1333, 1340, 1356, 1364, 1372, 1382, 1392, 1402, - 1416, 1424, 1437, 1448, 1456, 1469, 1478, 1487, 1496, 1505, - 1515, 1525, 1533, 1546, 1555, 1563, 1572, 1580, 1593, 1602, - 1612, 1619, 1629, 1639, 1649, 1659, 1669, 1679, 1689, 1699, - 1706, 1713, 1720, 1729, 1738, 1747, 1756, 1763, 1773, 1793, - 1800, 1818, 1831, 1844, 1853, 1862, 1871, 1880, 1890, 1900, - 1911, 1920, 1929, 1938, 1947, 1956, 1965, 1974, 1987, 2000, - 2009, 2016, 2025, 2034, 2043, 2052, 2061, 2069, 2082, 2090, - 2135, 2142, 2157, 2167, 2177, 2184, 2191, 2198, 2207, 2215, - 2229, 2250, 2271, 2283, 2295, 2307, 2316, 2337, 2347, 2356, - 2364, 2372, 2385, 2398, 2413, 2428, 2437, 2446, 2452, 2461, - 2470, 2480, 2490, 2500, 2509, 2519, 2528, 2541, 2554, 2566, - 2580, 2592, 2606, 2615, 2627, 2637, 2644, 2651, 2660, 2669, - 2679, 2689, 2699, 2706, 2713, 2722, 2731, 2741, 2751, 2758, - 2765, 2772, 2780, 2790, 2800, 2810, 2820, 2830, 2876, 2886, - 2894, 2902, 2917, 2926, 2931, 2932, 2933, 2933, 2933, 2934, - 2934, 2934, 2935, 2935, 2937, 2947, 2956, 2963, 2970, 2977, - 2984, 2991, 2998, 3003, 3004, 3005, 3005, 3005, 3006, 3006, - 3006, 3007, 3008, 3008, 3009, 3009, 3010, 3010, 3011, 3012, - 3013, 3014, 3015, 3016, 3018, 3027, 3037, 3044, 3051, 3060, - 3067, 3074, 3081, 3088, 3097, 3106, 3113, 3120, 3130, 3140, - 3150, 3160, 3170, 3180, 3185, 3186, 3187, 3189, 3195, 3200, - 3201, 3202, 3204, 3210, 3220, 3227, 3236, 3244, 3249, 3250, - 3252, 3252, 3252, 3253, 3253, 3254, 3255, 3256, 3257, 3258, - 3260, 3270, 3279, 3286, 3295, 3302, 3311, 3319, 3332, 3340, - 3353, 3358, 3359, 3360, 3360, 3361, 3361, 3361, 3362, 3364, - 3376, 3388, 3400, 3415, 3428, 3441, 3452, 3457, 3458, 3459, - 3459, 3461, 3476 + 302, 303, 303, 304, 304, 305, 305, 308, 320, 321, + 322, 322, 322, 322, 322, 323, 323, 325, 337, 338, + 339, 339, 339, 339, 340, 340, 342, 356, 357, 358, + 358, 358, 358, 359, 359, 359, 361, 379, 380, 381, + 381, 381, 381, 382, 382, 382, 383, 383, 386, 405, + 422, 430, 440, 448, 465, 466, 467, 467, 467, 467, + 467, 468, 468, 468, 469, 469, 471, 480, 489, 500, + 509, 518, 527, 538, 547, 559, 573, 588, 599, 616, + 633, 650, 667, 682, 697, 710, 725, 734, 743, 752, + 761, 770, 779, 788, 797, 806, 815, 824, 833, 842, + 851, 864, 875, 886, 897, 906, 919, 928, 937, 946, + 953, 960, 969, 976, 985, 993, 1000, 1007, 1015, 1024, + 1032, 1048, 1056, 1064, 1072, 1080, 1088, 1097, 1106, 1120, + 1129, 1138, 1147, 1156, 1165, 1174, 1181, 1188, 1214, 1222, + 1229, 1236, 1243, 1250, 1258, 1266, 1274, 1281, 1292, 1303, + 1310, 1319, 1328, 1337, 1344, 1351, 1367, 1375, 1383, 1393, + 1403, 1413, 1427, 1435, 1448, 1459, 1467, 1480, 1489, 1498, + 1507, 1516, 1526, 1536, 1544, 1557, 1566, 1574, 1583, 1591, + 1604, 1613, 1623, 1630, 1640, 1650, 1660, 1670, 1680, 1690, + 1700, 1710, 1717, 1724, 1731, 1740, 1749, 1758, 1767, 1774, + 1784, 1804, 1811, 1829, 1842, 1855, 1864, 1873, 1882, 1891, + 1901, 1911, 1922, 1931, 1940, 1949, 1958, 1967, 1976, 1985, + 1998, 2011, 2020, 2027, 2036, 2045, 2054, 2063, 2072, 2080, + 2093, 2101, 2146, 2153, 2168, 2178, 2188, 2195, 2202, 2209, + 2218, 2226, 2240, 2261, 2282, 2294, 2306, 2318, 2327, 2348, + 2358, 2367, 2375, 2383, 2396, 2409, 2424, 2439, 2448, 2457, + 2463, 2472, 2481, 2491, 2501, 2511, 2520, 2530, 2539, 2552, + 2565, 2577, 2591, 2603, 2617, 2626, 2638, 2648, 2655, 2662, + 2671, 2680, 2690, 2700, 2710, 2717, 2724, 2733, 2742, 2752, + 2762, 2769, 2776, 2783, 2791, 2801, 2811, 2821, 2831, 2841, + 2887, 2897, 2905, 2913, 2928, 2937, 2942, 2943, 2944, 2944, + 2944, 2945, 2945, 2945, 2946, 2946, 2948, 2958, 2967, 2974, + 2981, 2988, 2995, 3002, 3009, 3014, 3015, 3016, 3016, 3016, + 3017, 3017, 3017, 3018, 3019, 3019, 3020, 3020, 3021, 3021, + 3022, 3023, 3024, 3025, 3026, 3027, 3029, 3038, 3048, 3055, + 3062, 3071, 3078, 3085, 3092, 3099, 3108, 3117, 3124, 3131, + 3141, 3151, 3161, 3171, 3181, 3191, 3196, 3197, 3198, 3200, + 3206, 3211, 3212, 3213, 3215, 3221, 3231, 3238, 3247, 3255, + 3260, 3261, 3263, 3263, 3263, 3264, 3264, 3265, 3266, 3267, + 3268, 3269, 3271, 3281, 3290, 3297, 3306, 3313, 3322, 3330, + 3343, 3351, 3364, 3369, 3370, 3371, 3371, 3372, 3372, 3372, + 3373, 3375, 3387, 3399, 3411, 3426, 3439, 3452, 3463, 3468, + 3469, 3470, 3470, 3472, 3487 }; #endif -/** Accessing symbol of state STATE. */ -#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) - -#if YYDEBUG || 0 -/* The user-facing name of the symbol whose (internal) number is - YYSYMBOL. No bounds checking. */ -static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; - +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER", - "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG", - "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", - "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", - "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP", + "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT", + "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_FORCE_TOPLEVEL", + "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", "VAR_PORT", + "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", "VAR_DO_IP4", + "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", "VAR_TCP_IDLE_TIMEOUT", "VAR_EDNS_TCP_KEEPALIVE", "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_CHROOT", "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", @@ -1968,8 +1423,9 @@ static const char *const yytname[] = "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", - "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", - "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", + "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY", + "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", + "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT", "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE", "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY", @@ -2062,60 +1518,61 @@ static const char *const yytname[] = "server_do_udp", "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6", "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_idle_timeout", "server_max_reuse_tcp_queries", - "server_tcp_reuse_timeout", "server_tcp_keepalive", - "server_tcp_keepalive_timeout", "server_tcp_upstream", - "server_udp_upstream_without_downstream", "server_ssl_upstream", - "server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port", - "server_tls_cert_bundle", "server_tls_win_cert", - "server_tls_additional_port", "server_tls_ciphers", - "server_tls_ciphersuites", "server_tls_session_ticket_keys", - "server_tls_use_sni", "server_https_port", "server_http_endpoint", - "server_http_max_streams", "server_http_query_buffer_size", - "server_http_response_buffer_size", "server_http_nodelay", - "server_http_notls_downstream", "server_use_systemd", - "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", - "server_log_queries", "server_log_replies", "server_log_tag_queryreply", - "server_log_servfail", "server_log_local_actions", "server_chroot", - "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_dlv_anchor_file", - "server_dlv_anchor", "server_auto_trust_anchor_file", - "server_trust_anchor_file", "server_trusted_keys_file", - "server_trust_anchor", "server_trust_anchor_signaling", - "server_root_key_sentinel", "server_domain_insecure", - "server_hide_identity", "server_hide_version", "server_hide_trustanchor", - "server_identity", "server_version", "server_nsid", "server_so_rcvbuf", - "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", - "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size", - "server_edns_buffer_size", "server_msg_buffer_size", - "server_msg_cache_size", "server_msg_cache_slabs", - "server_num_queries_per_thread", "server_jostle_timeout", - "server_delay_close", "server_udp_connect", "server_unblock_lan_zones", - "server_insecure_lan_zones", "server_rrset_cache_size", - "server_rrset_cache_slabs", "server_infra_host_ttl", - "server_infra_lame_ttl", "server_infra_cache_numhosts", - "server_infra_cache_lame_size", "server_infra_cache_slabs", - "server_infra_cache_min_rtt", "server_infra_keep_probing", - "server_target_fetch_policy", "server_harden_short_bufsize", - "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_below_nxdomain", - "server_harden_referral_path", "server_harden_algo_downgrade", - "server_use_caps_for_id", "server_caps_whitelist", - "server_private_address", "server_private_domain", "server_prefetch", - "server_prefetch_key", "server_deny_any", - "server_unwanted_reply_threshold", "server_do_not_query_address", - "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", - "server_val_sig_skew_min", "server_val_sig_skew_max", - "server_cache_max_ttl", "server_cache_max_negative_ttl", - "server_cache_min_ttl", "server_bogus_ttl", - "server_val_clean_additional", "server_val_permissive_mode", - "server_aggressive_nsec", "server_ignore_cd_flag", - "server_serve_expired", "server_serve_expired_ttl", - "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl", - "server_serve_expired_client_timeout", "server_serve_original_ttl", - "server_fake_dsa", "server_fake_sha1", "server_val_log_level", - "server_val_nsec3_keysize_iterations", "server_zonemd_permissive_mode", - "server_add_holddown", "server_del_holddown", "server_keep_missing", + "server_tcp_reuse_timeout", "server_tcp_auth_query_timeout", + "server_tcp_keepalive", "server_tcp_keepalive_timeout", + "server_tcp_upstream", "server_udp_upstream_without_downstream", + "server_ssl_upstream", "server_ssl_service_key", + "server_ssl_service_pem", "server_ssl_port", "server_tls_cert_bundle", + "server_tls_win_cert", "server_tls_additional_port", + "server_tls_ciphers", "server_tls_ciphersuites", + "server_tls_session_ticket_keys", "server_tls_use_sni", + "server_https_port", "server_http_endpoint", "server_http_max_streams", + "server_http_query_buffer_size", "server_http_response_buffer_size", + "server_http_nodelay", "server_http_notls_downstream", + "server_use_systemd", "server_do_daemonize", "server_use_syslog", + "server_log_time_ascii", "server_log_queries", "server_log_replies", + "server_log_tag_queryreply", "server_log_servfail", + "server_log_local_actions", "server_chroot", "server_username", + "server_directory", "server_logfile", "server_pidfile", + "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", + "server_auto_trust_anchor_file", "server_trust_anchor_file", + "server_trusted_keys_file", "server_trust_anchor", + "server_trust_anchor_signaling", "server_root_key_sentinel", + "server_domain_insecure", "server_hide_identity", "server_hide_version", + "server_hide_trustanchor", "server_identity", "server_version", + "server_nsid", "server_so_rcvbuf", "server_so_sndbuf", + "server_so_reuseport", "server_ip_transparent", "server_ip_freebind", + "server_ip_dscp", "server_stream_wait_size", "server_edns_buffer_size", + "server_msg_buffer_size", "server_msg_cache_size", + "server_msg_cache_slabs", "server_num_queries_per_thread", + "server_jostle_timeout", "server_delay_close", "server_udp_connect", + "server_unblock_lan_zones", "server_insecure_lan_zones", + "server_rrset_cache_size", "server_rrset_cache_slabs", + "server_infra_host_ttl", "server_infra_lame_ttl", + "server_infra_cache_numhosts", "server_infra_cache_lame_size", + "server_infra_cache_slabs", "server_infra_cache_min_rtt", + "server_infra_keep_probing", "server_target_fetch_policy", + "server_harden_short_bufsize", "server_harden_large_queries", + "server_harden_glue", "server_harden_dnssec_stripped", + "server_harden_below_nxdomain", "server_harden_referral_path", + "server_harden_algo_downgrade", "server_use_caps_for_id", + "server_caps_whitelist", "server_private_address", + "server_private_domain", "server_prefetch", "server_prefetch_key", + "server_deny_any", "server_unwanted_reply_threshold", + "server_do_not_query_address", "server_do_not_query_localhost", + "server_access_control", "server_module_conf", + "server_val_override_date", "server_val_sig_skew_min", + "server_val_sig_skew_max", "server_cache_max_ttl", + "server_cache_max_negative_ttl", "server_cache_min_ttl", + "server_bogus_ttl", "server_val_clean_additional", + "server_val_permissive_mode", "server_aggressive_nsec", + "server_ignore_cd_flag", "server_serve_expired", + "server_serve_expired_ttl", "server_serve_expired_ttl_reset", + "server_serve_expired_reply_ttl", "server_serve_expired_client_timeout", + "server_serve_original_ttl", "server_fake_dsa", "server_fake_sha1", + "server_val_log_level", "server_val_nsec3_keysize_iterations", + "server_zonemd_permissive_mode", "server_add_holddown", + "server_del_holddown", "server_keep_missing", "server_permit_small_holddown", "server_key_cache_size", "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", "server_local_data", "server_local_data_ptr", "server_minimal_responses", @@ -2174,20 +1631,14 @@ static const char *const yytname[] = "cachedb_backend_name", "cachedb_secret_seed", "redis_server_host", "redis_server_port", "redis_timeout", "redis_expire_records", "server_tcp_connection_limit", "ipsetstart", "contents_ipset", - "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR + "content_ipset", "ipset_name_v4", "ipset_name_v6", 0 }; - -static const char * -yysymbol_name (yysymbol_kind_t yysymbol) -{ - return yytname[yysymbol]; -} #endif -#ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -2220,586 +1671,43 @@ static const yytype_int16 yytoknum[] = 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567 + 565, 566, 567, 568 }; -#endif +# endif -#define YYPACT_NINF (-298) - -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) - -#define YYTABLE_NINF (-1) - -#define yytable_value_is_error(Yyn) \ - 0 - - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = { - -298, 0, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, 294, -43, -38, -42, -44, -28, -29, -147, - -109, -297, -190, -188, -289, 3, 4, 27, 28, 31, - 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, - 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 87, 89, 90, 91, - 93, 95, 96, 97, 99, 100, 101, 102, 103, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 214, 215, 216, 218, 224, 225, 226, - 227, 228, 230, 231, 233, 239, 240, 241, 242, 243, - 244, 246, 247, 248, 249, 250, 251, 252, 254, 255, - 256, 257, 259, 260, 261, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 287, 288, 289, 291, 292, 293, 295, - 329, 330, 331, 332, 336, 337, 338, 380, 381, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, 382, 383, 384, 385, 386, 387, - 388, -298, -298, -298, -298, -298, -298, -298, -298, 394, - 398, 399, 424, 425, 426, -298, -298, -298, -298, -298, - -298, -298, 435, 448, 449, 450, 451, 452, 453, -298, - -298, -298, -298, -298, -298, -298, -298, 454, 455, 456, - 457, 458, 459, 460, 461, 462, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, 463, 464, 465, 466, - 467, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, 507, 509, 526, 527, 528, 529, 530, 531, - -298, -298, -298, -298, -298, -298, -298, -298, -298, 532, - 533, 534, 535, 536, 547, 548, 549, 550, 551, 552, - 553, 555, 556, 557, 558, 559, 560, 561, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, 564, -298, - -298, 567, -298, -298, 570, 571, 580, 581, 582, 584, - 585, 586, 587, 588, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, 589, 590, 591, 596, 597, - 598, -298, -298, -298, -298, -298, -298, -298, 599, 600, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, 601, 602, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, 603, 604, 605, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, 606, 607, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, 608, 609, 610, 611, 612, - 613, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, 614, -298, -298, -298, -298, -298, -298, - -298, -298, -298, 615, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, 616, -298, -298, 617, 618, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, 619, 620, 621, - -298, -298, -298, -298, -298, -298, -298, -298, -298 -}; - - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ -static const yytype_int16 yydefact[] = -{ - 2, 0, 1, 18, 19, 236, 246, 533, 593, 552, - 255, 607, 630, 265, 646, 282, 598, 3, 17, 21, - 238, 248, 257, 267, 284, 535, 554, 595, 600, 609, - 632, 648, 4, 5, 6, 10, 14, 15, 8, 9, - 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 22, 23, 86, 89, 98, 200, 201, 24, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 37, 77, - 25, 90, 91, 48, 70, 85, 26, 27, 30, 31, - 28, 29, 32, 33, 34, 234, 235, 35, 36, 121, - 212, 122, 124, 125, 126, 214, 219, 215, 226, 227, - 228, 229, 127, 128, 129, 130, 131, 132, 133, 196, - 87, 76, 102, 119, 120, 224, 221, 123, 38, 39, - 40, 41, 42, 78, 92, 93, 108, 64, 74, 65, - 204, 205, 103, 58, 59, 203, 60, 61, 232, 112, - 116, 137, 147, 174, 150, 225, 113, 71, 43, 44, - 45, 100, 138, 139, 140, 141, 46, 47, 49, 50, - 52, 53, 51, 145, 151, 54, 55, 56, 62, 81, - 117, 95, 146, 88, 170, 96, 97, 114, 115, 222, - 101, 57, 79, 82, 63, 66, 104, 105, 80, 171, - 106, 67, 68, 69, 213, 118, 188, 189, 190, 191, - 192, 193, 194, 202, 107, 75, 233, 109, 110, 111, - 172, 72, 73, 94, 83, 84, 99, 134, 135, 223, - 136, 142, 143, 144, 175, 176, 178, 180, 181, 179, - 182, 197, 148, 149, 154, 155, 152, 153, 156, 157, - 159, 158, 216, 218, 217, 173, 183, 184, 185, 186, - 187, 206, 208, 207, 209, 210, 211, 230, 231, 177, - 195, 198, 199, 220, 0, 0, 0, 0, 0, 0, - 0, 237, 239, 240, 241, 243, 244, 245, 242, 0, - 0, 0, 0, 0, 0, 247, 249, 250, 251, 252, - 253, 254, 0, 0, 0, 0, 0, 0, 0, 256, - 258, 259, 262, 263, 260, 264, 261, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 266, 268, 269, 270, - 271, 275, 276, 272, 273, 274, 0, 0, 0, 0, - 0, 287, 291, 292, 293, 294, 283, 285, 286, 288, - 289, 290, 0, 0, 0, 0, 0, 0, 0, 0, - 534, 536, 538, 537, 543, 539, 540, 541, 542, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 553, 555, - 557, 556, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 0, 594, - 596, 0, 599, 601, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 608, 610, 611, 612, 614, 615, - 613, 616, 617, 618, 619, 0, 0, 0, 0, 0, - 0, 631, 633, 634, 635, 636, 637, 638, 0, 0, - 647, 649, 650, 296, 295, 302, 315, 313, 325, 321, - 322, 326, 323, 324, 327, 328, 329, 332, 333, 363, - 364, 365, 366, 367, 393, 394, 395, 401, 402, 318, - 403, 404, 407, 405, 406, 410, 411, 412, 426, 378, - 379, 381, 382, 413, 429, 372, 374, 430, 436, 437, - 438, 319, 392, 456, 457, 373, 450, 356, 314, 368, - 427, 433, 414, 0, 0, 460, 320, 297, 355, 418, - 298, 316, 317, 369, 370, 458, 416, 420, 421, 331, - 330, 299, 461, 396, 425, 357, 377, 431, 432, 435, - 449, 371, 454, 452, 453, 384, 391, 422, 423, 385, - 386, 415, 440, 358, 359, 362, 334, 336, 337, 338, - 339, 340, 347, 348, 349, 350, 351, 352, 353, 462, - 463, 465, 397, 398, 399, 400, 408, 409, 466, 467, - 468, 0, 0, 0, 417, 387, 389, 603, 477, 481, - 479, 478, 482, 480, 0, 0, 485, 486, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 419, 434, - 455, 490, 491, 388, 469, 0, 0, 0, 0, 0, - 0, 441, 442, 443, 444, 445, 446, 447, 448, 604, - 380, 375, 439, 354, 300, 301, 376, 492, 493, 494, - 495, 496, 498, 497, 499, 500, 501, 335, 342, 487, - 489, 488, 341, 0, 361, 424, 464, 360, 390, 343, - 344, 346, 345, 0, 503, 383, 451, 504, 505, 506, - 510, 509, 507, 508, 511, 512, 513, 514, 516, 515, - 526, 0, 530, 531, 0, 0, 532, 517, 524, 518, - 519, 520, 523, 525, 521, 522, 277, 278, 279, 280, - 281, 544, 546, 545, 548, 549, 550, 551, 547, 574, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 575, - 585, 586, 587, 588, 589, 590, 591, 592, 597, 602, - 620, 621, 622, 625, 623, 624, 626, 627, 628, 629, - 639, 640, 641, 642, 643, 644, 651, 652, 428, 459, - 476, 605, 606, 483, 484, 470, 471, 0, 0, 0, - 475, 645, 502, 527, 528, 529, 474, 472, 473 -}; - - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, 267, - 595, 622, 623, 624, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298 -}; - - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 1, 17, 18, 19, 32, 259, 20, 33, 481, - 21, 34, 495, 22, 35, 509, 23, 36, 526, 541, - 542, 543, 544, 545, 24, 37, 546, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 482, 483, 484, 485, - 486, 487, 488, 496, 497, 498, 499, 500, 501, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 510, 511, - 512, 513, 514, 515, 516, 25, 38, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 26, 39, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 27, 40, - 609, 610, 28, 41, 612, 613, 469, 470, 471, 472, - 29, 42, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 30, 43, 641, 642, 643, 644, 645, - 646, 647, 473, 31, 44, 650, 651, 652 -}; - - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = -{ - 2, 517, 474, 502, 475, 476, 608, 489, 648, 649, - 611, 3, 4, 653, 654, 490, 491, 517, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 655, 656, 503, - 504, 657, 658, 659, 660, 661, 5, 662, 663, 664, - 665, 666, 6, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 667, 668, 669, 505, 477, 552, 553, - 554, 555, 556, 557, 558, 559, 635, 636, 637, 638, - 639, 640, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 7, 684, 478, 685, - 686, 687, 492, 688, 493, 689, 690, 691, 479, 692, - 693, 694, 695, 696, 8, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 506, 507, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, - 740, 741, 742, 743, 9, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 761, 508, 762, 763, 764, 765, 766, 767, - 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, - 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, - 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, - 798, 799, 800, 10, 801, 802, 803, 518, 804, 519, - 520, 521, 522, 523, 805, 806, 807, 808, 809, 524, - 810, 811, 11, 812, 480, 519, 520, 521, 494, 813, - 814, 815, 816, 817, 818, 524, 819, 820, 821, 822, - 823, 824, 825, 12, 826, 827, 828, 829, 525, 830, - 831, 832, 13, 536, 537, 538, 539, 540, 833, 834, - 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 14, 851, 852, 853, - 15, 854, 855, 856, 547, 857, 16, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 858, - 859, 860, 861, 77, 78, 79, 862, 863, 864, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 865, 866, 867, 868, 869, 870, 871, 872, 873, 121, - 122, 123, 124, 125, 874, 126, 127, 128, 875, 876, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 877, 878, 879, 153, 154, 155, - 156, 157, 158, 159, 160, 880, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 881, 882, - 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 900, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 901, 212, 902, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 903, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 914, 915, 916, - 917, 918, 919, 920, 239, 921, 922, 923, 924, 925, - 926, 927, 240, 241, 928, 242, 243, 929, 244, 245, - 930, 931, 246, 247, 248, 249, 250, 251, 252, 253, - 932, 933, 934, 254, 935, 936, 937, 938, 939, 940, - 941, 942, 255, 256, 257, 258, 943, 944, 945, 946, - 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, - 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, - 967, 968, 548, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 549, - 550, 551 -}; - -static const yytype_int16 yycheck[] = -{ - 0, 45, 45, 45, 47, 48, 115, 45, 297, 298, - 307, 11, 12, 10, 10, 53, 54, 45, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 10, 10, 81, - 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, - 10, 10, 52, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 10, 10, 10, 108, 110, 97, 98, - 99, 100, 101, 102, 103, 104, 264, 265, 266, 267, - 268, 269, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 96, 10, 141, 10, - 10, 10, 140, 10, 142, 10, 10, 10, 151, 10, - 10, 10, 10, 10, 114, 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, 185, 186, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 164, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 225, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 223, 10, 10, 10, 271, 10, 273, - 274, 275, 276, 277, 10, 10, 10, 10, 10, 283, - 10, 10, 242, 10, 287, 273, 274, 275, 286, 10, - 10, 10, 10, 10, 10, 283, 10, 10, 10, 10, - 10, 10, 10, 263, 10, 10, 10, 10, 312, 10, - 10, 10, 272, 301, 302, 303, 304, 305, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 296, 10, 10, 10, - 300, 10, 10, 10, 37, 10, 306, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 10, - 10, 10, 10, 49, 50, 51, 10, 10, 10, 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, 91, 92, 93, 94, 95, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 105, - 106, 107, 108, 109, 10, 111, 112, 113, 10, 10, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 10, 10, 10, 143, 144, 145, - 146, 147, 148, 149, 150, 10, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 10, 224, 10, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 10, 10, 10, - 10, 10, 10, 10, 270, 10, 10, 10, 10, 10, - 10, 10, 278, 279, 10, 281, 282, 10, 284, 285, - 10, 10, 288, 289, 290, 291, 292, 293, 294, 295, - 10, 10, 10, 299, 10, 10, 10, 10, 10, 10, - 10, 10, 308, 309, 310, 311, 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, 37, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, - 37, 37 -}; - - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_int16 yystos[] = -{ - 0, 314, 0, 11, 12, 46, 52, 96, 114, 164, - 223, 242, 263, 272, 296, 300, 306, 315, 316, 317, - 320, 323, 326, 329, 337, 578, 589, 611, 615, 623, - 636, 646, 318, 321, 324, 327, 330, 338, 579, 590, - 612, 616, 624, 637, 647, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, - 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, 91, 92, 93, 94, - 95, 105, 106, 107, 108, 109, 111, 112, 113, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 143, 144, 145, 146, 147, 148, 149, - 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 224, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 270, - 278, 279, 281, 282, 284, 285, 288, 289, 290, 291, - 292, 293, 294, 295, 299, 308, 309, 310, 311, 319, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 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, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 619, - 620, 621, 622, 645, 45, 47, 48, 110, 141, 151, - 287, 322, 549, 550, 551, 552, 553, 554, 555, 45, - 53, 54, 140, 142, 286, 325, 556, 557, 558, 559, - 560, 561, 45, 81, 82, 108, 185, 186, 225, 328, - 571, 572, 573, 574, 575, 576, 577, 45, 271, 273, - 274, 275, 276, 277, 283, 312, 331, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 301, 302, 303, 304, - 305, 332, 333, 334, 335, 336, 339, 562, 563, 564, - 565, 566, 97, 98, 99, 100, 101, 102, 103, 104, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 115, 613, - 614, 307, 617, 618, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 264, 265, 266, 267, 268, - 269, 638, 639, 640, 641, 642, 643, 644, 297, 298, - 648, 649, 650, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int16 yyr1[] = -{ - 0, 313, 314, 314, 315, 315, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 316, 317, - 318, 318, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - 319, 319, 319, 319, 319, 319, 320, 321, 321, 322, - 322, 322, 322, 322, 322, 322, 323, 324, 324, 325, - 325, 325, 325, 325, 325, 326, 327, 327, 328, 328, - 328, 328, 328, 328, 328, 329, 330, 330, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 332, 333, 334, - 335, 336, 337, 338, 338, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 340, 341, 342, 343, 344, + 0, 314, 315, 315, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 317, 318, + 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 321, 322, 322, + 323, 323, 323, 323, 323, 323, 323, 324, 325, 325, + 326, 326, 326, 326, 326, 326, 327, 328, 328, 329, + 329, 329, 329, 329, 329, 329, 330, 331, 331, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 333, 334, + 335, 336, 337, 338, 339, 339, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 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, @@ -2823,23 +1731,23 @@ static const yytype_int16 yyr1[] = 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 579, 580, 580, 580, 580, - 580, 580, 580, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 590, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 592, 593, 594, 595, 596, 597, + 575, 576, 577, 578, 579, 580, 581, 581, 582, 582, + 582, 582, 582, 582, 582, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 592, 593, 593, 593, + 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, + 593, 593, 593, 593, 593, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 612, 613, 614, 615, 616, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 624, - 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 637, 638, 638, 638, 638, 638, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 647, 648, - 648, 649, 650 + 608, 609, 610, 611, 612, 613, 614, 614, 615, 616, + 617, 618, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 626, 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 639, 640, 640, 640, 640, 640, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 649, 650, 650, 651, 652 }; - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -2864,13 +1772,13 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, @@ -2883,66 +1791,660 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, + 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 4, 4, 4, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 1, 2, 0, 1, 2, + 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 2, 1, 2, - 0, 1, 2, 2, 2, 3, 3, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 3, 1, 2, 0, 1, - 1, 2, 2 + 1, 2, 2, 2, 2, 2, 2, 3, 1, 2, + 0, 1, 1, 2, 2 }; +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const yytype_uint16 yydefact[] = +{ + 2, 0, 1, 18, 19, 237, 247, 535, 595, 554, + 256, 609, 632, 266, 648, 283, 600, 3, 17, 21, + 239, 249, 258, 268, 285, 537, 556, 597, 602, 611, + 634, 650, 4, 5, 6, 10, 14, 15, 8, 9, + 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 22, 23, 86, 89, 98, 200, 201, 24, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 37, + 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, + 31, 28, 29, 32, 33, 34, 234, 235, 236, 35, + 36, 121, 212, 122, 124, 125, 126, 214, 219, 215, + 226, 227, 228, 229, 127, 128, 129, 130, 131, 132, + 133, 196, 87, 76, 102, 119, 120, 224, 221, 123, + 38, 39, 40, 41, 42, 78, 92, 93, 108, 64, + 74, 65, 204, 205, 103, 58, 59, 203, 60, 61, + 232, 112, 116, 137, 147, 174, 150, 225, 113, 71, + 43, 44, 45, 100, 138, 139, 140, 141, 46, 47, + 49, 50, 52, 53, 51, 145, 151, 54, 55, 56, + 62, 81, 117, 95, 146, 88, 170, 96, 97, 114, + 115, 222, 101, 57, 79, 82, 63, 66, 104, 105, + 80, 171, 106, 67, 68, 69, 213, 118, 188, 189, + 190, 191, 192, 193, 194, 202, 107, 75, 233, 109, + 110, 111, 172, 72, 73, 94, 83, 84, 99, 134, + 135, 223, 136, 142, 143, 144, 175, 176, 178, 180, + 181, 179, 182, 197, 148, 149, 154, 155, 152, 153, + 156, 157, 159, 158, 216, 218, 217, 173, 183, 184, + 185, 186, 187, 206, 208, 207, 209, 210, 211, 230, + 231, 177, 195, 198, 199, 220, 0, 0, 0, 0, + 0, 0, 0, 238, 240, 241, 242, 244, 245, 246, + 243, 0, 0, 0, 0, 0, 0, 248, 250, 251, + 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, + 0, 257, 259, 260, 263, 264, 261, 265, 262, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, + 270, 271, 272, 276, 277, 273, 274, 275, 0, 0, + 0, 0, 0, 288, 292, 293, 294, 295, 284, 286, + 287, 289, 290, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 536, 538, 540, 539, 545, 541, 542, 543, + 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 557, 559, 558, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 0, 596, 598, 0, 601, 603, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 610, 612, 613, 614, + 616, 617, 615, 618, 619, 620, 621, 0, 0, 0, + 0, 0, 0, 633, 635, 636, 637, 638, 639, 640, + 0, 0, 649, 651, 652, 297, 296, 303, 316, 314, + 326, 322, 323, 327, 324, 325, 328, 329, 330, 334, + 335, 365, 366, 367, 368, 369, 395, 396, 397, 403, + 404, 319, 405, 406, 409, 407, 408, 412, 413, 414, + 428, 380, 381, 383, 384, 415, 431, 374, 376, 432, + 438, 439, 440, 320, 394, 458, 459, 375, 452, 358, + 315, 370, 429, 435, 416, 0, 0, 462, 321, 298, + 357, 420, 299, 317, 318, 371, 372, 460, 418, 422, + 423, 332, 331, 300, 463, 398, 427, 359, 379, 433, + 434, 437, 451, 373, 456, 454, 455, 386, 393, 424, + 425, 387, 388, 417, 442, 360, 361, 364, 336, 338, + 333, 339, 340, 341, 342, 349, 350, 351, 352, 353, + 354, 355, 464, 465, 467, 399, 400, 401, 402, 410, + 411, 468, 469, 470, 0, 0, 0, 419, 389, 391, + 605, 479, 483, 481, 480, 484, 482, 0, 0, 487, + 488, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 421, 436, 457, 492, 493, 390, 471, 0, 0, + 0, 0, 0, 0, 443, 444, 445, 446, 447, 448, + 449, 450, 606, 382, 377, 441, 356, 301, 302, 378, + 494, 495, 496, 497, 498, 500, 499, 501, 502, 503, + 337, 344, 489, 491, 490, 343, 0, 363, 426, 466, + 362, 392, 345, 346, 348, 347, 0, 505, 385, 453, + 506, 507, 508, 512, 511, 509, 510, 513, 514, 515, + 516, 518, 517, 528, 0, 532, 533, 0, 0, 534, + 519, 526, 520, 521, 522, 525, 527, 523, 524, 278, + 279, 280, 281, 282, 546, 548, 547, 550, 551, 552, + 553, 549, 576, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 577, 587, 588, 589, 590, 591, 592, 593, + 594, 599, 604, 622, 623, 624, 627, 625, 626, 628, + 629, 630, 631, 641, 642, 643, 644, 645, 646, 653, + 654, 430, 461, 478, 607, 608, 485, 486, 472, 473, + 0, 0, 0, 477, 647, 504, 529, 530, 531, 476, + 474, 475 +}; -enum { YYENOMEM = -2 }; +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 1, 17, 18, 19, 32, 260, 20, 33, 483, + 21, 34, 497, 22, 35, 511, 23, 36, 528, 543, + 544, 545, 546, 547, 24, 37, 548, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 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, 484, 485, 486, + 487, 488, 489, 490, 498, 499, 500, 501, 502, 503, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 512, + 513, 514, 515, 516, 517, 518, 25, 38, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 26, 39, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 27, + 40, 611, 612, 28, 41, 614, 615, 471, 472, 473, + 474, 29, 42, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 30, 43, 643, 644, 645, 646, + 647, 648, 649, 475, 31, 44, 652, 653, 654 +}; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -299 +static const yytype_int16 yypact[] = +{ + -299, 0, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, 295, -43, -38, -42, -44, -28, -29, -148, + -109, -298, -191, -189, -290, 3, 4, 27, 28, 31, + 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, + 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 87, 88, 90, 91, + 92, 94, 96, 97, 98, 100, 101, 102, 103, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 215, 216, 217, 219, 225, 226, + 227, 228, 229, 231, 232, 234, 240, 241, 242, 243, + 244, 245, 247, 248, 249, 250, 251, 252, 253, 255, + 256, 257, 258, 260, 261, 262, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 288, 289, 290, 292, 293, 294, + 296, 330, 331, 332, 333, 337, 338, 339, 381, 382, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, 383, 384, 385, 386, + 387, 388, 389, -299, -299, -299, -299, -299, -299, -299, + -299, 395, 399, 400, 426, 427, 428, -299, -299, -299, + -299, -299, -299, -299, 437, 450, 451, 452, 453, 454, + 455, -299, -299, -299, -299, -299, -299, -299, -299, 456, + 457, 458, 459, 460, 461, 462, 463, 464, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, 465, 466, + 467, 468, 469, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, 509, 511, 528, 529, 530, 531, + 532, 533, -299, -299, -299, -299, -299, -299, -299, -299, + -299, 534, 535, 536, 537, 538, 549, 550, 551, 552, + 553, 554, 555, 557, 558, 559, 560, 561, 562, 563, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + 566, -299, -299, 569, -299, -299, 572, 573, 582, 583, + 584, 586, 587, 588, 589, 590, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, 591, 592, 593, + 598, 599, 600, -299, -299, -299, -299, -299, -299, -299, + 601, 602, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, 603, 604, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, 605, 606, 607, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, 608, 609, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, 610, 611, + 612, 613, 614, 615, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, 616, -299, -299, -299, + -299, -299, -299, -299, -299, -299, 617, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, 618, -299, -299, 619, 620, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + 621, 622, 623, -299, -299, -299, -299, -299, -299, -299, + -299, -299 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + 268, 597, 624, 625, 626, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299 +}; +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -1 +static const yytype_uint16 yytable[] = +{ + 2, 519, 476, 504, 477, 478, 610, 491, 650, 651, + 613, 3, 4, 655, 656, 492, 493, 519, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 657, 658, 505, + 506, 659, 660, 661, 662, 663, 5, 664, 665, 666, + 667, 668, 6, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 669, 670, 671, 507, 479, 554, 555, + 556, 557, 558, 559, 560, 561, 637, 638, 639, 640, + 641, 642, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 7, 686, 687, 480, + 688, 689, 690, 494, 691, 495, 692, 693, 694, 481, + 695, 696, 697, 698, 8, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 508, 509, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 9, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 510, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, + 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 802, 803, 10, 804, 805, 806, 520, 807, + 521, 522, 523, 524, 525, 808, 809, 810, 811, 812, + 526, 813, 814, 11, 815, 482, 521, 522, 523, 496, + 816, 817, 818, 819, 820, 821, 526, 822, 823, 824, + 825, 826, 827, 828, 12, 829, 830, 831, 832, 527, + 833, 834, 835, 13, 538, 539, 540, 541, 542, 836, + 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 14, 854, 855, + 856, 15, 857, 858, 859, 549, 860, 16, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 861, 862, 863, 864, 77, 78, 79, 865, 866, 867, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 868, 869, 870, 871, 872, 873, 874, 875, 876, + 121, 122, 123, 124, 125, 877, 126, 127, 128, 878, + 879, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 880, 881, 882, 154, + 155, 156, 157, 158, 159, 160, 161, 883, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 904, + 213, 905, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 906, 907, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 917, + 918, 919, 920, 921, 922, 923, 240, 924, 925, 926, + 927, 928, 929, 930, 241, 242, 931, 243, 244, 932, + 245, 246, 933, 934, 247, 248, 249, 250, 251, 252, + 253, 254, 935, 936, 937, 255, 938, 939, 940, 941, + 942, 943, 944, 945, 256, 257, 258, 259, 946, 947, + 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, + 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, + 968, 969, 970, 971, 550, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 551, 552, 553 +}; + +static const yytype_int16 yycheck[] = +{ + 0, 45, 45, 45, 47, 48, 115, 45, 298, 299, + 308, 11, 12, 10, 10, 53, 54, 45, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 10, 10, 81, + 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, + 10, 10, 52, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 10, 10, 10, 108, 110, 97, 98, + 99, 100, 101, 102, 103, 104, 265, 266, 267, 268, + 269, 270, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 96, 10, 10, 142, + 10, 10, 10, 141, 10, 143, 10, 10, 10, 152, + 10, 10, 10, 10, 114, 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, 186, 187, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 165, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 226, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 224, 10, 10, 10, 272, 10, + 274, 275, 276, 277, 278, 10, 10, 10, 10, 10, + 284, 10, 10, 243, 10, 288, 274, 275, 276, 287, + 10, 10, 10, 10, 10, 10, 284, 10, 10, 10, + 10, 10, 10, 10, 264, 10, 10, 10, 10, 313, + 10, 10, 10, 273, 302, 303, 304, 305, 306, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 297, 10, 10, + 10, 301, 10, 10, 10, 37, 10, 307, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 10, 10, 10, 10, 49, 50, 51, 10, 10, 10, + 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, 91, 92, 93, 94, + 95, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 105, 106, 107, 108, 109, 10, 111, 112, 113, 10, + 10, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 10, 10, 10, 144, + 145, 146, 147, 148, 149, 150, 151, 10, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 10, + 225, 10, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 10, + 10, 10, 10, 10, 10, 10, 271, 10, 10, 10, + 10, 10, 10, 10, 279, 280, 10, 282, 283, 10, + 285, 286, 10, 10, 289, 290, 291, 292, 293, 294, + 295, 296, 10, 10, 10, 300, 10, 10, 10, 10, + 10, 10, 10, 10, 309, 310, 311, 312, 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, 37, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 37, 37, 37 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 315, 0, 11, 12, 46, 52, 96, 114, 165, + 224, 243, 264, 273, 297, 301, 307, 316, 317, 318, + 321, 324, 327, 330, 338, 580, 591, 613, 617, 625, + 638, 648, 319, 322, 325, 328, 331, 339, 581, 592, + 614, 618, 626, 639, 649, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, + 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, 91, 92, 93, 94, + 95, 105, 106, 107, 108, 109, 111, 112, 113, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 144, 145, 146, 147, 148, 149, + 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 225, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 271, 279, 280, 282, 283, 285, 286, 289, 290, 291, + 292, 293, 294, 295, 296, 300, 309, 310, 311, 312, + 320, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 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, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 621, 622, 623, 624, 647, 45, 47, 48, 110, + 142, 152, 288, 323, 551, 552, 553, 554, 555, 556, + 557, 45, 53, 54, 141, 143, 287, 326, 558, 559, + 560, 561, 562, 563, 45, 81, 82, 108, 186, 187, + 226, 329, 573, 574, 575, 576, 577, 578, 579, 45, + 272, 274, 275, 276, 277, 278, 284, 313, 332, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 302, 303, + 304, 305, 306, 333, 334, 335, 336, 337, 340, 564, + 565, 566, 567, 568, 97, 98, 99, 100, 101, 102, + 103, 104, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 115, 615, 616, 308, 619, 620, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 265, 266, 267, + 268, 269, 270, 640, 641, 642, 643, 644, 645, 646, + 298, 299, 650, 651, 652, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 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 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ + +#define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ - do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ - while (0) +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) -/* Backward compatibility with an undocumented macro. - Use YYerror or YYUNDEF. */ -#define YYERRCODE YYUNDEF +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2952,65 +2454,80 @@ enum { YYENOMEM = -2 }; # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) -/* This macro is provided for backward compatibility. */ -# ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Kind, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) - - -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_value_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif { - FILE *yyoutput = yyo; - YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yykind < YYNTOKENS) - YYPRINT (yyo, yytoknum[yykind], *yyvaluep); + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); # endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END + switch (yytype) + { + default: + break; + } } -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyo, - yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif { - YYFPRINTF (yyo, "%s %s (", - yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); - yy_symbol_value_print (yyo, yykind, yyvaluep); - YYFPRINTF (yyo, ")"); + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. @@ -3018,68 +2535,80 @@ yy_symbol_print (FILE *yyo, | TOP (included). | `------------------------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif { YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, - int yyrule) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif { - int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", - yyrule - 1, yylno); + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), - &yyvsp[(yyi + 1) - (yynrhs)]); - YYFPRINTF (stderr, "\n"); + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule); \ -} while (0) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) ((void) 0) -# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -3094,230 +2623,478 @@ int yydebug; # define YYMAXDEPTH 10000 #endif + +#if YYERROR_VERBOSE +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yydestruct (const char *yymsg, - yysymbol_kind_t yykind, YYSTYPE *yyvaluep) +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif { YYUSE (yyvaluep); + if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); - YY_IGNORE_MAYBE_UNINITIALIZED_END + switch (yytype) + { + + default: + break; + } } + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -/* The lookahead symbol. */ + +/* The look-ahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +/* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; + /* Number of syntax errors so far. */ int yynerrs; - /*----------. | yyparse. | `----------*/ +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (void) +#else +int +yyparse () + +#endif +#endif { - yy_state_fast_t yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* Their size. */ - YYPTRDIFF_T yystacksize; - - /* The state stack. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - + + int yystate; int yyn; - /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ - yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); - yychar = YYEMPTY; /* Cause a token to be read. */ + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + goto yysetstate; - /*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | +| yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ -yynewstate: + yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - -/*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END - YY_STACK_PRINT (yyss, yyssp); + yysetstate: + *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else { /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; + YYSIZE_T yysize = yyssp - yyss + 1; -# if defined yyoverflow +#ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - yy_state_t *yyss1 = yyss; - YYSTYPE *yyvs1 = yyvs; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), - &yystacksize); - yyss = yyss1; - yyvs = yyvs1; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; } -# else /* defined YYSTACK_RELOCATE */ +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yy_state_t *yyss1 = yyss; - union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif +#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - if (yystate == YYFINAL) - YYACCEPT; + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; - /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to lookahead token. */ + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yypact_value_is_default (yyn)) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ + /* Not known => get a look-ahead token if don't already have one. */ - /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token\n")); - yychar = yylex (); + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; } if (yychar <= YYEOF) { - yychar = YYEOF; - yytoken = YYSYMBOL_YYEOF; + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } - else if (yychar == YYerror) - { - /* The scanner already issued an error message, process directly - to error recovery. But do not keep the error token as - lookahead, it is too special and may lead us to an endless - loop in error recovery. */ - yychar = YYUNDEF; - yytoken = YYSYMBOL_YYerror; - goto yyerrlab1; - } else { yytoken = YYTRANSLATE (yychar); @@ -3332,26 +3109,30 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yytable_value_is_error (yyn)) - goto yyerrlab; + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; yyn = -yyn; goto yyreduce; } + if (yyn == YYFINAL) + YYACCEPT; + /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the lookahead token. */ + /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - yystate = yyn; - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END - /* Discard the shifted token. */ - yychar = YYEMPTY; + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + goto yynewstate; @@ -3366,14 +3147,14 @@ yydefault: /*-----------------------------. -| yyreduce -- do a reduction. | +| yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. + `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3386,25 +3167,23 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 198 "./util/configparser.y" - { + case 18: +#line 198 "util/configparser.y" + { OUTYY(("\nP(force-toplevel)\n")); } -#line 3395 "util/configparser.c" break; case 19: -#line 204 "./util/configparser.y" - { +#line 204 "util/configparser.y" + { OUTYY(("\nP(server:)\n")); } -#line 3403 "util/configparser.c" break; - case 236: -#line 309 "./util/configparser.y" - { + case 237: +#line 309 "util/configparser.y" + { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -3414,12 +3193,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3418 "util/configparser.c" break; - case 246: -#line 326 "./util/configparser.y" - { + case 247: +#line 326 "util/configparser.y" + { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -3429,12 +3207,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3433 "util/configparser.c" break; - case 255: -#line 343 "./util/configparser.y" - { + case 256: +#line 343 "util/configparser.y" + { struct config_view* s; OUTYY(("\nP(view:)\n")); s = (struct config_view*)calloc(1, sizeof(struct config_view)); @@ -3446,12 +3223,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3450 "util/configparser.c" break; - case 265: -#line 362 "./util/configparser.y" - { + case 266: +#line 362 "util/configparser.y" + { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -3467,18 +3243,17 @@ yyreduce: } else yyerror("out of memory"); } -#line 3471 "util/configparser.c" break; - case 277: -#line 387 "./util/configparser.y" - { + case 278: +#line 387 "util/configparser.y" + { uint8_t* bitlist; size_t len = 0; - OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); - bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), + OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (2)].str))); + bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(2) - (2)].str), &len); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); } @@ -3488,63 +3263,58 @@ yyreduce: } } -#line 3492 "util/configparser.c" - break; - - case 278: -#line 406 "./util/configparser.y" - { - OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && - strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && - strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) { - yyerror("rpz-action-override action: expected nxdomain, " - "nodata, passthru, drop, cname or disabled"); - free((yyvsp[0].str)); - cfg_parser->cfg->auths->rpz_action_override = NULL; - } - else { - cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); - } - } -#line 3511 "util/configparser.c" break; case 279: -#line 423 "./util/configparser.y" - { - OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->auths->rpz_cname); - cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); +#line 406 "util/configparser.y" + { + OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "nxdomain")!=0 && strcmp((yyvsp[(2) - (2)].str), "nodata")!=0 && + strcmp((yyvsp[(2) - (2)].str), "passthru")!=0 && strcmp((yyvsp[(2) - (2)].str), "drop")!=0 && + strcmp((yyvsp[(2) - (2)].str), "cname")!=0 && strcmp((yyvsp[(2) - (2)].str), "disabled")!=0) { + yyerror("rpz-action-override action: expected nxdomain, " + "nodata, passthru, drop, cname or disabled"); + free((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->auths->rpz_action_override = NULL; + } + else { + cfg_parser->cfg->auths->rpz_action_override = (yyvsp[(2) - (2)].str); + } } -#line 3521 "util/configparser.c" break; case 280: -#line 431 "./util/configparser.y" - { - OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 423 "util/configparser.y" + { + OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->auths->rpz_cname); + cfg_parser->cfg->auths->rpz_cname = (yyvsp[(2) - (2)].str); } -#line 3533 "util/configparser.c" break; case 281: -#line 441 "./util/configparser.y" - { - OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->auths->rpz_log_name); - cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); +#line 431 "util/configparser.y" + { + OUTYY(("P(rpz_log:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3543 "util/configparser.c" break; case 282: -#line 449 "./util/configparser.y" - { +#line 441 "util/configparser.y" + { + OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->auths->rpz_log_name); + cfg_parser->cfg->auths->rpz_log_name = (yyvsp[(2) - (2)].str); + } + break; + + case 283: +#line 449 "util/configparser.y" + { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -3559,292 +3329,273 @@ yyreduce: } else yyerror("out of memory"); } -#line 3563 "util/configparser.c" - break; - - case 295: -#line 472 "./util/configparser.y" - { - OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 3575 "util/configparser.c" break; case 296: -#line 481 "./util/configparser.y" - { - OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 472 "util/configparser.y" + { + OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3587 "util/configparser.c" break; case 297: -#line 490 "./util/configparser.y" - { - OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) - cfg_parser->cfg->stat_interval = 0; - else if(atoi((yyvsp[0].str)) == 0) +#line 481 "util/configparser.y" + { + OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3601 "util/configparser.c" break; case 298: -#line 501 "./util/configparser.y" - { - OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 490 "util/configparser.y" + { + OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) + cfg_parser->cfg->stat_interval = 0; + else if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3613 "util/configparser.c" break; case 299: -#line 510 "./util/configparser.y" - { - OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 501 "util/configparser.y" + { + OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3625 "util/configparser.c" break; case 300: -#line 519 "./util/configparser.y" - { - OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 510 "util/configparser.y" + { + OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3637 "util/configparser.c" break; case 301: -#line 528 "./util/configparser.y" - { - OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) - cfg_parser->cfg->shm_key = 0; - else if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 519 "util/configparser.y" + { + OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3651 "util/configparser.c" break; case 302: -#line 539 "./util/configparser.y" - { - OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->port = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 528 "util/configparser.y" + { + OUTYY(("P(server_shm_key:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) + cfg_parser->cfg->shm_key = 0; + else if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->shm_key = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3663 "util/configparser.c" break; case 303: -#line 548 "./util/configparser.y" - { - #ifdef CLIENT_SUBNET - OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) - fatal_exit("out of memory adding client-subnet"); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - free((yyvsp[0].str)); - #endif +#line 539 "util/configparser.y" + { + OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3678 "util/configparser.c" break; case 304: -#line 560 "./util/configparser.y" - { +#line 548 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, - (yyvsp[0].str))) - fatal_exit("out of memory adding client-subnet-zone"); + OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding client-subnet"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); #endif } -#line 3694 "util/configparser.c" break; case 305: -#line 574 "./util/configparser.y" - { +#line 560 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_always_forward:%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->client_subnet_always_forward = - (strcmp((yyvsp[0].str), "yes")==0); + OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, + (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding client-subnet-zone"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); #endif - free((yyvsp[0].str)); } -#line 3712 "util/configparser.c" break; case 306: -#line 589 "./util/configparser.y" - { +#line 574 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); + OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else + cfg_parser->cfg->client_subnet_always_forward = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free((yyvsp[(2) - (2)].str)); + } + break; + + case 307: +#line 589 "util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[(2) - (2)].str))); OUTYY(("P(Deprecated option, ignoring)\n")); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3726 "util/configparser.c" - break; - - case 307: -#line 600 "./util/configparser.y" - { - #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("IPv4 subnet length expected"); - else if (atoi((yyvsp[0].str)) > 32) - cfg_parser->cfg->max_client_subnet_ipv4 = 32; - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->max_client_subnet_ipv4 = 0; - else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free((yyvsp[0].str)); - } -#line 3746 "util/configparser.c" break; case 308: -#line 617 "./util/configparser.y" - { +#line 600 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("Ipv6 subnet length expected"); - else if (atoi((yyvsp[0].str)) > 128) - cfg_parser->cfg->max_client_subnet_ipv6 = 128; - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->max_client_subnet_ipv6 = 0; - else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); + OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("IPv4 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 32) + cfg_parser->cfg->max_client_subnet_ipv4 = 32; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_client_subnet_ipv4 = 0; + else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3766 "util/configparser.c" break; case 309: -#line 634 "./util/configparser.y" - { +#line 617 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("IPv4 subnet length expected"); - else if (atoi((yyvsp[0].str)) > 32) - cfg_parser->cfg->min_client_subnet_ipv4 = 32; - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->min_client_subnet_ipv4 = 0; - else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); + OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("Ipv6 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 128) + cfg_parser->cfg->max_client_subnet_ipv6 = 128; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_client_subnet_ipv6 = 0; + else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3786 "util/configparser.c" break; case 310: -#line 651 "./util/configparser.y" - { +#line 634 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("Ipv6 subnet length expected"); - else if (atoi((yyvsp[0].str)) > 128) - cfg_parser->cfg->min_client_subnet_ipv6 = 128; - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->min_client_subnet_ipv6 = 0; - else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); + OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("IPv4 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 32) + cfg_parser->cfg->min_client_subnet_ipv4 = 32; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->min_client_subnet_ipv4 = 0; + else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3806 "util/configparser.c" break; case 311: -#line 668 "./util/configparser.y" - { +#line 651 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("IPv4 ECS tree size expected"); - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str)); + OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("Ipv6 subnet length expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 128) + cfg_parser->cfg->min_client_subnet_ipv6 = 128; + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->min_client_subnet_ipv6 = 0; + else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3824 "util/configparser.c" break; case 312: -#line 683 "./util/configparser.y" - { +#line 668 "util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("IPv6 ECS tree size expected"); - else if (atoi((yyvsp[0].str)) < 0) - cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str)); + OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("IPv4 ECS tree size expected"); + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0; + else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3842 "util/configparser.c" break; case 313: -#line 698 "./util/configparser.y" - { - OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); +#line 683 "util/configparser.y" + { + #ifdef CLIENT_SUBNET + OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("IPv6 ECS tree size expected"); + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0; + else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); + #endif + free((yyvsp[(2) - (2)].str)); + } + break; + + case 314: +#line 698 "util/configparser.y" + { + OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, @@ -3852,15 +3603,14 @@ yyreduce: if(!cfg_parser->cfg->ifs) yyerror("out of memory"); else - cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); + cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str); } -#line 3858 "util/configparser.c" break; - case 314: -#line 711 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); + case 315: +#line 711 "util/configparser.y" + { + OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->out_ifs = realloc( @@ -3870,628 +3620,590 @@ yyreduce: yyerror("out of memory"); else cfg_parser->cfg->out_ifs[ - cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); + cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str); } -#line 3876 "util/configparser.c" - break; - - case 315: -#line 726 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 3888 "util/configparser.c" break; case 316: -#line 735 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); - if(!cfg_mark_ports((yyvsp[0].str), 1, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[0].str)); +#line 726 "util/configparser.y" + { + OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3900 "util/configparser.c" break; case 317: -#line 744 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); - if(!cfg_mark_ports((yyvsp[0].str), 0, +#line 735 "util/configparser.y" + { + OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3912 "util/configparser.c" break; case 318: -#line 753 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 744 "util/configparser.y" + { + OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, + cfg_parser->cfg->outgoing_avail_ports, 65536)) + yyerror("port number or range (\"low-high\") expected"); + free((yyvsp[(2) - (2)].str)); } -#line 3924 "util/configparser.c" break; case 319: -#line 762 "./util/configparser.y" - { - OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 753 "util/configparser.y" + { + OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3936 "util/configparser.c" break; case 320: -#line 771 "./util/configparser.y" - { - OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 762 "util/configparser.y" + { + OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 3948 "util/configparser.c" break; case 321: -#line 780 "./util/configparser.y" - { - OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 771 "util/configparser.y" + { + OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3960 "util/configparser.c" break; case 322: -#line 789 "./util/configparser.y" - { - OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 780 "util/configparser.y" + { + OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3972 "util/configparser.c" break; case 323: -#line 798 "./util/configparser.y" - { - OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 789 "util/configparser.y" + { + OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3984 "util/configparser.c" break; case 324: -#line 807 "./util/configparser.y" - { - OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 798 "util/configparser.y" + { + OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 3996 "util/configparser.c" break; case 325: -#line 816 "./util/configparser.y" - { - OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 807 "util/configparser.y" + { + OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4008 "util/configparser.c" break; case 326: -#line 825 "./util/configparser.y" - { - OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 816 "util/configparser.y" + { + OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4020 "util/configparser.c" break; case 327: -#line 834 "./util/configparser.y" - { - OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 825 "util/configparser.y" + { + OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4032 "util/configparser.c" break; case 328: -#line 843 "./util/configparser.y" - { - OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 834 "util/configparser.y" + { + OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->tcp_mss = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4044 "util/configparser.c" break; case 329: -#line 852 "./util/configparser.y" - { - OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 843 "util/configparser.y" + { + OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[0].str)) > 120000) - cfg_parser->cfg->tcp_idle_timeout = 120000; - else if (atoi((yyvsp[0].str)) < 1) - cfg_parser->cfg->tcp_idle_timeout = 1; - else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4060 "util/configparser.c" break; case 330: -#line 865 "./util/configparser.y" - { - OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 852 "util/configparser.y" + { + OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[0].str)) < 1) - cfg_parser->cfg->max_reuse_tcp_queries = 0; - else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else if (atoi((yyvsp[(2) - (2)].str)) > 120000) + cfg_parser->cfg->tcp_idle_timeout = 120000; + else if (atoi((yyvsp[(2) - (2)].str)) < 1) + cfg_parser->cfg->tcp_idle_timeout = 1; + else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4074 "util/configparser.c" break; case 331: -#line 876 "./util/configparser.y" - { - OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 865 "util/configparser.y" + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[0].str)) < 1) - cfg_parser->cfg->tcp_reuse_timeout = 0; - else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else if (atoi((yyvsp[(2) - (2)].str)) < 1) + cfg_parser->cfg->max_reuse_tcp_queries = 0; + else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4088 "util/configparser.c" break; case 332: -#line 887 "./util/configparser.y" - { - OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 876 "util/configparser.y" + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[(2) - (2)].str)) < 1) + cfg_parser->cfg->tcp_reuse_timeout = 0; + else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4100 "util/configparser.c" break; case 333: -#line 896 "./util/configparser.y" - { - OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 887 "util/configparser.y" + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[0].str)) > 6553500) - cfg_parser->cfg->tcp_keepalive_timeout = 6553500; - else if (atoi((yyvsp[0].str)) < 1) - cfg_parser->cfg->tcp_keepalive_timeout = 0; - else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else if (atoi((yyvsp[(2) - (2)].str)) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4116 "util/configparser.c" break; case 334: -#line 909 "./util/configparser.y" - { - OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 898 "util/configparser.y" + { + OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4128 "util/configparser.c" break; case 335: -#line 918 "./util/configparser.y" - { - OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 907 "util/configparser.y" + { + OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else if (atoi((yyvsp[(2) - (2)].str)) > 6553500) + cfg_parser->cfg->tcp_keepalive_timeout = 6553500; + else if (atoi((yyvsp[(2) - (2)].str)) < 1) + cfg_parser->cfg->tcp_keepalive_timeout = 0; + else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4140 "util/configparser.c" break; case 336: -#line 927 "./util/configparser.y" - { - OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 920 "util/configparser.y" + { + OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4152 "util/configparser.c" break; case 337: -#line 936 "./util/configparser.y" - { - OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->ssl_service_key); - cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); +#line 929 "util/configparser.y" + { + OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4162 "util/configparser.c" break; case 338: -#line 943 "./util/configparser.y" - { - OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->ssl_service_pem); - cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); +#line 938 "util/configparser.y" + { + OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4172 "util/configparser.c" break; case 339: -#line 950 "./util/configparser.y" - { - OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 947 "util/configparser.y" + { + OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->ssl_service_key); + cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str); } -#line 4184 "util/configparser.c" break; case 340: -#line 959 "./util/configparser.y" - { - OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->tls_cert_bundle); - cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); +#line 954 "util/configparser.y" + { + OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->ssl_service_pem); + cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str); } -#line 4194 "util/configparser.c" break; case 341: -#line 966 "./util/configparser.y" - { - OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 961 "util/configparser.y" + { + OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4206 "util/configparser.c" break; case 342: -#line 975 "./util/configparser.y" - { - OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, - (yyvsp[0].str))) - yyerror("out of memory"); +#line 970 "util/configparser.y" + { + OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->tls_cert_bundle); + cfg_parser->cfg->tls_cert_bundle = (yyvsp[(2) - (2)].str); } -#line 4217 "util/configparser.c" break; case 343: -#line 983 "./util/configparser.y" - { - OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->tls_ciphers); - cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); +#line 977 "util/configparser.y" + { + OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4227 "util/configparser.c" break; case 344: -#line 990 "./util/configparser.y" - { - OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->tls_ciphersuites); - cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); +#line 986 "util/configparser.y" + { + OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, + (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4237 "util/configparser.c" break; case 345: -#line 997 "./util/configparser.y" - { - OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, - (yyvsp[0].str))) - yyerror("out of memory"); +#line 994 "util/configparser.y" + { + OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->tls_ciphers); + cfg_parser->cfg->tls_ciphers = (yyvsp[(2) - (2)].str); } -#line 4248 "util/configparser.c" break; case 346: -#line 1005 "./util/configparser.y" - { - OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1001 "util/configparser.y" + { + OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->tls_ciphersuites); + cfg_parser->cfg->tls_ciphersuites = (yyvsp[(2) - (2)].str); } -#line 4260 "util/configparser.c" break; case 347: -#line 1014 "./util/configparser.y" - { - OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1008 "util/configparser.y" + { + OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, + (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4272 "util/configparser.c" break; case 348: -#line 1022 "./util/configparser.y" - { - OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->http_endpoint); - if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { - cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2); - if(!cfg_parser->cfg->http_endpoint) - yyerror("out of memory"); - cfg_parser->cfg->http_endpoint[0] = '/'; - memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str), - strlen((yyvsp[0].str))+1); - free((yyvsp[0].str)); - } else { - cfg_parser->cfg->http_endpoint = (yyvsp[0].str); - } +#line 1016 "util/configparser.y" + { + OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4292 "util/configparser.c" break; case 349: -#line 1038 "./util/configparser.y" - { - OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1025 "util/configparser.y" + { + OUTYY(("P(server_https_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->https_port = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4304 "util/configparser.c" break; case 350: -#line 1046 "./util/configparser.y" - { - OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), - &cfg_parser->cfg->http_query_buffer_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 1033 "util/configparser.y" + { + OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->http_endpoint); + if((yyvsp[(2) - (2)].str) && (yyvsp[(2) - (2)].str)[0] != '/') { + cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[(2) - (2)].str))+2); + if(!cfg_parser->cfg->http_endpoint) + yyerror("out of memory"); + cfg_parser->cfg->http_endpoint[0] = '/'; + memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[(2) - (2)].str), + strlen((yyvsp[(2) - (2)].str))+1); + free((yyvsp[(2) - (2)].str)); + } else { + cfg_parser->cfg->http_endpoint = (yyvsp[(2) - (2)].str); + } } -#line 4316 "util/configparser.c" break; case 351: -#line 1054 "./util/configparser.y" - { - OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), - &cfg_parser->cfg->http_response_buffer_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 1049 "util/configparser.y" + { + OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->http_max_streams = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4328 "util/configparser.c" break; case 352: -#line 1062 "./util/configparser.y" - { - OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1057 "util/configparser.y" + { + OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), + &cfg_parser->cfg->http_query_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 4340 "util/configparser.c" break; case 353: -#line 1070 "./util/configparser.y" - { - OUTYY(("P(server_http_notls_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->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1065 "util/configparser.y" + { + OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), + &cfg_parser->cfg->http_response_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 4352 "util/configparser.c" break; case 354: -#line 1078 "./util/configparser.y" - { - OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1073 "util/configparser.y" + { + OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4364 "util/configparser.c" break; case 355: -#line 1087 "./util/configparser.y" - { - OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1081 "util/configparser.y" + { + OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4376 "util/configparser.c" break; case 356: -#line 1096 "./util/configparser.y" - { - OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1089 "util/configparser.y" + { + OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0); -#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) - if(strcmp((yyvsp[0].str), "yes") == 0) - yyerror("no syslog services are available. " - "(reconfigure and compile to add)"); -#endif - free((yyvsp[0].str)); + else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4393 "util/configparser.c" break; case 357: -#line 1110 "./util/configparser.y" - { - OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1098 "util/configparser.y" + { + OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4405 "util/configparser.c" break; case 358: -#line 1119 "./util/configparser.y" - { - OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1107 "util/configparser.y" + { + OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); +#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) + if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0) + yyerror("no syslog services are available. " + "(reconfigure and compile to add)"); +#endif + free((yyvsp[(2) - (2)].str)); } -#line 4417 "util/configparser.c" break; case 359: -#line 1128 "./util/configparser.y" - { - OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 4429 "util/configparser.c" +#line 1121 "util/configparser.y" + { + OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 360: -#line 1137 "./util/configparser.y" - { - OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 4441 "util/configparser.c" +#line 1130 "util/configparser.y" + { + OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 361: -#line 1146 "./util/configparser.y" - { - OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 4453 "util/configparser.c" +#line 1139 "util/configparser.y" + { + OUTYY(("P(server_log_replies:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_replies = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 362: -#line 1155 "./util/configparser.y" - { - OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1148 "util/configparser.y" + { + OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4465 "util/configparser.c" break; case 363: -#line 1164 "./util/configparser.y" - { - OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->chrootdir); - cfg_parser->cfg->chrootdir = (yyvsp[0].str); +#line 1157 "util/configparser.y" + { + OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4475 "util/configparser.c" break; case 364: -#line 1171 "./util/configparser.y" - { - OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->username); - cfg_parser->cfg->username = (yyvsp[0].str); - } -#line 4485 "util/configparser.c" +#line 1166 "util/configparser.y" + { + OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 365: -#line 1178 "./util/configparser.y" - { - OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); +#line 1175 "util/configparser.y" + { + OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->chrootdir); + cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str); + } + break; + + case 366: +#line 1182 "util/configparser.y" + { + OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->username); + cfg_parser->cfg->username = (yyvsp[(2) - (2)].str); + } + break; + + case 367: +#line 1189 "util/configparser.y" + { + OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->directory); - cfg_parser->cfg->directory = (yyvsp[0].str); + cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str); /* change there right away for includes relative to this */ - if((yyvsp[0].str)[0]) { + if((yyvsp[(2) - (2)].str)[0]) { char* d; #ifdef UB_ON_WINDOWS w_config_adjust_directory(cfg_parser->cfg); @@ -4510,1194 +4222,1100 @@ yyreduce: } } } -#line 4514 "util/configparser.c" - break; - - case 366: -#line 1204 "./util/configparser.y" - { - OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->logfile); - cfg_parser->cfg->logfile = (yyvsp[0].str); - cfg_parser->cfg->use_syslog = 0; - } -#line 4525 "util/configparser.c" - break; - - case 367: -#line 1212 "./util/configparser.y" - { - OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->pidfile); - cfg_parser->cfg->pidfile = (yyvsp[0].str); - } -#line 4535 "util/configparser.c" break; case 368: -#line 1219 "./util/configparser.y" - { - OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1215 "util/configparser.y" + { + OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->logfile); + cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->use_syslog = 0; } -#line 4545 "util/configparser.c" break; case 369: -#line 1226 "./util/configparser.y" - { - OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); - log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); - free((yyvsp[0].str)); +#line 1223 "util/configparser.y" + { + OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->pidfile); + cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str); } -#line 4555 "util/configparser.c" break; case 370: -#line 1233 "./util/configparser.y" - { - OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); - log_warn("option dlv-anchor ignored: DLV is decommissioned"); - free((yyvsp[0].str)); +#line 1230 "util/configparser.y" + { + OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4565 "util/configparser.c" break; case 371: -#line 1240 "./util/configparser.y" - { - OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - auto_trust_anchor_file_list, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1237 "util/configparser.y" + { + OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); + log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); + free((yyvsp[(2) - (2)].str)); } -#line 4576 "util/configparser.c" break; case 372: -#line 1248 "./util/configparser.y" - { - OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - trust_anchor_file_list, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1244 "util/configparser.y" + { + OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); + log_warn("option dlv-anchor ignored: DLV is decommissioned"); + free((yyvsp[(2) - (2)].str)); } -#line 4587 "util/configparser.c" break; case 373: -#line 1256 "./util/configparser.y" - { - OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); +#line 1251 "util/configparser.y" + { + OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, (yyvsp[0].str))) + auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str))) yyerror("out of memory"); } -#line 4598 "util/configparser.c" break; case 374: -#line 1264 "./util/configparser.y" - { - OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) +#line 1259 "util/configparser.y" + { + OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg-> + trust_anchor_file_list, (yyvsp[(2) - (2)].str))) yyerror("out of memory"); } -#line 4608 "util/configparser.c" break; case 375: -#line 1271 "./util/configparser.y" - { - OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->trust_anchor_signaling = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1267 "util/configparser.y" + { + OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg-> + trusted_keys_file_list, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4622 "util/configparser.c" break; case 376: -#line 1282 "./util/configparser.y" - { - OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->root_key_sentinel = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1275 "util/configparser.y" + { + OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4636 "util/configparser.c" break; case 377: -#line 1293 "./util/configparser.y" - { - OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1282 "util/configparser.y" + { + OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else + cfg_parser->cfg->trust_anchor_signaling = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4646 "util/configparser.c" break; case 378: -#line 1300 "./util/configparser.y" - { - OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1293 "util/configparser.y" + { + OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else + cfg_parser->cfg->root_key_sentinel = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4658 "util/configparser.c" break; case 379: -#line 1309 "./util/configparser.y" - { - OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1304 "util/configparser.y" + { + OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 4670 "util/configparser.c" break; case 380: -#line 1318 "./util/configparser.y" - { - OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1311 "util/configparser.y" + { + OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4682 "util/configparser.c" break; case 381: -#line 1327 "./util/configparser.y" - { - OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->identity); - cfg_parser->cfg->identity = (yyvsp[0].str); +#line 1320 "util/configparser.y" + { + OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4692 "util/configparser.c" break; case 382: -#line 1334 "./util/configparser.y" - { - OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->version); - cfg_parser->cfg->version = (yyvsp[0].str); +#line 1329 "util/configparser.y" + { + OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4702 "util/configparser.c" break; case 383: -#line 1341 "./util/configparser.y" - { - OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->nsid_cfg_str); - cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str); - free(cfg_parser->cfg->nsid); - cfg_parser->cfg->nsid = NULL; - cfg_parser->cfg->nsid_len = 0; - if (*(yyvsp[0].str) == 0) - ; /* pass; empty string is not setting nsid */ - else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid( - (yyvsp[0].str), &cfg_parser->cfg->nsid_len))) - yyerror("the NSID must be either a hex string or an " - "ascii character string prepended with ascii_."); +#line 1338 "util/configparser.y" + { + OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->identity); + cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str); } -#line 4721 "util/configparser.c" break; case 384: -#line 1357 "./util/configparser.y" - { - OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) - yyerror("buffer size expected"); - free((yyvsp[0].str)); +#line 1345 "util/configparser.y" + { + OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->version); + cfg_parser->cfg->version = (yyvsp[(2) - (2)].str); } -#line 4732 "util/configparser.c" break; case 385: -#line 1365 "./util/configparser.y" - { - OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) - yyerror("buffer size expected"); - free((yyvsp[0].str)); +#line 1352 "util/configparser.y" + { + OUTYY(("P(server_nsid:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->nsid_cfg_str); + cfg_parser->cfg->nsid_cfg_str = (yyvsp[(2) - (2)].str); + free(cfg_parser->cfg->nsid); + cfg_parser->cfg->nsid = NULL; + cfg_parser->cfg->nsid_len = 0; + if (*(yyvsp[(2) - (2)].str) == 0) + ; /* pass; empty string is not setting nsid */ + else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid( + (yyvsp[(2) - (2)].str), &cfg_parser->cfg->nsid_len))) + yyerror("the NSID must be either a hex string or an " + "ascii character string prepended with ascii_."); } -#line 4743 "util/configparser.c" break; case 386: -#line 1373 "./util/configparser.y" +#line 1368 "util/configparser.y" { - OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->so_reuseport = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 4756 "util/configparser.c" + OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) + yyerror("buffer size expected"); + free((yyvsp[(2) - (2)].str)); + } break; case 387: -#line 1383 "./util/configparser.y" +#line 1376 "util/configparser.y" { - OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_transparent = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 4769 "util/configparser.c" + OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) + yyerror("buffer size expected"); + free((yyvsp[(2) - (2)].str)); + } break; case 388: -#line 1393 "./util/configparser.y" +#line 1384 "util/configparser.y" { - OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ip_freebind = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->so_reuseport = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4782 "util/configparser.c" break; case 389: -#line 1403 "./util/configparser.y" - { - OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else if (atoi((yyvsp[0].str)) > 63) - yyerror("value too large (max 63)"); - else if (atoi((yyvsp[0].str)) < 0) - yyerror("value too small (min 0)"); - else - cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 4799 "util/configparser.c" +#line 1394 "util/configparser.y" + { + OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_transparent = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 390: -#line 1417 "./util/configparser.y" - { - OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); - } -#line 4810 "util/configparser.c" +#line 1404 "util/configparser.y" + { + OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ip_freebind = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } break; case 391: -#line 1425 "./util/configparser.y" - { - OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 1414 "util/configparser.y" + { + OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[0].str)) < 12) - yyerror("edns buffer size too small"); - else if (atoi((yyvsp[0].str)) > 65535) - cfg_parser->cfg->edns_buffer_size = 65535; - else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else if (atoi((yyvsp[(2) - (2)].str)) > 63) + yyerror("value too large (max 63)"); + else if (atoi((yyvsp[(2) - (2)].str)) < 0) + yyerror("value too small (min 0)"); + else + cfg_parser->cfg->ip_dscp = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4826 "util/configparser.c" break; case 392: -#line 1438 "./util/configparser.y" - { - OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else if (atoi((yyvsp[0].str)) < 4096) - yyerror("message buffer size too small (use 4096)"); - else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1428 "util/configparser.y" + { + OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->stream_wait_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 4840 "util/configparser.c" break; case 393: -#line 1449 "./util/configparser.y" - { - OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 1436 "util/configparser.y" + { + OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else if (atoi((yyvsp[(2) - (2)].str)) < 12) + yyerror("edns buffer size too small"); + else if (atoi((yyvsp[(2) - (2)].str)) > 65535) + cfg_parser->cfg->edns_buffer_size = 65535; + else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4851 "util/configparser.c" break; case 394: -#line 1457 "./util/configparser.y" - { - OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 1449 "util/configparser.y" + { + OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - else { - cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); + else if (atoi((yyvsp[(2) - (2)].str)) < 4096) + yyerror("message buffer size too small (use 4096)"); + else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4867 "util/configparser.c" break; case 395: -#line 1470 "./util/configparser.y" - { - OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1460 "util/configparser.y" + { + OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 4879 "util/configparser.c" break; case 396: -#line 1479 "./util/configparser.y" - { - OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 1468 "util/configparser.y" + { + OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else { + cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); } -#line 4891 "util/configparser.c" break; case 397: -#line 1488 "./util/configparser.y" - { - OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 1481 "util/configparser.y" + { + OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4903 "util/configparser.c" break; case 398: -#line 1497 "./util/configparser.y" - { - OUTYY(("P(server_udp_connect:%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_connect = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1490 "util/configparser.y" + { + OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4915 "util/configparser.c" break; case 399: -#line 1506 "./util/configparser.y" - { - OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->unblock_lan_zones = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1499 "util/configparser.y" + { + OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->delay_close = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 4928 "util/configparser.c" break; case 400: -#line 1516 "./util/configparser.y" - { - OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1508 "util/configparser.y" + { + OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->insecure_lan_zones = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4941 "util/configparser.c" break; case 401: -#line 1526 "./util/configparser.y" - { - OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 1517 "util/configparser.y" + { + OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->unblock_lan_zones = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4952 "util/configparser.c" break; case 402: -#line 1534 "./util/configparser.y" - { - OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); +#line 1527 "util/configparser.y" + { + OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->insecure_lan_zones = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 4968 "util/configparser.c" break; case 403: -#line 1547 "./util/configparser.y" - { - OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1537 "util/configparser.y" + { + OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 4980 "util/configparser.c" break; case 404: -#line 1556 "./util/configparser.y" - { - OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); - verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " - "removed, use infra-host-ttl)", (yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1545 "util/configparser.y" + { + OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); } -#line 4991 "util/configparser.c" break; case 405: -#line 1564 "./util/configparser.y" - { - OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 1558 "util/configparser.y" + { + OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5003 "util/configparser.c" break; case 406: -#line 1573 "./util/configparser.y" - { - OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); - verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " - "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1567 "util/configparser.y" + { + OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " + "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5014 "util/configparser.c" break; case 407: -#line 1581 "./util/configparser.y" - { - OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 1575 "util/configparser.y" + { + OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - else { - cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); + else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5030 "util/configparser.c" break; case 408: -#line 1594 "./util/configparser.y" - { - OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1584 "util/configparser.y" + { + OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); + verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " + "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5042 "util/configparser.c" break; case 409: -#line 1603 "./util/configparser.y" - { - OUTYY(("P(server_infra_keep_probing:%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->infra_keep_probing = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1592 "util/configparser.y" + { + OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); } -#line 5055 "util/configparser.c" break; case 410: -#line 1613 "./util/configparser.y" - { - OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->target_fetch_policy); - cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); +#line 1605 "util/configparser.y" + { + OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5065 "util/configparser.c" break; case 411: -#line 1620 "./util/configparser.y" - { - OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1614 "util/configparser.y" + { + OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_short_bufsize = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->infra_keep_probing = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5078 "util/configparser.c" break; case 412: -#line 1630 "./util/configparser.y" - { - OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_large_queries = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1624 "util/configparser.y" + { + OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->target_fetch_policy); + cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str); } -#line 5091 "util/configparser.c" break; case 413: -#line 1640 "./util/configparser.y" - { - OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1631 "util/configparser.y" + { + OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_glue = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_short_bufsize = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5104 "util/configparser.c" break; case 414: -#line 1650 "./util/configparser.y" - { - OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1641 "util/configparser.y" + { + OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_dnssec_stripped = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_large_queries = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5117 "util/configparser.c" break; case 415: -#line 1660 "./util/configparser.y" - { - OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1651 "util/configparser.y" + { + OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_below_nxdomain = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_glue = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5130 "util/configparser.c" break; case 416: -#line 1670 "./util/configparser.y" - { - OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1661 "util/configparser.y" + { + OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_referral_path = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_dnssec_stripped = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5143 "util/configparser.c" break; case 417: -#line 1680 "./util/configparser.y" - { - OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1671 "util/configparser.y" + { + OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->harden_algo_downgrade = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_below_nxdomain = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5156 "util/configparser.c" break; case 418: -#line 1690 "./util/configparser.y" - { - OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1681 "util/configparser.y" + { + OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_caps_bits_for_id = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->harden_referral_path = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5169 "util/configparser.c" break; case 419: -#line 1700 "./util/configparser.y" - { - OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1691 "util/configparser.y" + { + OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->harden_algo_downgrade = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5179 "util/configparser.c" break; case 420: -#line 1707 "./util/configparser.y" - { - OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1701 "util/configparser.y" + { + OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->use_caps_bits_for_id = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5189 "util/configparser.c" break; case 421: -#line 1714 "./util/configparser.y" - { - OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) +#line 1711 "util/configparser.y" + { + OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[(2) - (2)].str))) yyerror("out of memory"); } -#line 5199 "util/configparser.c" break; case 422: -#line 1721 "./util/configparser.y" - { - OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1718 "util/configparser.y" + { + OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 5211 "util/configparser.c" break; case 423: -#line 1730 "./util/configparser.y" - { - OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1725 "util/configparser.y" + { + OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 5223 "util/configparser.c" break; case 424: -#line 1739 "./util/configparser.y" - { - OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1732 "util/configparser.y" + { + OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5235 "util/configparser.c" break; case 425: -#line 1748 "./util/configparser.y" - { - OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1741 "util/configparser.y" + { + OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5247 "util/configparser.c" break; case 426: -#line 1757 "./util/configparser.y" - { - OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) - yyerror("out of memory"); +#line 1750 "util/configparser.y" + { + OUTYY(("P(server_deny_any:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->deny_any = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5257 "util/configparser.c" break; case 427: -#line 1764 "./util/configparser.y" - { - OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->donotquery_localhost = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1759 "util/configparser.y" + { + OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5270 "util/configparser.c" break; case 428: -#line 1774 "./util/configparser.y" - { - OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && - strcmp((yyvsp[0].str), "deny_non_local")!=0 && - strcmp((yyvsp[0].str), "refuse_non_local")!=0 && - strcmp((yyvsp[0].str), "allow_setrd")!=0 && - strcmp((yyvsp[0].str), "allow")!=0 && - strcmp((yyvsp[0].str), "allow_snoop")!=0) { - yyerror("expected deny, refuse, deny_non_local, " - "refuse_non_local, allow, allow_setrd or " - "allow_snoop in access control action"); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding acl"); - } +#line 1768 "util/configparser.y" + { + OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 5293 "util/configparser.c" break; case 429: -#line 1794 "./util/configparser.y" - { - OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->module_conf); - cfg_parser->cfg->module_conf = (yyvsp[0].str); +#line 1775 "util/configparser.y" + { + OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->donotquery_localhost = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5303 "util/configparser.c" break; case 430: -#line 1801 "./util/configparser.y" - { - OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); - if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_date_override = 0; - } else if(strlen((yyvsp[0].str)) == 14) { - cfg_parser->cfg->val_date_override = - cfg_convert_timeval((yyvsp[0].str)); - if(!cfg_parser->cfg->val_date_override) - yyerror("bad date/time specification"); +#line 1785 "util/configparser.y" + { + OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && + strcmp((yyvsp[(3) - (3)].str), "deny_non_local")!=0 && + strcmp((yyvsp[(3) - (3)].str), "refuse_non_local")!=0 && + strcmp((yyvsp[(3) - (3)].str), "allow_setrd")!=0 && + strcmp((yyvsp[(3) - (3)].str), "allow")!=0 && + strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) { + yyerror("expected deny, refuse, deny_non_local, " + "refuse_non_local, allow, allow_setrd or " + "allow_snoop in access control action"); + free((yyvsp[(2) - (3)].str)); + free((yyvsp[(3) - (3)].str)); } else { - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str)); + if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding acl"); } - free((yyvsp[0].str)); } -#line 5324 "util/configparser.c" break; case 431: -#line 1819 "./util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); - if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_sig_skew_min = 0; - } else { - cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str)); - if(!cfg_parser->cfg->val_sig_skew_min) - yyerror("number expected"); - } - free((yyvsp[0].str)); +#line 1805 "util/configparser.y" + { + OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->module_conf); + cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str); } -#line 5340 "util/configparser.c" break; case 432: -#line 1832 "./util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); - if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { - cfg_parser->cfg->val_sig_skew_max = 0; +#line 1812 "util/configparser.y" + { + OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); + if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { + cfg_parser->cfg->val_date_override = 0; + } else if(strlen((yyvsp[(2) - (2)].str)) == 14) { + cfg_parser->cfg->val_date_override = + cfg_convert_timeval((yyvsp[(2) - (2)].str)); + if(!cfg_parser->cfg->val_date_override) + yyerror("bad date/time specification"); } else { - cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str)); - if(!cfg_parser->cfg->val_sig_skew_max) + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); + cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str)); } - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5356 "util/configparser.c" break; case 433: -#line 1845 "./util/configparser.y" - { - OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1830 "util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); + if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { + cfg_parser->cfg->val_sig_skew_min = 0; + } else { + cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str)); + if(!cfg_parser->cfg->val_sig_skew_min) + yyerror("number expected"); + } + free((yyvsp[(2) - (2)].str)); } -#line 5368 "util/configparser.c" break; case 434: -#line 1854 "./util/configparser.y" - { - OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1843 "util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); + if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { + cfg_parser->cfg->val_sig_skew_max = 0; + } else { + cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str)); + if(!cfg_parser->cfg->val_sig_skew_max) + yyerror("number expected"); + } + free((yyvsp[(2) - (2)].str)); } -#line 5380 "util/configparser.c" break; case 435: -#line 1863 "./util/configparser.y" - { - OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 1856 "util/configparser.y" + { + OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5392 "util/configparser.c" break; case 436: -#line 1872 "./util/configparser.y" - { - OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 1865 "util/configparser.y" + { + OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5404 "util/configparser.c" break; case 437: -#line 1881 "./util/configparser.y" - { - OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_clean_additional = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1874 "util/configparser.y" + { + OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5417 "util/configparser.c" break; case 438: -#line 1891 "./util/configparser.y" - { - OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_permissive_mode = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1883 "util/configparser.y" + { + OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5430 "util/configparser.c" break; case 439: -#line 1901 "./util/configparser.y" - { - OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1892 "util/configparser.y" + { + OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else - cfg_parser->cfg->aggressive_nsec = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->val_clean_additional = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5444 "util/configparser.c" break; case 440: -#line 1912 "./util/configparser.y" - { - OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1902 "util/configparser.y" + { + OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->val_permissive_mode = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5456 "util/configparser.c" break; case 441: -#line 1921 "./util/configparser.y" - { - OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1912 "util/configparser.y" + { + OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else + cfg_parser->cfg->aggressive_nsec = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5468 "util/configparser.c" break; case 442: -#line 1930 "./util/configparser.y" - { - OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1923 "util/configparser.y" + { + OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5480 "util/configparser.c" break; case 443: -#line 1939 "./util/configparser.y" - { - OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1932 "util/configparser.y" + { + OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5492 "util/configparser.c" break; case 444: -#line 1948 "./util/configparser.y" - { - OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 1941 "util/configparser.y" + { + OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5504 "util/configparser.c" break; case 445: -#line 1957 "./util/configparser.y" - { - OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1950 "util/configparser.y" + { + OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5516 "util/configparser.c" break; case 446: -#line 1966 "./util/configparser.y" - { - OUTYY(("P(server_serve_original_ttl:%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->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 1959 "util/configparser.y" + { + OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5528 "util/configparser.c" break; case 447: -#line 1975 "./util/configparser.y" - { - OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); -#if defined(HAVE_SSL) || defined(HAVE_NETTLE) - else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0); - if(fake_dsa) - log_warn("test option fake_dsa is enabled"); -#endif - free((yyvsp[0].str)); +#line 1968 "util/configparser.y" + { + OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5544 "util/configparser.c" break; case 448: -#line 1988 "./util/configparser.y" - { - OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 1977 "util/configparser.y" + { + OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); -#if defined(HAVE_SSL) || defined(HAVE_NETTLE) - else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0); - if(fake_sha1) - log_warn("test option fake_sha1 is enabled"); -#endif - free((yyvsp[0].str)); + else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5560 "util/configparser.c" break; case 449: -#line 2001 "./util/configparser.y" - { - OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 1986 "util/configparser.y" + { + OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); +#if defined(HAVE_SSL) || defined(HAVE_NETTLE) + else fake_dsa = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + if(fake_dsa) + log_warn("test option fake_dsa is enabled"); +#endif + free((yyvsp[(2) - (2)].str)); } -#line 5572 "util/configparser.c" break; case 450: -#line 2010 "./util/configparser.y" - { - OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->val_nsec3_key_iterations); - cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); +#line 1999 "util/configparser.y" + { + OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); +#if defined(HAVE_SSL) || defined(HAVE_NETTLE) + else fake_sha1 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + if(fake_sha1) + log_warn("test option fake_sha1 is enabled"); +#endif + free((yyvsp[(2) - (2)].str)); } -#line 5582 "util/configparser.c" break; case 451: -#line 2017 "./util/configparser.y" - { - OUTYY(("P(server_zonemd_permissive_mode:%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->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2012 "util/configparser.y" + { + OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5594 "util/configparser.c" break; case 452: -#line 2026 "./util/configparser.y" - { - OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2021 "util/configparser.y" + { + OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->val_nsec3_key_iterations); + cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str); } -#line 5606 "util/configparser.c" break; case 453: -#line 2035 "./util/configparser.y" - { - OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2028 "util/configparser.y" + { + OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5618 "util/configparser.c" break; case 454: -#line 2044 "./util/configparser.y" - { - OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) +#line 2037 "util/configparser.y" + { + OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5630 "util/configparser.c" break; case 455: -#line 2053 "./util/configparser.y" - { - OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->permit_small_holddown = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2046 "util/configparser.y" + { + OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5643 "util/configparser.c" break; case 456: -#line 2062 "./util/configparser.y" - { - OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 2055 "util/configparser.y" + { + OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5654 "util/configparser.c" break; case 457: -#line 2070 "./util/configparser.y" - { - OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); +#line 2064 "util/configparser.y" + { + OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->permit_small_holddown = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5670 "util/configparser.c" break; case 458: -#line 2083 "./util/configparser.y" - { - OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) +#line 2073 "util/configparser.y" + { + OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5681 "util/configparser.c" break; case 459: -#line 2091 "./util/configparser.y" - { - OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && - strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && - strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 - && strcmp((yyvsp[0].str), "typetransparent")!=0 - && strcmp((yyvsp[0].str), "always_transparent")!=0 - && strcmp((yyvsp[0].str), "always_refuse")!=0 - && strcmp((yyvsp[0].str), "always_nxdomain")!=0 - && strcmp((yyvsp[0].str), "always_nodata")!=0 - && strcmp((yyvsp[0].str), "always_deny")!=0 - && strcmp((yyvsp[0].str), "always_null")!=0 - && strcmp((yyvsp[0].str), "noview")!=0 - && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 - && strcmp((yyvsp[0].str), "inform_redirect") != 0 - && strcmp((yyvsp[0].str), "ipset") != 0) { +#line 2081 "util/configparser.y" + { + OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 460: +#line 2094 "util/configparser.y" + { + OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 461: +#line 2102 "util/configparser.y" + { + OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && + strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && + strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0 + && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0 + && strcmp((yyvsp[(3) - (3)].str), "noview")!=0 + && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0 + && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0 + && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -5705,46 +5323,44 @@ yyreduce: "always_refuse, always_nxdomain, " "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); - } else if(strcmp((yyvsp[0].str), "nodefault")==0) { + free((yyvsp[(2) - (3)].str)); + free((yyvsp[(3) - (3)].str)); + } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_nodefault, (yyvsp[-1].str))) + local_zones_nodefault, (yyvsp[(2) - (3)].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[0].str)); + free((yyvsp[(3) - (3)].str)); #ifdef USE_IPSET - } else if(strcmp((yyvsp[0].str), "ipset")==0) { + } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_ipset, (yyvsp[-1].str))) + local_zones_ipset, (yyvsp[(2) - (3)].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[0].str)); + free((yyvsp[(3) - (3)].str)); #endif } else { if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, - (yyvsp[-1].str), (yyvsp[0].str))) + (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) fatal_exit("out of memory adding local-zone"); } } -#line 5729 "util/configparser.c" break; - case 460: -#line 2136 "./util/configparser.y" - { - OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) + case 462: +#line 2147 "util/configparser.y" + { + OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) fatal_exit("out of memory adding local-data"); } -#line 5739 "util/configparser.c" break; - case 461: -#line 2143 "./util/configparser.y" - { + case 463: +#line 2154 "util/configparser.y" + { char* ptr; - OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); - ptr = cfg_ptr_reverse((yyvsp[0].str)); - free((yyvsp[0].str)); + OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); + ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); if(ptr) { if(!cfg_strlist_insert(&cfg_parser->cfg-> local_data, ptr)) @@ -5753,93 +5369,85 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5757 "util/configparser.c" - break; - - case 462: -#line 2158 "./util/configparser.y" - { - OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->minimal_responses = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 5770 "util/configparser.c" - break; - - case 463: -#line 2168 "./util/configparser.y" - { - OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->rrset_roundrobin = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 5783 "util/configparser.c" break; case 464: -#line 2178 "./util/configparser.y" - { - OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); - cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2169 "util/configparser.y" + { + OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->minimal_responses = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5793 "util/configparser.c" break; case 465: -#line 2185 "./util/configparser.y" - { - OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); - cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2179 "util/configparser.y" + { + OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->rrset_roundrobin = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 5803 "util/configparser.c" break; case 466: -#line 2192 "./util/configparser.y" - { - OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dns64_prefix); - cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); +#line 2189 "util/configparser.y" + { + OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[(2) - (2)].str))); + cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5813 "util/configparser.c" break; case 467: -#line 2199 "./util/configparser.y" - { - OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2196 "util/configparser.y" + { + OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); + cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5825 "util/configparser.c" break; case 468: -#line 2208 "./util/configparser.y" - { - OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, - (yyvsp[0].str))) - fatal_exit("out of memory adding dns64-ignore-aaaa"); +#line 2203 "util/configparser.y" + { + OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dns64_prefix); + cfg_parser->cfg->dns64_prefix = (yyvsp[(2) - (2)].str); } -#line 5836 "util/configparser.c" break; case 469: -#line 2216 "./util/configparser.y" - { - char* p, *s = (yyvsp[0].str); - OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); +#line 2210 "util/configparser.y" + { + OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 470: +#line 2219 "util/configparser.y" + { + OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, + (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding dns64-ignore-aaaa"); + } + break; + + case 471: +#line 2227 "util/configparser.y" + { + char* p, *s = (yyvsp[(2) - (2)].str); + OUTYY(("P(server_define_tag:%s)\n", (yyvsp[(2) - (2)].str))); while((p=strsep(&s, " \t\n")) != NULL) { if(*p) { if(!config_add_tag(cfg_parser->cfg, p)) @@ -5847,800 +5455,742 @@ yyreduce: "out of memory"); } } - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 5853 "util/configparser.c" break; - case 470: -#line 2230 "./util/configparser.y" - { + case 472: +#line 2241 "util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), &len); - free((yyvsp[0].str)); - OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str))); + free((yyvsp[(3) - (3)].str)); + OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (3)].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->local_zone_tags, - (yyvsp[-1].str), bitlist, len)) { + (yyvsp[(2) - (3)].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } } } -#line 5877 "util/configparser.c" break; - case 471: -#line 2251 "./util/configparser.y" - { + case 473: +#line 2262 "util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), &len); - free((yyvsp[0].str)); - OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str))); + free((yyvsp[(3) - (3)].str)); + OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[(2) - (3)].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->acl_tags, - (yyvsp[-1].str), bitlist, len)) { + (yyvsp[(2) - (3)].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } } } -#line 5901 "util/configparser.c" - break; - - case 472: -#line 2272 "./util/configparser.y" - { - OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); - if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, - (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { - yyerror("out of memory"); - free((yyvsp[-2].str)); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); - } - } -#line 5916 "util/configparser.c" - break; - - case 473: -#line 2284 "./util/configparser.y" - { - OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); - if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, - (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { - yyerror("out of memory"); - free((yyvsp[-2].str)); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); - } - } -#line 5931 "util/configparser.c" break; case 474: -#line 2296 "./util/configparser.y" - { - OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); - if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, - (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { +#line 2283 "util/configparser.y" + { + OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, + (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { yyerror("out of memory"); - free((yyvsp[-2].str)); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); + free((yyvsp[(2) - (4)].str)); + free((yyvsp[(3) - (4)].str)); + free((yyvsp[(4) - (4)].str)); } } -#line 5946 "util/configparser.c" break; case 475: -#line 2308 "./util/configparser.y" - { - OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, - (yyvsp[-1].str), (yyvsp[0].str))) { +#line 2295 "util/configparser.y" + { + OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); + if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, + (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { yyerror("out of memory"); + free((yyvsp[(2) - (4)].str)); + free((yyvsp[(3) - (4)].str)); + free((yyvsp[(4) - (4)].str)); } } -#line 5958 "util/configparser.c" break; case 476: -#line 2317 "./util/configparser.y" - { +#line 2307 "util/configparser.y" + { + OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); + if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, + (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { + yyerror("out of memory"); + free((yyvsp[(2) - (4)].str)); + free((yyvsp[(3) - (4)].str)); + free((yyvsp[(4) - (4)].str)); + } + } + break; + + case 477: +#line 2319 "util/configparser.y" + { + OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, + (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) { + yyerror("out of memory"); + } + } + break; + + case 478: +#line 2328 "util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), &len); - free((yyvsp[0].str)); - OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str))); + free((yyvsp[(3) - (3)].str)); + OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[(2) - (3)].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->respip_tags, - (yyvsp[-1].str), bitlist, len)) { + (yyvsp[(2) - (3)].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[-1].str)); + free((yyvsp[(2) - (3)].str)); } } } -#line 5982 "util/configparser.c" - break; - - case 477: -#line 2338 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 5994 "util/configparser.c" - break; - - case 478: -#line 2348 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 6006 "util/configparser.c" break; case 479: -#line 2357 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); - } -#line 6017 "util/configparser.c" +#line 2349 "util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + } break; case 480: -#line 2365 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); +#line 2359 "util/configparser.y" + { + OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->ratelimit = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6028 "util/configparser.c" break; case 481: -#line 2373 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); +#line 2368 "util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ip_ratelimit_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 6044 "util/configparser.c" break; case 482: -#line 2386 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->ratelimit_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); +#line 2376 "util/configparser.y" + { + OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); } -#line 6060 "util/configparser.c" break; case 483: -#line 2399 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { +#line 2384 "util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 484: +#line 2397 "util/configparser.y" + { + OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); + else { + cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->ratelimit_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 485: +#line 2410 "util/configparser.y" + { + OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { + yyerror("number expected"); + free((yyvsp[(2) - (3)].str)); + free((yyvsp[(3) - (3)].str)); } else { if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str))) + ratelimit_for_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) fatal_exit("out of memory adding " "ratelimit-for-domain"); } } -#line 6078 "util/configparser.c" break; - case 484: -#line 2414 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { + case 486: +#line 2425 "util/configparser.y" + { + OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { yyerror("number expected"); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); + free((yyvsp[(2) - (3)].str)); + free((yyvsp[(3) - (3)].str)); } else { if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str))) + ratelimit_below_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) fatal_exit("out of memory adding " "ratelimit-below-domain"); } } -#line 6096 "util/configparser.c" - break; - - case 485: -#line 2429 "./util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 6108 "util/configparser.c" - break; - - case 486: -#line 2438 "./util/configparser.y" - { - OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 6120 "util/configparser.c" break; case 487: -#line 2447 "./util/configparser.y" - { - OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); - free((yyvsp[0].str)); +#line 2440 "util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6129 "util/configparser.c" break; case 488: -#line 2453 "./util/configparser.y" - { - OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) <= 0) +#line 2449 "util/configparser.y" + { + OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6141 "util/configparser.c" break; case 489: -#line 2462 "./util/configparser.y" - { - OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2458 "util/configparser.y" + { + OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); + free((yyvsp[(2) - (2)].str)); } -#line 6153 "util/configparser.c" break; case 490: -#line 2471 "./util/configparser.y" - { - OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->qname_minimisation = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2464 "util/configparser.y" + { + OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) <= 0) + yyerror("number expected"); + else cfg_parser->cfg->fast_server_num = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6166 "util/configparser.c" break; case 491: -#line 2481 "./util/configparser.y" - { - OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->qname_minimisation_strict = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2473 "util/configparser.y" + { + OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6179 "util/configparser.c" break; case 492: -#line 2491 "./util/configparser.y" - { - OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2482 "util/configparser.y" + { + OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->pad_responses = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->qname_minimisation = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6192 "util/configparser.c" break; case 493: -#line 2501 "./util/configparser.y" - { - OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); +#line 2492 "util/configparser.y" + { + OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->qname_minimisation_strict = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6204 "util/configparser.c" break; case 494: -#line 2510 "./util/configparser.y" - { - OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2502 "util/configparser.y" + { + OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->pad_queries = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->pad_responses = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6217 "util/configparser.c" break; case 495: -#line 2520 "./util/configparser.y" - { - OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 2512 "util/configparser.y" + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6229 "util/configparser.c" break; case 496: -#line 2529 "./util/configparser.y" - { - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2521 "util/configparser.y" + { + OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - free((yyvsp[0].str)); + else cfg_parser->cfg->pad_queries = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6245 "util/configparser.c" break; case 497: -#line 2542 "./util/configparser.y" - { - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - free((yyvsp[0].str)); +#line 2531 "util/configparser.y" + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6261 "util/configparser.c" break; case 498: -#line 2555 "./util/configparser.y" - { +#line 2540 "util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->ipsecmod_hook); - cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str); + OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[0].str)); #endif + free((yyvsp[(2) - (2)].str)); } -#line 6276 "util/configparser.c" break; case 499: -#line 2567 "./util/configparser.y" - { +#line 2553 "util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); + OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[0].str)); #endif + free((yyvsp[(2) - (2)].str)); } -#line 6293 "util/configparser.c" break; case 500: -#line 2581 "./util/configparser.y" - { +#line 2566 "util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str))) - yyerror("out of memory"); + OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->ipsecmod_hook); + cfg_parser->cfg->ipsecmod_hook = (yyvsp[(2) - (2)].str); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); #endif } -#line 6308 "util/configparser.c" break; case 501: -#line 2593 "./util/configparser.y" - { +#line 2578 "util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); #endif } -#line 6325 "util/configparser.c" break; case 502: -#line 2607 "./util/configparser.y" - { - OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(!cfg_str2list_insert( - &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding " - "edns-client-string"); +#line 2592 "util/configparser.y" + { + #ifdef USE_IPSECMOD + OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); + #else + OUTYY(("P(Compiled without IPsec module, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); + #endif } -#line 6337 "util/configparser.c" break; case 503: -#line 2616 "./util/configparser.y" - { - OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) - yyerror("option code expected"); - else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) - yyerror("option code must be in interval [0, 65535]"); - else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - +#line 2604 "util/configparser.y" + { + #ifdef USE_IPSECMOD + OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without IPsec module, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); + #endif } -#line 6352 "util/configparser.c" break; case 504: -#line 2628 "./util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[0].str))); +#line 2618 "util/configparser.y" + { + OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_strings, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding " + "edns-client-string"); + } + break; + + case 505: +#line 2627 "util/configparser.y" + { + OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + yyerror("option code expected"); + else if(atoi((yyvsp[(2) - (2)].str)) > 65535 || atoi((yyvsp[(2) - (2)].str)) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); + + } + break; + + case 506: +#line 2639 "util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->stubs->name) yyerror("stub name override, there must be one name " "for one stub-zone"); free(cfg_parser->cfg->stubs->name); - cfg_parser->cfg->stubs->name = (yyvsp[0].str); + cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str); } -#line 6365 "util/configparser.c" - break; - - case 505: -#line 2638 "./util/configparser.y" - { - OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 6375 "util/configparser.c" - break; - - case 506: -#line 2645 "./util/configparser.y" - { - OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 6385 "util/configparser.c" break; case 507: -#line 2652 "./util/configparser.y" - { - OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2649 "util/configparser.y" + { + OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6397 "util/configparser.c" break; case 508: -#line 2661 "./util/configparser.y" - { - OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2656 "util/configparser.y" + { + OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6409 "util/configparser.c" break; case 509: -#line 2670 "./util/configparser.y" - { - OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2663 "util/configparser.y" + { + OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->ssl_upstream = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6422 "util/configparser.c" break; case 510: -#line 2680 "./util/configparser.y" - { - OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2672 "util/configparser.y" + { + OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isprime = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6435 "util/configparser.c" break; case 511: -#line 2690 "./util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[0].str))); +#line 2681 "util/configparser.y" + { + OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->ssl_upstream = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 512: +#line 2691 "util/configparser.y" + { + OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->isprime = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 513: +#line 2701 "util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->forwards->name) yyerror("forward name override, there must be one " "name for one forward-zone"); free(cfg_parser->cfg->forwards->name); - cfg_parser->cfg->forwards->name = (yyvsp[0].str); + cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str); } -#line 6448 "util/configparser.c" - break; - - case 512: -#line 2700 "./util/configparser.y" - { - OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 6458 "util/configparser.c" - break; - - case 513: -#line 2707 "./util/configparser.y" - { - OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 6468 "util/configparser.c" break; case 514: -#line 2714 "./util/configparser.y" - { - OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2711 "util/configparser.y" + { + OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6480 "util/configparser.c" break; case 515: -#line 2723 "./util/configparser.y" - { - OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2718 "util/configparser.y" + { + OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6492 "util/configparser.c" break; case 516: -#line 2732 "./util/configparser.y" - { - OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2725 "util/configparser.y" + { + OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->ssl_upstream = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6505 "util/configparser.c" break; case 517: -#line 2742 "./util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[0].str))); +#line 2734 "util/configparser.y" + { + OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 518: +#line 2743 "util/configparser.y" + { + OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->ssl_upstream = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 519: +#line 2753 "util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->auths->name) yyerror("auth name override, there must be one name " "for one auth-zone"); free(cfg_parser->cfg->auths->name); - cfg_parser->cfg->auths->name = (yyvsp[0].str); + cfg_parser->cfg->auths->name = (yyvsp[(2) - (2)].str); } -#line 6518 "util/configparser.c" - break; - - case 518: -#line 2752 "./util/configparser.y" - { - OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->auths->zonefile); - cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); - } -#line 6528 "util/configparser.c" - break; - - case 519: -#line 2759 "./util/configparser.y" - { - OUTYY(("P(master:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 6538 "util/configparser.c" break; case 520: -#line 2766 "./util/configparser.y" - { - OUTYY(("P(url:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) - yyerror("out of memory"); +#line 2763 "util/configparser.y" + { + OUTYY(("P(zonefile:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->auths->zonefile); + cfg_parser->cfg->auths->zonefile = (yyvsp[(2) - (2)].str); } -#line 6548 "util/configparser.c" break; case 521: -#line 2773 "./util/configparser.y" - { - OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, - (yyvsp[0].str))) +#line 2770 "util/configparser.y" + { + OUTYY(("P(master:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[(2) - (2)].str))) yyerror("out of memory"); } -#line 6559 "util/configparser.c" break; case 522: -#line 2781 "./util/configparser.y" - { - OUTYY(("P(zonemd-reject-absence:%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->auths->zonemd_reject_absence = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2777 "util/configparser.y" + { + OUTYY(("P(url:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6572 "util/configparser.c" break; case 523: -#line 2791 "./util/configparser.y" - { - OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->auths->for_downstream = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2784 "util/configparser.y" + { + OUTYY(("P(allow-notify:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, + (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6585 "util/configparser.c" break; case 524: -#line 2801 "./util/configparser.y" - { - OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2792 "util/configparser.y" + { + OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->auths->for_upstream = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->auths->zonemd_reject_absence = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6598 "util/configparser.c" break; case 525: -#line 2811 "./util/configparser.y" - { - OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 2802 "util/configparser.y" + { + OUTYY(("P(for-downstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->auths->fallback_enabled = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->auths->for_downstream = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6611 "util/configparser.c" break; case 526: -#line 2821 "./util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[0].str))); +#line 2812 "util/configparser.y" + { + OUTYY(("P(for-upstream:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->for_upstream = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 527: +#line 2822 "util/configparser.y" + { + OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->fallback_enabled = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 528: +#line 2832 "util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->views->name) yyerror("view name override, there must be one " "name for one view"); free(cfg_parser->cfg->views->name); - cfg_parser->cfg->views->name = (yyvsp[0].str); + cfg_parser->cfg->views->name = (yyvsp[(2) - (2)].str); } -#line 6624 "util/configparser.c" break; - case 527: -#line 2831 "./util/configparser.y" - { - OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && - strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && - strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 - && strcmp((yyvsp[0].str), "typetransparent")!=0 - && strcmp((yyvsp[0].str), "always_transparent")!=0 - && strcmp((yyvsp[0].str), "always_refuse")!=0 - && strcmp((yyvsp[0].str), "always_nxdomain")!=0 - && strcmp((yyvsp[0].str), "always_nodata")!=0 - && strcmp((yyvsp[0].str), "always_deny")!=0 - && strcmp((yyvsp[0].str), "always_null")!=0 - && strcmp((yyvsp[0].str), "noview")!=0 - && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 - && strcmp((yyvsp[0].str), "inform_redirect") != 0 - && strcmp((yyvsp[0].str), "ipset") != 0) { + case 529: +#line 2842 "util/configparser.y" + { + OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && + strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && + strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0 + && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0 + && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0 + && strcmp((yyvsp[(3) - (3)].str), "noview")!=0 + && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0 + && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0 + && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -6648,72 +6198,68 @@ yyreduce: "always_refuse, always_nxdomain, " "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); - free((yyvsp[-1].str)); - free((yyvsp[0].str)); - } else if(strcmp((yyvsp[0].str), "nodefault")==0) { + free((yyvsp[(2) - (3)].str)); + free((yyvsp[(3) - (3)].str)); + } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_zones_nodefault, (yyvsp[-1].str))) + local_zones_nodefault, (yyvsp[(2) - (3)].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[0].str)); + free((yyvsp[(3) - (3)].str)); #ifdef USE_IPSET - } else if(strcmp((yyvsp[0].str), "ipset")==0) { + } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_zones_ipset, (yyvsp[-1].str))) + local_zones_ipset, (yyvsp[(2) - (3)].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[0].str)); + free((yyvsp[(3) - (3)].str)); #endif } else { if(!cfg_str2list_insert( &cfg_parser->cfg->views->local_zones, - (yyvsp[-1].str), (yyvsp[0].str))) + (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) fatal_exit("out of memory adding local-zone"); } } -#line 6673 "util/configparser.c" - break; - - case 528: -#line 2877 "./util/configparser.y" - { - OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - validate_respip_action((yyvsp[0].str)); - if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding per-view " - "response-ip action"); - } -#line 6686 "util/configparser.c" - break; - - case 529: -#line 2887 "./util/configparser.y" - { - OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); - if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding response-ip-data"); - } -#line 6697 "util/configparser.c" break; case 530: -#line 2895 "./util/configparser.y" - { - OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { - fatal_exit("out of memory adding local-data"); - } +#line 2888 "util/configparser.y" + { + OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + validate_respip_action((yyvsp[(3) - (3)].str)); + if(!cfg_str2list_insert( + &cfg_parser->cfg->views->respip_actions, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding per-view " + "response-ip action"); } -#line 6708 "util/configparser.c" break; case 531: -#line 2903 "./util/configparser.y" - { +#line 2898 "util/configparser.y" + { + OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str))); + if(!cfg_str2list_insert( + &cfg_parser->cfg->views->respip_data, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding response-ip-data"); + } + break; + + case 532: +#line 2906 "util/configparser.y" + { + OUTYY(("P(view_local_data:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[(2) - (2)].str))) { + fatal_exit("out of memory adding local-data"); + } + } + break; + + case 533: +#line 2914 "util/configparser.y" + { char* ptr; - OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); - ptr = cfg_ptr_reverse((yyvsp[0].str)); - free((yyvsp[0].str)); + OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); + ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); if(ptr) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> local_data, ptr)) @@ -6722,785 +6268,749 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6726 "util/configparser.c" break; - case 532: -#line 2918 "./util/configparser.y" - { - OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + case 534: +#line 2929 "util/configparser.y" + { + OUTYY(("P(view-first:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6738 "util/configparser.c" break; - case 533: -#line 2927 "./util/configparser.y" - { + case 535: +#line 2938 "util/configparser.y" + { OUTYY(("\nP(remote-control:)\n")); } -#line 6746 "util/configparser.c" - break; - - case 544: -#line 2938 "./util/configparser.y" - { - OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->remote_control_enable = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 6759 "util/configparser.c" - break; - - case 545: -#line 2948 "./util/configparser.y" - { - OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("control port number expected"); - else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 6771 "util/configparser.c" break; case 546: -#line 2957 "./util/configparser.y" - { - OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) - yyerror("out of memory"); +#line 2949 "util/configparser.y" + { + OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->remote_control_enable = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6781 "util/configparser.c" break; case 547: -#line 2964 "./util/configparser.y" - { - OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); - cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 2959 "util/configparser.y" + { + OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("control port number expected"); + else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 6791 "util/configparser.c" break; case 548: -#line 2971 "./util/configparser.y" - { - OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->server_key_file); - cfg_parser->cfg->server_key_file = (yyvsp[0].str); +#line 2968 "util/configparser.y" + { + OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 6801 "util/configparser.c" break; case 549: -#line 2978 "./util/configparser.y" - { - OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->server_cert_file); - cfg_parser->cfg->server_cert_file = (yyvsp[0].str); +#line 2975 "util/configparser.y" + { + OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); + cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6811 "util/configparser.c" break; case 550: -#line 2985 "./util/configparser.y" - { - OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->control_key_file); - cfg_parser->cfg->control_key_file = (yyvsp[0].str); +#line 2982 "util/configparser.y" + { + OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->server_key_file); + cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str); } -#line 6821 "util/configparser.c" break; case 551: -#line 2992 "./util/configparser.y" - { - OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->control_cert_file); - cfg_parser->cfg->control_cert_file = (yyvsp[0].str); +#line 2989 "util/configparser.y" + { + OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->server_cert_file); + cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str); } -#line 6831 "util/configparser.c" break; case 552: -#line 2999 "./util/configparser.y" - { +#line 2996 "util/configparser.y" + { + OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->control_key_file); + cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str); + } + break; + + case 553: +#line 3003 "util/configparser.y" + { + OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->control_cert_file); + cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str); + } + break; + + case 554: +#line 3010 "util/configparser.y" + { OUTYY(("\nP(dnstap:)\n")); } -#line 6839 "util/configparser.c" - break; - - case 574: -#line 3019 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 6851 "util/configparser.c" - break; - - case 575: -#line 3028 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_bidirectional = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 6864 "util/configparser.c" break; case 576: -#line 3038 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_socket_path); - cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); +#line 3030 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6874 "util/configparser.c" break; case 577: -#line 3045 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_ip); - cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); +#line 3039 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_bidirectional = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6884 "util/configparser.c" break; case 578: -#line 3052 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 3049 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_socket_path); + cfg_parser->cfg->dnstap_socket_path = (yyvsp[(2) - (2)].str); } -#line 6896 "util/configparser.c" break; case 579: -#line 3061 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_tls_server_name); - cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); +#line 3056 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_ip); + cfg_parser->cfg->dnstap_ip = (yyvsp[(2) - (2)].str); } -#line 6906 "util/configparser.c" break; case 580: -#line 3068 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_tls_cert_bundle); - cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); +#line 3063 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6916 "util/configparser.c" break; case 581: -#line 3075 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_tls_client_key_file); - cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); +#line 3072 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_tls_server_name); + cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[(2) - (2)].str); } -#line 6926 "util/configparser.c" break; case 582: -#line 3082 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_tls_client_cert_file); - cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); +#line 3079 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_tls_cert_bundle); + cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[(2) - (2)].str); } -#line 6936 "util/configparser.c" break; case 583: -#line 3089 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 3086 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_tls_client_key_file); + cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[(2) - (2)].str); } -#line 6948 "util/configparser.c" break; case 584: -#line 3098 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 3093 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_tls_client_cert_file); + cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[(2) - (2)].str); } -#line 6960 "util/configparser.c" break; case 585: -#line 3107 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_identity); - cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); +#line 3100 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6970 "util/configparser.c" break; case 586: -#line 3114 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnstap_version); - cfg_parser->cfg->dnstap_version = (yyvsp[0].str); +#line 3109 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 6980 "util/configparser.c" break; case 587: -#line 3121 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_query_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 3118 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_identity); + cfg_parser->cfg->dnstap_identity = (yyvsp[(2) - (2)].str); } -#line 6993 "util/configparser.c" break; case 588: -#line 3131 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_response_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); +#line 3125 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnstap_version); + cfg_parser->cfg->dnstap_version = (yyvsp[(2) - (2)].str); } -#line 7006 "util/configparser.c" break; case 589: -#line 3141 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 3132 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_query_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->dnstap_log_resolver_query_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7019 "util/configparser.c" break; case 590: -#line 3151 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 3142 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_response_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->dnstap_log_resolver_response_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7032 "util/configparser.c" break; case 591: -#line 3161 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 3152 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_query_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->dnstap_log_client_query_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7045 "util/configparser.c" break; case 592: -#line 3171 "./util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) +#line 3162 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_response_messages = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); + else cfg_parser->cfg->dnstap_log_client_response_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7058 "util/configparser.c" break; case 593: -#line 3181 "./util/configparser.y" - { +#line 3172 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_log_forwarder_query_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 594: +#line 3182 "util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnstap_log_forwarder_response_messages = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 595: +#line 3192 "util/configparser.y" + { OUTYY(("\nP(python:)\n")); } -#line 7066 "util/configparser.c" break; - case 597: -#line 3190 "./util/configparser.y" - { - OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) + case 599: +#line 3201 "util/configparser.y" + { + OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[(2) - (2)].str))) yyerror("out of memory"); } -#line 7076 "util/configparser.c" break; - case 598: -#line 3196 "./util/configparser.y" - { + case 600: +#line 3207 "util/configparser.y" + { OUTYY(("\nP(dynlib:)\n")); } -#line 7084 "util/configparser.c" - break; - - case 602: -#line 3205 "./util/configparser.y" - { - OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) - yyerror("out of memory"); - } -#line 7094 "util/configparser.c" - break; - - case 603: -#line 3211 "./util/configparser.y" - { - OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); - if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->disable_dnssec_lame_check = - (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 7107 "util/configparser.c" break; case 604: -#line 3221 "./util/configparser.y" - { - OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->log_identity); - cfg_parser->cfg->log_identity = (yyvsp[0].str); +#line 3216 "util/configparser.y" + { + OUTYY(("P(dynlib-file:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[(2) - (2)].str))) + yyerror("out of memory"); } -#line 7117 "util/configparser.c" break; case 605: -#line 3228 "./util/configparser.y" - { - OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - validate_respip_action((yyvsp[0].str)); - if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, - (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding response-ip"); +#line 3222 "util/configparser.y" + { + OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[(2) - (2)].str))); + if (strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->disable_dnssec_lame_check = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7129 "util/configparser.c" break; case 606: -#line 3237 "./util/configparser.y" - { - OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); - if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, - (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding response-ip-data"); +#line 3232 "util/configparser.y" + { + OUTYY(("P(server_log_identity:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->log_identity); + cfg_parser->cfg->log_identity = (yyvsp[(2) - (2)].str); } -#line 7140 "util/configparser.c" break; case 607: -#line 3245 "./util/configparser.y" - { +#line 3239 "util/configparser.y" + { + OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + validate_respip_action((yyvsp[(3) - (3)].str)); + if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, + (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding response-ip"); + } + break; + + case 608: +#line 3248 "util/configparser.y" + { + OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str))); + if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, + (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding response-ip-data"); + } + break; + + case 609: +#line 3256 "util/configparser.y" + { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7148 "util/configparser.c" - break; - - case 620: -#line 3261 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); - if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); - free((yyvsp[0].str)); - } -#line 7160 "util/configparser.c" - break; - - case 621: -#line 3271 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); - free((yyvsp[0].str)); - } -#line 7172 "util/configparser.c" break; case 622: -#line 3280 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dnscrypt_provider); - cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); +#line 3272 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); } -#line 7182 "util/configparser.c" break; case 623: -#line 3287 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) - log_warn("dnscrypt-provider-cert %s is a duplicate", (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 3282 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[(2) - (2)].str)); + free((yyvsp[(2) - (2)].str)); } -#line 7194 "util/configparser.c" break; case 624: -#line 3296 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) - fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); +#line 3291 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->dnscrypt_provider); + cfg_parser->cfg->dnscrypt_provider = (yyvsp[(2) - (2)].str); } -#line 7204 "util/configparser.c" break; case 625: -#line 3303 "./util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) - log_warn("dnscrypt-secret-key: %s is a duplicate", (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 3298 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[(2) - (2)].str))); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str))) + log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[(2) - (2)].str)); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7216 "util/configparser.c" break; case 626: -#line 3312 "./util/configparser.y" - { - OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) - yyerror("memory size expected"); - free((yyvsp[0].str)); - } -#line 7227 "util/configparser.c" +#line 3307 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); + } break; case 627: -#line 3320 "./util/configparser.y" - { - OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str)); - if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) - yyerror("must be a power of 2"); - } - free((yyvsp[0].str)); - } -#line 7243 "util/configparser.c" +#line 3314 "util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[(2) - (2)].str))); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str))) + log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[(2) - (2)].str)); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str))) + fatal_exit("out of memory adding dnscrypt-secret-key"); + } break; case 628: -#line 3333 "./util/configparser.y" - { - OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); - if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) +#line 3323 "util/configparser.y" + { + OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 7254 "util/configparser.c" break; case 629: -#line 3341 "./util/configparser.y" - { - OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) +#line 3331 "util/configparser.y" + { + OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].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)) + cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 7270 "util/configparser.c" break; case 630: -#line 3354 "./util/configparser.y" - { +#line 3344 "util/configparser.y" + { + OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); + if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) + yyerror("memory size expected"); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 631: +#line 3352 "util/configparser.y" + { + OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("number expected"); + else { + cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) + yyerror("must be a power of 2"); + } + free((yyvsp[(2) - (2)].str)); + } + break; + + case 632: +#line 3365 "util/configparser.y" + { OUTYY(("\nP(cachedb:)\n")); } -#line 7278 "util/configparser.c" - break; - - case 639: -#line 3365 "./util/configparser.y" - { - #ifdef USE_CACHEDB - OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->cachedb_backend); - cfg_parser->cfg->cachedb_backend = (yyvsp[0].str); - #else - OUTYY(("P(Compiled without cachedb, ignoring)\n")); - free((yyvsp[0].str)); - #endif - } -#line 7293 "util/configparser.c" - break; - - case 640: -#line 3377 "./util/configparser.y" - { - #ifdef USE_CACHEDB - OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->cachedb_secret); - cfg_parser->cfg->cachedb_secret = (yyvsp[0].str); - #else - OUTYY(("P(Compiled without cachedb, ignoring)\n")); - free((yyvsp[0].str)); - #endif - } -#line 7308 "util/configparser.c" break; case 641: -#line 3389 "./util/configparser.y" - { - #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->redis_server_host); - cfg_parser->cfg->redis_server_host = (yyvsp[0].str); +#line 3376 "util/configparser.y" + { + #ifdef USE_CACHEDB + OUTYY(("P(backend:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->cachedb_backend); + cfg_parser->cfg->cachedb_backend = (yyvsp[(2) - (2)].str); #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - free((yyvsp[0].str)); + OUTYY(("P(Compiled without cachedb, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); #endif } -#line 7323 "util/configparser.c" break; case 642: -#line 3401 "./util/configparser.y" - { +#line 3388 "util/configparser.y" + { + #ifdef USE_CACHEDB + OUTYY(("P(secret-seed:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->cachedb_secret); + cfg_parser->cfg->cachedb_secret = (yyvsp[(2) - (2)].str); + #else + OUTYY(("P(Compiled without cachedb, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); + #endif + } + break; + + case 643: +#line 3400 "util/configparser.y" + { + #if defined(USE_CACHEDB) && defined(USE_REDIS) + OUTYY(("P(redis_server_host:%s)\n", (yyvsp[(2) - (2)].str))); + free(cfg_parser->cfg->redis_server_host); + cfg_parser->cfg->redis_server_host = (yyvsp[(2) - (2)].str); + #else + OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); + free((yyvsp[(2) - (2)].str)); + #endif + } + break; + + case 644: +#line 3412 "util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; - OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); - port = atoi((yyvsp[0].str)); + OUTYY(("P(redis_server_port:%s)\n", (yyvsp[(2) - (2)].str))); + port = atoi((yyvsp[(2) - (2)].str)); if(port == 0 || port < 0 || port > 65535) yyerror("valid redis server port number expected"); else cfg_parser->cfg->redis_server_port = port; #else OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); #endif - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); } -#line 7341 "util/configparser.c" - break; - - case 643: -#line 3416 "./util/configparser.y" - { - #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); - if(atoi((yyvsp[0].str)) == 0) - yyerror("redis timeout value expected"); - else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str)); - #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - #endif - free((yyvsp[0].str)); - } -#line 7357 "util/configparser.c" - break; - - case 644: -#line 3429 "./util/configparser.y" - { - #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_expire_records:%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->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0); - #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - #endif - free((yyvsp[0].str)); - } -#line 7373 "util/configparser.c" break; case 645: -#line 3442 "./util/configparser.y" - { - OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); - if (atoi((yyvsp[0].str)) < 0) - yyerror("positive number expected"); - else { - if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str))) - fatal_exit("out of memory adding tcp connection limit"); - } +#line 3427 "util/configparser.y" + { + #if defined(USE_CACHEDB) && defined(USE_REDIS) + OUTYY(("P(redis_timeout:%s)\n", (yyvsp[(2) - (2)].str))); + if(atoi((yyvsp[(2) - (2)].str)) == 0) + yyerror("redis timeout value expected"); + else cfg_parser->cfg->redis_timeout = atoi((yyvsp[(2) - (2)].str)); + #else + OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); + #endif + free((yyvsp[(2) - (2)].str)); } -#line 7387 "util/configparser.c" break; case 646: -#line 3453 "./util/configparser.y" - { - OUTYY(("\nP(ipset:)\n")); - } -#line 7395 "util/configparser.c" +#line 3440 "util/configparser.y" + { + #if defined(USE_CACHEDB) && defined(USE_REDIS) + OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + #else + OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); + #endif + free((yyvsp[(2) - (2)].str)); + } break; - case 651: -#line 3462 "./util/configparser.y" - { + case 647: +#line 3453 "util/configparser.y" + { + OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); + if (atoi((yyvsp[(3) - (3)].str)) < 0) + yyerror("positive number expected"); + else { + if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + fatal_exit("out of memory adding tcp connection limit"); + } + } + break; + + case 648: +#line 3464 "util/configparser.y" + { + OUTYY(("\nP(ipset:)\n")); + } + break; + + case 653: +#line 3473 "util/configparser.y" + { #ifdef USE_IPSET - OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); + OUTYY(("P(name-v4:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->ipset_name_v4) yyerror("ipset name v4 override, there must be one " "name for ip v4"); free(cfg_parser->cfg->ipset_name_v4); - cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str); + cfg_parser->cfg->ipset_name_v4 = (yyvsp[(2) - (2)].str); #else OUTYY(("P(Compiled without ipset, ignoring)\n")); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); #endif } -#line 7413 "util/configparser.c" break; - case 652: -#line 3477 "./util/configparser.y" - { + case 654: +#line 3488 "util/configparser.y" + { #ifdef USE_IPSET - OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); + OUTYY(("P(name-v6:%s)\n", (yyvsp[(2) - (2)].str))); if(cfg_parser->cfg->ipset_name_v6) yyerror("ipset name v6 override, there must be one " "name for ip v6"); free(cfg_parser->cfg->ipset_name_v6); - cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str); + cfg_parser->cfg->ipset_name_v6 = (yyvsp[(2) - (2)].str); #else OUTYY(("P(Compiled without ipset, ignoring)\n")); - free((yyvsp[0].str)); + free((yyvsp[(2) - (2)].str)); #endif } -#line 7431 "util/configparser.c" break; -#line 7435 "util/configparser.c" - +/* Line 1267 of yacc.c. */ +#line 6921 "util/configparser.c" default: break; } - /* User semantic actions sometimes alter yychar, and that requires - that yytoken be updated with the new translation. We take the - approach of translating immediately before every use of yytoken. - One alternative is translating here after every semantic action, - but that translation would be missed if the semantic action invokes - YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or - if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an - incorrect destructor might then be invoked immediately. In the - case of YYERROR or YYBACKUP, subsequent parser actions might lead - to an incorrect destructor call or verbose syntax error message - before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - /* Now 'shift' the result of the reduction. Determine what state + + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ yyerrlab: - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; +#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif } + + if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; @@ -7509,12 +7019,14 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; - /* Do not reclaim the symbols of the rule whose action triggered + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7527,42 +7039,42 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ - /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; - if (!yypact_value_is_default (yyn)) - { - yyn += YYSYMBOL_YYerror; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - YY_ACCESSING_SYMBOL (yystate), yyvsp); + yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + if (yyn == YYFINAL) + YYACCEPT; + *++yyvsp = yylval; - YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -7575,7 +7087,6 @@ yyacceptlab: yyresult = 0; goto yyreturn; - /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -7583,8 +7094,7 @@ yyabortlab: yyresult = 1; goto yyreturn; - -#if !defined yyoverflow +#ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -7594,38 +7104,34 @@ yyexhaustedlab: /* Fall through. */ #endif - -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ yyreturn: - if (yychar != YYEMPTY) - { - /* Make sure we have latest lookahead translation. See comments at - user semantic actions for why this is necessary. */ - yytoken = YYTRANSLATE (yychar); - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - } - /* Do not reclaim the symbols of the rule whose action triggered + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); + yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif - - return yyresult; +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 3491 "./util/configparser.y" + +#line 3502 "util/configparser.y" /* parse helper routines could be here */ @@ -7647,3 +7153,4 @@ validate_respip_action(const char* action) } + diff --git a/util/configparser.h b/util/configparser.h index 5f1f73fec..430f09180 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Bison interface for Yacc-like parsers in C +/* Skeleton interface for Bison's Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, - Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or modify + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + the Free Software Foundation; either version 2, or (at your option) + any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,7 +16,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -31,346 +33,326 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, - especially those whose name start with YY_ or yy_. They are - private implementation details that can be changed or removed. */ - -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ - VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ - VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 369, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 381, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ - VAR_SSL_SERVICE_KEY = 392, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 393, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 394, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 395, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 396, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 397, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 398, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 399, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 400, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 401, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 402, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 403, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 404, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 405, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 406, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 407, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 408, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 409, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 410, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 411, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 412, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 413, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 414, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 415, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 416, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 417, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 418, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 419, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 420, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 421, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 422, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 423, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 424, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 425, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 426, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 428, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 429, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 430, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 431, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 432, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 433, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 439, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 440, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 441, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 442, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 443, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 444, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 445, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 446, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 447, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 448, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 449, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 450, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 451, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 452, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 453, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 454, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 455, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 456, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 457, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 458, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 459, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 460, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 462, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 464, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 466, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 467, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 468, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 469, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 470, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 471, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 472, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 473, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 474, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 475, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 476, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 477, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 478, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 479, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 480, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 481, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 482, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 483, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 484, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 485, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 486, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 487, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 488, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 489, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 490, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 491, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 492, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 493, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 494, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 495, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 496, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 497, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 498, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 499, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 500, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 501, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 502, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 503, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 504, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 506, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 508, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 509, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 510, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 511, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 512, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 513, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 514, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 515, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 516, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 517, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 518, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 519, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 520, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 521, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 522, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 523, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 524, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 525, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 526, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 527, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 528, /* VAR_ZONEFILE */ - VAR_MASTER = 529, /* VAR_MASTER */ - VAR_URL = 530, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 531, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 532, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 533, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 534, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 535, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 536, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 537, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 538, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 539, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 540, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 541, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 542, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 543, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 544, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 545, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 546, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 547, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 548, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 549, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 550, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 551, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 552, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 553, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 554, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 555, /* VAR_RPZ */ - VAR_TAGS = 556, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 557, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 558, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 559, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 560, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 561, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 562, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 563, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 564, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 565, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 566, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 567 /* VAR_ZONEMD_REJECT_ABSENCE */ - }; - typedef enum yytokentype yytoken_kind_t; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + SPACE = 258, + LETTER = 259, + NEWLINE = 260, + COMMENT = 261, + COLON = 262, + ANY = 263, + ZONESTR = 264, + STRING_ARG = 265, + VAR_FORCE_TOPLEVEL = 266, + VAR_SERVER = 267, + VAR_VERBOSITY = 268, + VAR_NUM_THREADS = 269, + VAR_PORT = 270, + VAR_OUTGOING_RANGE = 271, + VAR_INTERFACE = 272, + VAR_PREFER_IP4 = 273, + VAR_DO_IP4 = 274, + VAR_DO_IP6 = 275, + VAR_PREFER_IP6 = 276, + VAR_DO_UDP = 277, + VAR_DO_TCP = 278, + VAR_TCP_MSS = 279, + VAR_OUTGOING_TCP_MSS = 280, + VAR_TCP_IDLE_TIMEOUT = 281, + VAR_EDNS_TCP_KEEPALIVE = 282, + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, + VAR_CHROOT = 284, + VAR_USERNAME = 285, + VAR_DIRECTORY = 286, + VAR_LOGFILE = 287, + VAR_PIDFILE = 288, + VAR_MSG_CACHE_SIZE = 289, + VAR_MSG_CACHE_SLABS = 290, + VAR_NUM_QUERIES_PER_THREAD = 291, + VAR_RRSET_CACHE_SIZE = 292, + VAR_RRSET_CACHE_SLABS = 293, + VAR_OUTGOING_NUM_TCP = 294, + VAR_INFRA_HOST_TTL = 295, + VAR_INFRA_LAME_TTL = 296, + VAR_INFRA_CACHE_SLABS = 297, + VAR_INFRA_CACHE_NUMHOSTS = 298, + VAR_INFRA_CACHE_LAME_SIZE = 299, + VAR_NAME = 300, + VAR_STUB_ZONE = 301, + VAR_STUB_HOST = 302, + VAR_STUB_ADDR = 303, + VAR_TARGET_FETCH_POLICY = 304, + VAR_HARDEN_SHORT_BUFSIZE = 305, + VAR_HARDEN_LARGE_QUERIES = 306, + VAR_FORWARD_ZONE = 307, + VAR_FORWARD_HOST = 308, + VAR_FORWARD_ADDR = 309, + VAR_DO_NOT_QUERY_ADDRESS = 310, + VAR_HIDE_IDENTITY = 311, + VAR_HIDE_VERSION = 312, + VAR_IDENTITY = 313, + VAR_VERSION = 314, + VAR_HARDEN_GLUE = 315, + VAR_MODULE_CONF = 316, + VAR_TRUST_ANCHOR_FILE = 317, + VAR_TRUST_ANCHOR = 318, + VAR_VAL_OVERRIDE_DATE = 319, + VAR_BOGUS_TTL = 320, + VAR_VAL_CLEAN_ADDITIONAL = 321, + VAR_VAL_PERMISSIVE_MODE = 322, + VAR_INCOMING_NUM_TCP = 323, + VAR_MSG_BUFFER_SIZE = 324, + VAR_KEY_CACHE_SIZE = 325, + VAR_KEY_CACHE_SLABS = 326, + VAR_TRUSTED_KEYS_FILE = 327, + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, + VAR_USE_SYSLOG = 329, + VAR_OUTGOING_INTERFACE = 330, + VAR_ROOT_HINTS = 331, + VAR_DO_NOT_QUERY_LOCALHOST = 332, + VAR_CACHE_MAX_TTL = 333, + VAR_HARDEN_DNSSEC_STRIPPED = 334, + VAR_ACCESS_CONTROL = 335, + VAR_LOCAL_ZONE = 336, + VAR_LOCAL_DATA = 337, + VAR_INTERFACE_AUTOMATIC = 338, + VAR_STATISTICS_INTERVAL = 339, + VAR_DO_DAEMONIZE = 340, + VAR_USE_CAPS_FOR_ID = 341, + VAR_STATISTICS_CUMULATIVE = 342, + VAR_OUTGOING_PORT_PERMIT = 343, + VAR_OUTGOING_PORT_AVOID = 344, + VAR_DLV_ANCHOR_FILE = 345, + VAR_DLV_ANCHOR = 346, + VAR_NEG_CACHE_SIZE = 347, + VAR_HARDEN_REFERRAL_PATH = 348, + VAR_PRIVATE_ADDRESS = 349, + VAR_PRIVATE_DOMAIN = 350, + VAR_REMOTE_CONTROL = 351, + VAR_CONTROL_ENABLE = 352, + VAR_CONTROL_INTERFACE = 353, + VAR_CONTROL_PORT = 354, + VAR_SERVER_KEY_FILE = 355, + VAR_SERVER_CERT_FILE = 356, + VAR_CONTROL_KEY_FILE = 357, + VAR_CONTROL_CERT_FILE = 358, + VAR_CONTROL_USE_CERT = 359, + VAR_TCP_REUSE_TIMEOUT = 360, + VAR_MAX_REUSE_TCP_QUERIES = 361, + VAR_EXTENDED_STATISTICS = 362, + VAR_LOCAL_DATA_PTR = 363, + VAR_JOSTLE_TIMEOUT = 364, + VAR_STUB_PRIME = 365, + VAR_UNWANTED_REPLY_THRESHOLD = 366, + VAR_LOG_TIME_ASCII = 367, + VAR_DOMAIN_INSECURE = 368, + VAR_PYTHON = 369, + VAR_PYTHON_SCRIPT = 370, + VAR_VAL_SIG_SKEW_MIN = 371, + VAR_VAL_SIG_SKEW_MAX = 372, + VAR_CACHE_MIN_TTL = 373, + VAR_VAL_LOG_LEVEL = 374, + VAR_AUTO_TRUST_ANCHOR_FILE = 375, + VAR_KEEP_MISSING = 376, + VAR_ADD_HOLDDOWN = 377, + VAR_DEL_HOLDDOWN = 378, + VAR_SO_RCVBUF = 379, + VAR_EDNS_BUFFER_SIZE = 380, + VAR_PREFETCH = 381, + VAR_PREFETCH_KEY = 382, + VAR_SO_SNDBUF = 383, + VAR_SO_REUSEPORT = 384, + VAR_HARDEN_BELOW_NXDOMAIN = 385, + VAR_IGNORE_CD_FLAG = 386, + VAR_LOG_QUERIES = 387, + VAR_LOG_REPLIES = 388, + VAR_LOG_LOCAL_ACTIONS = 389, + VAR_TCP_UPSTREAM = 390, + VAR_SSL_UPSTREAM = 391, + VAR_TCP_AUTH_QUERY_TIMEOUT = 392, + VAR_SSL_SERVICE_KEY = 393, + VAR_SSL_SERVICE_PEM = 394, + VAR_SSL_PORT = 395, + VAR_FORWARD_FIRST = 396, + VAR_STUB_SSL_UPSTREAM = 397, + VAR_FORWARD_SSL_UPSTREAM = 398, + VAR_TLS_CERT_BUNDLE = 399, + VAR_HTTPS_PORT = 400, + VAR_HTTP_ENDPOINT = 401, + VAR_HTTP_MAX_STREAMS = 402, + VAR_HTTP_QUERY_BUFFER_SIZE = 403, + VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, + VAR_HTTP_NODELAY = 405, + VAR_HTTP_NOTLS_DOWNSTREAM = 406, + VAR_STUB_FIRST = 407, + VAR_MINIMAL_RESPONSES = 408, + VAR_RRSET_ROUNDROBIN = 409, + VAR_MAX_UDP_SIZE = 410, + VAR_DELAY_CLOSE = 411, + VAR_UDP_CONNECT = 412, + VAR_UNBLOCK_LAN_ZONES = 413, + VAR_INSECURE_LAN_ZONES = 414, + VAR_INFRA_CACHE_MIN_RTT = 415, + VAR_INFRA_KEEP_PROBING = 416, + VAR_DNS64_PREFIX = 417, + VAR_DNS64_SYNTHALL = 418, + VAR_DNS64_IGNORE_AAAA = 419, + VAR_DNSTAP = 420, + VAR_DNSTAP_ENABLE = 421, + VAR_DNSTAP_SOCKET_PATH = 422, + VAR_DNSTAP_IP = 423, + VAR_DNSTAP_TLS = 424, + VAR_DNSTAP_TLS_SERVER_NAME = 425, + VAR_DNSTAP_TLS_CERT_BUNDLE = 426, + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, + VAR_DNSTAP_SEND_IDENTITY = 429, + VAR_DNSTAP_SEND_VERSION = 430, + VAR_DNSTAP_BIDIRECTIONAL = 431, + VAR_DNSTAP_IDENTITY = 432, + VAR_DNSTAP_VERSION = 433, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, + VAR_RESPONSE_IP_TAG = 440, + VAR_RESPONSE_IP = 441, + VAR_RESPONSE_IP_DATA = 442, + VAR_HARDEN_ALGO_DOWNGRADE = 443, + VAR_IP_TRANSPARENT = 444, + VAR_IP_DSCP = 445, + VAR_DISABLE_DNSSEC_LAME_CHECK = 446, + VAR_IP_RATELIMIT = 447, + VAR_IP_RATELIMIT_SLABS = 448, + VAR_IP_RATELIMIT_SIZE = 449, + VAR_RATELIMIT = 450, + VAR_RATELIMIT_SLABS = 451, + VAR_RATELIMIT_SIZE = 452, + VAR_RATELIMIT_FOR_DOMAIN = 453, + VAR_RATELIMIT_BELOW_DOMAIN = 454, + VAR_IP_RATELIMIT_FACTOR = 455, + VAR_RATELIMIT_FACTOR = 456, + VAR_SEND_CLIENT_SUBNET = 457, + VAR_CLIENT_SUBNET_ZONE = 458, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, + VAR_CLIENT_SUBNET_OPCODE = 460, + VAR_MAX_CLIENT_SUBNET_IPV4 = 461, + VAR_MAX_CLIENT_SUBNET_IPV6 = 462, + VAR_MIN_CLIENT_SUBNET_IPV4 = 463, + VAR_MIN_CLIENT_SUBNET_IPV6 = 464, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, + VAR_CAPS_WHITELIST = 467, + VAR_CACHE_MAX_NEGATIVE_TTL = 468, + VAR_PERMIT_SMALL_HOLDDOWN = 469, + VAR_QNAME_MINIMISATION = 470, + VAR_QNAME_MINIMISATION_STRICT = 471, + VAR_IP_FREEBIND = 472, + VAR_DEFINE_TAG = 473, + VAR_LOCAL_ZONE_TAG = 474, + VAR_ACCESS_CONTROL_TAG = 475, + VAR_LOCAL_ZONE_OVERRIDE = 476, + VAR_ACCESS_CONTROL_TAG_ACTION = 477, + VAR_ACCESS_CONTROL_TAG_DATA = 478, + VAR_VIEW = 479, + VAR_ACCESS_CONTROL_VIEW = 480, + VAR_VIEW_FIRST = 481, + VAR_SERVE_EXPIRED = 482, + VAR_SERVE_EXPIRED_TTL = 483, + VAR_SERVE_EXPIRED_TTL_RESET = 484, + VAR_SERVE_EXPIRED_REPLY_TTL = 485, + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, + VAR_SERVE_ORIGINAL_TTL = 487, + VAR_FAKE_DSA = 488, + VAR_FAKE_SHA1 = 489, + VAR_LOG_IDENTITY = 490, + VAR_HIDE_TRUSTANCHOR = 491, + VAR_TRUST_ANCHOR_SIGNALING = 492, + VAR_AGGRESSIVE_NSEC = 493, + VAR_USE_SYSTEMD = 494, + VAR_SHM_ENABLE = 495, + VAR_SHM_KEY = 496, + VAR_ROOT_KEY_SENTINEL = 497, + VAR_DNSCRYPT = 498, + VAR_DNSCRYPT_ENABLE = 499, + VAR_DNSCRYPT_PORT = 500, + VAR_DNSCRYPT_PROVIDER = 501, + VAR_DNSCRYPT_SECRET_KEY = 502, + VAR_DNSCRYPT_PROVIDER_CERT = 503, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, + VAR_PAD_RESPONSES = 509, + VAR_PAD_RESPONSES_BLOCK_SIZE = 510, + VAR_PAD_QUERIES = 511, + VAR_PAD_QUERIES_BLOCK_SIZE = 512, + VAR_IPSECMOD_ENABLED = 513, + VAR_IPSECMOD_HOOK = 514, + VAR_IPSECMOD_IGNORE_BOGUS = 515, + VAR_IPSECMOD_MAX_TTL = 516, + VAR_IPSECMOD_WHITELIST = 517, + VAR_IPSECMOD_STRICT = 518, + VAR_CACHEDB = 519, + VAR_CACHEDB_BACKEND = 520, + VAR_CACHEDB_SECRETSEED = 521, + VAR_CACHEDB_REDISHOST = 522, + VAR_CACHEDB_REDISPORT = 523, + VAR_CACHEDB_REDISTIMEOUT = 524, + VAR_CACHEDB_REDISEXPIRERECORDS = 525, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, + VAR_FOR_UPSTREAM = 527, + VAR_AUTH_ZONE = 528, + VAR_ZONEFILE = 529, + VAR_MASTER = 530, + VAR_URL = 531, + VAR_FOR_DOWNSTREAM = 532, + VAR_FALLBACK_ENABLED = 533, + VAR_TLS_ADDITIONAL_PORT = 534, + VAR_LOW_RTT = 535, + VAR_LOW_RTT_PERMIL = 536, + VAR_FAST_SERVER_PERMIL = 537, + VAR_FAST_SERVER_NUM = 538, + VAR_ALLOW_NOTIFY = 539, + VAR_TLS_WIN_CERT = 540, + VAR_TCP_CONNECTION_LIMIT = 541, + VAR_FORWARD_NO_CACHE = 542, + VAR_STUB_NO_CACHE = 543, + VAR_LOG_SERVFAIL = 544, + VAR_DENY_ANY = 545, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, + VAR_LOG_TAG_QUERYREPLY = 547, + VAR_STREAM_WAIT_SIZE = 548, + VAR_TLS_CIPHERS = 549, + VAR_TLS_CIPHERSUITES = 550, + VAR_TLS_USE_SNI = 551, + VAR_IPSET = 552, + VAR_IPSET_NAME_V4 = 553, + VAR_IPSET_NAME_V6 = 554, + VAR_TLS_SESSION_TICKET_KEYS = 555, + VAR_RPZ = 556, + VAR_TAGS = 557, + VAR_RPZ_ACTION_OVERRIDE = 558, + VAR_RPZ_CNAME_OVERRIDE = 559, + VAR_RPZ_LOG = 560, + VAR_RPZ_LOG_NAME = 561, + VAR_DYNLIB = 562, + VAR_DYNLIB_FILE = 563, + VAR_EDNS_CLIENT_STRING = 564, + VAR_EDNS_CLIENT_STRING_OPCODE = 565, + VAR_NSID = 566, + VAR_ZONEMD_PERMISSIVE_MODE = 567, + VAR_ZONEMD_REJECT_ABSENCE = 568 + }; #endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 +/* Tokens. */ #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@ -505,202 +487,200 @@ extern int yydebug; #define VAR_LOG_LOCAL_ACTIONS 389 #define VAR_TCP_UPSTREAM 390 #define VAR_SSL_UPSTREAM 391 -#define VAR_SSL_SERVICE_KEY 392 -#define VAR_SSL_SERVICE_PEM 393 -#define VAR_SSL_PORT 394 -#define VAR_FORWARD_FIRST 395 -#define VAR_STUB_SSL_UPSTREAM 396 -#define VAR_FORWARD_SSL_UPSTREAM 397 -#define VAR_TLS_CERT_BUNDLE 398 -#define VAR_HTTPS_PORT 399 -#define VAR_HTTP_ENDPOINT 400 -#define VAR_HTTP_MAX_STREAMS 401 -#define VAR_HTTP_QUERY_BUFFER_SIZE 402 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 403 -#define VAR_HTTP_NODELAY 404 -#define VAR_HTTP_NOTLS_DOWNSTREAM 405 -#define VAR_STUB_FIRST 406 -#define VAR_MINIMAL_RESPONSES 407 -#define VAR_RRSET_ROUNDROBIN 408 -#define VAR_MAX_UDP_SIZE 409 -#define VAR_DELAY_CLOSE 410 -#define VAR_UDP_CONNECT 411 -#define VAR_UNBLOCK_LAN_ZONES 412 -#define VAR_INSECURE_LAN_ZONES 413 -#define VAR_INFRA_CACHE_MIN_RTT 414 -#define VAR_INFRA_KEEP_PROBING 415 -#define VAR_DNS64_PREFIX 416 -#define VAR_DNS64_SYNTHALL 417 -#define VAR_DNS64_IGNORE_AAAA 418 -#define VAR_DNSTAP 419 -#define VAR_DNSTAP_ENABLE 420 -#define VAR_DNSTAP_SOCKET_PATH 421 -#define VAR_DNSTAP_IP 422 -#define VAR_DNSTAP_TLS 423 -#define VAR_DNSTAP_TLS_SERVER_NAME 424 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 425 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 426 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 427 -#define VAR_DNSTAP_SEND_IDENTITY 428 -#define VAR_DNSTAP_SEND_VERSION 429 -#define VAR_DNSTAP_BIDIRECTIONAL 430 -#define VAR_DNSTAP_IDENTITY 431 -#define VAR_DNSTAP_VERSION 432 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 433 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 434 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 435 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 436 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 437 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 438 -#define VAR_RESPONSE_IP_TAG 439 -#define VAR_RESPONSE_IP 440 -#define VAR_RESPONSE_IP_DATA 441 -#define VAR_HARDEN_ALGO_DOWNGRADE 442 -#define VAR_IP_TRANSPARENT 443 -#define VAR_IP_DSCP 444 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 445 -#define VAR_IP_RATELIMIT 446 -#define VAR_IP_RATELIMIT_SLABS 447 -#define VAR_IP_RATELIMIT_SIZE 448 -#define VAR_RATELIMIT 449 -#define VAR_RATELIMIT_SLABS 450 -#define VAR_RATELIMIT_SIZE 451 -#define VAR_RATELIMIT_FOR_DOMAIN 452 -#define VAR_RATELIMIT_BELOW_DOMAIN 453 -#define VAR_IP_RATELIMIT_FACTOR 454 -#define VAR_RATELIMIT_FACTOR 455 -#define VAR_SEND_CLIENT_SUBNET 456 -#define VAR_CLIENT_SUBNET_ZONE 457 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 458 -#define VAR_CLIENT_SUBNET_OPCODE 459 -#define VAR_MAX_CLIENT_SUBNET_IPV4 460 -#define VAR_MAX_CLIENT_SUBNET_IPV6 461 -#define VAR_MIN_CLIENT_SUBNET_IPV4 462 -#define VAR_MIN_CLIENT_SUBNET_IPV6 463 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 464 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 465 -#define VAR_CAPS_WHITELIST 466 -#define VAR_CACHE_MAX_NEGATIVE_TTL 467 -#define VAR_PERMIT_SMALL_HOLDDOWN 468 -#define VAR_QNAME_MINIMISATION 469 -#define VAR_QNAME_MINIMISATION_STRICT 470 -#define VAR_IP_FREEBIND 471 -#define VAR_DEFINE_TAG 472 -#define VAR_LOCAL_ZONE_TAG 473 -#define VAR_ACCESS_CONTROL_TAG 474 -#define VAR_LOCAL_ZONE_OVERRIDE 475 -#define VAR_ACCESS_CONTROL_TAG_ACTION 476 -#define VAR_ACCESS_CONTROL_TAG_DATA 477 -#define VAR_VIEW 478 -#define VAR_ACCESS_CONTROL_VIEW 479 -#define VAR_VIEW_FIRST 480 -#define VAR_SERVE_EXPIRED 481 -#define VAR_SERVE_EXPIRED_TTL 482 -#define VAR_SERVE_EXPIRED_TTL_RESET 483 -#define VAR_SERVE_EXPIRED_REPLY_TTL 484 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 485 -#define VAR_SERVE_ORIGINAL_TTL 486 -#define VAR_FAKE_DSA 487 -#define VAR_FAKE_SHA1 488 -#define VAR_LOG_IDENTITY 489 -#define VAR_HIDE_TRUSTANCHOR 490 -#define VAR_TRUST_ANCHOR_SIGNALING 491 -#define VAR_AGGRESSIVE_NSEC 492 -#define VAR_USE_SYSTEMD 493 -#define VAR_SHM_ENABLE 494 -#define VAR_SHM_KEY 495 -#define VAR_ROOT_KEY_SENTINEL 496 -#define VAR_DNSCRYPT 497 -#define VAR_DNSCRYPT_ENABLE 498 -#define VAR_DNSCRYPT_PORT 499 -#define VAR_DNSCRYPT_PROVIDER 500 -#define VAR_DNSCRYPT_SECRET_KEY 501 -#define VAR_DNSCRYPT_PROVIDER_CERT 502 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 503 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 504 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 505 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 506 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 507 -#define VAR_PAD_RESPONSES 508 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 509 -#define VAR_PAD_QUERIES 510 -#define VAR_PAD_QUERIES_BLOCK_SIZE 511 -#define VAR_IPSECMOD_ENABLED 512 -#define VAR_IPSECMOD_HOOK 513 -#define VAR_IPSECMOD_IGNORE_BOGUS 514 -#define VAR_IPSECMOD_MAX_TTL 515 -#define VAR_IPSECMOD_WHITELIST 516 -#define VAR_IPSECMOD_STRICT 517 -#define VAR_CACHEDB 518 -#define VAR_CACHEDB_BACKEND 519 -#define VAR_CACHEDB_SECRETSEED 520 -#define VAR_CACHEDB_REDISHOST 521 -#define VAR_CACHEDB_REDISPORT 522 -#define VAR_CACHEDB_REDISTIMEOUT 523 -#define VAR_CACHEDB_REDISEXPIRERECORDS 524 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 525 -#define VAR_FOR_UPSTREAM 526 -#define VAR_AUTH_ZONE 527 -#define VAR_ZONEFILE 528 -#define VAR_MASTER 529 -#define VAR_URL 530 -#define VAR_FOR_DOWNSTREAM 531 -#define VAR_FALLBACK_ENABLED 532 -#define VAR_TLS_ADDITIONAL_PORT 533 -#define VAR_LOW_RTT 534 -#define VAR_LOW_RTT_PERMIL 535 -#define VAR_FAST_SERVER_PERMIL 536 -#define VAR_FAST_SERVER_NUM 537 -#define VAR_ALLOW_NOTIFY 538 -#define VAR_TLS_WIN_CERT 539 -#define VAR_TCP_CONNECTION_LIMIT 540 -#define VAR_FORWARD_NO_CACHE 541 -#define VAR_STUB_NO_CACHE 542 -#define VAR_LOG_SERVFAIL 543 -#define VAR_DENY_ANY 544 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 545 -#define VAR_LOG_TAG_QUERYREPLY 546 -#define VAR_STREAM_WAIT_SIZE 547 -#define VAR_TLS_CIPHERS 548 -#define VAR_TLS_CIPHERSUITES 549 -#define VAR_TLS_USE_SNI 550 -#define VAR_IPSET 551 -#define VAR_IPSET_NAME_V4 552 -#define VAR_IPSET_NAME_V6 553 -#define VAR_TLS_SESSION_TICKET_KEYS 554 -#define VAR_RPZ 555 -#define VAR_TAGS 556 -#define VAR_RPZ_ACTION_OVERRIDE 557 -#define VAR_RPZ_CNAME_OVERRIDE 558 -#define VAR_RPZ_LOG 559 -#define VAR_RPZ_LOG_NAME 560 -#define VAR_DYNLIB 561 -#define VAR_DYNLIB_FILE 562 -#define VAR_EDNS_CLIENT_STRING 563 -#define VAR_EDNS_CLIENT_STRING_OPCODE 564 -#define VAR_NSID 565 -#define VAR_ZONEMD_PERMISSIVE_MODE 566 -#define VAR_ZONEMD_REJECT_ABSENCE 567 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 392 +#define VAR_SSL_SERVICE_KEY 393 +#define VAR_SSL_SERVICE_PEM 394 +#define VAR_SSL_PORT 395 +#define VAR_FORWARD_FIRST 396 +#define VAR_STUB_SSL_UPSTREAM 397 +#define VAR_FORWARD_SSL_UPSTREAM 398 +#define VAR_TLS_CERT_BUNDLE 399 +#define VAR_HTTPS_PORT 400 +#define VAR_HTTP_ENDPOINT 401 +#define VAR_HTTP_MAX_STREAMS 402 +#define VAR_HTTP_QUERY_BUFFER_SIZE 403 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 404 +#define VAR_HTTP_NODELAY 405 +#define VAR_HTTP_NOTLS_DOWNSTREAM 406 +#define VAR_STUB_FIRST 407 +#define VAR_MINIMAL_RESPONSES 408 +#define VAR_RRSET_ROUNDROBIN 409 +#define VAR_MAX_UDP_SIZE 410 +#define VAR_DELAY_CLOSE 411 +#define VAR_UDP_CONNECT 412 +#define VAR_UNBLOCK_LAN_ZONES 413 +#define VAR_INSECURE_LAN_ZONES 414 +#define VAR_INFRA_CACHE_MIN_RTT 415 +#define VAR_INFRA_KEEP_PROBING 416 +#define VAR_DNS64_PREFIX 417 +#define VAR_DNS64_SYNTHALL 418 +#define VAR_DNS64_IGNORE_AAAA 419 +#define VAR_DNSTAP 420 +#define VAR_DNSTAP_ENABLE 421 +#define VAR_DNSTAP_SOCKET_PATH 422 +#define VAR_DNSTAP_IP 423 +#define VAR_DNSTAP_TLS 424 +#define VAR_DNSTAP_TLS_SERVER_NAME 425 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 426 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 427 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 428 +#define VAR_DNSTAP_SEND_IDENTITY 429 +#define VAR_DNSTAP_SEND_VERSION 430 +#define VAR_DNSTAP_BIDIRECTIONAL 431 +#define VAR_DNSTAP_IDENTITY 432 +#define VAR_DNSTAP_VERSION 433 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 434 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 435 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 436 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 437 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 438 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 439 +#define VAR_RESPONSE_IP_TAG 440 +#define VAR_RESPONSE_IP 441 +#define VAR_RESPONSE_IP_DATA 442 +#define VAR_HARDEN_ALGO_DOWNGRADE 443 +#define VAR_IP_TRANSPARENT 444 +#define VAR_IP_DSCP 445 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 446 +#define VAR_IP_RATELIMIT 447 +#define VAR_IP_RATELIMIT_SLABS 448 +#define VAR_IP_RATELIMIT_SIZE 449 +#define VAR_RATELIMIT 450 +#define VAR_RATELIMIT_SLABS 451 +#define VAR_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT_FOR_DOMAIN 453 +#define VAR_RATELIMIT_BELOW_DOMAIN 454 +#define VAR_IP_RATELIMIT_FACTOR 455 +#define VAR_RATELIMIT_FACTOR 456 +#define VAR_SEND_CLIENT_SUBNET 457 +#define VAR_CLIENT_SUBNET_ZONE 458 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 459 +#define VAR_CLIENT_SUBNET_OPCODE 460 +#define VAR_MAX_CLIENT_SUBNET_IPV4 461 +#define VAR_MAX_CLIENT_SUBNET_IPV6 462 +#define VAR_MIN_CLIENT_SUBNET_IPV4 463 +#define VAR_MIN_CLIENT_SUBNET_IPV6 464 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 465 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 466 +#define VAR_CAPS_WHITELIST 467 +#define VAR_CACHE_MAX_NEGATIVE_TTL 468 +#define VAR_PERMIT_SMALL_HOLDDOWN 469 +#define VAR_QNAME_MINIMISATION 470 +#define VAR_QNAME_MINIMISATION_STRICT 471 +#define VAR_IP_FREEBIND 472 +#define VAR_DEFINE_TAG 473 +#define VAR_LOCAL_ZONE_TAG 474 +#define VAR_ACCESS_CONTROL_TAG 475 +#define VAR_LOCAL_ZONE_OVERRIDE 476 +#define VAR_ACCESS_CONTROL_TAG_ACTION 477 +#define VAR_ACCESS_CONTROL_TAG_DATA 478 +#define VAR_VIEW 479 +#define VAR_ACCESS_CONTROL_VIEW 480 +#define VAR_VIEW_FIRST 481 +#define VAR_SERVE_EXPIRED 482 +#define VAR_SERVE_EXPIRED_TTL 483 +#define VAR_SERVE_EXPIRED_TTL_RESET 484 +#define VAR_SERVE_EXPIRED_REPLY_TTL 485 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 486 +#define VAR_SERVE_ORIGINAL_TTL 487 +#define VAR_FAKE_DSA 488 +#define VAR_FAKE_SHA1 489 +#define VAR_LOG_IDENTITY 490 +#define VAR_HIDE_TRUSTANCHOR 491 +#define VAR_TRUST_ANCHOR_SIGNALING 492 +#define VAR_AGGRESSIVE_NSEC 493 +#define VAR_USE_SYSTEMD 494 +#define VAR_SHM_ENABLE 495 +#define VAR_SHM_KEY 496 +#define VAR_ROOT_KEY_SENTINEL 497 +#define VAR_DNSCRYPT 498 +#define VAR_DNSCRYPT_ENABLE 499 +#define VAR_DNSCRYPT_PORT 500 +#define VAR_DNSCRYPT_PROVIDER 501 +#define VAR_DNSCRYPT_SECRET_KEY 502 +#define VAR_DNSCRYPT_PROVIDER_CERT 503 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 504 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 505 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 506 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 507 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 508 +#define VAR_PAD_RESPONSES 509 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 510 +#define VAR_PAD_QUERIES 511 +#define VAR_PAD_QUERIES_BLOCK_SIZE 512 +#define VAR_IPSECMOD_ENABLED 513 +#define VAR_IPSECMOD_HOOK 514 +#define VAR_IPSECMOD_IGNORE_BOGUS 515 +#define VAR_IPSECMOD_MAX_TTL 516 +#define VAR_IPSECMOD_WHITELIST 517 +#define VAR_IPSECMOD_STRICT 518 +#define VAR_CACHEDB 519 +#define VAR_CACHEDB_BACKEND 520 +#define VAR_CACHEDB_SECRETSEED 521 +#define VAR_CACHEDB_REDISHOST 522 +#define VAR_CACHEDB_REDISPORT 523 +#define VAR_CACHEDB_REDISTIMEOUT 524 +#define VAR_CACHEDB_REDISEXPIRERECORDS 525 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 526 +#define VAR_FOR_UPSTREAM 527 +#define VAR_AUTH_ZONE 528 +#define VAR_ZONEFILE 529 +#define VAR_MASTER 530 +#define VAR_URL 531 +#define VAR_FOR_DOWNSTREAM 532 +#define VAR_FALLBACK_ENABLED 533 +#define VAR_TLS_ADDITIONAL_PORT 534 +#define VAR_LOW_RTT 535 +#define VAR_LOW_RTT_PERMIL 536 +#define VAR_FAST_SERVER_PERMIL 537 +#define VAR_FAST_SERVER_NUM 538 +#define VAR_ALLOW_NOTIFY 539 +#define VAR_TLS_WIN_CERT 540 +#define VAR_TCP_CONNECTION_LIMIT 541 +#define VAR_FORWARD_NO_CACHE 542 +#define VAR_STUB_NO_CACHE 543 +#define VAR_LOG_SERVFAIL 544 +#define VAR_DENY_ANY 545 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 546 +#define VAR_LOG_TAG_QUERYREPLY 547 +#define VAR_STREAM_WAIT_SIZE 548 +#define VAR_TLS_CIPHERS 549 +#define VAR_TLS_CIPHERSUITES 550 +#define VAR_TLS_USE_SNI 551 +#define VAR_IPSET 552 +#define VAR_IPSET_NAME_V4 553 +#define VAR_IPSET_NAME_V6 554 +#define VAR_TLS_SESSION_TICKET_KEYS 555 +#define VAR_RPZ 556 +#define VAR_TAGS 557 +#define VAR_RPZ_ACTION_OVERRIDE 558 +#define VAR_RPZ_CNAME_OVERRIDE 559 +#define VAR_RPZ_LOG 560 +#define VAR_RPZ_LOG_NAME 561 +#define VAR_DYNLIB 562 +#define VAR_DYNLIB_FILE 563 +#define VAR_EDNS_CLIENT_STRING 564 +#define VAR_EDNS_CLIENT_STRING_OPCODE 565 +#define VAR_NSID 566 +#define VAR_ZONEMD_PERMISSIVE_MODE 567 +#define VAR_ZONEMD_REJECT_ABSENCE 568 + + + -/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +typedef union YYSTYPE +#line 66 "util/configparser.y" { -#line 66 "./util/configparser.y" - char* str; - -#line 694 "util/configparser.h" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1529 of yacc.c. */ +#line 679 "util/configparser.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif - extern YYSTYPE yylval; -int yyparse (void); - -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ diff --git a/util/configparser.y b/util/configparser.y index 3561630b3..6a8f83112 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -109,7 +109,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH %token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS -%token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM +%token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM VAR_TCP_AUTH_QUERY_TIMEOUT %token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST %token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM VAR_TLS_CERT_BUNDLE %token VAR_HTTPS_PORT VAR_HTTP_ENDPOINT VAR_HTTP_MAX_STREAMS @@ -302,7 +302,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_tls_use_sni | server_edns_client_string | server_edns_client_string_opcode | server_nsid | server_zonemd_permissive_mode | server_max_reuse_tcp_queries | - server_tcp_reuse_timeout + server_tcp_reuse_timeout | server_tcp_auth_query_timeout ; stubstart: VAR_STUB_ZONE @@ -883,6 +883,17 @@ server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG free($2); } ; +server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", $2)); + if(atoi($2) == 0 && strcmp($2, "0") != 0) + yyerror("number expected"); + else if (atoi($2) < 1) + cfg_parser->cfg->tcp_auth_query_timeout = 0; + else cfg_parser->cfg->tcp_auth_query_timeout = atoi($2); + free($2); + } + ; server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG { OUTYY(("P(server_tcp_keepalive:%s)\n", $2)); diff --git a/util/net_help.h b/util/net_help.h index 45b607a43..114f4cdb5 100644 --- a/util/net_help.h +++ b/util/net_help.h @@ -76,8 +76,6 @@ struct config_strlist; /** timeout in milliseconds for UDP queries to auth servers. */ #define UDP_AUTH_QUERY_TIMEOUT 3000 -/** timeout in milliseconds for TCP queries to auth servers. */ -#define TCP_AUTH_QUERY_TIMEOUT 3000 /** Advertised version of EDNS capabilities */ #define EDNS_ADVERTISED_VERSION 0 /** Advertised size of EDNS capabilities */ From ecb8aed2f2cbe38bf8cc011edd8817f9bf9b0be4 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 29 Apr 2021 10:24:35 +0200 Subject: [PATCH 017/156] - Add that log-servfail prints an IP address and more information about one of the last failures for that query. --- doc/Changelog | 4 +++ ipsecmod/ipsecmod.c | 6 ++++ iterator/iterator.c | 65 +++++++++++++++++++++++++++++++++++++++++++- iterator/iterator.h | 6 ++++ testcode/testbound.c | 1 + 5 files changed, 81 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 35ee6786f..6f1b4c3a2 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +29 April 2021: Wouter + - Add that log-servfail prints an IP address and more information + about one of the last failures for that query. + 28 April 2021: George - Fix compiler warning for signed/unsigned comparison for max_reuse_tcp_queries. diff --git a/ipsecmod/ipsecmod.c b/ipsecmod/ipsecmod.c index e443e882b..e42af6f49 100644 --- a/ipsecmod/ipsecmod.c +++ b/ipsecmod/ipsecmod.c @@ -419,6 +419,7 @@ ipsecmod_handle_query(struct module_qstate* qstate, if(!qstate->env->cfg->ipsecmod_ignore_bogus && rrset_data->security == sec_status_bogus) { log_err("ipsecmod: bogus IPSECKEY"); + errinf(qstate, "ipsecmod: bogus IPSECKEY"); ipsecmod_error(qstate, id); return; } @@ -426,6 +427,7 @@ ipsecmod_handle_query(struct module_qstate* qstate, if(!call_hook(qstate, iq, ie) && qstate->env->cfg->ipsecmod_strict) { log_err("ipsecmod: ipsecmod-hook failed"); + errinf(qstate, "ipsecmod: ipsecmod-hook failed"); ipsecmod_error(qstate, id); return; } @@ -497,6 +499,7 @@ ipsecmod_handle_response(struct module_qstate* qstate, qstate->qinfo.qname_len, LDNS_RR_TYPE_IPSECKEY, qstate->qinfo.qclass, 0)) { log_err("ipsecmod: could not generate subquery."); + errinf(qstate, "ipsecmod: could not generate subquery."); ipsecmod_error(qstate, id); } return; @@ -520,6 +523,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, if((event == module_event_new || event == module_event_pass) && iq == NULL) { if(!ipsecmod_new(qstate, id)) { + errinf(qstate, "ipsecmod: could not ipsecmod_new"); ipsecmod_error(qstate, id); return; } @@ -542,6 +546,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, } if(event == module_event_error) { verbose(VERB_ALGO, "got called with event error, giving up"); + errinf(qstate, "ipsecmod: got called with event error"); ipsecmod_error(qstate, id); return; } @@ -552,6 +557,7 @@ ipsecmod_operate(struct module_qstate* qstate, enum module_ev event, int id, } log_err("ipsecmod: bad event %s", strmodulevent(event)); + errinf(qstate, "ipsecmod: operate got bad event"); ipsecmod_error(qstate, id); return; } diff --git a/iterator/iterator.c b/iterator/iterator.c index 0f662304d..f0105ad4b 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -585,6 +585,60 @@ handle_cname_response(struct module_qstate* qstate, struct iter_qstate* iq, return 1; } +/** add response specific error information for log servfail */ +static void +errinf_reply(struct module_qstate* qstate, struct iter_qstate* iq) +{ + if(qstate->env->cfg->val_log_level < 2 && !qstate->env->cfg->log_servfail) + return; + if((qstate->reply && qstate->reply->addrlen != 0) || + (iq->fail_reply && iq->fail_reply->addrlen != 0)) { + char from[256], frm[512]; + if(qstate->reply && qstate->reply->addrlen != 0) + addr_to_str(&qstate->reply->addr, qstate->reply->addrlen, + from, sizeof(from)); + else + addr_to_str(&iq->fail_reply->addr, iq->fail_reply->addrlen, + from, sizeof(from)); + snprintf(frm, sizeof(frm), "from %s", from); + errinf(qstate, frm); + } + if(iq->scrub_failures || iq->parse_failures) { + if(iq->scrub_failures) + errinf(qstate, "upstream response failed scrub"); + if(iq->parse_failures) + errinf(qstate, "could not parse upstream response"); + } else if(iq->response == NULL && iq->timeout_count != 0) { + errinf(qstate, "upstream server timeout"); + } else if(iq->response == NULL) { + errinf(qstate, "no server to query"); + if(iq->dp) { + if(iq->dp->target_list == NULL) + errinf(qstate, "no addresses for nameservers"); + else errinf(qstate, "nameserver addresses not usable"); + if(iq->dp->nslist == NULL) + errinf(qstate, "have no nameserver names"); + if(iq->dp->bogus) + errinf(qstate, "NS record was dnssec bogus"); + } + } + if(iq->response && iq->response->rep) { + if(FLAGS_GET_RCODE(iq->response->rep->flags) != 0) { + char rcode[256], rc[32]; + (void)sldns_wire2str_rcode_buf( + FLAGS_GET_RCODE(iq->response->rep->flags), + rc, sizeof(rc)); + snprintf(rcode, sizeof(rcode), "got %s", rc); + errinf(qstate, rcode); + } else { + /* rcode NOERROR */ + if(iq->response->rep->an_numrrsets == 0) { + errinf(qstate, "nodata answer"); + } + } + } +} + /** see if last resort is possible - does config allow queries to parent */ static int can_have_last_resort(struct module_env* env, uint8_t* nm, size_t nmlen, @@ -1922,6 +1976,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq, * of a response. */ errinf(qstate, "all the configured stub or forward servers failed,"); errinf_dname(qstate, "at zone", iq->dp->name); + errinf_reply(qstate, iq); verbose(VERB_QUERY, "configured stub or forward servers failed -- returning SERVFAIL"); return error_response_cache(qstate, id, LDNS_RCODE_SERVFAIL); } @@ -2068,6 +2123,7 @@ processLastResort(struct module_qstate* qstate, struct iter_qstate* iq, errinf(qstate, "all servers for this domain failed,"); errinf_dname(qstate, "at zone", iq->dp->name); + errinf_reply(qstate, iq); verbose(VERB_QUERY, "out of query targets -- returning SERVFAIL"); /* fail -- no more targets, no more hope of targets, no hope * of a response. */ @@ -2959,6 +3015,8 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq, qstate->env->detach_subs)); (*qstate->env->detach_subs)(qstate); iq->num_target_queries = 0; + iq->response = NULL; + iq->fail_reply = NULL; verbose(VERB_ALGO, "cleared outbound list for next round"); return next_state(iq, QUERYTARGETS_STATE); } else if(type == RESPONSE_TYPE_CNAME) { @@ -3722,6 +3780,7 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, } /* parse message */ + iq->fail_reply = qstate->reply; prs = (struct msg_parse*)regional_alloc(qstate->env->scratch, sizeof(struct msg_parse)); if(!prs) { @@ -3735,12 +3794,15 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, sldns_buffer_set_position(pkt, 0); if(parse_packet(pkt, prs, qstate->env->scratch) != LDNS_RCODE_NOERROR) { verbose(VERB_ALGO, "parse error on reply packet"); + iq->parse_failures++; goto handle_it; } /* edns is not examined, but removed from message to help cache */ if(parse_extract_edns(prs, &edns, qstate->env->scratch) != - LDNS_RCODE_NOERROR) + LDNS_RCODE_NOERROR) { + iq->parse_failures++; goto handle_it; + } /* Copy the edns options we may got from the back end */ if(edns.opt_list) { @@ -3774,6 +3836,7 @@ process_response(struct module_qstate* qstate, struct iter_qstate* iq, iq->num_current_queries--; verbose(VERB_DETAIL, "Capsforid: scrub failed, starting fallback with no response"); } + iq->scrub_failures++; goto handle_it; } diff --git a/iterator/iterator.h b/iterator/iterator.h index 342ac207e..7952f26df 100644 --- a/iterator/iterator.h +++ b/iterator/iterator.h @@ -406,6 +406,12 @@ struct iter_qstate { int auth_zone_response; /** True if the auth_zones should not be consulted for the query */ int auth_zone_avoid; + /** true if there have been scrubbing failures of reply packets */ + int scrub_failures; + /** true if there have been parse failures of reply packets */ + int parse_failures; + /** a failure printout address for last received answer */ + struct comm_reply* fail_reply; }; /** diff --git a/testcode/testbound.c b/testcode/testbound.c index 5e10779fc..a7cf27a73 100644 --- a/testcode/testbound.c +++ b/testcode/testbound.c @@ -279,6 +279,7 @@ setup_config(FILE* in, int* lineno, int* pass_argc, char* pass_argv[]) fprintf(cfg, " username: \"\"\n"); fprintf(cfg, " pidfile: \"\"\n"); fprintf(cfg, " val-log-level: 2\n"); + fprintf(cfg, " log-servfail: yes\n"); fprintf(cfg, "remote-control: control-enable: no\n"); while(fgets(line, MAX_LINE_LEN-1, in)) { parse = line; From 3f230f4aaf78f4a306d608a28726c76fbf0d8ccb Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Mon, 3 May 2021 12:54:11 +0200 Subject: [PATCH 018/156] doc/example.conf.in: Clarify comment for `auto-trust-anchor-file` Remove `And enable:` as it refers to the uncommented option. Fixes: 01dd4a35 ("- Added explicit note on unbound-anchor usage:") --- doc/example.conf.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/example.conf.in b/doc/example.conf.in index 17b1b7741..2149b2258 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -507,7 +507,7 @@ server: # Use several entries, one per domain name, to track multiple zones. # # If you want to perform DNSSEC validation, run unbound-anchor before - # you start unbound (i.e. in the system boot scripts). And enable: + # you start unbound (i.e. in the system boot scripts). # Please note usage of unbound-anchor root anchor is at your own risk # and under the terms of our LICENSE (see that file in the source). # auto-trust-anchor-file: "@UNBOUND_ROOTKEY_FILE@" From 728a3cd7a6acc7d7dfa66e8b91704db0c86bbf71 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 3 May 2021 13:07:12 +0200 Subject: [PATCH 019/156] Changelog note and improved comment. - Fix #481: Fix comment in configuration file. --- doc/Changelog | 3 +++ doc/example.conf.in | 1 + 2 files changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 6f1b4c3a2..a3a93926b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +3 May 2021: Wouter + - Fix #481: Fix comment in configuration file. + 29 April 2021: Wouter - Add that log-servfail prints an IP address and more information about one of the last failures for that query. diff --git a/doc/example.conf.in b/doc/example.conf.in index 2149b2258..0a250bc79 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -508,6 +508,7 @@ server: # # If you want to perform DNSSEC validation, run unbound-anchor before # you start unbound (i.e. in the system boot scripts). + # And then enable the auto-trust-anchor-file config item. # Please note usage of unbound-anchor root anchor is at your own risk # and under the terms of our LICENSE (see that file in the source). # auto-trust-anchor-file: "@UNBOUND_ROOTKEY_FILE@" From dea1da8d7f34f521b89a180c358c0de58e20e399 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 4 May 2021 10:25:32 +0200 Subject: [PATCH 020/156] Changelog note for #478 - Merge #478: Allow configuration of TCP timeout while waiting for response. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index a3a93926b..ac80f79b5 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +4 May 2021: Wouter + - Merge #478: Allow configuration of TCP timeout while waiting for + response. + 3 May 2021: Wouter - Fix #481: Fix comment in configuration file. From edf35336a3c4bcdcf3c018dab2b13c6c75d9e271 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 May 2021 13:42:00 +0200 Subject: [PATCH 021/156] Clearer template text since not everyone can reopen GitHub issues. --- .github/ISSUE_TEMPLATE/bug_report.md | 4 ++-- .github/ISSUE_TEMPLATE/feature_request.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 3b783bb63..35d7ee94f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -10,12 +10,12 @@ assignees: '' diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 1a3910694..e9ca08b7a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -10,12 +10,12 @@ assignees: '' From 71f311dbe1a3a7d074916b877d74b25d6825ec3d Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 May 2021 14:45:01 +0200 Subject: [PATCH 022/156] - Fix for #367: only attempt to get the interface for queries that are no longer on the tcp_waiting_list. --- doc/Changelog | 4 ++++ services/outside_network.c | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index ac80f79b5..6edbcf969 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +4 May 2021: George + - Fix for #367: only attempt to get the interface for queries that are no + longer on the tcp_waiting_list. + 4 May 2021: Wouter - Merge #478: Allow configuration of TCP timeout while waiting for response. diff --git a/services/outside_network.c b/services/outside_network.c index 5fb4f3faa..a1c18c617 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -2783,8 +2783,12 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error, struct comm_reply r2; #ifdef USE_DNSTAP struct waiting_tcp* w = (struct waiting_tcp*)sq->pending; - struct pending_tcp* pend_tcp = (struct pending_tcp*)w->next_waiting; - struct port_if* pi = pend_tcp->pi; + struct pending_tcp* pend_tcp = NULL; + struct port_if* pi = NULL; + if(!w->on_tcp_waiting_list && w->next_waiting) { + pend_tcp = (struct pending_tcp*)w->next_waiting; + pi = pend_tcp->pi; + } #endif sq->pending = NULL; /* removed after this callback */ if(error != NETEVENT_NOERROR) @@ -2797,7 +2801,7 @@ serviced_tcp_callback(struct comm_point* c, void* arg, int error, /* * sending src (local service)/dst (upstream) addresses over DNSTAP */ - if(error==NETEVENT_NOERROR && sq->outnet->dtenv && + if(error==NETEVENT_NOERROR && pi && sq->outnet->dtenv && (sq->outnet->dtenv->log_resolver_response_messages || sq->outnet->dtenv->log_forwarder_response_messages)) { log_addr(VERB_ALGO, "response from upstream", &sq->addr, sq->addrlen); From e9a5f5ab3f387d5982bc36cd97044ce18bf99c3f Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 May 2021 15:39:06 +0200 Subject: [PATCH 023/156] - Add more logging for out-of-memory cases. --- daemon/worker.c | 14 ++++++++++---- doc/Changelog | 1 + util/data/msgreply.c | 10 ++++++++-- validator/val_anchor.c | 4 ++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/daemon/worker.c b/daemon/worker.c index 7537bd33d..e9e163a04 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1850,6 +1850,11 @@ worker_init(struct worker* worker, struct config_file *cfg, return 0; } worker->env.mesh = mesh_create(&worker->daemon->mods, &worker->env); + if(!worker->env.mesh) { + log_err("malloc failure"); + worker_delete(worker); + return 0; + } /* Pass on daemon variables that we would need in the mesh area */ worker->env.mesh->use_response_ip = worker->daemon->use_response_ip; worker->env.mesh->use_rpz = worker->daemon->use_rpz; @@ -1860,6 +1865,11 @@ worker_init(struct worker* worker, struct config_file *cfg, worker->env.kill_sub = &mesh_state_delete; worker->env.detect_cycle = &mesh_detect_cycle; worker->env.scratch_buffer = sldns_buffer_new(cfg->msg_buffer_size); + if(!worker->env.scratch_buffer) { + log_err("malloc failure"); + worker_delete(worker); + return 0; + } if(!(worker->env.fwds = forwards_create()) || !forwards_apply_cfg(worker->env.fwds, cfg)) { log_err("Could not set forward zones"); @@ -1914,10 +1924,6 @@ worker_init(struct worker* worker, struct config_file *cfg, } } #endif /* USE_DNSTAP */ - if(!worker->env.mesh || !worker->env.scratch_buffer) { - worker_delete(worker); - return 0; - } worker_mem_report(worker, NULL); /* if statistics enabled start timer */ if(worker->env.cfg->stat_interval > 0) { diff --git a/doc/Changelog b/doc/Changelog index 6edbcf969..18cb98ae5 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 4 May 2021: George - Fix for #367: only attempt to get the interface for queries that are no longer on the tcp_waiting_list. + - Add more logging for out-of-memory cases. 4 May 2021: Wouter - Merge #478: Allow configuration of TCP timeout while waiting for diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 4830b343f..48550cbe4 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -825,9 +825,15 @@ log_dns_msg(const char* str, struct query_info* qinfo, struct reply_info* rep) /* not particularly fast but flexible, make wireformat and print */ sldns_buffer* buf = sldns_buffer_new(65535); struct regional* region = regional_create(); - if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, + if(!(buf && region)) { + log_err("%s: log_dns_msg: out of memory", str); + sldns_buffer_free(buf); + regional_destroy(region); + return; + } + if(!reply_info_encode(qinfo, rep, 0, rep->flags, buf, 0, region, 65535, 1, 0)) { - log_info("%s: log_dns_msg: out of memory", str); + log_err("%s: log_dns_msg: out of memory", str); } else { char* s = sldns_wire2str_pkt(sldns_buffer_begin(buf), sldns_buffer_limit(buf)); diff --git a/validator/val_anchor.c b/validator/val_anchor.c index 9b6574c5d..52711bbcb 100644 --- a/validator/val_anchor.c +++ b/validator/val_anchor.c @@ -1048,6 +1048,10 @@ anchors_apply_cfg(struct val_anchors* anchors, struct config_file* cfg) const char** zstr; char* nm; sldns_buffer* parsebuf = sldns_buffer_new(65535); + if(!parsebuf) { + log_err("malloc error in anchors_apply_cfg."); + return 0; + } if(cfg->insecure_lan_zones) { for(zstr = as112_zones; *zstr; zstr++) { if(!anchor_insert_insecure(anchors, *zstr)) { From 90d0f8bc19695250a1fcb2235f6a3b4e25098444 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 4 May 2021 16:21:42 +0200 Subject: [PATCH 024/156] - Fix to squelch tcp socket bind failures when the interface is gone. --- doc/Changelog | 1 + services/outside_network.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 6edbcf969..ca25ccc4c 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -5,6 +5,7 @@ 4 May 2021: Wouter - Merge #478: Allow configuration of TCP timeout while waiting for response. + - Fix to squelch tcp socket bind failures when the interface is gone. 3 May 2021: Wouter - Fix #481: Fix comment in configuration file. diff --git a/services/outside_network.c b/services/outside_network.c index a1c18c617..9b09aa360 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -238,7 +238,14 @@ pick_outgoing_tcp(struct pending_tcp* pend, struct waiting_tcp* w, int s) ((struct sockaddr_in6*)&pi->addr)->sin6_port = 0; else ((struct sockaddr_in*)&pi->addr)->sin_port = 0; if(bind(s, (struct sockaddr*)&pi->addr, pi->addrlen) != 0) { - log_err("outgoing tcp: bind: %s", sock_strerror(errno)); +#ifndef USE_WINSOCK +#ifdef EADDRNOTAVAIL + if(!(verbosity < 4 && errno == EADDRNOTAVAIL)) +#endif +#else /* USE_WINSOCK */ + if(!(verbosity < 4 && WSAGetLastError() == WSAEADDRNOTAVAIL)) +#endif + log_err("outgoing tcp: bind: %s", sock_strerror(errno)); sock_close(s); return 0; } From 80f06ae9b1e6b15e62b5ba4bf837c45778775496 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 4 May 2021 16:24:16 +0200 Subject: [PATCH 025/156] - Rerun flex and bison. --- doc/Changelog | 1 + util/configlexer.c | 12218 +++++++++--------------------------------- util/configparser.c | 7346 +++++++++++++------------ util/configparser.h | 698 +-- 4 files changed, 6869 insertions(+), 13394 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 811860b5b..cf306ea6b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -7,6 +7,7 @@ - Merge #478: Allow configuration of TCP timeout while waiting for response. - Fix to squelch tcp socket bind failures when the interface is gone. + - Rerun flex and bison. 3 May 2021: Wouter - Fix #481: Fix comment in configuration file. diff --git a/util/configlexer.c b/util/configlexer.c index fac54a193..06a688467 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 347 -#define YY_END_OF_BUFFER 348 +#define YY_NUM_RULES 348 +#define YY_END_OF_BUFFER 349 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,384 +363,386 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3420] = +static const flex_int16_t yy_accept[3439] = { 0, - 1, 1, 321, 321, 325, 325, 329, 329, 333, 333, - 1, 1, 337, 337, 341, 341, 348, 345, 1, 319, - 319, 346, 2, 346, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 321, 322, 322, 323, - 346, 325, 326, 326, 327, 346, 332, 329, 330, 330, - 331, 346, 333, 334, 334, 335, 346, 344, 320, 2, - 324, 346, 344, 340, 337, 338, 338, 339, 346, 341, - 342, 342, 343, 346, 345, 0, 1, 2, 2, 2, - 2, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 1, 1, 322, 322, 326, 326, 330, 330, 334, 334, + 1, 1, 338, 338, 342, 342, 349, 346, 1, 320, + 320, 347, 2, 347, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 322, 323, 323, 324, + 347, 326, 327, 327, 328, 347, 333, 330, 331, 331, + 332, 347, 334, 335, 335, 336, 347, 345, 321, 2, + 325, 347, 345, 341, 338, 339, 339, 340, 347, 342, + 343, 343, 344, 347, 346, 0, 1, 2, 2, 2, + 2, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 321, - 0, 325, 0, 332, 0, 329, 333, 0, 344, 0, - 2, 2, 344, 340, 0, 337, 341, 0, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 322, + 0, 326, 0, 333, 0, 330, 334, 0, 345, 0, + 2, 2, 345, 341, 0, 338, 342, 0, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 344, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 127, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 136, - 345, 345, 345, 345, 345, 345, 345, 344, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 128, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 137, + 346, 346, 346, 346, 346, 346, 346, 345, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 111, 345, 318, - 345, 345, 345, 345, 345, 345, 345, 8, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 112, 346, 319, + 346, 346, 346, 346, 346, 346, 346, 8, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 128, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 141, - 345, 345, 344, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 129, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 142, 346, 346, 345, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 311, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 312, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 344, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 66, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 243, 345, 14, 15, - 345, 19, 18, 345, 345, 227, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 67, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 244, 346, + 14, 15, 346, 19, 18, 346, 346, 228, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 134, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 225, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 3, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 135, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 226, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 3, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 344, - 345, 345, 345, 345, 345, 345, 345, 305, 345, 345, - 304, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 328, 345, - 345, 345, 345, 345, 345, 345, 345, 65, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 345, 346, 346, 346, 346, 346, 346, 346, + 306, 346, 346, 305, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 329, 346, 346, 346, 346, 346, 346, 346, 346, + 66, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 69, 345, 274, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 312, 313, 345, 345, - 345, 345, 345, 345, 345, 70, 345, 345, 135, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 131, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 214, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 21, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 70, 346, 275, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 313, + 314, 346, 346, 346, 346, 346, 346, 346, 71, 346, + 346, 136, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 132, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 215, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 21, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 160, 345, 345, 345, 345, - 344, 328, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 109, 345, 345, 345, 345, 345, 345, - 345, 282, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 184, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 159, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 161, + 346, 346, 346, 346, 345, 329, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 110, 346, 346, + 346, 346, 346, 346, 346, 283, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 185, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 160, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 108, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 34, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 35, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 109, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 35, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 36, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 67, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 133, 345, 345, 344, 345, 345, 345, 345, 345, - 126, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 68, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 247, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 185, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 68, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 134, 346, 346, 345, + 346, 346, 346, 346, 346, 127, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 69, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 248, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 186, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 56, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 265, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 60, 345, 61, 345, 345, - 345, 345, 345, 112, 345, 113, 345, 345, 345, 345, - 110, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 57, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 266, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 61, 346, 62, 346, 346, 346, 346, 346, 113, 346, + 114, 346, 346, 346, 346, 111, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 7, 345, 345, 345, 344, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 236, 345, 345, 345, 345, 162, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 248, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 7, 346, 346, + 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 237, 346, 346, 346, 346, 163, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 249, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 47, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 57, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 206, 345, - 205, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 16, 17, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 71, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 213, 345, - 345, 345, 345, 345, 345, 115, 345, 114, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 48, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 58, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 207, 346, 206, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 16, 17, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 72, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 214, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 197, 345, 345, 345, 345, 345, 345, 345, 345, - 142, 345, 345, 344, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 103, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 91, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 226, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 96, + 346, 116, 346, 115, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 198, 346, + 346, 346, 346, 346, 346, 346, 346, 143, 346, 346, + 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 104, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 92, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 227, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 64, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 200, 201, 345, 345, 345, 276, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 6, - 345, 345, 345, 345, 345, 345, 295, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 280, 345, 345, 345, 345, 345, - 345, 306, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 97, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 65, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 201, 202, 346, + 346, 346, 277, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 6, 346, 346, 346, + 346, 346, 346, 296, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 281, 346, 346, 346, 346, 346, 346, 307, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 44, 345, 345, 345, 345, 46, - 345, 345, 345, 92, 345, 345, 345, 345, 345, 54, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 344, - 345, 193, 345, 345, 345, 137, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 218, 345, 194, 345, - 345, 345, 233, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 55, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 139, 120, 345, 121, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 45, 346, 346, 346, 346, 47, 346, 346, + 346, 93, 346, 346, 346, 346, 346, 55, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 345, 346, 194, + 346, 346, 346, 138, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 219, 346, 195, 346, 346, 346, + 234, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 56, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 119, 345, 345, 345, 345, 345, 345, 345, 345, - 157, 345, 345, 52, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 264, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 195, 345, 345, 345, 345, 345, 198, 345, 204, 345, - 345, 345, 345, 345, 345, 232, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 107, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 132, 345, 345, 345, 345, 345, 345, 345, 62, + 346, 346, 140, 121, 346, 122, 346, 346, 346, 120, + 346, 346, 346, 346, 346, 346, 346, 346, 158, 346, + 346, 53, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 265, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 196, 346, + 346, 346, 346, 346, 199, 346, 205, 346, 346, 346, + 346, 346, 346, 233, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 108, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 133, - 345, 345, 345, 28, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 20, 345, 345, 345, 345, 345, - 345, 29, 38, 345, 167, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 344, 345, 345, 345, 345, 345, 345, 79, 81, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 284, 345, 345, 345, 345, 244, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 122, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 63, 346, 346, + 346, 29, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 20, 346, 346, 346, 346, 346, 346, + 30, 39, 346, 168, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, + 346, 346, 346, 346, 346, 346, 80, 82, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 285, 346, 346, 346, 346, 245, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 123, - 156, 345, 48, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 299, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 161, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 293, 345, 345, - 345, 224, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 309, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 178, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 116, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 157, + 346, 49, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 300, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 162, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 294, 346, 346, 346, + 225, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 310, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 179, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 173, 345, 186, 345, 345, 345, - 345, 345, 345, 344, 345, 145, 345, 345, 345, 345, - 345, 102, 345, 345, 345, 345, 216, 345, 345, 345, - 345, 345, 345, 234, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 256, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 138, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 177, 345, 345, 345, - 345, 345, 345, 82, 345, 83, 345, 345, 345, 345, + 346, 346, 117, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 174, 346, 187, 346, 346, 346, + 346, 346, 346, 345, 346, 146, 346, 346, 346, 346, + 346, 103, 346, 346, 346, 346, 217, 346, 346, 346, + 346, 346, 346, 235, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 257, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 139, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 178, 346, 346, 346, - 345, 63, 302, 345, 345, 345, 345, 345, 90, 187, - 345, 207, 345, 237, 345, 345, 199, 277, 345, 345, - 345, 345, 345, 345, 75, 345, 189, 345, 345, 345, - 345, 345, 9, 345, 345, 345, 345, 345, 106, 345, - 345, 345, 345, 269, 345, 345, 345, 345, 215, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 344, 345, + 346, 346, 346, 83, 346, 84, 346, 346, 346, 346, + 346, 64, 303, 346, 346, 346, 346, 346, 91, 188, + 346, 208, 346, 238, 346, 346, 200, 278, 346, 346, + 346, 346, 346, 346, 76, 346, 190, 346, 346, 346, + 346, 346, 9, 346, 346, 346, 346, 346, 107, 346, + 346, 346, 346, 270, 346, 346, 346, 346, 216, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 176, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 163, 345, 283, 345, 345, 345, - 345, 345, 255, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 228, 345, 345, 345, 345, 345, - 275, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 303, 345, 188, 345, 345, 345, 345, 345, 345, - 345, 345, 74, 76, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 105, 345, 345, 345, 345, 267, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, + 346, 346, 346, 346, 177, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 164, 346, 284, 346, 346, + 346, 346, 346, 256, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 229, 346, 346, 346, 346, + 346, 276, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 304, 346, 189, 346, 346, 346, 346, 346, + 346, 346, 346, 75, 77, 346, 346, 346, 346, 346, - 345, 345, 345, 279, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 220, 36, 30, 32, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 37, 345, 31, 33, 345, 345, 345, 345, 345, 345, - 345, 345, 101, 345, 345, 345, 345, 345, 345, 345, - 345, 344, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 222, 219, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 73, 345, 345, 345, 140, 345, 123, - 345, 345, 345, 345, 345, 345, 345, 345, 158, 49, + 346, 346, 346, 346, 106, 346, 346, 346, 346, 268, + 346, 346, 346, 346, 280, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 221, 37, 31, + 33, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 38, 346, 32, 34, 346, 346, 346, 346, + 346, 346, 346, 346, 102, 346, 346, 346, 346, 346, + 346, 346, 346, 345, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 223, 220, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 74, 346, 346, 346, 141, - 345, 345, 345, 336, 13, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 297, 345, 300, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 12, - 345, 345, 22, 345, 345, 345, 345, 345, 273, 345, - 345, 345, 345, 281, 345, 345, 345, 77, 345, 230, - 345, 345, 345, 345, 345, 221, 345, 345, 72, 345, - 345, 345, 345, 23, 345, 345, 45, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 172, - 171, 345, 345, 336, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 223, 217, 345, 235, 345, 345, 285, + 346, 124, 346, 346, 346, 346, 346, 346, 346, 346, + 159, 50, 346, 346, 346, 337, 13, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 298, 346, 301, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 12, 346, 346, 22, 346, 346, 346, 346, 346, + 274, 346, 346, 346, 346, 282, 346, 346, 346, 78, + 346, 231, 346, 346, 346, 346, 346, 222, 346, 346, + 73, 346, 346, 346, 346, 346, 23, 346, 346, 46, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 173, 172, 346, 346, 337, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 84, 345, 345, 345, 345, 268, 345, 345, - 345, 345, 203, 345, 345, 345, 345, 345, 229, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 307, 308, 169, 345, 345, 78, 345, 345, 345, 345, - 179, 345, 345, 345, 117, 118, 345, 345, 25, 345, - 345, 164, 345, 166, 345, 208, 345, 345, 345, 345, - 170, 345, 345, 345, 345, 238, 345, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 224, 218, 346, 236, + 346, 346, 286, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 85, 346, 346, 346, 346, + 269, 346, 346, 346, 346, 204, 346, 346, 346, 346, + 346, 230, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 308, 309, 170, 346, 346, 79, 346, + 346, 346, 346, 180, 346, 346, 346, 118, 119, 346, + 346, 346, 25, 346, 346, 165, 346, 167, 346, 209, - 345, 345, 345, 147, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 246, 345, 345, 345, - 345, 345, 345, 345, 316, 345, 26, 345, 278, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 88, 209, 345, 345, 266, 345, 301, - 345, 202, 345, 345, 345, 345, 345, 58, 345, 345, - 345, 345, 345, 345, 4, 345, 345, 345, 345, 130, - 146, 345, 345, 345, 183, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 241, 39, 40, 345, 345, 345, 345, 345, + 346, 346, 346, 346, 171, 346, 346, 346, 346, 239, + 346, 346, 346, 346, 346, 346, 346, 148, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 247, 346, 346, 346, 346, 346, 346, 346, 317, 346, + 27, 346, 279, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 89, 210, 346, + 346, 267, 346, 302, 346, 203, 346, 346, 346, 346, + 346, 59, 346, 346, 346, 346, 346, 346, 4, 346, + 346, 346, 346, 131, 147, 346, 346, 346, 184, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 286, 345, 345, 345, 345, 345, 345, 345, - 254, 345, 345, 345, 345, 345, 345, 345, 345, 212, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 87, 345, 59, 272, 345, 242, 345, 345, - 345, 345, 345, 11, 345, 345, 345, 345, 345, 345, - 345, 345, 129, 345, 345, 345, 345, 210, 93, 345, - 42, 345, 345, 345, 345, 345, 345, 345, 345, 175, - 345, 345, 345, 345, 345, 345, 345, 149, 345, 345, - 345, 345, 245, 345, 345, 345, 345, 345, 253, 345, - 345, 345, 345, 143, 345, 345, 345, 124, 125, 345, + 346, 346, 346, 346, 346, 346, 346, 242, 40, 41, + 346, 346, 346, 346, 346, 346, 346, 287, 346, 346, + 346, 346, 346, 346, 346, 255, 346, 346, 346, 346, + 346, 346, 346, 346, 213, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 88, 346, 60, + 273, 346, 243, 346, 346, 346, 346, 346, 11, 346, + 346, 346, 346, 346, 346, 346, 346, 130, 346, 346, + 346, 346, 211, 94, 346, 346, 43, 346, 346, 346, + 346, 346, 346, 346, 346, 176, 346, 346, 346, 346, + 346, 346, 346, 150, 346, 346, 346, 346, 246, 346, - 345, 345, 95, 99, 94, 345, 345, 345, 345, 85, - 345, 345, 345, 345, 345, 345, 10, 345, 345, 345, - 345, 345, 270, 310, 345, 345, 345, 345, 315, 41, - 345, 345, 345, 345, 345, 174, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 100, 98, 345, 53, 345, 345, 86, 298, 345, - 345, 345, 345, 24, 345, 345, 345, 345, 345, 196, - 345, 345, 345, 345, 345, 211, 345, 345, 345, 345, - 345, 345, 345, 192, 345, 345, 165, 80, 345, 345, + 346, 346, 346, 346, 254, 346, 346, 346, 346, 144, + 346, 346, 346, 125, 126, 346, 346, 346, 96, 100, + 95, 346, 346, 346, 346, 86, 346, 346, 346, 346, + 346, 346, 10, 346, 346, 346, 346, 346, 271, 311, + 346, 346, 346, 346, 346, 316, 42, 346, 346, 346, + 346, 346, 175, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 101, 99, + 346, 54, 346, 346, 87, 299, 346, 346, 346, 346, + 24, 346, 346, 346, 346, 346, 197, 346, 346, 346, - 345, 345, 345, 287, 345, 345, 345, 345, 345, 345, - 345, 250, 345, 345, 249, 144, 345, 345, 97, 50, - 345, 150, 151, 154, 155, 152, 153, 89, 296, 345, - 345, 271, 345, 345, 345, 345, 168, 345, 345, 345, - 345, 191, 345, 240, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 181, 180, 43, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 294, - 345, 345, 345, 345, 104, 345, 239, 345, 263, 291, + 346, 346, 212, 346, 346, 346, 346, 346, 346, 346, + 346, 193, 346, 346, 166, 81, 346, 346, 346, 346, + 346, 288, 346, 346, 346, 346, 346, 346, 346, 251, + 346, 346, 250, 145, 346, 346, 98, 51, 346, 151, + 152, 155, 156, 153, 154, 90, 297, 346, 346, 272, + 346, 346, 346, 26, 346, 169, 346, 346, 346, 346, + 192, 346, 241, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 182, 181, 44, 346, 346, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 317, 345, 51, 5, 345, 345, 231, 345, 345, - 292, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 251, 27, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 252, 345, 345, 345, 148, 345, - 345, 345, 345, 345, 345, 345, 345, 182, 345, 190, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 288, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 314, 345, 345, - 259, 345, 345, 345, 345, 345, 289, 345, 345, 345, + 346, 346, 346, 346, 346, 346, 346, 346, 295, 346, + 346, 346, 346, 105, 346, 240, 346, 264, 292, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 318, 346, 52, 5, 346, 346, 232, 346, 346, 293, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 252, + 28, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 253, 346, 346, 346, 149, 346, 346, + 346, 346, 346, 346, 346, 346, 183, 346, 191, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 289, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 345, 345, 290, 345, 345, 345, 257, 345, 260, - 261, 345, 345, 345, 345, 345, 258, 262, 0 + 346, 346, 346, 346, 346, 346, 315, 346, 346, 260, + 346, 346, 346, 346, 346, 290, 346, 346, 346, 346, + 346, 346, 291, 346, 346, 346, 258, 346, 261, 262, + 346, 346, 346, 346, 346, 259, 263, 0 } ; static const YY_CHAR yy_ec[256] = @@ -783,17 +785,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3438] = +static const flex_int16_t yy_base[3457] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 2906, 2853, 81, 6684, - 6684, 6684, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 2864, 2494, 81, 6714, + 6714, 6714, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 2798, 6684, 6684, 6684, - 107, 2623, 6684, 6684, 6684, 154, 2576, 2409, 6684, 6684, - 6684, 245, 2211, 6684, 6684, 6684, 163, 2110, 6684, 249, - 6684, 253, 148, 2024, 1966, 6684, 6684, 6684, 257, 1424, - 6684, 6684, 6684, 233, 1372, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 2453, 6714, 6714, 6714, + 107, 2397, 6714, 6714, 6714, 154, 2315, 2042, 6714, 6714, + 6714, 245, 1786, 6714, 6714, 6714, 163, 1733, 6714, 249, + 6714, 253, 148, 1670, 1574, 6714, 6714, 6714, 257, 1426, + 6714, 6714, 6714, 233, 1294, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -801,8 +803,8 @@ static const flex_int16_t yy_base[3438] = 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1294, - 419, 1265, 422, 1234, 429, 1013, 968, 433, 775, 437, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1266, + 419, 1115, 422, 1023, 429, 930, 888, 433, 775, 437, 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, @@ -823,731 +825,735 @@ static const flex_int16_t yy_base[3438] = 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, - 818, 819, 823, 807, 825, 827, 834, 829, 6684, 831, + 818, 819, 823, 807, 825, 827, 834, 829, 6714, 831, 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, - 864, 867, 868, 890, 849, 876, 859, 880, 878, 6684, - 882, 884, 914, 887, 894, 905, 912, 900, 888, 908, - 910, 896, 937, 920, 922, 924, 940, 927, 935, 936, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6714, + 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, + 904, 912, 933, 906, 915, 929, 945, 942, 920, 930, - 939, 943, 945, 947, 951, 949, 953, 957, 964, 959, - 961, 962, 975, 963, 966, 970, 974, 976, 987, 981, - 991, 979, 992, 993, 996, 997, 999, 994, 1004, 1006, - 1019, 1020, 998, 1023, 1030, 1005, 1027, 1031, 1034, 1036, - 1029, 1038, 1040, 1043, 1045, 1044, 1046, 1054, 1051, 1052, - 1056, 1058, 1059, 1060, 1062, 1065, 1066, 1068, 1070, 1071, - 1075, 1078, 1081, 1083, 1072, 1086, 861, 6684, 1091, 6684, - 1089, 1094, 1095, 1096, 1098, 1099, 1097, 6684, 1100, 1105, - 1101, 1108, 1112, 1107, 1130, 1126, 1111, 1127, 1129, 1114, - 1133, 1140, 1136, 1139, 1143, 1141, 1144, 1145, 1147, 1146, + 944, 946, 948, 958, 953, 955, 956, 957, 966, 861, + 961, 962, 972, 964, 973, 974, 978, 979, 980, 987, + 993, 985, 976, 988, 994, 996, 999, 998, 1011, 1008, + 1006, 1004, 1001, 1017, 1027, 1019, 1030, 1031, 1034, 1033, + 1022, 1043, 1032, 1047, 1048, 1039, 1049, 1057, 1054, 1041, + 1055, 1059, 1060, 1061, 1063, 1066, 1067, 1068, 1069, 1073, + 1077, 1071, 1087, 1074, 1082, 1089, 1084, 6714, 1091, 6714, + 1093, 1094, 1095, 1096, 1100, 1098, 1097, 6714, 1101, 1107, + 1108, 1099, 1116, 1111, 1129, 1122, 1112, 1124, 1130, 1131, + 1134, 1142, 1137, 1138, 1146, 1139, 1143, 1144, 1147, 1150, - 1152, 1151, 1153, 1154, 1159, 1160, 1179, 6684, 1162, 1169, - 1171, 1164, 1172, 1165, 1186, 1191, 1174, 1192, 1188, 1194, - 1208, 1201, 1206, 1209, 1210, 1211, 1214, 1217, 1218, 1220, - 1224, 1223, 1221, 1225, 1227, 1228, 1226, 1229, 1243, 6684, - 1230, 1246, 1248, 1257, 1241, 1254, 1255, 1256, 1258, 1259, - 1260, 1163, 1113, 517, 1263, 1262, 1272, 1267, 1281, 1268, - 1282, 1276, 1278, 1283, 1284, 1286, 1291, 1298, 1296, 1300, - 1304, 1312, 1311, 1314, 1321, 1323, 1308, 1289, 1316, 1320, - 1318, 1324, 1327, 1326, 1328, 1333, 1334, 1341, 1336, 1339, - 1342, 1344, 1345, 1348, 1343, 1349, 1350, 1353, 1361, 1360, + 1151, 1152, 1155, 1158, 1159, 1162, 1179, 6714, 1161, 1163, + 1171, 1165, 1170, 1172, 1176, 1190, 1191, 1173, 1197, 1201, + 1203, 1210, 1206, 1207, 1208, 1209, 1213, 1182, 1214, 1218, + 1216, 1222, 1225, 1224, 1226, 1230, 1227, 1228, 1229, 1245, + 6714, 1237, 1238, 1249, 1256, 1252, 1254, 1241, 1257, 1255, + 1258, 1259, 1261, 1265, 517, 1272, 1278, 1268, 1273, 1281, + 1279, 1283, 1282, 1284, 1287, 1290, 1288, 1289, 1301, 1298, + 1303, 1309, 1312, 1314, 1316, 1323, 1325, 1310, 1318, 1326, + 1322, 1320, 1328, 1332, 1333, 1321, 1334, 1337, 1346, 1343, + 1342, 1345, 1348, 1351, 1349, 1354, 1356, 1355, 1357, 1365, - 1356, 1368, 1359, 1374, 1367, 1362, 1381, 1382, 1369, 1384, - 6684, 1394, 1389, 1390, 1391, 1392, 1400, 1396, 1402, 1404, - 1405, 1406, 1408, 1407, 1410, 1411, 1414, 1415, 1416, 1421, - 1423, 1431, 1428, 1426, 1440, 1439, 1441, 1443, 1444, 1445, - 1447, 1454, 1451, 1455, 1457, 1452, 1459, 1468, 1463, 1465, - 1469, 1479, 1453, 1471, 1470, 1481, 1482, 1484, 1487, 1492, - 1485, 1493, 1500, 1495, 1502, 1504, 1503, 1507, 1510, 1511, - 1512, 1513, 1514, 1521, 1516, 1517, 1518, 1523, 1519, 1524, - 1535, 1525, 1542, 1531, 1539, 1541, 1544, 1548, 1546, 1552, - 1553, 1554, 1555, 1549, 1556, 1557, 1558, 1562, 1563, 1564, + 1358, 1366, 1370, 1367, 1368, 1372, 1376, 1374, 1383, 1384, + 1386, 6714, 1393, 1391, 1394, 1395, 1402, 1403, 1404, 1389, + 1396, 1408, 1410, 1411, 1412, 1418, 1413, 1419, 1420, 1424, + 1425, 1427, 1435, 1430, 1428, 1445, 1444, 1446, 1437, 1448, + 1449, 1433, 1456, 1453, 1463, 1461, 1459, 1460, 1472, 1467, + 1468, 1469, 1476, 1473, 1477, 1478, 1475, 1490, 1487, 1479, + 1499, 1496, 1498, 1506, 1501, 1485, 1507, 1504, 1512, 1511, + 1515, 1516, 1517, 1518, 1525, 1520, 1521, 1522, 1526, 1527, + 1528, 1531, 1535, 1546, 1532, 1539, 1542, 1544, 1548, 1549, + 1551, 1556, 1557, 1558, 1559, 1560, 1561, 1567, 1564, 1571, - 1575, 1576, 1579, 1578, 1580, 1582, 1581, 1587, 1589, 1593, - 1597, 1585, 1600, 1601, 1591, 1604, 1606, 1614, 1611, 1609, - 1615, 1617, 1620, 1621, 1623, 1622, 1625, 1626, 1633, 1634, - 1638, 6684, 1630, 1646, 1628, 1641, 1642, 1644, 1650, 1657, - 1652, 1655, 1653, 1656, 1658, 1682, 6684, 1659, 6684, 6684, - 1663, 6684, 6684, 1661, 1666, 6684, 1667, 1676, 1677, 1675, - 1664, 1688, 1686, 1690, 1692, 1683, 1705, 1709, 1695, 1696, - 1707, 1714, 1698, 1715, 1724, 1712, 1723, 1720, 1730, 1740, - 1736, 1741, 1732, 1744, 1750, 1748, 1752, 1754, 1757, 1758, - 1761, 1746, 1762, 1763, 1767, 1764, 1768, 1770, 1774, 1775, + 1570, 1572, 1582, 1580, 1583, 1585, 1586, 1587, 1589, 1590, + 1592, 1597, 1598, 1604, 1606, 1607, 1609, 1608, 1612, 1620, + 1610, 1618, 1625, 1619, 1626, 1627, 1630, 1611, 1637, 1638, + 1641, 1643, 1645, 6714, 1631, 1634, 1646, 1649, 1651, 1652, + 1655, 1662, 1657, 1660, 1658, 1659, 1661, 1685, 6714, 1664, + 6714, 6714, 1669, 6714, 6714, 1671, 1668, 6714, 1672, 1682, + 1683, 1688, 1695, 1700, 1698, 1675, 1689, 1702, 1712, 1723, + 1708, 1710, 1711, 1714, 1715, 1716, 1721, 1719, 1717, 1728, + 1734, 1746, 1743, 1747, 1744, 1749, 1751, 1755, 1758, 1757, + 1764, 1765, 1756, 1766, 1769, 1770, 1772, 1771, 1774, 1777, - 1771, 1778, 1777, 1787, 1779, 1792, 1801, 6684, 1793, 1802, - 1794, 1803, 1804, 1811, 1807, 1806, 1808, 1815, 1818, 1819, - 1820, 1821, 1822, 1823, 1824, 1825, 1831, 1828, 1834, 1833, - 1845, 1835, 6684, 1843, 1846, 1836, 1848, 1847, 1858, 1857, - 1849, 1850, 1859, 1851, 1871, 1866, 1869, 1872, 1873, 1874, - 1876, 1877, 6684, 1780, 1879, 1881, 1885, 1883, 1886, 1887, - 1889, 1892, 1896, 1893, 1895, 1897, 1900, 1909, 1901, 1908, - 1913, 1914, 1917, 1921, 1922, 1925, 1918, 1926, 1929, 1930, - 1931, 1933, 1934, 1936, 1940, 1947, 1948, 1943, 1951, 1944, - 1949, 1965, 1967, 1962, 1952, 1963, 1968, 1964, 1976, 1978, + 1780, 1781, 1778, 1776, 1783, 1793, 1784, 1798, 1801, 6714, + 1799, 1808, 1803, 1812, 1809, 1813, 1815, 1810, 1811, 1821, + 1824, 1817, 1826, 1827, 1828, 1829, 1830, 1831, 1834, 1836, + 1840, 1838, 1849, 1839, 6714, 1842, 1852, 1841, 1854, 1853, + 1857, 1863, 1855, 1856, 1864, 1866, 1876, 1871, 1867, 1874, + 1877, 1878, 1880, 1884, 6714, 1883, 1889, 1890, 1891, 1892, + 1894, 1897, 1899, 1900, 1901, 1903, 1904, 1905, 1906, 1915, + 1907, 1912, 1918, 1919, 1922, 1927, 1929, 1931, 1939, 1930, + 1932, 1941, 1934, 1940, 1942, 1944, 1945, 1947, 1957, 1959, + 1946, 1961, 1956, 1958, 1969, 1971, 1968, 1973, 1974, 1975, - 1979, 1970, 1974, 1986, 1981, 1990, 1984, 1991, 1992, 1999, - 1994, 2000, 2005, 1995, 2003, 2007, 1997, 6684, 2011, 2013, - 6684, 2015, 2014, 2018, 2040, 2019, 2021, 2022, 2030, 2032, - 2038, 2026, 2033, 2031, 2044, 2054, 2046, 2050, 2059, 2052, - 2065, 2060, 2066, 2062, 2068, 2069, 2073, 2078, 2074, 2087, - 2091, 2093, 2095, 2094, 2077, 2086, 2096, 2115, 2097, 2098, - 2104, 2100, 2101, 2106, 2117, 2108, 2107, 2113, 2120, 2130, - 2128, 2119, 2127, 2137, 2138, 2140, 2142, 2143, 6684, 2150, - 2148, 2147, 2149, 2152, 2161, 2157, 2158, 6684, 2159, 2160, - 2164, 2173, 2170, 2171, 2176, 2172, 2174, 2175, 2182, 2178, + 1976, 1981, 1983, 1984, 1985, 1988, 1995, 1979, 1991, 1993, + 2000, 1996, 2008, 1998, 2006, 2015, 2004, 2009, 2017, 2018, + 6714, 2019, 2020, 6714, 2023, 2021, 2024, 2046, 2027, 2031, + 2025, 2033, 2038, 2044, 2039, 2042, 2047, 2050, 2059, 2060, + 2061, 2066, 2065, 2068, 2072, 2071, 2074, 2077, 2078, 2081, + 2079, 2086, 2093, 2095, 2097, 2099, 2106, 2101, 2102, 2104, + 2124, 2103, 2105, 2112, 2107, 2108, 2111, 2120, 2113, 2114, + 2117, 2118, 2135, 2137, 2139, 2131, 2140, 2141, 2146, 2148, + 2147, 6714, 2160, 2155, 2153, 2157, 2161, 2169, 2165, 2164, + 6714, 2166, 2168, 2171, 2179, 2176, 2178, 2181, 2180, 2182, - 2184, 2183, 2185, 2197, 6684, 2196, 6684, 2186, 2198, 2199, - 2201, 2203, 2205, 2206, 2208, 2209, 6684, 6684, 2210, 2207, - 2224, 2228, 2226, 2219, 2227, 6684, 2229, 2237, 6684, 2238, - 2230, 2232, 2241, 2243, 2244, 2247, 2248, 2255, 2250, 2257, - 2252, 2253, 2254, 6684, 2266, 2256, 2271, 2273, 2264, 2265, - 2279, 2281, 2275, 6684, 2282, 2283, 2285, 2295, 2293, 2294, - 2272, 2297, 2301, 2296, 2298, 2304, 2305, 2306, 2313, 2315, - 2311, 2318, 2320, 2327, 6684, 2326, 2310, 2312, 2335, 2333, - 2337, 2330, 2334, 2322, 2341, 2342, 2344, 1726, 2346, 2348, - 2349, 2350, 2358, 2359, 2355, 2357, 2364, 2354, 2365, 2356, + 2184, 2189, 2190, 2193, 2188, 2191, 2198, 6714, 2195, 6714, + 2203, 2205, 2207, 2209, 2206, 2213, 2214, 2210, 2216, 6714, + 6714, 2218, 2224, 2226, 2236, 2232, 2219, 2222, 6714, 2237, + 2244, 6714, 2245, 2239, 2240, 2247, 2248, 2250, 2252, 2251, + 2261, 2256, 2263, 2258, 2269, 2270, 6714, 2259, 2260, 2272, + 2275, 2271, 2279, 2278, 2285, 2282, 6714, 2286, 2289, 2291, + 2299, 2296, 2298, 2300, 2301, 2302, 2306, 2308, 2309, 2310, + 2312, 2317, 2320, 2316, 2323, 2332, 2330, 2337, 6714, 2333, + 2322, 2319, 2342, 2341, 2344, 2345, 2347, 2334, 2348, 2350, + 2355, 2349, 2357, 2351, 2359, 2361, 2370, 2372, 2363, 2368, - 2371, 2372, 2374, 2375, 2376, 6684, 2377, 2381, 2382, 2384, - 2378, 171, 2385, 2388, 2392, 2386, 2393, 2406, 2395, 2413, - 2414, 2400, 2412, 2409, 2418, 2410, 2419, 2420, 2421, 2422, - 2427, 2428, 2426, 6684, 2430, 2432, 2431, 2435, 2438, 2437, - 2442, 6684, 2448, 2439, 2454, 2463, 2453, 2451, 2464, 2455, - 2466, 2468, 2470, 2469, 2471, 2473, 2472, 2476, 2479, 6684, - 2481, 2485, 2489, 2482, 2491, 2493, 2492, 2495, 2499, 2500, - 2503, 2505, 2504, 2506, 2507, 2508, 2509, 2516, 2513, 2512, - 2517, 2521, 2523, 2524, 2533, 2525, 2531, 2534, 2535, 6684, - 2542, 2539, 2546, 2540, 2541, 2547, 2552, 2550, 2559, 2551, + 2375, 2365, 2376, 2377, 2383, 2381, 2382, 2385, 2386, 6714, + 2387, 2393, 2395, 2396, 2388, 171, 2398, 2394, 2402, 2405, + 2407, 2418, 2403, 2419, 2421, 2420, 2422, 2424, 2425, 2428, + 2429, 2432, 2431, 2433, 2434, 2435, 2438, 6714, 2440, 2444, + 2445, 2447, 2448, 2449, 2451, 6714, 2455, 2460, 2466, 2473, + 2468, 2464, 2474, 2476, 2479, 2480, 2481, 2482, 2484, 2483, + 2485, 2487, 2490, 6714, 2492, 2500, 2502, 2493, 2503, 2506, + 2511, 2504, 2512, 2514, 2516, 2515, 2517, 2522, 2518, 2521, + 2523, 2525, 2529, 2526, 2532, 2536, 2535, 2538, 2539, 2540, + 2543, 2547, 2549, 6714, 2554, 2555, 2553, 2556, 2558, 2560, - 2564, 2566, 2567, 2580, 2569, 2565, 2577, 2572, 2586, 2575, - 2596, 2587, 2595, 2597, 2583, 2601, 2605, 2594, 2606, 2613, - 2609, 2611, 2612, 2615, 2616, 2625, 2626, 2622, 2628, 2621, - 2633, 2636, 2642, 2647, 2640, 6684, 2648, 2646, 2649, 2653, - 2660, 2655, 2656, 2658, 2657, 2665, 2666, 2668, 2669, 2676, - 2672, 2680, 2675, 2677, 2679, 2681, 2684, 2686, 2692, 2694, - 2696, 2697, 2701, 2703, 6684, 2706, 2702, 2708, 2710, 2714, - 2698, 2716, 2720, 2723, 2711, 2722, 2725, 2726, 2730, 2729, - 2737, 2734, 2735, 2736, 2740, 6684, 2742, 2741, 2747, 2748, - 2750, 2751, 2760, 2754, 2761, 2763, 2767, 2753, 2768, 2769, + 2561, 2563, 2580, 2565, 2571, 2573, 2581, 2587, 2577, 2589, + 2597, 2593, 2599, 2602, 2607, 2603, 2609, 2612, 2605, 2615, + 2617, 2618, 2619, 2627, 2623, 2624, 2625, 2628, 2629, 2639, + 2640, 2631, 2641, 2643, 2646, 2635, 2653, 2658, 2572, 6714, + 2660, 2650, 2648, 2662, 2673, 2668, 2669, 2670, 2674, 2676, + 2678, 2679, 2680, 2687, 2682, 2684, 2686, 2690, 2689, 2693, + 2699, 2696, 2701, 2704, 2708, 2705, 2711, 2713, 6714, 2716, + 2712, 2718, 2721, 2723, 2724, 2728, 2731, 2729, 2725, 2733, + 2736, 2738, 2739, 2740, 2741, 2748, 2745, 2751, 2747, 2752, + 6714, 2759, 2753, 2764, 2757, 2767, 2755, 2773, 2774, 2775, - 2770, 6684, 2779, 2781, 2777, 2784, 2780, 2785, 2786, 2788, - 2790, 6684, 2791, 2792, 2793, 2794, 2795, 2805, 2806, 2801, - 6684, 2817, 2812, 2796, 2803, 2813, 2815, 2819, 2820, 2822, - 2824, 2827, 2828, 2831, 2834, 2835, 6684, 2836, 2844, 2841, - 2839, 2846, 2847, 2850, 2851, 2862, 2863, 2856, 2860, 6684, - 2877, 2864, 2873, 2881, 2876, 2852, 2879, 2882, 2883, 2885, - 2886, 2889, 2890, 6684, 2891, 2893, 2896, 2898, 2900, 2901, - 2902, 2913, 2908, 2909, 2912, 2915, 2916, 2917, 2918, 2922, - 2927, 2924, 2925, 2937, 2933, 2935, 2939, 2940, 2949, 2951, - 2946, 2953, 2950, 2947, 2954, 2957, 2961, 2964, 2971, 2966, + 2765, 2776, 2779, 2782, 2783, 2785, 6714, 2792, 2793, 2784, + 2800, 2795, 2791, 2796, 2802, 2799, 6714, 2803, 2805, 2808, + 2806, 2809, 2817, 2818, 2814, 6714, 2822, 2813, 2824, 2825, + 2828, 2829, 2830, 2834, 2831, 2836, 2837, 2841, 2839, 2842, + 2847, 6714, 2849, 2859, 2854, 2857, 2856, 2860, 2862, 2863, + 2871, 2873, 2867, 2870, 6714, 2886, 2883, 2885, 2894, 2889, + 2875, 2891, 2890, 2892, 2898, 2899, 2900, 2902, 6714, 2903, + 2906, 2907, 2910, 2914, 2912, 2904, 2921, 2920, 2926, 2913, + 2928, 2929, 2931, 2933, 2934, 2935, 2936, 2937, 2947, 2942, + 2949, 2939, 2951, 2961, 2962, 2953, 2964, 2960, 2965, 2968, - 2968, 6684, 2973, 2970, 2976, 2977, 2978, 2979, 2981, 2980, - 2982, 2984, 2986, 2992, 2988, 2989, 3006, 3013, 2991, 2998, - 3001, 3003, 3009, 3010, 3014, 3016, 3017, 3025, 3021, 3023, - 3024, 3034, 3027, 3031, 3038, 3029, 3030, 3039, 3040, 3041, - 3042, 3045, 3051, 3044, 3053, 3054, 3056, 3062, 3065, 3066, - 3070, 3067, 3069, 3075, 3077, 6684, 3076, 3081, 3082, 3084, - 3085, 3090, 3087, 3099, 3091, 3095, 3098, 3105, 3107, 3100, - 3110, 3112, 3102, 3119, 3115, 6684, 3116, 6684, 3117, 3118, - 3124, 3132, 3127, 6684, 3130, 6684, 3133, 3140, 3135, 3137, - 6684, 3141, 3142, 3143, 3145, 3148, 3131, 3150, 3154, 3155, + 2969, 2976, 2977, 2978, 2979, 2982, 6714, 2985, 2986, 2987, + 2973, 2988, 2992, 2993, 2994, 2997, 2975, 2999, 3004, 3002, + 3003, 3011, 3018, 3013, 3014, 3019, 3020, 3021, 3023, 3024, + 3025, 3026, 3035, 3027, 3031, 3034, 3042, 3037, 3040, 3047, + 3048, 3049, 3050, 3052, 3058, 3053, 3055, 3061, 3054, 3059, + 3063, 3064, 3066, 3080, 3081, 3073, 3075, 3083, 3084, 3085, + 6714, 3089, 3090, 3093, 3094, 3096, 3099, 3100, 3109, 3101, + 3102, 3106, 3113, 3118, 3110, 3119, 3120, 3121, 3131, 3124, + 6714, 3126, 6714, 3127, 3128, 3134, 3138, 3136, 6714, 3140, + 6714, 3142, 3147, 3143, 3149, 6714, 3150, 3151, 3154, 3152, - 3156, 3157, 3159, 3161, 3163, 3164, 3166, 3174, 3167, 3169, - 3172, 3176, 3183, 3180, 3185, 3192, 3188, 3190, 3194, 3195, - 3197, 6684, 3200, 3196, 3203, 3204, 3206, 3207, 3211, 3212, - 3213, 3215, 3217, 3219, 3223, 3228, 3225, 3232, 3229, 3233, - 3236, 3246, 3242, 3250, 6684, 3245, 3248, 3251, 3252, 6684, - 3255, 3253, 3256, 3263, 3254, 3261, 3265, 3266, 3271, 3267, - 3274, 3273, 3278, 3282, 3283, 3287, 6684, 3289, 3292, 3275, - 3291, 3302, 3305, 3309, 3307, 3310, 3313, 3321, 3317, 3295, - 3316, 3304, 3318, 3324, 3325, 3326, 3328, 3335, 3330, 3331, - 3340, 3332, 3341, 3342, 3343, 3344, 3346, 3347, 3348, 3345, + 3155, 3157, 3162, 3160, 3163, 3164, 3166, 3167, 3170, 3171, + 3173, 3176, 3178, 3183, 3185, 3186, 3187, 3190, 3194, 3191, + 3196, 3202, 3197, 3200, 3206, 3207, 3208, 6714, 3215, 3209, + 3212, 3218, 3220, 3221, 3223, 3225, 3224, 3227, 3231, 3230, + 3232, 3241, 3237, 3248, 3244, 3245, 3251, 3260, 3255, 3263, + 6714, 3258, 3262, 3259, 3265, 6714, 3268, 3266, 3269, 3276, + 3267, 3274, 3279, 3280, 3284, 3282, 3286, 3287, 3293, 3295, + 3297, 3301, 6714, 3303, 3305, 3288, 3306, 3315, 3322, 3323, + 3319, 3325, 3327, 3335, 3331, 3308, 3330, 3318, 3332, 3338, + 3339, 3340, 3342, 3349, 3344, 3345, 3354, 3346, 3355, 3356, - 3350, 3349, 3352, 6684, 3355, 3356, 3364, 3375, 3365, 3357, - 3372, 3374, 3376, 6684, 3379, 3380, 3381, 3382, 3383, 3387, - 3389, 3390, 3391, 3395, 3393, 3398, 3401, 3396, 6684, 3406, - 6684, 3399, 3415, 3417, 3420, 3411, 3407, 3427, 3429, 3422, - 3431, 3432, 3433, 3434, 3438, 3440, 3442, 3441, 3443, 3444, - 3454, 3446, 3447, 3449, 3458, 3459, 3461, 3469, 3465, 3466, - 6684, 6684, 3464, 3472, 3474, 3471, 3479, 3480, 3481, 3483, - 3486, 3484, 3493, 3494, 3504, 6684, 3497, 3500, 3499, 3501, - 3513, 3505, 3509, 3516, 3517, 3518, 3525, 3520, 6684, 3524, - 3527, 3534, 3529, 3530, 3537, 6684, 3535, 6684, 3536, 3538, + 3357, 3358, 3360, 3361, 3362, 3359, 3229, 3363, 3364, 6714, + 3366, 3369, 3379, 3388, 3370, 3371, 3385, 3386, 3368, 6714, + 3394, 3391, 3396, 3395, 3397, 3399, 3402, 3403, 3404, 3406, + 3408, 3410, 3409, 3412, 6714, 3419, 6714, 3413, 3426, 3425, + 3431, 3420, 3433, 3437, 3436, 3441, 3442, 3443, 3444, 3445, + 3446, 3452, 3449, 3453, 3455, 3457, 3462, 3460, 3463, 3469, + 3470, 3471, 3473, 3480, 3476, 3475, 6714, 6714, 3477, 3478, + 3490, 3484, 3486, 3492, 3493, 3498, 3499, 3501, 3503, 3505, + 3512, 6714, 3513, 3514, 3509, 3515, 3522, 3517, 3526, 3534, + 3532, 3530, 3539, 3536, 6714, 3518, 3540, 3547, 3543, 3546, - 3540, 3545, 3546, 3547, 3549, 3550, 3551, 3553, 3566, 3567, - 3558, 3569, 3563, 3570, 3572, 3576, 3573, 3584, 3577, 3579, - 3580, 6684, 3582, 3585, 3589, 3587, 3596, 3597, 3594, 3590, - 6684, 3600, 3604, 3606, 3608, 3611, 3612, 3614, 3615, 3617, - 3619, 3620, 3624, 3625, 6684, 3621, 3622, 3635, 3632, 3628, - 3639, 3648, 3638, 3650, 6684, 3651, 3643, 3659, 3655, 3657, - 3658, 3661, 3662, 3663, 3665, 3666, 3667, 3668, 3670, 3674, - 3675, 3671, 3678, 3677, 3689, 3688, 3680, 3692, 3702, 3698, - 6684, 3699, 3703, 3704, 3705, 3706, 3707, 3709, 3712, 3714, - 3715, 3717, 3726, 3724, 3728, 3730, 3732, 3737, 3738, 6684, + 3551, 6714, 3550, 6714, 3548, 3552, 3553, 3557, 3559, 3560, + 3563, 3564, 3565, 3566, 3570, 3581, 3582, 3574, 3584, 3578, + 3585, 3586, 3589, 3593, 3596, 3592, 3594, 3595, 6714, 3600, + 3597, 3604, 3602, 3611, 3615, 3609, 3601, 6714, 3612, 3619, + 3623, 3625, 3627, 3628, 3629, 3630, 3632, 3634, 3636, 3633, + 3638, 6714, 3637, 3639, 3652, 3642, 3644, 3651, 3661, 3655, + 3664, 6714, 3665, 3666, 3673, 3669, 3671, 3672, 3676, 3677, + 3678, 3680, 3681, 3682, 3684, 3685, 3690, 3686, 3688, 3695, + 3691, 3703, 3705, 3692, 3713, 3720, 3706, 6714, 3709, 3716, + 3718, 3719, 3721, 3722, 3724, 3730, 3732, 3726, 3741, 3742, - 3739, 3734, 3746, 3742, 3744, 3751, 3743, 3748, 3755, 3756, - 3757, 3759, 3760, 3765, 3768, 3769, 3766, 3758, 3772, 3779, - 3774, 6684, 3790, 3777, 3780, 3785, 3793, 3796, 3803, 3798, - 3799, 3800, 3802, 3805, 3808, 3806, 3810, 3812, 3815, 3816, - 6684, 6684, 3818, 3820, 3824, 6684, 3825, 3822, 3829, 3828, - 3838, 3827, 3835, 3839, 3840, 3830, 3841, 3847, 3851, 6684, - 3852, 3859, 3854, 3855, 3864, 3861, 6684, 3860, 3871, 3869, - 3870, 3872, 3866, 3876, 3877, 3880, 3878, 3882, 3884, 3893, - 3894, 3890, 3891, 3897, 6684, 3892, 3898, 3899, 3903, 3900, - 3907, 6684, 3905, 3909, 3914, 3921, 3916, 3929, 3926, 3923, + 3733, 3737, 3745, 3747, 3755, 3750, 6714, 3762, 3748, 3763, + 3752, 3761, 3760, 3765, 3767, 3769, 3771, 3770, 3773, 3774, + 3776, 3788, 3780, 3783, 3779, 3784, 3795, 3787, 6714, 3802, + 3798, 3790, 3806, 3800, 3809, 3816, 3813, 3814, 3815, 3818, + 3819, 3820, 3823, 3825, 3826, 3829, 3830, 6714, 6714, 3832, + 3833, 3835, 6714, 3837, 3838, 3848, 3839, 3841, 3849, 3851, + 3853, 3852, 3854, 3856, 3862, 3863, 6714, 3864, 3871, 3867, + 3868, 3878, 3874, 6714, 3873, 3883, 3882, 3884, 3885, 3886, + 3890, 3891, 3893, 3895, 3897, 3898, 3907, 3908, 3900, 3904, + 3910, 6714, 3905, 3911, 3912, 3916, 3918, 3921, 6714, 3922, - 3932, 3933, 3935, 3918, 3936, 3938, 3940, 3948, 3944, 3945, - 3943, 3947, 3951, 3953, 6684, 3955, 3961, 3962, 3966, 6684, - 3968, 3975, 3976, 6684, 3979, 3963, 3978, 3980, 3987, 6684, - 3984, 3986, 3985, 3988, 3999, 3994, 4001, 3991, 3998, 4000, - 4002, 6684, 4003, 4004, 4006, 6684, 4009, 4007, 4020, 4022, - 4017, 4030, 4025, 4027, 4028, 4026, 6684, 4033, 6684, 4036, - 4029, 4042, 6684, 4040, 4044, 4045, 4047, 4048, 4049, 4053, - 4059, 4061, 4051, 4055, 4063, 4065, 4066, 4067, 4074, 4069, - 4073, 4075, 4076, 6684, 4077, 4079, 4083, 4080, 4085, 4094, - 4095, 4088, 4091, 4098, 6684, 6684, 4102, 6684, 4105, 4099, + 3924, 3926, 3929, 3931, 3939, 3942, 3932, 3945, 3934, 3947, + 3949, 3951, 3950, 3952, 3959, 3957, 3954, 3958, 3960, 3965, + 3966, 3974, 6714, 3962, 3976, 3977, 3980, 6714, 3982, 3989, + 3990, 6714, 3991, 3986, 3993, 3994, 4001, 6714, 3996, 3999, + 4002, 4000, 4010, 4005, 4013, 4009, 4011, 4015, 4017, 6714, + 4018, 4016, 4019, 6714, 4023, 4021, 4033, 4037, 4034, 4044, + 4039, 4041, 4042, 4040, 6714, 4047, 6714, 4050, 4043, 4056, + 6714, 4051, 4058, 4059, 4061, 4062, 4067, 4068, 4066, 4075, + 4065, 4077, 4076, 4078, 4079, 4082, 4090, 4080, 4091, 4081, + 4088, 6714, 4092, 4089, 4096, 4095, 4108, 4101, 4106, 4103, - 4104, 6684, 4106, 4110, 4118, 4113, 4116, 4123, 4127, 4114, - 6684, 4129, 4131, 6684, 4119, 4133, 4140, 4136, 4135, 4138, - 4144, 4137, 4141, 4147, 4148, 4149, 4151, 4150, 4152, 4155, - 6684, 4153, 4154, 4156, 4166, 4169, 4170, 4172, 4178, 4171, - 6684, 4179, 4180, 4181, 4188, 4185, 6684, 4186, 6684, 4189, - 4194, 4196, 4198, 4197, 4210, 6684, 4209, 4201, 4206, 4202, - 4212, 4218, 4214, 4221, 4213, 4222, 4229, 4225, 4224, 4227, - 4241, 4236, 6684, 4232, 4233, 4246, 4248, 4238, 4234, 4256, - 4252, 4258, 4243, 4255, 4265, 4262, 4266, 4268, 4270, 4272, - 4273, 6684, 4275, 4276, 4259, 4289, 4281, 4285, 4286, 6684, + 4111, 4112, 6714, 6714, 4114, 6714, 4117, 4119, 4121, 6714, + 4123, 4122, 4132, 4127, 4128, 4131, 4140, 4134, 6714, 4146, + 4147, 6714, 4130, 4143, 4156, 4151, 4141, 4152, 4154, 4157, + 4159, 4161, 4162, 4160, 4164, 4165, 4167, 4171, 6714, 4168, + 4169, 4181, 4179, 4183, 4184, 4186, 4194, 4185, 6714, 4195, + 4196, 4197, 4202, 4203, 6714, 4208, 6714, 4206, 4209, 4211, + 4212, 4213, 4222, 6714, 4219, 4220, 4226, 4227, 4228, 4229, + 4230, 4236, 4237, 4238, 4245, 4242, 4243, 4240, 4250, 4246, + 6714, 4248, 4251, 4260, 4261, 4257, 4263, 4270, 4266, 4273, + 4268, 4269, 4279, 4276, 4280, 4289, 4282, 4287, 4284, 6714, - 4290, 4292, 4295, 6684, 4296, 4299, 4301, 4304, 4305, 4306, - 4311, 4307, 4313, 4312, 6684, 4308, 4314, 4315, 4325, 4329, - 4322, 6684, 6684, 4332, 6684, 4333, 4318, 4337, 4336, 4340, - 4344, 4343, 4346, 4348, 4345, 4356, 4357, 4350, 4349, 4367, - 4358, 4372, 4375, 4376, 4374, 4373, 4359, 6684, 6684, 4383, - 4384, 4378, 4389, 4390, 4386, 4393, 4400, 4392, 4395, 4402, - 4403, 4412, 6684, 4405, 4404, 4413, 4407, 6684, 4414, 4415, - 4418, 4416, 4421, 4419, 4422, 4423, 4425, 4428, 4433, 4436, - 4429, 4442, 4434, 4435, 4445, 4446, 4449, 4448, 4451, 4456, - 6684, 4458, 4452, 4459, 4462, 4463, 4464, 4467, 4468, 4470, + 4294, 4293, 4296, 4305, 4297, 4298, 4300, 6714, 4301, 4310, + 4311, 6714, 4308, 4314, 4318, 4320, 4322, 4323, 4326, 4324, + 4325, 4328, 4330, 6714, 4332, 4333, 4331, 4347, 4348, 4329, + 6714, 6714, 4350, 6714, 4354, 4336, 4346, 4337, 4357, 4358, + 4363, 4364, 4366, 4368, 4370, 4371, 4372, 4375, 4383, 4378, + 4390, 4386, 4397, 4392, 4388, 4379, 6714, 6714, 4402, 4403, + 4398, 4406, 4408, 4381, 4410, 4417, 4414, 4412, 4416, 4420, + 4427, 6714, 4422, 4423, 4430, 4424, 6714, 4431, 4432, 4435, + 4433, 4436, 4439, 4438, 4440, 4442, 4445, 4450, 4451, 4446, + 4459, 4452, 4453, 4462, 4463, 4465, 4466, 4468, 4473, 6714, - 6684, 4474, 6684, 4473, 4476, 4475, 4477, 4493, 4494, 4495, - 4484, 4482, 4500, 4501, 4504, 4505, 4509, 4506, 4510, 4511, - 4515, 4517, 4519, 4520, 6684, 4526, 4514, 4522, 4528, 4530, - 4533, 4535, 4537, 4538, 4544, 4545, 4541, 4548, 4550, 4539, - 4552, 4551, 4555, 4557, 6684, 4558, 4565, 4559, 4567, 4562, - 4571, 4570, 4574, 4582, 4572, 4579, 4583, 6684, 4584, 4586, - 4588, 6684, 4589, 4592, 4593, 4596, 4598, 4595, 4601, 4602, - 4603, 6684, 4611, 4604, 4612, 4607, 4613, 4616, 4620, 4622, - 4626, 4625, 4629, 6684, 4636, 4628, 4633, 4637, 4639, 4641, - 4644, 4643, 4645, 6684, 4650, 4651, 4652, 4659, 4657, 4658, + 4469, 4475, 4476, 4480, 4481, 4483, 4485, 4484, 4487, 6714, + 4489, 6714, 4488, 4493, 4491, 4490, 4499, 4509, 4510, 4511, + 4512, 4515, 4516, 4519, 4520, 4530, 4521, 4525, 4531, 4533, + 4535, 4540, 4541, 6714, 4543, 4527, 4537, 4544, 4550, 4552, + 4553, 4555, 4558, 4560, 4562, 4561, 4564, 4568, 4565, 4569, + 4170, 4570, 4571, 6714, 4575, 4574, 4581, 4583, 4585, 4586, + 4588, 4593, 4596, 4587, 4589, 4597, 6714, 4598, 4601, 4608, + 6714, 4602, 4500, 4610, 4611, 4617, 4605, 4614, 4612, 4618, + 6714, 4629, 4621, 4623, 4626, 4631, 4632, 4634, 4635, 4637, + 4642, 4645, 6714, 4653, 4639, 4638, 4652, 4654, 4655, 4656, - 4666, 4663, 4669, 4661, 4662, 4676, 4672, 4680, 4682, 4683, - 4670, 4693, 4694, 4695, 6684, 4677, 6684, 4696, 4700, 4704, - 4702, 4706, 4707, 4685, 4709, 6684, 4710, 4712, 4714, 4717, - 4716, 6684, 4718, 4719, 4721, 4722, 6684, 4720, 4733, 4724, - 4727, 4741, 4742, 6684, 4746, 4747, 4748, 4755, 4757, 4752, - 4759, 4754, 4762, 4760, 4756, 4764, 4765, 4773, 4771, 4769, - 6684, 4775, 4777, 4782, 4784, 4778, 4786, 4776, 4788, 4791, - 4793, 6684, 4794, 4797, 4798, 4800, 4801, 4802, 4803, 4810, - 4807, 4809, 4811, 4812, 4815, 4816, 6684, 4821, 4819, 4823, - 4832, 4834, 4836, 6684, 4839, 6684, 4829, 4824, 4841, 4840, + 4659, 4658, 6714, 4661, 4662, 4670, 4675, 4678, 4671, 4673, + 4680, 4676, 4682, 4683, 4686, 4690, 4689, 4691, 4694, 4695, + 4696, 4707, 4711, 4702, 6714, 4697, 6714, 4709, 4712, 4720, + 4715, 4719, 4721, 4725, 4723, 6714, 4726, 4731, 4733, 4729, + 4727, 6714, 4734, 4735, 4737, 4738, 6714, 4753, 4749, 4739, + 4748, 4741, 4757, 6714, 4762, 4763, 4764, 4771, 4773, 4768, + 4775, 4770, 4778, 4776, 4772, 4780, 4781, 4789, 4787, 4785, + 6714, 4791, 4793, 4798, 4800, 4794, 4802, 4792, 4804, 4807, + 4809, 6714, 4810, 4813, 4814, 4816, 4817, 4818, 4819, 4826, + 4823, 4825, 4827, 4828, 4831, 4832, 6714, 4837, 4835, 4839, - 4845, 6684, 6684, 4847, 4855, 4850, 4853, 4854, 6684, 6684, - 4857, 6684, 4858, 6684, 4859, 4861, 6684, 6684, 4860, 4864, - 4867, 4869, 4870, 4872, 6684, 4879, 6684, 4886, 4881, 4868, - 4883, 4887, 6684, 4885, 4891, 4889, 4895, 4897, 6684, 4893, - 4906, 4898, 4899, 6684, 4909, 4910, 4903, 4911, 6684, 4917, - 4920, 4921, 4912, 4915, 4923, 4925, 4931, 4932, 4935, 4933, - 4934, 4936, 4937, 4940, 4944, 4949, 4951, 4941, 4952, 4955, - 4957, 4961, 4959, 4963, 4964, 4965, 4966, 4968, 4969, 4973, - 4977, 4974, 4978, 4980, 4979, 4981, 4989, 4983, 4992, 4996, - 4993, 4997, 4998, 5000, 5004, 5005, 4999, 5006, 5010, 5014, + 4848, 4850, 4852, 6714, 4855, 6714, 4845, 4840, 4857, 4856, + 4861, 6714, 6714, 4863, 4871, 4866, 4869, 4870, 6714, 6714, + 4873, 6714, 4874, 6714, 4875, 4877, 6714, 6714, 4876, 4880, + 4883, 4885, 4886, 4888, 6714, 4895, 6714, 4902, 4897, 4884, + 4899, 4903, 6714, 4901, 4907, 4905, 4911, 4913, 6714, 4909, + 4922, 4914, 4915, 6714, 4925, 4926, 4919, 4927, 6714, 4933, + 4936, 4937, 4928, 4931, 4939, 4941, 4947, 4948, 4951, 4949, + 4950, 4952, 4953, 4956, 4960, 4965, 4967, 4957, 4968, 4971, + 4973, 4977, 4975, 4979, 4980, 4981, 4982, 4984, 4989, 4983, + 4991, 4994, 4985, 4995, 4997, 4998, 5005, 5006, 5008, 5009, - 5007, 5009, 5011, 6684, 5017, 5020, 5025, 5027, 5029, 5031, - 5032, 5034, 5039, 5040, 6684, 5044, 6684, 5046, 5049, 5050, - 5051, 5053, 6684, 5052, 5055, 5054, 5057, 5056, 5058, 5060, - 5059, 5063, 5064, 5074, 6684, 5084, 5066, 5069, 5085, 5087, - 6684, 5088, 5090, 5092, 5093, 5095, 5098, 5096, 5099, 5100, - 5101, 5104, 5106, 5107, 5108, 5109, 5119, 5122, 5129, 5112, - 5124, 5125, 5128, 5131, 5132, 5133, 5135, 5141, 5138, 5145, - 5149, 6684, 5146, 6684, 5150, 5151, 5154, 5155, 5156, 5157, - 5158, 5160, 6684, 6684, 5163, 5164, 5169, 5171, 5172, 5174, - 5176, 5177, 5180, 6684, 5181, 5185, 5194, 5182, 6684, 5188, + 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5021, 5020, 5026, + 5031, 5035, 5024, 5034, 6714, 5027, 5037, 5040, 5047, 5046, + 5048, 5051, 5055, 5058, 5061, 6714, 5064, 6714, 5066, 5052, + 5068, 5069, 5071, 6714, 5072, 5073, 5074, 5075, 5076, 5077, + 5078, 5081, 5082, 5084, 5089, 6714, 5094, 5098, 5083, 5099, + 5104, 6714, 5106, 5110, 5107, 5111, 5113, 5116, 5114, 5117, + 5118, 5119, 5122, 5124, 5126, 5127, 5130, 5140, 5142, 5143, + 5133, 5144, 5128, 5148, 5149, 5150, 5152, 5153, 5155, 5161, + 5163, 5167, 6714, 5156, 6714, 5164, 5168, 5169, 5171, 5174, + 5177, 5176, 5178, 6714, 6714, 5180, 5183, 5185, 5188, 5189, - 5191, 5197, 5199, 6684, 5200, 5201, 5202, 5205, 5207, 5209, - 5213, 5214, 5215, 5216, 5219, 5221, 6684, 6684, 6684, 6684, - 5224, 5222, 5230, 5227, 5232, 5233, 5234, 5236, 5237, 5238, - 6684, 5247, 6684, 6684, 5249, 5250, 5248, 5251, 5252, 5258, - 5259, 5261, 6684, 5263, 5265, 5266, 5264, 5273, 5275, 5276, - 5267, 5283, 5280, 5284, 5285, 5288, 5296, 5292, 5293, 5295, - 5299, 5301, 5308, 6684, 6684, 5298, 5313, 5302, 5315, 5316, - 5317, 5318, 5325, 5320, 5323, 5326, 5327, 5329, 5330, 5339, - 5340, 5331, 5338, 6684, 5341, 5344, 5343, 6684, 5345, 6684, - 5347, 5353, 5354, 5355, 5356, 5360, 5361, 5364, 6684, 6684, + 5193, 5190, 5194, 5195, 6714, 5198, 5202, 5205, 5208, 6714, + 5210, 5211, 5212, 5215, 6714, 5216, 5217, 5218, 5220, 5223, + 5230, 5233, 5227, 5224, 5234, 5235, 5244, 6714, 6714, 6714, + 6714, 5247, 5237, 5250, 5239, 5241, 5251, 5253, 5256, 5258, + 5261, 5263, 6714, 5267, 6714, 6714, 5264, 5268, 5270, 5271, + 5272, 5274, 5277, 5275, 6714, 5279, 5282, 5285, 5288, 5292, + 5296, 5297, 5289, 5299, 5300, 5301, 5304, 5305, 5315, 5311, + 5312, 5310, 5314, 5318, 5321, 6714, 6714, 5324, 5327, 5328, + 5335, 5333, 5336, 5330, 5345, 5342, 5343, 5340, 5332, 5350, + 5351, 5359, 5360, 5352, 5355, 6714, 5356, 5361, 5362, 6714, - 5359, 5376, 5374, 6684, 6684, 5363, 5366, 5371, 5379, 5381, - 5375, 5383, 5384, 5396, 5385, 6684, 5387, 6684, 5389, 5393, - 5401, 5391, 5411, 5412, 5403, 5413, 5415, 5410, 5417, 6684, - 5419, 5420, 6684, 5429, 5424, 5426, 5425, 5431, 6684, 5434, - 5432, 5437, 5441, 6684, 5443, 5444, 5447, 6684, 5454, 6684, - 5438, 5451, 5445, 5461, 5459, 6684, 5449, 5462, 6684, 5465, - 5467, 5470, 5468, 6684, 5475, 5472, 6684, 5476, 5478, 5479, - 5483, 5484, 5486, 5487, 5488, 5489, 5497, 5493, 5494, 6684, - 6684, 5501, 5502, 135, 5510, 5505, 5511, 5512, 5508, 5519, - 5515, 5516, 5518, 6684, 6684, 5521, 6684, 5522, 5524, 6684, + 5364, 6714, 5368, 5369, 5370, 5371, 5377, 5378, 5379, 5381, + 6714, 6714, 5375, 5389, 5385, 6714, 6714, 5382, 5392, 5394, + 5396, 5397, 5398, 5399, 5400, 5403, 5405, 6714, 5406, 6714, + 5407, 5410, 5419, 5409, 5422, 5426, 5411, 5431, 5433, 5428, + 5430, 6714, 5437, 5438, 6714, 5445, 5440, 5444, 5441, 5442, + 6714, 5449, 5447, 5453, 5459, 6714, 5461, 5462, 5463, 6714, + 5470, 6714, 5454, 5467, 5464, 5479, 5471, 6714, 5475, 5480, + 6714, 5485, 5487, 5488, 5477, 5489, 6714, 5493, 5482, 6714, + 5494, 5497, 5498, 5504, 5501, 5506, 5507, 5508, 5509, 5517, + 5513, 5515, 6714, 6714, 5524, 5522, 135, 5531, 5510, 5521, - 5523, 5533, 5534, 5525, 5539, 5529, 5537, 5538, 5546, 5541, - 5550, 5549, 5551, 5554, 5565, 5572, 5556, 5568, 5573, 5576, - 5578, 5580, 5569, 5582, 5583, 5558, 5586, 5588, 5589, 5590, - 5592, 5593, 6684, 5596, 5598, 5601, 5600, 6684, 5606, 5602, - 5611, 5614, 6684, 5616, 5608, 5620, 5621, 5622, 6684, 5623, - 5625, 5628, 5626, 5627, 5633, 5634, 5643, 5638, 5636, 5648, - 6684, 6684, 6684, 5650, 5640, 6684, 5654, 5647, 5656, 5657, - 6684, 5659, 5660, 5662, 6684, 6684, 5663, 5664, 6684, 5665, - 5672, 6684, 5667, 6684, 5668, 6684, 5671, 5677, 5683, 5678, - 6684, 5686, 5680, 5690, 5694, 6684, 5697, 5700, 5702, 5703, + 5528, 5529, 5538, 5534, 5536, 5543, 6714, 6714, 5539, 6714, + 5537, 5546, 6714, 5547, 5550, 5551, 5556, 5555, 5557, 5558, + 5554, 5562, 5563, 5576, 5566, 5564, 5581, 5571, 5591, 5567, + 5593, 5594, 5596, 5598, 5600, 5588, 5602, 5603, 5582, 5605, + 5606, 5609, 5611, 5612, 5613, 6714, 5616, 5618, 5619, 5621, + 6714, 5627, 5624, 5629, 5630, 6714, 5637, 5634, 5638, 5640, + 5641, 6714, 5642, 5645, 5648, 5646, 5651, 5653, 5569, 5662, + 5654, 5657, 5659, 6714, 6714, 6714, 5668, 5672, 6714, 5675, + 5665, 5658, 5669, 6714, 5677, 5680, 5678, 6714, 6714, 5681, + 5686, 5684, 6714, 5682, 5694, 6714, 5685, 6714, 5692, 6714, - 5705, 5692, 5708, 6684, 5715, 5714, 5716, 5707, 5710, 5717, - 5718, 5722, 5720, 5730, 5723, 5732, 6684, 5733, 5735, 5736, - 5742, 5726, 5734, 5744, 6684, 5746, 6684, 5751, 6684, 5747, - 5752, 5753, 5754, 5755, 5756, 5761, 5762, 5772, 5768, 5758, - 5764, 5779, 5770, 6684, 6684, 5781, 5783, 6684, 5774, 6684, - 5785, 6684, 5786, 5787, 5788, 5791, 5792, 6684, 5799, 5794, - 5796, 5806, 5801, 5804, 6684, 5808, 5811, 5810, 5813, 6684, - 6684, 5815, 5822, 5821, 6684, 5817, 5819, 5828, 5820, 5831, - 5832, 5833, 5834, 5844, 5836, 5837, 5841, 5846, 5847, 5848, - 5853, 5857, 6684, 6684, 6684, 5852, 5859, 5866, 5868, 5869, + 5695, 5696, 5698, 5703, 6714, 5704, 5705, 5707, 5710, 6714, + 5716, 5720, 5723, 5708, 5724, 5726, 5725, 6714, 5733, 5729, + 5731, 5738, 5728, 5735, 5732, 5743, 5739, 5755, 5740, 5742, + 6714, 5750, 5751, 5758, 5759, 5752, 5761, 5762, 6714, 5764, + 6714, 5767, 6714, 5768, 5769, 5770, 5778, 5772, 5773, 5775, + 5780, 5789, 5786, 5779, 5791, 5794, 5796, 6714, 6714, 5799, + 5801, 6714, 5802, 6714, 5804, 6714, 5805, 5806, 5807, 5808, + 5809, 6714, 5811, 5813, 5816, 5826, 5818, 5819, 6714, 5827, + 5829, 5830, 5832, 6714, 6714, 5834, 5842, 5835, 6714, 5837, + 5845, 5847, 5848, 5850, 5852, 5853, 5856, 5855, 5866, 5839, - 5871, 5863, 6684, 5870, 5874, 5877, 5876, 5884, 5880, 5886, - 6684, 5887, 5883, 5888, 5889, 5891, 5892, 5893, 5894, 6684, - 5905, 5907, 5910, 5900, 5912, 5919, 5921, 5923, 5916, 5908, - 5930, 5926, 6684, 5928, 6684, 6684, 5925, 6684, 5932, 5933, - 5937, 5935, 5938, 6684, 5941, 5936, 5942, 5945, 5943, 5949, - 5947, 5951, 6684, 5966, 5948, 5952, 5964, 6684, 6684, 5973, - 6684, 5975, 5965, 5953, 5982, 5977, 5978, 5980, 5983, 6684, - 5981, 5987, 5984, 5990, 5991, 5993, 5994, 6684, 5995, 5997, - 5998, 5999, 6684, 6002, 6001, 6006, 6007, 6008, 6684, 6009, - 6011, 6021, 6022, 6684, 6012, 6026, 6025, 6684, 6684, 6034, + 5857, 5861, 5868, 5862, 5873, 5879, 5883, 6714, 6714, 6714, + 5874, 5872, 5891, 5888, 5890, 5895, 5878, 6714, 5894, 5898, + 5900, 5901, 5908, 5904, 5907, 6714, 5903, 5909, 5910, 5911, + 5913, 5914, 5916, 5917, 6714, 5919, 5929, 5925, 5923, 5931, + 5939, 5941, 5943, 5934, 5944, 5951, 5948, 6714, 5950, 6714, + 6714, 5946, 6714, 5952, 5954, 5956, 5955, 5957, 6714, 5960, + 5961, 5962, 5964, 5963, 5971, 5967, 5969, 6714, 5979, 5972, + 5982, 5984, 6714, 6714, 5985, 5991, 6714, 5994, 5995, 5988, + 6003, 5986, 5996, 6008, 6005, 6714, 6009, 6011, 5999, 6012, + 6015, 6014, 6017, 6714, 6021, 6018, 6022, 6024, 6714, 6025, - 6036, 6037, 6684, 6684, 6684, 6040, 6042, 6030, 6044, 6684, - 6046, 6053, 6057, 6059, 6063, 6048, 6684, 6062, 6056, 6069, - 6064, 6066, 6684, 6684, 6070, 6071, 6072, 6074, 6684, 6684, - 6075, 6076, 6081, 6078, 6079, 6684, 6084, 6088, 6096, 6089, - 6103, 6106, 6108, 6086, 6092, 6109, 6116, 6117, 6099, 6112, - 6113, 6114, 6120, 6122, 6129, 6132, 6130, 6138, 6140, 6131, - 6142, 6684, 6684, 6144, 6684, 6149, 6145, 6684, 6684, 6151, - 6153, 6156, 6158, 6684, 6160, 6162, 6164, 6166, 6167, 6684, - 6168, 6170, 6171, 6123, 6172, 6684, 6175, 6174, 6176, 6182, - 6178, 6183, 6186, 6684, 6181, 6188, 6684, 6684, 6179, 6198, + 6030, 6031, 6033, 6034, 6714, 6035, 6027, 6051, 6036, 6714, + 6038, 6050, 6052, 6714, 6714, 6056, 6060, 6057, 6714, 6714, + 6714, 6063, 6064, 6066, 6068, 6714, 6071, 6075, 6079, 6081, + 6086, 6074, 6714, 6082, 6088, 6090, 6091, 6092, 6714, 6714, + 6093, 6094, 6095, 6099, 6096, 6714, 6714, 6101, 6103, 6104, + 6102, 6105, 6714, 6107, 6112, 6119, 6115, 6121, 6128, 6130, + 6123, 6131, 6132, 6140, 6143, 6133, 6135, 6142, 6146, 6147, + 6145, 6149, 6159, 6154, 6156, 6162, 6157, 6165, 6714, 6714, + 6167, 6714, 6169, 6171, 6714, 6714, 6174, 6176, 6178, 6182, + 6714, 6184, 6186, 6188, 6190, 6179, 6714, 6191, 6193, 6194, - 6189, 6199, 6202, 6684, 6203, 6210, 6205, 6207, 6208, 6211, - 6209, 6684, 6216, 6214, 6684, 6684, 6213, 6218, 6684, 6684, - 6221, 6684, 6684, 6684, 6684, 6684, 6684, 6684, 6684, 6226, - 6232, 6684, 6224, 6239, 6241, 6243, 6684, 6228, 6236, 6230, - 6244, 6684, 6246, 6684, 6248, 6250, 6249, 6253, 6252, 6256, - 6259, 6258, 6262, 6263, 6265, 6266, 6269, 6270, 6268, 6274, - 6283, 6276, 6284, 6286, 6684, 6684, 6684, 6285, 6287, 6293, - 6289, 6297, 6300, 6303, 6306, 6294, 6308, 6309, 6310, 6311, - 6314, 6317, 6324, 6319, 6322, 6320, 6327, 6321, 6330, 6684, - 6336, 6323, 6331, 6343, 6684, 6337, 6684, 6340, 6684, 6684, + 6195, 6196, 6714, 6198, 6199, 6202, 6204, 6208, 6210, 6211, + 6214, 6714, 6209, 6226, 6714, 6714, 6215, 6217, 6206, 6227, + 6223, 6714, 6231, 6235, 6230, 6237, 6236, 6238, 6243, 6714, + 6239, 6240, 6714, 6714, 6246, 6247, 6714, 6714, 6248, 6714, + 6714, 6714, 6714, 6714, 6714, 6714, 6714, 6252, 6251, 6714, + 6253, 6261, 6264, 6714, 6268, 6714, 6258, 6269, 6271, 6265, + 6714, 6270, 6714, 6272, 6276, 6277, 6286, 6279, 6289, 6280, + 6273, 6283, 6291, 6296, 6297, 6299, 6298, 6300, 6302, 6304, + 6314, 6306, 6311, 6714, 6714, 6714, 6303, 6315, 6319, 6320, + 6325, 6327, 6331, 6333, 6322, 6334, 6336, 6337, 6338, 6340, - 6345, 6346, 6348, 6349, 6357, 6359, 6355, 6354, 6360, 6361, - 6363, 6684, 6365, 6684, 6684, 6370, 6372, 6684, 6371, 6373, - 6684, 6374, 6375, 6376, 6383, 6384, 6381, 6382, 6388, 6390, - 6684, 6684, 6378, 6386, 6399, 6402, 6403, 6411, 6406, 6409, - 6410, 6412, 6413, 6422, 6684, 6420, 6421, 6424, 6684, 6425, - 6427, 6428, 6430, 6431, 6439, 6434, 6438, 6684, 6436, 6684, - 6441, 6443, 6442, 6444, 6445, 6448, 6456, 6454, 6458, 6684, - 6460, 6465, 6462, 6467, 6469, 6472, 6473, 6474, 6476, 6478, - 6482, 6488, 6485, 6489, 6479, 6490, 6491, 6684, 6500, 6494, - 6684, 6497, 6501, 6503, 6504, 6507, 6684, 6512, 6505, 6509, + 6344, 6351, 6346, 6349, 6347, 6356, 6348, 6358, 6714, 6363, + 6364, 6350, 6367, 6714, 6370, 6714, 6353, 6714, 6714, 6373, + 6374, 6376, 6377, 6386, 6387, 6378, 6382, 6383, 6388, 6390, + 6714, 6398, 6714, 6714, 6391, 6394, 6714, 6399, 6400, 6714, + 6401, 6403, 6405, 6406, 6407, 6409, 6410, 6411, 6418, 6714, + 6714, 6422, 6423, 6425, 6427, 6429, 6436, 6431, 6433, 6435, + 6443, 6437, 6445, 6714, 6447, 6449, 6451, 6714, 6453, 6452, + 6455, 6458, 6459, 6466, 6461, 6463, 6714, 6464, 6714, 6468, + 6470, 6469, 6472, 6473, 6475, 6483, 6481, 6485, 6714, 6487, + 6489, 6493, 6494, 6496, 6499, 6500, 6501, 6503, 6505, 6506, - 6514, 6517, 6518, 6684, 6520, 6527, 6529, 6684, 6530, 6684, - 6684, 6532, 6521, 6531, 6534, 6539, 6684, 6684, 6684, 6564, - 6571, 6578, 6585, 6592, 6599, 6606, 88, 6613, 6620, 6627, - 6634, 6641, 6648, 6655, 6662, 6669, 6676 + 6515, 6509, 6511, 6517, 6519, 6521, 6714, 6523, 6525, 6714, + 6526, 6527, 6528, 6529, 6533, 6714, 6538, 6530, 6535, 6541, + 6546, 6543, 6714, 6552, 6556, 6553, 6714, 6557, 6714, 6714, + 6558, 6559, 6561, 6565, 6567, 6714, 6714, 6714, 6594, 6601, + 6608, 6615, 6622, 6629, 6636, 88, 6643, 6650, 6657, 6664, + 6671, 6678, 6685, 6692, 6699, 6706 } ; -static const flex_int16_t yy_def[3438] = +static const flex_int16_t yy_def[3457] = { 0, - 3419, 1, 3420, 3420, 3421, 3421, 3422, 3422, 3423, 3423, - 3424, 3424, 3425, 3425, 3426, 3426, 3419, 3427, 3419, 3419, - 3419, 3419, 3428, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3429, 3419, 3419, 3419, - 3429, 3430, 3419, 3419, 3419, 3430, 3431, 3419, 3419, 3419, - 3419, 3431, 3432, 3419, 3419, 3419, 3432, 3433, 3419, 3434, - 3419, 3433, 3433, 3435, 3419, 3419, 3419, 3419, 3435, 3436, - 3419, 3419, 3419, 3436, 3427, 3427, 3419, 3437, 3428, 3437, - 3428, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3438, 1, 3439, 3439, 3440, 3440, 3441, 3441, 3442, 3442, + 3443, 3443, 3444, 3444, 3445, 3445, 3438, 3446, 3438, 3438, + 3438, 3438, 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3448, 3438, 3438, 3438, + 3448, 3449, 3438, 3438, 3438, 3449, 3450, 3438, 3438, 3438, + 3438, 3450, 3451, 3438, 3438, 3438, 3451, 3452, 3438, 3453, + 3438, 3452, 3452, 3454, 3438, 3438, 3438, 3438, 3454, 3455, + 3438, 3438, 3438, 3455, 3446, 3446, 3438, 3456, 3447, 3456, + 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3429, - 3429, 3430, 3430, 3431, 3431, 3419, 3432, 3432, 3433, 3433, - 3434, 3434, 3433, 3435, 3435, 3419, 3436, 3436, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3448, + 3448, 3449, 3449, 3450, 3450, 3438, 3451, 3451, 3452, 3452, + 3453, 3453, 3452, 3454, 3454, 3438, 3455, 3455, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3419, - 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3433, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3452, 3452, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3433, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, - 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3419, 3427, 3419, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3438, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, + 3446, 3446, 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3433, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3452, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3419, - 3427, 3419, 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3433, 3427, + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3438, 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 3419, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3419, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, - 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3419, 3427, 3427, 3433, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3419, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3438, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3438, 3446, 3446, 3452, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3419, 3419, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3427, - 3427, 3419, 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3438, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3446, 3438, 3446, 3446, 3438, 3446, 3438, 3446, 3438, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3419, - 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, - 3419, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, + 3446, 3438, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3419, 3419, 3427, 3419, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3419, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3419, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, - 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3427, 3419, 3419, 3427, 3427, 3427, 3427, 3419, 3419, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3419, 3427, 3419, 3427, 3427, 3419, 3419, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, + 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3438, + 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, + 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3427, 3419, 3419, 3427, 3427, 3419, 3419, - 3427, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3427, - 3427, 3419, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, - 3427, 3419, 3427, 3419, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3419, 3419, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3419, 3427, 3419, 3427, 3419, 3419, + 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3438, 3446, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3419, 3427, 3419, 3419, 3427, 3427, 3419, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3419, 3419, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3427, - 3427, 3427, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, - 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3427, 3427, 3427, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3438, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3427, 3427, 3427, 3419, 3427, 3427, 3427, 3419, 3427, 3419, - 3419, 3427, 3427, 3427, 3427, 3427, 3419, 3419, 0, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419 + 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3438, 3438, + 3446, 3446, 3446, 3446, 3446, 3438, 3438, 0, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438 } ; -static const flex_int16_t yy_nxt[6725] = +static const flex_int16_t yy_nxt[6755] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1609,7 +1615,7 @@ static const flex_int16_t yy_nxt[6725] = 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 730, 334, 86, 338, 323, 331, + 332, 86, 86, 86, 732, 334, 86, 338, 323, 331, 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, @@ -1644,654 +1650,657 @@ static const flex_int16_t yy_nxt[6725] = 86, 488, 86, 489, 86, 490, 482, 86, 484, 86, 506, 86, 86, 494, 491, 487, 493, 495, 486, 86, 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, - 501, 497, 86, 507, 86, 500, 508, 86, 505, 86, - 86, 86, 521, 502, 510, 509, 503, 524, 504, 86, - 511, 86, 522, 86, 512, 86, 635, 86, 527, 513, + 501, 497, 170, 507, 86, 500, 508, 86, 505, 86, + 86, 86, 522, 502, 86, 509, 503, 523, 504, 86, + 510, 86, 511, 544, 86, 86, 525, 86, 512, 568, - 86, 86, 514, 86, 515, 526, 516, 86, 525, 86, - 523, 529, 539, 170, 528, 537, 538, 540, 86, 517, - 544, 86, 518, 86, 519, 86, 520, 86, 547, 530, - 531, 541, 546, 86, 543, 86, 545, 86, 542, 532, - 86, 533, 534, 535, 548, 554, 536, 552, 86, 86, - 86, 551, 86, 86, 561, 550, 86, 553, 86, 549, - 86, 559, 86, 555, 86, 562, 86, 558, 556, 557, - 86, 566, 86, 560, 86, 86, 86, 86, 564, 86, - 569, 168, 563, 86, 565, 570, 571, 86, 86, 86, - 568, 576, 86, 583, 86, 573, 572, 567, 580, 574, + 528, 168, 513, 86, 86, 524, 526, 514, 527, 530, + 515, 86, 516, 539, 517, 540, 529, 86, 538, 86, + 541, 86, 86, 86, 86, 86, 547, 518, 86, 542, + 519, 166, 520, 86, 521, 86, 543, 531, 532, 546, + 549, 545, 86, 86, 548, 550, 86, 533, 551, 534, + 535, 536, 553, 557, 537, 86, 552, 86, 86, 86, + 555, 86, 554, 558, 560, 562, 86, 563, 86, 86, + 86, 86, 559, 567, 86, 86, 561, 86, 556, 86, + 570, 565, 571, 572, 566, 86, 86, 86, 564, 86, + 569, 86, 86, 86, 577, 578, 579, 573, 86, 584, - 86, 575, 577, 578, 86, 86, 86, 86, 581, 86, - 86, 86, 86, 597, 166, 600, 589, 86, 86, 86, - 579, 585, 592, 582, 584, 586, 588, 590, 587, 591, - 593, 594, 86, 86, 595, 596, 86, 602, 599, 603, - 86, 598, 86, 86, 86, 601, 604, 86, 605, 86, - 606, 86, 609, 86, 607, 611, 86, 86, 86, 86, - 614, 615, 608, 612, 86, 86, 610, 86, 616, 86, - 613, 86, 86, 86, 621, 86, 619, 620, 86, 86, - 617, 86, 622, 86, 86, 86, 627, 623, 86, 628, - 618, 86, 629, 626, 86, 631, 86, 625, 624, 86, + 86, 86, 574, 575, 581, 576, 86, 86, 585, 86, + 582, 86, 86, 580, 86, 598, 586, 86, 601, 86, + 590, 86, 600, 587, 86, 583, 589, 588, 599, 593, + 86, 591, 86, 592, 603, 86, 165, 594, 595, 602, + 86, 596, 597, 86, 86, 86, 86, 86, 606, 605, + 607, 608, 86, 604, 86, 609, 86, 610, 611, 612, + 86, 86, 86, 615, 616, 614, 613, 86, 86, 618, + 86, 617, 86, 86, 86, 622, 86, 620, 621, 86, + 86, 86, 86, 623, 86, 628, 86, 86, 624, 619, + 86, 629, 633, 627, 630, 86, 631, 86, 626, 625, - 634, 632, 86, 630, 86, 636, 633, 86, 86, 86, - 86, 86, 86, 86, 86, 638, 641, 639, 86, 649, - 86, 86, 643, 637, 86, 86, 86, 86, 729, 650, - 640, 644, 642, 645, 647, 648, 646, 651, 653, 86, - 86, 657, 86, 86, 652, 656, 86, 659, 654, 86, - 662, 655, 86, 86, 86, 661, 86, 86, 86, 86, - 86, 658, 665, 668, 86, 86, 86, 86, 664, 660, - 669, 671, 86, 86, 663, 86, 86, 86, 86, 670, - 666, 667, 86, 672, 86, 86, 674, 86, 685, 728, - 687, 673, 86, 675, 688, 683, 686, 684, 676, 86, + 86, 632, 86, 635, 86, 637, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 639, 634, 640, 642, 636, + 86, 86, 644, 650, 86, 86, 649, 638, 163, 86, + 641, 643, 645, 651, 646, 86, 652, 86, 647, 654, + 653, 648, 86, 86, 86, 655, 657, 86, 656, 660, + 86, 86, 86, 663, 662, 86, 86, 86, 658, 86, + 86, 666, 659, 86, 86, 86, 665, 669, 86, 670, + 661, 86, 86, 672, 86, 86, 86, 664, 86, 667, + 671, 668, 687, 86, 86, 86, 86, 673, 675, 86, + 689, 674, 86, 676, 684, 86, 706, 685, 677, 686, - 677, 86, 692, 689, 86, 86, 678, 86, 679, 690, - 693, 680, 681, 691, 86, 697, 696, 694, 682, 86, - 695, 86, 86, 86, 86, 701, 698, 86, 704, 699, - 86, 86, 706, 86, 86, 700, 86, 86, 86, 86, - 86, 86, 86, 86, 703, 712, 702, 165, 707, 708, - 713, 709, 717, 710, 86, 705, 86, 715, 714, 86, - 711, 170, 716, 718, 720, 719, 721, 86, 86, 86, - 86, 86, 86, 86, 732, 86, 86, 727, 163, 733, - 86, 86, 722, 724, 731, 86, 725, 723, 735, 86, - 726, 86, 734, 736, 86, 86, 86, 86, 737, 86, + 678, 694, 688, 86, 86, 690, 679, 691, 680, 692, + 86, 681, 682, 693, 86, 695, 86, 699, 683, 86, + 86, 86, 86, 86, 703, 698, 86, 86, 700, 86, + 696, 86, 708, 697, 701, 86, 702, 86, 86, 86, + 86, 86, 86, 86, 709, 704, 705, 710, 714, 715, + 86, 86, 707, 711, 86, 720, 712, 717, 86, 719, + 716, 713, 170, 722, 718, 86, 721, 86, 86, 86, + 86, 86, 86, 725, 86, 735, 729, 723, 86, 161, + 731, 86, 724, 727, 726, 86, 86, 730, 737, 728, + 734, 86, 86, 733, 86, 86, 86, 86, 736, 739, - 741, 740, 86, 738, 86, 746, 739, 161, 742, 86, - 747, 86, 749, 86, 758, 743, 750, 86, 744, 751, - 745, 86, 748, 752, 86, 86, 753, 86, 754, 86, - 755, 86, 759, 86, 86, 756, 86, 86, 760, 86, - 86, 86, 757, 763, 764, 762, 86, 86, 768, 86, - 761, 767, 86, 769, 86, 86, 86, 86, 86, 773, - 771, 86, 86, 86, 765, 766, 86, 776, 779, 86, - 770, 772, 86, 86, 86, 86, 774, 775, 780, 777, - 86, 86, 86, 781, 782, 86, 778, 86, 787, 783, - 786, 789, 784, 785, 86, 86, 792, 86, 788, 790, + 86, 86, 86, 86, 738, 742, 743, 86, 748, 740, + 744, 86, 741, 749, 86, 751, 86, 745, 747, 753, + 746, 752, 86, 86, 750, 86, 754, 86, 755, 86, + 756, 86, 757, 86, 86, 86, 86, 758, 86, 86, + 762, 86, 761, 760, 759, 86, 86, 86, 765, 764, + 86, 766, 763, 770, 769, 86, 86, 767, 86, 86, + 771, 86, 86, 773, 86, 775, 768, 86, 86, 86, + 86, 86, 781, 772, 778, 774, 782, 776, 86, 86, + 86, 86, 789, 86, 779, 86, 784, 86, 777, 86, + 780, 785, 792, 783, 786, 787, 86, 86, 788, 86, - 791, 794, 86, 86, 86, 86, 796, 86, 797, 86, - 799, 795, 793, 86, 801, 86, 800, 86, 86, 86, - 86, 86, 808, 86, 86, 804, 806, 86, 86, 86, - 798, 802, 805, 809, 86, 803, 86, 178, 815, 86, - 807, 86, 817, 813, 86, 812, 810, 816, 814, 811, - 818, 819, 86, 86, 86, 820, 86, 86, 86, 821, - 86, 826, 828, 824, 86, 86, 86, 86, 86, 827, - 86, 823, 86, 829, 822, 832, 86, 831, 86, 825, - 833, 86, 86, 86, 86, 840, 839, 836, 842, 834, - 830, 835, 86, 841, 86, 86, 844, 86, 86, 848, + 796, 793, 86, 790, 86, 791, 86, 86, 86, 86, + 798, 794, 799, 797, 795, 86, 86, 86, 804, 802, + 801, 86, 803, 86, 86, 86, 86, 805, 806, 808, + 810, 86, 86, 86, 800, 811, 807, 86, 86, 178, + 86, 86, 817, 86, 819, 809, 86, 815, 86, 818, + 86, 812, 816, 814, 813, 820, 821, 86, 86, 86, + 822, 86, 86, 828, 823, 827, 86, 826, 824, 86, + 830, 829, 86, 86, 86, 825, 86, 831, 833, 834, + 86, 86, 86, 841, 835, 86, 86, 838, 86, 86, + 86, 86, 86, 836, 837, 848, 844, 832, 86, 843, - 86, 837, 838, 846, 845, 86, 86, 852, 86, 854, - 849, 850, 853, 86, 843, 86, 86, 86, 847, 856, - 86, 851, 858, 86, 86, 86, 86, 86, 864, 86, - 86, 86, 86, 865, 86, 857, 86, 86, 86, 866, - 855, 859, 860, 861, 86, 862, 867, 863, 86, 873, - 869, 868, 86, 872, 86, 86, 870, 86, 874, 86, - 871, 86, 86, 879, 875, 86, 86, 86, 86, 86, - 86, 86, 888, 876, 886, 86, 86, 86, 877, 889, - 878, 885, 881, 880, 887, 882, 883, 884, 86, 86, - 890, 86, 86, 86, 86, 86, 891, 894, 86, 892, + 86, 839, 840, 86, 846, 842, 850, 847, 845, 86, + 849, 86, 86, 854, 86, 856, 852, 86, 855, 86, + 86, 851, 858, 857, 86, 86, 853, 860, 86, 86, + 86, 86, 866, 86, 86, 86, 859, 867, 86, 86, + 86, 86, 861, 868, 86, 86, 862, 863, 86, 864, + 869, 865, 86, 875, 870, 86, 873, 86, 871, 86, + 872, 86, 86, 874, 86, 876, 877, 878, 882, 86, + 86, 86, 86, 86, 86, 176, 879, 86, 891, 889, + 86, 881, 880, 86, 86, 86, 884, 883, 892, 885, + 886, 887, 888, 86, 890, 86, 86, 893, 86, 86, - 86, 898, 86, 893, 86, 899, 86, 895, 897, 900, - 86, 901, 896, 86, 86, 902, 903, 86, 906, 86, - 904, 909, 86, 905, 170, 911, 907, 86, 86, 910, - 86, 908, 912, 86, 86, 86, 86, 918, 86, 86, - 919, 86, 914, 86, 913, 921, 86, 86, 920, 915, - 916, 86, 922, 925, 86, 86, 917, 86, 927, 86, - 923, 926, 924, 86, 931, 86, 86, 928, 86, 86, - 86, 86, 86, 932, 86, 933, 86, 86, 952, 86, - 86, 930, 929, 946, 934, 947, 948, 944, 86, 86, - 86, 936, 951, 945, 935, 86, 86, 937, 949, 86, + 86, 897, 86, 86, 894, 86, 895, 896, 902, 901, + 86, 86, 903, 900, 898, 904, 905, 86, 899, 86, + 86, 86, 86, 170, 86, 86, 907, 912, 913, 908, + 910, 86, 86, 86, 914, 906, 909, 911, 86, 86, + 86, 928, 915, 86, 86, 920, 916, 86, 917, 921, + 86, 86, 922, 924, 86, 918, 86, 919, 86, 86, + 923, 925, 86, 927, 86, 86, 930, 926, 86, 934, + 86, 86, 86, 86, 86, 86, 931, 86, 935, 929, + 936, 86, 86, 175, 86, 86, 933, 950, 86, 937, + 932, 951, 947, 949, 939, 86, 86, 938, 86, 948, - 938, 86, 953, 86, 939, 86, 950, 940, 86, 86, - 954, 86, 958, 966, 941, 942, 957, 943, 86, 956, - 86, 955, 86, 959, 960, 86, 961, 86, 86, 962, - 967, 969, 971, 86, 963, 970, 86, 86, 968, 86, - 964, 965, 973, 86, 974, 86, 977, 978, 972, 86, - 1293, 975, 979, 86, 86, 981, 980, 86, 976, 86, - 982, 86, 983, 86, 984, 86, 985, 86, 986, 988, - 86, 86, 987, 989, 86, 86, 86, 86, 991, 992, - 86, 86, 996, 86, 86, 995, 990, 86, 86, 999, - 86, 86, 86, 86, 1003, 1053, 993, 1004, 997, 994, + 940, 86, 86, 941, 952, 954, 958, 942, 86, 955, + 943, 86, 953, 86, 956, 86, 959, 944, 945, 961, + 946, 86, 957, 86, 86, 86, 969, 86, 86, 86, + 86, 972, 86, 974, 86, 960, 86, 962, 963, 976, + 964, 86, 971, 965, 970, 978, 170, 86, 966, 975, + 980, 977, 973, 981, 967, 968, 86, 86, 982, 86, + 86, 984, 86, 983, 86, 987, 979, 986, 86, 86, + 86, 86, 985, 988, 989, 990, 991, 86, 86, 86, + 992, 993, 86, 86, 86, 86, 995, 86, 999, 86, + 86, 86, 998, 86, 86, 1002, 86, 86, 994, 168, - 86, 998, 1000, 1001, 1005, 86, 86, 86, 1006, 1009, - 1011, 1008, 1002, 1007, 86, 86, 86, 86, 1013, 86, - 86, 86, 1012, 1014, 86, 1015, 1010, 1017, 86, 1016, - 1018, 86, 86, 86, 86, 86, 86, 86, 86, 1021, - 1019, 86, 1022, 1026, 86, 1029, 86, 86, 86, 86, - 1027, 1020, 1030, 1024, 1023, 1028, 86, 1025, 86, 86, - 86, 86, 86, 86, 86, 1032, 1035, 1031, 1033, 1036, - 86, 86, 86, 1034, 1037, 1038, 1039, 1042, 1043, 86, - 1045, 1041, 86, 1044, 86, 86, 86, 86, 1040, 86, - 86, 1054, 86, 1051, 86, 1048, 86, 1046, 86, 86, + 1006, 1004, 1007, 996, 997, 1000, 86, 1001, 1009, 1003, + 1008, 86, 86, 1010, 86, 1012, 86, 1011, 1005, 1014, + 1016, 86, 86, 86, 86, 86, 86, 1015, 86, 1018, + 86, 1017, 1019, 1020, 86, 1013, 1021, 86, 1022, 86, + 86, 86, 86, 86, 86, 1024, 1029, 86, 1025, 86, + 1032, 86, 86, 86, 86, 86, 1033, 1023, 1030, 1027, + 1026, 1031, 86, 1028, 1035, 86, 86, 86, 86, 86, + 86, 1034, 1038, 1040, 1036, 1039, 86, 86, 1037, 86, + 86, 1041, 1042, 1046, 86, 1048, 1044, 86, 1047, 86, + 86, 86, 1045, 86, 1043, 1049, 86, 86, 1056, 1051, - 86, 1052, 86, 1056, 1047, 86, 86, 1050, 86, 86, - 86, 1049, 1064, 86, 86, 1055, 1067, 1057, 1062, 1058, - 1059, 86, 86, 1068, 1060, 1061, 86, 86, 1065, 1063, - 86, 86, 1066, 1069, 86, 86, 1072, 1075, 86, 86, - 1074, 1071, 86, 86, 86, 1070, 86, 86, 1073, 86, - 1076, 1078, 1080, 86, 1085, 1086, 86, 86, 1088, 1077, - 86, 86, 86, 1079, 86, 86, 1081, 176, 1083, 1082, - 1087, 1089, 1091, 1084, 1092, 86, 86, 86, 86, 1093, - 86, 86, 1090, 86, 1094, 1100, 1097, 86, 1095, 86, - 1099, 86, 86, 1104, 86, 1101, 1096, 86, 1098, 86, + 1054, 1057, 86, 86, 86, 86, 1050, 86, 1055, 1059, + 86, 1053, 86, 86, 86, 1052, 86, 86, 86, 86, + 86, 1067, 1070, 1065, 1058, 86, 1060, 1061, 86, 1071, + 1062, 86, 86, 1064, 1063, 86, 1068, 1072, 1069, 1066, + 86, 1075, 86, 86, 86, 86, 1074, 86, 1076, 1078, + 1073, 1079, 86, 86, 86, 86, 1077, 86, 86, 86, + 86, 1084, 1080, 1082, 1089, 1081, 1090, 1083, 1092, 86, + 86, 86, 86, 1091, 86, 1085, 1095, 1087, 1096, 1086, + 1088, 86, 86, 1093, 86, 1097, 86, 86, 86, 86, + 1104, 1094, 86, 1101, 86, 1103, 86, 86, 86, 1099, - 1103, 1102, 1106, 86, 86, 86, 1111, 86, 86, 1108, - 86, 1112, 170, 86, 1105, 1107, 86, 1114, 86, 1115, - 86, 1109, 1113, 1110, 86, 1118, 86, 86, 86, 1119, - 1116, 86, 86, 1131, 86, 86, 1117, 175, 1132, 86, - 1121, 1122, 1134, 86, 86, 86, 86, 1123, 1120, 1139, - 1133, 86, 1124, 86, 1137, 1136, 1125, 86, 1126, 86, - 1138, 1141, 1127, 86, 1128, 86, 1142, 86, 1143, 1129, - 1135, 1140, 86, 86, 1130, 86, 1145, 1144, 86, 86, - 1147, 86, 86, 1148, 1151, 1150, 86, 86, 1146, 1152, - 86, 86, 1157, 1149, 1158, 1155, 1154, 1156, 1159, 86, + 1105, 86, 1108, 1110, 86, 1098, 86, 1100, 86, 86, + 1102, 86, 1109, 86, 1107, 1115, 1106, 86, 1112, 86, + 1116, 170, 86, 1118, 1111, 1113, 1117, 1114, 86, 1119, + 86, 86, 86, 86, 86, 1122, 86, 86, 86, 1120, + 86, 1135, 1121, 166, 86, 1138, 86, 1125, 1136, 1126, + 1123, 86, 86, 1137, 1127, 86, 1124, 86, 1128, 86, + 86, 1140, 1129, 86, 1130, 1143, 1145, 1141, 1131, 1142, + 1132, 1146, 86, 86, 86, 1133, 1139, 1144, 86, 86, + 1134, 86, 1147, 1149, 86, 86, 1152, 86, 1148, 1155, + 86, 86, 86, 1151, 86, 1150, 1153, 1154, 1160, 86, - 86, 1162, 1153, 1161, 86, 1160, 86, 86, 86, 86, - 86, 86, 1163, 86, 86, 1177, 1174, 86, 1164, 86, - 86, 86, 1173, 170, 1178, 1176, 86, 1165, 86, 1166, - 86, 1175, 86, 86, 1167, 1180, 1168, 1184, 1179, 1181, - 86, 86, 1169, 86, 1186, 1182, 1185, 1170, 1171, 1183, - 86, 86, 1190, 86, 1172, 86, 86, 1193, 1187, 1191, - 86, 86, 86, 86, 1194, 86, 1188, 1196, 1198, 1189, - 86, 86, 86, 86, 86, 1199, 1192, 86, 1197, 1195, - 1204, 1201, 1202, 86, 86, 86, 86, 86, 86, 86, - 1200, 86, 1205, 1203, 1207, 86, 86, 86, 86, 86, + 1162, 1156, 1163, 1159, 1161, 1158, 86, 1165, 86, 1164, + 86, 1157, 86, 1166, 86, 86, 86, 86, 86, 86, + 86, 86, 1181, 1178, 86, 86, 86, 86, 1177, 1182, + 86, 86, 1180, 86, 1168, 1169, 1167, 86, 1170, 1179, + 1184, 1183, 1188, 1171, 86, 1172, 1185, 1187, 86, 1186, + 86, 1173, 86, 86, 86, 1189, 1174, 1175, 1194, 86, + 86, 86, 1191, 1176, 1190, 1195, 86, 1197, 86, 1192, + 86, 1198, 1193, 86, 86, 1200, 1202, 86, 86, 86, + 1196, 86, 86, 1203, 86, 1199, 1208, 1201, 1205, 86, + 1206, 86, 86, 86, 86, 86, 1204, 86, 1209, 1211, - 1212, 1209, 1214, 1206, 1216, 1208, 1213, 1211, 1210, 86, - 86, 86, 86, 1218, 86, 1215, 86, 1220, 86, 86, - 86, 86, 86, 86, 168, 1217, 1225, 1226, 1227, 1228, - 1222, 1219, 86, 1221, 1224, 1230, 1223, 86, 1229, 86, - 86, 86, 86, 86, 1235, 86, 1239, 1232, 1231, 1236, - 86, 86, 1237, 1233, 86, 1238, 86, 86, 1234, 1240, - 86, 86, 1246, 86, 1248, 86, 86, 86, 86, 86, - 86, 1250, 1242, 1244, 1241, 1243, 1245, 86, 86, 86, - 1249, 1251, 1252, 1247, 86, 86, 86, 1257, 86, 1254, - 1253, 1255, 86, 1256, 86, 86, 86, 1258, 86, 1259, + 1207, 86, 86, 86, 86, 1220, 86, 1218, 86, 1213, + 1210, 86, 1216, 1212, 1215, 1217, 86, 1214, 86, 86, + 86, 1219, 86, 86, 1221, 1224, 86, 86, 1229, 86, + 1222, 86, 86, 1226, 1230, 86, 1231, 86, 1223, 86, + 1233, 1225, 1228, 1234, 1227, 86, 1232, 1236, 1237, 86, + 86, 1239, 86, 86, 1235, 1243, 1240, 86, 86, 1241, + 86, 86, 1242, 86, 86, 86, 1238, 1244, 1250, 86, + 1252, 86, 86, 86, 86, 1256, 86, 1246, 1248, 1249, + 1245, 1247, 86, 86, 86, 86, 1253, 1254, 86, 1251, + 1258, 86, 86, 1259, 1257, 86, 1262, 1255, 86, 86, - 1260, 1261, 1264, 1267, 1263, 1265, 86, 86, 86, 86, - 86, 86, 1262, 1268, 86, 1269, 1266, 86, 86, 86, - 1275, 1273, 1276, 86, 86, 86, 86, 1270, 86, 1277, - 1271, 86, 1274, 86, 1280, 86, 1278, 1272, 1279, 86, - 86, 1282, 1284, 86, 1281, 1283, 86, 86, 86, 1286, - 86, 1285, 1287, 1289, 86, 86, 1288, 86, 1291, 86, - 1292, 86, 86, 86, 1294, 1298, 1299, 86, 86, 86, - 86, 86, 86, 1290, 1296, 1301, 1302, 86, 86, 1295, - 1306, 1305, 1297, 1300, 86, 86, 1303, 86, 86, 86, - 86, 170, 1304, 1312, 86, 86, 1308, 86, 86, 86, + 1260, 1261, 86, 1263, 86, 1265, 1268, 1264, 1269, 86, + 1267, 86, 86, 86, 86, 86, 1273, 1272, 1266, 86, + 1270, 86, 86, 86, 1279, 86, 1277, 1280, 165, 86, + 86, 1271, 86, 86, 1281, 86, 86, 1274, 1278, 1283, + 1275, 1282, 1276, 86, 1285, 86, 86, 86, 1284, 1289, + 86, 1286, 1288, 1287, 86, 86, 1291, 86, 86, 1290, + 86, 86, 86, 86, 86, 1294, 1296, 1292, 86, 1293, + 86, 1297, 86, 1298, 86, 1299, 86, 1303, 86, 1304, + 1295, 86, 1300, 86, 1301, 86, 1306, 1307, 86, 86, + 86, 1305, 1311, 1302, 86, 86, 86, 1308, 86, 86, - 1313, 86, 1314, 1307, 1319, 86, 86, 1309, 86, 1311, - 166, 1315, 1316, 86, 1310, 1320, 1317, 1318, 1321, 86, - 1323, 1324, 86, 86, 1327, 86, 86, 86, 1322, 1325, - 1326, 86, 86, 86, 86, 86, 1328, 1329, 1331, 86, - 86, 86, 1337, 86, 86, 86, 1330, 1334, 86, 1332, - 86, 86, 86, 1348, 1333, 86, 1335, 1341, 1336, 1338, - 1343, 86, 1339, 1340, 86, 1347, 86, 86, 86, 1344, - 1342, 1345, 1349, 1351, 1346, 1350, 86, 86, 1352, 86, - 1353, 86, 86, 86, 86, 86, 86, 1354, 1357, 86, - 1356, 1360, 86, 1364, 86, 86, 1359, 1355, 86, 1361, + 86, 170, 1310, 1309, 1313, 1317, 86, 86, 86, 86, + 163, 86, 1312, 1318, 1319, 86, 86, 1314, 86, 1316, + 86, 1320, 1322, 1324, 1315, 1321, 1328, 1323, 1329, 1325, + 1326, 86, 86, 86, 86, 86, 1327, 86, 86, 1332, + 1331, 86, 86, 1333, 86, 86, 86, 86, 86, 1330, + 1336, 86, 1342, 86, 1339, 1334, 1335, 86, 86, 1337, + 86, 86, 86, 1340, 86, 1338, 161, 1346, 86, 1348, + 1341, 1343, 1352, 86, 1353, 1345, 1344, 86, 1349, 86, + 1350, 86, 1347, 1351, 1354, 1355, 86, 86, 1356, 86, + 1358, 1357, 86, 86, 86, 86, 86, 86, 86, 1362, - 1362, 1358, 86, 1365, 86, 86, 86, 1366, 86, 1368, - 1369, 1363, 86, 86, 1370, 1367, 86, 86, 86, 86, - 86, 86, 86, 1371, 1376, 86, 86, 1372, 1374, 86, - 86, 1377, 1373, 1375, 86, 1381, 86, 86, 86, 1378, - 1380, 1382, 1379, 1385, 86, 1383, 86, 86, 86, 1393, - 1384, 1386, 86, 86, 86, 86, 1387, 1389, 1388, 86, - 86, 1396, 1391, 86, 86, 86, 1401, 1394, 1392, 1390, - 1399, 1402, 86, 1395, 1397, 1400, 1398, 86, 86, 86, - 86, 1406, 86, 1403, 1416, 86, 1417, 1415, 86, 165, - 86, 1404, 1405, 86, 1407, 1414, 86, 1419, 1408, 86, + 86, 1365, 1361, 86, 1369, 86, 86, 86, 1359, 1364, + 1360, 1367, 1366, 86, 1363, 86, 86, 86, 1370, 86, + 1371, 1373, 1368, 1374, 86, 86, 1372, 86, 86, 86, + 86, 86, 1376, 1375, 86, 86, 86, 1381, 86, 86, + 1377, 1379, 86, 1380, 1386, 86, 1378, 1382, 86, 86, + 1383, 86, 86, 86, 1385, 1384, 86, 1387, 1390, 1388, + 86, 1398, 86, 1391, 1393, 1389, 86, 86, 86, 86, + 1392, 86, 1394, 86, 86, 1396, 86, 1401, 86, 1404, + 1400, 1395, 1397, 1399, 86, 86, 86, 1406, 1405, 1403, + 86, 1402, 1407, 86, 86, 1411, 1455, 1408, 1409, 1410, - 86, 1409, 1410, 1420, 1418, 1421, 1411, 86, 86, 86, - 86, 1423, 1412, 1422, 86, 1425, 1413, 1424, 86, 86, - 1430, 1426, 86, 1427, 86, 86, 86, 1428, 86, 86, - 1433, 1431, 1436, 1437, 86, 86, 163, 1429, 86, 86, - 1438, 86, 1434, 1440, 1432, 1439, 86, 1435, 1441, 86, - 1442, 1445, 1443, 86, 1444, 86, 1447, 1448, 1449, 86, - 86, 86, 86, 1446, 1450, 1451, 86, 1455, 86, 86, - 86, 86, 1456, 86, 1452, 1454, 1459, 1457, 86, 86, - 1453, 86, 86, 1465, 1460, 86, 1466, 1461, 86, 86, - 86, 1458, 86, 86, 86, 1469, 1464, 86, 1462, 86, + 86, 1412, 86, 1419, 1421, 1413, 86, 1422, 1414, 1415, + 86, 1420, 86, 1416, 1425, 86, 86, 1423, 86, 1417, + 86, 1426, 86, 1418, 1424, 86, 1428, 1427, 86, 1430, + 86, 86, 86, 1431, 1435, 1432, 86, 86, 86, 1429, + 86, 86, 86, 1438, 86, 1436, 1441, 1442, 86, 1443, + 1434, 1433, 86, 86, 86, 1439, 86, 1437, 1444, 86, + 1440, 86, 1451, 86, 1450, 1445, 86, 1452, 1453, 1454, + 1446, 86, 1447, 86, 1448, 86, 1449, 1456, 1457, 1458, + 1460, 86, 86, 86, 1459, 1461, 86, 86, 1464, 86, + 1462, 86, 86, 86, 1470, 86, 1471, 86, 1466, 86, - 1463, 1467, 1468, 1471, 1472, 86, 1470, 86, 1476, 86, - 86, 86, 1475, 1478, 86, 86, 86, 1473, 1479, 86, - 1481, 86, 1480, 86, 86, 1477, 1484, 86, 1486, 86, - 1474, 1485, 1483, 86, 1487, 86, 86, 1491, 86, 86, - 1482, 1488, 86, 86, 1495, 1489, 1493, 86, 86, 86, - 86, 1498, 1496, 86, 86, 86, 1490, 1497, 1500, 1492, - 86, 86, 1494, 86, 86, 1502, 86, 86, 1504, 1501, - 1507, 1499, 1505, 86, 86, 1503, 86, 1509, 1506, 1508, - 86, 86, 86, 86, 1511, 1510, 1515, 1512, 1516, 1513, - 86, 1518, 86, 86, 86, 1517, 1514, 86, 86, 86, + 86, 1465, 86, 86, 1463, 1472, 86, 1469, 1474, 86, + 1467, 1468, 86, 1473, 86, 1476, 1475, 86, 86, 1477, + 1481, 86, 1480, 1483, 86, 86, 86, 1478, 1484, 86, + 1486, 86, 1485, 1482, 86, 1489, 86, 86, 86, 1479, + 1491, 86, 86, 1488, 86, 1492, 86, 1493, 1496, 86, + 1487, 86, 86, 86, 86, 1501, 1499, 1490, 86, 1494, + 86, 86, 1504, 1502, 86, 86, 86, 1495, 86, 1498, + 86, 1497, 86, 1503, 1500, 1506, 1511, 86, 86, 1515, + 86, 1507, 1508, 1505, 1509, 1510, 86, 86, 86, 86, + 1513, 1512, 86, 1514, 1516, 86, 86, 86, 86, 1521, - 1522, 86, 1519, 86, 86, 86, 170, 86, 86, 86, - 1521, 161, 1529, 1530, 86, 1525, 86, 1520, 86, 86, - 1531, 1526, 1524, 1523, 1532, 86, 86, 1527, 86, 1535, - 86, 1528, 86, 86, 1540, 86, 1536, 86, 1537, 1533, - 86, 86, 1538, 1545, 86, 1534, 1544, 86, 86, 86, - 1539, 1549, 86, 1547, 86, 1541, 1550, 86, 1543, 86, - 86, 1552, 1542, 86, 86, 86, 86, 1553, 1548, 86, - 1546, 1561, 1551, 86, 1554, 86, 86, 86, 1555, 1556, - 1558, 1564, 1557, 1559, 1563, 1560, 86, 1562, 1566, 86, - 86, 1569, 86, 1567, 86, 86, 86, 1565, 86, 86, + 1522, 1518, 1523, 1519, 86, 86, 86, 1524, 86, 86, + 1517, 1520, 86, 86, 1528, 86, 86, 1525, 86, 86, + 1527, 170, 86, 1526, 1535, 1536, 86, 86, 1531, 1538, + 86, 86, 1529, 1537, 1530, 86, 1532, 86, 86, 1533, + 1539, 86, 86, 86, 86, 1534, 1540, 86, 1546, 86, + 86, 1551, 86, 1543, 86, 86, 1544, 1541, 1542, 1550, + 86, 1545, 86, 3438, 1547, 1553, 1555, 86, 1549, 86, + 86, 1556, 86, 86, 1548, 86, 86, 1559, 1552, 1558, + 86, 1554, 1567, 86, 86, 1557, 86, 1560, 86, 1564, + 1561, 1562, 1565, 1569, 1563, 1566, 86, 1568, 86, 86, - 1571, 1572, 86, 86, 86, 3419, 86, 1575, 1568, 86, - 1570, 86, 1580, 86, 86, 86, 1573, 1581, 1577, 1574, - 1584, 86, 86, 1576, 1578, 86, 86, 1579, 86, 86, - 86, 86, 1582, 1585, 1583, 86, 1591, 86, 86, 1587, - 86, 1586, 1592, 1588, 1589, 1593, 86, 1595, 86, 1590, - 86, 1596, 86, 86, 1600, 1594, 1601, 1598, 1602, 86, - 86, 1597, 86, 86, 86, 1604, 86, 86, 1609, 1605, - 86, 1610, 1599, 1603, 86, 1608, 1606, 86, 1611, 86, - 1612, 86, 1613, 86, 86, 1614, 86, 1615, 1607, 86, - 86, 86, 86, 86, 86, 86, 1622, 86, 1616, 86, + 1570, 1572, 86, 86, 86, 86, 1573, 86, 1577, 1571, + 1578, 86, 86, 86, 1575, 86, 86, 86, 1581, 86, + 86, 1574, 1576, 86, 1586, 86, 86, 86, 1590, 1579, + 1583, 1587, 1580, 86, 86, 1582, 1589, 1584, 1585, 86, + 1593, 86, 86, 1588, 86, 1591, 86, 86, 86, 86, + 86, 1597, 86, 1599, 1598, 86, 1594, 1595, 1592, 1601, + 86, 1602, 86, 1596, 86, 1606, 86, 1600, 1607, 1608, + 1603, 1604, 1605, 86, 86, 86, 1610, 86, 86, 1611, + 1609, 86, 86, 1615, 1616, 1617, 86, 1614, 86, 86, + 86, 86, 86, 1618, 1612, 86, 1619, 1620, 86, 86, - 1621, 86, 86, 1618, 86, 86, 1619, 1624, 1617, 1620, - 1625, 86, 1633, 1628, 86, 1626, 86, 1623, 1629, 86, - 1630, 1627, 86, 86, 1632, 1631, 86, 86, 1637, 86, - 86, 1636, 1641, 1634, 86, 1635, 86, 86, 86, 1642, - 86, 1645, 86, 86, 86, 1648, 1638, 86, 1640, 1639, - 1647, 86, 86, 86, 86, 86, 1643, 86, 86, 1646, - 1657, 1649, 1650, 1644, 86, 1656, 86, 86, 1653, 86, - 3419, 1651, 1652, 1655, 1661, 86, 1654, 1662, 86, 86, - 86, 1660, 86, 86, 1663, 1658, 1659, 1664, 86, 86, - 86, 1666, 1668, 1665, 86, 86, 1669, 86, 86, 1672, + 86, 86, 1613, 1621, 1623, 86, 86, 86, 1629, 1622, + 86, 1628, 86, 1624, 1627, 86, 86, 86, 1634, 1625, + 1630, 1626, 1631, 1635, 86, 1636, 86, 86, 1639, 1632, + 1637, 86, 86, 86, 86, 1633, 86, 86, 86, 86, + 86, 1643, 1647, 1642, 86, 1648, 1638, 86, 86, 1651, + 86, 1640, 1641, 86, 1654, 86, 1644, 1646, 1645, 1653, + 86, 86, 86, 86, 1649, 86, 86, 86, 86, 1652, + 1663, 86, 86, 1650, 86, 1662, 86, 86, 1667, 86, + 1655, 1656, 1657, 1661, 1658, 1659, 86, 1660, 86, 1666, + 1670, 1664, 1668, 86, 86, 1665, 86, 86, 86, 1669, - 86, 1667, 1676, 86, 86, 1677, 1678, 1671, 86, 1670, - 1673, 86, 86, 86, 1675, 86, 1681, 1674, 86, 1679, - 86, 1680, 1682, 86, 1683, 86, 1688, 1689, 86, 86, - 86, 86, 86, 1684, 1686, 1687, 1692, 86, 1693, 1694, - 86, 1685, 1696, 86, 86, 86, 86, 1690, 86, 1697, - 86, 1691, 1698, 86, 86, 86, 86, 1701, 86, 1706, - 1695, 86, 1705, 86, 1699, 1703, 1700, 86, 86, 86, - 86, 1711, 86, 1709, 86, 1702, 86, 86, 1704, 86, - 86, 1712, 86, 1710, 1707, 86, 1708, 86, 1717, 86, - 1720, 1714, 1713, 86, 1718, 1722, 86, 1723, 86, 1716, + 1674, 1671, 86, 86, 1675, 1672, 86, 86, 1678, 86, + 1673, 1682, 86, 86, 86, 86, 1684, 1676, 1683, 86, + 1677, 1679, 86, 86, 1687, 1681, 86, 1680, 1686, 1685, + 1688, 86, 86, 86, 86, 1689, 1695, 86, 1694, 86, + 86, 86, 1692, 1690, 86, 1700, 1698, 86, 1699, 86, + 1691, 86, 1702, 86, 1693, 86, 86, 1696, 1703, 1704, + 86, 1697, 86, 86, 86, 86, 1707, 86, 86, 1701, + 86, 1712, 1705, 86, 1710, 86, 86, 86, 1706, 86, + 86, 1718, 1716, 86, 86, 1708, 86, 1709, 1711, 86, + 1713, 86, 1719, 1717, 1714, 1715, 86, 1724, 86, 86, - 1719, 86, 1715, 86, 1721, 86, 1725, 86, 86, 86, - 86, 1728, 1731, 86, 1727, 1730, 86, 170, 1724, 86, - 86, 1733, 1732, 1726, 86, 86, 86, 1729, 86, 1741, - 86, 3419, 86, 1734, 1736, 1742, 86, 1735, 86, 1739, - 1745, 86, 86, 1737, 1738, 86, 86, 1746, 1749, 86, - 1747, 1740, 1743, 1751, 1750, 86, 1744, 1753, 86, 86, - 1755, 86, 1748, 86, 86, 86, 86, 86, 86, 86, - 1760, 1757, 1754, 1758, 86, 1752, 86, 1761, 86, 86, - 86, 1762, 1765, 1756, 86, 1766, 86, 86, 86, 1773, - 1759, 86, 1763, 1764, 1770, 86, 86, 1771, 1767, 1768, + 86, 1721, 1720, 86, 86, 1727, 1729, 86, 1730, 86, + 86, 1723, 1725, 86, 1722, 86, 1732, 1726, 1728, 86, + 86, 86, 86, 1735, 1734, 86, 1737, 1738, 86, 1731, + 1740, 170, 1733, 86, 86, 1739, 86, 86, 86, 1736, + 86, 1748, 86, 86, 86, 86, 1817, 1741, 1743, 1749, + 86, 1742, 1746, 1752, 86, 1744, 1745, 86, 86, 1753, + 1756, 86, 1747, 1750, 86, 1751, 1754, 1758, 86, 1757, + 1760, 86, 86, 86, 1762, 86, 86, 1755, 86, 86, + 86, 86, 86, 1767, 1764, 1761, 1765, 86, 1759, 86, + 1768, 1763, 86, 86, 1769, 86, 1772, 86, 1773, 86, - 86, 1774, 86, 1775, 86, 86, 1769, 1780, 86, 1772, - 1778, 1777, 1782, 1779, 1781, 86, 1783, 86, 86, 1776, - 86, 1789, 86, 86, 1785, 1784, 86, 1786, 1787, 86, - 86, 86, 1794, 1795, 86, 1788, 1791, 86, 86, 86, - 1793, 86, 1797, 86, 86, 86, 1796, 1790, 86, 1799, - 1801, 1792, 1800, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 1811, 86, 1798, 1810, 86, 86, - 86, 1805, 1802, 1806, 1807, 1803, 1804, 86, 86, 1808, - 1813, 1814, 1816, 1809, 1812, 86, 1818, 86, 86, 86, - 1815, 1822, 86, 86, 86, 86, 86, 1826, 1817, 1824, + 86, 86, 1780, 1766, 3438, 1770, 86, 1771, 86, 1777, + 86, 1775, 1778, 1774, 86, 1781, 86, 1782, 86, 86, + 1776, 86, 1787, 1785, 1779, 1784, 1786, 1788, 86, 1789, + 1790, 86, 86, 1783, 1796, 86, 86, 1791, 86, 1792, + 86, 1793, 1794, 86, 86, 86, 1801, 1802, 86, 1795, + 1798, 86, 86, 86, 1800, 86, 1804, 86, 86, 86, + 1803, 1797, 86, 1806, 1808, 1799, 1807, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 1818, 86, + 1805, 86, 86, 86, 86, 1812, 1809, 1813, 1814, 1810, + 1811, 1820, 86, 1815, 1821, 1823, 1819, 1816, 86, 86, - 86, 1820, 86, 86, 86, 1819, 86, 1825, 86, 86, - 1821, 86, 86, 1823, 86, 1827, 1828, 1831, 1833, 86, - 86, 1832, 1830, 1834, 86, 1836, 1835, 1829, 86, 1841, - 86, 1840, 1842, 86, 1837, 86, 1843, 1839, 1844, 1838, - 86, 1846, 86, 1845, 86, 86, 86, 86, 1847, 1850, - 1849, 86, 1851, 86, 86, 86, 86, 86, 1860, 86, - 86, 1859, 86, 1848, 1854, 1856, 1858, 86, 1857, 1853, - 1852, 86, 86, 1855, 86, 1862, 1866, 86, 86, 86, - 1861, 1867, 86, 1868, 86, 86, 1864, 86, 1872, 1863, - 1865, 1869, 86, 86, 86, 1876, 86, 86, 1875, 86, + 1825, 86, 1828, 1824, 86, 1822, 1829, 86, 86, 86, + 86, 1833, 86, 1827, 1831, 86, 86, 86, 1826, 86, + 1832, 86, 86, 86, 1830, 86, 86, 1834, 1838, 1835, + 1840, 1841, 86, 86, 1842, 1837, 1839, 1848, 86, 86, + 1836, 1843, 1847, 1849, 86, 1850, 86, 1844, 1853, 86, + 86, 1846, 1845, 1852, 86, 86, 86, 86, 86, 86, + 1857, 1856, 86, 1858, 1851, 86, 86, 1854, 86, 1866, + 86, 1861, 1867, 86, 1855, 86, 86, 1863, 1859, 1865, + 1864, 1860, 86, 86, 86, 1862, 86, 1873, 86, 86, + 86, 86, 1874, 86, 1875, 1869, 1868, 86, 1871, 86, - 1873, 1874, 1870, 1871, 1880, 1878, 86, 86, 1879, 1877, - 86, 1884, 86, 86, 86, 1881, 1885, 86, 86, 1889, - 1890, 1892, 86, 1893, 1886, 1883, 86, 1882, 1887, 86, - 86, 86, 1896, 86, 1888, 1894, 1891, 86, 86, 1897, - 86, 1900, 86, 86, 1904, 1895, 1902, 86, 86, 86, - 86, 86, 1903, 86, 1899, 1901, 1905, 1898, 86, 86, - 86, 1908, 86, 86, 86, 1915, 86, 1909, 1906, 1911, - 1907, 86, 1910, 1917, 1918, 1912, 86, 1913, 1914, 86, - 86, 1920, 86, 86, 1919, 86, 86, 1916, 1924, 86, - 86, 1926, 86, 86, 1930, 86, 1921, 86, 86, 1925, + 1876, 1870, 1872, 86, 1879, 86, 86, 1883, 1881, 1878, + 1882, 86, 86, 1880, 86, 1877, 86, 1887, 86, 1891, + 1885, 1884, 86, 1886, 1892, 86, 86, 86, 86, 1897, + 86, 86, 1888, 1896, 3438, 86, 1890, 1889, 1899, 86, + 1893, 1900, 1894, 86, 1895, 86, 1903, 86, 1898, 86, + 1901, 1905, 86, 86, 1907, 1904, 86, 1902, 1911, 86, + 86, 86, 1909, 86, 86, 86, 86, 1906, 1910, 1908, + 86, 1912, 86, 86, 1915, 1916, 86, 86, 86, 86, + 1913, 1917, 1923, 86, 1914, 1919, 1918, 86, 1925, 1926, + 1920, 86, 1921, 1922, 86, 86, 1928, 86, 86, 86, - 86, 1922, 86, 86, 1923, 1933, 1932, 86, 1928, 86, - 86, 1929, 1927, 86, 1934, 1935, 1936, 86, 1931, 170, - 1939, 86, 1938, 1942, 86, 86, 1937, 86, 86, 1946, - 86, 1940, 86, 86, 86, 86, 1941, 86, 86, 1944, - 1948, 86, 1953, 3419, 1943, 86, 1947, 1945, 86, 1949, - 1950, 86, 86, 1951, 1958, 1952, 86, 1954, 1956, 1955, - 1957, 86, 1959, 86, 86, 1961, 1962, 1963, 86, 1960, - 86, 86, 86, 1965, 86, 86, 86, 1966, 86, 86, - 86, 86, 1964, 86, 86, 1971, 1972, 86, 86, 1976, - 86, 86, 1973, 86, 3419, 1967, 1969, 1970, 1968, 1974, + 1927, 1932, 86, 1934, 1924, 86, 86, 86, 86, 86, + 86, 1929, 1938, 86, 86, 86, 1930, 86, 1931, 1933, + 1941, 1940, 86, 1936, 86, 86, 1937, 1935, 86, 1942, + 1939, 1944, 86, 1943, 1946, 1947, 170, 1945, 86, 1950, + 86, 86, 86, 86, 1954, 86, 86, 86, 1948, 86, + 86, 86, 86, 1949, 1952, 86, 1956, 86, 1957, 1961, + 1951, 1955, 1953, 1958, 86, 86, 3438, 1962, 86, 1959, + 1964, 1966, 1960, 1965, 86, 1963, 1967, 86, 86, 86, + 1970, 1971, 86, 1968, 86, 86, 86, 1973, 1969, 86, + 86, 86, 1974, 86, 86, 86, 1972, 86, 86, 86, - 1977, 86, 86, 1975, 1984, 86, 1982, 1980, 1983, 1985, - 1979, 86, 86, 1978, 1981, 86, 86, 86, 86, 86, - 86, 1991, 86, 1994, 1995, 86, 1996, 86, 86, 1998, - 86, 1987, 1986, 1989, 1992, 1988, 1993, 86, 1990, 86, - 1999, 86, 2002, 86, 2004, 86, 2006, 86, 1997, 2003, - 86, 86, 86, 2008, 2005, 86, 86, 86, 2000, 86, - 2010, 86, 2001, 2011, 86, 2007, 2013, 2014, 86, 86, - 86, 86, 86, 86, 2018, 2020, 2012, 2017, 86, 86, - 2009, 86, 86, 2019, 2015, 86, 2028, 86, 3419, 2026, - 86, 2016, 86, 86, 2021, 2022, 2023, 2030, 86, 2025, + 1979, 86, 1980, 86, 86, 86, 1984, 1981, 86, 3438, + 1975, 1977, 1978, 1976, 1983, 1982, 86, 1985, 86, 86, + 1991, 1988, 86, 1990, 1987, 1992, 86, 1993, 1989, 86, + 1986, 86, 86, 86, 86, 86, 1999, 86, 2002, 86, + 1994, 1995, 2003, 86, 2004, 86, 86, 1997, 1996, 2000, + 86, 2001, 1998, 2006, 86, 86, 2007, 2010, 86, 2005, + 86, 86, 2012, 86, 2011, 86, 2013, 2008, 86, 2014, + 2016, 2009, 2019, 86, 86, 86, 86, 2018, 86, 2015, + 86, 2022, 86, 86, 86, 2021, 86, 86, 2026, 86, + 2017, 2025, 86, 86, 2027, 2028, 86, 86, 2020, 2023, - 2034, 2024, 2031, 86, 2032, 2027, 86, 2029, 2033, 86, - 2037, 86, 86, 86, 2041, 86, 86, 2035, 86, 86, - 2038, 86, 2043, 86, 2036, 86, 2046, 2047, 86, 86, - 2049, 86, 2039, 86, 2040, 86, 2054, 86, 86, 2044, - 86, 86, 86, 86, 2042, 2045, 2051, 2052, 86, 2048, - 2056, 86, 86, 86, 86, 2062, 2053, 2055, 2050, 2059, - 86, 2057, 2060, 2058, 86, 86, 2066, 86, 86, 2061, - 2065, 2069, 86, 86, 86, 2068, 2070, 86, 2072, 86, - 2064, 2073, 86, 86, 86, 86, 2063, 2067, 2074, 86, - 86, 86, 2071, 86, 2075, 86, 2079, 86, 2082, 2076, + 86, 86, 2036, 86, 2024, 2029, 2030, 2031, 86, 2038, + 2034, 86, 2032, 86, 2039, 86, 2033, 2035, 2041, 86, + 2037, 2042, 86, 2045, 2043, 2040, 86, 86, 86, 86, + 2049, 86, 86, 86, 2051, 2046, 86, 2044, 86, 86, + 2054, 2055, 86, 86, 2057, 86, 86, 2047, 86, 2048, + 86, 86, 86, 2064, 86, 2062, 2052, 2059, 2050, 2060, + 2053, 86, 86, 2056, 86, 86, 86, 86, 2063, 86, + 2070, 2058, 2061, 2067, 2068, 86, 86, 86, 2074, 2066, + 86, 86, 2073, 2065, 86, 2077, 86, 86, 2076, 2078, + 2080, 86, 2072, 2069, 2081, 86, 86, 86, 86, 86, - 2083, 2084, 2078, 86, 86, 86, 86, 86, 2077, 2080, - 86, 86, 86, 86, 2087, 2092, 86, 2091, 86, 2086, - 86, 2081, 86, 2085, 3419, 2089, 2096, 86, 2097, 86, - 2088, 86, 2093, 2090, 86, 2094, 86, 2095, 2099, 86, - 2098, 2100, 86, 2101, 2104, 86, 86, 2102, 86, 86, - 2107, 86, 2103, 86, 2108, 2111, 86, 86, 86, 2115, - 86, 86, 2106, 2113, 86, 2116, 86, 2105, 86, 2114, - 2117, 2109, 2112, 2110, 86, 86, 86, 2118, 2122, 86, - 2123, 86, 2124, 2126, 3419, 2119, 2127, 2125, 86, 86, - 2120, 86, 86, 86, 2131, 2121, 2129, 86, 86, 86, + 2075, 2071, 2082, 86, 86, 2079, 86, 2083, 86, 2087, + 86, 86, 2090, 86, 2091, 2092, 2086, 86, 86, 2084, + 86, 86, 2085, 86, 86, 86, 2088, 2095, 2100, 86, + 2099, 86, 2094, 2093, 86, 86, 2089, 86, 2097, 86, + 2105, 2104, 86, 2096, 86, 86, 2098, 86, 2106, 2102, + 2101, 2108, 86, 2107, 2103, 86, 2110, 2112, 86, 2109, + 86, 2111, 86, 86, 86, 86, 2119, 86, 2113, 2116, + 86, 86, 86, 86, 2114, 86, 2122, 2124, 86, 86, + 2125, 2115, 2121, 2117, 2127, 2118, 2123, 86, 2120, 86, + 86, 2126, 2131, 86, 2132, 86, 2133, 2135, 2136, 86, - 86, 86, 2128, 2133, 86, 2130, 2136, 86, 2138, 2132, - 2134, 86, 86, 170, 86, 86, 86, 86, 2141, 86, - 86, 2147, 86, 2139, 2145, 2146, 2135, 2142, 2143, 2137, - 86, 2140, 2148, 86, 2149, 86, 2144, 2151, 86, 86, - 86, 86, 86, 86, 2152, 2153, 86, 2154, 2155, 86, - 2150, 2156, 2157, 86, 2158, 86, 2159, 86, 86, 2163, - 86, 86, 86, 2162, 86, 2160, 86, 2165, 86, 2161, - 2164, 2166, 86, 2168, 86, 2167, 86, 2170, 86, 86, - 86, 2175, 86, 2173, 2169, 2174, 86, 86, 86, 86, - 86, 2180, 86, 86, 2171, 2177, 86, 2172, 86, 2185, + 2128, 2134, 86, 86, 86, 2129, 86, 86, 2140, 86, + 2130, 2138, 86, 86, 86, 86, 2142, 2145, 86, 2139, + 2147, 2141, 86, 86, 86, 2137, 86, 2143, 170, 86, + 86, 86, 86, 2150, 86, 2156, 86, 2154, 2144, 2155, + 2146, 2148, 2151, 2152, 2149, 2157, 86, 86, 2153, 2158, + 86, 2160, 86, 86, 86, 86, 86, 86, 2161, 2162, + 86, 2163, 2164, 86, 86, 2165, 2166, 2159, 2167, 86, + 2168, 86, 86, 2172, 86, 86, 2169, 2171, 86, 86, + 86, 86, 2176, 2170, 2173, 2174, 2175, 2177, 86, 86, + 86, 86, 86, 86, 86, 86, 2182, 2184, 2178, 2179, - 2176, 86, 2181, 2179, 86, 2183, 2178, 86, 86, 2189, - 2182, 86, 86, 2184, 2191, 86, 2186, 86, 86, 86, - 2187, 2192, 2188, 86, 2190, 2197, 86, 86, 2193, 86, - 2199, 86, 86, 2194, 2195, 2202, 86, 2196, 2200, 2201, - 86, 2203, 86, 2198, 86, 2204, 86, 2207, 86, 86, - 86, 86, 2206, 86, 86, 2205, 2208, 86, 2211, 2212, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 2209, 2210, 2214, 2215, 2220, 2213, 2217, 2216, 2225, 86, - 2219, 2224, 86, 86, 86, 86, 2222, 2221, 2228, 2218, - 2223, 86, 86, 86, 86, 2232, 2229, 2231, 86, 86, + 2183, 86, 86, 86, 86, 86, 2189, 2180, 86, 86, + 2181, 2185, 2187, 2186, 86, 2188, 86, 2190, 2192, 86, + 2191, 86, 2194, 2195, 86, 86, 2200, 86, 2193, 2198, + 86, 2196, 86, 2201, 86, 86, 86, 2197, 2199, 2206, + 86, 86, 2208, 86, 86, 86, 2209, 86, 2202, 2205, + 2203, 2204, 2210, 86, 86, 2211, 86, 2207, 2212, 86, + 86, 2213, 2215, 2216, 86, 86, 2214, 86, 2220, 86, + 86, 2217, 86, 86, 86, 86, 2218, 86, 86, 2221, + 86, 86, 86, 86, 86, 2219, 2223, 2224, 2225, 2226, + 2229, 2234, 86, 2222, 86, 2228, 86, 86, 86, 86, - 2226, 86, 86, 2227, 2230, 2235, 2234, 86, 2236, 86, - 86, 86, 2233, 2240, 86, 86, 2238, 2242, 2245, 86, - 2237, 2239, 86, 86, 2243, 86, 86, 86, 2244, 2241, - 2247, 86, 2249, 2248, 86, 86, 2253, 86, 86, 2250, - 86, 2246, 86, 2254, 2251, 86, 86, 86, 2257, 86, - 2255, 86, 2256, 2258, 86, 2252, 86, 2259, 2262, 86, - 2261, 86, 2263, 2266, 2260, 86, 2264, 2265, 86, 86, - 2267, 86, 86, 2268, 2269, 86, 2270, 2272, 86, 86, - 2274, 86, 2275, 86, 2271, 86, 86, 2273, 86, 86, - 2277, 2281, 2276, 2282, 86, 3419, 2283, 2279, 86, 86, + 2431, 2231, 2237, 2230, 2227, 2232, 2233, 86, 86, 86, + 86, 2241, 2238, 2240, 2235, 86, 86, 2236, 2239, 86, + 2243, 86, 86, 2244, 86, 86, 86, 2249, 2242, 2251, + 2245, 2247, 86, 86, 2252, 86, 2248, 2246, 2254, 86, + 86, 86, 86, 86, 2257, 2250, 2256, 2253, 2258, 86, + 86, 86, 2262, 86, 2259, 86, 86, 2266, 86, 86, + 2263, 86, 2267, 86, 86, 2265, 2255, 2268, 2260, 2264, + 86, 2261, 2271, 86, 86, 2272, 86, 2275, 2270, 86, + 2269, 86, 86, 86, 2276, 2273, 86, 3438, 2277, 86, + 2279, 2281, 86, 86, 2283, 86, 2274, 86, 2280, 2278, - 2280, 2284, 86, 86, 2278, 86, 2285, 2286, 86, 86, - 2289, 2287, 86, 2290, 86, 2288, 2294, 86, 86, 86, - 86, 86, 2291, 2293, 86, 86, 86, 86, 86, 3419, - 2300, 86, 2292, 2301, 2298, 86, 2295, 2296, 86, 2302, - 2297, 2299, 86, 2304, 2306, 86, 86, 2305, 2303, 86, - 86, 2307, 2309, 86, 2310, 2315, 86, 86, 86, 86, - 2317, 86, 86, 86, 2308, 2311, 2314, 2312, 2316, 86, - 86, 170, 86, 2319, 2323, 2320, 2321, 2318, 2313, 2325, - 86, 2322, 2327, 2328, 2326, 86, 86, 86, 86, 86, - 2329, 86, 2331, 2324, 2330, 2332, 86, 86, 2333, 86, + 86, 2282, 86, 2284, 2285, 2286, 86, 86, 2290, 86, + 86, 86, 2292, 86, 86, 2287, 2288, 2293, 86, 2289, + 2295, 86, 2294, 86, 86, 2296, 2297, 86, 2298, 2299, + 2291, 86, 2303, 86, 2300, 86, 86, 86, 86, 86, + 2302, 86, 86, 86, 86, 86, 86, 2301, 2310, 86, + 86, 2316, 2308, 2304, 2305, 2306, 2309, 2311, 2312, 86, + 86, 86, 2307, 86, 2313, 2314, 2315, 86, 2322, 2317, + 86, 86, 2320, 2319, 2321, 2325, 86, 86, 2327, 86, + 2324, 86, 2318, 86, 86, 86, 2326, 2329, 86, 2330, + 2333, 170, 86, 2337, 86, 2323, 86, 2335, 2331, 86, - 2336, 2337, 86, 86, 2338, 86, 86, 2341, 86, 2343, - 2342, 2339, 2334, 86, 2344, 86, 86, 86, 86, 2346, - 86, 2345, 2347, 2335, 2340, 86, 86, 86, 86, 86, - 2349, 86, 86, 2352, 86, 86, 86, 2348, 86, 2355, - 2350, 86, 86, 2359, 2354, 2361, 86, 86, 86, 86, - 2356, 2357, 2351, 2362, 2353, 86, 2358, 2363, 86, 86, - 2364, 86, 86, 2360, 86, 86, 2366, 2369, 2372, 86, - 2367, 86, 86, 2365, 2370, 86, 86, 86, 2368, 2373, - 86, 86, 2371, 86, 2374, 3419, 86, 86, 86, 86, - 86, 2375, 2386, 2380, 2385, 86, 2378, 86, 2376, 2383, + 2328, 86, 2336, 86, 2338, 86, 2349, 2332, 2339, 2340, + 86, 86, 2341, 2334, 2342, 86, 86, 2343, 2347, 86, + 2346, 86, 2348, 86, 2351, 86, 2353, 86, 2354, 86, + 86, 2344, 2352, 86, 2356, 86, 86, 86, 2355, 2357, + 86, 2350, 2345, 86, 86, 86, 86, 2359, 86, 86, + 2362, 86, 86, 86, 2365, 86, 2358, 2360, 86, 86, + 2369, 2364, 2371, 86, 86, 86, 86, 2367, 2372, 2361, + 2366, 2363, 86, 2368, 2373, 86, 86, 2374, 86, 86, + 2370, 86, 86, 2379, 2376, 2382, 86, 2377, 86, 86, + 2383, 2375, 2380, 86, 86, 2378, 86, 86, 86, 2381, - 2377, 2379, 2382, 2384, 2381, 2387, 86, 86, 86, 2391, - 2390, 2389, 2388, 86, 86, 2393, 2394, 86, 86, 86, - 2395, 2396, 86, 86, 86, 2399, 2392, 86, 86, 2402, - 86, 2403, 86, 86, 2397, 86, 2398, 2400, 2404, 86, - 2401, 86, 2409, 86, 2405, 2410, 86, 2406, 86, 2412, - 86, 86, 86, 2408, 86, 2407, 2414, 86, 86, 2416, - 2417, 86, 2418, 86, 86, 86, 2419, 2411, 86, 2413, - 86, 86, 86, 2415, 2420, 86, 2424, 2425, 86, 2427, - 86, 2421, 2422, 86, 86, 86, 2430, 86, 2431, 2423, - 2429, 2426, 86, 2428, 2433, 86, 86, 86, 2436, 86, + 86, 86, 86, 86, 86, 2396, 86, 2384, 2385, 2390, + 2395, 2397, 86, 86, 2393, 2388, 2386, 2392, 2387, 2389, + 2394, 2391, 86, 86, 86, 86, 2399, 2398, 86, 86, + 2403, 2404, 86, 86, 86, 2405, 2451, 2400, 86, 2401, + 86, 2402, 2406, 86, 86, 2409, 86, 2412, 86, 2407, + 86, 2408, 2413, 86, 86, 2410, 86, 86, 2411, 2414, + 2416, 2415, 2419, 86, 2420, 86, 86, 2422, 86, 2418, + 2417, 86, 2424, 86, 86, 86, 2427, 86, 86, 2426, + 2428, 86, 86, 86, 86, 2421, 2435, 86, 86, 2423, + 2425, 2430, 2429, 2434, 86, 2437, 86, 2432, 86, 86, - 2439, 86, 86, 2432, 2434, 86, 86, 2435, 86, 86, - 2444, 86, 2437, 2443, 86, 86, 86, 86, 2438, 2446, - 86, 2442, 2440, 2449, 86, 86, 86, 2445, 2441, 86, - 2447, 2448, 2451, 86, 2452, 86, 2456, 2450, 86, 86, - 2458, 86, 86, 2462, 2453, 2459, 86, 2454, 2457, 86, - 86, 2464, 86, 2463, 86, 2465, 86, 86, 86, 2455, - 2460, 2469, 2461, 86, 86, 86, 2474, 2467, 2471, 2472, - 86, 86, 86, 2477, 86, 86, 86, 2466, 2468, 86, - 2473, 2478, 86, 86, 2470, 86, 2476, 2479, 2481, 86, - 86, 2475, 2482, 86, 2483, 86, 86, 2487, 170, 2480, + 86, 86, 86, 2433, 2440, 2439, 86, 2441, 2443, 86, + 86, 86, 2446, 2436, 86, 86, 2438, 2445, 86, 2444, + 2449, 86, 2442, 86, 86, 86, 2447, 86, 2453, 2454, + 86, 86, 2456, 2448, 86, 2450, 86, 2455, 2452, 86, + 2457, 2459, 86, 2461, 86, 86, 2458, 86, 86, 2466, + 86, 86, 86, 2462, 2460, 86, 2474, 2468, 86, 2467, + 2472, 2469, 2463, 2464, 2473, 86, 86, 86, 86, 86, + 2475, 86, 86, 2465, 86, 86, 2470, 2479, 2471, 2481, + 2482, 2477, 2484, 86, 86, 2485, 86, 2488, 86, 86, + 2478, 86, 2476, 86, 2489, 86, 86, 2480, 2483, 86, - 2488, 2489, 2484, 2499, 2485, 2486, 86, 86, 86, 86, - 2491, 2494, 2490, 86, 2493, 86, 2495, 86, 2492, 86, - 86, 2498, 86, 86, 2496, 86, 2504, 86, 2497, 86, - 86, 86, 86, 86, 86, 86, 2511, 86, 2506, 2502, - 86, 2503, 2500, 2507, 2501, 2505, 86, 2510, 2508, 2509, - 3419, 2512, 2514, 2515, 86, 86, 2516, 2513, 2517, 86, - 86, 86, 2520, 2518, 2521, 86, 2519, 86, 86, 86, - 86, 2523, 86, 86, 2522, 86, 2525, 86, 86, 2529, - 2530, 2524, 86, 2527, 86, 2526, 86, 2532, 86, 86, - 86, 86, 2533, 2534, 2535, 86, 2528, 86, 2531, 86, + 2490, 2487, 86, 86, 86, 2486, 2493, 86, 86, 86, + 86, 2494, 2492, 2495, 2499, 86, 2496, 2497, 2500, 2501, + 86, 2491, 86, 2498, 86, 86, 2504, 2505, 86, 2506, + 2502, 2503, 86, 86, 86, 2509, 86, 2507, 170, 86, + 86, 2508, 86, 2510, 86, 2515, 86, 86, 86, 2517, + 86, 86, 86, 2526, 86, 2513, 2511, 2516, 2512, 2518, + 2514, 86, 86, 2521, 2519, 2520, 86, 2523, 3438, 2522, + 86, 2527, 2524, 2525, 2528, 86, 86, 86, 2531, 2529, + 2532, 86, 2530, 86, 86, 86, 86, 2534, 86, 86, + 2533, 86, 2536, 86, 86, 2540, 2541, 2535, 86, 2538, - 2537, 86, 2536, 2541, 86, 2540, 86, 86, 2538, 2539, - 86, 86, 2543, 86, 86, 86, 86, 2550, 2547, 2542, - 86, 2549, 86, 86, 86, 86, 2551, 2546, 86, 86, - 2544, 2545, 86, 2555, 86, 2548, 86, 86, 2565, 2560, - 2552, 2559, 86, 2553, 2554, 86, 2557, 86, 2558, 86, - 2556, 2562, 86, 86, 86, 2561, 2564, 2566, 86, 2568, - 86, 2563, 2570, 86, 2569, 2572, 86, 86, 86, 2574, - 86, 86, 86, 86, 86, 2571, 2573, 86, 2578, 2567, - 86, 86, 86, 86, 2583, 86, 2576, 2581, 2582, 2575, - 2577, 2584, 86, 2585, 86, 2586, 86, 2587, 86, 86, + 86, 2537, 86, 2543, 86, 86, 86, 86, 2544, 2545, + 2546, 86, 2539, 86, 2542, 86, 2548, 86, 2547, 2552, + 86, 2551, 86, 86, 2549, 2550, 86, 86, 2554, 86, + 86, 86, 86, 2561, 2558, 2553, 86, 2560, 86, 86, + 86, 86, 2562, 2557, 86, 86, 2555, 2556, 86, 2566, + 86, 2559, 86, 86, 2576, 2571, 2563, 2570, 86, 2564, + 2565, 86, 2568, 86, 2569, 86, 2567, 2573, 86, 86, + 86, 2572, 2575, 2577, 86, 2579, 86, 2574, 2581, 86, + 2580, 2583, 86, 86, 86, 2585, 86, 86, 86, 86, + 86, 2582, 2584, 86, 2589, 2578, 86, 86, 86, 86, - 86, 2580, 86, 2579, 86, 2589, 86, 2591, 86, 2594, - 86, 86, 86, 2596, 2592, 2595, 86, 2590, 2588, 86, - 2593, 2599, 86, 86, 86, 86, 2600, 2598, 86, 2597, - 86, 2603, 2604, 86, 86, 2601, 86, 2607, 86, 2605, - 2609, 2608, 2602, 2606, 86, 86, 86, 86, 86, 86, - 86, 2613, 2617, 86, 86, 2616, 2618, 86, 2610, 2611, - 2612, 2619, 86, 2620, 86, 86, 2621, 2614, 86, 2615, - 86, 2624, 86, 2623, 86, 2625, 86, 86, 86, 86, - 2631, 86, 86, 2622, 2626, 2633, 86, 86, 2627, 2634, - 86, 86, 86, 86, 86, 2630, 86, 2628, 2635, 2629, + 2594, 86, 2587, 2592, 2593, 2586, 2588, 2595, 86, 2596, + 86, 2597, 86, 2598, 86, 86, 86, 2591, 86, 2590, + 86, 2600, 86, 2602, 86, 2605, 86, 86, 86, 2607, + 2603, 2606, 86, 2601, 2599, 86, 2604, 2610, 86, 86, + 86, 86, 2611, 2609, 86, 2608, 86, 2614, 2615, 86, + 86, 2612, 86, 2618, 86, 2616, 2620, 2619, 2613, 2617, + 86, 86, 86, 86, 86, 86, 86, 2624, 2628, 86, + 86, 2627, 2629, 86, 2621, 2622, 2623, 2630, 86, 2631, + 86, 86, 2632, 2625, 86, 2626, 86, 2635, 86, 2634, + 86, 2636, 86, 86, 86, 86, 86, 86, 86, 2633, - 2637, 2632, 86, 2636, 2638, 86, 86, 2640, 2643, 86, - 86, 86, 86, 86, 2639, 2644, 2641, 86, 86, 86, - 86, 2651, 86, 170, 86, 2642, 2647, 86, 2653, 2654, - 86, 2646, 2649, 86, 2650, 2652, 2645, 2655, 86, 2656, - 86, 2648, 86, 2660, 86, 86, 2664, 86, 2657, 2662, - 2663, 2665, 86, 86, 2666, 2658, 2661, 86, 2667, 86, - 2668, 2659, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 2670, 2679, 86, 86, 2677, 86, - 2669, 2672, 86, 2671, 3419, 2673, 2674, 86, 2683, 2675, - 2676, 2678, 2680, 2685, 2681, 2682, 2684, 86, 86, 2688, + 2637, 2643, 86, 2645, 86, 2639, 2646, 86, 86, 2647, + 86, 86, 2638, 2642, 2640, 2644, 2641, 2649, 86, 86, + 2648, 86, 86, 2650, 2652, 2655, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 2663, 2656, 86, 2651, 170, + 86, 2653, 2654, 2659, 86, 2665, 2661, 86, 86, 2658, + 86, 2664, 2667, 86, 2657, 2660, 2662, 2666, 2669, 86, + 86, 86, 2668, 2672, 86, 86, 2674, 2676, 86, 2675, + 2677, 86, 2670, 2673, 86, 2678, 2671, 86, 2679, 86, + 2680, 86, 86, 2681, 86, 86, 86, 86, 86, 86, + 86, 86, 2682, 2691, 86, 86, 86, 86, 2689, 2684, - 86, 86, 2690, 86, 2686, 86, 86, 2687, 86, 86, - 2689, 86, 86, 86, 86, 2693, 2699, 86, 2700, 86, - 86, 86, 86, 2691, 2692, 86, 2694, 2695, 2703, 2697, - 2696, 2704, 86, 2698, 2705, 86, 2706, 86, 86, 2702, - 2701, 86, 86, 2707, 86, 86, 86, 3419, 86, 2711, - 2716, 86, 2708, 2714, 86, 2710, 2715, 2709, 86, 86, - 2717, 2718, 86, 86, 86, 2712, 2713, 86, 86, 86, - 86, 86, 2720, 86, 2724, 2725, 86, 86, 2719, 2722, - 2729, 2730, 86, 2721, 86, 86, 2733, 86, 2723, 86, - 86, 2726, 2727, 86, 86, 86, 2728, 2736, 86, 2731, + 3438, 2683, 86, 2695, 2686, 2685, 2696, 86, 2688, 2687, + 2690, 86, 86, 2693, 2692, 2694, 2700, 86, 2698, 86, + 86, 2699, 2702, 86, 86, 2697, 86, 86, 2701, 86, + 86, 86, 86, 2705, 2711, 86, 2712, 86, 2703, 86, + 86, 86, 2704, 86, 2706, 2707, 86, 2709, 2708, 2715, + 2718, 2710, 2716, 86, 2717, 86, 86, 86, 2714, 2713, + 2721, 86, 86, 86, 2719, 86, 86, 2723, 86, 86, + 2727, 2726, 2720, 2728, 86, 2722, 86, 86, 2729, 2730, + 86, 86, 86, 2724, 86, 2725, 2732, 86, 2731, 86, + 86, 86, 2736, 86, 2734, 2737, 86, 2742, 86, 2741, - 2734, 86, 2738, 2732, 86, 2735, 2739, 86, 2740, 2737, - 86, 2744, 86, 86, 86, 86, 2741, 2748, 86, 2747, - 86, 2750, 86, 2746, 2742, 2745, 86, 86, 86, 86, - 2743, 2751, 86, 2756, 86, 86, 2752, 86, 2757, 2749, - 86, 2754, 2759, 86, 2753, 86, 86, 86, 2764, 86, - 86, 86, 2755, 2760, 3419, 2762, 2763, 2758, 2761, 2767, - 86, 86, 86, 86, 86, 86, 2766, 2768, 2769, 2771, - 2765, 86, 86, 2772, 86, 2770, 86, 86, 86, 86, - 86, 2774, 2775, 2777, 2778, 2780, 86, 2781, 86, 86, - 2773, 2776, 2779, 86, 2782, 2784, 170, 86, 86, 2783, + 2733, 86, 86, 86, 2735, 2745, 86, 86, 86, 2738, + 2739, 86, 2748, 2740, 2746, 86, 2743, 2751, 86, 2750, + 2744, 86, 2747, 86, 86, 86, 2749, 2756, 86, 86, + 86, 86, 2760, 86, 2752, 2759, 86, 86, 2753, 2758, + 86, 2757, 2762, 86, 2754, 2755, 86, 86, 86, 2764, + 86, 2763, 86, 2765, 86, 2761, 2768, 86, 3438, 2766, + 86, 2769, 2771, 86, 86, 2772, 86, 2773, 2767, 86, + 2777, 86, 2770, 2774, 86, 2775, 86, 86, 2776, 2780, + 86, 86, 2781, 86, 86, 86, 2782, 86, 86, 2784, + 86, 2779, 86, 2785, 2778, 86, 2788, 2783, 86, 2787, - 2785, 86, 2786, 2789, 3419, 86, 86, 2791, 86, 86, - 2790, 86, 86, 2794, 86, 86, 2787, 2793, 2798, 2788, - 2795, 86, 2799, 2792, 2796, 2797, 86, 2800, 86, 86, - 86, 86, 2804, 86, 2801, 2802, 86, 2805, 86, 86, - 86, 2806, 86, 86, 86, 2803, 2811, 2812, 2807, 2813, - 2809, 86, 86, 86, 86, 2808, 86, 86, 86, 2817, - 86, 2815, 2816, 2814, 2810, 2819, 86, 86, 86, 86, - 2818, 2820, 86, 86, 86, 2825, 86, 86, 2823, 86, - 3419, 2822, 2824, 2828, 86, 2821, 2826, 86, 86, 86, - 2827, 2833, 86, 2829, 86, 2830, 86, 86, 86, 2831, + 2790, 86, 86, 2791, 2793, 86, 2786, 2789, 2794, 86, + 86, 2797, 170, 86, 86, 2795, 2792, 86, 86, 2799, + 2798, 2796, 2802, 86, 86, 86, 2804, 86, 86, 2803, + 2807, 86, 2806, 2808, 86, 2800, 2801, 86, 2805, 2810, + 86, 86, 2812, 86, 2811, 86, 86, 2813, 86, 86, + 2809, 2814, 2817, 86, 2815, 86, 86, 2816, 86, 2818, + 2821, 2819, 2820, 86, 86, 86, 2824, 2825, 86, 86, + 2826, 2822, 86, 86, 86, 86, 2828, 86, 2830, 2829, + 2827, 86, 86, 86, 86, 2823, 2832, 2833, 86, 2831, + 86, 86, 86, 2838, 86, 86, 2841, 2835, 86, 2836, - 86, 2834, 86, 2832, 86, 2836, 86, 2835, 2838, 86, - 2842, 3419, 2837, 2843, 86, 2840, 86, 2839, 2845, 2846, - 2848, 3419, 2841, 86, 86, 86, 86, 2849, 86, 2844, - 86, 2850, 86, 86, 2847, 2851, 2854, 86, 86, 86, - 2855, 2852, 86, 2856, 86, 86, 2853, 86, 2859, 2861, - 86, 86, 2857, 2862, 86, 2863, 86, 86, 86, 2858, - 86, 2864, 86, 2860, 86, 2865, 2866, 86, 2870, 2868, - 2869, 2867, 86, 2871, 86, 86, 2874, 2875, 86, 2876, - 86, 86, 2873, 86, 2872, 86, 2877, 2879, 86, 86, - 2882, 86, 86, 2883, 2878, 2884, 86, 86, 2886, 86, + 2837, 2834, 86, 2839, 2842, 86, 2840, 86, 2846, 86, + 86, 86, 86, 86, 2843, 2851, 86, 2847, 86, 86, + 86, 2849, 86, 86, 86, 2844, 2845, 2855, 2850, 2858, + 2848, 2856, 86, 2859, 2853, 86, 3438, 2852, 2861, 86, + 2854, 86, 2860, 86, 86, 2862, 86, 2857, 2864, 2863, + 86, 86, 2867, 86, 86, 86, 2868, 86, 86, 2865, + 86, 2869, 86, 2872, 2866, 2874, 86, 86, 2870, 3438, + 2871, 2875, 86, 2876, 86, 86, 86, 86, 2873, 2877, + 86, 2878, 2879, 86, 86, 2881, 2883, 2880, 86, 2882, + 86, 2884, 86, 86, 2887, 86, 2885, 2888, 86, 2889, - 86, 86, 86, 2880, 2890, 2891, 86, 86, 2893, 2881, - 86, 2892, 2885, 2887, 86, 86, 2889, 2895, 86, 2888, - 2894, 86, 2896, 86, 86, 86, 2901, 2900, 86, 86, - 2904, 86, 86, 2903, 86, 86, 86, 86, 86, 2905, - 2907, 2897, 86, 2906, 2898, 2899, 86, 86, 2910, 2909, - 86, 86, 86, 2902, 86, 2911, 2912, 2913, 2917, 86, - 2914, 2908, 86, 86, 86, 2916, 2919, 86, 2918, 86, - 2915, 86, 2924, 3419, 2920, 2923, 2921, 2925, 86, 2926, - 2929, 86, 86, 2922, 2927, 86, 86, 2930, 2928, 86, - 2931, 86, 2932, 86, 2933, 86, 86, 2937, 2934, 86, + 86, 86, 86, 2891, 2890, 2893, 86, 86, 2886, 2896, + 86, 86, 2897, 2894, 86, 2892, 2898, 86, 2900, 86, + 86, 86, 86, 86, 2904, 2905, 86, 2895, 86, 2899, + 86, 2907, 2906, 2901, 86, 86, 2903, 86, 2909, 2902, + 2908, 86, 86, 2910, 86, 2915, 2911, 86, 2914, 86, + 86, 86, 86, 2917, 2912, 2918, 86, 2919, 2920, 86, + 86, 2913, 2921, 86, 86, 2924, 2923, 86, 86, 86, + 86, 86, 2916, 2927, 2931, 86, 86, 86, 2938, 86, + 86, 2930, 86, 2939, 86, 2922, 2925, 2926, 2928, 86, + 2932, 2929, 2933, 2935, 86, 86, 2936, 2977, 2940, 2942, - 2935, 86, 86, 86, 2938, 86, 86, 2940, 2944, 86, - 2945, 86, 2941, 86, 86, 86, 2936, 2946, 2948, 86, - 2939, 86, 2949, 2950, 86, 2942, 2943, 86, 2952, 86, - 2953, 2947, 2951, 86, 86, 86, 86, 2958, 86, 86, - 86, 86, 2954, 2955, 2956, 2959, 86, 86, 2960, 86, - 2964, 86, 2970, 86, 2957, 2965, 86, 2962, 2967, 2961, - 86, 86, 2963, 86, 2966, 2968, 2971, 86, 2969, 86, - 86, 2975, 86, 86, 2972, 86, 86, 86, 86, 2981, - 86, 86, 2976, 3419, 86, 86, 2979, 2977, 2974, 2984, - 86, 86, 2982, 86, 2973, 2985, 86, 2986, 2980, 86, + 2934, 86, 2937, 2941, 86, 2943, 86, 86, 2944, 86, + 2945, 86, 2946, 86, 2947, 86, 86, 2948, 86, 86, + 2949, 2951, 86, 2952, 86, 86, 86, 2954, 2958, 86, + 2959, 86, 86, 2955, 86, 2960, 2950, 86, 2953, 2962, + 86, 2964, 86, 86, 2963, 2956, 2957, 86, 2965, 2966, + 86, 86, 2961, 86, 86, 86, 2967, 2972, 86, 86, + 2968, 86, 2969, 2970, 86, 2973, 86, 86, 2974, 2978, + 86, 86, 86, 2971, 2979, 86, 2982, 2976, 86, 2981, + 2980, 86, 86, 2975, 2984, 86, 2983, 2985, 86, 2989, + 86, 86, 2986, 86, 86, 86, 2987, 86, 86, 86, - 2987, 2978, 2983, 86, 2988, 86, 2989, 86, 2991, 2993, - 86, 2992, 2994, 86, 2995, 86, 86, 2990, 86, 3003, - 86, 86, 3000, 86, 2998, 2996, 2999, 86, 86, 86, - 86, 86, 3001, 86, 3002, 86, 86, 3009, 2997, 86, - 3007, 3004, 3005, 86, 3011, 86, 86, 86, 86, 86, - 3012, 3008, 3006, 3013, 3014, 86, 3015, 86, 3016, 86, - 86, 3010, 3017, 3020, 86, 86, 86, 86, 86, 86, - 3023, 86, 3018, 3021, 86, 86, 3024, 86, 3022, 3019, - 3028, 86, 3027, 86, 3025, 86, 3029, 86, 3026, 3031, - 3030, 3033, 86, 3035, 86, 3036, 86, 3038, 86, 86, + 2988, 2996, 2990, 2991, 2993, 86, 2994, 86, 86, 86, + 2997, 86, 3001, 2999, 3000, 2995, 86, 86, 86, 2992, + 86, 86, 3003, 86, 3006, 3002, 2998, 3007, 3008, 86, + 3011, 3004, 3009, 86, 3005, 3010, 86, 86, 86, 86, + 3015, 86, 86, 3014, 86, 86, 86, 3016, 86, 3017, + 3018, 86, 86, 86, 3026, 86, 86, 3012, 3013, 3019, + 3020, 3022, 3024, 86, 86, 86, 3021, 3027, 86, 3028, + 3023, 86, 86, 3030, 86, 86, 3029, 86, 3025, 3035, + 86, 86, 86, 86, 3031, 86, 86, 3038, 86, 3032, + 3033, 86, 86, 86, 3036, 3037, 3042, 3034, 3043, 86, - 86, 86, 3034, 3032, 86, 86, 3041, 86, 3037, 86, - 3043, 3044, 86, 3047, 86, 3039, 3040, 86, 3046, 86, - 3042, 86, 3050, 86, 86, 3053, 86, 3045, 86, 3055, - 86, 3058, 86, 86, 86, 86, 3049, 3048, 3051, 3056, - 3059, 86, 3052, 3061, 86, 86, 86, 86, 3054, 86, - 86, 3066, 3057, 3060, 86, 3064, 3063, 86, 3070, 86, - 86, 86, 3068, 3062, 3072, 86, 86, 3065, 3067, 3073, - 86, 3074, 86, 3077, 3069, 3071, 86, 3075, 3080, 86, - 3078, 86, 86, 86, 86, 3079, 3083, 86, 3082, 86, - 86, 3086, 3076, 86, 3081, 3084, 86, 86, 3089, 86, + 3039, 3040, 86, 3044, 86, 3041, 3048, 86, 3045, 86, + 3046, 3050, 86, 3051, 86, 86, 3053, 86, 86, 86, + 86, 86, 86, 3059, 86, 3056, 86, 3058, 3049, 86, + 3047, 86, 86, 3062, 3054, 3055, 3052, 3057, 3061, 86, + 86, 3065, 86, 86, 3068, 86, 3060, 86, 86, 3070, + 86, 3064, 86, 3071, 3063, 86, 3066, 3073, 86, 3074, + 86, 86, 3067, 86, 3077, 86, 86, 3069, 86, 86, + 86, 3083, 3072, 3082, 86, 86, 3075, 3079, 3080, 86, + 3086, 86, 3084, 3076, 3078, 86, 86, 86, 3081, 3088, + 3087, 86, 86, 3438, 3085, 3089, 86, 3090, 3093, 3091, - 86, 86, 86, 3094, 86, 86, 86, 86, 3085, 3419, - 3087, 3088, 3090, 86, 3091, 3093, 3097, 3098, 86, 3099, - 86, 86, 3096, 86, 3095, 86, 3092, 3101, 3100, 86, - 3102, 3103, 86, 3104, 86, 3105, 86, 3108, 86, 86, - 3110, 86, 3106, 86, 3109, 86, 86, 3107, 86, 86, - 86, 86, 3116, 3117, 86, 86, 86, 3111, 86, 3123, - 86, 86, 86, 3124, 86, 86, 86, 3112, 3113, 3114, - 3115, 3122, 3120, 3125, 3119, 3118, 3121, 86, 86, 86, - 3132, 3126, 3128, 3131, 3127, 3129, 86, 3130, 86, 3133, - 86, 86, 3136, 86, 86, 86, 86, 86, 3138, 3135, + 3094, 86, 3096, 86, 86, 3092, 3095, 86, 86, 3097, + 3099, 86, 3098, 86, 86, 3102, 86, 86, 3100, 3105, + 86, 86, 86, 86, 86, 3110, 86, 86, 3106, 86, + 86, 3114, 86, 3101, 3103, 3104, 86, 3109, 86, 3113, + 3107, 3115, 86, 3116, 86, 3112, 3111, 86, 3108, 3118, + 3117, 3119, 86, 3120, 86, 3121, 86, 86, 3124, 86, + 3122, 86, 3126, 86, 86, 86, 3125, 86, 86, 86, + 86, 3132, 3133, 86, 86, 86, 86, 86, 3127, 3139, + 86, 3140, 86, 3123, 86, 86, 3141, 3128, 3130, 3129, + 3131, 3136, 86, 3138, 3135, 86, 3137, 86, 86, 86, - 86, 3137, 3134, 86, 86, 3139, 86, 86, 86, 3142, - 86, 86, 86, 3144, 86, 86, 3145, 3140, 3143, 86, - 86, 86, 86, 3141, 86, 86, 3154, 3155, 3157, 3146, - 3150, 3147, 3148, 3149, 86, 86, 3151, 3152, 86, 86, - 3158, 3153, 3160, 86, 3156, 3159, 3162, 86, 3163, 86, - 86, 3161, 3165, 86, 3164, 86, 3168, 86, 3169, 86, - 3166, 86, 3167, 3170, 3171, 3177, 86, 3172, 3173, 86, - 86, 3174, 86, 3175, 3176, 86, 86, 86, 3179, 86, - 3178, 3180, 86, 86, 86, 86, 3186, 86, 86, 86, - 3185, 86, 86, 3182, 86, 3181, 3188, 86, 3189, 86, + 3134, 86, 3144, 3146, 86, 3142, 3147, 86, 86, 86, + 3150, 3151, 86, 3148, 3143, 3149, 86, 3152, 86, 3145, + 3153, 86, 86, 3154, 86, 86, 3155, 86, 86, 3156, + 86, 86, 3157, 3159, 86, 86, 3161, 86, 86, 3160, + 86, 3438, 3162, 86, 86, 3158, 86, 86, 86, 86, + 3163, 86, 3171, 3172, 3175, 3164, 3166, 3165, 3174, 3167, + 3173, 3168, 3169, 86, 86, 86, 3177, 3170, 3179, 86, + 86, 3176, 3180, 86, 3181, 3182, 86, 86, 3178, 86, + 3185, 86, 3183, 3186, 86, 3187, 3188, 86, 86, 3189, + 3190, 3194, 86, 3191, 86, 86, 3192, 3193, 3184, 86, - 3190, 86, 86, 3183, 3184, 86, 3193, 3191, 3194, 86, - 3200, 3195, 86, 3187, 3199, 3192, 86, 3196, 3197, 86, - 3198, 86, 86, 3203, 3205, 86, 86, 86, 3204, 86, - 86, 3201, 3209, 86, 3202, 86, 86, 3206, 3210, 3213, - 3207, 3212, 86, 86, 86, 86, 3419, 3208, 3234, 3214, - 3215, 86, 3216, 86, 3211, 86, 3219, 86, 86, 3217, - 3218, 3220, 86, 3222, 86, 3223, 86, 3221, 3224, 86, - 3225, 86, 3226, 86, 3227, 86, 3228, 86, 3229, 86, - 86, 86, 3232, 86, 86, 86, 3237, 86, 86, 86, - 3231, 86, 86, 3233, 86, 86, 86, 3241, 3242, 86, + 3195, 86, 3197, 86, 86, 86, 86, 86, 86, 86, + 3196, 3203, 86, 3202, 86, 86, 86, 86, 86, 3199, + 86, 3207, 3198, 3206, 3208, 86, 3200, 3201, 86, 3204, + 3211, 3212, 86, 3209, 86, 3214, 86, 3213, 3210, 3205, + 3215, 86, 3216, 86, 86, 86, 86, 3221, 86, 3218, + 3223, 3217, 3222, 86, 3219, 86, 86, 3220, 86, 86, + 86, 3230, 86, 3225, 3227, 3228, 3231, 86, 3233, 86, + 86, 3224, 86, 3232, 3234, 86, 3226, 3229, 86, 3237, + 86, 3238, 86, 3236, 86, 3235, 3240, 86, 3241, 86, + 3242, 86, 86, 3239, 3243, 86, 3244, 86, 3245, 86, - 3244, 86, 86, 3240, 3238, 3235, 3230, 3236, 3239, 3243, - 3245, 86, 86, 3248, 3246, 86, 86, 3251, 86, 3250, - 86, 86, 86, 86, 86, 3253, 86, 86, 3247, 86, - 3259, 86, 3252, 3249, 86, 3257, 3258, 86, 3256, 86, - 3254, 86, 3255, 86, 3262, 86, 3260, 3270, 3263, 86, - 3264, 3265, 86, 3266, 86, 3267, 86, 86, 3269, 86, - 3261, 86, 86, 86, 3268, 86, 86, 3275, 3276, 86, - 3278, 86, 86, 3272, 3274, 86, 86, 3271, 86, 86, - 3277, 86, 86, 86, 3273, 3279, 3287, 86, 3290, 86, - 3280, 3285, 3282, 3281, 3284, 3286, 86, 86, 86, 86, + 3246, 86, 3247, 86, 86, 3250, 86, 86, 86, 86, + 3254, 86, 86, 3249, 3256, 86, 3251, 86, 3248, 86, + 3252, 86, 86, 86, 86, 3260, 3261, 86, 86, 3253, + 86, 3255, 3257, 3265, 3258, 3259, 86, 3262, 3263, 86, + 86, 3267, 3270, 86, 86, 3266, 3264, 3269, 86, 86, + 86, 86, 86, 86, 3268, 3272, 86, 3271, 3276, 86, + 86, 86, 3277, 3278, 86, 86, 86, 3282, 3273, 3274, + 3281, 86, 3275, 3284, 86, 3279, 3285, 86, 86, 3283, + 3286, 86, 86, 86, 86, 86, 86, 3280, 3289, 86, + 86, 3288, 86, 86, 3287, 3294, 86, 3291, 3290, 86, - 86, 3289, 86, 3283, 3292, 3295, 86, 86, 3288, 3297, - 86, 3296, 3293, 86, 3298, 3299, 86, 3291, 3300, 86, - 3294, 86, 86, 86, 86, 3303, 3301, 86, 3304, 3305, - 86, 3308, 86, 86, 86, 86, 86, 86, 3311, 3312, - 86, 3302, 3314, 86, 86, 3307, 3309, 3310, 3315, 86, - 86, 3316, 3306, 86, 3313, 3318, 86, 3321, 86, 86, - 3322, 86, 86, 3317, 3325, 3319, 3326, 86, 86, 3323, - 86, 3320, 86, 86, 86, 3331, 86, 3332, 86, 3330, - 3328, 3324, 3327, 86, 86, 86, 86, 86, 86, 86, - 3336, 86, 3329, 3338, 86, 86, 86, 86, 3335, 86, + 3293, 3295, 86, 3297, 86, 3299, 3298, 3296, 3292, 86, + 86, 86, 86, 86, 3300, 86, 86, 86, 3306, 86, + 3301, 3304, 3308, 3305, 86, 3303, 3309, 86, 86, 3311, + 3312, 3314, 86, 86, 3302, 86, 3307, 3316, 86, 3310, + 86, 3317, 3315, 3318, 86, 3319, 86, 86, 3313, 86, + 86, 86, 3322, 86, 3320, 3323, 3324, 86, 3327, 86, + 86, 86, 86, 86, 86, 3330, 86, 3321, 3331, 86, + 3333, 86, 3326, 3328, 3329, 3334, 86, 86, 3325, 3337, + 86, 3332, 3336, 86, 3339, 3340, 86, 86, 3341, 86, + 86, 86, 3335, 3344, 3345, 86, 86, 3342, 3338, 86, - 3343, 86, 3345, 86, 3333, 3334, 3344, 3337, 3339, 3340, - 3341, 3346, 86, 3342, 3349, 86, 86, 3347, 3351, 86, - 3352, 3350, 86, 86, 86, 86, 86, 3353, 3354, 3357, - 3355, 3348, 3358, 86, 86, 86, 3360, 86, 86, 3359, - 86, 86, 3361, 86, 86, 3356, 3366, 86, 3363, 86, - 3369, 86, 86, 3370, 86, 86, 86, 86, 86, 3362, - 3373, 86, 3364, 3365, 3368, 3371, 3367, 86, 3372, 86, - 3377, 86, 3378, 86, 3376, 86, 3374, 3375, 86, 3381, - 86, 3383, 86, 3384, 3379, 86, 86, 86, 3388, 86, - 3385, 86, 86, 3386, 3382, 86, 3389, 3390, 86, 3380, + 86, 86, 3350, 86, 86, 3346, 3349, 86, 3347, 3343, + 3351, 86, 86, 86, 86, 3348, 86, 3355, 86, 86, + 86, 3357, 86, 86, 86, 3352, 3354, 3353, 3362, 3363, + 3364, 86, 3359, 3360, 3356, 86, 86, 3358, 86, 3368, + 86, 3361, 86, 3370, 86, 3371, 86, 3369, 86, 86, + 86, 3372, 3376, 3373, 3366, 3365, 86, 3367, 86, 3377, + 86, 3374, 86, 3379, 86, 86, 86, 3378, 86, 3375, + 3380, 86, 86, 3385, 86, 3382, 86, 86, 3388, 86, + 3389, 86, 86, 86, 3381, 86, 86, 3392, 86, 3387, + 3383, 3384, 3390, 3386, 86, 3391, 86, 3396, 86, 3397, + + 86, 3395, 86, 3400, 3393, 3394, 86, 86, 3402, 86, + 3403, 3398, 86, 86, 86, 3407, 86, 3404, 86, 86, + 3405, 3409, 86, 3408, 86, 3401, 3399, 3410, 86, 3411, + 86, 3412, 86, 3406, 86, 3416, 86, 3414, 86, 86, + 86, 86, 86, 86, 3418, 3419, 86, 3422, 86, 3413, + 3423, 86, 3438, 3415, 86, 3426, 86, 3417, 3427, 86, + 3420, 3421, 3424, 3428, 3429, 86, 86, 3425, 3430, 86, + 86, 86, 86, 3431, 86, 3432, 3433, 3436, 86, 3437, + 86, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3434, 3438, 3435, 47, 47, 47, 47, 47, 47, - 3391, 86, 86, 86, 86, 3392, 3387, 86, 3395, 3393, - 86, 3394, 3397, 86, 86, 3399, 86, 86, 86, 3400, - 86, 3403, 86, 3396, 3404, 86, 3398, 86, 3407, 3408, - 86, 86, 3410, 86, 86, 3401, 3402, 3405, 3409, 3411, - 86, 3406, 86, 86, 86, 86, 3417, 86, 3413, 3412, - 3414, 3418, 86, 3415, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3416, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, - 74, 74, 74, 74, 74, 74, 80, 80, 80, 80, - 80, 80, 80, 89, 89, 3419, 89, 89, 89, 89, - 160, 160, 3419, 3419, 3419, 160, 160, 162, 162, 3419, - 3419, 162, 3419, 162, 164, 3419, 3419, 3419, 3419, 3419, - 164, 167, 167, 3419, 3419, 3419, 167, 167, 169, 3419, - 3419, 3419, 3419, 3419, 169, 171, 171, 3419, 171, 171, - 171, 171, 174, 3419, 3419, 3419, 3419, 3419, 174, 177, - 177, 3419, 3419, 3419, 177, 177, 90, 90, 3419, 90, - 90, 90, 90, 17, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 80, 80, 80, 89, 89, 3438, 89, 89, 89, 89, + 160, 160, 3438, 3438, 3438, 160, 160, 162, 162, 3438, + 3438, 162, 3438, 162, 164, 3438, 3438, 3438, 3438, 3438, + 164, 167, 167, 3438, 3438, 3438, 167, 167, 169, 3438, + 3438, 3438, 3438, 3438, 169, 171, 171, 3438, 171, 171, + 171, 171, 174, 3438, 3438, 3438, 3438, 3438, 174, 177, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419 + 177, 3438, 3438, 3438, 177, 177, 90, 90, 3438, 90, + 90, 90, 90, 17, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438 } ; -static const flex_int16_t yy_chk[6725] = +static const flex_int16_t yy_chk[6755] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2301,18 +2310,18 @@ static const flex_int16_t yy_chk[6725] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3427, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3446, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2784, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2797, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1112, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1116, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2351,9 +2360,9 @@ static const flex_int16_t yy_chk[6725] = 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 554, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 555, 214, 218, 216, 208, 209, 211, 205, 210, 211, 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 554, 224, 222, 227, 215, 221, + 222, 219, 223, 221, 555, 224, 222, 227, 215, 221, 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, @@ -2388,651 +2397,654 @@ static const flex_int16_t yy_chk[6725] = 356, 357, 358, 358, 360, 358, 351, 357, 353, 369, 369, 361, 363, 362, 358, 356, 361, 363, 355, 362, 364, 366, 375, 365, 360, 364, 365, 367, 365, 368, - 367, 364, 377, 370, 467, 366, 371, 371, 368, 370, - 372, 373, 375, 367, 373, 372, 367, 377, 367, 376, - 373, 379, 376, 378, 373, 381, 467, 382, 381, 373, + 367, 364, 388, 370, 410, 366, 371, 371, 368, 370, + 372, 377, 375, 367, 376, 372, 367, 376, 367, 373, + 373, 378, 373, 388, 379, 382, 377, 381, 373, 410, - 384, 389, 373, 374, 374, 379, 374, 385, 378, 392, - 376, 382, 386, 388, 381, 384, 385, 386, 386, 374, - 389, 390, 374, 391, 374, 387, 374, 383, 392, 383, - 383, 387, 391, 394, 388, 395, 390, 396, 387, 383, - 398, 383, 383, 383, 393, 398, 383, 397, 399, 400, - 393, 396, 401, 397, 404, 395, 402, 397, 403, 394, - 404, 402, 406, 398, 405, 405, 407, 401, 399, 400, - 408, 409, 410, 403, 411, 412, 414, 409, 407, 415, - 412, 167, 406, 416, 408, 413, 413, 417, 413, 418, - 411, 418, 422, 422, 420, 415, 414, 410, 420, 416, + 381, 167, 373, 384, 385, 376, 378, 373, 379, 382, + 373, 374, 374, 385, 374, 386, 381, 391, 384, 394, + 386, 386, 389, 387, 390, 392, 391, 374, 395, 387, + 374, 166, 374, 399, 374, 383, 387, 383, 383, 390, + 393, 389, 396, 400, 392, 394, 393, 383, 395, 383, + 383, 383, 397, 399, 383, 398, 396, 401, 397, 402, + 398, 403, 397, 400, 402, 404, 405, 405, 406, 407, + 408, 404, 401, 409, 411, 412, 403, 414, 398, 409, + 412, 407, 413, 413, 408, 413, 415, 416, 406, 423, + 411, 417, 418, 419, 418, 419, 419, 414, 422, 422, - 419, 417, 419, 419, 421, 423, 424, 428, 421, 425, - 426, 433, 427, 430, 166, 433, 428, 429, 436, 430, - 419, 424, 429, 421, 423, 425, 427, 428, 426, 428, - 429, 429, 431, 432, 429, 429, 434, 435, 432, 436, - 437, 431, 441, 435, 438, 434, 437, 439, 438, 440, - 439, 442, 442, 443, 440, 444, 444, 446, 445, 447, - 447, 448, 441, 445, 449, 450, 443, 448, 449, 451, - 446, 452, 453, 454, 454, 455, 452, 453, 456, 457, - 450, 458, 454, 459, 460, 465, 459, 455, 461, 460, - 451, 462, 461, 458, 463, 463, 464, 457, 456, 466, + 420, 424, 415, 416, 420, 417, 421, 425, 423, 426, + 421, 428, 427, 419, 433, 430, 424, 432, 433, 431, + 428, 430, 432, 425, 429, 421, 427, 426, 431, 429, + 434, 428, 436, 428, 435, 441, 164, 429, 429, 434, + 435, 429, 429, 437, 438, 443, 440, 439, 438, 437, + 439, 440, 446, 436, 450, 441, 442, 442, 443, 444, + 444, 445, 447, 447, 448, 446, 445, 449, 451, 450, + 448, 449, 452, 453, 454, 454, 455, 452, 453, 456, + 457, 458, 459, 454, 462, 459, 460, 464, 455, 451, + 461, 460, 464, 458, 461, 465, 462, 467, 457, 456, - 466, 464, 471, 462, 469, 469, 465, 472, 473, 474, - 477, 475, 476, 479, 481, 472, 475, 473, 480, 483, - 484, 482, 477, 471, 487, 483, 553, 490, 553, 484, - 474, 479, 476, 479, 481, 482, 480, 485, 487, 486, - 488, 490, 489, 485, 486, 489, 491, 492, 488, 493, - 495, 488, 494, 492, 496, 494, 495, 497, 498, 500, - 499, 491, 497, 500, 502, 501, 503, 504, 496, 493, - 501, 503, 505, 506, 495, 509, 552, 512, 514, 502, - 498, 499, 510, 504, 511, 513, 506, 517, 511, 552, - 513, 505, 507, 507, 514, 509, 512, 510, 507, 515, + 463, 463, 466, 466, 469, 469, 471, 472, 473, 474, + 477, 476, 482, 475, 479, 472, 465, 473, 475, 467, + 480, 481, 477, 483, 484, 487, 482, 471, 162, 483, + 474, 476, 479, 484, 479, 486, 485, 488, 480, 487, + 486, 481, 485, 489, 490, 488, 489, 491, 488, 492, + 493, 494, 496, 495, 494, 492, 497, 498, 490, 495, + 499, 497, 491, 500, 501, 502, 496, 500, 503, 501, + 493, 504, 505, 503, 509, 506, 510, 495, 512, 498, + 502, 499, 512, 513, 511, 514, 518, 504, 506, 515, + 514, 505, 507, 507, 509, 528, 528, 510, 507, 511, - 507, 519, 517, 515, 516, 518, 507, 520, 507, 516, - 518, 507, 507, 516, 522, 521, 520, 519, 507, 523, - 519, 521, 524, 525, 526, 524, 521, 527, 527, 522, - 528, 529, 529, 530, 533, 523, 532, 531, 534, 537, - 535, 536, 538, 541, 526, 535, 525, 164, 530, 531, - 536, 532, 541, 533, 545, 528, 539, 538, 537, 542, - 534, 543, 539, 542, 544, 543, 545, 546, 547, 548, - 544, 549, 550, 551, 556, 556, 555, 551, 162, 557, - 558, 560, 546, 548, 555, 557, 549, 547, 559, 562, - 550, 563, 558, 560, 559, 561, 564, 565, 561, 566, + 507, 518, 513, 516, 517, 515, 507, 516, 507, 517, + 519, 507, 507, 517, 520, 519, 521, 522, 507, 523, + 524, 525, 526, 522, 525, 521, 527, 529, 522, 531, + 520, 530, 530, 520, 523, 532, 524, 534, 533, 535, + 537, 538, 539, 536, 531, 526, 527, 532, 536, 537, + 542, 543, 529, 533, 548, 543, 534, 539, 540, 542, + 538, 535, 544, 545, 540, 546, 544, 547, 550, 545, + 549, 551, 552, 548, 553, 558, 552, 546, 554, 160, + 554, 558, 547, 550, 549, 556, 559, 553, 560, 551, + 557, 557, 561, 556, 560, 563, 562, 564, 559, 562, - 565, 564, 578, 562, 567, 568, 563, 160, 566, 569, - 568, 568, 570, 570, 578, 566, 571, 571, 566, 572, - 567, 577, 569, 573, 573, 572, 574, 574, 575, 579, - 576, 581, 579, 580, 575, 576, 576, 582, 580, 584, - 583, 585, 577, 583, 584, 582, 586, 587, 588, 589, - 581, 587, 590, 589, 588, 591, 595, 592, 593, 593, - 591, 594, 596, 597, 585, 586, 598, 596, 599, 601, - 590, 592, 603, 600, 599, 606, 594, 595, 600, 597, - 605, 602, 609, 601, 602, 85, 598, 604, 604, 602, - 603, 606, 602, 602, 607, 608, 609, 610, 605, 607, + 565, 567, 568, 566, 561, 565, 566, 85, 569, 563, + 567, 570, 564, 569, 569, 571, 571, 567, 568, 573, + 567, 572, 572, 578, 570, 573, 574, 574, 575, 575, + 576, 579, 577, 582, 586, 581, 576, 577, 577, 580, + 581, 583, 580, 579, 578, 584, 585, 587, 584, 583, + 588, 585, 582, 589, 588, 591, 590, 586, 592, 589, + 590, 593, 595, 592, 594, 594, 587, 596, 598, 597, + 599, 601, 600, 591, 597, 593, 601, 595, 600, 602, + 604, 605, 605, 603, 598, 606, 603, 608, 596, 607, + 599, 603, 608, 602, 603, 603, 609, 610, 604, 611, - 608, 612, 613, 614, 615, 616, 614, 612, 615, 618, - 616, 613, 610, 617, 618, 619, 617, 620, 621, 622, - 624, 623, 625, 625, 626, 621, 623, 627, 628, 629, - 615, 619, 622, 626, 630, 620, 631, 80, 632, 634, - 624, 633, 634, 630, 632, 629, 627, 633, 631, 628, - 635, 635, 636, 635, 637, 636, 638, 639, 640, 637, - 641, 642, 644, 640, 643, 646, 653, 642, 644, 643, - 645, 639, 647, 645, 638, 648, 649, 647, 650, 641, - 648, 648, 651, 655, 654, 653, 652, 651, 655, 649, - 646, 650, 652, 654, 656, 657, 657, 658, 661, 660, + 613, 609, 620, 606, 614, 607, 613, 615, 616, 621, + 615, 610, 616, 614, 611, 617, 618, 619, 620, 618, + 617, 622, 619, 623, 624, 625, 627, 621, 622, 624, + 626, 626, 628, 629, 616, 627, 623, 630, 631, 80, + 632, 635, 633, 634, 635, 625, 642, 631, 633, 634, + 639, 628, 632, 630, 629, 636, 636, 637, 636, 638, + 637, 640, 641, 643, 638, 642, 644, 641, 639, 643, + 645, 644, 647, 648, 646, 640, 645, 646, 648, 649, + 650, 651, 652, 653, 649, 649, 654, 652, 657, 653, + 655, 656, 660, 650, 651, 660, 656, 647, 666, 655, - 659, 651, 651, 659, 658, 660, 662, 663, 664, 664, - 661, 662, 663, 663, 656, 665, 667, 666, 659, 666, - 668, 662, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 679, 675, 674, 667, 678, 680, 682, 676, - 665, 669, 670, 671, 684, 672, 677, 673, 681, 683, - 679, 678, 685, 682, 686, 683, 680, 687, 684, 689, - 681, 688, 694, 689, 685, 690, 691, 692, 693, 695, - 696, 697, 697, 686, 695, 698, 699, 700, 687, 698, - 688, 694, 691, 690, 696, 692, 693, 693, 701, 702, - 699, 704, 703, 705, 707, 706, 700, 703, 712, 701, + 659, 652, 652, 658, 658, 654, 661, 659, 657, 662, + 660, 663, 661, 664, 665, 665, 663, 668, 664, 664, + 667, 662, 667, 666, 670, 669, 663, 669, 671, 672, + 673, 674, 675, 676, 677, 678, 668, 676, 675, 679, + 680, 681, 670, 677, 682, 685, 671, 672, 683, 673, + 678, 674, 686, 684, 679, 687, 682, 688, 680, 684, + 681, 689, 690, 683, 691, 685, 686, 687, 691, 692, + 693, 694, 695, 696, 697, 75, 688, 699, 699, 697, + 698, 690, 689, 701, 700, 702, 693, 692, 700, 694, + 695, 695, 696, 704, 698, 703, 705, 701, 706, 707, - 708, 707, 709, 702, 715, 708, 710, 704, 706, 709, - 711, 710, 705, 713, 714, 711, 712, 716, 715, 717, - 713, 718, 720, 714, 719, 720, 716, 718, 721, 719, - 722, 717, 721, 723, 724, 726, 725, 727, 727, 728, - 728, 735, 723, 733, 722, 729, 729, 730, 728, 724, - 725, 731, 730, 734, 736, 737, 726, 738, 736, 734, - 731, 735, 733, 739, 740, 741, 743, 737, 742, 744, - 740, 745, 748, 741, 754, 742, 751, 761, 761, 755, - 757, 739, 738, 754, 743, 755, 757, 748, 760, 758, - 759, 745, 760, 751, 744, 746, 766, 746, 758, 763, + 708, 705, 709, 710, 702, 711, 703, 704, 710, 709, + 712, 713, 711, 708, 706, 712, 713, 714, 707, 715, + 716, 718, 717, 721, 728, 719, 715, 720, 721, 716, + 718, 722, 724, 720, 722, 714, 717, 719, 723, 725, + 726, 736, 723, 727, 735, 728, 724, 736, 725, 729, + 729, 730, 730, 731, 731, 726, 732, 727, 733, 737, + 730, 732, 738, 735, 739, 740, 738, 733, 741, 742, + 743, 745, 746, 744, 747, 742, 739, 750, 743, 737, + 744, 757, 753, 74, 756, 759, 741, 757, 766, 745, + 740, 759, 750, 756, 747, 760, 761, 746, 748, 753, - 746, 762, 762, 764, 746, 765, 759, 746, 769, 770, - 763, 773, 767, 769, 746, 746, 766, 746, 767, 765, - 771, 764, 768, 768, 768, 776, 768, 772, 774, 768, - 770, 772, 774, 778, 768, 773, 777, 775, 771, 1088, - 768, 768, 775, 779, 776, 783, 779, 780, 774, 781, - 1088, 777, 780, 780, 782, 782, 781, 784, 778, 792, - 783, 786, 784, 785, 785, 787, 786, 788, 787, 789, - 789, 790, 788, 790, 791, 793, 794, 796, 792, 793, - 795, 797, 797, 798, 801, 796, 791, 799, 800, 800, - 803, 802, 805, 854, 804, 854, 794, 805, 798, 795, + 748, 762, 767, 748, 760, 762, 766, 748, 763, 763, + 748, 765, 761, 764, 764, 768, 767, 748, 748, 769, + 748, 771, 765, 772, 773, 769, 771, 774, 775, 776, + 779, 774, 778, 776, 777, 768, 770, 770, 770, 777, + 770, 780, 773, 770, 772, 779, 68, 781, 770, 776, + 781, 778, 775, 782, 770, 770, 783, 785, 782, 782, + 784, 784, 786, 783, 787, 787, 780, 786, 788, 793, + 790, 789, 785, 788, 789, 790, 791, 791, 792, 794, + 792, 793, 795, 796, 798, 797, 795, 799, 799, 804, + 800, 803, 798, 801, 802, 802, 805, 807, 794, 63, - 804, 799, 801, 802, 806, 806, 809, 811, 807, 810, - 812, 809, 803, 807, 807, 810, 812, 813, 814, 816, - 815, 817, 813, 815, 814, 816, 811, 818, 818, 817, - 819, 819, 820, 821, 822, 823, 824, 825, 826, 822, - 820, 828, 823, 827, 827, 830, 830, 829, 832, 836, - 828, 821, 831, 825, 824, 829, 834, 826, 831, 835, - 838, 837, 841, 842, 844, 834, 837, 832, 835, 838, - 840, 839, 843, 836, 839, 840, 841, 844, 845, 846, - 846, 843, 847, 845, 845, 848, 849, 850, 842, 851, - 852, 855, 855, 852, 856, 849, 858, 847, 857, 859, + 806, 804, 807, 796, 797, 800, 806, 801, 809, 803, + 808, 808, 811, 809, 809, 812, 813, 811, 805, 814, + 816, 812, 815, 818, 819, 814, 816, 815, 817, 818, + 822, 817, 819, 820, 820, 813, 821, 821, 822, 823, + 824, 825, 826, 827, 828, 824, 829, 829, 825, 830, + 832, 832, 834, 831, 838, 836, 833, 823, 830, 827, + 826, 831, 833, 828, 836, 837, 840, 839, 843, 844, + 841, 834, 839, 841, 837, 840, 842, 845, 838, 846, + 849, 842, 843, 847, 848, 848, 845, 850, 847, 847, + 851, 852, 846, 853, 844, 849, 856, 854, 856, 851, - 860, 852, 861, 857, 848, 862, 864, 851, 865, 863, - 866, 850, 865, 867, 869, 856, 868, 858, 863, 859, - 860, 870, 868, 869, 861, 862, 871, 872, 866, 864, - 873, 877, 867, 870, 874, 875, 873, 876, 876, 878, - 875, 872, 879, 880, 881, 871, 882, 883, 874, 884, - 877, 879, 881, 885, 886, 887, 888, 890, 889, 878, - 886, 887, 891, 880, 889, 895, 882, 75, 884, 883, - 888, 890, 892, 885, 893, 894, 896, 898, 892, 894, - 893, 897, 891, 902, 895, 900, 897, 903, 896, 899, - 899, 900, 901, 904, 905, 901, 896, 907, 898, 904, + 854, 857, 857, 858, 859, 860, 850, 861, 854, 859, + 862, 853, 863, 864, 865, 852, 866, 867, 868, 869, + 871, 867, 870, 865, 858, 872, 860, 861, 870, 871, + 862, 873, 874, 864, 863, 875, 868, 872, 869, 866, + 876, 875, 877, 880, 878, 881, 874, 883, 876, 878, + 873, 879, 879, 884, 882, 885, 877, 886, 887, 891, + 888, 884, 880, 882, 889, 881, 890, 883, 892, 893, + 889, 894, 890, 891, 892, 885, 895, 887, 896, 886, + 888, 897, 895, 893, 896, 897, 898, 899, 900, 901, + 903, 894, 908, 900, 902, 902, 903, 904, 905, 899, - 903, 902, 906, 906, 908, 909, 910, 911, 914, 908, - 917, 910, 910, 912, 905, 907, 915, 912, 913, 913, - 916, 909, 911, 909, 919, 916, 920, 923, 922, 917, - 914, 924, 926, 926, 927, 928, 915, 74, 927, 932, - 920, 922, 929, 929, 934, 930, 933, 923, 919, 934, - 928, 931, 924, 925, 932, 931, 925, 935, 925, 937, - 933, 936, 925, 938, 925, 940, 936, 936, 937, 925, - 930, 935, 939, 942, 925, 944, 939, 938, 941, 943, - 940, 945, 946, 941, 943, 942, 947, 949, 939, 944, - 955, 948, 949, 941, 950, 947, 946, 948, 951, 956, + 904, 906, 907, 909, 909, 898, 910, 899, 907, 912, + 901, 914, 908, 911, 906, 913, 905, 917, 911, 915, + 913, 913, 918, 915, 910, 912, 914, 912, 916, 916, + 919, 920, 922, 923, 926, 919, 925, 927, 931, 917, + 929, 929, 918, 58, 930, 932, 932, 923, 930, 925, + 920, 933, 935, 931, 926, 936, 922, 934, 927, 928, + 937, 934, 928, 938, 928, 937, 939, 935, 928, 936, + 928, 939, 939, 940, 941, 928, 933, 938, 943, 942, + 928, 944, 940, 942, 946, 945, 944, 947, 941, 946, + 948, 949, 951, 943, 950, 942, 944, 945, 951, 952, - 950, 954, 945, 953, 951, 952, 952, 954, 953, 957, - 959, 960, 955, 962, 963, 963, 960, 961, 956, 964, - 967, 966, 959, 68, 964, 962, 968, 957, 958, 958, - 965, 961, 972, 969, 958, 966, 958, 970, 965, 967, - 973, 971, 958, 970, 972, 968, 971, 958, 958, 969, - 974, 975, 976, 976, 958, 977, 978, 980, 973, 977, - 982, 981, 983, 980, 981, 984, 974, 983, 985, 975, - 986, 987, 989, 990, 985, 986, 978, 991, 984, 982, - 992, 989, 990, 993, 994, 996, 992, 997, 998, 995, - 987, 1000, 993, 991, 995, 999, 1002, 1001, 1003, 1008, + 953, 947, 954, 950, 952, 949, 953, 956, 954, 955, + 955, 948, 956, 957, 958, 959, 962, 960, 963, 957, + 965, 966, 966, 963, 967, 964, 969, 970, 962, 967, + 971, 972, 965, 968, 959, 960, 958, 961, 961, 964, + 969, 968, 973, 961, 976, 961, 970, 972, 973, 971, + 974, 961, 975, 977, 978, 974, 961, 961, 979, 979, + 981, 980, 976, 961, 975, 980, 985, 983, 984, 977, + 986, 984, 978, 983, 987, 986, 988, 990, 989, 992, + 981, 993, 988, 989, 994, 985, 995, 987, 992, 996, + 993, 997, 995, 999, 998, 1000, 990, 1001, 996, 998, - 1000, 997, 1002, 994, 1004, 996, 1001, 999, 998, 1006, - 1004, 1009, 1010, 1008, 1011, 1003, 1012, 1010, 1013, 1014, - 1020, 1015, 1016, 1019, 63, 1006, 1015, 1016, 1019, 1020, - 1012, 1009, 1024, 1011, 1014, 1022, 1013, 1021, 1021, 1023, - 1025, 1022, 1027, 1031, 1028, 1032, 1031, 1024, 1023, 1028, - 1028, 1030, 1030, 1025, 1033, 1030, 1034, 1035, 1027, 1032, - 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1038, 1046, - 1040, 1042, 1034, 1036, 1033, 1035, 1037, 1049, 1050, 1045, - 1041, 1043, 1045, 1039, 1047, 1061, 1048, 1050, 1053, 1047, - 1046, 1048, 1051, 1049, 1052, 1055, 1056, 1051, 1057, 1052, + 994, 1005, 1002, 1003, 1006, 1007, 1004, 1005, 1009, 1000, + 997, 1007, 1003, 999, 1002, 1004, 1011, 1001, 1012, 1015, + 1013, 1006, 1014, 1018, 1009, 1013, 1016, 1017, 1018, 1019, + 1011, 1022, 1027, 1015, 1019, 1028, 1022, 1023, 1012, 1024, + 1024, 1014, 1017, 1025, 1016, 1026, 1023, 1027, 1028, 1025, + 1030, 1031, 1034, 1035, 1026, 1034, 1031, 1031, 1033, 1033, + 1036, 1037, 1033, 1038, 1040, 1039, 1030, 1035, 1041, 1042, + 1043, 1044, 1048, 1049, 1041, 1048, 1043, 1037, 1039, 1040, + 1036, 1038, 1045, 1046, 1052, 1050, 1044, 1045, 1051, 1042, + 1050, 1054, 1053, 1051, 1049, 1056, 1054, 1046, 1055, 1058, - 1053, 1055, 1058, 1061, 1057, 1059, 1059, 1060, 1058, 1064, - 1062, 1065, 1056, 1062, 1063, 1063, 1060, 1066, 1067, 1068, - 1069, 1067, 1070, 1077, 1071, 1078, 1069, 1064, 1070, 1071, - 1065, 1072, 1068, 1073, 1074, 1084, 1072, 1066, 1073, 1076, - 1074, 1077, 1079, 1082, 1076, 1078, 1080, 1083, 1079, 1081, - 1081, 1080, 1082, 1084, 1085, 1086, 1083, 1087, 1086, 1089, - 1087, 1090, 1091, 1092, 1089, 1093, 1094, 1098, 1095, 1100, - 1096, 1093, 1094, 1085, 1091, 1096, 1097, 1097, 1099, 1090, - 1101, 1100, 1092, 1095, 1101, 1102, 1098, 1103, 1104, 1105, - 1107, 1111, 1099, 1108, 1108, 1109, 1103, 1110, 1113, 1116, + 1052, 1053, 1059, 1055, 1060, 1058, 1061, 1056, 1062, 1062, + 1060, 1063, 1061, 1064, 1065, 1066, 1066, 1065, 1059, 1067, + 1063, 1068, 1069, 1070, 1072, 1071, 1070, 1073, 57, 1074, + 1072, 1064, 1082, 1073, 1074, 1081, 1075, 1067, 1071, 1076, + 1068, 1075, 1069, 1077, 1078, 1076, 1080, 1088, 1077, 1083, + 1078, 1080, 1082, 1081, 1084, 1083, 1085, 1085, 1086, 1084, + 1087, 1089, 1092, 1090, 1094, 1088, 1090, 1086, 1091, 1087, + 1093, 1091, 1095, 1092, 1096, 1093, 1099, 1097, 1102, 1098, + 1089, 1100, 1094, 1097, 1095, 1098, 1100, 1101, 1101, 1103, + 1104, 1099, 1105, 1096, 1106, 1107, 1105, 1102, 1108, 1109, - 1109, 1114, 1110, 1102, 1116, 1115, 1117, 1104, 1119, 1107, - 58, 1111, 1113, 1122, 1105, 1117, 1114, 1115, 1118, 1118, - 1120, 1121, 1124, 1126, 1124, 1123, 1120, 1121, 1119, 1122, - 1123, 1125, 1127, 1128, 1129, 1130, 1125, 1126, 1128, 1133, - 1131, 1132, 1135, 1135, 1137, 1136, 1127, 1131, 1138, 1129, - 1140, 1139, 1144, 1144, 1130, 1141, 1132, 1139, 1133, 1136, - 1141, 1143, 1137, 1138, 1148, 1143, 1147, 1145, 1150, 1141, - 1140, 1141, 1145, 1147, 1141, 1146, 1146, 1149, 1148, 1151, - 1149, 1152, 1154, 1153, 1155, 1157, 1156, 1150, 1153, 1158, - 1152, 1156, 1159, 1161, 1161, 1164, 1155, 1151, 1162, 1157, + 1111, 1115, 1104, 1103, 1107, 1112, 1112, 1118, 1113, 1114, + 52, 1117, 1106, 1113, 1114, 1119, 1123, 1108, 1120, 1111, + 1121, 1115, 1118, 1120, 1109, 1117, 1124, 1119, 1125, 1121, + 1122, 1122, 1124, 1126, 1125, 1127, 1123, 1128, 1129, 1128, + 1127, 1130, 1131, 1129, 1133, 1132, 1134, 1135, 1136, 1126, + 1132, 1137, 1139, 1139, 1135, 1130, 1131, 1140, 1141, 1133, + 1142, 1143, 1144, 1136, 1145, 1134, 47, 1143, 1147, 1145, + 1137, 1140, 1147, 1148, 1148, 1142, 1141, 1152, 1145, 1149, + 1145, 1151, 1144, 1145, 1149, 1150, 1150, 1153, 1151, 1154, + 1153, 1152, 1155, 1156, 1157, 1158, 1160, 1159, 1161, 1157, - 1158, 1154, 1163, 1162, 1165, 1167, 1166, 1163, 1168, 1165, - 1166, 1159, 1169, 1170, 1167, 1164, 1171, 1173, 1172, 1174, - 1175, 1176, 1177, 1168, 1173, 1180, 1179, 1169, 1171, 1178, - 1181, 1174, 1170, 1172, 1182, 1178, 1183, 1184, 1186, 1175, - 1177, 1179, 1176, 1182, 1187, 1180, 1185, 1188, 1189, 1191, - 1181, 1183, 1192, 1194, 1195, 1191, 1184, 1186, 1185, 1193, - 1196, 1194, 1188, 1198, 1200, 1197, 1199, 1192, 1189, 1187, - 1197, 1199, 1199, 1193, 1195, 1198, 1196, 1201, 1206, 1202, - 1203, 1203, 1205, 1200, 1207, 1208, 1208, 1206, 1210, 57, - 1207, 1201, 1202, 1204, 1204, 1205, 1215, 1210, 1204, 1209, + 1162, 1160, 1156, 1163, 1165, 1165, 1168, 18, 1154, 1159, + 1155, 1162, 1161, 1166, 1158, 1167, 1169, 1172, 1166, 1170, + 1167, 1169, 1163, 1170, 1171, 1173, 1168, 1174, 1176, 1175, + 1177, 1179, 1172, 1171, 1180, 1178, 1181, 1177, 1182, 1184, + 1173, 1175, 1183, 1176, 1182, 1185, 1174, 1178, 1187, 1186, + 1179, 1188, 1189, 1190, 1181, 1180, 1191, 1183, 1186, 1184, + 1192, 1195, 1193, 1187, 1189, 1185, 1197, 1195, 1196, 1198, + 1188, 1199, 1190, 1200, 1201, 1192, 1202, 1198, 1204, 1201, + 1197, 1191, 1193, 1196, 1205, 1239, 1206, 1203, 1202, 1200, + 1209, 1199, 1203, 1203, 1207, 1207, 1239, 1204, 1205, 1206, - 1212, 1204, 1204, 1211, 1209, 1212, 1204, 1218, 1213, 1211, - 1214, 1214, 1204, 1213, 1216, 1216, 1204, 1215, 1217, 1219, - 1220, 1217, 1221, 1217, 1222, 1223, 1220, 1218, 1224, 1225, - 1223, 1221, 1226, 1227, 1230, 1228, 52, 1219, 1226, 1227, - 1228, 1229, 1224, 1230, 1222, 1229, 1231, 1225, 1230, 1232, - 1230, 1231, 1230, 1235, 1230, 1233, 1233, 1234, 1234, 1238, - 1234, 1237, 1239, 1232, 1235, 1237, 1240, 1241, 1242, 1243, - 1245, 1244, 1241, 1241, 1238, 1240, 1244, 1242, 1246, 1247, - 1239, 1248, 1249, 1250, 1245, 1251, 1251, 1246, 1253, 1250, - 1254, 1243, 1255, 1252, 1256, 1254, 1249, 1257, 1247, 1258, + 1208, 1208, 1210, 1209, 1211, 1208, 1212, 1212, 1208, 1208, + 1211, 1210, 1213, 1208, 1215, 1214, 1216, 1213, 1219, 1208, + 1215, 1216, 1217, 1208, 1214, 1218, 1218, 1217, 1220, 1220, + 1221, 1222, 1223, 1221, 1224, 1221, 1225, 1226, 1227, 1219, + 1224, 1228, 1229, 1227, 1232, 1225, 1230, 1231, 1236, 1232, + 1223, 1222, 1230, 1231, 1233, 1228, 1234, 1226, 1233, 1235, + 1229, 1243, 1236, 1242, 1235, 1234, 1237, 1237, 1238, 1238, + 1234, 1238, 1234, 1241, 1234, 1244, 1234, 1241, 1242, 1243, + 1245, 1246, 1247, 1248, 1244, 1245, 1245, 1249, 1248, 1250, + 1246, 1251, 1252, 1253, 1254, 1255, 1255, 1256, 1250, 1257, - 1248, 1252, 1253, 1256, 1257, 1259, 1255, 1260, 1261, 1261, - 1262, 1271, 1260, 1263, 1263, 1267, 1264, 1258, 1264, 1266, - 1267, 1268, 1266, 1269, 1275, 1262, 1270, 1270, 1272, 1272, - 1259, 1271, 1269, 1273, 1273, 1276, 1274, 1277, 1277, 1278, - 1268, 1274, 1280, 1279, 1281, 1275, 1279, 1282, 1283, 1284, - 1281, 1284, 1282, 1285, 1288, 1287, 1276, 1283, 1287, 1278, - 1289, 1290, 1280, 1291, 1292, 1289, 1298, 1294, 1291, 1288, - 1294, 1285, 1292, 1293, 1295, 1290, 1296, 1296, 1293, 1295, - 1297, 1299, 1300, 1301, 1298, 1297, 1303, 1299, 1304, 1300, - 1305, 1306, 1303, 1307, 1304, 1305, 1301, 1306, 1308, 1309, + 1254, 1249, 1259, 1258, 1247, 1256, 1260, 1253, 1258, 1262, + 1251, 1252, 1261, 1257, 1263, 1260, 1259, 1264, 1266, 1261, + 1265, 1265, 1264, 1267, 1267, 1271, 1268, 1262, 1268, 1270, + 1271, 1272, 1270, 1266, 1273, 1274, 1274, 1275, 1279, 1263, + 1276, 1276, 1278, 1273, 1277, 1277, 1280, 1278, 1281, 1281, + 1272, 1282, 1283, 1284, 1285, 1286, 1284, 1275, 1287, 1279, + 1289, 1286, 1289, 1287, 1288, 1290, 1293, 1280, 1297, 1283, + 1295, 1282, 1292, 1288, 1285, 1292, 1297, 1294, 1301, 1301, + 1296, 1293, 1294, 1290, 1295, 1296, 1298, 1299, 1300, 1302, + 1299, 1298, 1303, 1300, 1302, 1304, 1305, 1310, 1306, 1308, - 1310, 1310, 1307, 1311, 1313, 1314, 1315, 1316, 1317, 1324, - 1309, 47, 1318, 1319, 1320, 1314, 1325, 1308, 1318, 1319, - 1320, 1315, 1313, 1311, 1322, 1323, 1326, 1316, 1327, 1324, - 1322, 1317, 1328, 1329, 1329, 1330, 1325, 1331, 1326, 1323, - 1332, 1333, 1327, 1334, 1334, 1323, 1333, 1335, 1336, 1338, - 1328, 1339, 1341, 1336, 1340, 1330, 1339, 1339, 1332, 1342, - 1343, 1341, 1331, 1344, 1345, 1356, 18, 1342, 1338, 1348, - 1335, 1348, 1340, 1349, 1343, 1346, 1347, 1352, 1344, 1345, - 1346, 1352, 1345, 1346, 1351, 1347, 1353, 1349, 1354, 1355, - 1351, 1356, 1357, 1354, 1354, 1358, 1359, 1353, 1360, 1361, + 1309, 1304, 1310, 1305, 1313, 1308, 1309, 1311, 1312, 1314, + 1303, 1306, 1316, 1311, 1315, 1315, 1318, 1312, 1319, 1321, + 1314, 1320, 1322, 1313, 1323, 1324, 1328, 1325, 1319, 1327, + 1323, 1324, 1316, 1325, 1318, 1327, 1320, 1329, 1330, 1321, + 1328, 1331, 1332, 1333, 1335, 1322, 1328, 1334, 1334, 1336, + 1337, 1339, 1339, 1331, 1338, 1340, 1332, 1329, 1330, 1338, + 1341, 1333, 1343, 17, 1335, 1341, 1344, 1345, 1337, 1347, + 1346, 1344, 1344, 1348, 1336, 1349, 1350, 1347, 1340, 1346, + 1353, 1343, 1353, 1354, 1351, 1345, 1352, 1348, 1361, 1351, + 1349, 1350, 1351, 1356, 1350, 1352, 1357, 1354, 1358, 1356, - 1358, 1359, 1362, 1363, 1365, 17, 1366, 1362, 1355, 1367, - 1357, 1368, 1368, 1369, 1370, 1371, 1360, 1369, 1365, 1361, - 1372, 1373, 1374, 1363, 1366, 1375, 1372, 1367, 1376, 1377, - 1378, 1379, 1370, 1373, 1371, 1380, 1379, 1382, 1383, 1375, - 1381, 1374, 1380, 1376, 1377, 1381, 1385, 1383, 1386, 1378, - 1384, 1384, 1387, 1388, 1388, 1382, 1389, 1386, 1390, 1391, - 1394, 1385, 1389, 1393, 1390, 1392, 1392, 1395, 1397, 1393, - 1396, 1398, 1387, 1391, 1397, 1396, 1394, 1398, 1399, 1400, - 1400, 1401, 1401, 1404, 1399, 1403, 1403, 1404, 1395, 1405, - 1406, 1407, 1408, 1410, 1409, 1411, 1411, 1412, 1405, 1413, + 1357, 1359, 1360, 1363, 1362, 1364, 1359, 1359, 1363, 1358, + 1364, 1365, 1366, 1367, 1361, 1368, 1370, 1376, 1367, 1371, + 1372, 1360, 1362, 1373, 1373, 1375, 1380, 1374, 1377, 1365, + 1370, 1374, 1366, 1378, 1377, 1368, 1376, 1371, 1372, 1379, + 1380, 1381, 1382, 1375, 1383, 1378, 1384, 1385, 1386, 1387, + 1388, 1384, 1392, 1386, 1385, 1390, 1381, 1382, 1379, 1388, + 1389, 1389, 1391, 1383, 1393, 1393, 1396, 1387, 1394, 1395, + 1390, 1391, 1392, 1398, 1394, 1395, 1397, 1397, 1399, 1398, + 1396, 1400, 1401, 1402, 1403, 1404, 1411, 1401, 1417, 1402, + 1403, 1404, 1405, 1405, 1399, 1406, 1406, 1408, 1408, 1409, - 1410, 1415, 1416, 1407, 1419, 1414, 1408, 1413, 1406, 1409, - 1414, 1420, 1420, 1417, 1421, 1415, 1422, 1412, 1417, 1417, - 1418, 1416, 1423, 1424, 1419, 1418, 1418, 1425, 1424, 1426, - 1427, 1423, 1428, 1421, 1429, 1422, 1430, 1431, 1428, 1429, - 1433, 1432, 1436, 1437, 1434, 1435, 1425, 1432, 1427, 1426, - 1434, 1435, 1438, 1439, 1440, 1441, 1430, 1444, 1442, 1433, - 1444, 1436, 1437, 1431, 1443, 1443, 1445, 1446, 1440, 1447, - 0, 1438, 1439, 1442, 1448, 1448, 1441, 1449, 1449, 1450, - 1452, 1447, 1453, 1451, 1450, 1445, 1446, 1451, 1454, 1457, - 1455, 1453, 1455, 1452, 1458, 1459, 1455, 1460, 1461, 1458, + 1410, 1412, 1400, 1409, 1411, 1413, 1414, 1415, 1417, 1410, + 1416, 1416, 1418, 1412, 1415, 1420, 1421, 1419, 1422, 1413, + 1418, 1414, 1419, 1422, 1422, 1423, 1424, 1425, 1425, 1420, + 1423, 1423, 1426, 1427, 1428, 1421, 1429, 1430, 1431, 1432, + 1434, 1429, 1433, 1428, 1435, 1434, 1424, 1436, 1433, 1437, + 1438, 1426, 1427, 1439, 1440, 1437, 1430, 1432, 1431, 1439, + 1440, 1441, 1442, 1443, 1435, 1444, 1446, 1449, 1447, 1438, + 1449, 1445, 1450, 1436, 1448, 1448, 1451, 1452, 1453, 1453, + 1441, 1442, 1443, 1447, 1444, 1445, 1456, 1446, 1457, 1452, + 1456, 1450, 1454, 1454, 1455, 1451, 1458, 1459, 1460, 1455, - 1463, 1454, 1462, 1462, 1465, 1463, 1464, 1457, 1466, 1455, - 1459, 1467, 1464, 1470, 1461, 1473, 1467, 1460, 1468, 1465, - 1469, 1466, 1468, 1471, 1469, 1472, 1474, 1475, 1475, 1477, - 1479, 1480, 1474, 1470, 1472, 1473, 1480, 1481, 1481, 1482, - 1483, 1471, 1485, 1485, 1497, 1482, 1487, 1477, 1489, 1487, - 1490, 1479, 1488, 1488, 1492, 1493, 1494, 1492, 1495, 1497, - 1483, 1496, 1496, 1498, 1489, 1494, 1490, 1499, 1500, 1501, - 1502, 1502, 1503, 1500, 1504, 1493, 1505, 1506, 1495, 1507, - 1509, 1503, 1510, 1501, 1498, 1511, 1499, 1508, 1508, 1512, - 1511, 1505, 1504, 1514, 1509, 1513, 1513, 1514, 1515, 1507, + 1460, 1457, 1462, 1463, 1460, 1458, 1464, 1465, 1463, 1466, + 1459, 1467, 1467, 1468, 1470, 1471, 1469, 1460, 1468, 1472, + 1462, 1464, 1469, 1475, 1472, 1466, 1473, 1465, 1471, 1470, + 1473, 1474, 1476, 1477, 1478, 1474, 1480, 1480, 1479, 1482, + 1484, 1485, 1477, 1475, 1479, 1487, 1485, 1486, 1486, 1488, + 1476, 1487, 1490, 1490, 1478, 1492, 1494, 1482, 1492, 1493, + 1493, 1484, 1495, 1497, 1498, 1500, 1497, 1499, 1501, 1488, + 1502, 1502, 1494, 1504, 1500, 1503, 1505, 1506, 1495, 1507, + 1508, 1508, 1506, 1509, 1510, 1498, 1511, 1499, 1501, 1512, + 1503, 1513, 1509, 1507, 1504, 1505, 1514, 1514, 1515, 1516, - 1510, 1517, 1506, 1518, 1512, 1516, 1516, 1519, 1520, 1524, - 1521, 1519, 1523, 1523, 1518, 1521, 1525, 1526, 1515, 1527, - 1528, 1525, 1524, 1517, 1529, 1530, 1531, 1520, 1532, 1532, - 1533, 0, 1534, 1526, 1528, 1533, 1535, 1527, 1537, 1530, - 1536, 1536, 1539, 1529, 1529, 1538, 1540, 1537, 1540, 1541, - 1538, 1531, 1534, 1542, 1541, 1543, 1535, 1544, 1546, 1542, - 1547, 1547, 1539, 1544, 1548, 1549, 1552, 1555, 1551, 1553, - 1553, 1549, 1546, 1551, 1556, 1543, 1554, 1554, 1557, 1558, - 1560, 1555, 1558, 1548, 1559, 1559, 1562, 1561, 1570, 1564, - 1552, 1563, 1556, 1557, 1563, 1564, 1565, 1563, 1560, 1561, + 1517, 1511, 1510, 1518, 1520, 1517, 1519, 1519, 1520, 1521, + 1523, 1513, 1515, 1524, 1512, 1522, 1522, 1516, 1518, 1525, + 1526, 1527, 1530, 1525, 1524, 1531, 1527, 1529, 1529, 1521, + 1531, 1532, 1523, 1533, 1534, 1530, 1535, 1537, 1536, 1526, + 1538, 1538, 1607, 1540, 1539, 1541, 1607, 1532, 1534, 1539, + 1543, 1533, 1536, 1542, 1542, 1535, 1535, 1545, 1546, 1543, + 1546, 1544, 1537, 1540, 1547, 1541, 1544, 1548, 1549, 1547, + 1550, 1552, 1554, 1548, 1553, 1553, 1550, 1545, 1555, 1558, + 1561, 1557, 1559, 1559, 1555, 1552, 1557, 1562, 1549, 1560, + 1560, 1554, 1563, 1564, 1561, 1566, 1564, 1565, 1565, 1567, - 1566, 1565, 1568, 1566, 1571, 1569, 1562, 1571, 1580, 1563, - 1569, 1568, 1573, 1570, 1572, 1572, 1574, 1582, 1573, 1566, - 1575, 1580, 1574, 1576, 1576, 1575, 1577, 1577, 1578, 1581, - 1579, 1583, 1585, 1586, 1578, 1579, 1582, 1584, 1585, 1586, - 1584, 1587, 1588, 1589, 1590, 1592, 1587, 1581, 1588, 1590, - 1592, 1583, 1591, 1591, 1593, 1594, 1595, 1596, 1600, 1597, - 1598, 1599, 1602, 1601, 1602, 1603, 1589, 1601, 1605, 1606, - 1610, 1596, 1593, 1597, 1598, 1594, 1595, 1607, 1609, 1599, - 1605, 1606, 1608, 1600, 1603, 1611, 1610, 1612, 1608, 1613, - 1607, 1615, 1615, 1616, 1617, 1618, 1619, 1619, 1609, 1617, + 1568, 1576, 1570, 1558, 0, 1562, 1569, 1563, 1570, 1569, + 1571, 1567, 1569, 1566, 1572, 1571, 1574, 1572, 1575, 1577, + 1568, 1586, 1577, 1575, 1569, 1574, 1576, 1578, 1578, 1579, + 1580, 1588, 1581, 1572, 1586, 1579, 1580, 1581, 1582, 1582, + 1583, 1583, 1584, 1587, 1585, 1589, 1591, 1592, 1584, 1585, + 1588, 1590, 1591, 1592, 1590, 1593, 1594, 1595, 1596, 1598, + 1593, 1587, 1594, 1596, 1598, 1589, 1597, 1597, 1599, 1600, + 1601, 1602, 1606, 1603, 1604, 1605, 1608, 1609, 1608, 1611, + 1595, 1619, 1612, 1615, 1616, 1602, 1599, 1603, 1604, 1600, + 1601, 1611, 1613, 1605, 1612, 1614, 1609, 1606, 1617, 1618, - 1620, 1612, 1621, 1622, 1623, 1611, 1625, 1618, 1624, 1628, - 1613, 1626, 1632, 1616, 1627, 1620, 1621, 1624, 1626, 1630, - 1637, 1625, 1623, 1627, 1636, 1628, 1627, 1622, 1633, 1634, - 1634, 1633, 1635, 1635, 1630, 1640, 1636, 1632, 1637, 1630, - 1638, 1639, 1639, 1638, 1641, 1642, 1643, 1644, 1640, 1643, - 1642, 1645, 1644, 1646, 1648, 1647, 1649, 1650, 1652, 1652, - 1653, 1651, 1654, 1641, 1647, 1649, 1650, 1651, 1649, 1646, - 1645, 1655, 1656, 1648, 1657, 1654, 1658, 1663, 1659, 1660, - 1653, 1658, 1658, 1659, 1666, 1664, 1656, 1665, 1665, 1655, - 1657, 1660, 1667, 1668, 1669, 1669, 1670, 1672, 1668, 1671, + 1616, 1614, 1619, 1615, 1622, 1613, 1621, 1621, 1624, 1623, + 1625, 1625, 1626, 1618, 1623, 1627, 1628, 1629, 1617, 1630, + 1624, 1631, 1633, 1632, 1622, 1634, 1638, 1626, 1630, 1627, + 1632, 1633, 1636, 1642, 1633, 1629, 1631, 1640, 1640, 1639, + 1628, 1634, 1639, 1641, 1641, 1642, 1643, 1636, 1645, 1645, + 1644, 1638, 1636, 1644, 1646, 1647, 1648, 1649, 1650, 1651, + 1649, 1648, 1653, 1650, 1643, 1652, 1654, 1646, 1655, 1657, + 1656, 1653, 1658, 1658, 1647, 1657, 1659, 1655, 1651, 1656, + 1655, 1652, 1660, 1661, 1662, 1654, 1663, 1664, 1666, 1665, + 1669, 1670, 1664, 1664, 1665, 1660, 1659, 1672, 1662, 1673, - 1666, 1667, 1663, 1664, 1671, 1670, 1673, 1674, 1670, 1669, - 1677, 1675, 1679, 1678, 1680, 1672, 1675, 1675, 1682, 1680, - 1681, 1683, 1683, 1684, 1677, 1674, 1681, 1673, 1678, 1684, - 1685, 1686, 1687, 1688, 1679, 1685, 1682, 1690, 1687, 1688, - 1691, 1692, 1693, 1694, 1695, 1686, 1694, 1692, 1697, 1699, - 1695, 1700, 1694, 1701, 1691, 1693, 1697, 1690, 1702, 1703, - 1704, 1701, 1705, 1706, 1707, 1708, 1708, 1702, 1699, 1704, - 1700, 1711, 1703, 1709, 1710, 1705, 1713, 1706, 1707, 1709, - 1710, 1712, 1712, 1714, 1711, 1715, 1717, 1708, 1716, 1716, - 1719, 1718, 1720, 1721, 1723, 1723, 1713, 1718, 1724, 1717, + 1666, 1661, 1663, 1671, 1671, 1674, 1675, 1675, 1673, 1670, + 1674, 1676, 1677, 1672, 1678, 1669, 1679, 1677, 1680, 1681, + 1676, 1675, 1685, 1676, 1681, 1681, 1683, 1684, 1686, 1687, + 1688, 1696, 1678, 1686, 0, 1687, 1680, 1679, 1689, 1689, + 1683, 1690, 1684, 1692, 1685, 1691, 1693, 1690, 1688, 1694, + 1691, 1696, 1693, 1697, 1698, 1694, 1699, 1692, 1701, 1700, + 1698, 1705, 1700, 1703, 1701, 1706, 1707, 1697, 1700, 1699, + 1708, 1703, 1709, 1710, 1707, 1708, 1711, 1712, 1713, 1714, + 1705, 1709, 1715, 1715, 1706, 1711, 1710, 1718, 1716, 1717, + 1712, 1720, 1713, 1714, 1716, 1717, 1719, 1719, 1721, 1722, - 1726, 1714, 1725, 1730, 1715, 1726, 1725, 1729, 1720, 1727, - 1728, 1721, 1719, 1732, 1727, 1728, 1729, 1733, 1724, 1734, - 1733, 1735, 1732, 1736, 1736, 1737, 1730, 1738, 1739, 1740, - 1740, 1734, 1741, 1742, 1746, 1747, 1735, 1743, 1744, 1738, - 1742, 1750, 1748, 0, 1737, 1749, 1741, 1739, 1748, 1743, - 1744, 1753, 1751, 1746, 1753, 1747, 1757, 1749, 1751, 1750, - 1752, 1752, 1754, 1754, 1756, 1757, 1758, 1759, 1759, 1756, - 1760, 1761, 1758, 1761, 1762, 1763, 1764, 1762, 1765, 1766, - 1767, 1768, 1760, 1769, 1772, 1767, 1768, 1770, 1771, 1772, - 1774, 1773, 1769, 1777, 0, 1763, 1765, 1766, 1764, 1770, + 1718, 1723, 1723, 1725, 1715, 1726, 1724, 1727, 1728, 1725, + 1731, 1720, 1730, 1730, 1737, 1733, 1721, 1732, 1722, 1724, + 1733, 1732, 1736, 1727, 1734, 1739, 1728, 1726, 1735, 1734, + 1731, 1736, 1740, 1735, 1739, 1740, 1741, 1737, 1742, 1743, + 1743, 1744, 1745, 1746, 1747, 1747, 1750, 1748, 1741, 1749, + 1753, 1751, 1754, 1742, 1745, 1756, 1749, 1757, 1750, 1755, + 1744, 1748, 1746, 1751, 1758, 1755, 0, 1756, 1760, 1753, + 1758, 1760, 1754, 1759, 1759, 1757, 1761, 1761, 1763, 1764, + 1765, 1766, 1766, 1763, 1767, 1768, 1765, 1768, 1764, 1769, + 1770, 1771, 1769, 1772, 1773, 1774, 1767, 1775, 1776, 1778, - 1773, 1776, 1775, 1771, 1778, 1778, 1776, 1775, 1777, 1779, - 1774, 1780, 1782, 1773, 1775, 1779, 1783, 1784, 1785, 1786, - 1787, 1786, 1788, 1788, 1789, 1789, 1790, 1790, 1791, 1792, - 1792, 1782, 1780, 1784, 1787, 1783, 1787, 1794, 1785, 1793, - 1793, 1795, 1796, 1796, 1798, 1797, 1801, 1802, 1791, 1797, - 1798, 1799, 1801, 1803, 1799, 1804, 1807, 1805, 1794, 1803, - 1805, 1808, 1795, 1806, 1806, 1802, 1808, 1809, 1809, 1810, - 1811, 1818, 1812, 1813, 1813, 1815, 1807, 1812, 1814, 1817, - 1804, 1815, 1816, 1814, 1810, 1819, 1820, 1821, 0, 1818, - 1824, 1811, 1820, 1825, 1816, 1816, 1816, 1823, 1826, 1817, + 1774, 1779, 1775, 1777, 1781, 1784, 1779, 1776, 1780, 0, + 1770, 1772, 1773, 1771, 1778, 1777, 1782, 1780, 1783, 1787, + 1784, 1782, 1789, 1783, 1781, 1785, 1785, 1786, 1782, 1790, + 1780, 1791, 1792, 1786, 1793, 1794, 1793, 1795, 1795, 1798, + 1787, 1789, 1796, 1796, 1797, 1797, 1801, 1791, 1790, 1794, + 1802, 1794, 1792, 1799, 1799, 1800, 1800, 1803, 1803, 1798, + 1804, 1809, 1805, 1806, 1804, 1811, 1806, 1801, 1805, 1808, + 1810, 1802, 1813, 1813, 1812, 1808, 1810, 1812, 1814, 1809, + 1815, 1816, 1816, 1818, 1817, 1815, 1819, 1820, 1820, 1821, + 1811, 1819, 1825, 1823, 1821, 1822, 1824, 1826, 1814, 1817, - 1826, 1816, 1823, 1823, 1824, 1819, 1827, 1821, 1825, 1828, - 1829, 1830, 1831, 1832, 1833, 1833, 1829, 1827, 1834, 1836, - 1830, 1835, 1835, 1837, 1828, 1838, 1838, 1839, 1839, 1840, - 1843, 1843, 1831, 1844, 1832, 1848, 1849, 1845, 1847, 1836, - 1852, 1850, 1849, 1856, 1834, 1837, 1845, 1847, 1853, 1840, - 1851, 1851, 1854, 1855, 1857, 1857, 1848, 1850, 1844, 1854, - 1858, 1852, 1855, 1853, 1859, 1861, 1862, 1863, 1864, 1856, - 1861, 1865, 1862, 1868, 1866, 1864, 1866, 1865, 1869, 1873, - 1859, 1870, 1870, 1871, 1869, 1872, 1858, 1863, 1871, 1874, - 1875, 1877, 1868, 1876, 1872, 1878, 1876, 1879, 1879, 1873, + 1828, 1822, 1827, 1832, 1818, 1823, 1823, 1823, 1827, 1830, + 1825, 1831, 1823, 1834, 1830, 1830, 1824, 1826, 1832, 1833, + 1828, 1833, 1835, 1836, 1834, 1831, 1837, 1838, 1839, 1836, + 1840, 1840, 1841, 1842, 1842, 1837, 1843, 1835, 1844, 1845, + 1845, 1846, 1846, 1847, 1850, 1850, 1851, 1838, 1852, 1839, + 1854, 1855, 1857, 1858, 1858, 1856, 1843, 1852, 1841, 1854, + 1844, 1856, 1859, 1847, 1860, 1862, 1861, 1863, 1857, 1864, + 1864, 1851, 1855, 1861, 1862, 1865, 1866, 1868, 1869, 1860, + 1870, 1871, 1868, 1859, 1869, 1872, 1875, 1873, 1871, 1873, + 1876, 1872, 1866, 1863, 1877, 1877, 1876, 1878, 1879, 1880, - 1880, 1881, 1875, 1882, 1883, 1886, 1880, 1881, 1874, 1877, - 1884, 1887, 1888, 1890, 1884, 1889, 1889, 1888, 1893, 1883, - 1891, 1878, 1894, 1882, 0, 1886, 1894, 1895, 1895, 1897, - 1884, 1904, 1890, 1887, 1896, 1891, 1900, 1893, 1897, 1899, - 1896, 1898, 1898, 1899, 1901, 1901, 1902, 1900, 1903, 1905, - 1904, 1906, 1900, 1907, 1905, 1908, 1911, 1909, 1910, 1912, - 1912, 1908, 1903, 1910, 1913, 1913, 1914, 1902, 1916, 1911, - 1914, 1906, 1909, 1907, 1917, 1918, 1926, 1916, 1919, 1919, - 1921, 1921, 1922, 1923, 0, 1917, 1925, 1922, 1922, 1923, - 1917, 1927, 1925, 1928, 1929, 1918, 1927, 1931, 1933, 1932, + 1870, 1865, 1878, 1881, 1882, 1875, 1883, 1879, 1884, 1883, + 1885, 1886, 1886, 1889, 1887, 1888, 1882, 1890, 1893, 1880, + 1887, 1888, 1881, 1891, 1894, 1895, 1884, 1891, 1896, 1896, + 1895, 1897, 1890, 1889, 1898, 1900, 1885, 1901, 1893, 1902, + 1902, 1901, 1903, 1891, 1904, 1907, 1894, 1909, 1903, 1898, + 1897, 1905, 1905, 1904, 1900, 1906, 1907, 1908, 1908, 1906, + 1910, 1907, 1911, 1913, 1912, 1914, 1915, 1917, 1909, 1912, + 1916, 1918, 1915, 1919, 1910, 1924, 1918, 1920, 1920, 1921, + 1921, 1911, 1917, 1913, 1924, 1914, 1919, 1922, 1916, 1925, + 1926, 1922, 1927, 1927, 1929, 1929, 1930, 1931, 1933, 1934, - 1929, 1934, 1926, 1932, 1938, 1928, 1935, 1936, 1937, 1931, - 1933, 1939, 1935, 1940, 1937, 1941, 1943, 1944, 1940, 1945, - 1948, 1948, 1947, 1938, 1945, 1947, 1934, 1941, 1943, 1936, - 1951, 1939, 1949, 1949, 1950, 1950, 1944, 1952, 1953, 1956, - 1954, 1955, 1961, 1952, 1953, 1954, 1958, 1955, 1956, 1960, - 1951, 1958, 1960, 1964, 1961, 1962, 1962, 1965, 1966, 1967, - 1967, 1968, 1969, 1966, 1973, 1964, 1970, 1969, 1974, 1965, - 1968, 1970, 1971, 1972, 1972, 1971, 1975, 1974, 1976, 1977, - 1978, 1979, 1980, 1977, 1973, 1978, 1981, 1979, 1982, 1983, - 1985, 1985, 1986, 1988, 1975, 1981, 1987, 1976, 1989, 1989, + 1925, 1930, 1930, 1931, 1933, 1925, 1935, 1936, 1937, 1939, + 1926, 1935, 1940, 1942, 1937, 1941, 1940, 1943, 1944, 1936, + 1945, 1939, 1946, 1943, 1947, 1934, 1945, 1941, 1948, 1952, + 1949, 1951, 1953, 1948, 1956, 1956, 1955, 1953, 1942, 1955, + 1944, 1946, 1949, 1951, 1947, 1957, 1957, 1959, 1952, 1958, + 1958, 1960, 1961, 1964, 1962, 1963, 1969, 1960, 1961, 1962, + 1966, 1963, 1964, 1968, 1972, 1966, 1968, 1959, 1969, 1970, + 1970, 1973, 1974, 1975, 1975, 1976, 1972, 1974, 1981, 1979, + 1977, 1978, 1979, 1973, 1976, 1977, 1978, 1980, 1980, 1983, + 1982, 1984, 1985, 1988, 1990, 1986, 1985, 1987, 1981, 1982, - 1980, 1992, 1985, 1983, 1993, 1987, 1982, 1990, 1991, 1993, - 1986, 1994, 2000, 1988, 1997, 1997, 1990, 2001, 1999, 2003, - 1991, 1999, 1992, 2004, 1994, 2005, 2006, 2010, 2000, 2007, - 2007, 2005, 2015, 2001, 2003, 2010, 2008, 2004, 2008, 2009, - 2009, 2012, 2012, 2006, 2013, 2013, 2016, 2017, 2019, 2018, - 2022, 2020, 2016, 2017, 2023, 2015, 2018, 2021, 2021, 2022, - 2024, 2025, 2026, 2028, 2027, 2029, 2032, 2033, 2030, 2034, - 2019, 2020, 2024, 2025, 2030, 2023, 2027, 2026, 2035, 2035, - 2029, 2034, 2036, 2037, 2040, 2038, 2032, 2030, 2038, 2028, - 2033, 2039, 2042, 2043, 2044, 2043, 2039, 2042, 2046, 2048, + 1986, 1991, 1994, 1987, 1989, 1993, 1993, 1983, 1996, 1995, + 1984, 1988, 1990, 1989, 1998, 1991, 2000, 1993, 1995, 1999, + 1994, 1997, 1997, 1998, 2001, 2002, 2005, 2005, 1996, 2001, + 2007, 1999, 2008, 2007, 2009, 2012, 2011, 2000, 2002, 2013, + 2014, 2015, 2015, 2023, 2016, 2013, 2016, 2018, 2008, 2012, + 2009, 2011, 2017, 2017, 2027, 2018, 2024, 2014, 2020, 2020, + 2021, 2021, 2024, 2025, 2026, 2028, 2023, 2029, 2029, 2025, + 2030, 2026, 2031, 2034, 2032, 2033, 2027, 2035, 2036, 2030, + 2037, 2040, 2041, 2251, 2038, 2028, 2032, 2033, 2034, 2035, + 2038, 2043, 2043, 2031, 2042, 2037, 2044, 2045, 2048, 2046, - 2036, 2045, 2050, 2037, 2040, 2046, 2045, 2051, 2048, 2052, - 2054, 2053, 2044, 2053, 2058, 2060, 2051, 2055, 2059, 2059, - 2050, 2052, 2057, 2055, 2057, 2061, 2065, 2063, 2058, 2054, - 2061, 2062, 2063, 2062, 2064, 2066, 2067, 2069, 2068, 2064, - 2070, 2060, 2067, 2068, 2065, 2074, 2075, 2079, 2071, 2072, - 2069, 2078, 2070, 2071, 2071, 2066, 2083, 2072, 2076, 2076, - 2075, 2077, 2077, 2080, 2074, 2081, 2078, 2079, 2084, 2080, - 2081, 2082, 2095, 2082, 2083, 2086, 2084, 2085, 2085, 2087, - 2087, 2088, 2088, 2089, 2084, 2090, 2091, 2086, 2093, 2094, - 2090, 2094, 2089, 2095, 2097, 0, 2096, 2093, 2098, 2099, + 2251, 2040, 2046, 2038, 2036, 2041, 2042, 2047, 2050, 2051, + 2052, 2051, 2047, 2050, 2044, 2053, 2054, 2045, 2048, 2058, + 2053, 2056, 2059, 2054, 2060, 2061, 2062, 2061, 2052, 2063, + 2056, 2059, 2065, 2066, 2065, 2063, 2060, 2058, 2067, 2067, + 2068, 2069, 2070, 2071, 2070, 2062, 2069, 2066, 2071, 2072, + 2073, 2074, 2075, 2078, 2072, 2076, 2077, 2079, 2075, 2080, + 2076, 2082, 2079, 2079, 2083, 2078, 2068, 2080, 2073, 2077, + 2086, 2074, 2084, 2084, 2085, 2085, 2087, 2088, 2083, 2089, + 2082, 2091, 2092, 2088, 2089, 2086, 2090, 0, 2090, 2094, + 2092, 2093, 2093, 2095, 2095, 2097, 2087, 2099, 2092, 2091, - 2093, 2096, 2096, 2101, 2091, 2102, 2097, 2098, 2103, 2105, - 2102, 2099, 2106, 2103, 2107, 2101, 2108, 2108, 2109, 2110, - 2112, 2116, 2105, 2107, 2111, 2114, 2113, 2117, 2118, 0, - 2114, 2127, 2106, 2116, 2112, 2121, 2109, 2110, 2119, 2117, - 2111, 2113, 2120, 2119, 2121, 2124, 2126, 2120, 2118, 2129, - 2128, 2124, 2126, 2130, 2127, 2132, 2132, 2131, 2135, 2133, - 2134, 2134, 2139, 2138, 2124, 2128, 2131, 2129, 2133, 2136, - 2137, 2141, 2147, 2136, 2140, 2137, 2138, 2135, 2130, 2142, - 2140, 2139, 2143, 2144, 2142, 2142, 2146, 2145, 2143, 2144, - 2145, 2152, 2147, 2141, 2146, 2150, 2150, 2151, 2151, 2155, + 2098, 2094, 2096, 2096, 2097, 2098, 2102, 2101, 2102, 2103, + 2105, 2106, 2104, 2107, 2109, 2099, 2101, 2104, 2104, 2101, + 2106, 2113, 2105, 2110, 2111, 2107, 2109, 2114, 2110, 2111, + 2103, 2115, 2116, 2116, 2113, 2117, 2118, 2120, 2121, 2119, + 2115, 2122, 2130, 2123, 2127, 2125, 2126, 2114, 2123, 2136, + 2138, 2130, 2121, 2117, 2118, 2119, 2122, 2125, 2126, 2137, + 2128, 2129, 2120, 2133, 2127, 2128, 2129, 2135, 2138, 2133, + 2139, 2140, 2136, 2135, 2137, 2141, 2141, 2142, 2143, 2143, + 2140, 2144, 2133, 2145, 2146, 2147, 2142, 2145, 2148, 2146, + 2149, 2150, 2156, 2152, 2164, 2139, 2149, 2151, 2147, 2152, - 2152, 2153, 2153, 2154, 2154, 2158, 2156, 2157, 2159, 2159, - 2158, 2155, 2151, 2157, 2160, 2160, 2161, 2165, 2164, 2162, - 2167, 2161, 2164, 2151, 2156, 2162, 2166, 2169, 2170, 2172, - 2166, 2171, 2174, 2170, 2173, 2175, 2176, 2165, 2177, 2173, - 2167, 2178, 2181, 2177, 2172, 2179, 2179, 2183, 2184, 2180, - 2174, 2175, 2169, 2180, 2171, 2182, 2176, 2181, 2185, 2186, - 2182, 2188, 2187, 2178, 2189, 2193, 2184, 2187, 2190, 2190, - 2185, 2192, 2194, 2183, 2188, 2195, 2196, 2197, 2186, 2192, - 2198, 2199, 2189, 2200, 2193, 0, 2204, 2202, 2206, 2205, - 2207, 2194, 2207, 2199, 2206, 2212, 2197, 2211, 2195, 2204, + 2144, 2155, 2151, 2151, 2153, 2154, 2164, 2148, 2154, 2155, + 2153, 2161, 2156, 2150, 2159, 2159, 2160, 2160, 2162, 2162, + 2161, 2163, 2163, 2165, 2166, 2168, 2168, 2167, 2169, 2169, + 2166, 2160, 2167, 2170, 2171, 2173, 2174, 2176, 2170, 2173, + 2171, 2165, 2160, 2175, 2178, 2179, 2181, 2175, 2180, 2182, + 2179, 2184, 2183, 2185, 2182, 2186, 2174, 2176, 2187, 2190, + 2186, 2181, 2188, 2188, 2189, 2192, 2193, 2184, 2189, 2178, + 2183, 2180, 2191, 2185, 2190, 2194, 2195, 2191, 2196, 2197, + 2187, 2198, 2201, 2196, 2193, 2199, 2199, 2194, 2202, 2203, + 2201, 2192, 2197, 2204, 2205, 2195, 2206, 2208, 2207, 2198, - 2196, 2198, 2202, 2205, 2200, 2208, 2208, 2209, 2210, 2212, - 2211, 2210, 2209, 2213, 2214, 2214, 2215, 2215, 2216, 2218, - 2216, 2217, 2217, 2219, 2220, 2220, 2213, 2227, 2221, 2222, - 2222, 2223, 2223, 2224, 2218, 2228, 2219, 2221, 2224, 2226, - 2221, 2229, 2230, 2230, 2226, 2231, 2231, 2227, 2232, 2233, - 2233, 2234, 2240, 2229, 2237, 2228, 2235, 2235, 2236, 2237, - 2238, 2238, 2239, 2239, 2242, 2241, 2240, 2232, 2243, 2234, - 2244, 2246, 2248, 2236, 2241, 2250, 2246, 2247, 2247, 2249, - 2249, 2242, 2243, 2252, 2251, 2255, 2252, 2253, 2253, 2244, - 2251, 2248, 2256, 2250, 2254, 2254, 2257, 2259, 2257, 2260, + 2209, 2213, 2211, 2216, 2215, 2216, 2214, 2202, 2203, 2208, + 2215, 2217, 2217, 2273, 2213, 2206, 2204, 2211, 2205, 2207, + 2214, 2209, 2218, 2219, 2220, 2221, 2219, 2218, 2222, 2223, + 2223, 2224, 2224, 2225, 2227, 2225, 2273, 2220, 2228, 2221, + 2236, 2222, 2226, 2226, 2229, 2229, 2230, 2231, 2231, 2227, + 2237, 2228, 2232, 2232, 2233, 2230, 2235, 2238, 2230, 2233, + 2236, 2235, 2239, 2239, 2240, 2240, 2241, 2242, 2242, 2238, + 2237, 2243, 2244, 2244, 2246, 2245, 2247, 2247, 2249, 2246, + 2248, 2248, 2250, 2252, 2253, 2241, 2256, 2256, 2255, 2243, + 2245, 2250, 2249, 2255, 2257, 2258, 2258, 2252, 2259, 2260, - 2261, 2261, 2263, 2253, 2255, 2264, 2265, 2256, 2268, 2266, - 2267, 2267, 2259, 2266, 2269, 2270, 2271, 2274, 2260, 2269, - 2276, 2265, 2263, 2273, 2273, 2275, 2277, 2268, 2264, 2278, - 2270, 2271, 2275, 2279, 2276, 2280, 2280, 2274, 2282, 2281, - 2282, 2286, 2283, 2285, 2277, 2283, 2287, 2278, 2281, 2285, - 2288, 2287, 2289, 2286, 2290, 2288, 2292, 2291, 2293, 2279, - 2283, 2292, 2283, 2295, 2296, 2297, 2298, 2290, 2295, 2296, - 2299, 2300, 2298, 2301, 2304, 2305, 2302, 2289, 2291, 2301, - 2297, 2302, 2303, 2311, 2293, 2307, 2300, 2303, 2305, 2306, - 2316, 2299, 2306, 2308, 2307, 2309, 2310, 2311, 2324, 2304, + 2264, 2261, 2265, 2253, 2261, 2260, 2262, 2262, 2263, 2263, + 2266, 2268, 2266, 2257, 2269, 2272, 2259, 2265, 2277, 2264, + 2270, 2270, 2262, 2274, 2275, 2279, 2268, 2278, 2275, 2276, + 2276, 2280, 2278, 2269, 2283, 2272, 2284, 2277, 2274, 2285, + 2279, 2282, 2282, 2284, 2286, 2287, 2280, 2288, 2289, 2289, + 2290, 2296, 2295, 2285, 2283, 2291, 2296, 2291, 2292, 2290, + 2294, 2292, 2286, 2287, 2295, 2297, 2294, 2298, 2299, 2300, + 2297, 2302, 2301, 2288, 2304, 2305, 2292, 2301, 2292, 2304, + 2305, 2299, 2307, 2306, 2309, 2308, 2310, 2311, 2307, 2312, + 2300, 2308, 2298, 2311, 2312, 2313, 2314, 2302, 2306, 2315, - 2312, 2313, 2308, 2324, 2309, 2310, 2312, 2313, 2314, 2318, - 2316, 2320, 2314, 2319, 2319, 2321, 2321, 2320, 2318, 2322, - 2323, 2323, 2325, 2327, 2321, 2328, 2329, 2329, 2322, 2331, - 2330, 2333, 2334, 2338, 2335, 2336, 2338, 2340, 2331, 2327, - 2341, 2328, 2325, 2333, 2325, 2330, 2339, 2336, 2334, 2335, - 0, 2339, 2341, 2342, 2342, 2343, 2343, 2340, 2345, 2345, - 2346, 2347, 2348, 2346, 2349, 2350, 2347, 2352, 2348, 2355, - 2349, 2351, 2351, 2354, 2350, 2353, 2353, 2356, 2357, 2357, - 2358, 2352, 2360, 2355, 2359, 2354, 2358, 2360, 2362, 2368, - 2363, 2366, 2362, 2363, 2364, 2364, 2356, 2365, 2359, 2367, + 2313, 2310, 2317, 2316, 2318, 2309, 2316, 2319, 2320, 2321, + 2326, 2317, 2315, 2318, 2322, 2324, 2319, 2320, 2323, 2324, + 2322, 2314, 2328, 2321, 2323, 2329, 2329, 2330, 2331, 2331, + 2326, 2328, 2332, 2330, 2333, 2333, 2335, 2331, 2334, 2337, + 2341, 2332, 2340, 2334, 2338, 2339, 2339, 2343, 2344, 2341, + 2345, 2346, 2350, 2352, 2352, 2337, 2335, 2340, 2335, 2343, + 2338, 2351, 2349, 2346, 2344, 2345, 2348, 2349, 0, 2348, + 2353, 2353, 2350, 2351, 2355, 2355, 2356, 2357, 2358, 2356, + 2359, 2360, 2357, 2362, 2358, 2365, 2359, 2361, 2361, 2364, + 2360, 2363, 2363, 2366, 2367, 2367, 2368, 2362, 2370, 2365, - 2366, 2369, 2365, 2370, 2370, 2369, 2371, 2373, 2367, 2368, - 2374, 2375, 2373, 2376, 2377, 2378, 2379, 2380, 2377, 2371, - 2381, 2379, 2382, 2380, 2383, 2384, 2381, 2376, 2385, 2386, - 2374, 2375, 2389, 2385, 2388, 2378, 2390, 2398, 2398, 2391, - 2382, 2390, 2397, 2383, 2384, 2391, 2388, 2392, 2389, 2393, - 2386, 2393, 2395, 2400, 2399, 2392, 2397, 2399, 2401, 2401, - 2404, 2395, 2405, 2406, 2404, 2407, 2407, 2408, 2405, 2411, - 2411, 2413, 2415, 2419, 2416, 2406, 2408, 2420, 2419, 2400, - 2421, 2430, 2422, 2423, 2424, 2424, 2415, 2422, 2423, 2413, - 2416, 2426, 2426, 2428, 2429, 2429, 2431, 2430, 2434, 2428, + 2369, 2364, 2368, 2370, 2372, 2378, 2373, 2376, 2372, 2373, + 2374, 2374, 2366, 2375, 2369, 2377, 2376, 2379, 2375, 2380, + 2380, 2379, 2381, 2383, 2377, 2378, 2384, 2385, 2383, 2386, + 2387, 2388, 2389, 2390, 2387, 2381, 2391, 2389, 2392, 2390, + 2393, 2394, 2391, 2386, 2395, 2396, 2384, 2385, 2399, 2395, + 2398, 2388, 2400, 2408, 2408, 2401, 2392, 2400, 2407, 2393, + 2394, 2401, 2398, 2402, 2399, 2403, 2396, 2403, 2405, 2410, + 2409, 2402, 2407, 2409, 2411, 2411, 2414, 2405, 2415, 2416, + 2414, 2417, 2417, 2418, 2415, 2421, 2421, 2423, 2425, 2429, + 2426, 2416, 2418, 2430, 2429, 2410, 2431, 2440, 2432, 2433, - 2432, 2421, 2436, 2420, 2435, 2432, 2440, 2435, 2437, 2438, - 2438, 2442, 2443, 2441, 2436, 2440, 2447, 2434, 2431, 2441, - 2437, 2445, 2445, 2446, 2448, 2453, 2446, 2443, 2454, 2442, - 2450, 2450, 2451, 2451, 2452, 2447, 2455, 2454, 2456, 2452, - 2456, 2455, 2448, 2453, 2457, 2458, 2460, 2461, 2459, 2462, - 2463, 2460, 2464, 2464, 2468, 2463, 2465, 2465, 2457, 2458, - 2459, 2466, 2466, 2467, 2467, 2469, 2468, 2461, 2470, 2462, - 2471, 2471, 2473, 2470, 2472, 2472, 2474, 2475, 2476, 2477, - 2478, 2478, 2479, 2469, 2473, 2480, 2480, 2482, 2474, 2481, - 2481, 2483, 2485, 2484, 2486, 2477, 2488, 2475, 2482, 2476, + 2434, 2434, 2425, 2432, 2433, 2423, 2426, 2436, 2436, 2438, + 2439, 2439, 2441, 2440, 2444, 2438, 2442, 2431, 2446, 2430, + 2445, 2442, 2450, 2445, 2447, 2448, 2448, 2452, 2453, 2451, + 2446, 2450, 2457, 2444, 2441, 2451, 2447, 2455, 2455, 2456, + 2458, 2463, 2456, 2453, 2464, 2452, 2460, 2460, 2461, 2461, + 2462, 2457, 2465, 2464, 2466, 2462, 2466, 2465, 2458, 2463, + 2467, 2468, 2470, 2471, 2469, 2472, 2473, 2470, 2474, 2474, + 2478, 2473, 2475, 2475, 2467, 2468, 2469, 2476, 2476, 2477, + 2477, 2479, 2478, 2471, 2480, 2472, 2481, 2481, 2483, 2480, + 2482, 2482, 2484, 2485, 2486, 2487, 2490, 2488, 2493, 2479, - 2484, 2479, 2487, 2483, 2485, 2489, 2491, 2487, 2490, 2490, - 2492, 2493, 2497, 2494, 2486, 2491, 2488, 2495, 2496, 2498, - 2501, 2498, 2502, 2499, 2503, 2489, 2494, 2500, 2500, 2501, - 2505, 2493, 2496, 2506, 2497, 2499, 2492, 2502, 2507, 2503, - 2508, 2495, 2509, 2508, 2510, 2511, 2512, 2512, 2505, 2510, - 2511, 2513, 2513, 2514, 2514, 2506, 2509, 2516, 2516, 2518, - 2518, 2507, 2519, 2520, 2521, 2524, 2522, 2526, 2525, 2528, - 2527, 2529, 2531, 2530, 2520, 2530, 2532, 2533, 2528, 2537, - 2519, 2522, 2538, 2521, 0, 2524, 2525, 2534, 2534, 2526, - 2527, 2529, 2531, 2537, 2532, 2533, 2536, 2536, 2539, 2540, + 2483, 2489, 2489, 2491, 2491, 2485, 2492, 2492, 2494, 2493, + 2495, 2496, 2484, 2488, 2486, 2490, 2487, 2495, 2497, 2498, + 2494, 2499, 2500, 2496, 2498, 2501, 2501, 2502, 2503, 2504, + 2505, 2506, 2507, 2509, 2508, 2509, 2502, 2513, 2497, 2510, + 2516, 2499, 2500, 2505, 2511, 2511, 2507, 2514, 2512, 2504, + 2517, 2510, 2513, 2518, 2503, 2506, 2508, 2512, 2516, 2520, + 2519, 2521, 2514, 2519, 2522, 2530, 2521, 2523, 2523, 2522, + 2524, 2524, 2517, 2520, 2525, 2525, 2518, 2527, 2527, 2529, + 2529, 2531, 2532, 2530, 2533, 2535, 2536, 2537, 2538, 2539, + 2540, 2541, 2531, 2541, 2542, 2543, 2549, 2544, 2539, 2533, - 2540, 2542, 2543, 2543, 2538, 2544, 2545, 2539, 2546, 2548, - 2542, 2547, 2549, 2550, 2551, 2546, 2552, 2552, 2553, 2553, - 2554, 2555, 2556, 2544, 2545, 2560, 2547, 2548, 2556, 2550, - 2549, 2557, 2557, 2551, 2558, 2558, 2559, 2561, 2562, 2555, - 2554, 2563, 2559, 2560, 2564, 2565, 2566, 0, 2567, 2564, - 2569, 2569, 2561, 2567, 2568, 2563, 2568, 2562, 2570, 2573, - 2570, 2571, 2571, 2575, 2576, 2565, 2566, 2577, 2578, 2579, - 2580, 2581, 2575, 2582, 2579, 2580, 2585, 2586, 2573, 2577, - 2586, 2587, 2587, 2576, 2588, 2589, 2590, 2590, 2578, 2591, - 2592, 2581, 2582, 2593, 2595, 2598, 2585, 2593, 2596, 2588, + 0, 2532, 2545, 2545, 2536, 2535, 2547, 2547, 2538, 2537, + 2540, 2548, 2550, 2543, 2542, 2544, 2551, 2551, 2549, 2553, + 2555, 2550, 2554, 2554, 2556, 2548, 2557, 2559, 2553, 2558, + 2560, 2561, 2562, 2557, 2563, 2563, 2564, 2564, 2555, 2565, + 2566, 2573, 2556, 2567, 2558, 2559, 2571, 2561, 2560, 2567, + 2570, 2562, 2568, 2568, 2569, 2569, 2570, 2572, 2566, 2565, + 2573, 2574, 2575, 2576, 2571, 2577, 2578, 2575, 2579, 2584, + 2579, 2578, 2572, 2580, 2580, 2574, 2581, 2586, 2581, 2582, + 2582, 2587, 2588, 2576, 2589, 2577, 2586, 2590, 2584, 2592, + 2591, 2593, 2590, 2596, 2588, 2591, 2597, 2598, 2598, 2597, - 2591, 2600, 2596, 2589, 2601, 2592, 2597, 2597, 2598, 2595, - 2602, 2603, 2603, 2605, 2606, 2607, 2600, 2608, 2608, 2607, - 2609, 2610, 2610, 2606, 2601, 2605, 2611, 2612, 2613, 2614, - 2602, 2611, 2615, 2616, 2616, 2622, 2612, 2621, 2621, 2609, - 2624, 2614, 2623, 2623, 2613, 2625, 2626, 2627, 2628, 2628, - 2629, 2630, 2615, 2624, 0, 2626, 2627, 2622, 2625, 2632, - 2632, 2637, 2635, 2636, 2638, 2639, 2630, 2635, 2636, 2638, - 2629, 2640, 2641, 2639, 2642, 2637, 2644, 2647, 2645, 2646, - 2651, 2641, 2642, 2645, 2646, 2648, 2648, 2649, 2649, 2650, - 2640, 2644, 2647, 2653, 2650, 2652, 2652, 2654, 2655, 2651, + 2587, 2599, 2600, 2602, 2589, 2601, 2601, 2603, 2604, 2592, + 2593, 2606, 2604, 2596, 2602, 2607, 2599, 2608, 2608, 2607, + 2600, 2609, 2603, 2611, 2612, 2613, 2606, 2614, 2614, 2616, + 2617, 2618, 2619, 2619, 2609, 2618, 2620, 2624, 2611, 2617, + 2623, 2616, 2621, 2621, 2612, 2613, 2622, 2625, 2626, 2623, + 2633, 2622, 2635, 2624, 2636, 2620, 2627, 2627, 0, 2625, + 2632, 2632, 2634, 2634, 2637, 2635, 2638, 2636, 2626, 2639, + 2640, 2640, 2633, 2637, 2641, 2638, 2642, 2647, 2639, 2644, + 2644, 2648, 2647, 2649, 2650, 2651, 2648, 2652, 2654, 2650, + 2653, 2642, 2656, 2651, 2641, 2657, 2654, 2649, 2658, 2653, - 2653, 2656, 2654, 2657, 0, 2658, 2659, 2659, 2660, 2657, - 2658, 2666, 2661, 2662, 2662, 2668, 2655, 2661, 2668, 2656, - 2663, 2663, 2669, 2660, 2666, 2667, 2667, 2669, 2669, 2670, - 2671, 2672, 2673, 2674, 2670, 2671, 2675, 2674, 2673, 2676, - 2677, 2675, 2678, 2679, 2682, 2672, 2680, 2681, 2676, 2682, - 2678, 2683, 2680, 2681, 2685, 2677, 2687, 2686, 2689, 2687, - 2691, 2685, 2686, 2683, 2679, 2691, 2692, 2693, 2694, 2695, - 2689, 2692, 2701, 2696, 2697, 2697, 2706, 2698, 2695, 2707, - 0, 2694, 2696, 2702, 2708, 2693, 2698, 2703, 2711, 2702, - 2701, 2709, 2709, 2703, 2710, 2706, 2712, 2713, 2715, 2707, + 2657, 2659, 2663, 2658, 2660, 2660, 2652, 2656, 2661, 2661, + 2662, 2664, 2664, 2665, 2666, 2662, 2659, 2667, 2668, 2666, + 2665, 2663, 2669, 2672, 2670, 2671, 2671, 2673, 2669, 2670, + 2674, 2674, 2673, 2675, 2675, 2667, 2668, 2678, 2672, 2679, + 2679, 2680, 2681, 2684, 2680, 2689, 2682, 2681, 2681, 2683, + 2678, 2682, 2685, 2688, 2683, 2686, 2687, 2684, 2685, 2686, + 2689, 2687, 2688, 2690, 2691, 2694, 2692, 2693, 2695, 2697, + 2694, 2690, 2692, 2693, 2698, 2699, 2697, 2701, 2699, 2698, + 2695, 2703, 2704, 2705, 2706, 2691, 2703, 2704, 2713, 2701, + 2707, 2708, 2709, 2709, 2710, 2718, 2714, 2706, 2715, 2707, - 2717, 2710, 2719, 2708, 2722, 2712, 2720, 2711, 2714, 2714, - 2720, 0, 2713, 2721, 2721, 2717, 2725, 2715, 2723, 2724, - 2726, 0, 2719, 2728, 2723, 2724, 2726, 2727, 2727, 2722, - 2729, 2728, 2731, 2732, 2725, 2729, 2734, 2735, 2737, 2736, - 2735, 2731, 2734, 2736, 2738, 2741, 2732, 2740, 2740, 2742, - 2742, 2751, 2737, 2743, 2743, 2745, 2745, 2746, 2753, 2738, - 2747, 2746, 2757, 2741, 2752, 2747, 2749, 2749, 2754, 2752, - 2753, 2751, 2755, 2754, 2754, 2758, 2758, 2760, 2760, 2761, - 2761, 2763, 2757, 2762, 2755, 2766, 2762, 2765, 2765, 2768, - 2769, 2769, 2770, 2770, 2763, 2771, 2771, 2772, 2773, 2773, + 2708, 2705, 2714, 2710, 2715, 2719, 2713, 2720, 2721, 2721, + 2722, 2723, 2724, 2725, 2718, 2726, 2726, 2722, 2727, 2729, + 2731, 2724, 2734, 2732, 2737, 2719, 2720, 2732, 2725, 2735, + 2723, 2733, 2733, 2736, 2729, 2735, 0, 2727, 2738, 2736, + 2731, 2740, 2737, 2741, 2738, 2739, 2739, 2734, 2741, 2740, + 2743, 2744, 2746, 2747, 2749, 2750, 2747, 2748, 2746, 2743, + 2753, 2748, 2752, 2752, 2744, 2754, 2754, 2763, 2749, 0, + 2750, 2755, 2755, 2757, 2757, 2758, 2759, 2765, 2753, 2758, + 2764, 2759, 2761, 2761, 2767, 2764, 2766, 2763, 2769, 2765, + 2775, 2766, 2766, 2770, 2770, 2779, 2767, 2772, 2772, 2773, - 2774, 2775, 2776, 2766, 2777, 2778, 2778, 2779, 2782, 2768, - 2777, 2779, 2772, 2774, 2782, 2783, 2776, 2785, 2786, 2775, - 2783, 2789, 2785, 2785, 2787, 2788, 2790, 2789, 2791, 2792, - 2793, 2793, 2790, 2792, 2796, 2798, 2801, 2799, 2804, 2796, - 2799, 2786, 2806, 2798, 2787, 2788, 2802, 2803, 2803, 2802, - 2807, 2808, 2805, 2791, 2810, 2804, 2804, 2805, 2809, 2809, - 2806, 2801, 2812, 2811, 2813, 2808, 2811, 2814, 2810, 2817, - 2807, 2826, 2815, 0, 2811, 2814, 2812, 2815, 2815, 2816, - 2818, 2818, 2823, 2813, 2816, 2816, 2819, 2819, 2817, 2820, - 2820, 2821, 2821, 2822, 2822, 2824, 2825, 2826, 2823, 2827, + 2773, 2774, 2776, 2775, 2774, 2778, 2778, 2781, 2769, 2782, + 2782, 2783, 2783, 2779, 2785, 2776, 2784, 2784, 2786, 2786, + 2787, 2788, 2789, 2799, 2790, 2791, 2791, 2781, 2792, 2785, + 2790, 2795, 2792, 2787, 2800, 2796, 2789, 2795, 2798, 2788, + 2796, 2801, 2802, 2798, 2798, 2803, 2799, 2804, 2802, 2805, + 2811, 2803, 2809, 2805, 2800, 2806, 2806, 2809, 2811, 2812, + 2814, 2801, 2812, 2815, 2816, 2816, 2815, 2821, 2818, 2817, + 2819, 2820, 2804, 2818, 2822, 2822, 2823, 2826, 2828, 2825, + 2830, 2821, 2869, 2828, 2828, 2814, 2817, 2817, 2819, 2824, + 2823, 2820, 2824, 2825, 2827, 2839, 2826, 2869, 2829, 2830, - 2824, 2828, 2829, 2830, 2827, 2831, 2832, 2829, 2834, 2834, - 2835, 2835, 2830, 2837, 2836, 2840, 2825, 2836, 2839, 2839, - 2828, 2845, 2840, 2841, 2841, 2831, 2832, 2842, 2844, 2844, - 2845, 2837, 2842, 2846, 2847, 2848, 2850, 2851, 2851, 2853, - 2854, 2852, 2846, 2847, 2848, 2852, 2855, 2856, 2853, 2859, - 2857, 2858, 2865, 2865, 2850, 2857, 2857, 2855, 2859, 2854, - 2868, 2860, 2856, 2864, 2858, 2860, 2867, 2867, 2864, 2869, - 2870, 2872, 2872, 2873, 2868, 2874, 2877, 2878, 2880, 2881, - 2883, 2885, 2873, 0, 2887, 2881, 2878, 2874, 2870, 2887, - 2888, 2890, 2883, 2893, 2869, 2888, 2889, 2889, 2880, 2892, + 2824, 2836, 2827, 2829, 2829, 2831, 2831, 2832, 2832, 2833, + 2833, 2834, 2834, 2835, 2835, 2837, 2838, 2836, 2840, 2841, + 2837, 2839, 2842, 2840, 2843, 2844, 2845, 2842, 2847, 2847, + 2848, 2848, 2849, 2843, 2850, 2849, 2838, 2853, 2841, 2852, + 2852, 2854, 2854, 2855, 2853, 2844, 2845, 2858, 2855, 2857, + 2857, 2859, 2850, 2860, 2861, 2863, 2858, 2864, 2864, 2866, + 2859, 2865, 2860, 2861, 2867, 2865, 2868, 2871, 2866, 2870, + 2872, 2882, 2873, 2863, 2870, 2870, 2873, 2868, 2881, 2872, + 2871, 2877, 2883, 2867, 2878, 2878, 2877, 2880, 2880, 2885, + 2885, 2887, 2881, 2886, 2890, 2894, 2882, 2892, 2897, 2891, - 2890, 2877, 2885, 2894, 2892, 2902, 2893, 2895, 2895, 2897, - 2897, 2895, 2898, 2898, 2899, 2899, 2900, 2894, 2901, 2908, - 2908, 2903, 2905, 2909, 2902, 2900, 2903, 2906, 2905, 2907, - 2910, 2911, 2906, 2913, 2907, 2912, 2915, 2914, 2901, 2922, - 2912, 2909, 2910, 2914, 2916, 2916, 2918, 2923, 2919, 2920, - 2918, 2913, 2911, 2919, 2920, 2921, 2921, 2924, 2922, 2926, - 2930, 2915, 2923, 2928, 2928, 2931, 2932, 2933, 2934, 2935, - 2932, 2940, 2924, 2930, 2936, 2937, 2933, 2941, 2931, 2926, - 2937, 2939, 2936, 2943, 2934, 2938, 2938, 2949, 2935, 2940, - 2939, 2942, 2942, 2946, 2946, 2947, 2947, 2951, 2951, 2953, + 2883, 2895, 2886, 2887, 2891, 2899, 2892, 2895, 2901, 2902, + 2897, 2903, 2903, 2901, 2902, 2894, 2904, 2906, 2907, 2890, + 2908, 2914, 2906, 2909, 2909, 2904, 2899, 2909, 2911, 2911, + 2914, 2907, 2912, 2912, 2908, 2913, 2913, 2915, 2917, 2916, + 2919, 2923, 2920, 2917, 2921, 2925, 2919, 2920, 2924, 2921, + 2922, 2922, 2927, 2929, 2930, 2930, 2926, 2915, 2916, 2923, + 2924, 2926, 2928, 2932, 2933, 2936, 2925, 2932, 2928, 2933, + 2927, 2934, 2935, 2935, 2937, 2938, 2934, 2940, 2929, 2942, + 2942, 2944, 2945, 2946, 2936, 2948, 2949, 2946, 2950, 2937, + 2938, 2947, 2954, 2951, 2944, 2945, 2950, 2940, 2951, 2953, - 2954, 2955, 2943, 2941, 2956, 2957, 2955, 2960, 2949, 2961, - 2957, 2959, 2959, 2962, 2963, 2953, 2954, 2964, 2961, 2962, - 2956, 2966, 2966, 2968, 2967, 2969, 2969, 2960, 2972, 2973, - 2976, 2977, 2977, 2979, 2974, 2973, 2964, 2963, 2967, 2974, - 2978, 2978, 2968, 2980, 2980, 2981, 2982, 2983, 2972, 2985, - 2986, 2984, 2976, 2979, 2987, 2982, 2981, 2984, 2988, 2988, - 2989, 2990, 2986, 2980, 2990, 2996, 2991, 2983, 2985, 2991, - 2992, 2992, 2997, 2998, 2987, 2989, 3002, 2996, 3001, 2998, - 2999, 2999, 3000, 3004, 3001, 3000, 3005, 3005, 3004, 3007, - 3006, 3008, 2997, 3009, 3002, 3006, 3013, 3008, 3010, 3010, + 2947, 2948, 2952, 2952, 2955, 2949, 2956, 2956, 2953, 2957, + 2954, 2960, 2960, 2961, 2961, 2963, 2965, 2965, 2967, 2968, + 2969, 2970, 2971, 2973, 2973, 2969, 2974, 2971, 2957, 2975, + 2955, 2977, 2978, 2976, 2967, 2968, 2963, 2970, 2975, 2976, + 2980, 2980, 2981, 2982, 2983, 2983, 2974, 2986, 2988, 2987, + 2990, 2978, 3000, 2988, 2977, 2987, 2981, 2991, 2991, 2992, + 2992, 2993, 2982, 2994, 2995, 2995, 2996, 2986, 2998, 2997, + 3001, 3000, 2990, 2999, 3002, 3004, 2993, 2996, 2997, 2999, + 3003, 3003, 3001, 2994, 2995, 3012, 3005, 3011, 2998, 3005, + 3004, 3017, 3006, 0, 3002, 3006, 3007, 3007, 3013, 3011, - 3012, 3014, 3015, 3016, 3016, 3017, 3018, 3019, 3007, 0, - 3009, 3009, 3012, 3024, 3013, 3015, 3019, 3021, 3021, 3022, - 3022, 3030, 3018, 3023, 3017, 3025, 3014, 3024, 3023, 3029, - 3025, 3026, 3026, 3027, 3027, 3028, 3028, 3031, 3037, 3032, - 3034, 3034, 3029, 3031, 3032, 3039, 3040, 3030, 3042, 3046, - 3041, 3043, 3043, 3045, 3045, 3047, 3049, 3037, 3048, 3051, - 3051, 3055, 3050, 3052, 3052, 3056, 3064, 3039, 3040, 3041, - 3042, 3050, 3048, 3054, 3047, 3046, 3049, 3057, 3063, 3054, - 3064, 3055, 3057, 3063, 3056, 3060, 3060, 3062, 3062, 3065, - 3066, 3067, 3068, 3068, 3071, 3065, 3069, 3073, 3071, 3067, + 3014, 3014, 3016, 3015, 3013, 3012, 3015, 3019, 3016, 3017, + 3020, 3020, 3019, 3021, 3022, 3023, 3027, 3024, 3021, 3025, + 3025, 3023, 3028, 3029, 3030, 3031, 3031, 3032, 3027, 3033, + 3034, 3036, 3036, 3022, 3024, 3024, 3039, 3030, 3038, 3034, + 3028, 3037, 3037, 3038, 3040, 3033, 3032, 3044, 3029, 3040, + 3039, 3041, 3041, 3042, 3042, 3043, 3043, 3045, 3046, 3052, + 3044, 3047, 3049, 3049, 3046, 3054, 3047, 3055, 3057, 3056, + 3058, 3058, 3060, 3060, 3061, 3062, 3064, 3063, 3052, 3066, + 3066, 3067, 3067, 3045, 3065, 3070, 3069, 3054, 3056, 3055, + 3057, 3063, 3069, 3065, 3062, 3071, 3064, 3072, 3075, 3082, - 3072, 3069, 3066, 3074, 3075, 3072, 3076, 3077, 3079, 3075, - 3080, 3081, 3082, 3077, 3085, 3084, 3079, 3073, 3076, 3086, - 3087, 3088, 3090, 3074, 3091, 3095, 3088, 3090, 3092, 3080, - 3085, 3081, 3082, 3084, 3092, 3093, 3086, 3086, 3097, 3096, - 3093, 3087, 3096, 3108, 3091, 3095, 3100, 3100, 3101, 3101, - 3102, 3097, 3106, 3106, 3102, 3107, 3109, 3109, 3111, 3111, - 3107, 3116, 3108, 3112, 3112, 3116, 3112, 3113, 3113, 3119, - 3113, 3114, 3114, 3115, 3115, 3118, 3115, 3121, 3119, 3122, - 3118, 3120, 3120, 3125, 3126, 3127, 3128, 3128, 3131, 3132, - 3127, 3134, 3135, 3122, 3133, 3121, 3132, 3137, 3133, 3144, + 3061, 3080, 3072, 3076, 3076, 3070, 3078, 3078, 3079, 3083, + 3081, 3082, 3089, 3079, 3071, 3080, 3081, 3083, 3085, 3075, + 3084, 3084, 3087, 3085, 3088, 3090, 3087, 3092, 3091, 3088, + 3093, 3096, 3089, 3091, 3095, 3097, 3093, 3098, 3100, 3092, + 3107, 0, 3095, 3101, 3102, 3090, 3103, 3104, 3106, 3109, + 3096, 3111, 3104, 3106, 3109, 3097, 3100, 3098, 3108, 3101, + 3107, 3102, 3102, 3112, 3108, 3113, 3112, 3103, 3116, 3116, + 3118, 3111, 3117, 3117, 3118, 3122, 3122, 3123, 3113, 3124, + 3125, 3125, 3123, 3127, 3127, 3128, 3128, 3132, 3128, 3129, + 3129, 3132, 3129, 3130, 3130, 3134, 3131, 3131, 3124, 3131, - 3134, 3138, 3140, 3125, 3126, 3145, 3138, 3135, 3139, 3139, - 3145, 3140, 3149, 3131, 3144, 3137, 3141, 3141, 3142, 3142, - 3143, 3143, 3146, 3147, 3148, 3150, 3151, 3152, 3147, 3147, - 3148, 3146, 3152, 3153, 3146, 3154, 3184, 3149, 3153, 3156, - 3150, 3155, 3155, 3157, 3160, 3156, 0, 3151, 3184, 3157, - 3158, 3158, 3159, 3159, 3154, 3161, 3164, 3164, 3167, 3160, - 3161, 3166, 3166, 3170, 3170, 3171, 3171, 3167, 3172, 3172, - 3173, 3173, 3175, 3175, 3176, 3176, 3177, 3177, 3178, 3178, - 3179, 3181, 3182, 3182, 3183, 3185, 3188, 3188, 3187, 3189, - 3181, 3191, 3199, 3183, 3195, 3190, 3192, 3192, 3193, 3193, + 3134, 3135, 3136, 3136, 3137, 3138, 3141, 3142, 3143, 3145, + 3135, 3144, 3144, 3143, 3148, 3151, 3149, 3150, 3152, 3138, + 3154, 3150, 3137, 3149, 3151, 3155, 3141, 3142, 3157, 3145, + 3155, 3156, 3156, 3152, 3158, 3158, 3161, 3157, 3154, 3148, + 3159, 3159, 3160, 3160, 3162, 3163, 3166, 3164, 3167, 3162, + 3165, 3161, 3164, 3164, 3163, 3168, 3165, 3163, 3171, 3169, + 3170, 3172, 3172, 3167, 3169, 3170, 3173, 3174, 3175, 3175, + 3177, 3166, 3173, 3174, 3176, 3176, 3168, 3171, 3178, 3181, + 3181, 3183, 3183, 3178, 3184, 3177, 3187, 3187, 3188, 3188, + 3189, 3189, 3196, 3184, 3190, 3190, 3192, 3192, 3193, 3193, - 3196, 3196, 3201, 3191, 3189, 3185, 3179, 3187, 3190, 3195, - 3199, 3200, 3202, 3202, 3200, 3203, 3205, 3206, 3207, 3205, - 3208, 3209, 3211, 3206, 3210, 3208, 3217, 3214, 3201, 3213, - 3217, 3218, 3207, 3203, 3221, 3213, 3214, 3233, 3211, 3230, - 3209, 3238, 3210, 3240, 3230, 3231, 3218, 3240, 3231, 3239, - 3233, 3234, 3234, 3235, 3235, 3236, 3236, 3241, 3239, 3243, - 3221, 3245, 3247, 3246, 3238, 3249, 3248, 3247, 3248, 3250, - 3250, 3252, 3251, 3243, 3246, 3253, 3254, 3241, 3255, 3256, - 3249, 3259, 3257, 3258, 3245, 3251, 3259, 3260, 3262, 3262, - 3252, 3257, 3254, 3253, 3256, 3258, 3261, 3263, 3268, 3264, + 3194, 3194, 3195, 3195, 3198, 3199, 3199, 3200, 3201, 3202, + 3204, 3204, 3205, 3198, 3206, 3206, 3200, 3207, 3196, 3219, + 3201, 3208, 3213, 3209, 3210, 3210, 3211, 3211, 3217, 3202, + 3218, 3205, 3207, 3218, 3208, 3209, 3221, 3213, 3214, 3214, + 3220, 3220, 3224, 3225, 3223, 3219, 3217, 3223, 3224, 3227, + 3226, 3228, 3231, 3232, 3221, 3226, 3229, 3225, 3231, 3235, + 3236, 3239, 3232, 3235, 3249, 3248, 3251, 3249, 3227, 3228, + 3248, 3257, 3229, 3252, 3252, 3236, 3253, 3253, 3260, 3251, + 3255, 3255, 3258, 3262, 3259, 3264, 3271, 3239, 3259, 3265, + 3266, 3258, 3268, 3270, 3257, 3266, 3272, 3262, 3260, 3267, - 3269, 3261, 3271, 3255, 3264, 3270, 3270, 3276, 3260, 3272, - 3272, 3271, 3268, 3273, 3273, 3274, 3274, 3263, 3275, 3275, - 3269, 3277, 3278, 3279, 3280, 3278, 3276, 3281, 3279, 3280, - 3282, 3283, 3284, 3286, 3288, 3285, 3292, 3283, 3286, 3287, - 3287, 3277, 3289, 3289, 3293, 3282, 3284, 3285, 3291, 3291, - 3296, 3292, 3281, 3298, 3288, 3294, 3294, 3301, 3301, 3302, - 3302, 3303, 3304, 3293, 3305, 3296, 3306, 3308, 3307, 3303, - 3305, 3298, 3306, 3309, 3310, 3311, 3311, 3313, 3313, 3310, - 3308, 3304, 3307, 3316, 3319, 3317, 3320, 3322, 3323, 3324, - 3320, 3333, 3309, 3323, 3327, 3328, 3325, 3326, 3319, 3334, + 3265, 3267, 3269, 3269, 3273, 3271, 3270, 3268, 3264, 3274, + 3275, 3277, 3276, 3278, 3272, 3279, 3287, 3280, 3278, 3282, + 3273, 3276, 3280, 3277, 3283, 3275, 3281, 3281, 3288, 3283, + 3287, 3289, 3289, 3290, 3274, 3295, 3279, 3291, 3291, 3282, + 3292, 3292, 3290, 3293, 3293, 3294, 3294, 3296, 3288, 3297, + 3298, 3299, 3297, 3300, 3295, 3298, 3299, 3301, 3302, 3303, + 3305, 3307, 3304, 3312, 3302, 3305, 3317, 3296, 3306, 3306, + 3308, 3308, 3301, 3303, 3304, 3310, 3310, 3311, 3300, 3313, + 3313, 3307, 3312, 3315, 3317, 3320, 3320, 3321, 3321, 3322, + 3323, 3326, 3311, 3324, 3325, 3327, 3328, 3322, 3315, 3324, - 3328, 3329, 3330, 3330, 3316, 3317, 3329, 3322, 3324, 3325, - 3326, 3333, 3335, 3327, 3336, 3336, 3337, 3334, 3338, 3339, - 3339, 3337, 3340, 3341, 3338, 3342, 3343, 3340, 3341, 3344, - 3342, 3335, 3346, 3346, 3347, 3344, 3348, 3348, 3350, 3347, - 3351, 3352, 3350, 3353, 3354, 3343, 3355, 3356, 3352, 3359, - 3359, 3357, 3355, 3361, 3361, 3363, 3362, 3364, 3365, 3351, - 3363, 3366, 3353, 3354, 3357, 3362, 3356, 3368, 3362, 3367, - 3367, 3369, 3368, 3371, 3366, 3373, 3364, 3365, 3372, 3372, - 3374, 3374, 3375, 3375, 3369, 3376, 3377, 3378, 3379, 3379, - 3376, 3380, 3385, 3377, 3373, 3381, 3380, 3381, 3383, 3371, + 3325, 3329, 3330, 3330, 3335, 3326, 3329, 3336, 3327, 3323, + 3332, 3332, 3338, 3339, 3341, 3328, 3342, 3339, 3343, 3344, + 3345, 3342, 3346, 3347, 3348, 3335, 3338, 3336, 3347, 3348, + 3349, 3349, 3344, 3345, 3341, 3352, 3353, 3343, 3354, 3355, + 3355, 3346, 3356, 3357, 3358, 3358, 3359, 3356, 3360, 3357, + 3362, 3359, 3363, 3360, 3353, 3352, 3361, 3354, 3363, 3365, + 3365, 3361, 3366, 3367, 3367, 3370, 3369, 3366, 3371, 3362, + 3369, 3372, 3373, 3374, 3375, 3371, 3376, 3378, 3378, 3374, + 3380, 3380, 3382, 3381, 3370, 3383, 3384, 3382, 3385, 3376, + 3372, 3373, 3381, 3375, 3387, 3381, 3386, 3386, 3388, 3387, - 3382, 3382, 3384, 3386, 3387, 3383, 3378, 3390, 3386, 3384, - 3392, 3385, 3389, 3389, 3393, 3392, 3394, 3395, 3399, 3393, - 3396, 3396, 3400, 3387, 3398, 3398, 3390, 3401, 3401, 3402, - 3402, 3403, 3405, 3405, 3413, 3394, 3395, 3399, 3403, 3406, - 3406, 3400, 3407, 3409, 3414, 3412, 3415, 3415, 3409, 3407, - 3412, 3416, 3416, 3413, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3414, 3420, 3420, 3420, 3420, 3420, 3420, - 3420, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3422, 3422, - 3422, 3422, 3422, 3422, 3422, 3423, 3423, 3423, 3423, 3423, - 3423, 3423, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3425, + 3390, 3385, 3391, 3391, 3383, 3384, 3392, 3393, 3393, 3394, + 3394, 3388, 3395, 3396, 3397, 3398, 3398, 3395, 3399, 3400, + 3396, 3400, 3402, 3399, 3403, 3392, 3390, 3401, 3401, 3402, + 3404, 3403, 3405, 3397, 3406, 3408, 3408, 3405, 3409, 3411, + 3412, 3413, 3414, 3418, 3411, 3412, 3415, 3415, 3419, 3404, + 3417, 3417, 0, 3406, 3420, 3420, 3422, 3409, 3421, 3421, + 3413, 3414, 3418, 3422, 3424, 3424, 3426, 3419, 3425, 3425, + 3428, 3431, 3432, 3426, 3433, 3428, 3431, 3434, 3434, 3435, + 3435, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3432, 0, 3433, 3439, 3439, 3439, 3439, 3439, 3439, - 3425, 3425, 3425, 3425, 3425, 3425, 3426, 3426, 3426, 3426, - 3426, 3426, 3426, 3428, 3428, 0, 3428, 3428, 3428, 3428, - 3429, 3429, 0, 0, 0, 3429, 3429, 3430, 3430, 0, - 0, 3430, 0, 3430, 3431, 0, 0, 0, 0, 0, - 3431, 3432, 3432, 0, 0, 0, 3432, 3432, 3433, 0, - 0, 0, 0, 0, 3433, 3434, 3434, 0, 3434, 3434, - 3434, 3434, 3435, 0, 0, 0, 0, 0, 3435, 3436, - 3436, 0, 0, 0, 3436, 3436, 3437, 3437, 0, 3437, - 3437, 3437, 3437, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, + 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3441, 3441, + 3441, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442, 3442, + 3442, 3442, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445, 3445, 3445, + 3445, 3445, 3445, 3447, 3447, 0, 3447, 3447, 3447, 3447, + 3448, 3448, 0, 0, 0, 3448, 3448, 3449, 3449, 0, + 0, 3449, 0, 3449, 3450, 0, 0, 0, 0, 0, + 3450, 3451, 3451, 0, 0, 0, 3451, 3451, 3452, 0, + 0, 0, 0, 0, 3452, 3453, 3453, 0, 3453, 3453, + 3453, 3453, 3454, 0, 0, 0, 0, 0, 3454, 3455, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, - 3419, 3419, 3419, 3419 + 3455, 0, 0, 0, 3455, 3455, 3456, 3456, 0, 3456, + 3456, 3456, 3456, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, + 3438, 3438, 3438, 3438 } ; static yy_state_type yy_last_accepting_state; @@ -3238,7 +3250,7 @@ static void config_end_include(void) } #endif -#line 3239 "" +#line 3251 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3247,9 +3259,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3248 "" +#line 3260 "" -#line 3250 "" +#line 3262 "" #define INITIAL 0 #define quotedstring 1 @@ -3473,7 +3485,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3474 "" +#line 3486 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3506,13 +3518,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 >= 3420 ) + if ( yy_current_state >= 3439 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6684 ); + while ( yy_base[yy_current_state] != 6714 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3667,17 +3679,17 @@ YY_RULE_SETUP case 26: YY_RULE_SETUP #line 240 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } +{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } YY_BREAK case 27: YY_RULE_SETUP #line 241 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } YY_BREAK case 28: YY_RULE_SETUP #line 242 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } +{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } YY_BREAK case 29: YY_RULE_SETUP @@ -3687,7 +3699,7 @@ YY_RULE_SETUP case 30: YY_RULE_SETUP #line 244 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } +{ YDVAR(1, VAR_SSL_UPSTREAM) } YY_BREAK case 31: YY_RULE_SETUP @@ -3697,7 +3709,7 @@ YY_RULE_SETUP case 32: YY_RULE_SETUP #line 246 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } +{ YDVAR(1, VAR_SSL_SERVICE_KEY) } YY_BREAK case 33: YY_RULE_SETUP @@ -3707,7 +3719,7 @@ YY_RULE_SETUP case 34: YY_RULE_SETUP #line 248 "./util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } +{ YDVAR(1, VAR_SSL_SERVICE_PEM) } YY_BREAK case 35: YY_RULE_SETUP @@ -3717,7 +3729,7 @@ YY_RULE_SETUP case 36: YY_RULE_SETUP #line 250 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_SSL_PORT) } YY_BREAK case 37: YY_RULE_SETUP @@ -3727,12 +3739,12 @@ YY_RULE_SETUP case 38: YY_RULE_SETUP #line 252 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_WIN_CERT) } +{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } YY_BREAK case 39: YY_RULE_SETUP #line 253 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } +{ YDVAR(1, VAR_TLS_WIN_CERT) } YY_BREAK case 40: YY_RULE_SETUP @@ -3752,72 +3764,72 @@ YY_RULE_SETUP case 43: YY_RULE_SETUP #line 257 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } +{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } YY_BREAK case 44: YY_RULE_SETUP #line 258 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERS) } +{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } YY_BREAK case 45: YY_RULE_SETUP #line 259 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERSUITES) } +{ YDVAR(1, VAR_TLS_CIPHERS) } YY_BREAK case 46: YY_RULE_SETUP #line 260 "./util/configlexer.lex" -{ YDVAR(1, VAR_TLS_USE_SNI) } +{ YDVAR(1, VAR_TLS_CIPHERSUITES) } YY_BREAK case 47: YY_RULE_SETUP #line 261 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTPS_PORT) } +{ YDVAR(1, VAR_TLS_USE_SNI) } YY_BREAK case 48: YY_RULE_SETUP #line 262 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_ENDPOINT) } +{ YDVAR(1, VAR_HTTPS_PORT) } YY_BREAK case 49: YY_RULE_SETUP #line 263 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } +{ YDVAR(1, VAR_HTTP_ENDPOINT) } YY_BREAK case 50: YY_RULE_SETUP #line 264 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } YY_BREAK case 51: YY_RULE_SETUP #line 265 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } +{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } YY_BREAK case 52: YY_RULE_SETUP #line 266 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NODELAY) } +{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } YY_BREAK case 53: YY_RULE_SETUP #line 267 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } +{ YDVAR(1, VAR_HTTP_NODELAY) } YY_BREAK case 54: YY_RULE_SETUP #line 268 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } +{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } YY_BREAK case 55: YY_RULE_SETUP #line 269 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } +{ YDVAR(1, VAR_USE_SYSTEMD) } YY_BREAK case 56: YY_RULE_SETUP #line 270 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } +{ YDVAR(1, VAR_DO_DAEMONIZE) } YY_BREAK case 57: YY_RULE_SETUP @@ -3827,227 +3839,227 @@ YY_RULE_SETUP case 58: YY_RULE_SETUP #line 272 "./util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } +{ YDVAR(1, VAR_INTERFACE) } YY_BREAK case 59: YY_RULE_SETUP #line 273 "./util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } +{ YDVAR(1, VAR_OUTGOING_INTERFACE) } YY_BREAK case 60: YY_RULE_SETUP #line 274 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } +{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } YY_BREAK case 61: YY_RULE_SETUP #line 275 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } +{ YDVAR(1, VAR_SO_RCVBUF) } YY_BREAK case 62: YY_RULE_SETUP #line 276 "./util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } +{ YDVAR(1, VAR_SO_SNDBUF) } YY_BREAK case 63: YY_RULE_SETUP #line 277 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } +{ YDVAR(1, VAR_SO_REUSEPORT) } YY_BREAK case 64: YY_RULE_SETUP #line 278 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } +{ YDVAR(1, VAR_IP_TRANSPARENT) } YY_BREAK case 65: YY_RULE_SETUP #line 279 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_DSCP) } +{ YDVAR(1, VAR_IP_FREEBIND) } YY_BREAK case 66: YY_RULE_SETUP #line 280 "./util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } +{ YDVAR(1, VAR_IP_DSCP) } YY_BREAK case 67: YY_RULE_SETUP #line 281 "./util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } +{ YDVAR(1, VAR_CHROOT) } YY_BREAK case 68: YY_RULE_SETUP #line 282 "./util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } +{ YDVAR(1, VAR_USERNAME) } YY_BREAK case 69: YY_RULE_SETUP #line 283 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } +{ YDVAR(1, VAR_DIRECTORY) } YY_BREAK case 70: YY_RULE_SETUP #line 284 "./util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } +{ YDVAR(1, VAR_LOGFILE) } YY_BREAK case 71: YY_RULE_SETUP #line 285 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } +{ YDVAR(1, VAR_PIDFILE) } YY_BREAK case 72: YY_RULE_SETUP #line 286 "./util/configlexer.lex" -{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } +{ YDVAR(1, VAR_ROOT_HINTS) } YY_BREAK case 73: YY_RULE_SETUP #line 287 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } +{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } YY_BREAK case 74: YY_RULE_SETUP #line 288 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } +{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } YY_BREAK case 75: YY_RULE_SETUP #line 289 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } YY_BREAK case 76: YY_RULE_SETUP #line 290 "./util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } +{ YDVAR(1, VAR_MSG_CACHE_SIZE) } YY_BREAK case 77: YY_RULE_SETUP #line 291 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } +{ YDVAR(1, VAR_MSG_CACHE_SLABS) } YY_BREAK case 78: YY_RULE_SETUP #line 292 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } +{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } YY_BREAK case 79: YY_RULE_SETUP #line 293 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } +{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } YY_BREAK case 80: YY_RULE_SETUP #line 294 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_TTL) } YY_BREAK case 81: YY_RULE_SETUP #line 295 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } +{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } YY_BREAK case 82: YY_RULE_SETUP #line 296 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } +{ YDVAR(1, VAR_CACHE_MIN_TTL) } YY_BREAK case 83: YY_RULE_SETUP #line 297 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } +{ YDVAR(1, VAR_INFRA_HOST_TTL) } YY_BREAK case 84: YY_RULE_SETUP #line 298 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } +{ YDVAR(1, VAR_INFRA_LAME_TTL) } YY_BREAK case 85: YY_RULE_SETUP #line 299 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } +{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } YY_BREAK case 86: YY_RULE_SETUP #line 300 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } +{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } YY_BREAK case 87: YY_RULE_SETUP #line 301 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } +{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } YY_BREAK case 88: YY_RULE_SETUP #line 302 "./util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } +{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } YY_BREAK case 89: YY_RULE_SETUP #line 303 "./util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } +{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } YY_BREAK case 90: YY_RULE_SETUP #line 304 "./util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } +{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } YY_BREAK case 91: YY_RULE_SETUP #line 305 "./util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } +{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } YY_BREAK case 92: YY_RULE_SETUP #line 306 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_CONNECT) } +{ YDVAR(1, VAR_DELAY_CLOSE) } YY_BREAK case 93: YY_RULE_SETUP #line 307 "./util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } +{ YDVAR(1, VAR_UDP_CONNECT) } YY_BREAK case 94: YY_RULE_SETUP #line 308 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } +{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } YY_BREAK case 95: YY_RULE_SETUP #line 309 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } +{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } YY_BREAK case 96: YY_RULE_SETUP #line 310 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } +{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } YY_BREAK case 97: YY_RULE_SETUP #line 311 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +{ YDVAR(1, VAR_HARDEN_GLUE) } YY_BREAK case 98: YY_RULE_SETUP #line 312 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } +{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } YY_BREAK case 99: YY_RULE_SETUP #line 313 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 100: YY_RULE_SETUP #line 314 "./util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 101: YY_RULE_SETUP #line 315 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } YY_BREAK case 102: YY_RULE_SETUP #line 316 "./util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 103: YY_RULE_SETUP @@ -4057,72 +4069,72 @@ YY_RULE_SETUP case 104: YY_RULE_SETUP #line 318 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_CAPS_WHITELIST) } YY_BREAK case 105: YY_RULE_SETUP #line 319 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 106: YY_RULE_SETUP #line 320 "./util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 107: YY_RULE_SETUP #line 321 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 108: YY_RULE_SETUP #line 322 "./util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 109: YY_RULE_SETUP #line 323 "./util/configlexer.lex" -{ YDVAR(1, VAR_DENY_ANY) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 110: YY_RULE_SETUP #line 324 "./util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_DENY_ANY) } YY_BREAK case 111: YY_RULE_SETUP #line 325 "./util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 112: YY_RULE_SETUP #line 326 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 113: YY_RULE_SETUP #line 327 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 114: YY_RULE_SETUP #line 328 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 115: YY_RULE_SETUP #line 329 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 116: YY_RULE_SETUP #line 330 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_NO_CACHE) } +{ YDVAR(1, VAR_STUB_FIRST) } YY_BREAK case 117: YY_RULE_SETUP #line 331 "./util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +{ YDVAR(1, VAR_STUB_NO_CACHE) } YY_BREAK case 118: YY_RULE_SETUP @@ -4132,32 +4144,32 @@ YY_RULE_SETUP case 119: YY_RULE_SETUP #line 333 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } YY_BREAK case 120: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 121: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 122: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 123: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 124: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } YY_BREAK case 125: YY_RULE_SETUP @@ -4167,47 +4179,47 @@ YY_RULE_SETUP case 126: YY_RULE_SETUP #line 340 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 127: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 128: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } +{ YDVAR(0, VAR_RPZ) } YY_BREAK case 129: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } +{ YDVAR(1, VAR_TAGS) } YY_BREAK case 130: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } YY_BREAK case 131: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } YY_BREAK case 132: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } +{ YDVAR(1, VAR_RPZ_LOG) } YY_BREAK case 133: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_RPZ_LOG_NAME) } YY_BREAK case 134: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 135: YY_RULE_SETUP @@ -4217,716 +4229,716 @@ YY_RULE_SETUP case 136: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 137: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 138: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 139: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 140: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 141: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 142: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 143: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 144: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 145: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 146: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 147: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 148: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 149: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 150: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 151: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 152: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 153: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 154: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 155: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 156: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 157: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 158: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 159: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 160: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 161: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 162: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 163: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 164: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 165: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 166: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 167: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 168: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 169: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 170: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 171: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 172: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 173: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 174: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 189: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 190: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 191: YY_RULE_SETUP -#line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +#line 405 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 192: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 250: YY_RULE_SETUP #line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 251: YY_RULE_SETUP #line 466 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 252: YY_RULE_SETUP -#line 468 "./util/configlexer.lex" +#line 467 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 253: YY_RULE_SETUP -#line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 469 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 254: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 255: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 256: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 257: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 258: YY_RULE_SETUP -#line 476 "./util/configlexer.lex" +#line 475 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 259: YY_RULE_SETUP -#line 478 "./util/configlexer.lex" +#line 477 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 260: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" +#line 479 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 261: YY_RULE_SETUP -#line 482 "./util/configlexer.lex" +#line 481 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 262: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" +#line 483 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 485 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 264: YY_RULE_SETUP #line 487 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 265: YY_RULE_SETUP #line 488 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 277: YY_RULE_SETUP @@ -4941,119 +4953,119 @@ YY_RULE_SETUP case 279: YY_RULE_SETUP #line 502 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 288: YY_RULE_SETUP #line 511 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 289: YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 290: YY_RULE_SETUP -#line 514 "./util/configlexer.lex" +#line 513 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 291: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 515 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 292: YY_RULE_SETUP #line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 293: YY_RULE_SETUP #line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 302: YY_RULE_SETUP @@ -5063,118 +5075,123 @@ YY_RULE_SETUP case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 317: YY_RULE_SETUP #line 542 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } YY_BREAK case 318: YY_RULE_SETUP #line 543 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } YY_BREAK case 319: -/* rule 319 can match eol */ YY_RULE_SETUP #line 544 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 320: +/* rule 320 can match eol */ +YY_RULE_SETUP +#line 545 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 320: +case 321: YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 548 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 321: -YY_RULE_SETUP -#line 553 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 322: -/* rule 322 can match eol */ YY_RULE_SETUP #line 554 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 323: +/* rule 323 can match eol */ +YY_RULE_SETUP +#line 555 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 323: +case 324: YY_RULE_SETUP -#line 556 "./util/configlexer.lex" +#line 557 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5187,34 +5204,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 324: +case 325: YY_RULE_SETUP -#line 568 "./util/configlexer.lex" +#line 569 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 569 "./util/configlexer.lex" +#line 570 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 325: -YY_RULE_SETUP -#line 574 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 326: -/* rule 326 can match eol */ YY_RULE_SETUP #line 575 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 327: +/* rule 327 can match eol */ +YY_RULE_SETUP +#line 576 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 327: +case 328: YY_RULE_SETUP -#line 577 "./util/configlexer.lex" +#line 578 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5227,38 +5244,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 328: +case 329: YY_RULE_SETUP -#line 589 "./util/configlexer.lex" +#line 590 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 591 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 329: -YY_RULE_SETUP -#line 595 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 330: -/* rule 330 can match eol */ YY_RULE_SETUP #line 596 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 331: +/* rule 331 can match eol */ YY_RULE_SETUP #line 597 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 332: YY_RULE_SETUP #line 598 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 333: +YY_RULE_SETUP +#line 599 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5266,27 +5283,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 603 "./util/configlexer.lex" +#line 604 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 333: -YY_RULE_SETUP -#line 607 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 334: -/* rule 334 can match eol */ YY_RULE_SETUP #line 608 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 335: +/* rule 335 can match eol */ +YY_RULE_SETUP +#line 609 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 335: +case 336: YY_RULE_SETUP -#line 610 "./util/configlexer.lex" +#line 611 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5296,7 +5313,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 616 "./util/configlexer.lex" +#line 617 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5311,39 +5328,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 336: +case 337: YY_RULE_SETUP -#line 630 "./util/configlexer.lex" +#line 631 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 633 "./util/configlexer.lex" +#line 634 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 337: -YY_RULE_SETUP -#line 637 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK case 338: -/* rule 338 can match eol */ YY_RULE_SETUP #line 638 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 339: +/* rule 339 can match eol */ YY_RULE_SETUP #line 639 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK case 340: YY_RULE_SETUP #line 640 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 341: +YY_RULE_SETUP +#line 641 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5352,29 +5369,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 646 "./util/configlexer.lex" +#line 647 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 341: -YY_RULE_SETUP -#line 650 "./util/configlexer.lex" -{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } - YY_BREAK case 342: -/* rule 342 can match eol */ YY_RULE_SETUP #line 651 "./util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 343: +/* rule 343 can match eol */ +YY_RULE_SETUP +#line 652 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 343: +case 344: YY_RULE_SETUP -#line 655 "./util/configlexer.lex" +#line 656 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5383,33 +5400,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 344: +case 345: YY_RULE_SETUP -#line 663 "./util/configlexer.lex" +#line 664 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 345: +case 346: YY_RULE_SETUP -#line 667 "./util/configlexer.lex" +#line 668 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 346: +case 347: YY_RULE_SETUP -#line 671 "./util/configlexer.lex" +#line 672 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 347: +case 348: YY_RULE_SETUP -#line 675 "./util/configlexer.lex" +#line 676 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5410 "" +#line 5427 "" case YY_END_OF_BUFFER: { @@ -5704,7 +5721,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 >= 3420 ) + if ( yy_current_state >= 3439 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5732,11 +5749,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 >= 3420 ) + if ( yy_current_state >= 3439 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3419); + yy_is_jam = (yy_current_state == 3438); return yy_is_jam ? 0 : yy_current_state; } @@ -6375,7087 +6392,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 675 "./util/configlexer.lex" - - - -#line 3 "" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -typedef uint64_t flex_uint64_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern yy_size_t yyleng; - -extern FILE *yyin, *yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - yy_size_t yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via yyrestart()), so that the user can continue scanning by - * just pointing yyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when yytext is formed. */ -static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow yywrap()'s to do buffer switches - * instead of setting up a fresh yyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); - -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); - -#define yy_new_buffer yy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - yyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -/* Begin user sect3 */ - -typedef unsigned char YY_CHAR; - -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; - -typedef int yy_state_type; - -extern int yylineno; - -int yylineno = 1; - -extern char *yytext; -#define yytext_ptr yytext - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - (yytext_ptr) -= (yy_more_len); \ - yyleng = (yy_size_t) (yy_cp - (yytext_ptr)); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 348 -#define YY_END_OF_BUFFER 349 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[3439] = - { 0, - 1, 1, 322, 322, 326, 326, 330, 330, 334, 334, - 1, 1, 338, 338, 342, 342, 349, 346, 1, 320, - 320, 347, 2, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 347, 322, 323, 323, 324, - 347, 326, 327, 327, 328, 347, 333, 330, 331, 331, - 332, 347, 334, 335, 335, 336, 347, 345, 321, 2, - 325, 345, 347, 341, 338, 339, 339, 340, 347, 342, - 343, 343, 344, 347, 346, 0, 1, 2, 2, 2, - 2, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 322, - 0, 326, 0, 333, 0, 330, 334, 0, 345, 0, - 2, 2, 345, 341, 0, 338, 342, 0, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 128, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 137, - 346, 346, 346, 346, 346, 346, 346, 345, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 112, 346, 319, - 346, 346, 346, 346, 346, 346, 346, 8, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 129, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 142, 346, 346, 345, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 312, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 67, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 244, 346, - 14, 15, 346, 19, 18, 346, 346, 228, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 135, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 226, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 3, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 345, 346, 346, 346, 346, 346, 346, 346, - 306, 346, 346, 305, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 329, 346, 346, 346, 346, 346, 346, 346, 346, - 66, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 70, 346, 275, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 313, - 314, 346, 346, 346, 346, 346, 346, 346, 71, 346, - 346, 136, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 132, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 215, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 21, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 161, - 346, 346, 346, 346, 345, 329, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 110, 346, 346, - 346, 346, 346, 346, 346, 283, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 185, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 160, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 109, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 35, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 36, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 68, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 134, 346, 346, 345, - 346, 346, 346, 346, 346, 127, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 69, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 248, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 186, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 57, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 266, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 61, 346, 62, 346, 346, 346, 346, 346, 113, 346, - 114, 346, 346, 346, 346, 111, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 7, 346, 346, - 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 237, 346, 346, 346, 346, 163, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 249, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 48, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 58, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 207, 346, 206, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 16, 17, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 72, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 214, 346, 346, 346, 346, 346, - - 346, 116, 346, 115, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 198, 346, - 346, 346, 346, 346, 346, 346, 346, 143, 346, 346, - 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 104, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 92, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 227, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 97, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 65, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 201, 202, 346, - 346, 346, 277, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 6, 346, 346, 346, - 346, 346, 346, 296, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 281, 346, 346, 346, 346, 346, 346, 307, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 45, 346, 346, 346, 346, 47, 346, 346, - 346, 93, 346, 346, 346, 346, 346, 55, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 345, 346, 194, - 346, 346, 346, 138, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 219, 346, 195, 346, 346, 346, - 234, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 56, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 140, 121, 346, 122, 346, 346, 346, 120, - 346, 346, 346, 346, 346, 346, 346, 346, 158, 346, - 346, 53, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 265, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 196, 346, - 346, 346, 346, 346, 199, 346, 205, 346, 346, 346, - 346, 346, 346, 233, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 108, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 133, - - 346, 346, 346, 346, 346, 346, 346, 63, 346, 346, - 346, 29, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 20, 346, 346, 346, 346, 346, 346, - 30, 39, 346, 168, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, - 346, 346, 346, 346, 346, 346, 80, 82, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 285, 346, 346, 346, 346, 245, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 123, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 157, - 346, 49, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 300, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 162, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 294, 346, 346, 346, - 225, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 310, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 179, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 117, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 174, 346, 187, 346, 346, 346, - 346, 346, 346, 345, 346, 146, 346, 346, 346, 346, - 346, 103, 346, 346, 346, 346, 217, 346, 346, 346, - 346, 346, 346, 235, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 257, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 139, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 178, 346, 346, 346, - - 346, 346, 346, 83, 346, 84, 346, 346, 346, 346, - 346, 64, 303, 346, 346, 346, 346, 346, 91, 188, - 346, 208, 346, 238, 346, 346, 200, 278, 346, 346, - 346, 346, 346, 346, 76, 346, 190, 346, 346, 346, - 346, 346, 9, 346, 346, 346, 346, 346, 107, 346, - 346, 346, 346, 270, 346, 346, 346, 346, 216, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, - 346, 346, 346, 346, 177, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 164, 346, 284, 346, 346, - 346, 346, 346, 256, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 229, 346, 346, 346, 346, - 346, 276, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 304, 346, 189, 346, 346, 346, 346, 346, - 346, 346, 346, 75, 77, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 106, 346, 346, 346, 346, 268, - 346, 346, 346, 346, 280, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 221, 37, 31, - 33, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 38, 346, 32, 34, 346, 346, 346, 346, - 346, 346, 346, 346, 102, 346, 346, 346, 346, 346, - 346, 346, 346, 345, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 223, 220, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 74, 346, 346, 346, 141, - - 346, 124, 346, 346, 346, 346, 346, 346, 346, 346, - 159, 50, 346, 346, 346, 337, 13, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 298, 346, 301, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 12, 346, 346, 22, 346, 346, 346, 346, 346, - 274, 346, 346, 346, 346, 282, 346, 346, 346, 78, - 346, 231, 346, 346, 346, 346, 346, 222, 346, 346, - 73, 346, 346, 346, 346, 346, 23, 346, 346, 46, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 173, 172, 346, 346, 337, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 224, 218, 346, 236, - 346, 346, 286, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 85, 346, 346, 346, 346, - 269, 346, 346, 346, 346, 204, 346, 346, 346, 346, - 346, 230, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 308, 309, 170, 346, 346, 79, 346, - 346, 346, 346, 180, 346, 346, 346, 118, 119, 346, - 346, 346, 25, 346, 346, 165, 346, 167, 346, 209, - - 346, 346, 346, 346, 171, 346, 346, 346, 346, 239, - 346, 346, 346, 346, 346, 346, 346, 148, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 247, 346, 346, 346, 346, 346, 346, 346, 317, 346, - 27, 346, 279, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 89, 210, 346, - 346, 267, 346, 302, 346, 203, 346, 346, 346, 346, - 346, 59, 346, 346, 346, 346, 346, 346, 4, 346, - 346, 346, 346, 131, 147, 346, 346, 346, 184, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 242, 40, 41, - 346, 346, 346, 346, 346, 346, 346, 287, 346, 346, - 346, 346, 346, 346, 346, 255, 346, 346, 346, 346, - 346, 346, 346, 346, 213, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 88, 346, 60, - 273, 346, 243, 346, 346, 346, 346, 346, 11, 346, - 346, 346, 346, 346, 346, 346, 346, 130, 346, 346, - 346, 346, 211, 94, 346, 346, 43, 346, 346, 346, - 346, 346, 346, 346, 346, 176, 346, 346, 346, 346, - 346, 346, 346, 150, 346, 346, 346, 346, 246, 346, - - 346, 346, 346, 346, 254, 346, 346, 346, 346, 144, - 346, 346, 346, 125, 126, 346, 346, 346, 96, 100, - 95, 346, 346, 346, 346, 86, 346, 346, 346, 346, - 346, 346, 10, 346, 346, 346, 346, 346, 271, 311, - 346, 346, 346, 346, 346, 316, 42, 346, 346, 346, - 346, 346, 175, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 101, 99, - 346, 54, 346, 346, 87, 299, 346, 346, 346, 346, - 24, 346, 346, 346, 346, 346, 197, 346, 346, 346, - - 346, 346, 212, 346, 346, 346, 346, 346, 346, 346, - 346, 193, 346, 346, 166, 81, 346, 346, 346, 346, - 346, 288, 346, 346, 346, 346, 346, 346, 346, 251, - 346, 346, 250, 145, 346, 346, 98, 51, 346, 151, - 152, 155, 156, 153, 154, 90, 297, 346, 346, 272, - 346, 346, 346, 26, 346, 169, 346, 346, 346, 346, - 192, 346, 241, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 182, 181, 44, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 346, 346, 295, 346, - 346, 346, 346, 105, 346, 240, 346, 264, 292, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 318, 346, 52, 5, 346, 346, 232, 346, 346, 293, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 252, - 28, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 253, 346, 346, 346, 149, 346, 346, - 346, 346, 346, 346, 346, 346, 183, 346, 191, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 289, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - - 346, 346, 346, 346, 346, 346, 315, 346, 346, 260, - 346, 346, 346, 346, 346, 290, 346, 346, 346, 346, - 346, 346, 291, 346, 346, 346, 258, 346, 261, 262, - 346, 346, 346, 346, 346, 259, 263, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 5, 6, 1, 1, 1, 7, 1, - 1, 1, 1, 1, 8, 1, 1, 1, 9, 1, - 10, 11, 1, 12, 1, 1, 1, 13, 1, 1, - 1, 1, 1, 1, 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, - 1, 40, 1, 1, 1, 1, 41, 42, 43, 44, - - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[67] = - { 0, - 1, 2, 3, 4, 5, 1, 6, 1, 1, 1, - 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int16_t yy_base[3457] = - { 0, - 0, 0, 64, 67, 70, 72, 78, 84, 89, 92, - 131, 137, 112, 118, 123, 142, 429, 383, 96, 9825, - 9825, 9825, 160, 185, 116, 183, 229, 132, 175, 173, - 232, 50, 66, 120, 263, 275, 151, 323, 134, 375, - 416, 286, 308, 283, 126, 237, 374, 9825, 9825, 9825, - 95, 372, 9825, 9825, 9825, 186, 361, 373, 9825, 9825, - 9825, 258, 309, 9825, 9825, 9825, 104, 293, 9825, 266, - 9825, 167, 351, 281, 311, 9825, 9825, 9825, 369, 268, - 9825, 9825, 9825, 146, 252, 378, 177, 0, 392, 0, - 0, 303, 270, 235, 317, 362, 344, 384, 178, 177, - - 226, 420, 377, 330, 379, 402, 414, 419, 410, 453, - 319, 367, 440, 429, 447, 454, 463, 459, 458, 489, - 495, 484, 474, 493, 499, 460, 500, 504, 510, 492, - 524, 520, 532, 525, 537, 529, 412, 533, 558, 539, - 531, 548, 565, 559, 250, 505, 587, 575, 574, 584, - 570, 580, 610, 601, 595, 604, 607, 614, 615, 208, - 294, 205, 236, 194, 670, 225, 180, 326, 158, 674, - 678, 0, 623, 152, 682, 176, 130, 653, 650, 680, - 661, 609, 675, 670, 676, 666, 671, 682, 672, 691, - 720, 697, 696, 703, 256, 726, 770, 731, 723, 714, - - 734, 737, 724, 718, 745, 740, 749, 759, 766, 728, - 773, 760, 772, 787, 819, 789, 762, 797, 339, 802, - 827, 378, 808, 443, 832, 805, 699, 829, 725, 838, - 836, 844, 843, 835, 852, 847, 866, 860, 849, 864, - 875, 874, 871, 865, 868, 911, 885, 878, 893, 892, - 894, 907, 908, 902, 913, 781, 909, 920, 921, 935, - 912, 937, 930, 919, 943, 950, 948, 956, 957, 938, - 958, 955, 953, 960, 954, 973, 969, 984, 994, 986, - 993, 1002, 989, 995, 988, 996, 999, 987, 1013, 1014, - 1022, 1026, 144, 1020, 1029, 1031, 1019, 1028, 1039, 1041, - - 1051, 1052, 1053, 1036, 1057, 1062, 1072, 1069, 1070, 1076, - 1079, 1088, 1055, 1067, 1065, 1082, 1092, 1098, 1087, 1100, - 1091, 1103, 1115, 1106, 1120, 1099, 1134, 1132, 1127, 1159, - 1136, 1128, 1148, 1189, 1154, 1143, 1162, 1185, 1169, 1155, - 1190, 1182, 1193, 1205, 1191, 1204, 1197, 1206, 1224, 1227, - 1215, 1231, 1229, 1220, 1226, 1233, 1249, 1258, 9825, 1242, - 1240, 1269, 1260, 1266, 1275, 1267, 1296, 1273, 1283, 1279, - 1291, 1298, 1344, 1392, 1293, 1311, 1301, 1304, 1307, 9825, - 1333, 1308, 1441, 1339, 1328, 1329, 1363, 1340, 1331, 1355, - 1364, 1356, 1300, 1359, 1367, 1390, 1403, 1400, 1379, 1389, - - 1406, 1419, 1410, 1306, 1438, 1427, 1437, 1431, 1383, 1434, - 1446, 1458, 1479, 1461, 1475, 1476, 1480, 1493, 1496, 1497, - 1508, 1503, 1486, 1502, 1518, 1515, 1522, 1528, 1573, 1484, - 1529, 1535, 1542, 1532, 1520, 1448, 1547, 1554, 1549, 1561, - 1562, 1556, 1579, 1401, 1567, 1583, 1570, 1575, 1597, 1580, - 1594, 1598, 1599, 1607, 1600, 1609, 1593, 1620, 1630, 1635, - 1637, 1634, 1643, 1645, 1627, 1651, 1631, 9825, 1654, 9825, - 1642, 1657, 1667, 1662, 1661, 1671, 1673, 9825, 1677, 1669, - 1679, 1688, 1706, 1696, 1712, 1681, 1703, 1708, 1718, 1711, - 1713, 1714, 1700, 1731, 1736, 1723, 1744, 1729, 1732, 1738, - - 1752, 1745, 1761, 1746, 1748, 1755, 1795, 9825, 1750, 1764, - 1771, 1779, 1773, 1797, 1789, 1800, 1828, 1793, 1812, 1824, - 1798, 1851, 1830, 1831, 1823, 1836, 1834, 1848, 1841, 1861, - 1850, 1857, 1858, 1852, 1860, 1875, 1881, 1872, 1879, 1889, - 9825, 1888, 1899, 1900, 1906, 1893, 1896, 1909, 1898, 1914, - 1892, 1930, 1922, 1938, 1918, 1936, 1943, 1919, 1939, 1952, - 1941, 1945, 1946, 1949, 1954, 1947, 1973, 1967, 1990, 1971, - 1988, 1993, 2000, 1996, 1997, 2004, 2006, 1981, 1991, 2009, - 2008, 1995, 1999, 2018, 2020, 2005, 2019, 2033, 2047, 2039, - 2026, 2045, 2035, 2053, 2036, 2040, 2052, 2042, 2048, 2064, - - 2077, 2059, 2086, 2065, 2092, 2069, 2074, 2100, 2101, 2085, - 2088, 9825, 2107, 2102, 2115, 2127, 2117, 2120, 2130, 2121, - 2125, 2129, 2128, 2134, 2140, 2146, 2142, 2152, 2138, 2156, - 2165, 2163, 2113, 2170, 2178, 2186, 2179, 2183, 2173, 2180, - 2184, 2177, 2198, 2190, 2217, 2211, 2199, 2215, 2232, 2206, - 2216, 2230, 2233, 2212, 2225, 2240, 2228, 2236, 2246, 2251, - 2241, 2258, 2274, 2271, 2264, 2257, 2281, 2267, 2285, 2272, - 2275, 2277, 2284, 2280, 2310, 2311, 2309, 2304, 2306, 2305, - 2307, 2312, 2313, 2330, 2327, 2329, 2332, 2322, 2331, 2342, - 2356, 2345, 2346, 2348, 2358, 2359, 2375, 2367, 2364, 2391, - - 2370, 2379, 2385, 2386, 2394, 2393, 2397, 2388, 2403, 2412, - 2407, 2424, 2426, 2415, 2425, 2436, 2421, 2437, 2428, 2340, - 2442, 2451, 2434, 2443, 2441, 2456, 2452, 2455, 2475, 2479, - 2485, 2481, 2478, 9825, 2470, 2495, 2472, 2490, 2484, 2493, - 2482, 2506, 2502, 2497, 2507, 2501, 2512, 2558, 9825, 2515, - 9825, 9825, 2521, 9825, 9825, 2535, 2541, 9825, 2548, 2537, - 2539, 2545, 2568, 2582, 2573, 2561, 2572, 2571, 2566, 2618, - 2596, 2581, 2594, 2611, 2565, 2613, 2621, 2605, 2616, 2629, - 2632, 2655, 2607, 2660, 2650, 2662, 2668, 2666, 2670, 2674, - 2672, 2676, 2663, 2664, 2680, 2688, 2685, 2701, 2712, 2699, - - 2702, 2717, 2703, 2707, 2698, 2690, 2722, 2723, 2737, 9825, - 2728, 2729, 2732, 2743, 2747, 2758, 2739, 2755, 2749, 2762, - 2763, 2759, 2750, 2760, 2764, 2754, 2777, 2756, 2773, 2787, - 2789, 2780, 2806, 2784, 9825, 2799, 2800, 2786, 2807, 2813, - 2802, 2814, 2801, 2818, 2829, 2804, 2852, 2847, 2835, 2832, - 2844, 2830, 2837, 2857, 9825, 2856, 2861, 2842, 2862, 2845, - 2871, 2872, 2874, 2877, 2893, 2880, 2882, 2887, 2881, 2911, - 2901, 2904, 2898, 2907, 2906, 2914, 2926, 2930, 2915, 2927, - 2925, 2938, 2931, 2928, 2939, 2934, 2941, 2944, 2955, 2974, - 2961, 2981, 2963, 2965, 2984, 2986, 2966, 2976, 2987, 2989, - - 2979, 2997, 3001, 3002, 2991, 3004, 3015, 3003, 3019, 3020, - 3028, 3021, 3040, 3026, 3045, 3042, 3029, 3032, 3053, 3035, - 9825, 3047, 3059, 9825, 3048, 3057, 3062, 3108, 3081, 3087, - 3078, 3063, 3069, 3095, 3088, 3098, 3096, 3118, 3107, 3122, - 3123, 3138, 3121, 3128, 3135, 3148, 3152, 3140, 3157, 3159, - 3167, 3172, 3100, 3162, 3176, 381, 3183, 3160, 3178, 3174, - 3224, 3179, 3180, 3188, 3184, 3189, 3208, 3206, 3207, 3201, - 3212, 3210, 3227, 3237, 3233, 3228, 3240, 3248, 3236, 3257, - 3254, 9825, 3267, 3265, 3259, 3271, 3269, 3284, 3275, 3270, - 9825, 3281, 3291, 3283, 3292, 3295, 3287, 3307, 3293, 3301, - - 3303, 3309, 3316, 3320, 3318, 3327, 3337, 9825, 3319, 9825, - 3339, 3338, 3336, 3330, 3345, 3342, 3340, 3356, 3365, 9825, - 9825, 3368, 3366, 3376, 3379, 3369, 3374, 3371, 9825, 3383, - 3412, 9825, 3390, 3405, 3395, 3393, 3398, 3397, 3406, 3416, - 3428, 3407, 3433, 3422, 3424, 3430, 9825, 3435, 3426, 3440, - 3443, 3434, 3454, 3461, 3464, 3456, 9825, 3446, 3460, 3453, - 3483, 3482, 3475, 3467, 3486, 3491, 3479, 3480, 3478, 3501, - 3487, 3506, 3513, 3510, 3512, 3525, 3516, 3527, 9825, 3518, - 3511, 3514, 3535, 3531, 3532, 3537, 3538, 3533, 3530, 3550, - 3552, 3556, 3561, 3554, 3557, 3568, 3573, 3575, 3570, 3581, - - 3571, 3582, 3576, 3577, 91, 3588, 3583, 3599, 3580, 9825, - 3602, 3611, 3615, 3617, 3603, 128, 3610, 3612, 3613, 3626, - 3632, 3634, 3616, 3640, 3651, 3639, 3652, 3654, 3659, 3646, - 3648, 3665, 3661, 3650, 3667, 3675, 3653, 9825, 3671, 3679, - 3677, 3685, 3699, 3687, 3714, 9825, 3704, 3709, 3711, 3713, - 3717, 3715, 3718, 3720, 3731, 3741, 3747, 3734, 3742, 3757, - 3745, 3756, 3744, 9825, 3764, 3760, 3768, 3755, 3780, 3766, - 3769, 3783, 3784, 3782, 3776, 3789, 3806, 3796, 3795, 3797, - 3802, 3811, 3812, 3810, 3816, 3823, 3819, 3829, 3837, 3833, - 3826, 3840, 3838, 9825, 3847, 3853, 3856, 3854, 3846, 3861, - - 3864, 3859, 3892, 3875, 3876, 3886, 3883, 3926, 3888, 3896, - 3911, 3913, 3915, 3916, 3917, 3919, 3928, 3929, 3938, 3936, - 3964, 3889, 3950, 3923, 3961, 3951, 3974, 3966, 3955, 3986, - 3988, 3982, 3981, 4007, 3997, 3976, 3947, 4006, 3999, 9825, - 4014, 4004, 3993, 4013, 4035, 4030, 4020, 4031, 4037, 4044, - 4040, 4041, 4047, 4049, 4054, 4048, 4058, 4065, 4063, 4064, - 4082, 4066, 4069, 4074, 4095, 4083, 4102, 4101, 9825, 4104, - 4100, 4093, 4099, 4113, 4097, 4114, 4118, 4110, 4122, 4126, - 4123, 4128, 4134, 4130, 4132, 4141, 4149, 4129, 4156, 4144, - 9825, 4160, 4157, 4159, 4153, 4161, 4165, 4177, 4192, 4191, - - 4197, 4200, 4183, 4202, 4199, 4190, 9825, 4207, 4212, 4209, - 4216, 4204, 4218, 4227, 4215, 4224, 9825, 4228, 4239, 4232, - 4230, 4225, 4226, 4261, 4252, 9825, 4265, 4264, 4242, 4243, - 4255, 4254, 4269, 4271, 4266, 4275, 4279, 4296, 4280, 4281, - 4298, 9825, 4290, 4315, 4294, 4307, 4310, 4305, 4311, 4329, - 4343, 4313, 4331, 4327, 9825, 4325, 4346, 4352, 4362, 4340, - 4338, 4354, 4356, 4371, 4366, 4360, 4377, 4365, 9825, 4381, - 4378, 4379, 4393, 4398, 4383, 4399, 4405, 4403, 4400, 4417, - 4420, 4421, 4414, 4411, 4427, 4432, 4422, 4430, 4449, 4438, - 4442, 4448, 4454, 4457, 4461, 4456, 4471, 4466, 4458, 4452, - - 4481, 4492, 4494, 4495, 4490, 4501, 9825, 4496, 4499, 4497, - 4487, 4498, 4493, 4489, 4508, 4511, 4516, 4519, 4535, 4530, - 4522, 4550, 4552, 4528, 4555, 4532, 4534, 4549, 4559, 4546, - 4554, 4542, 4571, 4567, 4568, 4563, 4575, 4577, 4578, 4598, - 4581, 4587, 4590, 4591, 4593, 4576, 4604, 4611, 4618, 4603, - 4613, 4614, 4628, 4629, 4630, 4638, 4631, 4634, 4637, 4661, - 9825, 4633, 4647, 4639, 4648, 4656, 4673, 4671, 4687, 4669, - 4678, 4681, 4685, 4688, 4677, 4675, 4700, 4690, 4706, 4721, - 9825, 4704, 9825, 4702, 4720, 4727, 4711, 4712, 9825, 4726, - 9825, 4731, 4730, 4719, 4724, 9825, 4738, 4739, 4736, 4755, - - 4749, 4743, 4757, 4752, 4758, 4770, 4766, 4785, 4765, 4763, - 4779, 4778, 4768, 4797, 4795, 4792, 4784, 4799, 4817, 4816, - 4807, 4822, 4806, 4818, 4831, 4813, 4833, 9825, 4839, 4840, - 4837, 4830, 4834, 4849, 4851, 4854, 4847, 4874, 4877, 4864, - 4865, 4883, 4878, 4881, 4869, 4891, 4895, 4899, 4897, 4908, - 9825, 4892, 4888, 4902, 4901, 9825, 4918, 4912, 4924, 4929, - 4926, 4914, 4916, 4934, 4941, 4920, 4943, 4946, 4968, 4951, - 4949, 4969, 9825, 4953, 4970, 4952, 4957, 4983, 4990, 4995, - 4987, 4993, 4999, 4996, 4998, 5005, 4989, 5009, 5004, 5008, - 5010, 5013, 5034, 5014, 5006, 5037, 5043, 5041, 5026, 5027, - - 5030, 5035, 5038, 5045, 5040, 5053, 5056, 5061, 5062, 9825, - 5070, 5072, 5079, 5080, 5071, 5077, 5074, 5086, 5075, 9825, - 5095, 5083, 5107, 5102, 5115, 5109, 5111, 5104, 5099, 5123, - 5118, 5130, 5144, 5119, 9825, 5134, 9825, 5138, 5145, 5140, - 5147, 5146, 5150, 5166, 5170, 5165, 5160, 5177, 5181, 5183, - 5167, 5173, 5190, 5193, 5209, 5192, 5171, 5202, 5187, 5210, - 5204, 5211, 5208, 5232, 5228, 5229, 9825, 9825, 5215, 5226, - 5242, 5230, 5238, 5249, 5257, 5252, 5270, 5259, 5262, 5260, - 5295, 9825, 5266, 5267, 5274, 5287, 5235, 5285, 5298, 5305, - 5301, 5294, 5316, 5307, 9825, 5297, 5304, 5320, 5314, 5333, - - 5321, 9825, 5329, 9825, 5319, 5330, 5331, 5345, 5343, 5340, - 5346, 5348, 5354, 5357, 5362, 5364, 5379, 5365, 5385, 5366, - 5369, 5375, 5390, 5384, 5404, 5381, 5391, 5382, 9825, 5401, - 5395, 5412, 5414, 5418, 5420, 5417, 5406, 9825, 5427, 5432, - 5428, 5422, 5438, 5439, 5445, 5441, 5448, 5447, 5444, 5464, - 5465, 9825, 5454, 5459, 5474, 5468, 5471, 5484, 5470, 5491, - 5482, 9825, 5478, 5487, 5498, 5499, 5500, 5506, 5510, 5495, - 5497, 5502, 5514, 5523, 5525, 5522, 5524, 5529, 5533, 5539, - 5542, 5565, 5540, 5549, 5553, 5507, 5547, 9825, 5554, 5559, - 5563, 5567, 5580, 5569, 5592, 5584, 5598, 5581, 5599, 5602, - - 5594, 5595, 5613, 5614, 5607, 5620, 9825, 5622, 5606, 5632, - 5610, 5628, 5636, 5619, 5633, 5644, 5637, 5627, 5651, 5660, - 5662, 5658, 5678, 5649, 5650, 5653, 5675, 5654, 9825, 5698, - 5672, 5688, 5655, 5693, 5694, 5711, 5699, 5687, 5689, 5712, - 5696, 5726, 5713, 5719, 5728, 5732, 5723, 9825, 9825, 5742, - 5720, 5735, 9825, 5739, 5730, 5757, 5747, 5758, 5740, 5749, - 5766, 5756, 5753, 5776, 5755, 5770, 9825, 5782, 5794, 5775, - 5789, 5799, 5803, 9825, 5788, 5804, 5798, 5806, 5792, 5790, - 5793, 5815, 5821, 5817, 5814, 5828, 5823, 5841, 5825, 5831, - 5839, 9825, 5833, 5842, 5844, 5847, 5838, 5848, 9825, 5858, - - 5874, 5860, 5873, 5872, 5882, 5885, 5886, 5883, 5871, 5880, - 5876, 5888, 5891, 5903, 5901, 5899, 5910, 5909, 5918, 5927, - 5932, 5930, 9825, 5926, 5940, 5919, 5942, 9825, 5943, 5968, - 5937, 9825, 5945, 5921, 5944, 5953, 5960, 9825, 5961, 5971, - 5967, 5957, 5986, 5963, 5991, 5970, 5976, 5972, 5981, 9825, - 5995, 5992, 6000, 9825, 5998, 6009, 6014, 6015, 5997, 6026, - 6023, 6025, 6027, 6022, 9825, 6034, 9825, 6032, 6028, 6042, - 9825, 6036, 6052, 6041, 6045, 6038, 6066, 6072, 6073, 6051, - 6060, 6074, 6063, 6065, 6078, 6089, 6090, 6068, 6079, 6096, - 6098, 9825, 6117, 6101, 6111, 6104, 6121, 6123, 6115, 6109, - - 6128, 6113, 9825, 9825, 6134, 9825, 6140, 6136, 6142, 9825, - 6147, 6150, 6170, 6149, 6167, 6169, 6172, 6165, 9825, 6175, - 6177, 9825, 6157, 6176, 6186, 6181, 6179, 6163, 6210, 6203, - 6193, 6204, 6205, 6206, 6207, 6196, 6209, 6223, 9825, 6198, - 6230, 6228, 6227, 6234, 6238, 6232, 6255, 6243, 9825, 6259, - 6245, 6248, 6268, 6269, 9825, 6262, 9825, 6265, 6272, 6282, - 6275, 6278, 6289, 9825, 6286, 6287, 6306, 6285, 6302, 6315, - 6313, 6314, 6304, 6300, 6328, 6321, 6312, 6323, 6337, 6343, - 9825, 6338, 6340, 6336, 6355, 6344, 6341, 6348, 6353, 6364, - 6342, 6381, 6372, 6365, 6373, 6375, 6385, 6390, 6378, 9825, - - 6398, 6404, 6388, 6418, 6399, 6405, 6408, 9825, 6415, 6423, - 6424, 9825, 6417, 6419, 6431, 6443, 6434, 6435, 6432, 6438, - 6446, 6449, 6466, 9825, 6456, 6457, 6454, 6467, 6473, 6476, - 9825, 9825, 6483, 9825, 6480, 6465, 6482, 6490, 6479, 6505, - 6511, 6509, 6519, 6501, 6517, 6522, 6510, 6506, 6531, 6512, - 6556, 6535, 6545, 6539, 6547, 6533, 9825, 9825, 6543, 6558, - 6554, 6564, 6566, 6565, 6560, 6562, 6570, 6587, 6568, 6571, - 6601, 9825, 6595, 6586, 6603, 6589, 9825, 6583, 6612, 6596, - 6605, 6613, 6611, 6615, 6621, 6622, 6628, 6624, 6633, 6638, - 6647, 6635, 6639, 6651, 6640, 6664, 6658, 6654, 6643, 9825, - - 6665, 6656, 6668, 6666, 6670, 6682, 6655, 6692, 6684, 9825, - 6691, 9825, 6695, 6693, 6709, 6710, 6713, 6718, 6714, 6711, - 6716, 6733, 6725, 6727, 6745, 6729, 6734, 6735, 6754, 6756, - 6758, 6759, 6761, 9825, 6762, 6743, 6744, 6757, 6777, 6778, - 6760, 6780, 6781, 6797, 6783, 6795, 6801, 6802, 6789, 6804, - 6792, 6806, 6796, 9825, 6807, 6811, 6816, 6814, 6819, 6826, - 6818, 6849, 6817, 6833, 6836, 6853, 9825, 6839, 6842, 6856, - 9825, 6847, 6845, 6843, 6869, 6857, 6870, 6866, 6860, 6876, - 9825, 6886, 6879, 6883, 6887, 6893, 6894, 6878, 6906, 6900, - 6913, 6905, 9825, 6924, 6910, 6936, 6938, 6919, 6932, 6926, - - 6949, 6903, 9825, 6950, 6952, 6933, 6963, 6966, 6946, 6965, - 6969, 6973, 6981, 6958, 6974, 6985, 6982, 6989, 6990, 6993, - 6992, 6994, 7000, 7007, 9825, 6977, 9825, 7013, 7027, 7008, - 7030, 7014, 7035, 7032, 7024, 9825, 7026, 7029, 7043, 7033, - 7038, 9825, 7040, 7060, 7053, 7065, 9825, 7058, 7073, 7062, - 7069, 7083, 7085, 9825, 7084, 7087, 7088, 7096, 7099, 7089, - 7097, 7092, 7100, 7095, 7104, 7102, 7129, 7137, 7122, 7133, - 9825, 7131, 7139, 7140, 7141, 7134, 7144, 7127, 7148, 7150, - 7159, 9825, 7171, 7158, 7161, 7168, 7179, 7164, 7185, 7160, - 7186, 7175, 7170, 7177, 7195, 7180, 9825, 7202, 7199, 7213, - - 7226, 7216, 7223, 9825, 7221, 9825, 7217, 7232, 7234, 7209, - 7238, 9825, 9825, 7242, 7243, 7244, 7247, 7240, 9825, 9825, - 7254, 9825, 7245, 9825, 7241, 7259, 9825, 9825, 7272, 7252, - 7264, 7279, 7282, 7280, 9825, 7288, 9825, 7294, 7291, 7281, - 7271, 7290, 9825, 7304, 7298, 7314, 7315, 7303, 9825, 7307, - 7305, 7311, 7318, 9825, 7310, 7332, 7317, 7321, 9825, 7345, - 7313, 7342, 7331, 7343, 7350, 7359, 7337, 7353, 7356, 7360, - 7364, 7369, 7366, 7375, 7381, 7385, 7390, 7387, 7379, 7395, - 7402, 7404, 7398, 7393, 7406, 7401, 7388, 7407, 7419, 7416, - 7438, 7439, 7430, 7432, 7440, 7437, 7431, 7448, 7434, 7436, - - 7442, 7443, 7446, 7457, 7469, 7461, 7473, 7464, 7488, 7480, - 7493, 7489, 7491, 7495, 9825, 7484, 7481, 7474, 7520, 7512, - 7500, 7529, 7528, 7531, 7535, 9825, 7537, 9825, 7539, 7524, - 7530, 7525, 7533, 9825, 7550, 7527, 7551, 7554, 7567, 7559, - 7578, 7562, 7565, 7566, 7586, 9825, 7585, 7577, 7568, 7589, - 7588, 9825, 7593, 7596, 7581, 7601, 7614, 7607, 7606, 7609, - 7615, 7611, 7632, 7635, 7617, 7625, 7633, 7640, 7645, 7652, - 7638, 7646, 7636, 7654, 7648, 7649, 7651, 7672, 7682, 7674, - 7683, 7686, 9825, 7670, 9825, 7678, 7673, 7679, 7688, 7697, - 7698, 7700, 7704, 9825, 9825, 7701, 7714, 7707, 7711, 7715, - - 7722, 7725, 7724, 7728, 9825, 7730, 7742, 7737, 7727, 9825, - 7741, 7738, 7750, 7761, 9825, 7759, 7753, 7772, 7774, 7760, - 7775, 7773, 7781, 7766, 7780, 7764, 7794, 9825, 9825, 9825, - 9825, 7795, 7788, 7804, 7799, 7800, 7805, 7807, 7809, 7820, - 7808, 7815, 9825, 7824, 9825, 9825, 7833, 7839, 7832, 7843, - 7841, 7806, 7845, 7842, 9825, 7847, 7851, 7853, 7852, 7861, - 7863, 7859, 7865, 7882, 7880, 7888, 7877, 7878, 7902, 7894, - 7897, 7885, 7901, 7903, 7908, 9825, 9825, 7904, 7910, 7913, - 7918, 7914, 7927, 7920, 7941, 7935, 7933, 7940, 7936, 7942, - 7931, 7947, 7953, 7959, 7943, 9825, 7965, 7966, 7954, 9825, - - 7961, 9825, 7970, 7978, 7967, 7974, 7980, 7981, 7994, 7997, - 9825, 9825, 7986, 8001, 8003, 9825, 9825, 7992, 7998, 7996, - 8020, 8019, 8008, 8023, 8014, 8034, 8021, 9825, 8022, 9825, - 8024, 8035, 8043, 8030, 8057, 8063, 8042, 8068, 8065, 8064, - 8069, 9825, 8066, 8067, 9825, 8073, 8076, 8077, 8071, 8082, - 9825, 8087, 8092, 8078, 8086, 9825, 8089, 8107, 8112, 9825, - 8118, 9825, 8100, 8116, 8113, 8128, 8114, 9825, 8102, 8129, - 9825, 8131, 8132, 8133, 8137, 8138, 9825, 8135, 8143, 9825, - 8146, 8142, 8153, 8167, 8156, 8168, 8159, 8157, 8160, 8181, - 8179, 8178, 9825, 9825, 8190, 8184, 73, 8196, 8177, 8183, - - 8187, 8186, 8195, 8193, 8208, 8197, 9825, 9825, 8210, 9825, - 8213, 8222, 9825, 8201, 8228, 8232, 8229, 8236, 8239, 8223, - 8224, 8244, 8240, 8258, 8248, 8245, 8268, 8282, 8283, 8260, - 8280, 8285, 8289, 8291, 8293, 8281, 8295, 8278, 8275, 8299, - 8296, 8306, 8305, 8309, 8310, 9825, 8334, 8335, 8336, 8322, - 9825, 8343, 8337, 8345, 8341, 9825, 8347, 8342, 8349, 8350, - 8356, 9825, 8357, 8352, 8376, 8372, 8363, 8377, 8374, 8360, - 8378, 8384, 8390, 9825, 9825, 9825, 8392, 8395, 9825, 8396, - 8386, 8385, 8407, 9825, 8406, 8405, 8416, 9825, 9825, 8404, - 8421, 8427, 9825, 8415, 8403, 9825, 8432, 9825, 8418, 9825, - - 8433, 8441, 8448, 8431, 9825, 8442, 8437, 8443, 8477, 9825, - 8461, 8472, 8479, 8471, 8462, 8464, 8485, 9825, 8491, 8487, - 8488, 8494, 8484, 8489, 8476, 8495, 8505, 8518, 8506, 8525, - 9825, 8522, 8529, 8530, 8536, 8519, 8524, 8527, 9825, 8520, - 9825, 8541, 9825, 8546, 8547, 8544, 8561, 8556, 8557, 8569, - 8573, 8554, 8571, 8567, 8563, 8579, 8574, 9825, 9825, 8591, - 8592, 9825, 8581, 9825, 8595, 9825, 8594, 8597, 8604, 8598, - 8606, 9825, 8615, 8603, 8608, 8631, 8605, 8620, 9825, 8626, - 8629, 8630, 8634, 9825, 9825, 8625, 8651, 8654, 9825, 8638, - 8648, 8662, 8652, 8644, 8663, 8657, 8665, 8653, 8656, 8650, - - 8676, 8677, 8685, 8678, 8695, 8696, 8701, 9825, 9825, 9825, - 8694, 8687, 8713, 8710, 8708, 8718, 8709, 9825, 8712, 8716, - 8714, 8723, 8735, 8730, 8731, 9825, 8737, 8733, 8728, 8739, - 8732, 8744, 8740, 8759, 9825, 8761, 8765, 8767, 8770, 8776, - 8773, 8777, 8782, 8774, 8779, 8775, 8780, 9825, 8789, 9825, - 9825, 8791, 9825, 8771, 8795, 8794, 8797, 8814, 9825, 8796, - 8799, 8808, 8816, 8809, 8822, 8828, 8833, 9825, 8839, 8818, - 8832, 8842, 9825, 9825, 8840, 8848, 9825, 8850, 8857, 8849, - 8844, 8841, 8856, 8870, 8867, 9825, 8869, 8874, 8865, 8866, - 8876, 8875, 8889, 9825, 8890, 8888, 8884, 8899, 9825, 8891, - - 8894, 8906, 8908, 8900, 9825, 8915, 8918, 8933, 8925, 9825, - 8921, 8936, 8927, 9825, 9825, 8943, 8944, 8945, 9825, 9825, - 9825, 8953, 8950, 8942, 8958, 9825, 8959, 8975, 8980, 8962, - 8985, 8960, 9825, 8976, 8983, 8990, 8977, 8979, 9825, 9825, - 8974, 8978, 8991, 8997, 8989, 9825, 9825, 8986, 9007, 9022, - 9006, 9012, 9825, 9010, 9024, 9030, 9023, 9034, 9031, 9040, - 9033, 9038, 9054, 9052, 9049, 9044, 9053, 9051, 9059, 9077, - 9065, 9046, 9050, 9079, 9074, 9083, 9073, 9089, 9825, 9825, - 9087, 9825, 9097, 9093, 9825, 9825, 9098, 9103, 9105, 9107, - 9825, 9108, 9113, 9117, 9118, 9096, 9825, 9110, 9126, 9124, - - 9115, 9111, 9825, 9128, 9120, 9136, 9135, 9130, 9129, 9147, - 9152, 9825, 9144, 9161, 9825, 9825, 9146, 9162, 9154, 9166, - 9151, 9825, 9173, 9177, 9168, 9178, 9171, 9179, 9185, 9825, - 9181, 9175, 9825, 9825, 9195, 9198, 9825, 9825, 9189, 9825, - 9825, 9825, 9825, 9825, 9825, 9825, 9825, 9214, 9217, 9825, - 9205, 9221, 9223, 9825, 9227, 9825, 9206, 9222, 9226, 9216, - 9825, 9224, 9825, 9212, 9241, 9232, 9253, 9245, 9265, 9248, - 9250, 9249, 9254, 9246, 9259, 9275, 9273, 9278, 9268, 9286, - 9290, 9279, 9298, 9825, 9825, 9825, 9293, 9288, 9304, 9300, - 9314, 9318, 9321, 9322, 9305, 9313, 9320, 9332, 9334, 9317, - - 9328, 9357, 9340, 9326, 9351, 9358, 9348, 9362, 9825, 9363, - 9359, 9352, 9372, 9825, 9361, 9825, 9355, 9825, 9825, 9377, - 9379, 9383, 9375, 9392, 9397, 9382, 9395, 9386, 9388, 9411, - 9825, 9412, 9825, 9825, 9404, 9406, 9825, 9400, 9413, 9825, - 9409, 9423, 9415, 9403, 9424, 9427, 9440, 9442, 9448, 9825, - 9825, 9438, 9439, 9441, 9449, 9454, 9467, 9462, 9465, 9466, - 9472, 9461, 9483, 9825, 9479, 9486, 9482, 9825, 9492, 9476, - 9493, 9489, 9498, 9488, 9502, 9499, 9825, 9504, 9825, 9501, - 9524, 9525, 9515, 9518, 9527, 9542, 9541, 9545, 9825, 9523, - 9552, 9528, 9555, 9561, 9554, 9564, 9565, 9511, 9570, 9576, - - 9514, 9580, 9583, 9574, 9572, 9581, 9825, 9594, 9596, 9825, - 9601, 9604, 9597, 9599, 9611, 9825, 9595, 9610, 9613, 9624, - 9619, 9623, 9825, 9634, 9635, 9637, 9825, 9636, 9825, 9825, - 9642, 9639, 9646, 9648, 9649, 9825, 9825, 9825, 9705, 9712, - 9719, 9726, 9733, 9740, 9747, 102, 9754, 9761, 9768, 9775, - 9782, 9789, 9796, 9803, 9810, 9817 - } ; - -static yyconst flex_int16_t yy_def[3457] = - { 0, - 3438, 1, 3439, 3439, 3440, 3440, 3441, 3441, 3442, 3442, - 3443, 3443, 3444, 3444, 3445, 3445, 3438, 3446, 3438, 3438, - 3438, 3438, 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3448, 3438, 3438, 3438, - 3448, 3449, 3438, 3438, 3438, 3449, 3450, 3438, 3438, 3438, - 3438, 3450, 3451, 3438, 3438, 3438, 3451, 3452, 3438, 3453, - 3438, 3452, 3452, 3454, 3438, 3438, 3438, 3438, 3454, 3455, - 3438, 3438, 3438, 3455, 3446, 3446, 3438, 3456, 3447, 3456, - 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3448, - 3448, 3449, 3449, 3450, 3450, 3438, 3451, 3451, 3452, 3452, - 3453, 3453, 3452, 3454, 3454, 3438, 3455, 3455, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3452, 3452, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - - 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3438, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3452, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3438, 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, - - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3438, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3438, 3446, 3446, 3452, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3438, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3446, 3438, 3446, 3446, 3438, 3446, 3438, 3446, 3438, - - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3438, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, - - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3438, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3438, 3446, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3438, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 0, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438 - } ; - -static yyconst flex_int16_t yy_nxt[9892] = - { 0, - 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, - 18, 18, 22, 24, 25, 26, 27, 28, 29, 18, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 18, 18, 18, 45, 46, - 24, 25, 26, 27, 28, 29, 18, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 18, 18, 18, 45, 48, 49, 50, 48, - 49, 50, 53, 54, 53, 54, 55, 119, 55, 58, - 59, 60, 61, 120, 22, 58, 59, 60, 61, 86, - 22, 64, 65, 66, 64, 65, 66, 87, 160, 160, - - 1311, 88, 85, 51, 119, 86, 51, 167, 167, 56, - 120, 56, 170, 75, 76, 77, 78, 62, 22, 75, - 76, 77, 78, 62, 22, 81, 82, 83, 67, 97, - 86, 67, 19, 20, 21, 69, 70, 71, 19, 20, - 21, 69, 70, 71, 81, 82, 83, 121, 108, 177, - 177, 79, 72, 159, 409, 86, 97, 79, 72, 86, - 137, 90, 84, 90, 90, 86, 90, 170, 109, 178, - 73, 86, 90, 86, 121, 108, 73, 176, 87, 72, - 159, 84, 88, 86, 130, 72, 112, 137, 110, 162, - 86, 175, 162, 173, 113, 109, 98, 170, 188, 91, - - 92, 93, 111, 99, 94, 114, 170, 100, 187, 95, - 101, 130, 86, 112, 86, 110, 86, 86, 96, 168, - 173, 113, 86, 98, 86, 188, 166, 92, 93, 111, - 99, 94, 114, 165, 100, 187, 95, 101, 85, 162, - 85, 85, 162, 85, 163, 96, 102, 161, 115, 85, - 103, 116, 189, 104, 181, 105, 106, 252, 117, 164, - 118, 164, 164, 292, 164, 86, 107, 90, 86, 90, - 90, 86, 90, 102, 86, 115, 122, 103, 116, 189, - 104, 181, 105, 106, 123, 117, 180, 118, 126, 86, - 124, 86, 127, 107, 125, 86, 156, 160, 160, 148, - - 157, 149, 86, 122, 158, 172, 128, 178, 129, 86, - 150, 123, 176, 180, 86, 126, 151, 124, 179, 127, - 175, 125, 86, 156, 152, 86, 148, 157, 149, 167, - 167, 158, 170, 128, 153, 129, 131, 150, 154, 155, - 132, 182, 86, 151, 133, 179, 328, 86, 168, 205, - 134, 152, 169, 135, 169, 169, 86, 169, 86, 184, - 136, 153, 86, 131, 195, 154, 155, 132, 182, 86, - 174, 133, 174, 174, 166, 174, 205, 134, 86, 85, - 135, 85, 85, 86, 85, 332, 184, 136, 138, 1165, - 85, 195, 139, 90, 183, 90, 90, 206, 90, 185, - - 165, 86, 140, 141, 90, 142, 86, 193, 194, 197, - 196, 163, 186, 161, 86, 138, 86, 86, 86, 139, - 86, 183, 86, 86, 206, 240, 185, 198, 3438, 140, - 141, 91, 142, 143, 193, 194, 144, 196, 190, 186, - 199, 86, 201, 145, 191, 200, 192, 146, 147, 86, - 334, 86, 240, 86, 198, 86, 207, 3438, 86, 86, - 143, 208, 3438, 144, 209, 190, 215, 199, 86, 201, - 145, 191, 200, 192, 146, 147, 202, 203, 211, 86, - 210, 212, 86, 207, 204, 228, 86, 3438, 208, 217, - 216, 209, 86, 86, 213, 214, 3438, 86, 86, 86, - - 225, 3438, 86, 202, 203, 211, 218, 210, 212, 226, - 220, 204, 228, 86, 221, 223, 217, 216, 227, 229, - 224, 213, 214, 86, 232, 230, 219, 225, 86, 253, - 222, 86, 86, 218, 86, 231, 226, 220, 86, 86, - 233, 221, 223, 86, 86, 227, 229, 224, 235, 86, - 234, 232, 230, 219, 237, 236, 253, 222, 238, 86, - 3438, 239, 231, 86, 86, 241, 245, 233, 86, 246, - 86, 86, 86, 3438, 242, 235, 86, 234, 86, 247, - 248, 237, 236, 243, 251, 238, 3438, 86, 239, 244, - 3438, 249, 241, 245, 257, 250, 246, 86, 86, 3438, - - 254, 242, 259, 261, 86, 258, 247, 248, 262, 86, - 243, 251, 267, 86, 86, 260, 244, 255, 249, 86, - 256, 257, 250, 86, 263, 266, 86, 254, 268, 259, - 261, 270, 258, 264, 86, 262, 277, 269, 272, 267, - 86, 271, 260, 86, 255, 265, 86, 256, 86, 86, - 3438, 263, 266, 86, 86, 268, 177, 177, 270, 3438, - 264, 3438, 170, 277, 269, 272, 3438, 273, 271, 3438, - 3438, 164, 265, 164, 164, 169, 164, 169, 169, 90, - 169, 90, 90, 174, 90, 174, 174, 274, 174, 86, - 3438, 276, 3438, 280, 273, 278, 281, 282, 283, 284, - - 86, 275, 279, 3438, 285, 86, 338, 3438, 3438, 86, - 86, 86, 286, 290, 86, 86, 291, 172, 276, 86, - 280, 86, 278, 281, 282, 283, 284, 287, 275, 279, - 86, 285, 340, 288, 289, 86, 86, 293, 86, 286, - 290, 294, 86, 291, 301, 303, 3438, 302, 306, 3438, - 307, 304, 308, 86, 305, 314, 310, 86, 295, 86, - 288, 289, 86, 86, 86, 86, 311, 86, 294, 3438, - 86, 301, 303, 86, 302, 306, 86, 307, 304, 86, - 309, 305, 314, 310, 86, 295, 296, 312, 86, 318, - 317, 297, 313, 311, 326, 370, 298, 315, 86, 86, - - 316, 86, 299, 300, 319, 86, 325, 309, 3438, 86, - 3438, 86, 86, 296, 312, 329, 318, 317, 297, 313, - 86, 326, 370, 298, 315, 327, 86, 316, 86, 299, - 300, 319, 320, 325, 330, 321, 86, 322, 337, 335, - 333, 86, 329, 342, 86, 331, 339, 86, 3438, 323, - 344, 324, 327, 336, 341, 3438, 3438, 3438, 86, 320, - 345, 3438, 321, 343, 322, 337, 86, 333, 86, 351, - 346, 86, 331, 339, 86, 86, 323, 86, 324, 347, - 336, 341, 86, 86, 348, 349, 86, 345, 86, 352, - 343, 86, 353, 356, 350, 354, 351, 346, 355, 86, - - 357, 364, 360, 86, 86, 86, 347, 86, 361, 362, - 86, 348, 349, 86, 86, 367, 352, 86, 358, 353, - 356, 350, 354, 359, 86, 355, 363, 357, 373, 360, - 369, 86, 86, 86, 368, 361, 362, 365, 366, 372, - 371, 86, 374, 375, 376, 378, 86, 86, 86, 3438, - 86, 86, 86, 363, 377, 381, 379, 369, 86, 86, - 86, 368, 380, 383, 365, 366, 372, 371, 3438, 86, - 375, 384, 378, 386, 86, 387, 86, 86, 382, 388, - 390, 377, 86, 379, 389, 3438, 391, 86, 385, 86, - 392, 394, 86, 86, 170, 86, 86, 86, 384, 86, - - 386, 395, 387, 396, 393, 382, 388, 390, 86, 398, - 397, 389, 86, 391, 3438, 385, 399, 392, 401, 403, - 405, 400, 402, 86, 404, 86, 86, 86, 86, 406, - 396, 393, 86, 86, 86, 86, 407, 397, 86, 408, - 3438, 86, 411, 399, 412, 401, 403, 413, 400, 402, - 410, 404, 86, 86, 415, 414, 406, 416, 86, 86, - 419, 86, 420, 407, 421, 86, 408, 86, 86, 411, - 86, 412, 417, 418, 413, 86, 422, 410, 86, 423, - 86, 415, 414, 426, 416, 424, 428, 431, 3438, 420, - 86, 86, 86, 427, 86, 429, 86, 432, 433, 417, - - 418, 86, 425, 422, 86, 435, 86, 434, 86, 86, - 426, 86, 424, 436, 431, 86, 438, 437, 86, 430, - 427, 86, 439, 445, 432, 433, 86, 86, 441, 425, - 86, 86, 435, 440, 434, 443, 442, 86, 86, 86, - 436, 446, 86, 438, 437, 86, 430, 447, 3438, 439, - 445, 448, 444, 3438, 86, 441, 3438, 455, 456, 86, - 440, 3438, 443, 442, 3438, 457, 86, 86, 463, 462, - 469, 86, 3438, 86, 447, 86, 467, 3438, 448, 444, - 449, 468, 86, 450, 455, 456, 464, 86, 451, 452, - 453, 454, 457, 86, 86, 463, 462, 469, 86, 465, - - 466, 86, 470, 3438, 458, 3438, 459, 449, 86, 478, - 450, 471, 476, 464, 472, 451, 452, 453, 454, 460, - 473, 86, 461, 479, 86, 477, 465, 466, 86, 86, - 86, 458, 86, 459, 474, 475, 86, 480, 471, 476, - 481, 472, 482, 86, 86, 86, 460, 473, 483, 461, - 479, 485, 477, 484, 86, 3438, 488, 493, 486, 86, - 487, 474, 475, 86, 480, 86, 86, 481, 86, 482, - 86, 489, 86, 490, 492, 483, 494, 495, 485, 86, - 484, 86, 491, 496, 493, 486, 507, 487, 86, 497, - 498, 3438, 499, 500, 505, 3438, 506, 86, 489, 86, - - 490, 492, 3438, 508, 495, 86, 86, 549, 86, 491, - 496, 501, 86, 562, 86, 509, 497, 498, 86, 499, - 500, 505, 86, 506, 502, 522, 523, 503, 525, 504, - 86, 526, 86, 527, 530, 86, 540, 86, 501, 86, - 86, 541, 509, 86, 524, 86, 86, 86, 528, 539, - 86, 502, 522, 523, 503, 525, 504, 510, 526, 511, - 527, 530, 545, 3438, 529, 512, 538, 86, 86, 513, - 86, 524, 86, 544, 514, 528, 539, 515, 86, 170, - 3438, 542, 546, 86, 510, 547, 511, 548, 543, 545, - 567, 529, 512, 538, 86, 86, 513, 550, 86, 551, - - 544, 514, 86, 86, 515, 516, 86, 517, 542, 546, - 553, 557, 547, 612, 548, 543, 552, 555, 86, 554, - 518, 558, 86, 519, 550, 520, 551, 521, 86, 86, - 3438, 86, 516, 559, 517, 556, 560, 561, 557, 86, - 86, 3438, 86, 552, 555, 86, 554, 518, 558, 86, - 519, 563, 520, 3438, 521, 531, 532, 566, 86, 564, - 559, 565, 556, 560, 561, 533, 86, 534, 535, 536, - 86, 568, 537, 86, 569, 570, 86, 86, 563, 3438, - 86, 604, 531, 532, 566, 86, 564, 86, 565, 571, - 572, 598, 533, 573, 534, 535, 536, 86, 568, 537, - - 86, 569, 570, 574, 575, 3438, 576, 577, 604, 3438, - 578, 579, 3438, 581, 86, 86, 584, 585, 86, 86, - 573, 3438, 3438, 86, 582, 86, 3438, 603, 580, 586, - 574, 575, 86, 576, 577, 86, 86, 578, 579, 583, - 581, 86, 86, 584, 585, 588, 587, 86, 589, 590, - 599, 582, 600, 602, 86, 580, 586, 86, 601, 86, - 591, 86, 592, 3438, 607, 605, 583, 86, 86, 610, - 606, 86, 588, 587, 86, 589, 590, 599, 608, 600, - 602, 86, 616, 615, 613, 601, 86, 591, 86, 592, - 593, 607, 605, 86, 609, 86, 610, 606, 594, 595, - - 86, 86, 596, 597, 611, 608, 86, 618, 614, 86, - 615, 613, 86, 617, 86, 620, 621, 593, 86, 86, - 622, 609, 86, 626, 624, 594, 595, 619, 623, 596, - 597, 611, 86, 86, 618, 614, 86, 86, 86, 86, - 617, 625, 620, 621, 627, 628, 86, 622, 86, 3438, - 626, 624, 629, 630, 619, 623, 632, 3438, 631, 86, - 634, 3438, 633, 3438, 635, 636, 86, 637, 625, 86, - 86, 627, 628, 86, 86, 638, 86, 639, 642, 629, - 630, 86, 86, 632, 86, 631, 3438, 634, 640, 633, - 86, 635, 636, 86, 637, 641, 86, 644, 653, 647, - - 86, 86, 638, 643, 639, 642, 86, 645, 86, 646, - 86, 648, 86, 650, 649, 640, 86, 651, 86, 652, - 86, 660, 641, 3438, 644, 653, 647, 86, 655, 654, - 643, 656, 661, 657, 645, 86, 646, 658, 648, 86, - 659, 649, 86, 663, 651, 86, 662, 86, 3438, 665, - 86, 86, 86, 86, 669, 655, 654, 86, 656, 661, - 657, 666, 86, 667, 658, 668, 664, 659, 86, 670, - 86, 86, 671, 662, 673, 86, 665, 86, 672, 674, - 675, 669, 684, 86, 86, 86, 3438, 86, 666, 86, - 667, 86, 668, 664, 86, 687, 670, 685, 686, 671, - - 86, 673, 3438, 86, 688, 672, 674, 675, 676, 684, - 86, 3438, 86, 677, 689, 678, 691, 690, 86, 698, - 694, 679, 687, 680, 685, 686, 681, 682, 86, 695, - 3438, 688, 86, 683, 86, 676, 86, 86, 703, 86, - 677, 689, 678, 691, 690, 692, 698, 694, 679, 693, - 680, 86, 696, 681, 682, 697, 695, 701, 699, 702, - 683, 706, 86, 86, 3438, 703, 705, 86, 700, 86, - 86, 704, 692, 86, 708, 86, 693, 709, 707, 696, - 86, 710, 697, 712, 701, 711, 702, 86, 706, 86, - 86, 86, 714, 705, 713, 700, 86, 86, 704, 86, - - 86, 708, 715, 716, 709, 707, 717, 718, 710, 719, - 712, 86, 711, 722, 86, 720, 721, 723, 86, 714, - 86, 713, 728, 724, 726, 3438, 735, 86, 86, 715, - 716, 86, 86, 717, 718, 86, 719, 86, 86, 170, - 725, 727, 720, 721, 723, 86, 729, 730, 86, 728, - 724, 726, 731, 86, 732, 734, 733, 86, 86, 737, - 739, 86, 743, 736, 3438, 738, 3438, 725, 727, 86, - 3438, 742, 740, 729, 730, 86, 741, 86, 86, 731, - 86, 732, 86, 733, 86, 86, 86, 739, 86, 743, - 736, 86, 738, 86, 744, 747, 750, 748, 742, 740, - - 751, 745, 749, 741, 746, 752, 86, 753, 754, 755, - 86, 756, 86, 757, 759, 760, 3438, 3438, 758, 764, - 86, 744, 747, 750, 761, 762, 763, 86, 745, 86, - 86, 746, 86, 765, 86, 86, 86, 766, 86, 86, - 767, 759, 760, 86, 86, 86, 764, 86, 86, 769, - 768, 761, 762, 763, 770, 771, 772, 86, 86, 86, - 765, 774, 773, 776, 766, 86, 775, 767, 3438, 778, - 779, 781, 86, 777, 86, 86, 769, 768, 86, 86, - 780, 86, 771, 772, 86, 783, 86, 86, 774, 773, - 776, 86, 86, 775, 782, 788, 778, 779, 86, 790, - - 777, 784, 791, 86, 86, 789, 785, 780, 86, 786, - 787, 794, 783, 86, 796, 795, 86, 792, 793, 3438, - 817, 782, 788, 797, 86, 86, 790, 86, 784, 791, - 798, 86, 789, 785, 801, 802, 786, 787, 794, 86, - 86, 86, 795, 799, 792, 793, 86, 803, 806, 804, - 797, 808, 86, 807, 86, 805, 86, 798, 810, 86, - 86, 801, 802, 811, 86, 800, 86, 86, 86, 86, - 799, 813, 809, 86, 803, 806, 804, 86, 808, 86, - 807, 86, 805, 812, 814, 86, 815, 816, 818, 3438, - 811, 86, 800, 819, 822, 86, 820, 821, 813, 809, - - 823, 826, 86, 824, 86, 828, 825, 829, 827, 86, - 812, 814, 86, 815, 816, 818, 86, 86, 86, 86, - 819, 822, 86, 86, 830, 86, 831, 823, 826, 86, - 824, 836, 833, 825, 829, 827, 832, 86, 86, 834, - 841, 837, 3438, 842, 835, 86, 843, 838, 850, 846, - 86, 86, 3438, 831, 86, 86, 86, 844, 836, 833, - 845, 839, 840, 832, 86, 847, 848, 86, 837, 86, - 842, 86, 86, 843, 838, 86, 846, 856, 854, 86, - 86, 849, 851, 855, 844, 86, 3438, 845, 839, 840, - 86, 852, 847, 848, 857, 858, 86, 86, 859, 860, - - 3438, 853, 861, 86, 856, 862, 86, 863, 849, 851, - 86, 86, 865, 86, 86, 864, 86, 866, 852, 86, - 86, 857, 858, 86, 86, 859, 860, 867, 853, 861, - 868, 869, 862, 870, 863, 871, 873, 875, 872, 865, - 874, 3438, 864, 86, 86, 86, 86, 912, 86, 86, - 86, 86, 86, 879, 867, 877, 878, 868, 869, 876, - 870, 86, 871, 873, 880, 872, 86, 874, 86, 86, - 86, 86, 882, 881, 884, 883, 3438, 891, 885, 86, - 879, 86, 877, 878, 86, 86, 876, 86, 886, 887, - 888, 880, 889, 890, 3438, 86, 893, 86, 86, 882, - - 881, 884, 883, 86, 891, 885, 86, 892, 895, 86, - 894, 897, 896, 900, 86, 886, 887, 888, 86, 889, - 890, 898, 901, 893, 86, 86, 903, 86, 899, 902, - 86, 3438, 86, 86, 892, 895, 86, 894, 897, 896, - 900, 904, 86, 905, 907, 906, 86, 909, 898, 901, - 915, 86, 911, 903, 86, 899, 902, 908, 910, 913, - 86, 3438, 917, 86, 86, 86, 914, 86, 904, 916, - 905, 907, 906, 86, 909, 86, 86, 915, 919, 911, - 86, 170, 86, 918, 908, 910, 913, 921, 920, 917, - 86, 86, 922, 914, 86, 86, 916, 924, 925, 926, - - 923, 927, 928, 3438, 929, 919, 930, 3438, 931, 86, - 918, 86, 933, 934, 86, 920, 936, 86, 86, 922, - 86, 86, 935, 86, 86, 925, 926, 923, 927, 86, - 932, 929, 86, 930, 86, 931, 86, 937, 938, 933, - 86, 86, 947, 936, 939, 86, 86, 3438, 3438, 935, - 948, 86, 3438, 3438, 86, 3438, 949, 932, 952, 950, - 86, 954, 3438, 3438, 937, 938, 951, 953, 3438, 947, - 3438, 939, 940, 961, 86, 941, 86, 948, 86, 942, - 86, 955, 943, 949, 86, 952, 950, 86, 954, 944, - 945, 958, 946, 951, 953, 956, 957, 86, 959, 940, - - 86, 973, 941, 960, 86, 86, 942, 86, 955, 943, - 86, 86, 86, 969, 970, 3438, 944, 945, 958, 946, - 86, 86, 956, 957, 971, 959, 983, 972, 973, 974, - 960, 962, 963, 86, 964, 86, 977, 965, 976, 3438, - 969, 970, 966, 978, 86, 975, 86, 980, 967, 968, - 86, 971, 86, 983, 972, 86, 974, 86, 962, 963, - 86, 964, 981, 977, 965, 976, 979, 982, 86, 966, - 978, 86, 975, 984, 980, 967, 968, 985, 3438, 986, - 3438, 987, 3438, 988, 991, 989, 3438, 993, 3438, 86, - 992, 990, 3438, 979, 86, 994, 995, 1006, 3438, 86, - - 984, 86, 86, 86, 985, 86, 986, 86, 987, 86, - 988, 86, 989, 86, 993, 86, 997, 992, 990, 86, - 996, 998, 994, 995, 86, 999, 1000, 86, 1001, 86, - 1002, 1004, 1005, 1003, 3438, 1008, 1012, 86, 86, 1007, - 86, 86, 86, 997, 1009, 1011, 86, 996, 998, 1010, - 1014, 86, 999, 1000, 1017, 1001, 86, 1002, 1004, 1005, - 1003, 86, 86, 1013, 1015, 1016, 1007, 86, 86, 1019, - 3438, 86, 1011, 1018, 1020, 1021, 86, 1024, 86, 1022, - 1023, 1017, 86, 1025, 1026, 1029, 86, 1028, 86, 86, - 1013, 1015, 1032, 86, 86, 86, 1019, 86, 86, 86, - - 1018, 86, 86, 86, 1024, 1027, 1022, 1023, 1030, 1031, - 1025, 1026, 86, 1033, 1028, 1034, 86, 1040, 3438, 86, - 1035, 1036, 1037, 86, 1038, 86, 86, 1042, 86, 1045, - 3438, 1041, 1027, 3438, 1039, 1030, 1031, 3438, 86, 86, - 86, 86, 1034, 86, 1040, 86, 86, 1035, 1036, 1037, - 1044, 1038, 86, 86, 1042, 1043, 1045, 86, 1041, 1046, - 1048, 1039, 1049, 1050, 1047, 1051, 1052, 1053, 86, 86, - 1056, 86, 1054, 1057, 86, 1058, 86, 1044, 1060, 1059, - 1055, 86, 1043, 86, 86, 3438, 86, 1048, 3438, 1049, - 1050, 86, 1051, 1052, 1053, 86, 86, 1056, 1067, 1054, - - 86, 86, 1058, 1061, 1062, 1060, 1059, 1055, 1063, 1064, - 86, 86, 1069, 86, 1065, 1066, 86, 1068, 1070, 86, - 86, 86, 1071, 3438, 1075, 1067, 86, 1079, 1072, 1073, - 1061, 1062, 86, 1074, 1076, 1063, 1064, 86, 3438, 1069, - 86, 1065, 1066, 86, 1068, 86, 86, 1078, 1084, 1071, - 86, 1075, 1077, 86, 86, 1072, 1073, 1081, 1080, 1082, - 1074, 1076, 1089, 1083, 86, 86, 86, 86, 1086, 86, - 86, 1085, 1087, 86, 1078, 1084, 1088, 86, 86, 1077, - 86, 1090, 1097, 86, 1081, 1080, 1082, 1091, 1092, 1093, - 1083, 1095, 3438, 1096, 86, 1086, 3438, 1094, 1085, 1087, - - 86, 3438, 86, 1088, 86, 86, 1101, 1098, 1104, 1097, - 1103, 1099, 1102, 86, 1091, 86, 1093, 1105, 86, 1100, - 86, 1106, 1108, 86, 1094, 86, 86, 3438, 86, 1107, - 86, 1110, 3438, 1101, 1098, 1109, 86, 1103, 1099, 1102, - 86, 86, 86, 86, 1105, 1112, 1100, 1115, 1106, 1113, - 1111, 1114, 1116, 1117, 86, 1119, 1107, 3438, 86, 86, - 86, 1118, 1109, 1120, 1121, 86, 1123, 86, 86, 3438, - 1122, 86, 1112, 1126, 86, 1138, 1113, 1111, 1114, 170, - 1117, 86, 1119, 1124, 86, 1125, 86, 86, 1118, 1127, - 1120, 1121, 86, 1123, 1135, 1128, 86, 1122, 86, 3438, - - 1126, 86, 86, 1136, 3438, 1137, 1139, 1162, 86, 3438, - 1124, 1140, 1125, 1143, 1145, 1141, 1127, 86, 3438, 1146, - 86, 1135, 1128, 1129, 1142, 1130, 86, 86, 3438, 1131, - 1136, 1132, 1137, 1139, 86, 86, 1133, 86, 1140, 86, - 1143, 1134, 1141, 1147, 1144, 1152, 86, 86, 1151, 1148, - 1129, 1142, 1130, 3438, 1149, 1153, 1131, 86, 1132, 1154, - 86, 86, 86, 1133, 3438, 1155, 1150, 86, 1134, 1163, - 1147, 1144, 1152, 1157, 86, 1151, 1148, 86, 1156, 86, - 1159, 1149, 1153, 1158, 3438, 1160, 1154, 86, 1164, 1161, - 1166, 86, 1155, 1150, 1167, 3438, 86, 1178, 86, 86, - - 1157, 86, 1181, 1177, 1169, 1156, 86, 1159, 1180, 1168, - 1158, 86, 1160, 86, 1179, 86, 1161, 86, 86, 86, - 3438, 1167, 86, 86, 1178, 1182, 1183, 86, 86, 1181, - 1177, 1169, 1185, 1184, 1188, 1180, 1168, 1170, 1187, 3438, - 86, 1179, 1171, 1186, 1172, 86, 86, 86, 1194, 86, - 1173, 86, 1182, 1183, 1189, 1174, 1175, 1190, 1191, 1185, - 1184, 3438, 1176, 86, 1170, 1187, 86, 86, 1192, 1171, - 1186, 1172, 86, 1195, 1197, 86, 86, 1173, 1193, 86, - 1198, 1189, 1174, 1175, 1190, 1191, 1196, 86, 1200, 1176, - 1199, 1202, 1203, 86, 1201, 1192, 86, 3438, 86, 1208, - - 1195, 1204, 1205, 3438, 86, 1193, 86, 1198, 86, 86, - 86, 1207, 1206, 1196, 86, 1200, 1209, 1199, 1210, 1203, - 86, 1201, 86, 86, 1211, 1212, 86, 1213, 1204, 1205, - 86, 86, 86, 1215, 86, 1214, 1218, 1216, 1207, 1206, - 86, 1217, 86, 1209, 1220, 1210, 86, 1221, 86, 3438, - 3438, 1211, 1212, 1224, 1213, 86, 1219, 86, 86, 86, - 1215, 1225, 1214, 1218, 1216, 1222, 86, 1228, 1217, 86, - 1223, 1226, 1227, 1229, 1221, 86, 86, 86, 86, 86, - 1224, 86, 1230, 1219, 86, 1231, 1234, 1232, 1225, 1233, - 1235, 3438, 1222, 3438, 1228, 86, 1237, 1223, 1226, 1227, - - 1229, 1236, 3438, 1241, 86, 86, 1242, 86, 86, 1230, - 86, 1238, 1231, 86, 1232, 86, 1233, 1235, 86, 1239, - 1243, 1244, 86, 1237, 1240, 1245, 1246, 1247, 1236, 86, - 1241, 1248, 86, 1242, 86, 1250, 86, 86, 1238, 1251, - 1252, 1254, 3438, 1249, 86, 86, 86, 1243, 1244, 1253, - 1256, 86, 1245, 1246, 1247, 86, 1255, 1258, 1248, 1257, - 1259, 86, 1260, 86, 1265, 86, 1251, 86, 1254, 86, - 1249, 1267, 86, 86, 86, 1261, 1253, 1256, 1262, 86, - 1264, 1263, 86, 1255, 1258, 86, 1257, 1259, 1266, 1260, - 1268, 1265, 86, 86, 1269, 86, 1270, 1271, 1267, 86, - - 86, 1272, 1261, 86, 1273, 1262, 86, 1264, 1263, 1274, - 1276, 1275, 1278, 1279, 86, 1266, 1277, 86, 86, 86, - 1280, 86, 86, 1270, 1271, 86, 86, 1281, 1272, 1282, - 86, 1273, 1283, 1284, 1285, 1286, 1274, 1276, 1275, 1278, - 86, 1287, 1289, 1277, 1291, 86, 1288, 3438, 1290, 86, - 86, 86, 86, 86, 1281, 86, 1282, 86, 1292, 1293, - 1284, 1295, 1286, 1294, 86, 1296, 86, 1297, 1287, 86, - 86, 86, 86, 1288, 86, 1290, 86, 86, 1299, 1298, - 1303, 1301, 1304, 1307, 1300, 1292, 1293, 3438, 1295, 86, - 1294, 86, 1296, 86, 1297, 86, 86, 1305, 1306, 1302, - - 86, 1310, 1309, 3438, 1313, 1299, 1298, 86, 1301, 86, - 86, 1300, 86, 1308, 86, 86, 86, 1315, 1312, 86, - 86, 86, 86, 1317, 1305, 1306, 1302, 86, 1310, 1309, - 1314, 1313, 1318, 1316, 1319, 1320, 1321, 1323, 86, 1322, - 1308, 86, 170, 1324, 1315, 1312, 1326, 1328, 1327, 86, - 86, 86, 86, 1325, 86, 86, 86, 1314, 1329, 1318, - 1316, 1319, 1320, 1321, 1323, 86, 1322, 1330, 1332, 1331, - 1324, 86, 1334, 86, 1335, 1327, 1333, 3438, 86, 86, - 1325, 1338, 1336, 1342, 1341, 86, 1339, 86, 1337, 86, - 86, 86, 86, 86, 1330, 1332, 1331, 3438, 86, 1334, - - 86, 1335, 1340, 1333, 86, 1343, 86, 1344, 1338, 1336, - 86, 1341, 1345, 1339, 86, 1337, 86, 1346, 86, 1347, - 1352, 3438, 1353, 3438, 86, 1355, 86, 3438, 1354, 1340, - 3438, 1348, 1343, 1358, 1344, 3438, 1356, 3438, 86, 1345, - 1349, 1357, 1350, 86, 1346, 1351, 1347, 1352, 86, 1353, - 86, 1359, 86, 86, 86, 1354, 86, 86, 1348, 86, - 1358, 1360, 1361, 1356, 1362, 1363, 1364, 1349, 1357, 1350, - 86, 1366, 1351, 86, 1365, 1368, 1369, 1370, 1359, 1367, - 86, 86, 1374, 86, 86, 1371, 86, 1372, 1360, 1361, - 1375, 1362, 1363, 1364, 86, 86, 86, 1373, 1366, 86, - - 1379, 1365, 1368, 86, 1370, 86, 1367, 86, 86, 1374, - 1376, 1377, 1371, 1378, 1372, 86, 1380, 1375, 3438, 86, - 1382, 86, 86, 86, 1373, 1381, 1383, 1379, 86, 1386, - 1384, 3438, 1385, 3438, 86, 86, 86, 1376, 1377, 1387, - 1378, 86, 1388, 1380, 1390, 86, 1391, 1382, 1389, 86, - 86, 86, 1381, 1383, 1398, 86, 1386, 1384, 86, 1385, - 1392, 1393, 86, 1395, 1394, 86, 1387, 1396, 86, 1388, - 1397, 1390, 86, 1391, 1401, 1389, 86, 86, 1402, 86, - 1399, 1404, 1400, 1405, 3438, 86, 86, 1392, 1393, 1403, - 1395, 1394, 86, 86, 1396, 86, 1411, 1397, 86, 1406, - - 86, 1401, 1409, 86, 1407, 1402, 1408, 1399, 1404, 1400, - 1405, 1410, 3438, 1419, 86, 86, 1403, 1420, 1421, 3438, - 3438, 1433, 86, 1411, 1425, 86, 1422, 86, 86, 1409, - 1435, 86, 1423, 1408, 3438, 86, 1426, 1424, 1410, 1412, - 1419, 3438, 1428, 1413, 1420, 1427, 1414, 1415, 1433, 1430, - 86, 1416, 86, 1422, 86, 86, 86, 1417, 86, 1423, - 1452, 1418, 86, 1426, 1424, 86, 1412, 86, 86, 1428, - 1413, 1429, 1427, 1414, 1415, 86, 1430, 86, 1416, 1431, - 1434, 1432, 1436, 1437, 1417, 1440, 86, 1452, 1418, 86, - 86, 1438, 1439, 1441, 86, 1442, 3438, 1444, 1429, 1443, - - 86, 3438, 1451, 86, 3438, 86, 1431, 1434, 1432, 1436, - 1437, 3438, 1440, 86, 1450, 86, 1453, 1454, 1438, 1439, - 86, 86, 1455, 1458, 1444, 86, 1443, 86, 1445, 1451, - 1456, 1457, 86, 1446, 1459, 1447, 86, 1448, 86, 1449, - 3438, 1450, 1460, 86, 3438, 86, 86, 1461, 1464, 1455, - 1458, 1462, 86, 86, 1463, 1445, 1470, 1456, 1457, 86, - 1446, 1459, 1447, 1465, 1448, 1466, 1449, 1471, 1472, 86, - 86, 1467, 1468, 1469, 86, 1464, 86, 3438, 1462, 86, - 86, 1463, 1474, 86, 1473, 1476, 86, 86, 86, 1475, - 1465, 1480, 1466, 86, 1471, 1472, 1478, 86, 1467, 1468, - - 1469, 1477, 86, 86, 86, 86, 1479, 1481, 86, 1474, - 1482, 1473, 1476, 86, 1483, 1484, 1475, 1486, 1480, 1485, - 1488, 86, 86, 1478, 1487, 1489, 1491, 1493, 1477, 1490, - 3438, 1492, 86, 1479, 86, 1496, 86, 1482, 86, 86, - 86, 86, 1484, 86, 1486, 1499, 1485, 1488, 1501, 86, - 1503, 1487, 86, 86, 1493, 1494, 1490, 86, 1492, 1495, - 1497, 86, 86, 1498, 1500, 86, 1502, 86, 86, 86, - 1504, 86, 1499, 86, 1505, 1506, 1508, 1503, 1510, 1509, - 86, 3438, 1494, 86, 1507, 1511, 1495, 1497, 86, 3438, - 1498, 1500, 86, 1502, 1512, 86, 86, 1504, 86, 86, - - 86, 1505, 1506, 1508, 86, 1510, 1509, 1513, 1514, 3438, - 1515, 1507, 1511, 1517, 1521, 1520, 86, 1516, 1519, 1522, - 1518, 1512, 86, 1524, 3438, 1525, 1523, 1528, 3438, 86, - 86, 86, 3438, 1535, 1513, 1514, 86, 1515, 86, 86, - 1517, 86, 1520, 86, 1516, 1519, 86, 1518, 86, 1526, - 1527, 86, 1525, 1523, 86, 86, 1529, 86, 1530, 1532, - 1534, 1531, 1533, 86, 86, 86, 86, 86, 1536, 86, - 1537, 170, 1538, 3438, 1541, 1542, 1526, 1527, 86, 1543, - 1544, 86, 86, 1529, 1546, 1530, 1532, 1534, 1531, 1533, - 1539, 86, 1551, 86, 86, 3438, 1540, 1537, 1547, 1545, - - 86, 1541, 1542, 86, 86, 86, 1543, 1544, 86, 1549, - 86, 1546, 1548, 1550, 86, 1553, 1552, 1539, 86, 86, - 86, 1554, 1555, 1540, 1557, 1547, 1545, 1556, 1558, 86, - 1559, 1560, 1569, 86, 1566, 86, 1549, 86, 1561, 1548, - 1550, 3438, 1553, 1552, 86, 1567, 86, 3438, 1554, 86, - 86, 1557, 86, 1568, 86, 1558, 1562, 1559, 1560, 1563, - 1564, 1566, 1570, 1565, 86, 1561, 86, 3438, 86, 1572, - 86, 1574, 1567, 1577, 1573, 1571, 1575, 86, 3438, 86, - 1568, 3438, 86, 1562, 1576, 86, 1563, 1564, 1578, 1570, - 1565, 86, 1580, 86, 1581, 86, 1579, 1582, 1574, 86, - - 1577, 86, 1571, 1575, 86, 86, 1586, 1583, 1584, 1585, - 86, 1576, 1590, 1588, 1587, 1578, 86, 86, 86, 1580, - 86, 1581, 86, 1579, 1582, 3438, 3438, 1591, 1597, 3438, - 1589, 1592, 86, 1586, 1583, 1584, 1585, 86, 86, 86, - 1588, 1587, 86, 1593, 86, 1596, 1598, 1594, 1595, 1599, - 86, 1601, 1600, 86, 1591, 1597, 86, 1589, 1592, 86, - 86, 86, 1602, 1604, 1607, 1603, 86, 1606, 1608, 86, - 1593, 86, 1596, 1598, 1594, 1595, 1599, 86, 1601, 1600, - 1605, 86, 1609, 1610, 1611, 1613, 1612, 86, 86, 1602, - 1604, 86, 1603, 86, 1606, 86, 86, 86, 1614, 1615, - - 86, 1616, 1617, 1618, 3438, 86, 3438, 1605, 1620, 1609, - 86, 1611, 1613, 1612, 1619, 1621, 1626, 1623, 1622, 1625, - 86, 3438, 1624, 3438, 1628, 1614, 86, 1627, 86, 86, - 1618, 86, 86, 86, 86, 86, 86, 86, 86, 1630, - 86, 1619, 1621, 1626, 1623, 1622, 1625, 86, 1629, 1624, - 86, 1628, 1631, 1633, 1627, 86, 1632, 1634, 86, 1636, - 1638, 86, 1635, 1640, 1637, 1641, 1630, 86, 1639, 86, - 1642, 86, 1646, 86, 86, 1629, 1643, 1644, 1647, 1631, - 1633, 86, 1651, 1632, 1648, 86, 1645, 1638, 86, 86, - 1640, 86, 1641, 86, 86, 1639, 1653, 1642, 86, 1646, - - 1649, 1650, 86, 1643, 1644, 1654, 86, 86, 1652, 1660, - 86, 1648, 1655, 1645, 86, 86, 86, 86, 1656, 1659, - 86, 1657, 1658, 1653, 1662, 3438, 86, 1649, 1650, 86, - 86, 1661, 86, 1663, 1664, 1652, 1660, 86, 1666, 1655, - 1667, 1668, 86, 86, 1665, 1656, 1659, 1669, 1657, 1658, - 86, 1662, 86, 86, 1670, 1672, 1671, 86, 1661, 3438, - 1663, 1664, 1673, 1677, 1678, 1666, 1679, 86, 86, 86, - 86, 1665, 86, 86, 1669, 1674, 86, 86, 86, 1675, - 1680, 1670, 1672, 1671, 1681, 1682, 86, 86, 1683, 1673, - 1677, 1678, 1676, 1679, 1684, 86, 1685, 3438, 1687, 3438, - - 86, 1688, 1674, 1686, 1689, 1691, 1675, 1680, 86, 1690, - 86, 1681, 86, 1694, 86, 1683, 86, 86, 1700, 1676, - 86, 1692, 1693, 1685, 86, 1687, 86, 86, 1688, 86, - 1686, 1689, 1691, 1695, 1696, 1697, 1690, 1698, 1702, 86, - 1699, 86, 1704, 86, 1701, 86, 1703, 1705, 1692, 1693, - 86, 86, 1706, 1707, 3438, 3438, 1712, 3438, 86, 86, - 86, 1696, 1697, 86, 1698, 86, 86, 1699, 1709, 86, - 86, 1701, 1708, 1703, 1705, 86, 1710, 86, 86, 1706, - 1707, 1711, 86, 1712, 1713, 1714, 1719, 1716, 86, 1715, - 3438, 86, 1717, 1720, 86, 1709, 86, 86, 1718, 1708, - - 1723, 1727, 86, 1710, 86, 86, 1721, 86, 1711, 86, - 1724, 1713, 1714, 1719, 1716, 1722, 1715, 86, 86, 1717, - 1720, 1725, 1726, 86, 86, 1718, 1728, 1723, 1727, 1729, - 3438, 86, 1730, 1721, 86, 1732, 86, 1724, 86, 1731, - 1733, 1734, 1722, 3438, 1736, 86, 86, 1735, 1725, 1726, - 1737, 1738, 86, 1728, 1740, 86, 86, 86, 1741, 1730, - 3438, 86, 1732, 3438, 1742, 1739, 1731, 1733, 1734, 170, - 86, 1736, 86, 86, 1735, 1743, 86, 1737, 86, 86, - 1746, 1740, 1744, 1745, 1747, 1741, 86, 1748, 86, 3438, - 86, 1742, 1739, 86, 1749, 1752, 1750, 1751, 1754, 1753, - - 1762, 1755, 1743, 86, 86, 1756, 1758, 1746, 86, 1744, - 1745, 1747, 1757, 86, 1748, 1760, 86, 86, 1761, 1764, - 86, 1749, 86, 1750, 1751, 1754, 1753, 86, 1755, 1759, - 86, 86, 1756, 1763, 86, 1765, 86, 1767, 86, 1757, - 86, 86, 1768, 1771, 1770, 1761, 1764, 86, 1766, 1772, - 1774, 86, 1769, 86, 1773, 86, 1759, 86, 1780, 86, - 1763, 3438, 1765, 86, 1767, 86, 1781, 1775, 86, 1768, - 1771, 1770, 1787, 86, 1784, 1766, 1772, 1774, 1776, 1769, - 86, 1773, 86, 1777, 1782, 86, 1778, 1785, 86, 1786, - 86, 86, 86, 1781, 1775, 1788, 86, 1789, 1779, 1787, - - 1783, 1784, 1790, 1794, 1791, 1776, 1792, 86, 86, 86, - 1777, 1782, 1793, 1778, 1785, 1795, 1786, 1801, 3438, 1797, - 1802, 1804, 86, 1800, 3438, 1779, 86, 1783, 86, 86, - 1796, 1791, 86, 1792, 86, 86, 1799, 86, 86, 1793, - 1798, 1805, 1795, 86, 86, 86, 1797, 86, 86, 86, - 1800, 1803, 86, 86, 1806, 1807, 1809, 1796, 1808, 1810, - 3438, 1812, 1811, 1799, 1813, 86, 86, 1798, 1805, 86, - 1815, 1814, 1817, 86, 86, 1818, 86, 86, 1803, 86, - 86, 1806, 86, 1809, 86, 1808, 1810, 1823, 1812, 1811, - 1816, 1813, 86, 1819, 1820, 86, 1821, 1815, 1814, 1817, - - 86, 86, 1818, 1824, 1822, 1825, 1826, 1829, 1828, 86, - 86, 86, 1827, 86, 86, 1830, 86, 1816, 86, 86, - 1819, 1820, 86, 1821, 1831, 86, 1832, 3438, 1833, 1837, - 1824, 1822, 1825, 1826, 86, 1828, 1834, 1835, 86, 1827, - 1836, 86, 1830, 86, 1838, 1839, 86, 1843, 86, 1840, - 86, 1831, 1848, 1832, 86, 1833, 1837, 86, 86, 1849, - 1847, 1844, 86, 1834, 1835, 1841, 1845, 1836, 1842, 86, - 1850, 1838, 1839, 86, 1843, 1846, 1840, 86, 1866, 86, - 1851, 1852, 1853, 86, 86, 86, 86, 1847, 1844, 86, - 1854, 1855, 1841, 1845, 1856, 1842, 1857, 1850, 1859, 86, - - 1858, 1860, 1846, 3438, 86, 86, 86, 1851, 1852, 86, - 86, 1861, 86, 1865, 1867, 3438, 86, 1854, 1855, 1868, - 86, 1856, 86, 1857, 1862, 1859, 86, 1858, 1860, 86, - 1863, 86, 86, 1864, 1870, 1869, 1872, 1871, 1861, 1873, - 1865, 86, 1897, 86, 1874, 1875, 1868, 86, 86, 86, - 86, 1862, 1877, 1876, 86, 1879, 1878, 1863, 1880, 1881, - 1864, 1870, 1869, 1872, 1871, 86, 1882, 86, 86, 86, - 1883, 86, 1875, 1885, 86, 3438, 1886, 86, 3438, 1877, - 1876, 86, 1879, 1878, 1884, 1880, 1881, 1887, 86, 1888, - 1890, 86, 1893, 1882, 1894, 1889, 86, 1883, 86, 86, - - 1885, 86, 1891, 1886, 1896, 86, 86, 1892, 1895, 86, - 1899, 1884, 1900, 86, 1887, 1898, 1888, 1890, 1901, 1893, - 1902, 1894, 1889, 1903, 86, 1904, 86, 1907, 1911, 1905, - 1906, 1896, 3438, 86, 86, 1895, 86, 86, 3438, 1908, - 86, 3438, 1898, 86, 86, 1901, 86, 1902, 1909, 1912, - 1913, 1915, 1904, 86, 1910, 86, 1905, 1906, 86, 86, - 86, 1914, 1916, 3438, 1917, 1918, 1908, 1919, 86, 86, - 86, 1925, 86, 1920, 1923, 1909, 1912, 1913, 1915, 86, - 1921, 1910, 86, 1922, 86, 86, 1926, 86, 1914, 1916, - 1927, 1917, 1918, 86, 1919, 1924, 86, 1928, 1929, 1930, - - 1920, 86, 1932, 86, 86, 86, 1931, 1921, 86, 1933, - 1922, 1934, 1937, 1938, 86, 1935, 3438, 1927, 86, 1936, - 86, 86, 1924, 86, 86, 1929, 1930, 1939, 1940, 86, - 86, 1941, 3438, 1931, 86, 1942, 1933, 1943, 1944, 1937, - 86, 1945, 1935, 86, 3438, 86, 1936, 1947, 1946, 1949, - 1950, 86, 1948, 86, 1939, 1940, 86, 86, 1941, 86, - 1954, 86, 1942, 1956, 1943, 1944, 86, 170, 1945, 1952, - 1951, 86, 1953, 1955, 1947, 1946, 1949, 86, 86, 1948, - 86, 1961, 1965, 86, 86, 1959, 86, 86, 1957, 1958, - 1956, 1960, 1962, 86, 1967, 1968, 1952, 1951, 86, 1953, - - 1955, 1963, 1964, 86, 86, 1970, 1966, 86, 1969, 86, - 86, 1971, 1959, 86, 1993, 1957, 1958, 86, 1960, 1962, - 1973, 86, 1968, 86, 1972, 1974, 86, 1975, 1963, 1964, - 86, 1976, 1977, 1966, 86, 1969, 86, 86, 86, 86, - 1979, 86, 1980, 1981, 1978, 86, 86, 1973, 1982, 86, - 1984, 1972, 1974, 86, 1975, 3438, 1983, 1990, 1976, 1977, - 1985, 86, 86, 86, 86, 1992, 3438, 1979, 86, 1980, - 1981, 1978, 86, 1986, 1987, 1982, 1991, 1984, 86, 86, - 1994, 86, 1988, 1983, 1990, 1995, 86, 1985, 86, 1989, - 1996, 1997, 86, 86, 1999, 2000, 2003, 2001, 86, 1998, - - 1986, 1987, 86, 1991, 86, 2002, 86, 1994, 86, 1988, - 2004, 2006, 1995, 2005, 2012, 2007, 1989, 1996, 1997, 86, - 86, 1999, 2000, 86, 2001, 2010, 1998, 2008, 2009, 2014, - 2011, 86, 2002, 86, 86, 2013, 2015, 86, 86, 2016, - 2005, 86, 2007, 2018, 3438, 86, 86, 2017, 2019, 86, - 2021, 2020, 86, 86, 2008, 2009, 2022, 2011, 86, 86, - 2024, 86, 2013, 2015, 2023, 2028, 86, 86, 2025, 2042, - 2018, 86, 86, 2026, 2017, 86, 86, 2021, 2020, 2027, - 2034, 2033, 2036, 86, 3438, 2035, 2037, 2024, 86, 86, - 86, 2023, 86, 86, 86, 2025, 2042, 86, 2040, 86, - - 2026, 86, 2029, 2030, 2031, 2038, 2027, 2034, 2033, 2032, - 2039, 86, 2035, 2037, 86, 2041, 2043, 86, 2045, 2047, - 2046, 2044, 2048, 3438, 2049, 2040, 86, 86, 86, 2029, - 2030, 2031, 86, 86, 2050, 86, 2032, 86, 86, 2051, - 3438, 2054, 2041, 2043, 2055, 2052, 2047, 2046, 2044, 2048, - 86, 86, 86, 2053, 2057, 2056, 2059, 2058, 86, 86, - 2060, 2050, 86, 2061, 2062, 86, 2051, 86, 2054, 86, - 2064, 86, 2052, 2065, 86, 2063, 2066, 2068, 86, 86, - 2053, 86, 2056, 2059, 2058, 2067, 86, 2060, 86, 2070, - 2061, 2069, 86, 2071, 86, 86, 86, 86, 2072, 2073, - - 2065, 2074, 2063, 2066, 2068, 86, 2077, 2075, 2076, 86, - 2081, 2080, 2067, 2083, 86, 86, 2070, 2078, 2069, 2079, - 2071, 86, 2084, 2082, 2085, 2072, 2073, 86, 86, 86, - 2091, 86, 86, 86, 2075, 2076, 2087, 86, 86, 2086, - 2083, 2090, 86, 86, 2078, 86, 2079, 2088, 2092, 2084, - 2082, 2085, 2089, 86, 86, 2095, 86, 2093, 2094, 2100, - 86, 2099, 86, 2087, 86, 2097, 2086, 86, 2090, 2101, - 86, 2096, 86, 2105, 2088, 2102, 2098, 86, 86, 2089, - 86, 86, 2095, 86, 2093, 2094, 86, 86, 2099, 2103, - 2104, 2106, 2097, 2107, 2108, 2112, 2101, 86, 2096, 86, - - 2105, 2109, 2102, 2098, 2113, 2116, 2114, 2115, 2119, 2110, - 86, 86, 86, 86, 2111, 86, 2103, 2104, 2106, 86, - 2107, 86, 86, 2117, 86, 86, 2122, 86, 2109, 2120, - 86, 2113, 2116, 2114, 2115, 2118, 2110, 2121, 86, 2124, - 86, 2111, 86, 2123, 2135, 2125, 2126, 2127, 86, 86, - 2117, 2130, 2136, 2122, 2131, 2132, 2120, 86, 86, 2137, - 86, 2138, 2118, 2128, 2121, 86, 86, 2140, 2129, 86, - 2123, 86, 2125, 2126, 2127, 2133, 86, 2139, 2130, 86, - 2134, 86, 86, 86, 86, 2141, 2137, 2142, 2138, 2150, - 2128, 2143, 86, 2145, 2144, 2129, 86, 2146, 2147, 86, - - 86, 2148, 86, 3438, 2139, 2151, 86, 86, 2149, 86, - 86, 170, 2141, 2155, 2142, 86, 2150, 2154, 2143, 2152, - 86, 2144, 2156, 2153, 2146, 86, 2157, 2158, 2148, 2159, - 86, 86, 2151, 2160, 86, 2149, 86, 86, 3438, 86, - 2155, 2161, 2162, 2164, 2154, 2163, 2152, 2166, 86, 2156, - 2153, 2165, 2167, 86, 86, 2168, 2159, 2172, 2171, 2173, - 2169, 86, 86, 2177, 86, 86, 86, 86, 2161, 2162, - 2164, 86, 2163, 86, 2166, 86, 2170, 86, 2165, 2167, - 86, 86, 2168, 2174, 86, 2171, 2173, 2169, 2176, 2175, - 86, 86, 2178, 2180, 2182, 2179, 2181, 2184, 2185, 86, - - 2186, 3438, 86, 2170, 86, 86, 2183, 86, 3438, 3438, - 2174, 86, 86, 86, 3438, 2176, 2175, 86, 86, 2178, - 2180, 2182, 2179, 2181, 2188, 2185, 2187, 2186, 86, 86, - 2189, 2191, 2192, 2183, 2194, 86, 2193, 86, 2199, 2196, - 86, 2190, 2197, 86, 2195, 2198, 2200, 3438, 86, 3438, - 86, 2188, 86, 2187, 86, 2201, 86, 2189, 2191, 2192, - 86, 2194, 86, 2193, 2202, 2199, 2196, 86, 2190, 2197, - 2203, 2195, 2198, 86, 2204, 86, 2205, 2206, 2207, 86, - 2208, 86, 2201, 2209, 2210, 2211, 86, 2212, 86, 86, - 2213, 2202, 2214, 2216, 2215, 2219, 86, 2203, 3438, 3438, - - 2217, 2204, 86, 2205, 86, 2207, 86, 2208, 86, 86, - 2209, 86, 2211, 2218, 86, 86, 86, 2213, 86, 2214, - 86, 2215, 2219, 2220, 2221, 86, 2222, 2217, 2223, 2224, - 2231, 2226, 86, 2225, 2227, 86, 2228, 86, 3438, 2234, - 2218, 2229, 86, 86, 86, 86, 86, 2237, 86, 86, - 2220, 2221, 2233, 2222, 2230, 2223, 2224, 2231, 2226, 2241, - 2225, 2227, 86, 2228, 2235, 2232, 86, 86, 2229, 86, - 2236, 86, 2238, 86, 2237, 2239, 2240, 86, 2242, 2233, - 3438, 2230, 86, 2245, 86, 2243, 2241, 86, 2244, 2249, - 3438, 2235, 2232, 2247, 86, 2246, 2251, 2236, 86, 2238, - - 2252, 86, 2239, 2240, 86, 2242, 2248, 86, 86, 2250, - 2245, 86, 2243, 2253, 86, 2244, 2249, 86, 2254, 2256, - 2247, 86, 2246, 2255, 86, 86, 86, 2252, 86, 2257, - 2258, 2259, 2261, 2248, 2260, 2262, 2250, 2264, 2263, 86, - 2253, 86, 3438, 86, 2266, 86, 2256, 2265, 2271, 2267, - 2255, 86, 86, 86, 86, 2275, 2257, 2258, 2259, 2261, - 86, 2260, 86, 2268, 2264, 2263, 2270, 86, 2272, 2269, - 2276, 2273, 2278, 2274, 2265, 86, 86, 86, 2277, 86, - 86, 86, 86, 86, 2281, 3438, 2283, 86, 2284, 2282, - 2268, 3438, 86, 2270, 86, 2272, 2269, 2276, 2273, 2278, - - 2274, 2279, 3438, 86, 86, 2277, 2285, 2286, 2287, 2280, - 3438, 86, 86, 2283, 86, 2284, 2282, 86, 2290, 2288, - 86, 2291, 2289, 2294, 86, 2292, 2295, 86, 2279, 86, - 2293, 3438, 2296, 2285, 2286, 2287, 2280, 86, 86, 2297, - 2298, 2299, 2300, 86, 86, 2290, 2288, 86, 2291, 2289, - 2294, 2301, 2302, 2295, 86, 2303, 86, 86, 86, 2296, - 2306, 3438, 86, 86, 2304, 2305, 2297, 2298, 2299, 2300, - 86, 86, 2308, 86, 86, 2307, 2309, 86, 2301, 2302, - 2311, 2312, 86, 2310, 2314, 86, 2313, 2306, 86, 3438, - 2315, 2304, 2305, 86, 3438, 86, 86, 2316, 2319, 2308, - - 2320, 2317, 2307, 2309, 86, 86, 86, 2311, 2312, 2321, - 2310, 2314, 86, 2313, 2318, 86, 2323, 2315, 86, 86, - 2322, 86, 86, 2325, 2316, 2319, 2324, 2320, 2317, 86, - 2326, 2327, 2328, 2329, 3438, 2331, 2321, 2332, 2333, 2330, - 86, 2318, 2337, 2323, 86, 86, 2334, 2322, 86, 86, - 86, 170, 2338, 2324, 2339, 2342, 86, 2326, 86, 2328, - 2329, 86, 2331, 2335, 2332, 2341, 2330, 2340, 2336, 2351, - 86, 2343, 86, 2334, 86, 2346, 2347, 3438, 86, 2348, - 2354, 2339, 86, 3438, 86, 2344, 86, 2352, 2355, 2349, - 2350, 3438, 2341, 86, 2340, 86, 2345, 86, 2343, 86, - - 2353, 86, 2346, 86, 86, 86, 2348, 86, 2356, 86, - 86, 2357, 2344, 3438, 2352, 2355, 2349, 2350, 2358, 2359, - 2361, 2360, 86, 2345, 3438, 86, 86, 2353, 86, 2362, - 2365, 2363, 2364, 3438, 86, 86, 2371, 3438, 2357, 2369, - 86, 2366, 86, 2367, 86, 2358, 2359, 2361, 2360, 2372, - 86, 86, 86, 2368, 86, 2382, 2362, 2365, 2363, 2364, - 86, 86, 2370, 86, 2374, 2373, 2369, 86, 2366, 2376, - 2367, 2378, 86, 2375, 86, 2377, 2372, 86, 86, 86, - 2368, 2379, 86, 2380, 2381, 2383, 86, 2384, 2389, 2370, - 86, 2374, 2373, 86, 86, 86, 2376, 86, 2378, 2385, - - 2375, 2386, 2377, 86, 86, 86, 2387, 86, 2379, 86, - 2380, 2381, 2383, 2388, 2384, 2389, 2390, 2391, 2392, 2394, - 2393, 86, 3438, 86, 2396, 2397, 2385, 2395, 2386, 2399, - 86, 86, 86, 2387, 86, 2398, 2400, 3438, 2403, 2404, - 2388, 2406, 2401, 2390, 2391, 2392, 2394, 2393, 86, 86, - 86, 2396, 86, 86, 2395, 86, 2399, 86, 2402, 2405, - 2408, 2407, 2398, 2400, 86, 2403, 86, 2409, 86, 2401, - 2412, 2413, 86, 86, 86, 2416, 2417, 2410, 2414, 2415, - 2411, 2418, 86, 86, 86, 2402, 2405, 2408, 2407, 2419, - 2420, 2421, 2422, 86, 2409, 86, 86, 86, 86, 86, - - 86, 86, 2416, 2417, 2410, 2414, 2415, 2411, 2418, 2424, - 2425, 2423, 2426, 2427, 2428, 2429, 86, 86, 2421, 86, - 86, 2431, 86, 2435, 2434, 2430, 2437, 2433, 86, 2443, - 3438, 86, 2432, 2440, 86, 86, 86, 2425, 2423, 2426, - 86, 86, 2429, 86, 2439, 86, 86, 2436, 2431, 2438, - 86, 2434, 2430, 86, 2433, 86, 86, 86, 86, 2432, - 2440, 3438, 2441, 2445, 2444, 86, 2447, 2446, 2449, 2454, - 2452, 2439, 86, 2448, 2436, 86, 2438, 2442, 86, 2450, - 2451, 86, 86, 2456, 86, 2453, 86, 2457, 86, 2441, - 2445, 2444, 86, 2447, 2446, 86, 86, 2452, 2459, 86, - - 2448, 2455, 2461, 2458, 2442, 86, 2450, 2451, 86, 86, - 2456, 2460, 2453, 2462, 2457, 86, 2465, 86, 86, 2466, - 2469, 2467, 86, 2463, 2464, 86, 86, 2468, 2455, 2461, - 2458, 2472, 86, 86, 2473, 2470, 3438, 2471, 2460, 86, - 2462, 2480, 86, 2465, 86, 86, 2466, 2469, 2467, 86, - 2463, 2464, 86, 2474, 2468, 2475, 2476, 2477, 86, 2478, - 2483, 2473, 2470, 86, 2471, 86, 2479, 2481, 2480, 2482, - 2484, 86, 86, 2485, 3438, 86, 2488, 86, 3438, 2486, - 2474, 3438, 2475, 2476, 2477, 86, 2478, 2483, 86, 86, - 2489, 86, 2487, 2479, 2481, 2491, 2482, 86, 2490, 2492, - - 2493, 2499, 86, 2494, 86, 86, 2486, 2500, 86, 2502, - 2495, 2496, 86, 86, 2497, 2505, 86, 2489, 2498, 2487, - 86, 86, 2491, 2501, 86, 2490, 2492, 2493, 86, 86, - 2494, 86, 86, 86, 2503, 2508, 2502, 2495, 2496, 86, - 2504, 2497, 3438, 2506, 3438, 2498, 86, 86, 2509, 2510, - 2501, 2507, 86, 86, 2513, 2515, 2511, 2514, 2512, 2517, - 2516, 2503, 2508, 86, 2518, 86, 86, 2504, 86, 86, - 2506, 170, 86, 2522, 86, 2509, 2510, 86, 2507, 86, - 2520, 2513, 86, 2511, 2514, 2512, 2517, 2516, 2519, 2521, - 2523, 2518, 86, 2525, 2524, 2526, 2528, 86, 2527, 86, - - 2522, 86, 2529, 2531, 86, 2530, 2532, 2520, 86, 2534, - 2533, 3438, 86, 2536, 3438, 2519, 2521, 2523, 2535, 2537, - 2525, 2524, 86, 86, 86, 2527, 86, 86, 86, 2529, - 2538, 86, 2530, 2539, 86, 86, 86, 2533, 86, 86, - 2536, 86, 2540, 86, 2541, 2535, 2537, 2544, 2542, 3438, - 2543, 3438, 2546, 3438, 2545, 2548, 3438, 2538, 2547, 2550, - 2539, 86, 2552, 3438, 2551, 2549, 86, 2561, 86, 2540, - 86, 3438, 86, 86, 2544, 2542, 86, 2543, 86, 86, - 86, 2545, 2548, 86, 2553, 2547, 2550, 86, 2554, 86, - 2555, 2551, 2549, 2556, 2557, 2558, 2559, 86, 86, 86, - - 86, 2564, 2560, 86, 2562, 2563, 3438, 86, 2565, 86, - 86, 2553, 2566, 2567, 86, 2554, 86, 2555, 86, 86, - 2556, 2557, 2558, 2559, 86, 86, 2568, 2569, 2564, 2560, - 2570, 2562, 2563, 2571, 86, 2565, 2572, 2573, 86, 2566, - 2567, 86, 2574, 2575, 3438, 2576, 3438, 2578, 86, 2577, - 2581, 2579, 86, 2568, 2569, 86, 86, 2570, 2580, 2583, - 86, 2584, 86, 2572, 2573, 86, 2585, 2587, 2582, 2574, - 2575, 86, 2576, 86, 2578, 2586, 2577, 86, 2579, 86, - 86, 86, 86, 86, 86, 2580, 86, 2588, 2584, 2589, - 2590, 86, 2594, 86, 2587, 2582, 2592, 2591, 86, 2593, - - 2595, 2596, 2586, 86, 2597, 2599, 3438, 2600, 3438, 2598, - 86, 86, 2607, 2602, 2588, 2605, 2589, 2590, 86, 86, - 86, 86, 2610, 2592, 2591, 2615, 2593, 86, 2606, 86, - 86, 2597, 2599, 86, 2600, 2601, 2598, 86, 2603, 2604, - 2602, 2608, 86, 86, 86, 2609, 86, 2611, 2612, 86, - 86, 2613, 86, 86, 86, 2606, 86, 86, 2614, 2616, - 86, 2617, 2601, 2621, 2618, 2603, 2604, 2619, 2608, 3438, - 86, 86, 2609, 2620, 2611, 2612, 86, 2624, 2613, 2622, - 2623, 86, 86, 2627, 86, 2614, 2616, 2628, 2617, 86, - 2621, 2618, 86, 2629, 2619, 86, 2625, 2630, 86, 86, - - 2620, 2626, 2631, 86, 2624, 86, 2622, 2623, 86, 2633, - 2627, 2632, 2634, 3438, 86, 2635, 3438, 2636, 86, 3438, - 86, 2641, 2637, 2625, 86, 2638, 86, 86, 2626, 86, - 2639, 2643, 86, 2640, 86, 2642, 2633, 86, 2632, 2634, - 86, 86, 2635, 86, 2636, 86, 86, 2644, 2641, 2637, - 2645, 2646, 2638, 2647, 2655, 86, 2648, 2639, 86, 2649, - 2640, 2650, 2642, 2651, 2656, 2652, 2653, 3438, 2654, 86, - 86, 86, 3438, 86, 2644, 86, 86, 86, 86, 86, - 2647, 86, 86, 2648, 2657, 86, 2649, 86, 2650, 2658, - 2651, 2656, 2652, 2653, 2659, 2654, 86, 2660, 2662, 2661, - - 86, 3438, 2663, 86, 2664, 3438, 2665, 3438, 86, 2671, - 2666, 2657, 86, 86, 2669, 2670, 2658, 2674, 2667, 170, - 86, 2659, 2668, 86, 2660, 2662, 2661, 86, 86, 2663, - 86, 2664, 86, 2665, 86, 2672, 2671, 2666, 2673, 86, - 2676, 2669, 2670, 2677, 2674, 2667, 2675, 3438, 2678, 2668, - 2679, 86, 2680, 2682, 2681, 3438, 2683, 2686, 3438, 86, - 2684, 3438, 2672, 86, 86, 2673, 86, 86, 86, 86, - 86, 3438, 86, 2675, 86, 2678, 86, 2679, 86, 2680, - 2682, 2681, 2685, 2683, 2686, 2687, 2688, 2684, 2689, 86, - 86, 2690, 2691, 86, 2692, 2693, 2694, 2696, 86, 2695, - - 2700, 86, 2698, 2697, 86, 86, 86, 86, 2702, 2685, - 2699, 2703, 2687, 2688, 2701, 2689, 86, 86, 2690, 2691, - 86, 2692, 2693, 2694, 86, 86, 2695, 86, 86, 2698, - 2697, 2704, 86, 2705, 2706, 86, 2707, 2699, 2703, 2708, - 86, 2701, 2710, 2709, 2711, 86, 86, 2712, 86, 2713, - 86, 2715, 2716, 86, 86, 2714, 86, 2717, 2704, 2718, - 2705, 2706, 3438, 2707, 86, 2723, 2708, 2721, 2719, 2710, - 2709, 86, 86, 2720, 86, 86, 2713, 86, 2715, 86, - 2722, 2724, 2714, 2725, 86, 86, 2728, 86, 86, 2726, - 86, 86, 2723, 86, 2721, 2719, 2727, 2729, 2730, 2732, - - 2720, 2731, 3438, 2734, 2733, 3438, 3438, 2722, 2724, 86, - 2725, 86, 86, 86, 2736, 2737, 2726, 86, 86, 2742, - 2735, 86, 86, 2727, 2729, 86, 2732, 86, 2731, 2741, - 2734, 2733, 2738, 2740, 2745, 2739, 86, 86, 2743, 86, - 86, 2736, 2737, 86, 2748, 2744, 86, 2735, 2746, 2751, - 86, 2747, 2752, 86, 86, 3438, 2741, 2749, 2750, 2738, - 2740, 86, 2739, 86, 86, 2743, 86, 86, 2753, 86, - 2754, 2748, 2744, 2756, 2758, 2746, 86, 86, 2747, 2752, - 86, 86, 2755, 2757, 2749, 2750, 2760, 2762, 2759, 86, - 2763, 2761, 86, 3438, 2765, 2753, 2767, 2754, 86, 86, - - 86, 2758, 2764, 86, 2766, 86, 2768, 3438, 2769, 2755, - 2757, 86, 86, 86, 86, 2759, 2771, 2763, 2761, 86, - 86, 2765, 2770, 2767, 2772, 2773, 2774, 86, 2775, 2764, - 2776, 2766, 2777, 86, 86, 2769, 2780, 2786, 86, 86, - 2778, 3438, 2779, 86, 86, 86, 86, 86, 86, 2770, - 2781, 2772, 2773, 2774, 86, 2775, 2782, 2776, 2783, 86, - 2784, 2785, 2788, 86, 2786, 3438, 2787, 2778, 2790, 2779, - 2791, 86, 86, 2793, 2789, 2794, 2795, 2781, 86, 2792, - 86, 86, 86, 2782, 86, 2783, 86, 2784, 2785, 2788, - 86, 86, 86, 2787, 2797, 2790, 2796, 2791, 86, 2798, - - 86, 2789, 86, 2795, 86, 2799, 2792, 2800, 2801, 2802, - 2804, 2803, 2805, 3438, 3438, 2807, 86, 86, 2806, 86, - 2808, 170, 2810, 2796, 86, 2812, 2798, 86, 2811, 2809, - 2813, 2814, 2799, 86, 2800, 2801, 86, 2804, 2803, 2805, - 86, 86, 86, 86, 2815, 2806, 2816, 86, 2817, 86, - 2819, 2818, 86, 86, 2824, 2811, 2809, 86, 2814, 86, - 2825, 2820, 2822, 2821, 2823, 3438, 86, 2827, 3438, 2830, - 86, 2815, 86, 2816, 86, 86, 2826, 2819, 2818, 86, - 86, 86, 86, 2829, 2828, 2831, 86, 2832, 2820, 2822, - 2821, 2823, 86, 86, 2827, 2833, 2830, 2834, 86, 2835, - - 86, 2836, 2837, 2826, 86, 86, 86, 2838, 2841, 86, - 2829, 2828, 2831, 86, 2832, 3438, 2840, 86, 2839, 86, - 86, 2842, 2833, 2843, 2834, 86, 2835, 2845, 2836, 2837, - 2844, 86, 2846, 86, 2838, 86, 86, 86, 2847, 2848, - 86, 2850, 86, 2840, 2849, 2839, 2851, 86, 2842, 2853, - 2843, 2855, 2852, 86, 2845, 2856, 2854, 2844, 86, 86, - 86, 86, 86, 86, 2858, 2847, 2848, 2857, 2850, 86, - 2859, 2849, 2860, 86, 86, 2861, 2853, 2862, 2855, 2852, - 2867, 86, 86, 2854, 2863, 3438, 2864, 2865, 3438, 3438, - 2874, 2868, 2866, 2869, 2857, 3438, 86, 2870, 2875, 2860, - - 2872, 2876, 86, 86, 86, 86, 86, 86, 86, 2871, - 86, 2863, 86, 2864, 2865, 86, 86, 86, 2868, 2866, - 2869, 86, 2873, 2877, 2870, 86, 86, 2872, 86, 2878, - 2879, 86, 2880, 2881, 2886, 2883, 2871, 2882, 2885, 86, - 2884, 86, 2887, 2888, 2889, 3438, 86, 2893, 2890, 2873, - 2877, 86, 86, 86, 2896, 86, 2878, 86, 3438, 2880, - 2881, 2886, 2891, 2892, 2882, 2885, 2897, 86, 86, 2887, - 86, 86, 86, 2894, 86, 2890, 86, 86, 2895, 2898, - 2900, 86, 86, 2899, 2901, 86, 2903, 2902, 2904, 2891, - 2892, 2905, 86, 2897, 2906, 86, 86, 2907, 86, 86, - - 2894, 2908, 2915, 2909, 2914, 2895, 86, 86, 2910, 2918, - 2899, 2901, 2911, 2903, 2902, 2912, 86, 86, 86, 2913, - 86, 2906, 86, 86, 2917, 86, 86, 2919, 2908, 86, - 2916, 2914, 86, 2920, 86, 86, 86, 2921, 2922, 2911, - 86, 3438, 2912, 2923, 3438, 2924, 2913, 86, 3438, 86, - 2930, 2917, 86, 2927, 2919, 2929, 2931, 2916, 2925, 2926, - 2920, 86, 86, 86, 2921, 2922, 2932, 86, 86, 2928, - 2923, 86, 2924, 2933, 2935, 86, 2936, 2930, 86, 86, - 2927, 2934, 2929, 86, 86, 2925, 2926, 86, 2937, 2938, - 2940, 2942, 2943, 2932, 2939, 2941, 2928, 86, 2944, 86, - - 2933, 2935, 2945, 2936, 2946, 3438, 2947, 86, 2934, 2948, - 2950, 3438, 2949, 2951, 86, 2937, 2952, 86, 2942, 86, - 86, 86, 86, 2954, 86, 2944, 2955, 2953, 86, 2945, - 86, 2946, 86, 2947, 86, 86, 2948, 2950, 86, 2949, - 2951, 2956, 2957, 2952, 86, 86, 2958, 2959, 86, 86, - 2954, 2960, 2961, 2955, 2953, 2962, 2963, 2964, 2965, 2966, - 3438, 86, 3438, 2967, 2972, 3438, 3438, 2978, 2956, 2957, - 2968, 2969, 2979, 86, 86, 86, 86, 2970, 2960, 2961, - 86, 86, 86, 2963, 86, 2965, 86, 2971, 86, 86, - 2967, 86, 2973, 2974, 2975, 86, 86, 2968, 2969, 86, - - 2976, 2977, 86, 2980, 2970, 2981, 2982, 2984, 2985, 2983, - 2996, 86, 2986, 86, 2971, 86, 86, 86, 2989, 2973, - 2974, 2975, 2987, 86, 86, 86, 2990, 2976, 2977, 86, - 2980, 86, 2981, 2982, 86, 86, 2983, 2988, 2993, 2986, - 2991, 2992, 86, 86, 86, 86, 86, 2995, 2994, 2987, - 2999, 2998, 3002, 2990, 86, 86, 2997, 86, 3000, 3003, - 86, 3001, 3004, 3438, 2988, 2993, 86, 2991, 2992, 3005, - 86, 86, 86, 3008, 2995, 2994, 86, 2999, 2998, 3002, - 86, 86, 86, 2997, 3009, 3000, 3003, 86, 3001, 3004, - 3006, 3010, 3011, 3007, 3012, 3013, 3005, 3438, 3015, 3438, - - 86, 86, 3014, 86, 3016, 3017, 3018, 3438, 3438, 3021, - 86, 86, 3022, 3020, 3019, 86, 86, 3006, 86, 3011, - 3007, 3012, 3013, 86, 86, 3024, 86, 86, 86, 3014, - 86, 3016, 3017, 86, 86, 3023, 3021, 3026, 3027, 3022, - 3020, 3019, 3438, 3025, 86, 86, 3028, 3029, 3438, 3030, - 3031, 3032, 3034, 3035, 3033, 3438, 3438, 86, 86, 86, - 3038, 86, 3023, 86, 86, 3027, 86, 3044, 86, 86, - 3025, 3036, 3037, 3028, 3029, 86, 3030, 3031, 3032, 3034, - 86, 3033, 3039, 86, 3040, 86, 86, 3038, 3041, 3042, - 3043, 3048, 3045, 86, 3044, 86, 86, 3046, 3036, 3037, - - 86, 3047, 86, 3050, 3051, 3049, 86, 3053, 86, 3039, - 86, 3040, 86, 86, 3052, 3041, 3042, 3043, 86, 3045, - 86, 3056, 3054, 3058, 3046, 3055, 3057, 3059, 3047, 3061, - 86, 86, 3049, 86, 86, 3060, 86, 86, 3062, 3065, - 3063, 3052, 86, 86, 86, 86, 3068, 86, 3056, 3054, - 3058, 3064, 3055, 3057, 86, 3066, 3061, 3069, 3070, 86, - 3073, 3067, 3060, 3082, 86, 86, 3065, 3063, 86, 86, - 86, 3071, 3072, 86, 3074, 3077, 3076, 86, 3064, 3075, - 3079, 3083, 3066, 86, 3069, 3081, 3080, 86, 3067, 86, - 86, 86, 86, 86, 3078, 86, 86, 3086, 3071, 3072, - - 3084, 86, 86, 3076, 86, 3087, 3075, 3079, 3083, 3085, - 3088, 3089, 3081, 3080, 3090, 86, 86, 86, 3091, 3092, - 3093, 3078, 3094, 3095, 86, 3096, 86, 3084, 3099, 3098, - 3438, 3100, 3087, 86, 86, 86, 3085, 3088, 3089, 3097, - 86, 3090, 3102, 3105, 3110, 3091, 3092, 86, 86, 86, - 3095, 86, 86, 86, 3101, 86, 3098, 86, 3100, 3103, - 3104, 3106, 86, 3107, 3109, 3108, 3097, 86, 3112, 86, - 86, 86, 86, 3114, 86, 3111, 86, 3115, 86, 86, - 3113, 3101, 3124, 86, 3116, 3119, 3103, 3104, 3106, 3120, - 3107, 3109, 3108, 3118, 3121, 3112, 3117, 3125, 86, 3122, - - 86, 3126, 3111, 3438, 86, 3128, 86, 3113, 3133, 86, - 86, 3116, 86, 86, 86, 86, 86, 3123, 86, 86, - 3118, 86, 3127, 3117, 3125, 3130, 3122, 3132, 86, 3129, - 86, 3131, 3128, 86, 86, 86, 86, 3134, 86, 3135, - 3139, 3137, 3136, 3138, 3123, 3140, 3141, 86, 86, 3127, - 3142, 3150, 3130, 86, 3132, 86, 3129, 86, 3131, 3144, - 3146, 86, 3147, 3143, 3134, 3151, 3135, 86, 3137, 3136, - 3138, 86, 86, 3145, 3148, 3149, 3152, 3142, 86, 86, - 86, 86, 3153, 86, 3154, 3155, 3144, 86, 86, 86, - 3143, 3156, 3151, 3159, 3438, 86, 86, 3157, 3158, 3160, - - 3145, 3148, 3149, 3152, 86, 86, 86, 3161, 86, 86, - 3162, 3154, 3155, 86, 86, 86, 3164, 3171, 3156, 3163, - 3159, 3166, 3167, 86, 3157, 3158, 3160, 86, 86, 86, - 86, 3165, 3172, 86, 3161, 3168, 3169, 3162, 86, 86, - 3174, 3170, 3175, 3164, 3171, 86, 3163, 86, 3166, 3167, - 3173, 3177, 3178, 3176, 86, 3179, 3180, 86, 3165, 3172, - 86, 3181, 3168, 3169, 86, 3182, 86, 3183, 3170, 3175, - 3185, 3186, 86, 3184, 3191, 86, 3194, 3173, 3177, 3178, - 3176, 86, 86, 86, 86, 3187, 3188, 3438, 3181, 86, - 3189, 3190, 86, 3195, 3183, 3192, 3193, 86, 86, 86, - - 3184, 86, 3197, 3194, 3196, 3199, 3200, 3198, 3202, 3203, - 3201, 3438, 3438, 86, 86, 86, 86, 86, 86, 86, - 3195, 3204, 86, 3205, 86, 86, 3206, 3208, 86, 86, - 86, 3196, 3199, 3200, 3198, 3202, 86, 3201, 3207, 3209, - 3210, 3211, 3212, 3215, 3213, 86, 86, 3214, 3204, 86, - 3205, 86, 3216, 3206, 3208, 3218, 3223, 3231, 3230, 3221, - 3217, 86, 86, 86, 3222, 3207, 3209, 3210, 3211, 86, - 86, 3213, 86, 86, 3214, 3219, 3227, 86, 3220, 86, - 3225, 3224, 3218, 86, 3226, 86, 3233, 3217, 86, 86, - 86, 86, 86, 86, 3228, 3234, 3229, 3232, 86, 3237, - - 3235, 3438, 3219, 3227, 86, 3220, 3236, 3225, 3224, 3238, - 3240, 3226, 86, 86, 3239, 3241, 86, 3242, 86, 3243, - 3244, 3228, 86, 3229, 3232, 3245, 86, 3235, 86, 3246, - 3247, 3249, 86, 3236, 3248, 86, 86, 86, 3250, 3252, - 3254, 3239, 86, 3253, 86, 3251, 86, 86, 3256, 86, - 86, 3255, 86, 3259, 86, 3258, 86, 86, 3249, 86, - 3260, 3248, 3257, 86, 3261, 86, 3252, 86, 86, 86, - 3253, 3262, 3251, 3263, 86, 86, 3264, 3265, 3255, 3267, - 3259, 3268, 3258, 86, 3270, 86, 86, 3260, 3269, 3257, - 86, 86, 3266, 86, 3271, 3272, 3277, 3438, 3262, 3276, - - 86, 86, 3273, 3264, 3265, 86, 3267, 86, 3268, 3274, - 86, 3278, 86, 3275, 86, 3269, 86, 86, 86, 3266, - 86, 3271, 3272, 3277, 86, 3279, 3276, 3280, 86, 3273, - 3283, 3281, 3282, 3284, 86, 3285, 3274, 86, 3278, 3286, - 3275, 3287, 3289, 3288, 86, 86, 3438, 3292, 3290, 3294, - 3291, 86, 3279, 86, 3280, 86, 86, 3283, 3281, 3282, - 86, 86, 86, 86, 3293, 86, 86, 3295, 3287, 3289, - 3288, 86, 3296, 3298, 3292, 3290, 3294, 3291, 3297, 3300, - 86, 3299, 3301, 3302, 86, 86, 3303, 86, 86, 86, - 3438, 3293, 86, 86, 3295, 3306, 3304, 3305, 86, 3296, - - 3298, 3307, 3309, 3308, 86, 3297, 3300, 86, 3299, 3301, - 3302, 3310, 86, 3303, 86, 3311, 3314, 86, 86, 3312, - 3313, 3315, 3306, 3304, 3305, 86, 3316, 86, 3307, 86, - 3308, 3317, 86, 3318, 3319, 3322, 3320, 86, 3310, 86, - 3438, 3438, 3311, 86, 86, 3321, 3312, 3313, 3315, 3323, - 3329, 3324, 86, 86, 3325, 3326, 86, 86, 3317, 86, - 86, 86, 3322, 3320, 3327, 86, 3328, 86, 3330, 3438, - 3331, 86, 3321, 86, 3333, 3334, 3323, 3329, 3324, 86, - 3332, 3325, 3326, 3336, 3337, 3339, 3335, 86, 3338, 3340, - 86, 86, 3341, 3328, 86, 3330, 86, 86, 86, 3344, - - 86, 86, 86, 3342, 3345, 3349, 3343, 3332, 3346, 3438, - 3336, 86, 3339, 3335, 86, 3338, 86, 3348, 86, 3341, - 3347, 86, 86, 3350, 3351, 86, 3354, 86, 3359, 3355, - 3342, 86, 3349, 3343, 86, 3346, 86, 3352, 3353, 86, - 3357, 3356, 86, 86, 3348, 86, 3358, 3347, 86, 3360, - 86, 86, 86, 3354, 86, 3359, 3355, 3362, 3361, 3363, - 3364, 3368, 86, 86, 3352, 3353, 86, 3357, 3356, 3366, - 3365, 3369, 3367, 3358, 3370, 3371, 3360, 86, 86, 86, - 86, 86, 3372, 3373, 3362, 3361, 3363, 86, 86, 3374, - 3376, 3377, 3375, 86, 3379, 3385, 3366, 3365, 3369, 3367, - - 86, 86, 3371, 3378, 86, 86, 86, 3381, 3380, 3372, - 3373, 86, 3382, 3389, 3438, 86, 3374, 3388, 86, 3375, - 3383, 86, 86, 3407, 3387, 86, 3410, 86, 86, 3384, - 3378, 86, 86, 3386, 3381, 3380, 3438, 86, 86, 3382, - 86, 86, 3392, 86, 3388, 3390, 3393, 3383, 3391, 3394, - 86, 3387, 3395, 86, 86, 3396, 3384, 86, 3397, 3401, - 3386, 3399, 86, 86, 86, 3400, 86, 86, 3402, 3392, - 3398, 3404, 3390, 3393, 3403, 3391, 3394, 3438, 3438, 3395, - 86, 86, 3396, 3405, 86, 3397, 3401, 3408, 3399, 3414, - 3409, 86, 3400, 86, 86, 3402, 3406, 3398, 3404, 3411, - - 86, 3403, 3412, 86, 86, 3413, 3416, 3423, 3438, 86, - 3405, 86, 3415, 86, 3408, 86, 3414, 3409, 3418, 86, - 86, 3419, 86, 3406, 3422, 3438, 3411, 3417, 3420, 3412, - 3421, 3427, 3413, 86, 86, 86, 86, 3426, 86, 3415, - 86, 3424, 3428, 86, 3425, 3418, 3429, 3430, 3419, 86, - 86, 3422, 86, 3432, 3417, 3420, 3431, 3421, 86, 3433, - 3436, 3437, 86, 86, 3426, 3438, 3438, 3438, 3424, 3428, - 3434, 3425, 3438, 86, 86, 86, 86, 3435, 86, 3438, - 3432, 86, 3438, 3431, 3438, 86, 3433, 86, 86, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3434, 3438, 3438, - - 3438, 3438, 3438, 3438, 3435, 47, 47, 47, 47, 47, - 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, - 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, - 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, - 74, 74, 74, 74, 74, 74, 74, 80, 80, 80, - 80, 80, 80, 80, 89, 89, 3438, 89, 89, 89, - 89, 160, 160, 3438, 3438, 3438, 160, 160, 162, 162, - 3438, 3438, 162, 3438, 162, 164, 3438, 3438, 3438, 3438, - 3438, 164, 167, 167, 3438, 3438, 3438, 167, 167, 169, - 3438, 3438, 3438, 3438, 3438, 169, 171, 171, 3438, 171, - - 171, 171, 171, 174, 3438, 3438, 3438, 3438, 3438, 174, - 177, 177, 3438, 3438, 3438, 177, 177, 90, 90, 3438, - 90, 90, 90, 90, 17, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438 - - } ; - -static yyconst flex_int16_t yy_chk[9892] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 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, 32, 6, 7, - 7, 7, 7, 33, 7, 8, 8, 8, 8, 32, - 8, 9, 9, 9, 10, 10, 10, 19, 51, 51, - - 1105, 19, 3446, 3, 32, 33, 4, 67, 67, 5, - 33, 6, 2797, 13, 13, 13, 13, 7, 13, 14, - 14, 14, 14, 8, 14, 15, 15, 15, 9, 25, - 1105, 10, 11, 11, 11, 11, 11, 11, 12, 12, - 12, 12, 12, 12, 16, 16, 16, 34, 28, 84, - 84, 13, 11, 45, 293, 25, 25, 14, 12, 34, - 39, 23, 15, 23, 23, 45, 23, 1116, 28, 177, - 11, 28, 23, 39, 34, 28, 12, 176, 87, 11, - 45, 16, 87, 293, 37, 12, 30, 39, 29, 56, - 37, 174, 56, 72, 30, 28, 26, 169, 100, 23, - - 24, 24, 29, 26, 24, 30, 72, 26, 99, 24, - 26, 37, 30, 30, 29, 29, 100, 99, 24, 167, - 72, 30, 26, 26, 24, 100, 166, 24, 24, 29, - 26, 24, 30, 164, 26, 99, 24, 26, 46, 163, - 46, 46, 163, 46, 162, 24, 27, 160, 31, 46, - 27, 31, 101, 27, 94, 27, 27, 145, 31, 62, - 31, 62, 62, 195, 62, 101, 27, 70, 27, 70, - 70, 31, 70, 27, 94, 31, 35, 27, 31, 101, - 27, 94, 27, 27, 35, 31, 93, 31, 36, 145, - 35, 85, 36, 27, 35, 195, 44, 161, 161, 42, - - 44, 42, 35, 35, 44, 70, 36, 80, 36, 93, - 42, 35, 75, 93, 36, 36, 42, 35, 92, 36, - 74, 35, 44, 44, 43, 42, 42, 44, 42, 168, - 168, 44, 68, 36, 43, 36, 38, 42, 43, 43, - 38, 95, 92, 42, 38, 92, 219, 43, 63, 111, - 38, 43, 73, 38, 73, 73, 95, 73, 111, 97, - 38, 43, 38, 38, 104, 43, 43, 38, 95, 104, - 79, 38, 79, 79, 58, 79, 111, 38, 219, 86, - 38, 86, 86, 97, 86, 222, 97, 38, 40, 956, - 86, 104, 40, 89, 96, 89, 89, 112, 89, 98, - - 57, 96, 40, 40, 89, 40, 112, 103, 103, 106, - 105, 52, 98, 47, 40, 40, 103, 222, 105, 40, - 956, 96, 18, 98, 112, 137, 98, 106, 17, 40, - 40, 89, 40, 41, 103, 103, 41, 105, 102, 98, - 107, 106, 109, 41, 102, 108, 102, 41, 41, 109, - 224, 137, 137, 107, 106, 41, 113, 0, 108, 102, - 41, 114, 0, 41, 115, 102, 118, 107, 114, 109, - 41, 102, 108, 102, 41, 41, 110, 110, 117, 113, - 116, 117, 224, 113, 110, 126, 115, 0, 114, 119, - 118, 115, 110, 116, 117, 117, 0, 119, 118, 126, - - 123, 0, 117, 110, 110, 117, 120, 116, 117, 124, - 121, 110, 126, 123, 121, 122, 119, 118, 125, 127, - 122, 117, 117, 122, 130, 128, 120, 123, 120, 146, - 121, 130, 124, 120, 121, 129, 124, 121, 125, 127, - 131, 121, 122, 128, 146, 125, 127, 122, 133, 129, - 132, 130, 128, 120, 135, 134, 146, 121, 135, 132, - 0, 136, 129, 131, 134, 138, 140, 131, 136, 141, - 141, 133, 138, 0, 139, 133, 135, 132, 140, 142, - 143, 135, 134, 139, 144, 135, 0, 142, 136, 139, - 0, 143, 138, 140, 148, 143, 141, 139, 144, 0, - - 147, 139, 149, 151, 143, 148, 142, 143, 152, 151, - 139, 144, 155, 149, 148, 150, 139, 147, 143, 152, - 147, 148, 143, 150, 153, 154, 147, 147, 156, 149, - 151, 158, 148, 153, 155, 152, 182, 157, 173, 155, - 154, 159, 150, 156, 147, 153, 157, 147, 182, 153, - 0, 153, 154, 158, 159, 156, 178, 178, 158, 0, - 153, 0, 173, 182, 157, 173, 0, 179, 159, 0, - 0, 165, 153, 165, 165, 170, 165, 170, 170, 171, - 170, 171, 171, 175, 171, 175, 175, 180, 175, 179, - 0, 181, 0, 184, 179, 183, 185, 186, 187, 188, - - 181, 180, 183, 0, 189, 186, 227, 0, 0, 184, - 187, 189, 190, 193, 183, 185, 194, 171, 181, 180, - 184, 188, 183, 185, 186, 187, 188, 191, 180, 183, - 190, 189, 229, 191, 192, 193, 192, 196, 227, 190, - 193, 196, 194, 194, 198, 200, 0, 199, 203, 0, - 204, 201, 205, 200, 202, 210, 206, 204, 196, 191, - 191, 192, 199, 203, 229, 196, 207, 210, 196, 0, - 198, 198, 200, 201, 199, 203, 202, 204, 201, 206, - 205, 202, 210, 206, 205, 196, 197, 208, 207, 213, - 212, 197, 209, 207, 217, 256, 197, 211, 208, 212, - - 211, 217, 197, 197, 214, 209, 216, 205, 0, 197, - 0, 213, 211, 197, 208, 220, 213, 212, 197, 209, - 256, 217, 256, 197, 211, 218, 214, 211, 216, 197, - 197, 214, 215, 216, 221, 215, 218, 215, 226, 225, - 223, 220, 220, 231, 226, 221, 228, 223, 0, 215, - 233, 215, 218, 225, 230, 0, 0, 0, 215, 215, - 234, 0, 215, 232, 215, 226, 221, 223, 228, 239, - 235, 225, 221, 228, 234, 231, 215, 230, 215, 236, - 225, 230, 233, 232, 237, 238, 236, 234, 239, 240, - 232, 235, 241, 244, 238, 242, 239, 235, 243, 238, - - 245, 251, 247, 240, 244, 237, 236, 245, 248, 249, - 243, 237, 238, 242, 241, 253, 240, 248, 246, 241, - 244, 238, 242, 246, 247, 243, 250, 245, 259, 247, - 255, 250, 249, 251, 254, 248, 249, 252, 252, 258, - 257, 254, 260, 261, 262, 264, 252, 253, 257, 0, - 246, 261, 255, 250, 263, 267, 265, 255, 264, 258, - 259, 254, 266, 268, 252, 252, 258, 257, 0, 263, - 261, 269, 264, 270, 260, 271, 262, 270, 267, 272, - 274, 263, 265, 265, 273, 0, 275, 267, 269, 266, - 276, 278, 273, 275, 272, 268, 269, 271, 269, 274, - - 270, 279, 271, 280, 277, 267, 272, 274, 277, 282, - 281, 273, 276, 275, 0, 269, 283, 276, 285, 287, - 289, 284, 286, 278, 288, 280, 288, 285, 283, 290, - 280, 277, 281, 279, 284, 286, 291, 281, 287, 292, - 0, 282, 295, 283, 296, 285, 287, 297, 284, 286, - 294, 288, 289, 290, 299, 298, 290, 300, 297, 294, - 303, 291, 304, 291, 305, 292, 292, 298, 295, 295, - 296, 296, 301, 302, 297, 304, 306, 294, 299, 307, - 300, 299, 298, 309, 300, 308, 311, 313, 0, 304, - 301, 302, 303, 310, 313, 312, 305, 314, 315, 301, - - 302, 306, 308, 306, 315, 317, 314, 316, 308, 309, - 309, 307, 308, 318, 313, 310, 320, 319, 311, 312, - 310, 316, 321, 326, 314, 315, 319, 312, 323, 308, - 321, 317, 317, 322, 316, 325, 324, 318, 326, 320, - 318, 327, 322, 320, 319, 324, 312, 328, 0, 321, - 326, 329, 325, 0, 323, 323, 0, 331, 332, 325, - 322, 0, 325, 324, 0, 333, 329, 332, 336, 335, - 340, 328, 0, 327, 328, 331, 339, 0, 329, 325, - 330, 339, 336, 330, 331, 332, 337, 333, 330, 330, - 330, 330, 333, 335, 340, 336, 335, 340, 330, 338, - - 338, 337, 341, 0, 334, 0, 334, 330, 339, 347, - 330, 342, 345, 337, 342, 330, 330, 330, 330, 334, - 343, 342, 334, 348, 338, 346, 338, 338, 334, 341, - 345, 334, 343, 334, 344, 344, 347, 349, 342, 345, - 350, 342, 351, 346, 344, 348, 334, 343, 352, 334, - 348, 354, 346, 353, 351, 0, 357, 361, 355, 354, - 356, 344, 344, 349, 349, 355, 350, 350, 353, 351, - 352, 358, 356, 358, 360, 352, 362, 363, 354, 361, - 353, 360, 358, 364, 361, 355, 370, 356, 357, 364, - 365, 0, 365, 366, 368, 0, 369, 358, 358, 363, - - 358, 360, 0, 371, 363, 364, 366, 393, 362, 358, - 364, 367, 368, 404, 365, 372, 364, 365, 370, 365, - 366, 368, 369, 369, 367, 375, 376, 367, 377, 367, - 371, 378, 375, 379, 382, 367, 386, 372, 367, 393, - 377, 386, 372, 378, 376, 404, 379, 382, 381, 385, - 376, 367, 375, 376, 367, 377, 367, 373, 378, 373, - 379, 382, 389, 0, 381, 373, 384, 385, 386, 373, - 389, 376, 381, 388, 373, 381, 385, 373, 384, 388, - 0, 387, 390, 373, 373, 391, 373, 392, 387, 389, - 409, 381, 373, 384, 390, 392, 373, 394, 394, 395, - - 388, 373, 387, 391, 373, 374, 395, 374, 387, 390, - 397, 399, 391, 444, 392, 387, 396, 398, 399, 397, - 374, 400, 409, 374, 394, 374, 395, 374, 400, 396, - 0, 374, 374, 401, 374, 398, 402, 403, 399, 398, - 444, 0, 397, 396, 398, 401, 397, 374, 400, 403, - 374, 405, 374, 0, 374, 383, 383, 408, 402, 406, - 401, 407, 398, 402, 403, 383, 406, 383, 383, 383, - 408, 410, 383, 410, 411, 412, 407, 405, 405, 0, - 383, 436, 383, 383, 408, 411, 406, 436, 407, 413, - 413, 430, 383, 414, 383, 383, 383, 412, 410, 383, - - 414, 411, 412, 415, 416, 0, 417, 418, 436, 0, - 419, 419, 0, 420, 415, 416, 422, 423, 413, 417, - 414, 0, 0, 430, 421, 423, 0, 435, 419, 424, - 415, 416, 418, 417, 418, 419, 420, 419, 419, 421, - 420, 424, 422, 422, 423, 426, 425, 421, 427, 428, - 431, 421, 432, 434, 426, 419, 424, 425, 433, 435, - 428, 427, 428, 0, 439, 437, 421, 428, 431, 442, - 438, 434, 426, 425, 432, 427, 428, 431, 440, 432, - 434, 433, 448, 447, 445, 433, 437, 428, 439, 428, - 429, 439, 437, 438, 441, 442, 442, 438, 429, 429, - - 440, 441, 429, 429, 443, 440, 445, 450, 446, 447, - 447, 445, 429, 449, 448, 452, 453, 429, 443, 450, - 454, 441, 446, 457, 455, 429, 429, 451, 454, 429, - 429, 443, 457, 451, 450, 446, 449, 452, 453, 455, - 449, 456, 452, 453, 458, 459, 454, 454, 456, 0, - 457, 455, 460, 461, 451, 454, 463, 0, 462, 458, - 465, 0, 464, 0, 466, 467, 465, 469, 456, 459, - 467, 458, 459, 462, 460, 471, 461, 472, 475, 460, - 461, 471, 463, 463, 464, 462, 0, 465, 473, 464, - 466, 466, 467, 469, 469, 474, 472, 477, 486, 480, - - 475, 474, 471, 476, 472, 475, 473, 479, 480, 479, - 476, 481, 477, 483, 482, 473, 479, 484, 481, 485, - 486, 492, 474, 0, 477, 486, 480, 482, 488, 487, - 476, 488, 493, 489, 479, 484, 479, 490, 481, 493, - 491, 482, 487, 495, 484, 483, 494, 488, 0, 496, - 490, 485, 491, 492, 500, 488, 487, 489, 488, 493, - 489, 497, 496, 498, 490, 499, 495, 491, 498, 501, - 494, 499, 502, 494, 504, 495, 496, 500, 503, 505, - 506, 500, 509, 497, 502, 504, 0, 505, 497, 509, - 498, 501, 499, 495, 506, 512, 501, 510, 511, 502, - - 503, 504, 0, 510, 513, 503, 505, 506, 507, 509, - 511, 0, 513, 507, 514, 507, 516, 515, 512, 521, - 518, 507, 512, 507, 510, 511, 507, 507, 515, 519, - 0, 513, 518, 507, 507, 507, 514, 521, 525, 516, - 507, 514, 507, 516, 515, 517, 521, 518, 507, 517, - 507, 519, 520, 507, 507, 520, 519, 523, 522, 524, - 507, 528, 525, 520, 0, 525, 527, 517, 522, 523, - 524, 526, 517, 527, 530, 526, 517, 531, 529, 520, - 529, 532, 520, 534, 523, 533, 524, 528, 528, 531, - 522, 534, 536, 527, 535, 522, 532, 533, 526, 535, - - 530, 530, 537, 538, 531, 529, 539, 540, 532, 542, - 534, 538, 533, 545, 536, 543, 544, 546, 539, 536, - 537, 535, 551, 547, 549, 0, 558, 542, 540, 537, - 538, 551, 546, 539, 540, 547, 542, 549, 543, 544, - 548, 550, 543, 544, 546, 545, 552, 553, 548, 551, - 547, 549, 554, 550, 555, 557, 556, 555, 558, 560, - 562, 553, 566, 559, 0, 561, 0, 548, 550, 552, - 0, 565, 563, 552, 553, 556, 564, 554, 559, 554, - 561, 555, 557, 556, 562, 563, 566, 562, 564, 566, - 559, 560, 561, 565, 567, 568, 570, 569, 565, 563, - - 571, 567, 569, 564, 567, 572, 568, 573, 574, 575, - 570, 576, 567, 577, 578, 579, 0, 0, 577, 583, - 578, 567, 568, 570, 580, 581, 582, 571, 567, 569, - 579, 567, 572, 584, 582, 574, 575, 585, 583, 573, - 586, 578, 579, 576, 586, 577, 583, 581, 580, 588, - 587, 580, 581, 582, 589, 590, 591, 584, 587, 585, - 584, 593, 592, 595, 585, 591, 594, 586, 0, 597, - 598, 600, 588, 596, 593, 595, 588, 587, 590, 596, - 599, 598, 590, 591, 592, 602, 589, 599, 593, 592, - 595, 597, 594, 594, 601, 604, 597, 598, 602, 606, - - 596, 603, 607, 600, 604, 605, 603, 599, 606, 603, - 603, 610, 602, 607, 613, 611, 601, 608, 609, 0, - 633, 601, 604, 614, 610, 603, 606, 611, 603, 607, - 615, 605, 605, 603, 617, 618, 603, 603, 610, 608, - 609, 614, 611, 616, 608, 609, 613, 619, 622, 620, - 614, 624, 633, 623, 615, 621, 617, 615, 626, 618, - 620, 617, 618, 627, 621, 616, 616, 623, 622, 619, - 616, 629, 625, 624, 619, 622, 620, 629, 624, 625, - 623, 627, 621, 628, 630, 626, 631, 632, 634, 0, - 627, 628, 616, 635, 637, 630, 636, 636, 629, 625, - - 638, 641, 632, 639, 631, 643, 640, 644, 642, 634, - 628, 630, 639, 631, 632, 634, 642, 635, 637, 640, - 635, 637, 638, 641, 645, 636, 646, 638, 641, 644, - 639, 650, 648, 640, 644, 642, 647, 643, 647, 649, - 653, 651, 0, 654, 649, 650, 655, 652, 661, 658, - 646, 654, 0, 646, 648, 651, 645, 656, 650, 648, - 657, 652, 652, 647, 655, 659, 660, 657, 651, 652, - 654, 649, 653, 655, 652, 658, 658, 665, 664, 656, - 661, 660, 662, 664, 656, 659, 0, 657, 652, 652, - 660, 663, 659, 660, 666, 667, 666, 662, 668, 669, - - 0, 663, 670, 665, 665, 671, 668, 672, 660, 662, - 664, 670, 674, 663, 671, 673, 672, 675, 663, 674, - 667, 666, 667, 673, 669, 668, 669, 676, 663, 670, - 677, 678, 671, 679, 672, 680, 682, 684, 681, 674, - 683, 0, 673, 678, 680, 679, 681, 720, 677, 675, - 676, 682, 683, 688, 676, 686, 687, 677, 678, 685, - 679, 688, 680, 682, 689, 681, 685, 683, 686, 684, - 689, 687, 691, 690, 693, 692, 0, 699, 694, 720, - 688, 690, 686, 687, 692, 693, 685, 694, 695, 695, - 696, 689, 697, 698, 0, 691, 701, 695, 696, 691, - - 690, 693, 692, 699, 699, 694, 698, 700, 703, 701, - 702, 705, 704, 708, 697, 695, 695, 696, 702, 697, - 698, 706, 709, 701, 703, 704, 711, 708, 707, 710, - 700, 0, 706, 705, 700, 703, 707, 702, 705, 704, - 708, 712, 709, 713, 715, 714, 711, 717, 706, 709, - 723, 710, 719, 711, 714, 707, 710, 716, 718, 721, - 717, 0, 725, 712, 715, 713, 722, 719, 712, 724, - 713, 715, 714, 723, 717, 716, 718, 723, 727, 719, - 725, 721, 724, 726, 716, 718, 721, 729, 728, 725, - 722, 727, 730, 722, 728, 726, 724, 731, 732, 733, - - 730, 735, 736, 0, 737, 727, 738, 0, 739, 735, - 726, 737, 741, 742, 729, 728, 744, 733, 730, 730, - 732, 741, 743, 739, 731, 732, 733, 730, 735, 738, - 740, 737, 740, 738, 736, 739, 744, 745, 746, 741, - 746, 743, 750, 744, 747, 742, 745, 0, 0, 743, - 753, 747, 0, 0, 750, 0, 756, 740, 760, 757, - 753, 762, 0, 0, 745, 746, 759, 761, 0, 750, - 0, 747, 748, 769, 756, 748, 760, 753, 761, 748, - 757, 763, 748, 756, 762, 760, 757, 759, 762, 748, - 748, 766, 748, 759, 761, 764, 765, 748, 767, 748, - - 766, 775, 748, 768, 775, 769, 748, 763, 763, 748, - 768, 767, 765, 771, 772, 0, 748, 748, 766, 748, - 772, 764, 764, 765, 773, 767, 783, 774, 775, 776, - 768, 770, 770, 773, 770, 771, 778, 770, 777, 0, - 771, 772, 770, 779, 778, 776, 783, 781, 770, 770, - 774, 773, 776, 783, 774, 779, 776, 770, 770, 770, - 777, 770, 782, 778, 770, 777, 780, 782, 780, 770, - 779, 781, 776, 784, 781, 770, 770, 785, 0, 786, - 0, 787, 0, 788, 791, 789, 0, 793, 0, 785, - 792, 790, 0, 780, 782, 794, 795, 806, 0, 784, - - 784, 786, 793, 794, 785, 788, 786, 787, 787, 789, - 788, 791, 789, 790, 793, 792, 797, 792, 790, 795, - 796, 798, 794, 795, 797, 799, 800, 796, 801, 806, - 802, 804, 805, 803, 0, 808, 812, 805, 800, 807, - 798, 801, 803, 797, 809, 811, 804, 796, 798, 809, - 814, 799, 799, 800, 817, 801, 802, 802, 804, 805, - 803, 807, 808, 813, 815, 816, 807, 811, 812, 819, - 0, 813, 811, 818, 820, 821, 809, 824, 817, 822, - 823, 817, 814, 825, 826, 829, 815, 828, 819, 823, - 813, 815, 832, 826, 818, 828, 819, 816, 822, 824, - - 818, 820, 821, 825, 824, 827, 822, 823, 830, 831, - 825, 826, 829, 833, 828, 834, 827, 841, 0, 832, - 836, 837, 838, 834, 839, 838, 830, 843, 831, 846, - 0, 842, 827, 0, 840, 830, 831, 0, 836, 837, - 843, 841, 834, 846, 841, 833, 839, 836, 837, 838, - 845, 839, 840, 842, 843, 844, 846, 844, 842, 847, - 848, 840, 849, 850, 847, 851, 852, 853, 845, 852, - 856, 850, 854, 857, 849, 858, 853, 845, 860, 859, - 854, 858, 844, 851, 860, 0, 848, 848, 0, 849, - 850, 847, 851, 852, 853, 856, 854, 856, 867, 854, - - 857, 859, 858, 861, 862, 860, 859, 854, 863, 864, - 861, 862, 869, 863, 865, 866, 864, 868, 870, 866, - 869, 867, 871, 0, 875, 867, 868, 879, 872, 873, - 861, 862, 865, 874, 876, 863, 864, 873, 0, 869, - 871, 865, 866, 872, 868, 875, 874, 878, 884, 871, - 870, 875, 877, 876, 879, 872, 873, 881, 880, 882, - 874, 876, 889, 883, 881, 877, 880, 884, 886, 878, - 883, 885, 887, 886, 878, 884, 888, 882, 885, 877, - 887, 890, 897, 888, 881, 880, 882, 891, 892, 893, - 883, 895, 0, 896, 889, 886, 0, 894, 885, 887, - - 891, 0, 893, 888, 894, 897, 900, 898, 903, 897, - 902, 899, 901, 890, 891, 898, 893, 904, 901, 899, - 892, 905, 907, 895, 894, 896, 899, 0, 900, 906, - 905, 909, 0, 900, 898, 908, 902, 902, 899, 901, - 903, 904, 908, 906, 904, 911, 899, 913, 905, 912, - 910, 912, 913, 914, 907, 916, 906, 0, 909, 910, - 912, 915, 908, 917, 918, 914, 920, 911, 917, 0, - 919, 918, 911, 925, 920, 932, 912, 910, 912, 913, - 914, 916, 916, 922, 915, 923, 922, 925, 915, 926, - 917, 918, 919, 920, 929, 927, 926, 919, 923, 0, - - 925, 927, 932, 930, 0, 931, 933, 953, 933, 0, - 922, 934, 923, 937, 939, 935, 926, 931, 0, 939, - 929, 929, 927, 928, 936, 928, 930, 935, 0, 928, - 930, 928, 931, 933, 934, 937, 928, 936, 934, 953, - 937, 928, 935, 940, 938, 944, 939, 928, 943, 941, - 928, 936, 928, 0, 942, 944, 928, 938, 928, 945, - 943, 940, 941, 928, 0, 946, 942, 944, 928, 954, - 940, 938, 944, 948, 945, 943, 941, 942, 947, 948, - 950, 942, 944, 949, 0, 951, 945, 946, 955, 952, - 957, 947, 946, 942, 958, 0, 949, 963, 950, 958, - - 948, 954, 966, 962, 960, 947, 951, 950, 965, 959, - 949, 952, 951, 960, 964, 955, 952, 959, 962, 963, - 0, 958, 957, 965, 963, 967, 968, 964, 966, 966, - 962, 960, 970, 969, 973, 965, 959, 961, 972, 0, - 970, 964, 961, 971, 961, 968, 969, 967, 979, 972, - 961, 971, 967, 968, 974, 961, 961, 975, 976, 970, - 969, 0, 961, 961, 961, 972, 973, 976, 977, 961, - 971, 961, 975, 980, 983, 979, 974, 961, 978, 977, - 984, 974, 961, 961, 975, 976, 981, 978, 986, 961, - 985, 988, 989, 981, 987, 977, 980, 0, 985, 995, - - 980, 990, 992, 0, 984, 978, 983, 984, 987, 990, - 986, 994, 993, 981, 989, 986, 996, 985, 997, 989, - 992, 987, 994, 988, 998, 999, 997, 1000, 990, 992, - 993, 995, 999, 1002, 996, 1001, 1005, 1003, 994, 993, - 1000, 1004, 1001, 996, 1007, 997, 998, 1009, 1002, 0, - 0, 998, 999, 1013, 1000, 1003, 1006, 1005, 1009, 1004, - 1002, 1014, 1001, 1005, 1003, 1011, 1006, 1017, 1004, 1014, - 1012, 1015, 1016, 1018, 1009, 1013, 1007, 1012, 1011, 1017, - 1013, 1016, 1019, 1006, 1015, 1022, 1025, 1023, 1014, 1024, - 1026, 0, 1011, 0, 1017, 1018, 1028, 1012, 1015, 1016, - - 1018, 1027, 0, 1033, 1019, 1023, 1033, 1022, 1026, 1019, - 1028, 1030, 1022, 1027, 1023, 1024, 1024, 1026, 1025, 1031, - 1034, 1035, 1030, 1028, 1031, 1036, 1037, 1038, 1027, 1033, - 1033, 1039, 1036, 1033, 1035, 1041, 1038, 1037, 1030, 1042, - 1043, 1045, 0, 1040, 1034, 1039, 1042, 1034, 1035, 1044, - 1048, 1031, 1036, 1037, 1038, 1040, 1046, 1050, 1039, 1049, - 1051, 1044, 1052, 1045, 1058, 1049, 1042, 1041, 1045, 1046, - 1040, 1060, 1043, 1052, 1048, 1053, 1044, 1048, 1054, 1050, - 1056, 1055, 1051, 1046, 1050, 1058, 1049, 1051, 1059, 1052, - 1061, 1058, 1060, 1053, 1062, 1056, 1063, 1064, 1060, 1059, - - 1054, 1065, 1053, 1055, 1066, 1054, 1064, 1056, 1055, 1067, - 1069, 1068, 1071, 1072, 1063, 1059, 1070, 1069, 1067, 1068, - 1073, 1062, 1061, 1063, 1064, 1065, 1071, 1074, 1065, 1075, - 1066, 1066, 1076, 1077, 1078, 1080, 1067, 1069, 1068, 1071, - 1070, 1081, 1083, 1070, 1085, 1072, 1082, 0, 1084, 1074, - 1081, 1075, 1073, 1082, 1074, 1077, 1075, 1080, 1086, 1087, - 1077, 1089, 1080, 1088, 1076, 1090, 1078, 1091, 1081, 1089, - 1084, 1085, 1088, 1082, 1083, 1084, 1086, 1087, 1093, 1092, - 1097, 1095, 1098, 1101, 1094, 1086, 1087, 0, 1089, 1090, - 1088, 1091, 1090, 1094, 1091, 1092, 1095, 1099, 1100, 1096, - - 1093, 1104, 1103, 0, 1107, 1093, 1092, 1096, 1095, 1099, - 1101, 1094, 1097, 1102, 1098, 1103, 1104, 1109, 1106, 1109, - 1100, 1102, 1107, 1112, 1099, 1100, 1096, 1106, 1104, 1103, - 1108, 1107, 1113, 1111, 1114, 1115, 1117, 1119, 1108, 1118, - 1102, 1111, 1115, 1120, 1109, 1106, 1122, 1124, 1123, 1117, - 1112, 1118, 1119, 1121, 1113, 1123, 1114, 1108, 1125, 1113, - 1111, 1114, 1115, 1117, 1119, 1120, 1118, 1126, 1128, 1127, - 1120, 1121, 1130, 1122, 1131, 1123, 1129, 0, 1126, 1124, - 1121, 1134, 1132, 1139, 1137, 1130, 1135, 1131, 1133, 1134, - 1125, 1127, 1137, 1128, 1126, 1128, 1127, 0, 1129, 1130, - - 1133, 1131, 1136, 1129, 1132, 1140, 1135, 1141, 1134, 1132, - 1139, 1137, 1142, 1135, 1136, 1133, 1141, 1143, 1140, 1144, - 1147, 0, 1148, 0, 1142, 1150, 1144, 0, 1149, 1136, - 0, 1145, 1140, 1153, 1141, 0, 1151, 0, 1143, 1142, - 1145, 1152, 1145, 1147, 1143, 1145, 1144, 1147, 1148, 1148, - 1149, 1154, 1150, 1145, 1152, 1149, 1151, 1153, 1145, 1154, - 1153, 1155, 1156, 1151, 1157, 1158, 1159, 1145, 1152, 1145, - 1155, 1161, 1145, 1158, 1160, 1163, 1165, 1166, 1154, 1162, - 1156, 1159, 1170, 1163, 1161, 1167, 1157, 1168, 1155, 1156, - 1171, 1157, 1158, 1159, 1168, 1162, 1160, 1169, 1161, 1166, - - 1175, 1160, 1163, 1165, 1166, 1170, 1162, 1167, 1171, 1170, - 1172, 1173, 1167, 1174, 1168, 1175, 1176, 1171, 0, 1169, - 1178, 1174, 1172, 1173, 1169, 1177, 1179, 1175, 1176, 1182, - 1180, 0, 1181, 0, 1179, 1178, 1180, 1172, 1173, 1183, - 1174, 1181, 1184, 1176, 1186, 1177, 1187, 1178, 1185, 1184, - 1182, 1183, 1177, 1179, 1195, 1185, 1182, 1180, 1187, 1181, - 1188, 1189, 1186, 1191, 1190, 1191, 1183, 1192, 1188, 1184, - 1193, 1186, 1190, 1187, 1198, 1185, 1189, 1193, 1199, 1192, - 1196, 1201, 1197, 1202, 0, 1199, 1195, 1188, 1189, 1200, - 1191, 1190, 1196, 1198, 1192, 1197, 1207, 1193, 1202, 1203, - - 1200, 1198, 1205, 1201, 1203, 1199, 1204, 1196, 1201, 1197, - 1202, 1206, 0, 1209, 1204, 1205, 1200, 1210, 1211, 0, - 0, 1222, 1207, 1207, 1215, 1206, 1212, 1209, 1222, 1205, - 1224, 1203, 1213, 1204, 0, 1210, 1216, 1214, 1206, 1208, - 1209, 0, 1218, 1208, 1210, 1217, 1208, 1208, 1222, 1220, - 1211, 1208, 1212, 1212, 1213, 1214, 1215, 1208, 1216, 1213, - 1237, 1208, 1224, 1216, 1214, 1208, 1208, 1217, 1218, 1218, - 1208, 1219, 1217, 1208, 1208, 1220, 1220, 1219, 1208, 1221, - 1223, 1221, 1225, 1226, 1208, 1229, 1237, 1237, 1208, 1223, - 1226, 1227, 1228, 1230, 1229, 1231, 0, 1233, 1219, 1232, - - 1225, 0, 1236, 1221, 0, 1228, 1221, 1223, 1221, 1225, - 1226, 0, 1229, 1227, 1235, 1236, 1238, 1238, 1227, 1228, - 1233, 1232, 1239, 1243, 1233, 1230, 1232, 1231, 1234, 1236, - 1241, 1242, 1243, 1234, 1244, 1234, 1235, 1234, 1239, 1234, - 0, 1235, 1245, 1242, 0, 1238, 1234, 1245, 1248, 1239, - 1243, 1246, 1244, 1241, 1247, 1234, 1254, 1241, 1242, 1247, - 1234, 1244, 1234, 1249, 1234, 1250, 1234, 1255, 1256, 1246, - 1248, 1251, 1252, 1253, 1245, 1248, 1249, 0, 1246, 1251, - 1252, 1247, 1258, 1250, 1257, 1260, 1253, 1256, 1254, 1259, - 1249, 1264, 1250, 1255, 1255, 1256, 1262, 1257, 1251, 1252, - - 1253, 1261, 1259, 1260, 1258, 1262, 1263, 1265, 1263, 1258, - 1266, 1257, 1260, 1264, 1267, 1268, 1259, 1271, 1264, 1270, - 1273, 1261, 1266, 1262, 1272, 1274, 1276, 1278, 1261, 1275, - 0, 1277, 1272, 1263, 1265, 1281, 1275, 1266, 1273, 1271, - 1268, 1267, 1268, 1270, 1271, 1284, 1270, 1273, 1286, 1278, - 1288, 1272, 1274, 1276, 1278, 1279, 1275, 1277, 1277, 1280, - 1282, 1279, 1281, 1283, 1285, 1280, 1287, 1282, 1288, 1284, - 1289, 1285, 1284, 1283, 1290, 1292, 1294, 1288, 1296, 1295, - 1286, 0, 1279, 1290, 1293, 1297, 1280, 1282, 1287, 0, - 1283, 1285, 1295, 1287, 1298, 1289, 1293, 1289, 1294, 1292, - - 1296, 1290, 1292, 1294, 1297, 1296, 1295, 1299, 1300, 0, - 1301, 1293, 1297, 1303, 1308, 1306, 1298, 1302, 1305, 1309, - 1304, 1298, 1303, 1311, 0, 1312, 1310, 1315, 0, 1306, - 1300, 1299, 0, 1323, 1299, 1300, 1301, 1301, 1305, 1302, - 1303, 1304, 1306, 1312, 1302, 1305, 1308, 1304, 1310, 1313, - 1314, 1309, 1312, 1310, 1315, 1311, 1316, 1313, 1318, 1320, - 1322, 1319, 1321, 1316, 1322, 1323, 1314, 1318, 1324, 1321, - 1325, 1320, 1327, 0, 1329, 1330, 1313, 1314, 1319, 1331, - 1332, 1329, 1330, 1316, 1334, 1318, 1320, 1322, 1319, 1321, - 1328, 1325, 1339, 1332, 1331, 0, 1328, 1325, 1335, 1333, - - 1324, 1329, 1330, 1328, 1327, 1335, 1331, 1332, 1333, 1337, - 1334, 1334, 1336, 1338, 1336, 1341, 1340, 1328, 1337, 1339, - 1340, 1343, 1344, 1328, 1345, 1335, 1333, 1344, 1346, 1343, - 1347, 1348, 1356, 1345, 1352, 1338, 1337, 1341, 1349, 1336, - 1338, 0, 1341, 1340, 1348, 1353, 1346, 0, 1343, 1347, - 1349, 1345, 1352, 1354, 1344, 1346, 1350, 1347, 1348, 1350, - 1351, 1352, 1357, 1351, 1356, 1349, 1354, 0, 1350, 1359, - 1353, 1360, 1353, 1363, 1359, 1358, 1361, 1361, 0, 1360, - 1354, 0, 1351, 1350, 1362, 1357, 1350, 1351, 1364, 1357, - 1351, 1358, 1366, 1362, 1367, 1363, 1365, 1368, 1360, 1366, - - 1363, 1359, 1358, 1361, 1368, 1365, 1373, 1370, 1371, 1372, - 1364, 1362, 1377, 1375, 1374, 1364, 1367, 1371, 1372, 1366, - 1370, 1367, 1375, 1365, 1368, 0, 0, 1378, 1384, 0, - 1376, 1379, 1373, 1373, 1370, 1371, 1372, 1374, 1376, 1379, - 1375, 1374, 1378, 1380, 1377, 1383, 1385, 1381, 1382, 1386, - 1384, 1388, 1387, 1383, 1378, 1384, 1380, 1376, 1379, 1381, - 1382, 1387, 1389, 1391, 1394, 1390, 1385, 1393, 1395, 1388, - 1380, 1386, 1383, 1385, 1381, 1382, 1386, 1390, 1388, 1387, - 1392, 1391, 1396, 1397, 1398, 1400, 1399, 1392, 1389, 1389, - 1391, 1400, 1390, 1393, 1393, 1396, 1394, 1399, 1401, 1402, - - 1395, 1403, 1404, 1405, 0, 1398, 0, 1392, 1408, 1396, - 1397, 1398, 1400, 1399, 1406, 1409, 1414, 1411, 1410, 1413, - 1401, 0, 1412, 0, 1416, 1401, 1411, 1415, 1414, 1405, - 1405, 1402, 1413, 1403, 1404, 1408, 1410, 1412, 1409, 1418, - 1406, 1406, 1409, 1414, 1411, 1410, 1413, 1415, 1417, 1412, - 1416, 1416, 1419, 1421, 1415, 1417, 1420, 1422, 1418, 1423, - 1424, 1421, 1422, 1426, 1423, 1427, 1418, 1424, 1425, 1420, - 1428, 1426, 1432, 1427, 1419, 1417, 1429, 1430, 1433, 1419, - 1421, 1432, 1437, 1420, 1434, 1430, 1431, 1424, 1428, 1422, - 1426, 1423, 1427, 1431, 1425, 1425, 1439, 1428, 1429, 1432, - - 1435, 1436, 1436, 1429, 1430, 1440, 1434, 1435, 1438, 1446, - 1433, 1434, 1441, 1431, 1437, 1446, 1438, 1439, 1442, 1445, - 1441, 1443, 1444, 1439, 1448, 0, 1442, 1435, 1436, 1443, - 1444, 1447, 1445, 1449, 1450, 1438, 1446, 1440, 1452, 1441, - 1453, 1454, 1450, 1447, 1451, 1442, 1445, 1455, 1443, 1444, - 1448, 1448, 1451, 1452, 1456, 1458, 1457, 1449, 1447, 0, - 1449, 1450, 1459, 1462, 1463, 1452, 1464, 1453, 1454, 1455, - 1457, 1451, 1462, 1458, 1455, 1460, 1459, 1456, 1464, 1460, - 1465, 1456, 1458, 1457, 1466, 1467, 1463, 1465, 1468, 1459, - 1462, 1463, 1460, 1464, 1469, 1466, 1470, 0, 1472, 0, - - 1460, 1473, 1460, 1471, 1474, 1476, 1460, 1465, 1470, 1475, - 1468, 1466, 1467, 1479, 1476, 1468, 1475, 1471, 1487, 1460, - 1472, 1477, 1478, 1470, 1473, 1472, 1469, 1474, 1473, 1478, - 1471, 1474, 1476, 1480, 1482, 1484, 1475, 1485, 1490, 1477, - 1486, 1484, 1493, 1482, 1488, 1479, 1492, 1494, 1477, 1478, - 1487, 1488, 1495, 1497, 0, 0, 1502, 0, 1494, 1485, - 1480, 1482, 1484, 1495, 1485, 1490, 1486, 1486, 1499, 1493, - 1492, 1488, 1498, 1492, 1494, 1499, 1500, 1497, 1498, 1495, - 1497, 1501, 1502, 1502, 1503, 1504, 1509, 1506, 1501, 1505, - 0, 1504, 1507, 1510, 1500, 1499, 1503, 1505, 1508, 1498, - - 1513, 1517, 1510, 1500, 1509, 1507, 1511, 1513, 1501, 1506, - 1514, 1503, 1504, 1509, 1506, 1512, 1505, 1512, 1511, 1507, - 1510, 1515, 1516, 1517, 1508, 1508, 1518, 1513, 1517, 1519, - 0, 1516, 1520, 1511, 1515, 1522, 1514, 1514, 1518, 1521, - 1523, 1524, 1512, 0, 1526, 1523, 1521, 1525, 1515, 1516, - 1527, 1529, 1526, 1518, 1531, 1520, 1519, 1524, 1532, 1520, - 0, 1522, 1522, 0, 1533, 1530, 1521, 1523, 1524, 1532, - 1525, 1526, 1527, 1533, 1525, 1534, 1531, 1527, 1529, 1530, - 1536, 1531, 1535, 1535, 1537, 1532, 1537, 1538, 1534, 0, - 1535, 1533, 1530, 1536, 1539, 1542, 1540, 1541, 1544, 1543, - - 1553, 1545, 1534, 1540, 1541, 1546, 1548, 1536, 1545, 1535, - 1535, 1537, 1547, 1538, 1538, 1550, 1539, 1543, 1552, 1555, - 1544, 1539, 1542, 1540, 1541, 1544, 1543, 1553, 1545, 1549, - 1546, 1552, 1546, 1554, 1547, 1557, 1549, 1559, 1548, 1547, - 1555, 1554, 1560, 1563, 1562, 1552, 1555, 1550, 1558, 1564, - 1566, 1558, 1561, 1562, 1565, 1563, 1549, 1557, 1570, 1566, - 1554, 0, 1557, 1559, 1559, 1561, 1571, 1567, 1560, 1560, - 1563, 1562, 1577, 1564, 1574, 1558, 1564, 1566, 1568, 1561, - 1565, 1565, 1567, 1569, 1572, 1568, 1569, 1575, 1571, 1576, - 1570, 1576, 1574, 1571, 1567, 1578, 1577, 1579, 1569, 1577, - - 1572, 1574, 1580, 1584, 1581, 1568, 1582, 1569, 1572, 1575, - 1569, 1572, 1583, 1569, 1575, 1585, 1576, 1591, 0, 1587, - 1592, 1594, 1578, 1590, 0, 1569, 1581, 1572, 1587, 1579, - 1586, 1581, 1582, 1582, 1580, 1584, 1589, 1585, 1583, 1583, - 1588, 1595, 1585, 1589, 1586, 1595, 1587, 1590, 1588, 1591, - 1590, 1593, 1592, 1594, 1596, 1597, 1599, 1586, 1598, 1600, - 0, 1602, 1601, 1589, 1603, 1599, 1600, 1588, 1595, 1601, - 1605, 1604, 1607, 1593, 1602, 1608, 1596, 1603, 1593, 1605, - 1598, 1596, 1597, 1599, 1604, 1598, 1600, 1614, 1602, 1601, - 1606, 1603, 1606, 1609, 1611, 1607, 1612, 1605, 1604, 1607, - - 1608, 1609, 1608, 1615, 1613, 1616, 1617, 1621, 1619, 1611, - 1615, 1612, 1618, 1617, 1619, 1622, 1616, 1606, 1613, 1614, - 1609, 1611, 1622, 1612, 1623, 1618, 1624, 0, 1625, 1629, - 1615, 1613, 1616, 1617, 1621, 1619, 1626, 1627, 1629, 1618, - 1628, 1624, 1622, 1628, 1630, 1631, 1623, 1634, 1626, 1632, - 1627, 1623, 1640, 1624, 1625, 1625, 1629, 1631, 1634, 1641, - 1639, 1636, 1630, 1626, 1627, 1633, 1636, 1628, 1633, 1632, - 1642, 1630, 1631, 1636, 1634, 1638, 1632, 1638, 1657, 1640, - 1643, 1644, 1645, 1633, 1639, 1642, 1641, 1639, 1636, 1643, - 1646, 1647, 1633, 1636, 1648, 1633, 1649, 1642, 1651, 1647, - - 1650, 1652, 1638, 0, 1646, 1644, 1651, 1643, 1644, 1645, - 1657, 1653, 1652, 1656, 1658, 0, 1648, 1646, 1647, 1659, - 1649, 1648, 1650, 1649, 1654, 1651, 1659, 1650, 1652, 1653, - 1655, 1656, 1654, 1655, 1661, 1660, 1663, 1662, 1653, 1664, - 1656, 1658, 1687, 1661, 1664, 1665, 1659, 1663, 1655, 1660, - 1662, 1654, 1669, 1666, 1669, 1671, 1670, 1655, 1672, 1673, - 1655, 1661, 1660, 1663, 1662, 1670, 1674, 1665, 1666, 1672, - 1675, 1664, 1665, 1676, 1687, 0, 1676, 1673, 0, 1669, - 1666, 1671, 1671, 1670, 1675, 1672, 1673, 1677, 1674, 1678, - 1680, 1676, 1683, 1674, 1684, 1679, 1675, 1675, 1678, 1680, - - 1676, 1679, 1681, 1676, 1686, 1683, 1684, 1681, 1685, 1677, - 1689, 1675, 1690, 1685, 1677, 1688, 1678, 1680, 1691, 1683, - 1692, 1684, 1679, 1693, 1688, 1694, 1686, 1698, 1701, 1696, - 1697, 1686, 0, 1692, 1681, 1685, 1696, 1689, 0, 1699, - 1691, 0, 1688, 1697, 1690, 1691, 1694, 1692, 1700, 1703, - 1705, 1707, 1694, 1699, 1700, 1693, 1696, 1697, 1705, 1698, - 1701, 1706, 1708, 0, 1709, 1710, 1699, 1711, 1703, 1706, - 1707, 1716, 1700, 1712, 1715, 1700, 1703, 1705, 1707, 1710, - 1713, 1700, 1709, 1714, 1708, 1711, 1717, 1712, 1706, 1708, - 1718, 1709, 1710, 1713, 1711, 1715, 1714, 1719, 1720, 1721, - - 1712, 1715, 1723, 1716, 1718, 1720, 1722, 1713, 1721, 1724, - 1714, 1725, 1728, 1730, 1722, 1726, 0, 1718, 1717, 1727, - 1726, 1728, 1715, 1724, 1719, 1720, 1721, 1731, 1732, 1723, - 1727, 1733, 0, 1722, 1731, 1734, 1724, 1735, 1736, 1728, - 1730, 1737, 1726, 1725, 0, 1737, 1727, 1740, 1739, 1742, - 1743, 1732, 1741, 1733, 1731, 1732, 1736, 1734, 1733, 1735, - 1747, 1742, 1734, 1749, 1735, 1736, 1739, 1741, 1737, 1745, - 1744, 1740, 1746, 1748, 1740, 1739, 1742, 1743, 1744, 1741, - 1746, 1755, 1759, 1749, 1745, 1753, 1748, 1747, 1750, 1751, - 1749, 1754, 1756, 1753, 1761, 1763, 1745, 1744, 1754, 1746, - - 1748, 1757, 1758, 1750, 1751, 1765, 1760, 1756, 1764, 1759, - 1757, 1766, 1753, 1755, 1786, 1750, 1751, 1763, 1754, 1756, - 1768, 1761, 1763, 1758, 1767, 1769, 1764, 1770, 1757, 1758, - 1760, 1771, 1772, 1760, 1770, 1764, 1771, 1765, 1766, 1767, - 1774, 1772, 1775, 1776, 1773, 1768, 1786, 1768, 1777, 1769, - 1779, 1767, 1769, 1773, 1770, 0, 1778, 1783, 1771, 1772, - 1780, 1776, 1774, 1777, 1775, 1785, 0, 1774, 1778, 1775, - 1776, 1773, 1779, 1780, 1781, 1777, 1784, 1779, 1780, 1783, - 1787, 1781, 1782, 1778, 1783, 1789, 1787, 1780, 1784, 1782, - 1790, 1791, 1785, 1789, 1793, 1794, 1796, 1794, 1790, 1792, - - 1780, 1781, 1791, 1784, 1782, 1795, 1792, 1787, 1794, 1782, - 1797, 1799, 1789, 1798, 1805, 1800, 1782, 1790, 1791, 1793, - 1798, 1793, 1794, 1796, 1794, 1803, 1792, 1801, 1802, 1808, - 1804, 1795, 1795, 1801, 1802, 1806, 1809, 1797, 1799, 1810, - 1798, 1800, 1800, 1812, 0, 1809, 1805, 1811, 1813, 1811, - 1815, 1814, 1803, 1804, 1801, 1802, 1816, 1804, 1814, 1806, - 1818, 1808, 1806, 1809, 1817, 1822, 1818, 1812, 1819, 1833, - 1812, 1810, 1815, 1820, 1811, 1813, 1817, 1815, 1814, 1821, - 1825, 1824, 1827, 1816, 0, 1826, 1828, 1818, 1824, 1825, - 1819, 1817, 1826, 1828, 1833, 1819, 1833, 1822, 1831, 1820, - - 1820, 1821, 1823, 1823, 1823, 1830, 1821, 1825, 1824, 1823, - 1830, 1831, 1826, 1828, 1827, 1832, 1834, 1823, 1836, 1838, - 1837, 1835, 1839, 0, 1840, 1831, 1838, 1832, 1839, 1823, - 1823, 1823, 1834, 1835, 1841, 1841, 1823, 1830, 1837, 1842, - 0, 1845, 1832, 1834, 1846, 1843, 1838, 1837, 1835, 1839, - 1836, 1840, 1843, 1844, 1850, 1847, 1852, 1851, 1844, 1851, - 1854, 1841, 1847, 1855, 1856, 1842, 1842, 1845, 1845, 1855, - 1858, 1846, 1843, 1859, 1852, 1857, 1860, 1862, 1854, 1859, - 1844, 1850, 1847, 1852, 1851, 1861, 1857, 1854, 1860, 1864, - 1855, 1863, 1863, 1865, 1865, 1862, 1856, 1858, 1866, 1868, - - 1859, 1869, 1857, 1860, 1862, 1861, 1872, 1870, 1871, 1866, - 1877, 1876, 1861, 1879, 1870, 1864, 1864, 1873, 1863, 1875, - 1865, 1868, 1880, 1878, 1881, 1866, 1868, 1875, 1871, 1880, - 1887, 1879, 1881, 1869, 1870, 1871, 1883, 1877, 1872, 1882, - 1879, 1886, 1873, 1876, 1873, 1878, 1875, 1884, 1888, 1880, - 1878, 1881, 1885, 1885, 1882, 1891, 1884, 1889, 1890, 1896, - 1883, 1895, 1887, 1883, 1889, 1893, 1882, 1886, 1886, 1897, - 1890, 1891, 1893, 1902, 1884, 1898, 1894, 1897, 1891, 1885, - 1888, 1894, 1891, 1895, 1889, 1890, 1896, 1898, 1895, 1900, - 1901, 1903, 1893, 1904, 1905, 1908, 1897, 1900, 1891, 1902, - - 1902, 1906, 1898, 1894, 1909, 1912, 1910, 1911, 1915, 1907, - 1909, 1904, 1903, 1901, 1907, 1911, 1900, 1901, 1903, 1910, - 1904, 1905, 1908, 1913, 1906, 1907, 1918, 1912, 1906, 1916, - 1913, 1909, 1912, 1910, 1911, 1914, 1907, 1917, 1916, 1920, - 1915, 1907, 1914, 1919, 1931, 1921, 1922, 1924, 1918, 1917, - 1913, 1926, 1933, 1918, 1927, 1929, 1916, 1919, 1926, 1934, - 1934, 1935, 1914, 1925, 1917, 1924, 1920, 1937, 1925, 1922, - 1919, 1921, 1921, 1922, 1924, 1930, 1931, 1936, 1926, 1925, - 1930, 1927, 1929, 1935, 1933, 1939, 1934, 1940, 1935, 1948, - 1925, 1941, 1936, 1943, 1942, 1925, 1942, 1944, 1945, 1937, - - 1939, 1946, 1944, 0, 1936, 1949, 1941, 1930, 1947, 1946, - 1940, 1948, 1939, 1955, 1940, 1947, 1948, 1953, 1941, 1951, - 1949, 1942, 1956, 1952, 1944, 1943, 1957, 1958, 1946, 1959, - 1945, 1952, 1949, 1960, 1951, 1947, 1959, 1955, 0, 1953, - 1955, 1961, 1962, 1964, 1953, 1963, 1951, 1968, 1956, 1956, - 1952, 1966, 1969, 1957, 1958, 1970, 1959, 1975, 1974, 1976, - 1972, 1964, 1961, 1980, 1962, 1960, 1963, 1969, 1961, 1962, - 1964, 1968, 1963, 1966, 1968, 1972, 1973, 1976, 1966, 1969, - 1974, 1970, 1970, 1977, 1975, 1974, 1976, 1972, 1979, 1978, - 1980, 1973, 1981, 1983, 1985, 1982, 1984, 1987, 1988, 1981, - - 1989, 0, 1983, 1973, 1984, 1977, 1986, 1988, 0, 0, - 1977, 1978, 1979, 1982, 0, 1979, 1978, 1985, 1989, 1981, - 1983, 1985, 1982, 1984, 1991, 1988, 1990, 1989, 1986, 1987, - 1993, 1994, 1995, 1986, 1997, 1990, 1996, 1991, 2002, 1999, - 1994, 1993, 2000, 1996, 1998, 2001, 2005, 0, 2000, 0, - 1995, 1991, 2002, 1990, 1999, 2007, 1993, 1993, 1994, 1995, - 1997, 1997, 1998, 1996, 2008, 2002, 1999, 2001, 1993, 2000, - 2009, 1998, 2001, 2005, 2011, 2008, 2012, 2013, 2014, 2007, - 2015, 2009, 2007, 2016, 2017, 2018, 2011, 2020, 2014, 2012, - 2021, 2008, 2023, 2025, 2024, 2028, 2023, 2009, 0, 0, - - 2026, 2011, 2028, 2012, 2018, 2014, 2015, 2015, 2016, 2013, - 2016, 2017, 2018, 2027, 2020, 2024, 2021, 2021, 2027, 2023, - 2026, 2024, 2028, 2029, 2030, 2025, 2031, 2026, 2032, 2033, - 2040, 2035, 2031, 2034, 2036, 2036, 2037, 2040, 0, 2043, - 2027, 2038, 2030, 2032, 2033, 2034, 2035, 2046, 2037, 2029, - 2029, 2030, 2042, 2031, 2038, 2032, 2033, 2040, 2035, 2051, - 2034, 2036, 2038, 2037, 2044, 2041, 2043, 2042, 2038, 2041, - 2045, 2046, 2047, 2044, 2046, 2048, 2050, 2045, 2052, 2042, - 0, 2038, 2048, 2056, 2051, 2053, 2051, 2052, 2054, 2061, - 0, 2044, 2041, 2059, 2047, 2058, 2063, 2045, 2050, 2047, - - 2065, 2056, 2048, 2050, 2058, 2052, 2060, 2053, 2054, 2062, - 2056, 2059, 2053, 2066, 2061, 2054, 2061, 2062, 2067, 2069, - 2059, 2060, 2058, 2068, 2068, 2065, 2066, 2065, 2063, 2070, - 2071, 2072, 2074, 2060, 2073, 2075, 2062, 2077, 2076, 2074, - 2066, 2069, 0, 2073, 2079, 2067, 2069, 2078, 2084, 2079, - 2068, 2077, 2071, 2072, 2070, 2088, 2070, 2071, 2072, 2074, - 2076, 2073, 2078, 2080, 2077, 2076, 2083, 2075, 2085, 2082, - 2089, 2086, 2091, 2087, 2078, 2084, 2079, 2082, 2090, 2083, - 2087, 2091, 2080, 2086, 2093, 0, 2095, 2088, 2096, 2094, - 2080, 0, 2089, 2083, 2085, 2085, 2082, 2089, 2086, 2091, - - 2087, 2092, 0, 2090, 2094, 2090, 2097, 2098, 2099, 2092, - 0, 2093, 2095, 2095, 2096, 2096, 2094, 2099, 2102, 2101, - 2092, 2103, 2101, 2105, 2097, 2104, 2106, 2103, 2092, 2098, - 2104, 0, 2107, 2097, 2098, 2099, 2092, 2101, 2105, 2109, - 2110, 2111, 2113, 2102, 2106, 2102, 2101, 2107, 2103, 2101, - 2105, 2114, 2115, 2106, 2109, 2116, 2113, 2104, 2114, 2107, - 2119, 0, 2110, 2111, 2117, 2118, 2109, 2110, 2111, 2113, - 2115, 2119, 2121, 2117, 2118, 2120, 2122, 2120, 2114, 2115, - 2125, 2126, 2116, 2123, 2128, 2121, 2127, 2119, 2122, 0, - 2129, 2117, 2118, 2127, 0, 2125, 2126, 2130, 2135, 2121, - - 2136, 2133, 2120, 2122, 2136, 2123, 2128, 2125, 2126, 2137, - 2123, 2128, 2129, 2127, 2133, 2130, 2139, 2129, 2139, 2135, - 2138, 2137, 2133, 2141, 2130, 2135, 2140, 2136, 2133, 2138, - 2142, 2143, 2144, 2145, 0, 2147, 2137, 2148, 2149, 2146, - 2144, 2133, 2152, 2139, 2140, 2148, 2150, 2138, 2142, 2147, - 2141, 2150, 2153, 2140, 2154, 2159, 2145, 2142, 2143, 2144, - 2145, 2146, 2147, 2151, 2148, 2156, 2146, 2155, 2151, 2166, - 2149, 2160, 2156, 2150, 2152, 2161, 2162, 0, 2154, 2163, - 2169, 2154, 2159, 0, 2153, 2160, 2155, 2167, 2170, 2164, - 2165, 0, 2156, 2161, 2155, 2151, 2160, 2160, 2160, 2165, - - 2168, 2166, 2161, 2162, 2164, 2163, 2163, 2169, 2171, 2167, - 2170, 2173, 2160, 0, 2167, 2170, 2164, 2165, 2174, 2175, - 2178, 2176, 2178, 2160, 0, 2174, 2168, 2168, 2176, 2179, - 2182, 2180, 2181, 0, 2173, 2180, 2188, 0, 2173, 2186, - 2171, 2183, 2175, 2184, 2181, 2174, 2175, 2178, 2176, 2189, - 2183, 2179, 2182, 2185, 2184, 2199, 2179, 2182, 2180, 2181, - 2185, 2186, 2187, 2188, 2191, 2190, 2186, 2187, 2183, 2193, - 2184, 2195, 2189, 2192, 2192, 2194, 2189, 2190, 2193, 2195, - 2185, 2196, 2199, 2197, 2198, 2201, 2191, 2202, 2207, 2187, - 2194, 2191, 2190, 2198, 2207, 2202, 2193, 2197, 2195, 2203, - - 2192, 2204, 2194, 2196, 2201, 2204, 2205, 2203, 2196, 2205, - 2197, 2198, 2201, 2206, 2202, 2207, 2208, 2209, 2211, 2214, - 2213, 2206, 0, 2209, 2216, 2217, 2203, 2215, 2204, 2219, - 2211, 2208, 2214, 2205, 2213, 2218, 2220, 0, 2223, 2224, - 2206, 2226, 2221, 2208, 2209, 2211, 2214, 2213, 2215, 2216, - 2220, 2216, 2217, 2219, 2215, 2221, 2219, 2218, 2222, 2225, - 2228, 2227, 2218, 2220, 2223, 2223, 2224, 2229, 2226, 2221, - 2231, 2232, 2222, 2227, 2228, 2236, 2237, 2230, 2233, 2235, - 2230, 2238, 2236, 2237, 2225, 2222, 2225, 2228, 2227, 2239, - 2240, 2241, 2242, 2229, 2229, 2230, 2238, 2231, 2232, 2241, - - 2233, 2235, 2236, 2237, 2230, 2233, 2235, 2230, 2238, 2244, - 2245, 2243, 2246, 2247, 2248, 2249, 2239, 2240, 2241, 2242, - 2243, 2251, 2245, 2256, 2255, 2250, 2258, 2253, 2249, 2263, - 0, 2251, 2252, 2261, 2246, 2253, 2244, 2245, 2243, 2246, - 2247, 2248, 2249, 2250, 2260, 2252, 2255, 2257, 2251, 2259, - 2256, 2255, 2250, 2258, 2253, 2257, 2263, 2261, 2259, 2252, - 2261, 0, 2262, 2265, 2264, 2260, 2268, 2266, 2270, 2276, - 2274, 2260, 2264, 2269, 2257, 2265, 2259, 2262, 2268, 2272, - 2273, 2269, 2274, 2278, 2273, 2275, 2272, 2279, 2262, 2262, - 2265, 2264, 2266, 2268, 2266, 2270, 2276, 2274, 2282, 2279, - - 2269, 2277, 2284, 2280, 2262, 2278, 2272, 2273, 2275, 2277, - 2278, 2283, 2275, 2285, 2279, 2280, 2288, 2288, 2283, 2289, - 2292, 2290, 2284, 2286, 2287, 2282, 2285, 2291, 2277, 2284, - 2280, 2294, 2286, 2287, 2295, 2292, 0, 2292, 2283, 2290, - 2285, 2302, 2302, 2288, 2292, 2289, 2289, 2292, 2290, 2295, - 2286, 2287, 2291, 2296, 2291, 2297, 2298, 2299, 2298, 2300, - 2306, 2295, 2292, 2294, 2292, 2300, 2301, 2304, 2302, 2305, - 2307, 2299, 2306, 2308, 0, 2296, 2311, 2297, 0, 2309, - 2296, 0, 2297, 2298, 2299, 2309, 2300, 2306, 2301, 2304, - 2312, 2305, 2310, 2301, 2304, 2314, 2305, 2314, 2313, 2315, - - 2316, 2322, 2307, 2317, 2310, 2308, 2309, 2323, 2311, 2326, - 2318, 2319, 2312, 2315, 2320, 2330, 2326, 2312, 2321, 2310, - 2313, 2317, 2314, 2324, 2316, 2313, 2315, 2316, 2318, 2319, - 2317, 2321, 2320, 2322, 2328, 2332, 2326, 2318, 2319, 2323, - 2329, 2320, 0, 2331, 0, 2321, 2324, 2330, 2333, 2334, - 2324, 2331, 2328, 2332, 2337, 2339, 2335, 2338, 2335, 2341, - 2340, 2328, 2332, 2335, 2343, 2337, 2329, 2329, 2338, 2331, - 2331, 2334, 2340, 2348, 2333, 2333, 2334, 2341, 2331, 2343, - 2345, 2337, 2339, 2335, 2338, 2335, 2341, 2340, 2344, 2346, - 2349, 2343, 2345, 2351, 2350, 2352, 2355, 2348, 2353, 2344, - - 2348, 2350, 2356, 2358, 2346, 2357, 2359, 2345, 2351, 2361, - 2360, 0, 2349, 2363, 0, 2344, 2346, 2349, 2362, 2364, - 2351, 2350, 2352, 2355, 2353, 2353, 2356, 2357, 2360, 2356, - 2365, 2362, 2357, 2366, 2364, 2358, 2361, 2360, 2359, 2363, - 2363, 2366, 2367, 2365, 2368, 2362, 2364, 2372, 2369, 0, - 2370, 0, 2374, 0, 2373, 2376, 0, 2365, 2375, 2378, - 2366, 2369, 2380, 0, 2379, 2377, 2378, 2390, 2367, 2367, - 2372, 0, 2370, 2376, 2372, 2369, 2368, 2370, 2373, 2374, - 2375, 2373, 2376, 2377, 2381, 2375, 2378, 2379, 2383, 2380, - 2384, 2379, 2377, 2385, 2386, 2387, 2388, 2384, 2381, 2390, - - 2385, 2393, 2389, 2388, 2391, 2392, 0, 2386, 2394, 2393, - 2383, 2381, 2395, 2396, 2392, 2383, 2394, 2384, 2387, 2396, - 2385, 2386, 2387, 2388, 2389, 2391, 2398, 2399, 2393, 2389, - 2400, 2391, 2392, 2401, 2395, 2394, 2402, 2403, 2399, 2395, - 2396, 2398, 2405, 2407, 0, 2408, 0, 2410, 2410, 2409, - 2415, 2411, 2400, 2398, 2399, 2402, 2407, 2400, 2414, 2417, - 2405, 2418, 2403, 2402, 2403, 2401, 2421, 2425, 2416, 2405, - 2407, 2408, 2408, 2409, 2410, 2423, 2409, 2411, 2411, 2418, - 2425, 2414, 2415, 2416, 2423, 2414, 2417, 2426, 2418, 2429, - 2430, 2430, 2434, 2421, 2425, 2416, 2432, 2431, 2426, 2433, - - 2436, 2438, 2423, 2431, 2439, 2441, 0, 2442, 0, 2440, - 2441, 2429, 2451, 2445, 2426, 2448, 2429, 2430, 2432, 2434, - 2440, 2433, 2455, 2432, 2431, 2461, 2433, 2436, 2450, 2442, - 2439, 2439, 2441, 2438, 2442, 2444, 2440, 2445, 2446, 2447, - 2445, 2452, 2448, 2444, 2451, 2453, 2450, 2456, 2457, 2455, - 2452, 2458, 2461, 2446, 2447, 2450, 2457, 2453, 2460, 2462, - 2458, 2463, 2444, 2467, 2464, 2446, 2447, 2465, 2452, 0, - 2463, 2456, 2453, 2466, 2456, 2457, 2467, 2470, 2458, 2468, - 2469, 2462, 2464, 2473, 2460, 2460, 2462, 2474, 2463, 2465, - 2467, 2464, 2468, 2475, 2465, 2469, 2471, 2476, 2466, 2470, - - 2466, 2472, 2477, 2471, 2470, 2473, 2468, 2469, 2472, 2479, - 2473, 2478, 2480, 0, 2474, 2481, 0, 2482, 2479, 0, - 2475, 2487, 2483, 2471, 2476, 2484, 2478, 2487, 2472, 2477, - 2485, 2489, 2484, 2486, 2480, 2488, 2479, 2483, 2478, 2480, - 2486, 2481, 2481, 2482, 2482, 2485, 2488, 2490, 2487, 2483, - 2491, 2492, 2484, 2493, 2501, 2490, 2494, 2485, 2489, 2495, - 2486, 2496, 2488, 2497, 2502, 2498, 2499, 0, 2500, 2493, - 2497, 2494, 0, 2499, 2490, 2500, 2496, 2491, 2492, 2495, - 2493, 2501, 2502, 2494, 2503, 2503, 2495, 2498, 2496, 2504, - 2497, 2502, 2498, 2499, 2505, 2500, 2504, 2506, 2508, 2507, - - 2506, 0, 2509, 2508, 2510, 0, 2511, 0, 2505, 2518, - 2512, 2503, 2507, 2518, 2516, 2517, 2504, 2521, 2513, 2510, - 2517, 2505, 2514, 2516, 2506, 2508, 2507, 2509, 2512, 2509, - 2513, 2510, 2511, 2511, 2514, 2519, 2518, 2512, 2520, 2521, - 2523, 2516, 2517, 2524, 2521, 2513, 2522, 0, 2525, 2514, - 2527, 2520, 2529, 2531, 2530, 0, 2532, 2536, 0, 2519, - 2533, 0, 2519, 2530, 2532, 2520, 2536, 2523, 2522, 2531, - 2524, 0, 2533, 2522, 2525, 2525, 2527, 2527, 2529, 2529, - 2531, 2530, 2535, 2532, 2536, 2537, 2538, 2533, 2539, 2535, - 2537, 2540, 2541, 2538, 2542, 2543, 2544, 2547, 2540, 2545, - - 2551, 2542, 2549, 2548, 2543, 2544, 2539, 2549, 2554, 2535, - 2550, 2555, 2537, 2538, 2553, 2539, 2548, 2541, 2540, 2541, - 2555, 2542, 2543, 2544, 2547, 2545, 2545, 2551, 2550, 2549, - 2548, 2556, 2553, 2557, 2558, 2554, 2559, 2550, 2555, 2560, - 2556, 2553, 2562, 2561, 2563, 2559, 2558, 2564, 2560, 2565, - 2562, 2567, 2568, 2557, 2561, 2566, 2565, 2569, 2556, 2570, - 2557, 2558, 0, 2559, 2566, 2575, 2560, 2573, 2571, 2562, - 2561, 2563, 2567, 2572, 2564, 2573, 2565, 2571, 2567, 2568, - 2574, 2576, 2566, 2577, 2569, 2572, 2580, 2575, 2576, 2578, - 2577, 2570, 2575, 2574, 2573, 2571, 2579, 2581, 2582, 2586, - - 2572, 2584, 0, 2588, 2587, 0, 0, 2574, 2576, 2584, - 2577, 2578, 2587, 2580, 2590, 2591, 2578, 2586, 2588, 2598, - 2589, 2579, 2581, 2579, 2581, 2582, 2586, 2589, 2584, 2597, - 2588, 2587, 2592, 2596, 2601, 2593, 2590, 2591, 2599, 2592, - 2596, 2590, 2591, 2593, 2604, 2600, 2598, 2589, 2602, 2608, - 2599, 2603, 2609, 2597, 2600, 0, 2597, 2606, 2607, 2592, - 2596, 2601, 2593, 2603, 2602, 2599, 2609, 2604, 2611, 2606, - 2612, 2604, 2600, 2614, 2617, 2602, 2608, 2612, 2603, 2609, - 2611, 2607, 2613, 2616, 2606, 2607, 2619, 2621, 2618, 2613, - 2622, 2620, 2617, 0, 2624, 2611, 2626, 2612, 2616, 2620, - - 2614, 2617, 2623, 2626, 2625, 2624, 2627, 0, 2632, 2613, - 2616, 2618, 2622, 2619, 2621, 2618, 2634, 2622, 2620, 2625, - 2623, 2624, 2633, 2626, 2635, 2636, 2637, 2633, 2638, 2623, - 2639, 2625, 2640, 2627, 2632, 2632, 2644, 2652, 2635, 2636, - 2641, 0, 2642, 2634, 2637, 2652, 2638, 2641, 2639, 2633, - 2647, 2635, 2636, 2637, 2642, 2638, 2648, 2639, 2649, 2640, - 2650, 2651, 2654, 2644, 2652, 0, 2653, 2641, 2657, 2642, - 2658, 2649, 2647, 2660, 2656, 2661, 2662, 2647, 2648, 2659, - 2651, 2654, 2650, 2648, 2653, 2649, 2656, 2650, 2651, 2654, - 2657, 2659, 2658, 2653, 2664, 2657, 2663, 2658, 2662, 2665, - - 2660, 2656, 2661, 2662, 2663, 2666, 2659, 2667, 2668, 2669, - 2671, 2670, 2672, 0, 0, 2674, 2667, 2668, 2673, 2665, - 2675, 2664, 2679, 2663, 2672, 2681, 2665, 2666, 2680, 2678, - 2681, 2682, 2666, 2670, 2667, 2668, 2671, 2671, 2670, 2672, - 2673, 2669, 2674, 2678, 2683, 2673, 2684, 2675, 2685, 2679, - 2687, 2686, 2680, 2682, 2692, 2680, 2678, 2681, 2682, 2684, - 2693, 2688, 2690, 2689, 2691, 0, 2683, 2695, 0, 2699, - 2691, 2683, 2687, 2684, 2686, 2689, 2694, 2687, 2686, 2688, - 2685, 2690, 2695, 2698, 2697, 2701, 2692, 2703, 2688, 2690, - 2689, 2691, 2693, 2699, 2695, 2704, 2699, 2705, 2694, 2706, - - 2701, 2707, 2708, 2694, 2697, 2698, 2705, 2709, 2714, 2703, - 2698, 2697, 2701, 2706, 2703, 0, 2713, 2704, 2710, 2707, - 2708, 2715, 2704, 2718, 2705, 2713, 2706, 2720, 2707, 2708, - 2719, 2718, 2721, 2709, 2709, 2720, 2710, 2719, 2722, 2723, - 2714, 2725, 2715, 2713, 2724, 2710, 2726, 2723, 2715, 2729, - 2718, 2732, 2727, 2725, 2720, 2733, 2731, 2719, 2722, 2721, - 2727, 2729, 2724, 2731, 2735, 2722, 2723, 2734, 2725, 2734, - 2736, 2724, 2737, 2726, 2732, 2738, 2729, 2739, 2732, 2727, - 2746, 2737, 2733, 2731, 2740, 0, 2741, 2743, 0, 0, - 2754, 2747, 2744, 2748, 2734, 0, 2735, 2749, 2755, 2737, - - 2752, 2757, 2736, 2740, 2739, 2743, 2744, 2738, 2741, 2750, - 2749, 2740, 2746, 2741, 2743, 2747, 2748, 2754, 2747, 2744, - 2748, 2750, 2753, 2758, 2749, 2755, 2752, 2752, 2757, 2759, - 2761, 2753, 2763, 2764, 2769, 2766, 2750, 2765, 2767, 2763, - 2766, 2769, 2770, 2772, 2773, 0, 2758, 2778, 2774, 2753, - 2758, 2759, 2765, 2767, 2782, 2764, 2759, 2761, 0, 2763, - 2764, 2769, 2775, 2776, 2765, 2767, 2783, 2766, 2770, 2770, - 2772, 2773, 2774, 2779, 2778, 2774, 2775, 2776, 2781, 2784, - 2786, 2782, 2779, 2785, 2787, 2781, 2789, 2788, 2790, 2775, - 2776, 2791, 2783, 2783, 2792, 2785, 2788, 2795, 2787, 2789, - - 2779, 2796, 2803, 2798, 2802, 2781, 2784, 2786, 2798, 2806, - 2785, 2787, 2799, 2789, 2788, 2800, 2799, 2792, 2791, 2801, - 2790, 2792, 2800, 2796, 2805, 2802, 2801, 2809, 2796, 2795, - 2804, 2802, 2804, 2811, 2803, 2798, 2806, 2812, 2814, 2799, - 2814, 0, 2800, 2815, 0, 2816, 2801, 2805, 0, 2809, - 2821, 2805, 2811, 2818, 2809, 2820, 2822, 2804, 2817, 2817, - 2811, 2812, 2820, 2821, 2812, 2814, 2823, 2815, 2817, 2819, - 2815, 2816, 2816, 2824, 2825, 2818, 2826, 2821, 2819, 2823, - 2818, 2824, 2820, 2822, 2826, 2817, 2817, 2825, 2827, 2828, - 2829, 2830, 2831, 2823, 2828, 2829, 2819, 2824, 2832, 2830, - - 2824, 2825, 2833, 2826, 2834, 0, 2835, 2827, 2824, 2836, - 2838, 0, 2837, 2839, 2839, 2827, 2840, 2838, 2830, 2831, - 2836, 2828, 2829, 2842, 2832, 2832, 2843, 2841, 2833, 2833, - 2834, 2834, 2835, 2835, 2837, 2841, 2836, 2838, 2840, 2837, - 2839, 2844, 2845, 2840, 2843, 2842, 2847, 2848, 2844, 2845, - 2842, 2849, 2850, 2843, 2841, 2852, 2853, 2854, 2855, 2857, - 0, 2850, 0, 2858, 2864, 0, 0, 2870, 2844, 2845, - 2859, 2860, 2870, 2847, 2848, 2849, 2853, 2861, 2849, 2850, - 2855, 2858, 2852, 2853, 2854, 2855, 2857, 2863, 2859, 2860, - 2858, 2864, 2865, 2866, 2867, 2861, 2863, 2859, 2860, 2870, - - 2868, 2869, 2867, 2871, 2861, 2872, 2873, 2878, 2880, 2877, - 2895, 2866, 2881, 2869, 2863, 2865, 2868, 2871, 2885, 2865, - 2866, 2867, 2882, 2872, 2882, 2881, 2886, 2868, 2869, 2873, - 2871, 2877, 2872, 2873, 2878, 2880, 2877, 2883, 2891, 2881, - 2887, 2890, 2895, 2890, 2886, 2885, 2883, 2894, 2892, 2882, - 2901, 2899, 2904, 2886, 2894, 2887, 2897, 2899, 2902, 2906, - 2891, 2903, 2907, 0, 2883, 2891, 2892, 2887, 2890, 2908, - 2904, 2897, 2901, 2911, 2894, 2892, 2907, 2901, 2899, 2904, - 2902, 2906, 2908, 2897, 2912, 2902, 2906, 2903, 2903, 2907, - 2909, 2913, 2914, 2909, 2915, 2916, 2908, 0, 2919, 0, - - 2911, 2915, 2917, 2916, 2920, 2921, 2922, 0, 0, 2925, - 2914, 2912, 2926, 2924, 2923, 2925, 2909, 2909, 2913, 2914, - 2909, 2915, 2916, 2923, 2917, 2928, 2920, 2921, 2924, 2917, - 2919, 2920, 2921, 2922, 2926, 2927, 2925, 2930, 2932, 2926, - 2924, 2923, 0, 2929, 2927, 2929, 2933, 2934, 0, 2935, - 2936, 2937, 2940, 2942, 2938, 0, 0, 2928, 2936, 2940, - 2946, 2932, 2927, 2937, 2930, 2932, 2938, 2952, 2933, 2934, - 2929, 2944, 2945, 2933, 2934, 2935, 2935, 2936, 2937, 2940, - 2942, 2938, 2947, 2946, 2948, 2944, 2945, 2946, 2949, 2950, - 2951, 2956, 2953, 2952, 2952, 2948, 2949, 2954, 2944, 2945, - - 2947, 2955, 2955, 2960, 2961, 2957, 2954, 2965, 2950, 2947, - 2953, 2948, 2951, 2957, 2963, 2949, 2950, 2951, 2956, 2953, - 2963, 2969, 2967, 2971, 2954, 2968, 2970, 2973, 2955, 2975, - 2960, 2961, 2957, 2967, 2965, 2974, 2968, 2970, 2976, 2980, - 2977, 2963, 2974, 2969, 2977, 2971, 2983, 2975, 2969, 2967, - 2971, 2978, 2968, 2970, 2973, 2981, 2975, 2986, 2987, 2978, - 2991, 2982, 2974, 2999, 2986, 2980, 2980, 2977, 2981, 2982, - 2976, 2988, 2990, 2983, 2992, 2995, 2994, 2990, 2978, 2993, - 2996, 3000, 2981, 2994, 2986, 2998, 2997, 2991, 2982, 3000, - 2987, 2993, 2998, 2988, 2995, 2999, 2996, 3003, 2988, 2990, - - 3001, 2992, 2995, 2994, 2997, 3004, 2993, 2996, 3000, 3002, - 3005, 3006, 2998, 2997, 3007, 3001, 3002, 3004, 3011, 3012, - 3013, 2995, 3014, 3015, 3003, 3016, 3012, 3001, 3020, 3019, - 0, 3021, 3004, 3011, 3005, 3006, 3002, 3005, 3006, 3017, - 3007, 3007, 3023, 3025, 3031, 3011, 3012, 3015, 3017, 3014, - 3015, 3019, 3013, 3021, 3022, 3020, 3019, 3016, 3021, 3024, - 3024, 3027, 3022, 3028, 3030, 3029, 3017, 3029, 3033, 3024, - 3025, 3031, 3028, 3036, 3023, 3032, 3027, 3037, 3030, 3033, - 3034, 3022, 3046, 3032, 3038, 3041, 3024, 3024, 3027, 3042, - 3028, 3030, 3029, 3040, 3043, 3033, 3039, 3047, 3034, 3044, - - 3036, 3049, 3032, 0, 3037, 3054, 3038, 3034, 3060, 3039, - 3054, 3038, 3041, 3044, 3046, 3040, 3042, 3045, 3045, 3047, - 3040, 3043, 3052, 3039, 3047, 3056, 3044, 3058, 3049, 3055, - 3052, 3057, 3054, 3056, 3055, 3060, 3057, 3061, 3061, 3062, - 3066, 3064, 3063, 3065, 3045, 3067, 3069, 3062, 3064, 3052, - 3070, 3081, 3056, 3058, 3058, 3063, 3055, 3070, 3057, 3072, - 3076, 3065, 3078, 3071, 3061, 3082, 3062, 3066, 3064, 3063, - 3065, 3071, 3067, 3075, 3079, 3080, 3083, 3070, 3069, 3075, - 3082, 3072, 3084, 3081, 3085, 3087, 3072, 3076, 3080, 3078, - 3071, 3088, 3082, 3091, 0, 3083, 3079, 3089, 3090, 3092, - - 3075, 3079, 3080, 3083, 3089, 3090, 3085, 3093, 3087, 3084, - 3095, 3085, 3087, 3088, 3092, 3091, 3097, 3104, 3088, 3096, - 3091, 3100, 3101, 3097, 3089, 3090, 3092, 3096, 3093, 3095, - 3100, 3098, 3106, 3101, 3093, 3102, 3102, 3095, 3098, 3104, - 3108, 3103, 3109, 3097, 3104, 3102, 3096, 3103, 3100, 3101, - 3107, 3112, 3113, 3111, 3106, 3116, 3117, 3107, 3098, 3106, - 3111, 3118, 3102, 3102, 3109, 3122, 3113, 3123, 3103, 3109, - 3125, 3127, 3108, 3124, 3130, 3112, 3132, 3107, 3112, 3113, - 3111, 3124, 3116, 3117, 3118, 3128, 3128, 0, 3118, 3123, - 3129, 3129, 3122, 3134, 3123, 3131, 3131, 3125, 3127, 3132, - - 3124, 3130, 3136, 3132, 3135, 3138, 3141, 3137, 3143, 3144, - 3142, 0, 0, 3141, 3128, 3134, 3137, 3142, 3138, 3129, - 3134, 3145, 3135, 3148, 3131, 3148, 3149, 3151, 3145, 3136, - 3143, 3135, 3138, 3141, 3137, 3143, 3144, 3142, 3150, 3152, - 3154, 3155, 3156, 3159, 3157, 3151, 3149, 3158, 3145, 3154, - 3148, 3152, 3160, 3149, 3151, 3162, 3165, 3173, 3172, 3164, - 3161, 3150, 3157, 3155, 3164, 3150, 3152, 3154, 3155, 3156, - 3159, 3157, 3161, 3158, 3158, 3163, 3169, 3162, 3163, 3160, - 3167, 3166, 3162, 3166, 3168, 3172, 3175, 3161, 3165, 3173, - 3168, 3164, 3167, 3163, 3170, 3176, 3171, 3174, 3169, 3181, - - 3177, 0, 3163, 3169, 3171, 3163, 3178, 3167, 3166, 3183, - 3187, 3168, 3177, 3175, 3184, 3188, 3170, 3189, 3174, 3190, - 3192, 3170, 3176, 3171, 3174, 3193, 3181, 3177, 3178, 3194, - 3195, 3198, 3184, 3178, 3196, 3196, 3183, 3187, 3199, 3201, - 3204, 3184, 3188, 3202, 3189, 3200, 3190, 3192, 3206, 3198, - 3202, 3205, 3193, 3209, 3201, 3208, 3194, 3195, 3198, 3205, - 3210, 3196, 3207, 3200, 3211, 3199, 3201, 3204, 3209, 3208, - 3202, 3213, 3200, 3214, 3207, 3206, 3217, 3218, 3205, 3220, - 3209, 3221, 3208, 3213, 3224, 3217, 3210, 3210, 3223, 3207, - 3221, 3211, 3219, 3219, 3225, 3226, 3232, 0, 3213, 3231, - - 3214, 3218, 3227, 3217, 3218, 3220, 3220, 3225, 3221, 3228, - 3227, 3235, 3223, 3229, 3232, 3223, 3224, 3226, 3228, 3219, - 3231, 3225, 3226, 3232, 3229, 3236, 3231, 3239, 3239, 3227, - 3251, 3248, 3249, 3252, 3235, 3253, 3228, 3236, 3235, 3255, - 3229, 3257, 3259, 3258, 3251, 3257, 0, 3264, 3260, 3266, - 3262, 3264, 3236, 3248, 3239, 3260, 3249, 3251, 3248, 3249, - 3252, 3258, 3253, 3262, 3265, 3259, 3255, 3267, 3257, 3259, - 3258, 3266, 3268, 3270, 3264, 3260, 3266, 3262, 3269, 3272, - 3265, 3271, 3273, 3274, 3268, 3274, 3275, 3270, 3272, 3271, - 0, 3265, 3267, 3273, 3267, 3278, 3276, 3277, 3275, 3268, - - 3270, 3279, 3281, 3280, 3269, 3269, 3272, 3279, 3271, 3273, - 3274, 3282, 3277, 3275, 3276, 3283, 3289, 3278, 3282, 3287, - 3288, 3290, 3278, 3276, 3277, 3280, 3291, 3288, 3279, 3281, - 3280, 3292, 3287, 3293, 3294, 3297, 3295, 3283, 3282, 3290, - 0, 0, 3283, 3289, 3295, 3296, 3287, 3288, 3290, 3298, - 3304, 3299, 3296, 3291, 3300, 3301, 3300, 3292, 3292, 3297, - 3293, 3294, 3297, 3295, 3302, 3304, 3303, 3301, 3305, 0, - 3306, 3298, 3296, 3299, 3308, 3310, 3298, 3304, 3299, 3303, - 3307, 3300, 3301, 3312, 3313, 3317, 3311, 3307, 3315, 3320, - 3305, 3312, 3321, 3303, 3317, 3305, 3302, 3306, 3311, 3324, - - 3315, 3308, 3310, 3322, 3325, 3329, 3323, 3307, 3326, 0, - 3312, 3313, 3317, 3311, 3323, 3315, 3320, 3328, 3321, 3321, - 3327, 3326, 3322, 3330, 3332, 3328, 3338, 3329, 3344, 3339, - 3322, 3324, 3329, 3323, 3327, 3326, 3325, 3335, 3336, 3338, - 3342, 3341, 3344, 3335, 3328, 3336, 3343, 3327, 3341, 3345, - 3330, 3332, 3339, 3338, 3343, 3344, 3339, 3347, 3346, 3348, - 3349, 3355, 3342, 3345, 3335, 3336, 3346, 3342, 3341, 3353, - 3352, 3356, 3354, 3343, 3357, 3358, 3345, 3352, 3353, 3347, - 3354, 3348, 3359, 3360, 3347, 3346, 3348, 3349, 3355, 3361, - 3363, 3365, 3362, 3356, 3367, 3374, 3353, 3352, 3356, 3354, - - 3362, 3358, 3358, 3366, 3359, 3360, 3357, 3370, 3369, 3359, - 3360, 3361, 3371, 3380, 0, 3370, 3361, 3378, 3365, 3362, - 3372, 3367, 3363, 3398, 3376, 3366, 3401, 3374, 3372, 3373, - 3366, 3369, 3371, 3375, 3370, 3369, 0, 3373, 3376, 3371, - 3380, 3375, 3382, 3378, 3378, 3381, 3383, 3372, 3381, 3384, - 3398, 3376, 3385, 3401, 3383, 3386, 3373, 3384, 3387, 3392, - 3375, 3390, 3390, 3381, 3382, 3391, 3385, 3392, 3393, 3382, - 3388, 3395, 3381, 3383, 3394, 3381, 3384, 0, 0, 3385, - 3387, 3386, 3386, 3396, 3388, 3387, 3392, 3399, 3390, 3405, - 3400, 3391, 3391, 3395, 3393, 3393, 3397, 3388, 3395, 3402, - - 3394, 3394, 3403, 3396, 3397, 3404, 3408, 3417, 0, 3399, - 3396, 3405, 3406, 3404, 3399, 3400, 3405, 3400, 3411, 3402, - 3406, 3412, 3403, 3397, 3415, 0, 3402, 3409, 3413, 3403, - 3414, 3421, 3404, 3408, 3417, 3409, 3413, 3420, 3414, 3406, - 3411, 3418, 3422, 3412, 3419, 3411, 3424, 3425, 3412, 3418, - 3415, 3415, 3419, 3428, 3409, 3413, 3426, 3414, 3421, 3431, - 3434, 3435, 3422, 3420, 3420, 0, 0, 0, 3418, 3422, - 3432, 3419, 0, 3424, 3425, 3428, 3426, 3433, 3432, 0, - 3428, 3431, 0, 3426, 0, 3433, 3431, 3434, 3435, 0, - 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, - - 0, 0, 0, 0, 3433, 3439, 3439, 3439, 3439, 3439, - 3439, 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3441, - 3441, 3441, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442, - 3442, 3442, 3442, 3443, 3443, 3443, 3443, 3443, 3443, 3443, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445, 3445, - 3445, 3445, 3445, 3445, 3447, 3447, 0, 3447, 3447, 3447, - 3447, 3448, 3448, 0, 0, 0, 3448, 3448, 3449, 3449, - 0, 0, 3449, 0, 3449, 3450, 0, 0, 0, 0, - 0, 3450, 3451, 3451, 0, 0, 0, 3451, 3451, 3452, - 0, 0, 0, 0, 0, 3452, 3453, 3453, 0, 3453, - - 3453, 3453, 3453, 3454, 0, 0, 0, 0, 0, 3454, - 3455, 3455, 0, 0, 0, 3455, 3455, 3456, 3456, 0, - 3456, 3456, 3456, 3456, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438 - - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int yy_flex_debug; -int yy_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -static int yy_more_flag = 0; -static int yy_more_len = 0; -#define yymore() ((yy_more_flag) = 1) -#define YY_MORE_ADJ (yy_more_len) -#define YY_RESTORE_YY_MORE_OFFSET -char *yytext; -#line 1 "util/configlexer.lex" -#line 2 "util/configlexer.lex" -/* - * configlexer.lex - lexical analyzer for unbound config file - * - * Copyright (c) 2001-2006, NLnet Labs. All rights reserved - * - * See LICENSE for the license. - * - */ - -/* because flex keeps having sign-unsigned compare problems that are unfixed*/ -#if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2)))) -#pragma GCC diagnostic ignored "-Wsign-compare" -#endif - -#include -#include -#ifdef HAVE_GLOB_H -# include -#endif - -#include "util/config_file.h" -#include "util/configparser.h" -void ub_c_error(const char *message); - -#if 0 -#define LEXOUT(s) printf s /* used ONLY when debugging */ -#else -#define LEXOUT(s) -#endif - -/** avoid warning in about fwrite return value */ -#define ECHO ub_c_error_msg("syntax error at text: %s", yytext) - -/** A parser variable, this is a statement in the config file which is - * of the form variable: value1 value2 ... nargs is the number of values. */ -#define YDVAR(nargs, var) \ - num_args=(nargs); \ - LEXOUT(("v(%s%d) ", yytext, num_args)); \ - if(num_args > 0) { BEGIN(val); } \ - return (var); - -struct inc_state { - char* filename; - int line; - YY_BUFFER_STATE buffer; - struct inc_state* next; - int inc_toplevel; -}; -static struct inc_state* config_include_stack = NULL; -static int inc_depth = 0; -static int inc_prev = 0; -static int num_args = 0; -static int inc_toplevel = 0; - -void init_cfg_parse(void) -{ - config_include_stack = NULL; - inc_depth = 0; - inc_prev = 0; - num_args = 0; - inc_toplevel = 0; -} - -static void config_start_include(const char* filename, int toplevel) -{ - FILE *input; - struct inc_state* s; - char* nm; - if(inc_depth+1 > 100000) { - ub_c_error_msg("too many include files"); - return; - } - if(*filename == '\0') { - ub_c_error_msg("empty include file name"); - return; - } - s = (struct inc_state*)malloc(sizeof(*s)); - if(!s) { - ub_c_error_msg("include %s: malloc failure", filename); - return; - } - if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, - strlen(cfg_parser->chroot)) == 0) { - filename += strlen(cfg_parser->chroot); - } - nm = strdup(filename); - if(!nm) { - ub_c_error_msg("include %s: strdup failure", filename); - free(s); - return; - } - input = fopen(filename, "r"); - if(!input) { - ub_c_error_msg("cannot open include file '%s': %s", - filename, strerror(errno)); - free(s); - free(nm); - return; - } - LEXOUT(("switch_to_include_file(%s)\n", filename)); - inc_depth++; - s->filename = cfg_parser->filename; - s->line = cfg_parser->line; - s->buffer = YY_CURRENT_BUFFER; - s->inc_toplevel = inc_toplevel; - s->next = config_include_stack; - config_include_stack = s; - cfg_parser->filename = nm; - cfg_parser->line = 1; - inc_toplevel = toplevel; - yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE)); -} - -static void config_start_include_glob(const char* filename, int toplevel) -{ - - /* check for wildcards */ -#ifdef HAVE_GLOB - glob_t g; - int i, r, flags; - if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') && - !strchr(filename, '{') && !strchr(filename, '~'))) { - flags = 0 -#ifdef GLOB_ERR - | GLOB_ERR -#endif - /* do not set GLOB_NOSORT so the results are sorted - and in a predictable order. */ -#ifdef GLOB_BRACE - | GLOB_BRACE -#endif -#ifdef GLOB_TILDE - | GLOB_TILDE -#endif - ; - memset(&g, 0, sizeof(g)); - if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot, - strlen(cfg_parser->chroot)) == 0) { - filename += strlen(cfg_parser->chroot); - } - r = glob(filename, flags, NULL, &g); - if(r) { - /* some error */ - globfree(&g); - if(r == GLOB_NOMATCH) - return; /* no matches for pattern */ - config_start_include(filename, toplevel); /* let original deal with it */ - return; - } - /* process files found, if any */ - for(i=(int)g.gl_pathc-1; i>=0; i--) { - config_start_include(g.gl_pathv[i], toplevel); - } - globfree(&g); - return; - } -#endif /* HAVE_GLOB */ - - config_start_include(filename, toplevel); -} - -static void config_end_include(void) -{ - struct inc_state* s = config_include_stack; - --inc_depth; - if(!s) return; - free(cfg_parser->filename); - cfg_parser->filename = s->filename; - cfg_parser->line = s->line; - yy_delete_buffer(YY_CURRENT_BUFFER); - yy_switch_to_buffer(s->buffer); - config_include_stack = s->next; - inc_toplevel = s->inc_toplevel; - free(s); -} - -#ifndef yy_set_bol /* compat definition, for flex 2.4.6 */ -#define yy_set_bol(at_bol) \ - { \ - if ( ! yy_current_buffer ) \ - yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \ - yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \ - } -#endif - -#define YY_NO_INPUT 1 -#line 191 "util/configlexer.lex" -#ifndef YY_NO_UNPUT -#define YY_NO_UNPUT 1 -#endif -#ifndef YY_NO_INPUT -#define YY_NO_INPUT 1 -#endif - -#line 3965 "" - -#define INITIAL 0 -#define quotedstring 1 -#define singlequotedstr 2 -#define include 3 -#define include_quoted 4 -#define val 5 -#define include_toplevel 6 -#define include_toplevel_quoted 7 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#include -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int yylex_destroy (void ); - -int yyget_debug (void ); - -void yyset_debug (int debug_flag ); - -YY_EXTRA_TYPE yyget_extra (void ); - -void yyset_extra (YY_EXTRA_TYPE user_defined ); - -FILE *yyget_in (void ); - -void yyset_in (FILE * in_str ); - -FILE *yyget_out (void ); - -void yyset_out (FILE * out_str ); - -yy_size_t yyget_leng (void ); - -char *yyget_text (void ); - -int yyget_lineno (void ); - -void yyset_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int yywrap (void ); -#else -extern int yywrap (void ); -#endif -#endif - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - yy_size_t n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( yyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(yyin); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int yylex (void); - -#define YY_DECL int yylex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after yytext and yyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 211 "util/configlexer.lex" - -#line 4154 "" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! yyin ) - yyin = stdin; - - if ( ! yyout ) - yyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); - } - - yy_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - (yy_more_len) = 0; - if ( (yy_more_flag) ) - { - (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); - (yy_more_flag) = 0; - } - yy_cp = (yy_c_buf_p); - - /* Support of yytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - 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 >= 3439 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 9825 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -YY_RULE_SETUP -#line 212 "util/configlexer.lex" -{ - LEXOUT(("SP ")); /* ignore */ } - YY_BREAK -case 2: -YY_RULE_SETUP -#line 214 "util/configlexer.lex" -{ - /* note that flex makes the longest match and '.' is any but not nl */ - LEXOUT(("comment(%s) ", yytext)); /* ignore */ } - YY_BREAK -case 3: -YY_RULE_SETUP -#line 217 "util/configlexer.lex" -{ YDVAR(0, VAR_SERVER) } - YY_BREAK -case 4: -YY_RULE_SETUP -#line 218 "util/configlexer.lex" -{ YDVAR(1, VAR_QNAME_MINIMISATION) } - YY_BREAK -case 5: -YY_RULE_SETUP -#line 219 "util/configlexer.lex" -{ YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) } - YY_BREAK -case 6: -YY_RULE_SETUP -#line 220 "util/configlexer.lex" -{ YDVAR(1, VAR_NUM_THREADS) } - YY_BREAK -case 7: -YY_RULE_SETUP -#line 221 "util/configlexer.lex" -{ YDVAR(1, VAR_VERBOSITY) } - YY_BREAK -case 8: -YY_RULE_SETUP -#line 222 "util/configlexer.lex" -{ YDVAR(1, VAR_PORT) } - YY_BREAK -case 9: -YY_RULE_SETUP -#line 223 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_RANGE) } - YY_BREAK -case 10: -YY_RULE_SETUP -#line 224 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_PORT_PERMIT) } - YY_BREAK -case 11: -YY_RULE_SETUP -#line 225 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_PORT_AVOID) } - YY_BREAK -case 12: -YY_RULE_SETUP -#line 226 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_NUM_TCP) } - YY_BREAK -case 13: -YY_RULE_SETUP -#line 227 "util/configlexer.lex" -{ YDVAR(1, VAR_INCOMING_NUM_TCP) } - YY_BREAK -case 14: -YY_RULE_SETUP -#line 228 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_IP4) } - YY_BREAK -case 15: -YY_RULE_SETUP -#line 229 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_IP6) } - YY_BREAK -case 16: -YY_RULE_SETUP -#line 230 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFER_IP4) } - YY_BREAK -case 17: -YY_RULE_SETUP -#line 231 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFER_IP6) } - YY_BREAK -case 18: -YY_RULE_SETUP -#line 232 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_UDP) } - YY_BREAK -case 19: -YY_RULE_SETUP -#line 233 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_TCP) } - YY_BREAK -case 20: -YY_RULE_SETUP -#line 234 "util/configlexer.lex" -{ YDVAR(1, VAR_TCP_UPSTREAM) } - YY_BREAK -case 21: -YY_RULE_SETUP -#line 235 "util/configlexer.lex" -{ YDVAR(1, VAR_TCP_MSS) } - YY_BREAK -case 22: -YY_RULE_SETUP -#line 236 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_TCP_MSS) } - YY_BREAK -case 23: -YY_RULE_SETUP -#line 237 "util/configlexer.lex" -{ YDVAR(1, VAR_TCP_IDLE_TIMEOUT) } - YY_BREAK -case 24: -YY_RULE_SETUP -#line 238 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_REUSE_TCP_QUERIES) } - YY_BREAK -case 25: -YY_RULE_SETUP -#line 239 "util/configlexer.lex" -{ YDVAR(1, VAR_TCP_REUSE_TIMEOUT) } - YY_BREAK -case 26: -YY_RULE_SETUP -#line 240 "util/configlexer.lex" -{ YDVAR(1, VAR_TCP_AUTH_QUERY_TIMEOUT) } - YY_BREAK -case 27: -YY_RULE_SETUP -#line 241 "util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) } - YY_BREAK -case 28: -YY_RULE_SETUP -#line 242 "util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) } - YY_BREAK -case 29: -YY_RULE_SETUP -#line 243 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } - YY_BREAK -case 30: -YY_RULE_SETUP -#line 244 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_UPSTREAM) } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 245 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 246 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_KEY) } - YY_BREAK -case 33: -YY_RULE_SETUP -#line 247 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } - YY_BREAK -case 34: -YY_RULE_SETUP -#line 248 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_SERVICE_PEM) } - YY_BREAK -case 35: -YY_RULE_SETUP -#line 249 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } - YY_BREAK -case 36: -YY_RULE_SETUP -#line 250 "util/configlexer.lex" -{ YDVAR(1, VAR_SSL_PORT) } - YY_BREAK -case 37: -YY_RULE_SETUP -#line 251 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } - YY_BREAK -case 38: -YY_RULE_SETUP -#line 252 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CERT_BUNDLE) } - YY_BREAK -case 39: -YY_RULE_SETUP -#line 253 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_WIN_CERT) } - YY_BREAK -case 40: -YY_RULE_SETUP -#line 254 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } - YY_BREAK -case 41: -YY_RULE_SETUP -#line 255 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } - YY_BREAK -case 42: -YY_RULE_SETUP -#line 256 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } - YY_BREAK -case 43: -YY_RULE_SETUP -#line 257 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_ADDITIONAL_PORT) } - YY_BREAK -case 44: -YY_RULE_SETUP -#line 258 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_SESSION_TICKET_KEYS) } - YY_BREAK -case 45: -YY_RULE_SETUP -#line 259 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERS) } - YY_BREAK -case 46: -YY_RULE_SETUP -#line 260 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_CIPHERSUITES) } - YY_BREAK -case 47: -YY_RULE_SETUP -#line 261 "util/configlexer.lex" -{ YDVAR(1, VAR_TLS_USE_SNI) } - YY_BREAK -case 48: -YY_RULE_SETUP -#line 262 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTPS_PORT) } - YY_BREAK -case 49: -YY_RULE_SETUP -#line 263 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_ENDPOINT) } - YY_BREAK -case 50: -YY_RULE_SETUP -#line 264 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_MAX_STREAMS) } - YY_BREAK -case 51: -YY_RULE_SETUP -#line 265 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_QUERY_BUFFER_SIZE) } - YY_BREAK -case 52: -YY_RULE_SETUP -#line 266 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_RESPONSE_BUFFER_SIZE) } - YY_BREAK -case 53: -YY_RULE_SETUP -#line 267 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NODELAY) } - YY_BREAK -case 54: -YY_RULE_SETUP -#line 268 "util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_NOTLS_DOWNSTREAM) } - YY_BREAK -case 55: -YY_RULE_SETUP -#line 269 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSTEMD) } - YY_BREAK -case 56: -YY_RULE_SETUP -#line 270 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_DAEMONIZE) } - YY_BREAK -case 57: -YY_RULE_SETUP -#line 271 "util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } - YY_BREAK -case 58: -YY_RULE_SETUP -#line 272 "util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE) } - YY_BREAK -case 59: -YY_RULE_SETUP -#line 273 "util/configlexer.lex" -{ YDVAR(1, VAR_OUTGOING_INTERFACE) } - YY_BREAK -case 60: -YY_RULE_SETUP -#line 274 "util/configlexer.lex" -{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) } - YY_BREAK -case 61: -YY_RULE_SETUP -#line 275 "util/configlexer.lex" -{ YDVAR(1, VAR_SO_RCVBUF) } - YY_BREAK -case 62: -YY_RULE_SETUP -#line 276 "util/configlexer.lex" -{ YDVAR(1, VAR_SO_SNDBUF) } - YY_BREAK -case 63: -YY_RULE_SETUP -#line 277 "util/configlexer.lex" -{ YDVAR(1, VAR_SO_REUSEPORT) } - YY_BREAK -case 64: -YY_RULE_SETUP -#line 278 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_TRANSPARENT) } - YY_BREAK -case 65: -YY_RULE_SETUP -#line 279 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_FREEBIND) } - YY_BREAK -case 66: -YY_RULE_SETUP -#line 280 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_DSCP) } - YY_BREAK -case 67: -YY_RULE_SETUP -#line 281 "util/configlexer.lex" -{ YDVAR(1, VAR_CHROOT) } - YY_BREAK -case 68: -YY_RULE_SETUP -#line 282 "util/configlexer.lex" -{ YDVAR(1, VAR_USERNAME) } - YY_BREAK -case 69: -YY_RULE_SETUP -#line 283 "util/configlexer.lex" -{ YDVAR(1, VAR_DIRECTORY) } - YY_BREAK -case 70: -YY_RULE_SETUP -#line 284 "util/configlexer.lex" -{ YDVAR(1, VAR_LOGFILE) } - YY_BREAK -case 71: -YY_RULE_SETUP -#line 285 "util/configlexer.lex" -{ YDVAR(1, VAR_PIDFILE) } - YY_BREAK -case 72: -YY_RULE_SETUP -#line 286 "util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_HINTS) } - YY_BREAK -case 73: -YY_RULE_SETUP -#line 287 "util/configlexer.lex" -{ YDVAR(1, VAR_STREAM_WAIT_SIZE) } - YY_BREAK -case 74: -YY_RULE_SETUP -#line 288 "util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) } - YY_BREAK -case 75: -YY_RULE_SETUP -#line 289 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_BUFFER_SIZE) } - YY_BREAK -case 76: -YY_RULE_SETUP -#line 290 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SIZE) } - YY_BREAK -case 77: -YY_RULE_SETUP -#line 291 "util/configlexer.lex" -{ YDVAR(1, VAR_MSG_CACHE_SLABS) } - YY_BREAK -case 78: -YY_RULE_SETUP -#line 292 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SIZE) } - YY_BREAK -case 79: -YY_RULE_SETUP -#line 293 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_CACHE_SLABS) } - YY_BREAK -case 80: -YY_RULE_SETUP -#line 294 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_TTL) } - YY_BREAK -case 81: -YY_RULE_SETUP -#line 295 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) } - YY_BREAK -case 82: -YY_RULE_SETUP -#line 296 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHE_MIN_TTL) } - YY_BREAK -case 83: -YY_RULE_SETUP -#line 297 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_HOST_TTL) } - YY_BREAK -case 84: -YY_RULE_SETUP -#line 298 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_LAME_TTL) } - YY_BREAK -case 85: -YY_RULE_SETUP -#line 299 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_SLABS) } - YY_BREAK -case 86: -YY_RULE_SETUP -#line 300 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) } - YY_BREAK -case 87: -YY_RULE_SETUP -#line 301 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) } - YY_BREAK -case 88: -YY_RULE_SETUP -#line 302 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) } - YY_BREAK -case 89: -YY_RULE_SETUP -#line 303 "util/configlexer.lex" -{ YDVAR(1, VAR_INFRA_KEEP_PROBING) } - YY_BREAK -case 90: -YY_RULE_SETUP -#line 304 "util/configlexer.lex" -{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) } - YY_BREAK -case 91: -YY_RULE_SETUP -#line 305 "util/configlexer.lex" -{ YDVAR(1, VAR_JOSTLE_TIMEOUT) } - YY_BREAK -case 92: -YY_RULE_SETUP -#line 306 "util/configlexer.lex" -{ YDVAR(1, VAR_DELAY_CLOSE) } - YY_BREAK -case 93: -YY_RULE_SETUP -#line 307 "util/configlexer.lex" -{ YDVAR(1, VAR_UDP_CONNECT) } - YY_BREAK -case 94: -YY_RULE_SETUP -#line 308 "util/configlexer.lex" -{ YDVAR(1, VAR_TARGET_FETCH_POLICY) } - YY_BREAK -case 95: -YY_RULE_SETUP -#line 309 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } - YY_BREAK -case 96: -YY_RULE_SETUP -#line 310 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } - YY_BREAK -case 97: -YY_RULE_SETUP -#line 311 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_GLUE) } - YY_BREAK -case 98: -YY_RULE_SETUP -#line 312 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } - YY_BREAK -case 99: -YY_RULE_SETUP -#line 313 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } - YY_BREAK -case 100: -YY_RULE_SETUP -#line 314 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } - YY_BREAK -case 101: -YY_RULE_SETUP -#line 315 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) } - YY_BREAK -case 102: -YY_RULE_SETUP -#line 316 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } - YY_BREAK -case 103: -YY_RULE_SETUP -#line 317 "util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } - YY_BREAK -case 104: -YY_RULE_SETUP -#line 318 "util/configlexer.lex" -{ YDVAR(1, VAR_CAPS_WHITELIST) } - YY_BREAK -case 105: -YY_RULE_SETUP -#line 319 "util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } - YY_BREAK -case 106: -YY_RULE_SETUP -#line 320 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } - YY_BREAK -case 107: -YY_RULE_SETUP -#line 321 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } - YY_BREAK -case 108: -YY_RULE_SETUP -#line 322 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } - YY_BREAK -case 109: -YY_RULE_SETUP -#line 323 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } - YY_BREAK -case 110: -YY_RULE_SETUP -#line 324 "util/configlexer.lex" -{ YDVAR(1, VAR_DENY_ANY) } - YY_BREAK -case 111: -YY_RULE_SETUP -#line 325 "util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } - YY_BREAK -case 112: -YY_RULE_SETUP -#line 326 "util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } - YY_BREAK -case 113: -YY_RULE_SETUP -#line 327 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } - YY_BREAK -case 114: -YY_RULE_SETUP -#line 328 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } - YY_BREAK -case 115: -YY_RULE_SETUP -#line 329 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } - YY_BREAK -case 116: -YY_RULE_SETUP -#line 330 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_FIRST) } - YY_BREAK -case 117: -YY_RULE_SETUP -#line 331 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_NO_CACHE) } - YY_BREAK -case 118: -YY_RULE_SETUP -#line 332 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } - YY_BREAK -case 119: -YY_RULE_SETUP -#line 333 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) } - YY_BREAK -case 120: -YY_RULE_SETUP -#line 334 "util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } - YY_BREAK -case 121: -YY_RULE_SETUP -#line 335 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } - YY_BREAK -case 122: -YY_RULE_SETUP -#line 336 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } - YY_BREAK -case 123: -YY_RULE_SETUP -#line 337 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } - YY_BREAK -case 124: -YY_RULE_SETUP -#line 338 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } - YY_BREAK -case 125: -YY_RULE_SETUP -#line 339 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } - YY_BREAK -case 126: -YY_RULE_SETUP -#line 340 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 341 "util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } - YY_BREAK -case 128: -YY_RULE_SETUP -#line 342 "util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } - YY_BREAK -case 129: -YY_RULE_SETUP -#line 343 "util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } - YY_BREAK -case 130: -YY_RULE_SETUP -#line 344 "util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } - YY_BREAK -case 131: -YY_RULE_SETUP -#line 345 "util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } - YY_BREAK -case 132: -YY_RULE_SETUP -#line 346 "util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } - YY_BREAK -case 133: -YY_RULE_SETUP -#line 347 "util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } - YY_BREAK -case 134: -YY_RULE_SETUP -#line 348 "util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } - YY_BREAK -case 135: -YY_RULE_SETUP -#line 349 "util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } - YY_BREAK -case 136: -YY_RULE_SETUP -#line 350 "util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } - YY_BREAK -case 137: -YY_RULE_SETUP -#line 351 "util/configlexer.lex" -{ YDVAR(1, VAR_URL) } - YY_BREAK -case 138: -YY_RULE_SETUP -#line 352 "util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } - YY_BREAK -case 139: -YY_RULE_SETUP -#line 353 "util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } - YY_BREAK -case 140: -YY_RULE_SETUP -#line 354 "util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } - YY_BREAK -case 141: -YY_RULE_SETUP -#line 355 "util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } - YY_BREAK -case 142: -YY_RULE_SETUP -#line 356 "util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } - YY_BREAK -case 143: -YY_RULE_SETUP -#line 357 "util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } - YY_BREAK -case 144: -YY_RULE_SETUP -#line 358 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } - YY_BREAK -case 145: -YY_RULE_SETUP -#line 359 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } - YY_BREAK -case 146: -YY_RULE_SETUP -#line 360 "util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } - YY_BREAK -case 147: -YY_RULE_SETUP -#line 361 "util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } - YY_BREAK -case 148: -YY_RULE_SETUP -#line 362 "util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } - YY_BREAK -case 149: -YY_RULE_SETUP -#line 363 "util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } - YY_BREAK -case 150: -YY_RULE_SETUP -#line 364 "util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } - YY_BREAK -case 151: -YY_RULE_SETUP -#line 365 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } - YY_BREAK -case 152: -YY_RULE_SETUP -#line 366 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } - YY_BREAK -case 153: -YY_RULE_SETUP -#line 367 "util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } - YY_BREAK -case 154: -YY_RULE_SETUP -#line 368 "util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } - YY_BREAK -case 155: -YY_RULE_SETUP -#line 369 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } - YY_BREAK -case 156: -YY_RULE_SETUP -#line 370 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } - YY_BREAK -case 157: -YY_RULE_SETUP -#line 371 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } - YY_BREAK -case 158: -YY_RULE_SETUP -#line 372 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } - YY_BREAK -case 159: -YY_RULE_SETUP -#line 373 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } - YY_BREAK -case 160: -YY_RULE_SETUP -#line 374 "util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } - YY_BREAK -case 161: -YY_RULE_SETUP -#line 375 "util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } - YY_BREAK -case 162: -YY_RULE_SETUP -#line 376 "util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } - YY_BREAK -case 163: -YY_RULE_SETUP -#line 377 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } - YY_BREAK -case 164: -YY_RULE_SETUP -#line 378 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } - YY_BREAK -case 165: -YY_RULE_SETUP -#line 379 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } - YY_BREAK -case 166: -YY_RULE_SETUP -#line 380 "util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } - YY_BREAK -case 167: -YY_RULE_SETUP -#line 381 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } - YY_BREAK -case 168: -YY_RULE_SETUP -#line 382 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } - YY_BREAK -case 169: -YY_RULE_SETUP -#line 383 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } - YY_BREAK -case 170: -YY_RULE_SETUP -#line 384 "util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } - YY_BREAK -case 171: -YY_RULE_SETUP -#line 385 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } - YY_BREAK -case 172: -YY_RULE_SETUP -#line 386 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } - YY_BREAK -case 173: -YY_RULE_SETUP -#line 387 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } - YY_BREAK -case 174: -YY_RULE_SETUP -#line 388 "util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } - YY_BREAK -case 175: -YY_RULE_SETUP -#line 389 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } - YY_BREAK -case 176: -YY_RULE_SETUP -#line 390 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } - YY_BREAK -case 177: -YY_RULE_SETUP -#line 391 "util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } - YY_BREAK -case 178: -YY_RULE_SETUP -#line 392 "util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } - YY_BREAK -case 179: -YY_RULE_SETUP -#line 393 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } - YY_BREAK -case 180: -YY_RULE_SETUP -#line 394 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } - YY_BREAK -case 181: -YY_RULE_SETUP -#line 395 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } - YY_BREAK -case 182: -YY_RULE_SETUP -#line 396 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } - YY_BREAK -case 183: -YY_RULE_SETUP -#line 397 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } - YY_BREAK -case 184: -YY_RULE_SETUP -#line 398 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } - YY_BREAK -case 185: -YY_RULE_SETUP -#line 399 "util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } - YY_BREAK -case 186: -YY_RULE_SETUP -#line 400 "util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } - YY_BREAK -case 187: -YY_RULE_SETUP -#line 401 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } - YY_BREAK -case 188: -YY_RULE_SETUP -#line 402 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } - YY_BREAK -case 189: -YY_RULE_SETUP -#line 403 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } - YY_BREAK -case 190: -YY_RULE_SETUP -#line 404 "util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } - YY_BREAK -case 191: -YY_RULE_SETUP -#line 405 "util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } - YY_BREAK -case 192: -YY_RULE_SETUP -#line 407 "util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } - YY_BREAK -case 193: -YY_RULE_SETUP -#line 408 "util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } - YY_BREAK -case 194: -YY_RULE_SETUP -#line 409 "util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } - YY_BREAK -case 195: -YY_RULE_SETUP -#line 410 "util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } - YY_BREAK -case 196: -YY_RULE_SETUP -#line 411 "util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } - YY_BREAK -case 197: -YY_RULE_SETUP -#line 412 "util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } - YY_BREAK -case 198: -YY_RULE_SETUP -#line 413 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } - YY_BREAK -case 199: -YY_RULE_SETUP -#line 414 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } - YY_BREAK -case 200: -YY_RULE_SETUP -#line 415 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } - YY_BREAK -case 201: -YY_RULE_SETUP -#line 416 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } - YY_BREAK -case 202: -YY_RULE_SETUP -#line 417 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } - YY_BREAK -case 203: -YY_RULE_SETUP -#line 418 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } - YY_BREAK -case 204: -YY_RULE_SETUP -#line 419 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } - YY_BREAK -case 205: -YY_RULE_SETUP -#line 420 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } - YY_BREAK -case 206: -YY_RULE_SETUP -#line 421 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } - YY_BREAK -case 207: -YY_RULE_SETUP -#line 422 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } - YY_BREAK -case 208: -YY_RULE_SETUP -#line 423 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } - YY_BREAK -case 209: -YY_RULE_SETUP -#line 424 "util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } - YY_BREAK -case 210: -YY_RULE_SETUP -#line 425 "util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } - YY_BREAK -case 211: -YY_RULE_SETUP -#line 426 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } - YY_BREAK -case 212: -YY_RULE_SETUP -#line 427 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } - YY_BREAK -case 213: -YY_RULE_SETUP -#line 428 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } - YY_BREAK -case 214: -YY_RULE_SETUP -#line 429 "util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } - YY_BREAK -case 215: -YY_RULE_SETUP -#line 430 "util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } - YY_BREAK -case 216: -YY_RULE_SETUP -#line 431 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } - YY_BREAK -case 217: -YY_RULE_SETUP -#line 432 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } - YY_BREAK -case 218: -YY_RULE_SETUP -#line 433 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } - YY_BREAK -case 219: -YY_RULE_SETUP -#line 434 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } - YY_BREAK -case 220: -YY_RULE_SETUP -#line 435 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } - YY_BREAK -case 221: -YY_RULE_SETUP -#line 436 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } - YY_BREAK -case 222: -YY_RULE_SETUP -#line 437 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } - YY_BREAK -case 223: -YY_RULE_SETUP -#line 438 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } - YY_BREAK -case 224: -YY_RULE_SETUP -#line 439 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } - YY_BREAK -case 225: -YY_RULE_SETUP -#line 440 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } - YY_BREAK -case 226: -YY_RULE_SETUP -#line 441 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } - YY_BREAK -case 227: -YY_RULE_SETUP -#line 442 "util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } - YY_BREAK -case 228: -YY_RULE_SETUP -#line 443 "util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } - YY_BREAK -case 229: -YY_RULE_SETUP -#line 444 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } - YY_BREAK -case 230: -YY_RULE_SETUP -#line 445 "util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } - YY_BREAK -case 231: -YY_RULE_SETUP -#line 446 "util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } - YY_BREAK -case 232: -YY_RULE_SETUP -#line 447 "util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } - YY_BREAK -case 233: -YY_RULE_SETUP -#line 448 "util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } - YY_BREAK -case 234: -YY_RULE_SETUP -#line 449 "util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } - YY_BREAK -case 235: -YY_RULE_SETUP -#line 450 "util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } - YY_BREAK -case 236: -YY_RULE_SETUP -#line 451 "util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } - YY_BREAK -case 237: -YY_RULE_SETUP -#line 452 "util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } - YY_BREAK -case 238: -YY_RULE_SETUP -#line 453 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } - YY_BREAK -case 239: -YY_RULE_SETUP -#line 454 "util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } - YY_BREAK -case 240: -YY_RULE_SETUP -#line 455 "util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } - YY_BREAK -case 241: -YY_RULE_SETUP -#line 456 "util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } - YY_BREAK -case 242: -YY_RULE_SETUP -#line 457 "util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } - YY_BREAK -case 243: -YY_RULE_SETUP -#line 458 "util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } - YY_BREAK -case 244: -YY_RULE_SETUP -#line 459 "util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } - YY_BREAK -case 245: -YY_RULE_SETUP -#line 460 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } - YY_BREAK -case 246: -YY_RULE_SETUP -#line 461 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } - YY_BREAK -case 247: -YY_RULE_SETUP -#line 462 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } - YY_BREAK -case 248: -YY_RULE_SETUP -#line 463 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } - YY_BREAK -case 249: -YY_RULE_SETUP -#line 464 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } - YY_BREAK -case 250: -YY_RULE_SETUP -#line 465 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } - YY_BREAK -case 251: -YY_RULE_SETUP -#line 466 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } - YY_BREAK -case 252: -YY_RULE_SETUP -#line 467 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } - YY_BREAK -case 253: -YY_RULE_SETUP -#line 469 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } - YY_BREAK -case 254: -YY_RULE_SETUP -#line 471 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } - YY_BREAK -case 255: -YY_RULE_SETUP -#line 472 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } - YY_BREAK -case 256: -YY_RULE_SETUP -#line 473 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } - YY_BREAK -case 257: -YY_RULE_SETUP -#line 474 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } - YY_BREAK -case 258: -YY_RULE_SETUP -#line 475 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } - YY_BREAK -case 259: -YY_RULE_SETUP -#line 477 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } - YY_BREAK -case 260: -YY_RULE_SETUP -#line 479 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } - YY_BREAK -case 261: -YY_RULE_SETUP -#line 481 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } - YY_BREAK -case 262: -YY_RULE_SETUP -#line 483 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } - YY_BREAK -case 263: -YY_RULE_SETUP -#line 485 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } - YY_BREAK -case 264: -YY_RULE_SETUP -#line 487 "util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } - YY_BREAK -case 265: -YY_RULE_SETUP -#line 488 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } - YY_BREAK -case 266: -YY_RULE_SETUP -#line 489 "util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } - YY_BREAK -case 267: -YY_RULE_SETUP -#line 490 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } - YY_BREAK -case 268: -YY_RULE_SETUP -#line 491 "util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } - YY_BREAK -case 269: -YY_RULE_SETUP -#line 492 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } - YY_BREAK -case 270: -YY_RULE_SETUP -#line 493 "util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } - YY_BREAK -case 271: -YY_RULE_SETUP -#line 494 "util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } - YY_BREAK -case 272: -YY_RULE_SETUP -#line 495 "util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } - YY_BREAK -case 273: -YY_RULE_SETUP -#line 496 "util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } - YY_BREAK -case 274: -YY_RULE_SETUP -#line 497 "util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } - YY_BREAK -case 275: -YY_RULE_SETUP -#line 498 "util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } - YY_BREAK -case 276: -YY_RULE_SETUP -#line 499 "util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } - YY_BREAK -case 277: -YY_RULE_SETUP -#line 500 "util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } - YY_BREAK -case 278: -YY_RULE_SETUP -#line 501 "util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } - YY_BREAK -case 279: -YY_RULE_SETUP -#line 502 "util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } - YY_BREAK -case 280: -YY_RULE_SETUP -#line 503 "util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } - YY_BREAK -case 281: -YY_RULE_SETUP -#line 504 "util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } - YY_BREAK -case 282: -YY_RULE_SETUP -#line 505 "util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } - YY_BREAK -case 283: -YY_RULE_SETUP -#line 506 "util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } - YY_BREAK -case 284: -YY_RULE_SETUP -#line 507 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } - YY_BREAK -case 285: -YY_RULE_SETUP -#line 508 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } - YY_BREAK -case 286: -YY_RULE_SETUP -#line 509 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } - YY_BREAK -case 287: -YY_RULE_SETUP -#line 510 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } - YY_BREAK -case 288: -YY_RULE_SETUP -#line 511 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } - YY_BREAK -case 289: -YY_RULE_SETUP -#line 512 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } - YY_BREAK -case 290: -YY_RULE_SETUP -#line 513 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } - YY_BREAK -case 291: -YY_RULE_SETUP -#line 515 "util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } - YY_BREAK -case 292: -YY_RULE_SETUP -#line 517 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } - YY_BREAK -case 293: -YY_RULE_SETUP -#line 518 "util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } - YY_BREAK -case 294: -YY_RULE_SETUP -#line 519 "util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } - YY_BREAK -case 295: -YY_RULE_SETUP -#line 520 "util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } - YY_BREAK -case 296: -YY_RULE_SETUP -#line 521 "util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } - YY_BREAK -case 297: -YY_RULE_SETUP -#line 522 "util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } - YY_BREAK -case 298: -YY_RULE_SETUP -#line 523 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } - YY_BREAK -case 299: -YY_RULE_SETUP -#line 524 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } - YY_BREAK -case 300: -YY_RULE_SETUP -#line 525 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } - YY_BREAK -case 301: -YY_RULE_SETUP -#line 526 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } - YY_BREAK -case 302: -YY_RULE_SETUP -#line 527 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } - YY_BREAK -case 303: -YY_RULE_SETUP -#line 528 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } - YY_BREAK -case 304: -YY_RULE_SETUP -#line 529 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } - YY_BREAK -case 305: -YY_RULE_SETUP -#line 530 "util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } - YY_BREAK -case 306: -YY_RULE_SETUP -#line 531 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } - YY_BREAK -case 307: -YY_RULE_SETUP -#line 532 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } - YY_BREAK -case 308: -YY_RULE_SETUP -#line 533 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } - YY_BREAK -case 309: -YY_RULE_SETUP -#line 534 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } - YY_BREAK -case 310: -YY_RULE_SETUP -#line 535 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } - YY_BREAK -case 311: -YY_RULE_SETUP -#line 536 "util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } - YY_BREAK -case 312: -YY_RULE_SETUP -#line 537 "util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } - YY_BREAK -case 313: -YY_RULE_SETUP -#line 538 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } - YY_BREAK -case 314: -YY_RULE_SETUP -#line 539 "util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } - YY_BREAK -case 315: -YY_RULE_SETUP -#line 540 "util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } - YY_BREAK -case 316: -YY_RULE_SETUP -#line 541 "util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } - YY_BREAK -case 317: -YY_RULE_SETUP -#line 542 "util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } - YY_BREAK -case 318: -YY_RULE_SETUP -#line 543 "util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } - YY_BREAK -case 319: -YY_RULE_SETUP -#line 544 "util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } - YY_BREAK -case 320: -/* rule 320 can match eol */ -YY_RULE_SETUP -#line 545 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } - YY_BREAK -/* Quoted strings. Strip leading and ending quotes */ -case 321: -YY_RULE_SETUP -#line 548 "util/configlexer.lex" -{ BEGIN(quotedstring); LEXOUT(("QS ")); } - YY_BREAK -case YY_STATE_EOF(quotedstring): -#line 549 "util/configlexer.lex" -{ - yyerror("EOF inside quoted string"); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } -} - YY_BREAK -case 322: -YY_RULE_SETUP -#line 554 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK -case 323: -/* rule 323 can match eol */ -YY_RULE_SETUP -#line 555 "util/configlexer.lex" -{ yyerror("newline inside quoted string, no end \""); - cfg_parser->line++; BEGIN(INITIAL); } - YY_BREAK -case 324: -YY_RULE_SETUP -#line 557 "util/configlexer.lex" -{ - LEXOUT(("QE ")); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } - yytext[yyleng - 1] = '\0'; - yylval.str = strdup(yytext); - if(!yylval.str) - yyerror("out of memory"); - return STRING_ARG; -} - YY_BREAK -/* Single Quoted strings. Strip leading and ending quotes */ -case 325: -YY_RULE_SETUP -#line 569 "util/configlexer.lex" -{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); } - YY_BREAK -case YY_STATE_EOF(singlequotedstr): -#line 570 "util/configlexer.lex" -{ - yyerror("EOF inside quoted string"); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } -} - YY_BREAK -case 326: -YY_RULE_SETUP -#line 575 "util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK -case 327: -/* rule 327 can match eol */ -YY_RULE_SETUP -#line 576 "util/configlexer.lex" -{ yyerror("newline inside quoted string, no end '"); - cfg_parser->line++; BEGIN(INITIAL); } - YY_BREAK -case 328: -YY_RULE_SETUP -#line 578 "util/configlexer.lex" -{ - LEXOUT(("SQE ")); - if(--num_args == 0) { BEGIN(INITIAL); } - else { BEGIN(val); } - yytext[yyleng - 1] = '\0'; - yylval.str = strdup(yytext); - if(!yylval.str) - yyerror("out of memory"); - return STRING_ARG; -} - YY_BREAK -/* include: directive */ -case 329: -YY_RULE_SETUP -#line 590 "util/configlexer.lex" -{ - LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } - YY_BREAK -case YY_STATE_EOF(include): -#line 592 "util/configlexer.lex" -{ - yyerror("EOF inside include directive"); - BEGIN(inc_prev); -} - YY_BREAK -case 330: -YY_RULE_SETUP -#line 596 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK -case 331: -/* rule 331 can match eol */ -YY_RULE_SETUP -#line 597 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} - YY_BREAK -case 332: -YY_RULE_SETUP -#line 598 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } - YY_BREAK -case 333: -YY_RULE_SETUP -#line 599 "util/configlexer.lex" -{ - LEXOUT(("Iunquotedstr(%s) ", yytext)); - config_start_include_glob(yytext, 0); - BEGIN(inc_prev); -} - YY_BREAK -case YY_STATE_EOF(include_quoted): -#line 604 "util/configlexer.lex" -{ - yyerror("EOF inside quoted string"); - BEGIN(inc_prev); -} - YY_BREAK -case 334: -YY_RULE_SETUP -#line 608 "util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK -case 335: -/* rule 335 can match eol */ -YY_RULE_SETUP -#line 609 "util/configlexer.lex" -{ yyerror("newline before \" in include name"); - cfg_parser->line++; BEGIN(inc_prev); } - YY_BREAK -case 336: -YY_RULE_SETUP -#line 611 "util/configlexer.lex" -{ - LEXOUT(("IQE ")); - yytext[yyleng - 1] = '\0'; - config_start_include_glob(yytext, 0); - BEGIN(inc_prev); -} - YY_BREAK -case YY_STATE_EOF(INITIAL): -case YY_STATE_EOF(val): -#line 617 "util/configlexer.lex" -{ - LEXOUT(("LEXEOF ")); - yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ - if (!config_include_stack) { - yyterminate(); - } else { - int prev_toplevel = inc_toplevel; - fclose(yyin); - config_end_include(); - if(prev_toplevel) return (VAR_FORCE_TOPLEVEL); - } -} - YY_BREAK -/* include-toplevel: directive */ -case 337: -YY_RULE_SETUP -#line 631 "util/configlexer.lex" -{ - LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); -} - YY_BREAK -case YY_STATE_EOF(include_toplevel): -#line 634 "util/configlexer.lex" -{ - yyerror("EOF inside include_toplevel directive"); - BEGIN(inc_prev); -} - YY_BREAK -case 338: -YY_RULE_SETUP -#line 638 "util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK -case 339: -/* rule 339 can match eol */ -YY_RULE_SETUP -#line 639 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } - YY_BREAK -case 340: -YY_RULE_SETUP -#line 640 "util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } - YY_BREAK -case 341: -YY_RULE_SETUP -#line 641 "util/configlexer.lex" -{ - LEXOUT(("ITunquotedstr(%s) ", yytext)); - config_start_include_glob(yytext, 1); - BEGIN(inc_prev); - return (VAR_FORCE_TOPLEVEL); -} - YY_BREAK -case YY_STATE_EOF(include_toplevel_quoted): -#line 647 "util/configlexer.lex" -{ - yyerror("EOF inside quoted string"); - BEGIN(inc_prev); -} - YY_BREAK -case 342: -YY_RULE_SETUP -#line 651 "util/configlexer.lex" -{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } - YY_BREAK -case 343: -/* rule 343 can match eol */ -YY_RULE_SETUP -#line 652 "util/configlexer.lex" -{ - yyerror("newline before \" in include name"); - cfg_parser->line++; BEGIN(inc_prev); -} - YY_BREAK -case 344: -YY_RULE_SETUP -#line 656 "util/configlexer.lex" -{ - LEXOUT(("ITQE ")); - yytext[yyleng - 1] = '\0'; - config_start_include_glob(yytext, 1); - BEGIN(inc_prev); - return (VAR_FORCE_TOPLEVEL); -} - YY_BREAK -case 345: -YY_RULE_SETUP -#line 664 "util/configlexer.lex" -{ LEXOUT(("unquotedstr(%s) ", yytext)); - if(--num_args == 0) { BEGIN(INITIAL); } - yylval.str = strdup(yytext); return STRING_ARG; } - YY_BREAK -case 346: -YY_RULE_SETUP -#line 668 "util/configlexer.lex" -{ - ub_c_error_msg("unknown keyword '%s'", yytext); - } - YY_BREAK -case 347: -YY_RULE_SETUP -#line 672 "util/configlexer.lex" -{ - ub_c_error_msg("stray '%s'", yytext); - } - YY_BREAK -case 348: -YY_RULE_SETUP -#line 676 "util/configlexer.lex" -ECHO; - YY_BREAK -#line 6121 "" - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed yyin at a new source and called - * yylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( yywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * yytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of yylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - yy_size_t num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - yy_size_t new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - 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 >= 3439 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - 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 >= 3439 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 3438); - - return yy_is_jam ? 0 : yy_current_state; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - yyrestart(yyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( yywrap( ) ) - return 0; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve yytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void yyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - yyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); - } - - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * yypop_buffer_state(); - * yypush_buffer_state(new_buffer); - */ - yyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (yywrap()) processing, but the only time this flag - * is looked at is after yywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void yy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - yy_init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with yy_create_buffer() - * - */ - void yy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); - - yyfree((void *) b ); -} - -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. - */ - static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - yy_flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then yy_init_buffer was _probably_ - * called from yyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void yy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - yyensure_buffer_stack(); - - /* This block is copied from yy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void yypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void yyensure_buffer_stack (void) -{ - yy_size_t num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - yy_switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to yylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * yy_scan_bytes() instead. - */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) -{ - - return yy_scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n, i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) yyalloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = yy_scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - yyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int yyget_lineno (void) -{ - - return yylineno; -} - -/** Get the input stream. - * - */ -FILE *yyget_in (void) -{ - return yyin; -} - -/** Get the output stream. - * - */ -FILE *yyget_out (void) -{ - return yyout; -} - -/** Get the length of the current token. - * - */ -yy_size_t yyget_leng (void) -{ - return yyleng; -} - -/** Get the current token. - * - */ - -char *yyget_text (void) -{ - return yytext; -} - -/** Set the current line number. - * @param line_number - * - */ -void yyset_lineno (int line_number ) -{ - - yylineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see yy_switch_to_buffer - */ -void yyset_in (FILE * in_str ) -{ - yyin = in_str ; -} - -void yyset_out (FILE * out_str ) -{ - yyout = out_str ; -} - -int yyget_debug (void) -{ - return yy_flex_debug; -} - -void yyset_debug (int bdebug ) -{ - yy_flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from yylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - yyin = stdin; - yyout = stdout; -#else - yyin = (FILE *) 0; - yyout = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * yylex_init() - */ - return 0; -} - -/* yylex_destroy is for both reentrant and non-reentrant scanners. */ -int yylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - yypop_buffer_state(); - } - - /* Destroy the stack itself. */ - yyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * yylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *yyalloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *yyrealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void yyfree (void * ptr ) -{ - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -#line 676 "util/configlexer.lex" - +#line 676 "./util/configlexer.lex" diff --git a/util/configparser.c b/util/configparser.c index e37e5551b..2b3fcb558 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -36,6 +34,10 @@ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. @@ -47,7 +49,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "3.6.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,331 +57,407 @@ /* Pure parsers. */ #define YYPURE 0 -/* Using locations. */ -#define YYLSP_NEEDED 0 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 -/* Tokens. */ + +/* First part of user prologue. */ +#line 38 "./util/configparser.y" + +#include "config.h" + +#include +#include +#include +#include +#include + +#include "util/configyyrename.h" +#include "util/config_file.h" +#include "util/net_help.h" + +int ub_c_lex(void); +void ub_c_error(const char *message); + +static void validate_respip_action(const char* action); + +/* these need to be global, otherwise they cannot be used inside yacc */ +extern struct config_parser_state* cfg_parser; + +#if 0 +#define OUTYY(s) printf s /* used ONLY when debugging */ +#else +#define OUTYY(s) +#endif + + +#line 100 "util/configparser.c" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING_ARG = 265, - VAR_FORCE_TOPLEVEL = 266, - VAR_SERVER = 267, - VAR_VERBOSITY = 268, - VAR_NUM_THREADS = 269, - VAR_PORT = 270, - VAR_OUTGOING_RANGE = 271, - VAR_INTERFACE = 272, - VAR_PREFER_IP4 = 273, - VAR_DO_IP4 = 274, - VAR_DO_IP6 = 275, - VAR_PREFER_IP6 = 276, - VAR_DO_UDP = 277, - VAR_DO_TCP = 278, - VAR_TCP_MSS = 279, - VAR_OUTGOING_TCP_MSS = 280, - VAR_TCP_IDLE_TIMEOUT = 281, - VAR_EDNS_TCP_KEEPALIVE = 282, - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, - VAR_CHROOT = 284, - VAR_USERNAME = 285, - VAR_DIRECTORY = 286, - VAR_LOGFILE = 287, - VAR_PIDFILE = 288, - VAR_MSG_CACHE_SIZE = 289, - VAR_MSG_CACHE_SLABS = 290, - VAR_NUM_QUERIES_PER_THREAD = 291, - VAR_RRSET_CACHE_SIZE = 292, - VAR_RRSET_CACHE_SLABS = 293, - VAR_OUTGOING_NUM_TCP = 294, - VAR_INFRA_HOST_TTL = 295, - VAR_INFRA_LAME_TTL = 296, - VAR_INFRA_CACHE_SLABS = 297, - VAR_INFRA_CACHE_NUMHOSTS = 298, - VAR_INFRA_CACHE_LAME_SIZE = 299, - VAR_NAME = 300, - VAR_STUB_ZONE = 301, - VAR_STUB_HOST = 302, - VAR_STUB_ADDR = 303, - VAR_TARGET_FETCH_POLICY = 304, - VAR_HARDEN_SHORT_BUFSIZE = 305, - VAR_HARDEN_LARGE_QUERIES = 306, - VAR_FORWARD_ZONE = 307, - VAR_FORWARD_HOST = 308, - VAR_FORWARD_ADDR = 309, - VAR_DO_NOT_QUERY_ADDRESS = 310, - VAR_HIDE_IDENTITY = 311, - VAR_HIDE_VERSION = 312, - VAR_IDENTITY = 313, - VAR_VERSION = 314, - VAR_HARDEN_GLUE = 315, - VAR_MODULE_CONF = 316, - VAR_TRUST_ANCHOR_FILE = 317, - VAR_TRUST_ANCHOR = 318, - VAR_VAL_OVERRIDE_DATE = 319, - VAR_BOGUS_TTL = 320, - VAR_VAL_CLEAN_ADDITIONAL = 321, - VAR_VAL_PERMISSIVE_MODE = 322, - VAR_INCOMING_NUM_TCP = 323, - VAR_MSG_BUFFER_SIZE = 324, - VAR_KEY_CACHE_SIZE = 325, - VAR_KEY_CACHE_SLABS = 326, - VAR_TRUSTED_KEYS_FILE = 327, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, - VAR_USE_SYSLOG = 329, - VAR_OUTGOING_INTERFACE = 330, - VAR_ROOT_HINTS = 331, - VAR_DO_NOT_QUERY_LOCALHOST = 332, - VAR_CACHE_MAX_TTL = 333, - VAR_HARDEN_DNSSEC_STRIPPED = 334, - VAR_ACCESS_CONTROL = 335, - VAR_LOCAL_ZONE = 336, - VAR_LOCAL_DATA = 337, - VAR_INTERFACE_AUTOMATIC = 338, - VAR_STATISTICS_INTERVAL = 339, - VAR_DO_DAEMONIZE = 340, - VAR_USE_CAPS_FOR_ID = 341, - VAR_STATISTICS_CUMULATIVE = 342, - VAR_OUTGOING_PORT_PERMIT = 343, - VAR_OUTGOING_PORT_AVOID = 344, - VAR_DLV_ANCHOR_FILE = 345, - VAR_DLV_ANCHOR = 346, - VAR_NEG_CACHE_SIZE = 347, - VAR_HARDEN_REFERRAL_PATH = 348, - VAR_PRIVATE_ADDRESS = 349, - VAR_PRIVATE_DOMAIN = 350, - VAR_REMOTE_CONTROL = 351, - VAR_CONTROL_ENABLE = 352, - VAR_CONTROL_INTERFACE = 353, - VAR_CONTROL_PORT = 354, - VAR_SERVER_KEY_FILE = 355, - VAR_SERVER_CERT_FILE = 356, - VAR_CONTROL_KEY_FILE = 357, - VAR_CONTROL_CERT_FILE = 358, - VAR_CONTROL_USE_CERT = 359, - VAR_TCP_REUSE_TIMEOUT = 360, - VAR_MAX_REUSE_TCP_QUERIES = 361, - VAR_EXTENDED_STATISTICS = 362, - VAR_LOCAL_DATA_PTR = 363, - VAR_JOSTLE_TIMEOUT = 364, - VAR_STUB_PRIME = 365, - VAR_UNWANTED_REPLY_THRESHOLD = 366, - VAR_LOG_TIME_ASCII = 367, - VAR_DOMAIN_INSECURE = 368, - VAR_PYTHON = 369, - VAR_PYTHON_SCRIPT = 370, - VAR_VAL_SIG_SKEW_MIN = 371, - VAR_VAL_SIG_SKEW_MAX = 372, - VAR_CACHE_MIN_TTL = 373, - VAR_VAL_LOG_LEVEL = 374, - VAR_AUTO_TRUST_ANCHOR_FILE = 375, - VAR_KEEP_MISSING = 376, - VAR_ADD_HOLDDOWN = 377, - VAR_DEL_HOLDDOWN = 378, - VAR_SO_RCVBUF = 379, - VAR_EDNS_BUFFER_SIZE = 380, - VAR_PREFETCH = 381, - VAR_PREFETCH_KEY = 382, - VAR_SO_SNDBUF = 383, - VAR_SO_REUSEPORT = 384, - VAR_HARDEN_BELOW_NXDOMAIN = 385, - VAR_IGNORE_CD_FLAG = 386, - VAR_LOG_QUERIES = 387, - VAR_LOG_REPLIES = 388, - VAR_LOG_LOCAL_ACTIONS = 389, - VAR_TCP_UPSTREAM = 390, - VAR_SSL_UPSTREAM = 391, - VAR_TCP_AUTH_QUERY_TIMEOUT = 392, - VAR_SSL_SERVICE_KEY = 393, - VAR_SSL_SERVICE_PEM = 394, - VAR_SSL_PORT = 395, - VAR_FORWARD_FIRST = 396, - VAR_STUB_SSL_UPSTREAM = 397, - VAR_FORWARD_SSL_UPSTREAM = 398, - VAR_TLS_CERT_BUNDLE = 399, - VAR_HTTPS_PORT = 400, - VAR_HTTP_ENDPOINT = 401, - VAR_HTTP_MAX_STREAMS = 402, - VAR_HTTP_QUERY_BUFFER_SIZE = 403, - VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, - VAR_HTTP_NODELAY = 405, - VAR_HTTP_NOTLS_DOWNSTREAM = 406, - VAR_STUB_FIRST = 407, - VAR_MINIMAL_RESPONSES = 408, - VAR_RRSET_ROUNDROBIN = 409, - VAR_MAX_UDP_SIZE = 410, - VAR_DELAY_CLOSE = 411, - VAR_UDP_CONNECT = 412, - VAR_UNBLOCK_LAN_ZONES = 413, - VAR_INSECURE_LAN_ZONES = 414, - VAR_INFRA_CACHE_MIN_RTT = 415, - VAR_INFRA_KEEP_PROBING = 416, - VAR_DNS64_PREFIX = 417, - VAR_DNS64_SYNTHALL = 418, - VAR_DNS64_IGNORE_AAAA = 419, - VAR_DNSTAP = 420, - VAR_DNSTAP_ENABLE = 421, - VAR_DNSTAP_SOCKET_PATH = 422, - VAR_DNSTAP_IP = 423, - VAR_DNSTAP_TLS = 424, - VAR_DNSTAP_TLS_SERVER_NAME = 425, - VAR_DNSTAP_TLS_CERT_BUNDLE = 426, - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, - VAR_DNSTAP_SEND_IDENTITY = 429, - VAR_DNSTAP_SEND_VERSION = 430, - VAR_DNSTAP_BIDIRECTIONAL = 431, - VAR_DNSTAP_IDENTITY = 432, - VAR_DNSTAP_VERSION = 433, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, - VAR_RESPONSE_IP_TAG = 440, - VAR_RESPONSE_IP = 441, - VAR_RESPONSE_IP_DATA = 442, - VAR_HARDEN_ALGO_DOWNGRADE = 443, - VAR_IP_TRANSPARENT = 444, - VAR_IP_DSCP = 445, - VAR_DISABLE_DNSSEC_LAME_CHECK = 446, - VAR_IP_RATELIMIT = 447, - VAR_IP_RATELIMIT_SLABS = 448, - VAR_IP_RATELIMIT_SIZE = 449, - VAR_RATELIMIT = 450, - VAR_RATELIMIT_SLABS = 451, - VAR_RATELIMIT_SIZE = 452, - VAR_RATELIMIT_FOR_DOMAIN = 453, - VAR_RATELIMIT_BELOW_DOMAIN = 454, - VAR_IP_RATELIMIT_FACTOR = 455, - VAR_RATELIMIT_FACTOR = 456, - VAR_SEND_CLIENT_SUBNET = 457, - VAR_CLIENT_SUBNET_ZONE = 458, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, - VAR_CLIENT_SUBNET_OPCODE = 460, - VAR_MAX_CLIENT_SUBNET_IPV4 = 461, - VAR_MAX_CLIENT_SUBNET_IPV6 = 462, - VAR_MIN_CLIENT_SUBNET_IPV4 = 463, - VAR_MIN_CLIENT_SUBNET_IPV6 = 464, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, - VAR_CAPS_WHITELIST = 467, - VAR_CACHE_MAX_NEGATIVE_TTL = 468, - VAR_PERMIT_SMALL_HOLDDOWN = 469, - VAR_QNAME_MINIMISATION = 470, - VAR_QNAME_MINIMISATION_STRICT = 471, - VAR_IP_FREEBIND = 472, - VAR_DEFINE_TAG = 473, - VAR_LOCAL_ZONE_TAG = 474, - VAR_ACCESS_CONTROL_TAG = 475, - VAR_LOCAL_ZONE_OVERRIDE = 476, - VAR_ACCESS_CONTROL_TAG_ACTION = 477, - VAR_ACCESS_CONTROL_TAG_DATA = 478, - VAR_VIEW = 479, - VAR_ACCESS_CONTROL_VIEW = 480, - VAR_VIEW_FIRST = 481, - VAR_SERVE_EXPIRED = 482, - VAR_SERVE_EXPIRED_TTL = 483, - VAR_SERVE_EXPIRED_TTL_RESET = 484, - VAR_SERVE_EXPIRED_REPLY_TTL = 485, - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, - VAR_SERVE_ORIGINAL_TTL = 487, - VAR_FAKE_DSA = 488, - VAR_FAKE_SHA1 = 489, - VAR_LOG_IDENTITY = 490, - VAR_HIDE_TRUSTANCHOR = 491, - VAR_TRUST_ANCHOR_SIGNALING = 492, - VAR_AGGRESSIVE_NSEC = 493, - VAR_USE_SYSTEMD = 494, - VAR_SHM_ENABLE = 495, - VAR_SHM_KEY = 496, - VAR_ROOT_KEY_SENTINEL = 497, - VAR_DNSCRYPT = 498, - VAR_DNSCRYPT_ENABLE = 499, - VAR_DNSCRYPT_PORT = 500, - VAR_DNSCRYPT_PROVIDER = 501, - VAR_DNSCRYPT_SECRET_KEY = 502, - VAR_DNSCRYPT_PROVIDER_CERT = 503, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, - VAR_PAD_RESPONSES = 509, - VAR_PAD_RESPONSES_BLOCK_SIZE = 510, - VAR_PAD_QUERIES = 511, - VAR_PAD_QUERIES_BLOCK_SIZE = 512, - VAR_IPSECMOD_ENABLED = 513, - VAR_IPSECMOD_HOOK = 514, - VAR_IPSECMOD_IGNORE_BOGUS = 515, - VAR_IPSECMOD_MAX_TTL = 516, - VAR_IPSECMOD_WHITELIST = 517, - VAR_IPSECMOD_STRICT = 518, - VAR_CACHEDB = 519, - VAR_CACHEDB_BACKEND = 520, - VAR_CACHEDB_SECRETSEED = 521, - VAR_CACHEDB_REDISHOST = 522, - VAR_CACHEDB_REDISPORT = 523, - VAR_CACHEDB_REDISTIMEOUT = 524, - VAR_CACHEDB_REDISEXPIRERECORDS = 525, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, - VAR_FOR_UPSTREAM = 527, - VAR_AUTH_ZONE = 528, - VAR_ZONEFILE = 529, - VAR_MASTER = 530, - VAR_URL = 531, - VAR_FOR_DOWNSTREAM = 532, - VAR_FALLBACK_ENABLED = 533, - VAR_TLS_ADDITIONAL_PORT = 534, - VAR_LOW_RTT = 535, - VAR_LOW_RTT_PERMIL = 536, - VAR_FAST_SERVER_PERMIL = 537, - VAR_FAST_SERVER_NUM = 538, - VAR_ALLOW_NOTIFY = 539, - VAR_TLS_WIN_CERT = 540, - VAR_TCP_CONNECTION_LIMIT = 541, - VAR_FORWARD_NO_CACHE = 542, - VAR_STUB_NO_CACHE = 543, - VAR_LOG_SERVFAIL = 544, - VAR_DENY_ANY = 545, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, - VAR_LOG_TAG_QUERYREPLY = 547, - VAR_STREAM_WAIT_SIZE = 548, - VAR_TLS_CIPHERS = 549, - VAR_TLS_CIPHERSUITES = 550, - VAR_TLS_USE_SNI = 551, - VAR_IPSET = 552, - VAR_IPSET_NAME_V4 = 553, - VAR_IPSET_NAME_V6 = 554, - VAR_TLS_SESSION_TICKET_KEYS = 555, - VAR_RPZ = 556, - VAR_TAGS = 557, - VAR_RPZ_ACTION_OVERRIDE = 558, - VAR_RPZ_CNAME_OVERRIDE = 559, - VAR_RPZ_LOG = 560, - VAR_RPZ_LOG_NAME = 561, - VAR_DYNLIB = 562, - VAR_DYNLIB_FILE = 563, - VAR_EDNS_CLIENT_STRING = 564, - VAR_EDNS_CLIENT_STRING_OPCODE = 565, - VAR_NSID = 566, - VAR_ZONEMD_PERMISSIVE_MODE = 567, - VAR_ZONEMD_REJECT_ABSENCE = 568 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 381, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 392, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 393, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 394, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 395, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 396, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 397, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 398, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 399, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 400, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 401, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 402, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 403, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 405, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 406, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 407, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 408, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 409, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 410, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 411, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 412, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 413, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 414, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 415, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 416, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 417, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 418, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 419, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 420, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 421, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 422, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 423, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 424, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 425, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 426, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 429, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 430, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 431, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 432, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 433, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 440, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 441, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 442, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 443, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 444, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 445, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 446, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 447, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 448, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 449, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 450, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 451, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 452, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 453, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 454, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 455, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 456, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 457, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 458, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 460, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 467, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 468, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 469, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 470, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 471, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 472, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 473, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 474, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 475, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 476, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 477, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 478, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 479, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 480, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 481, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 482, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 483, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 484, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 485, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 487, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 488, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 489, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 490, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 491, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 492, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 493, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 494, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 495, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 496, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 497, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 498, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 499, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 500, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 501, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 502, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 503, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 509, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 510, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 511, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 512, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 513, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 514, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 515, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 516, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 517, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 518, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 519, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 520, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 521, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 522, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 523, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 524, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 525, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 527, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 528, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 529, /* VAR_ZONEFILE */ + VAR_MASTER = 530, /* VAR_MASTER */ + VAR_URL = 531, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 532, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 533, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 534, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 535, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 536, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 537, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 538, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 539, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 540, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 541, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 542, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 543, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 544, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 545, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 547, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 548, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 549, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 550, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 551, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 552, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 553, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 554, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 555, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 556, /* VAR_RPZ */ + VAR_TAGS = 557, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 558, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 559, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 560, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 561, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 562, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 563, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 564, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 566, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_REJECT_ABSENCE = 568 /* VAR_ZONEMD_REJECT_ABSENCE */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@ -692,109 +770,764 @@ #define VAR_ZONEMD_PERMISSIVE_MODE 567 #define VAR_ZONEMD_REJECT_ABSENCE 568 - - - -/* Copy the first part of user declarations. */ -#line 38 "util/configparser.y" - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "util/configyyrename.h" -#include "util/config_file.h" -#include "util/net_help.h" - -int ub_c_lex(void); -void ub_c_error(const char *message); - -static void validate_respip_action(const char* action); - -/* these need to be global, otherwise they cannot be used inside yacc */ -extern struct config_parser_state* cfg_parser; - -#if 0 -#define OUTYY(s) printf s /* used ONLY when debugging */ -#else -#define OUTYY(s) -#endif - - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif - -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 66 "util/configparser.y" +union YYSTYPE { +#line 66 "./util/configparser.y" + char* str; -} -/* Line 193 of yacc.c. */ -#line 755 "util/configparser.c" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 782 "util/configparser.c" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif +extern YYSTYPE yylval; + +int yyparse (void); + +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_SPACE = 3, /* SPACE */ + YYSYMBOL_LETTER = 4, /* LETTER */ + YYSYMBOL_NEWLINE = 5, /* NEWLINE */ + YYSYMBOL_COMMENT = 6, /* COMMENT */ + YYSYMBOL_COLON = 7, /* COLON */ + YYSYMBOL_ANY = 8, /* ANY */ + YYSYMBOL_ZONESTR = 9, /* ZONESTR */ + YYSYMBOL_STRING_ARG = 10, /* STRING_ARG */ + YYSYMBOL_VAR_FORCE_TOPLEVEL = 11, /* VAR_FORCE_TOPLEVEL */ + YYSYMBOL_VAR_SERVER = 12, /* VAR_SERVER */ + YYSYMBOL_VAR_VERBOSITY = 13, /* VAR_VERBOSITY */ + YYSYMBOL_VAR_NUM_THREADS = 14, /* VAR_NUM_THREADS */ + YYSYMBOL_VAR_PORT = 15, /* VAR_PORT */ + YYSYMBOL_VAR_OUTGOING_RANGE = 16, /* VAR_OUTGOING_RANGE */ + YYSYMBOL_VAR_INTERFACE = 17, /* VAR_INTERFACE */ + YYSYMBOL_VAR_PREFER_IP4 = 18, /* VAR_PREFER_IP4 */ + YYSYMBOL_VAR_DO_IP4 = 19, /* VAR_DO_IP4 */ + YYSYMBOL_VAR_DO_IP6 = 20, /* VAR_DO_IP6 */ + YYSYMBOL_VAR_PREFER_IP6 = 21, /* VAR_PREFER_IP6 */ + YYSYMBOL_VAR_DO_UDP = 22, /* VAR_DO_UDP */ + YYSYMBOL_VAR_DO_TCP = 23, /* VAR_DO_TCP */ + YYSYMBOL_VAR_TCP_MSS = 24, /* VAR_TCP_MSS */ + YYSYMBOL_VAR_OUTGOING_TCP_MSS = 25, /* VAR_OUTGOING_TCP_MSS */ + YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 26, /* VAR_TCP_IDLE_TIMEOUT */ + YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 27, /* VAR_EDNS_TCP_KEEPALIVE */ + YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 28, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + YYSYMBOL_VAR_CHROOT = 29, /* VAR_CHROOT */ + YYSYMBOL_VAR_USERNAME = 30, /* VAR_USERNAME */ + YYSYMBOL_VAR_DIRECTORY = 31, /* VAR_DIRECTORY */ + YYSYMBOL_VAR_LOGFILE = 32, /* VAR_LOGFILE */ + YYSYMBOL_VAR_PIDFILE = 33, /* VAR_PIDFILE */ + YYSYMBOL_VAR_MSG_CACHE_SIZE = 34, /* VAR_MSG_CACHE_SIZE */ + YYSYMBOL_VAR_MSG_CACHE_SLABS = 35, /* VAR_MSG_CACHE_SLABS */ + YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 36, /* VAR_NUM_QUERIES_PER_THREAD */ + YYSYMBOL_VAR_RRSET_CACHE_SIZE = 37, /* VAR_RRSET_CACHE_SIZE */ + YYSYMBOL_VAR_RRSET_CACHE_SLABS = 38, /* VAR_RRSET_CACHE_SLABS */ + YYSYMBOL_VAR_OUTGOING_NUM_TCP = 39, /* VAR_OUTGOING_NUM_TCP */ + YYSYMBOL_VAR_INFRA_HOST_TTL = 40, /* VAR_INFRA_HOST_TTL */ + YYSYMBOL_VAR_INFRA_LAME_TTL = 41, /* VAR_INFRA_LAME_TTL */ + YYSYMBOL_VAR_INFRA_CACHE_SLABS = 42, /* VAR_INFRA_CACHE_SLABS */ + YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 43, /* VAR_INFRA_CACHE_NUMHOSTS */ + YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 44, /* VAR_INFRA_CACHE_LAME_SIZE */ + YYSYMBOL_VAR_NAME = 45, /* VAR_NAME */ + YYSYMBOL_VAR_STUB_ZONE = 46, /* VAR_STUB_ZONE */ + YYSYMBOL_VAR_STUB_HOST = 47, /* VAR_STUB_HOST */ + YYSYMBOL_VAR_STUB_ADDR = 48, /* VAR_STUB_ADDR */ + YYSYMBOL_VAR_TARGET_FETCH_POLICY = 49, /* VAR_TARGET_FETCH_POLICY */ + YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 50, /* VAR_HARDEN_SHORT_BUFSIZE */ + YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 51, /* VAR_HARDEN_LARGE_QUERIES */ + YYSYMBOL_VAR_FORWARD_ZONE = 52, /* VAR_FORWARD_ZONE */ + YYSYMBOL_VAR_FORWARD_HOST = 53, /* VAR_FORWARD_HOST */ + YYSYMBOL_VAR_FORWARD_ADDR = 54, /* VAR_FORWARD_ADDR */ + YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 55, /* VAR_DO_NOT_QUERY_ADDRESS */ + YYSYMBOL_VAR_HIDE_IDENTITY = 56, /* VAR_HIDE_IDENTITY */ + YYSYMBOL_VAR_HIDE_VERSION = 57, /* VAR_HIDE_VERSION */ + YYSYMBOL_VAR_IDENTITY = 58, /* VAR_IDENTITY */ + YYSYMBOL_VAR_VERSION = 59, /* VAR_VERSION */ + YYSYMBOL_VAR_HARDEN_GLUE = 60, /* VAR_HARDEN_GLUE */ + YYSYMBOL_VAR_MODULE_CONF = 61, /* VAR_MODULE_CONF */ + YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 62, /* VAR_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_TRUST_ANCHOR = 63, /* VAR_TRUST_ANCHOR */ + YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 64, /* VAR_VAL_OVERRIDE_DATE */ + YYSYMBOL_VAR_BOGUS_TTL = 65, /* VAR_BOGUS_TTL */ + YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 66, /* VAR_VAL_CLEAN_ADDITIONAL */ + YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 67, /* VAR_VAL_PERMISSIVE_MODE */ + YYSYMBOL_VAR_INCOMING_NUM_TCP = 68, /* VAR_INCOMING_NUM_TCP */ + YYSYMBOL_VAR_MSG_BUFFER_SIZE = 69, /* VAR_MSG_BUFFER_SIZE */ + YYSYMBOL_VAR_KEY_CACHE_SIZE = 70, /* VAR_KEY_CACHE_SIZE */ + YYSYMBOL_VAR_KEY_CACHE_SLABS = 71, /* VAR_KEY_CACHE_SLABS */ + YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 72, /* VAR_TRUSTED_KEYS_FILE */ + YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 73, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + YYSYMBOL_VAR_USE_SYSLOG = 74, /* VAR_USE_SYSLOG */ + YYSYMBOL_VAR_OUTGOING_INTERFACE = 75, /* VAR_OUTGOING_INTERFACE */ + YYSYMBOL_VAR_ROOT_HINTS = 76, /* VAR_ROOT_HINTS */ + YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 77, /* VAR_DO_NOT_QUERY_LOCALHOST */ + YYSYMBOL_VAR_CACHE_MAX_TTL = 78, /* VAR_CACHE_MAX_TTL */ + YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 79, /* VAR_HARDEN_DNSSEC_STRIPPED */ + YYSYMBOL_VAR_ACCESS_CONTROL = 80, /* VAR_ACCESS_CONTROL */ + YYSYMBOL_VAR_LOCAL_ZONE = 81, /* VAR_LOCAL_ZONE */ + YYSYMBOL_VAR_LOCAL_DATA = 82, /* VAR_LOCAL_DATA */ + YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 83, /* VAR_INTERFACE_AUTOMATIC */ + YYSYMBOL_VAR_STATISTICS_INTERVAL = 84, /* VAR_STATISTICS_INTERVAL */ + YYSYMBOL_VAR_DO_DAEMONIZE = 85, /* VAR_DO_DAEMONIZE */ + YYSYMBOL_VAR_USE_CAPS_FOR_ID = 86, /* VAR_USE_CAPS_FOR_ID */ + YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 87, /* VAR_STATISTICS_CUMULATIVE */ + YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 88, /* VAR_OUTGOING_PORT_PERMIT */ + YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 89, /* VAR_OUTGOING_PORT_AVOID */ + YYSYMBOL_VAR_DLV_ANCHOR_FILE = 90, /* VAR_DLV_ANCHOR_FILE */ + YYSYMBOL_VAR_DLV_ANCHOR = 91, /* VAR_DLV_ANCHOR */ + YYSYMBOL_VAR_NEG_CACHE_SIZE = 92, /* VAR_NEG_CACHE_SIZE */ + YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 93, /* VAR_HARDEN_REFERRAL_PATH */ + YYSYMBOL_VAR_PRIVATE_ADDRESS = 94, /* VAR_PRIVATE_ADDRESS */ + YYSYMBOL_VAR_PRIVATE_DOMAIN = 95, /* VAR_PRIVATE_DOMAIN */ + YYSYMBOL_VAR_REMOTE_CONTROL = 96, /* VAR_REMOTE_CONTROL */ + YYSYMBOL_VAR_CONTROL_ENABLE = 97, /* VAR_CONTROL_ENABLE */ + YYSYMBOL_VAR_CONTROL_INTERFACE = 98, /* VAR_CONTROL_INTERFACE */ + YYSYMBOL_VAR_CONTROL_PORT = 99, /* VAR_CONTROL_PORT */ + YYSYMBOL_VAR_SERVER_KEY_FILE = 100, /* VAR_SERVER_KEY_FILE */ + YYSYMBOL_VAR_SERVER_CERT_FILE = 101, /* VAR_SERVER_CERT_FILE */ + YYSYMBOL_VAR_CONTROL_KEY_FILE = 102, /* VAR_CONTROL_KEY_FILE */ + YYSYMBOL_VAR_CONTROL_CERT_FILE = 103, /* VAR_CONTROL_CERT_FILE */ + YYSYMBOL_VAR_CONTROL_USE_CERT = 104, /* VAR_CONTROL_USE_CERT */ + YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 105, /* VAR_TCP_REUSE_TIMEOUT */ + YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 106, /* VAR_MAX_REUSE_TCP_QUERIES */ + YYSYMBOL_VAR_EXTENDED_STATISTICS = 107, /* VAR_EXTENDED_STATISTICS */ + YYSYMBOL_VAR_LOCAL_DATA_PTR = 108, /* VAR_LOCAL_DATA_PTR */ + YYSYMBOL_VAR_JOSTLE_TIMEOUT = 109, /* VAR_JOSTLE_TIMEOUT */ + YYSYMBOL_VAR_STUB_PRIME = 110, /* VAR_STUB_PRIME */ + YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 111, /* VAR_UNWANTED_REPLY_THRESHOLD */ + YYSYMBOL_VAR_LOG_TIME_ASCII = 112, /* VAR_LOG_TIME_ASCII */ + YYSYMBOL_VAR_DOMAIN_INSECURE = 113, /* VAR_DOMAIN_INSECURE */ + YYSYMBOL_VAR_PYTHON = 114, /* VAR_PYTHON */ + YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ + YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ + YYSYMBOL_VAR_CACHE_MIN_TTL = 118, /* VAR_CACHE_MIN_TTL */ + YYSYMBOL_VAR_VAL_LOG_LEVEL = 119, /* VAR_VAL_LOG_LEVEL */ + YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 120, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_KEEP_MISSING = 121, /* VAR_KEEP_MISSING */ + YYSYMBOL_VAR_ADD_HOLDDOWN = 122, /* VAR_ADD_HOLDDOWN */ + YYSYMBOL_VAR_DEL_HOLDDOWN = 123, /* VAR_DEL_HOLDDOWN */ + YYSYMBOL_VAR_SO_RCVBUF = 124, /* VAR_SO_RCVBUF */ + YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 125, /* VAR_EDNS_BUFFER_SIZE */ + YYSYMBOL_VAR_PREFETCH = 126, /* VAR_PREFETCH */ + YYSYMBOL_VAR_PREFETCH_KEY = 127, /* VAR_PREFETCH_KEY */ + YYSYMBOL_VAR_SO_SNDBUF = 128, /* VAR_SO_SNDBUF */ + YYSYMBOL_VAR_SO_REUSEPORT = 129, /* VAR_SO_REUSEPORT */ + YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 130, /* VAR_HARDEN_BELOW_NXDOMAIN */ + YYSYMBOL_VAR_IGNORE_CD_FLAG = 131, /* VAR_IGNORE_CD_FLAG */ + YYSYMBOL_VAR_LOG_QUERIES = 132, /* VAR_LOG_QUERIES */ + YYSYMBOL_VAR_LOG_REPLIES = 133, /* VAR_LOG_REPLIES */ + YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 134, /* VAR_LOG_LOCAL_ACTIONS */ + YYSYMBOL_VAR_TCP_UPSTREAM = 135, /* VAR_TCP_UPSTREAM */ + YYSYMBOL_VAR_SSL_UPSTREAM = 136, /* VAR_SSL_UPSTREAM */ + YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 137, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + YYSYMBOL_VAR_SSL_SERVICE_KEY = 138, /* VAR_SSL_SERVICE_KEY */ + YYSYMBOL_VAR_SSL_SERVICE_PEM = 139, /* VAR_SSL_SERVICE_PEM */ + YYSYMBOL_VAR_SSL_PORT = 140, /* VAR_SSL_PORT */ + YYSYMBOL_VAR_FORWARD_FIRST = 141, /* VAR_FORWARD_FIRST */ + YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 142, /* VAR_STUB_SSL_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 143, /* VAR_FORWARD_SSL_UPSTREAM */ + YYSYMBOL_VAR_TLS_CERT_BUNDLE = 144, /* VAR_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_HTTPS_PORT = 145, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 146, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 147, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 148, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 149, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 150, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 151, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 152, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 153, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 154, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 155, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 156, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 157, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 158, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 159, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 160, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 161, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 162, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 163, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 164, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 165, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 166, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 167, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 168, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 169, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 170, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 171, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 172, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 173, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 174, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 175, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 176, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 177, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 178, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 179, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 180, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 181, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 182, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 183, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 184, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 185, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 186, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 187, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 188, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 189, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 190, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 191, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 192, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 193, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 194, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 195, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 196, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 197, /* VAR_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 198, /* VAR_RATELIMIT_FOR_DOMAIN */ + YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 199, /* VAR_RATELIMIT_BELOW_DOMAIN */ + YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 200, /* VAR_IP_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_RATELIMIT_FACTOR = 201, /* VAR_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 202, /* VAR_SEND_CLIENT_SUBNET */ + YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 203, /* VAR_CLIENT_SUBNET_ZONE */ + YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 204, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 205, /* VAR_CLIENT_SUBNET_OPCODE */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 206, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 207, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 208, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 209, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 210, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 211, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + YYSYMBOL_VAR_CAPS_WHITELIST = 212, /* VAR_CAPS_WHITELIST */ + YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 213, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 214, /* VAR_PERMIT_SMALL_HOLDDOWN */ + YYSYMBOL_VAR_QNAME_MINIMISATION = 215, /* VAR_QNAME_MINIMISATION */ + YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 216, /* VAR_QNAME_MINIMISATION_STRICT */ + YYSYMBOL_VAR_IP_FREEBIND = 217, /* VAR_IP_FREEBIND */ + YYSYMBOL_VAR_DEFINE_TAG = 218, /* VAR_DEFINE_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_TAG = 219, /* VAR_LOCAL_ZONE_TAG */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 220, /* VAR_ACCESS_CONTROL_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 221, /* VAR_LOCAL_ZONE_OVERRIDE */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 222, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 223, /* VAR_ACCESS_CONTROL_TAG_DATA */ + YYSYMBOL_VAR_VIEW = 224, /* VAR_VIEW */ + YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 225, /* VAR_ACCESS_CONTROL_VIEW */ + YYSYMBOL_VAR_VIEW_FIRST = 226, /* VAR_VIEW_FIRST */ + YYSYMBOL_VAR_SERVE_EXPIRED = 227, /* VAR_SERVE_EXPIRED */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 228, /* VAR_SERVE_EXPIRED_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 229, /* VAR_SERVE_EXPIRED_TTL_RESET */ + YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 230, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 231, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 232, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 233, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 234, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 235, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 236, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 237, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 238, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 239, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 240, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 241, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 242, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 243, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 244, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 245, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 246, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 247, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 248, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 249, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 250, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 251, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 252, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 253, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 254, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 255, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 256, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 257, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 258, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 259, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 260, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 261, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 262, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 263, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 264, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 265, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 266, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 267, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 268, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 269, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 270, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 271, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 272, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 273, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 274, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 275, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 276, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 277, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 278, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 279, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 280, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 281, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 282, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 283, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 284, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 285, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 286, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 287, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 288, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 289, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 290, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 291, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 292, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 293, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 294, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 295, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 296, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 297, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 298, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 299, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 300, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 301, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 302, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 303, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 304, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 305, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 306, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 307, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 308, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 309, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 310, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 311, /* VAR_NSID */ + YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 312, /* VAR_ZONEMD_PERMISSIVE_MODE */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 313, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 314, /* $accept */ + YYSYMBOL_toplevelvars = 315, /* toplevelvars */ + YYSYMBOL_toplevelvar = 316, /* toplevelvar */ + YYSYMBOL_force_toplevel = 317, /* force_toplevel */ + YYSYMBOL_serverstart = 318, /* serverstart */ + YYSYMBOL_contents_server = 319, /* contents_server */ + YYSYMBOL_content_server = 320, /* content_server */ + YYSYMBOL_stubstart = 321, /* stubstart */ + YYSYMBOL_contents_stub = 322, /* contents_stub */ + YYSYMBOL_content_stub = 323, /* content_stub */ + YYSYMBOL_forwardstart = 324, /* forwardstart */ + YYSYMBOL_contents_forward = 325, /* contents_forward */ + YYSYMBOL_content_forward = 326, /* content_forward */ + YYSYMBOL_viewstart = 327, /* viewstart */ + YYSYMBOL_contents_view = 328, /* contents_view */ + YYSYMBOL_content_view = 329, /* content_view */ + YYSYMBOL_authstart = 330, /* authstart */ + YYSYMBOL_contents_auth = 331, /* contents_auth */ + YYSYMBOL_content_auth = 332, /* content_auth */ + YYSYMBOL_rpz_tag = 333, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 334, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 335, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 336, /* rpz_log */ + YYSYMBOL_rpz_log_name = 337, /* rpz_log_name */ + YYSYMBOL_rpzstart = 338, /* rpzstart */ + YYSYMBOL_contents_rpz = 339, /* contents_rpz */ + YYSYMBOL_content_rpz = 340, /* content_rpz */ + YYSYMBOL_server_num_threads = 341, /* server_num_threads */ + YYSYMBOL_server_verbosity = 342, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 343, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 344, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 345, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 346, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 347, /* server_shm_key */ + YYSYMBOL_server_port = 348, /* server_port */ + YYSYMBOL_server_send_client_subnet = 349, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 350, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 351, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 352, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 353, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 354, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 355, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 356, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 357, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 358, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 359, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 360, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 361, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 362, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 363, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 364, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 365, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 366, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 367, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 368, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 369, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 370, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 371, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 372, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 373, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 374, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 375, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 376, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 377, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_auth_query_timeout = 378, /* server_tcp_auth_query_timeout */ + YYSYMBOL_server_tcp_keepalive = 379, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 380, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 381, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 382, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 383, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 384, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 385, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 386, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 387, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 388, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 389, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 390, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 391, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 392, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 393, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 394, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 395, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 396, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 397, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 398, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 399, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 400, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 401, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 402, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 403, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 404, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 405, /* server_log_queries */ + YYSYMBOL_server_log_replies = 406, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 407, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 408, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 409, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 410, /* server_chroot */ + YYSYMBOL_server_username = 411, /* server_username */ + YYSYMBOL_server_directory = 412, /* server_directory */ + YYSYMBOL_server_logfile = 413, /* server_logfile */ + YYSYMBOL_server_pidfile = 414, /* server_pidfile */ + YYSYMBOL_server_root_hints = 415, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 416, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 417, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 418, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 419, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 420, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 421, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 422, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 423, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 424, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 425, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 426, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 427, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 428, /* server_identity */ + YYSYMBOL_server_version = 429, /* server_version */ + YYSYMBOL_server_nsid = 430, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 431, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 432, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 433, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 434, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 435, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 436, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 437, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 438, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 439, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 440, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 441, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 442, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 443, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 444, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 445, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 446, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 447, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 448, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 449, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 450, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 451, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 452, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 453, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 454, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 455, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 456, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 457, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 458, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 459, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 460, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 461, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 462, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 463, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 464, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 465, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 466, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 467, /* server_private_address */ + YYSYMBOL_server_private_domain = 468, /* server_private_domain */ + YYSYMBOL_server_prefetch = 469, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 470, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 471, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 472, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 473, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 474, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 475, /* server_access_control */ + YYSYMBOL_server_module_conf = 476, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 477, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 478, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 479, /* server_val_sig_skew_max */ + YYSYMBOL_server_cache_max_ttl = 480, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 481, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 482, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 483, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 484, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 485, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 486, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 487, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 488, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 489, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 490, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 491, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 492, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 493, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 494, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 495, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 496, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 497, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 498, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 499, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 500, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 501, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 502, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 503, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 504, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 505, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 506, /* server_local_zone */ + YYSYMBOL_server_local_data = 507, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 508, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 509, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 510, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 511, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 512, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 513, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 514, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 515, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 516, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 517, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 518, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 519, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 520, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 521, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 522, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 523, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 524, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 525, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 526, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 527, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 528, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 529, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 530, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 531, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 532, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 533, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 534, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 535, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 536, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 537, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 538, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 539, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 540, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 541, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 542, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 543, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 544, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 545, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 546, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 547, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 548, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 549, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 550, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 551, /* stub_name */ + YYSYMBOL_stub_host = 552, /* stub_host */ + YYSYMBOL_stub_addr = 553, /* stub_addr */ + YYSYMBOL_stub_first = 554, /* stub_first */ + YYSYMBOL_stub_no_cache = 555, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 556, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 557, /* stub_prime */ + YYSYMBOL_forward_name = 558, /* forward_name */ + YYSYMBOL_forward_host = 559, /* forward_host */ + YYSYMBOL_forward_addr = 560, /* forward_addr */ + YYSYMBOL_forward_first = 561, /* forward_first */ + YYSYMBOL_forward_no_cache = 562, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 563, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 564, /* auth_name */ + YYSYMBOL_auth_zonefile = 565, /* auth_zonefile */ + YYSYMBOL_auth_master = 566, /* auth_master */ + YYSYMBOL_auth_url = 567, /* auth_url */ + YYSYMBOL_auth_allow_notify = 568, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_reject_absence = 569, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 570, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 571, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 572, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 573, /* view_name */ + YYSYMBOL_view_local_zone = 574, /* view_local_zone */ + YYSYMBOL_view_response_ip = 575, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 576, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 577, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 578, /* view_local_data_ptr */ + YYSYMBOL_view_first = 579, /* view_first */ + YYSYMBOL_rcstart = 580, /* rcstart */ + YYSYMBOL_contents_rc = 581, /* contents_rc */ + YYSYMBOL_content_rc = 582, /* content_rc */ + YYSYMBOL_rc_control_enable = 583, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 584, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 585, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 586, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 587, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 588, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 589, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 590, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 591, /* dtstart */ + YYSYMBOL_contents_dt = 592, /* contents_dt */ + YYSYMBOL_content_dt = 593, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 594, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 595, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 596, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 597, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 598, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 599, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 600, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 601, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 602, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 603, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 604, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 605, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 606, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 607, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 608, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 609, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 610, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 611, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 612, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 613, /* pythonstart */ + YYSYMBOL_contents_py = 614, /* contents_py */ + YYSYMBOL_content_py = 615, /* content_py */ + YYSYMBOL_py_script = 616, /* py_script */ + YYSYMBOL_dynlibstart = 617, /* dynlibstart */ + YYSYMBOL_contents_dl = 618, /* contents_dl */ + YYSYMBOL_content_dl = 619, /* content_dl */ + YYSYMBOL_dl_file = 620, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 621, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 622, /* server_log_identity */ + YYSYMBOL_server_response_ip = 623, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 624, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 625, /* dnscstart */ + YYSYMBOL_contents_dnsc = 626, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 627, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 628, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 629, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 630, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 631, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 632, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 633, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 634, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 635, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 636, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 637, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 638, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 639, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 640, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 641, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 642, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 643, /* redis_server_host */ + YYSYMBOL_redis_server_port = 644, /* redis_server_port */ + YYSYMBOL_redis_timeout = 645, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 646, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 647, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 648, /* ipsetstart */ + YYSYMBOL_contents_ipset = 649, /* contents_ipset */ + YYSYMBOL_content_ipset = 650, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 651, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 652 /* ipset_name_v6 */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; -/* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 768 "util/configparser.c" #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; -#elif (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else typedef signed char yytype_int8; -#else -typedef short int yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short int yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -802,55 +1535,100 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif -/* Identity function, used to suppress warnings about constant conditions. */ -#ifndef lint -# define YYID(n) (n) +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") #else -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static int -YYID (int i) -#else -static int -YYID (i) - int i; +# define YY_INITIAL_VALUE(Value) Value #endif -{ - return i; -} +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if ! defined yyoverflow || YYERROR_VERBOSE +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -867,11 +1645,11 @@ YYID (i) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -879,8 +1657,8 @@ YYID (i) # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -894,88 +1672,89 @@ YYID (i) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) +# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif -#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ - +#endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (YYID (0)) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ @@ -987,18 +1766,22 @@ union yyalloc #define YYNNTS 339 /* YYNRULES -- Number of rules. */ #define YYNRULES 654 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 972 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -#define YYUNDEFTOK 2 #define YYMAXUTOK 568 -#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const yytype_uint16 yytranslate[] = +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1060,249 +1843,8 @@ static const yytype_uint16 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 7, 10, 13, 16, 19, 22, - 25, 28, 31, 34, 37, 40, 43, 46, 48, 50, - 52, 55, 56, 58, 60, 62, 64, 66, 68, 70, - 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, - 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, - 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, - 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, - 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, - 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, - 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, - 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, - 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, - 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, - 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, - 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, - 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, - 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, - 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, - 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, - 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, - 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, - 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, - 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, - 472, 474, 476, 478, 480, 482, 484, 486, 488, 491, - 492, 494, 496, 498, 500, 502, 504, 506, 508, 511, - 512, 514, 516, 518, 520, 522, 524, 526, 529, 530, - 532, 534, 536, 538, 540, 542, 544, 546, 549, 550, - 552, 554, 556, 558, 560, 562, 564, 566, 568, 571, - 574, 577, 580, 583, 585, 588, 589, 591, 593, 595, - 597, 599, 601, 603, 605, 607, 609, 612, 615, 618, - 621, 624, 627, 630, 633, 636, 639, 642, 645, 648, - 651, 654, 657, 660, 663, 666, 669, 672, 675, 678, - 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, - 711, 714, 717, 720, 723, 726, 729, 732, 735, 738, - 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, - 771, 774, 777, 780, 783, 786, 789, 792, 795, 798, - 801, 804, 807, 810, 813, 816, 819, 822, 825, 828, - 831, 834, 837, 840, 843, 846, 849, 852, 855, 858, - 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, - 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, - 921, 924, 927, 930, 933, 936, 939, 942, 945, 948, - 951, 954, 957, 960, 963, 966, 969, 972, 975, 978, - 981, 984, 987, 990, 993, 996, 999, 1002, 1005, 1008, - 1011, 1015, 1018, 1021, 1024, 1027, 1030, 1033, 1036, 1039, - 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, 1066, 1069, - 1072, 1075, 1078, 1081, 1084, 1087, 1090, 1093, 1096, 1099, - 1102, 1105, 1109, 1112, 1115, 1118, 1121, 1124, 1127, 1130, - 1133, 1136, 1139, 1143, 1147, 1152, 1157, 1162, 1166, 1170, - 1173, 1176, 1179, 1182, 1185, 1188, 1192, 1196, 1199, 1202, - 1205, 1208, 1211, 1214, 1217, 1220, 1223, 1226, 1229, 1232, - 1235, 1238, 1241, 1244, 1247, 1251, 1254, 1257, 1260, 1263, - 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1287, 1290, 1293, - 1296, 1299, 1302, 1305, 1308, 1311, 1314, 1317, 1320, 1323, - 1327, 1331, 1335, 1338, 1341, 1344, 1346, 1349, 1350, 1352, - 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1369, 1372, 1375, - 1378, 1381, 1384, 1387, 1390, 1392, 1395, 1396, 1398, 1400, - 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, - 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1437, 1440, 1443, - 1446, 1449, 1452, 1455, 1458, 1461, 1464, 1467, 1470, 1473, - 1476, 1479, 1482, 1485, 1488, 1491, 1493, 1496, 1497, 1499, - 1502, 1504, 1507, 1508, 1510, 1513, 1516, 1519, 1523, 1527, - 1529, 1532, 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547, - 1549, 1551, 1553, 1556, 1559, 1562, 1565, 1568, 1571, 1574, - 1577, 1580, 1583, 1585, 1588, 1589, 1591, 1593, 1595, 1597, - 1599, 1601, 1604, 1607, 1610, 1613, 1616, 1619, 1623, 1625, - 1628, 1629, 1631, 1633, 1636 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 315, 0, -1, -1, 315, 316, -1, 318, 319, -1, - 321, 322, -1, 324, 325, -1, 613, 614, -1, 580, - 581, -1, 591, 592, -1, 327, 328, -1, 625, 626, - -1, 638, 639, -1, 648, 649, -1, 330, 331, -1, - 338, 339, -1, 617, 618, -1, 317, -1, 11, -1, - 12, -1, 319, 320, -1, -1, 341, -1, 342, -1, - 348, -1, 361, -1, 367, -1, 368, -1, 371, -1, - 372, -1, 369, -1, 370, -1, 373, -1, 374, -1, - 375, -1, 379, -1, 380, -1, 359, -1, 410, -1, - 411, -1, 412, -1, 413, -1, 414, -1, 440, -1, - 441, -1, 442, -1, 448, -1, 449, -1, 364, -1, - 450, -1, 451, -1, 454, -1, 452, -1, 453, -1, - 457, -1, 458, -1, 459, -1, 473, -1, 425, -1, - 426, -1, 428, -1, 429, -1, 460, -1, 476, -1, - 419, -1, 421, -1, 477, -1, 483, -1, 484, -1, - 485, -1, 365, -1, 439, -1, 503, -1, 504, -1, - 420, -1, 497, -1, 403, -1, 360, -1, 415, -1, - 474, -1, 480, -1, 461, -1, 475, -1, 506, -1, - 507, -1, 366, -1, 343, -1, 402, -1, 465, -1, - 344, -1, 362, -1, 363, -1, 416, -1, 417, -1, - 505, -1, 463, -1, 467, -1, 468, -1, 345, -1, - 508, -1, 443, -1, 472, -1, 404, -1, 424, -1, - 478, -1, 479, -1, 482, -1, 496, -1, 418, -1, - 499, -1, 500, -1, 501, -1, 431, -1, 438, -1, - 469, -1, 470, -1, 432, -1, 462, -1, 487, -1, - 405, -1, 406, -1, 381, -1, 383, -1, 409, -1, - 384, -1, 385, -1, 386, -1, 394, -1, 395, -1, - 396, -1, 397, -1, 398, -1, 399, -1, 400, -1, - 509, -1, 510, -1, 512, -1, 433, -1, 444, -1, - 445, -1, 446, -1, 447, -1, 513, -1, 514, -1, - 515, -1, 455, -1, 464, -1, 434, -1, 524, -1, - 525, -1, 436, -1, 456, -1, 528, -1, 529, -1, - 526, -1, 527, -1, 530, -1, 531, -1, 533, -1, - 532, -1, 349, -1, 350, -1, 351, -1, 352, -1, - 353, -1, 354, -1, 355, -1, 356, -1, 357, -1, - 358, -1, 466, -1, 481, -1, 502, -1, 537, -1, - 435, -1, 516, -1, 517, -1, 621, -1, 518, -1, - 521, -1, 519, -1, 520, -1, 522, -1, 538, -1, - 539, -1, 540, -1, 541, -1, 542, -1, 488, -1, - 489, -1, 490, -1, 491, -1, 492, -1, 493, -1, - 494, -1, 622, -1, 401, -1, 523, -1, 623, -1, - 624, -1, 346, -1, 347, -1, 495, -1, 427, -1, - 422, -1, 423, -1, 543, -1, 545, -1, 544, -1, - 546, -1, 547, -1, 548, -1, 382, -1, 486, -1, - 387, -1, 389, -1, 534, -1, 536, -1, 535, -1, - 388, -1, 647, -1, 408, -1, 471, -1, 511, -1, - 407, -1, 437, -1, 390, -1, 391, -1, 392, -1, - 393, -1, 549, -1, 550, -1, 430, -1, 498, -1, - 376, -1, 377, -1, 378, -1, 46, -1, 322, 323, - -1, -1, 551, -1, 552, -1, 553, -1, 557, -1, - 554, -1, 555, -1, 556, -1, 52, -1, 325, 326, - -1, -1, 558, -1, 559, -1, 560, -1, 561, -1, - 562, -1, 563, -1, 224, -1, 328, 329, -1, -1, - 573, -1, 574, -1, 577, -1, 579, -1, 575, -1, - 576, -1, 578, -1, 273, -1, 331, 332, -1, -1, - 564, -1, 565, -1, 566, -1, 567, -1, 570, -1, - 571, -1, 572, -1, 568, -1, 569, -1, 302, 10, - -1, 303, 10, -1, 304, 10, -1, 305, 10, -1, - 306, 10, -1, 301, -1, 339, 340, -1, -1, 564, - -1, 565, -1, 333, -1, 566, -1, 567, -1, 568, - -1, 334, -1, 335, -1, 336, -1, 337, -1, 14, - 10, -1, 13, 10, -1, 84, 10, -1, 87, 10, - -1, 107, 10, -1, 240, 10, -1, 241, 10, -1, - 15, 10, -1, 202, 10, -1, 203, 10, -1, 204, - 10, -1, 205, 10, -1, 206, 10, -1, 207, 10, - -1, 208, 10, -1, 209, 10, -1, 210, 10, -1, - 211, 10, -1, 17, 10, -1, 75, 10, -1, 16, - 10, -1, 88, 10, -1, 89, 10, -1, 39, 10, - -1, 68, 10, -1, 83, 10, -1, 19, 10, -1, - 20, 10, -1, 22, 10, -1, 23, 10, -1, 18, - 10, -1, 21, 10, -1, 24, 10, -1, 25, 10, - -1, 26, 10, -1, 106, 10, -1, 105, 10, -1, - 137, 10, -1, 27, 10, -1, 28, 10, -1, 135, - 10, -1, 271, 10, -1, 136, 10, -1, 138, 10, - -1, 139, 10, -1, 140, 10, -1, 144, 10, -1, - 285, 10, -1, 279, 10, -1, 294, 10, -1, 295, - 10, -1, 300, 10, -1, 296, 10, -1, 145, 10, - -1, 146, 10, -1, 147, 10, -1, 148, 10, -1, - 149, 10, -1, 150, 10, -1, 151, 10, -1, 239, - 10, -1, 85, 10, -1, 74, 10, -1, 112, 10, - -1, 132, 10, -1, 133, 10, -1, 292, 10, -1, - 289, 10, -1, 134, 10, -1, 29, 10, -1, 30, - 10, -1, 31, 10, -1, 32, 10, -1, 33, 10, - -1, 76, 10, -1, 90, 10, -1, 91, 10, -1, - 120, 10, -1, 62, 10, -1, 72, 10, -1, 63, - 10, -1, 237, 10, -1, 242, 10, -1, 113, 10, - -1, 56, 10, -1, 57, 10, -1, 236, 10, -1, - 58, 10, -1, 59, 10, -1, 311, 10, -1, 124, - 10, -1, 128, 10, -1, 129, 10, -1, 189, 10, - -1, 217, 10, -1, 190, 10, -1, 293, 10, -1, - 125, 10, -1, 69, 10, -1, 34, 10, -1, 35, - 10, -1, 36, 10, -1, 109, 10, -1, 156, 10, - -1, 157, 10, -1, 158, 10, -1, 159, 10, -1, - 37, 10, -1, 38, 10, -1, 40, 10, -1, 41, - 10, -1, 43, 10, -1, 44, 10, -1, 42, 10, - -1, 160, 10, -1, 161, 10, -1, 49, 10, -1, - 50, 10, -1, 51, 10, -1, 60, 10, -1, 79, - 10, -1, 130, 10, -1, 93, 10, -1, 188, 10, - -1, 86, 10, -1, 212, 10, -1, 94, 10, -1, - 95, 10, -1, 126, 10, -1, 127, 10, -1, 290, - 10, -1, 111, 10, -1, 55, 10, -1, 77, 10, - -1, 80, 10, 10, -1, 61, 10, -1, 64, 10, - -1, 116, 10, -1, 117, 10, -1, 78, 10, -1, - 213, 10, -1, 118, 10, -1, 65, 10, -1, 66, - 10, -1, 67, 10, -1, 238, 10, -1, 131, 10, - -1, 227, 10, -1, 228, 10, -1, 229, 10, -1, - 230, 10, -1, 231, 10, -1, 232, 10, -1, 233, - 10, -1, 234, 10, -1, 119, 10, -1, 73, 10, - -1, 312, 10, -1, 122, 10, -1, 123, 10, -1, - 121, 10, -1, 214, 10, -1, 70, 10, -1, 71, - 10, -1, 92, 10, -1, 81, 10, 10, -1, 82, - 10, -1, 108, 10, -1, 153, 10, -1, 154, 10, - -1, 291, 10, -1, 155, 10, -1, 162, 10, -1, - 163, 10, -1, 164, 10, -1, 218, 10, -1, 219, - 10, 10, -1, 220, 10, 10, -1, 222, 10, 10, - 10, -1, 223, 10, 10, 10, -1, 221, 10, 10, - 10, -1, 225, 10, 10, -1, 185, 10, 10, -1, - 192, 10, -1, 195, 10, -1, 194, 10, -1, 197, - 10, -1, 193, 10, -1, 196, 10, -1, 198, 10, - 10, -1, 199, 10, 10, -1, 200, 10, -1, 201, - 10, -1, 280, 10, -1, 283, 10, -1, 282, 10, - -1, 215, 10, -1, 216, 10, -1, 254, 10, -1, - 255, 10, -1, 256, 10, -1, 257, 10, -1, 258, - 10, -1, 260, 10, -1, 259, 10, -1, 261, 10, - -1, 262, 10, -1, 263, 10, -1, 309, 10, 10, - -1, 310, 10, -1, 45, 10, -1, 47, 10, -1, - 48, 10, -1, 152, 10, -1, 288, 10, -1, 142, - 10, -1, 110, 10, -1, 45, 10, -1, 53, 10, - -1, 54, 10, -1, 141, 10, -1, 287, 10, -1, - 143, 10, -1, 45, 10, -1, 274, 10, -1, 275, - 10, -1, 276, 10, -1, 284, 10, -1, 313, 10, - -1, 277, 10, -1, 272, 10, -1, 278, 10, -1, - 45, 10, -1, 81, 10, 10, -1, 186, 10, 10, - -1, 187, 10, 10, -1, 82, 10, -1, 108, 10, - -1, 226, 10, -1, 96, -1, 581, 582, -1, -1, - 583, -1, 585, -1, 584, -1, 587, -1, 588, -1, - 589, -1, 590, -1, 586, -1, 97, 10, -1, 99, - 10, -1, 98, 10, -1, 104, 10, -1, 100, 10, - -1, 101, 10, -1, 102, 10, -1, 103, 10, -1, - 165, -1, 592, 593, -1, -1, 594, -1, 596, -1, - 595, -1, 597, -1, 598, -1, 599, -1, 600, -1, - 601, -1, 602, -1, 603, -1, 604, -1, 605, -1, - 606, -1, 607, -1, 608, -1, 609, -1, 610, -1, - 611, -1, 612, -1, 166, 10, -1, 176, 10, -1, - 167, 10, -1, 168, 10, -1, 169, 10, -1, 170, - 10, -1, 171, 10, -1, 172, 10, -1, 173, 10, - -1, 174, 10, -1, 175, 10, -1, 177, 10, -1, - 178, 10, -1, 179, 10, -1, 180, 10, -1, 181, - 10, -1, 182, 10, -1, 183, 10, -1, 184, 10, - -1, 114, -1, 614, 615, -1, -1, 616, -1, 115, - 10, -1, 307, -1, 618, 619, -1, -1, 620, -1, - 308, 10, -1, 191, 10, -1, 235, 10, -1, 186, - 10, 10, -1, 187, 10, 10, -1, 243, -1, 626, - 627, -1, -1, 628, -1, 629, -1, 630, -1, 633, - -1, 631, -1, 632, -1, 634, -1, 635, -1, 636, - -1, 637, -1, 244, 10, -1, 245, 10, -1, 246, - 10, -1, 248, 10, -1, 249, 10, -1, 247, 10, - -1, 250, 10, -1, 251, 10, -1, 252, 10, -1, - 253, 10, -1, 264, -1, 639, 640, -1, -1, 641, - -1, 642, -1, 643, -1, 644, -1, 645, -1, 646, - -1, 265, 10, -1, 266, 10, -1, 267, 10, -1, - 268, 10, -1, 269, 10, -1, 270, 10, -1, 286, - 10, 10, -1, 297, -1, 649, 650, -1, -1, 651, - -1, 652, -1, 298, 10, -1, 299, 10, -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = { 0, 188, 188, 188, 189, 189, 190, 190, 191, 191, 191, 192, 192, 193, 193, 194, 194, 195, 197, 203, @@ -1373,16 +1915,23 @@ static const yytype_uint16 yyrline[] = }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if YYDEBUG || 0 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT", - "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_FORCE_TOPLEVEL", - "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", "VAR_PORT", - "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", "VAR_DO_IP4", - "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP", + "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER", + "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG", + "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", + "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", + "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", "VAR_TCP_IDLE_TIMEOUT", "VAR_EDNS_TCP_KEEPALIVE", "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_CHROOT", "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", @@ -1631,14 +2180,20 @@ static const char *const yytname[] = "cachedb_backend_name", "cachedb_secret_seed", "redis_server_host", "redis_server_port", "redis_timeout", "redis_expire_records", "server_tcp_connection_limit", "ipsetstart", "contents_ipset", - "content_ipset", "ipset_name_v4", "ipset_name_v6", 0 + "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR }; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} #endif -# ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ -static const yytype_uint16 yytoknum[] = +#ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1673,297 +2228,20 @@ static const yytype_uint16 yytoknum[] = 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568 }; -# endif +#endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 314, 315, 315, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 317, 318, - 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 321, 322, 322, - 323, 323, 323, 323, 323, 323, 323, 324, 325, 325, - 326, 326, 326, 326, 326, 326, 327, 328, 328, 329, - 329, 329, 329, 329, 329, 329, 330, 331, 331, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 333, 334, - 335, 336, 337, 338, 339, 339, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 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, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 581, 582, 582, - 582, 582, 582, 582, 582, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 592, 593, 593, 593, - 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, - 593, 593, 593, 593, 593, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 614, 615, 616, - 617, 618, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 626, 627, 627, 627, 627, 627, 627, 627, 627, - 627, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 639, 640, 640, 640, 640, 640, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 649, 650, 650, 651, 652 -}; +#define YYPACT_NINF (-299) -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, - 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 2, - 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 3, 1, 2, - 0, 1, 1, 2, 2 -}; +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ -static const yytype_uint16 yydefact[] = -{ - 2, 0, 1, 18, 19, 237, 247, 535, 595, 554, - 256, 609, 632, 266, 648, 283, 600, 3, 17, 21, - 239, 249, 258, 268, 285, 537, 556, 597, 602, 611, - 634, 650, 4, 5, 6, 10, 14, 15, 8, 9, - 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 22, 23, 86, 89, 98, 200, 201, 24, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 37, - 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, - 31, 28, 29, 32, 33, 34, 234, 235, 236, 35, - 36, 121, 212, 122, 124, 125, 126, 214, 219, 215, - 226, 227, 228, 229, 127, 128, 129, 130, 131, 132, - 133, 196, 87, 76, 102, 119, 120, 224, 221, 123, - 38, 39, 40, 41, 42, 78, 92, 93, 108, 64, - 74, 65, 204, 205, 103, 58, 59, 203, 60, 61, - 232, 112, 116, 137, 147, 174, 150, 225, 113, 71, - 43, 44, 45, 100, 138, 139, 140, 141, 46, 47, - 49, 50, 52, 53, 51, 145, 151, 54, 55, 56, - 62, 81, 117, 95, 146, 88, 170, 96, 97, 114, - 115, 222, 101, 57, 79, 82, 63, 66, 104, 105, - 80, 171, 106, 67, 68, 69, 213, 118, 188, 189, - 190, 191, 192, 193, 194, 202, 107, 75, 233, 109, - 110, 111, 172, 72, 73, 94, 83, 84, 99, 134, - 135, 223, 136, 142, 143, 144, 175, 176, 178, 180, - 181, 179, 182, 197, 148, 149, 154, 155, 152, 153, - 156, 157, 159, 158, 216, 218, 217, 173, 183, 184, - 185, 186, 187, 206, 208, 207, 209, 210, 211, 230, - 231, 177, 195, 198, 199, 220, 0, 0, 0, 0, - 0, 0, 0, 238, 240, 241, 242, 244, 245, 246, - 243, 0, 0, 0, 0, 0, 0, 248, 250, 251, - 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, - 0, 257, 259, 260, 263, 264, 261, 265, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, - 270, 271, 272, 276, 277, 273, 274, 275, 0, 0, - 0, 0, 0, 288, 292, 293, 294, 295, 284, 286, - 287, 289, 290, 291, 0, 0, 0, 0, 0, 0, - 0, 0, 536, 538, 540, 539, 545, 541, 542, 543, - 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 555, 557, 559, 558, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 0, 596, 598, 0, 601, 603, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 610, 612, 613, 614, - 616, 617, 615, 618, 619, 620, 621, 0, 0, 0, - 0, 0, 0, 633, 635, 636, 637, 638, 639, 640, - 0, 0, 649, 651, 652, 297, 296, 303, 316, 314, - 326, 322, 323, 327, 324, 325, 328, 329, 330, 334, - 335, 365, 366, 367, 368, 369, 395, 396, 397, 403, - 404, 319, 405, 406, 409, 407, 408, 412, 413, 414, - 428, 380, 381, 383, 384, 415, 431, 374, 376, 432, - 438, 439, 440, 320, 394, 458, 459, 375, 452, 358, - 315, 370, 429, 435, 416, 0, 0, 462, 321, 298, - 357, 420, 299, 317, 318, 371, 372, 460, 418, 422, - 423, 332, 331, 300, 463, 398, 427, 359, 379, 433, - 434, 437, 451, 373, 456, 454, 455, 386, 393, 424, - 425, 387, 388, 417, 442, 360, 361, 364, 336, 338, - 333, 339, 340, 341, 342, 349, 350, 351, 352, 353, - 354, 355, 464, 465, 467, 399, 400, 401, 402, 410, - 411, 468, 469, 470, 0, 0, 0, 419, 389, 391, - 605, 479, 483, 481, 480, 484, 482, 0, 0, 487, - 488, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 421, 436, 457, 492, 493, 390, 471, 0, 0, - 0, 0, 0, 0, 443, 444, 445, 446, 447, 448, - 449, 450, 606, 382, 377, 441, 356, 301, 302, 378, - 494, 495, 496, 497, 498, 500, 499, 501, 502, 503, - 337, 344, 489, 491, 490, 343, 0, 363, 426, 466, - 362, 392, 345, 346, 348, 347, 0, 505, 385, 453, - 506, 507, 508, 512, 511, 509, 510, 513, 514, 515, - 516, 518, 517, 528, 0, 532, 533, 0, 0, 534, - 519, 526, 520, 521, 522, 525, 527, 523, 524, 278, - 279, 280, 281, 282, 546, 548, 547, 550, 551, 552, - 553, 549, 576, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 577, 587, 588, 589, 590, 591, 592, 593, - 594, 599, 604, 622, 623, 624, 627, 625, 626, 628, - 629, 630, 631, 641, 642, 643, 644, 645, 646, 653, - 654, 430, 461, 478, 607, 608, 485, 486, 472, 473, - 0, 0, 0, 477, 647, 504, 529, 530, 531, 476, - 474, 475 -}; +#define YYTABLE_NINF (-1) -/* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = -{ - -1, 1, 17, 18, 19, 32, 260, 20, 33, 483, - 21, 34, 497, 22, 35, 511, 23, 36, 528, 543, - 544, 545, 546, 547, 24, 37, 548, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 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, 484, 485, 486, - 487, 488, 489, 490, 498, 499, 500, 501, 502, 503, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 512, - 513, 514, 515, 516, 517, 518, 25, 38, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 26, 39, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 27, - 40, 611, 612, 28, 41, 614, 615, 471, 472, 473, - 474, 29, 42, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 30, 43, 643, 644, 645, 646, - 647, 648, 649, 475, 31, 44, 652, 653, 654 -}; +#define yytable_value_is_error(Yyn) \ + 0 -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -299 + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ static const yytype_int16 yypact[] = { -299, 0, -299, -299, -299, -299, -299, -299, -299, -299, @@ -2066,7 +2344,112 @@ static const yytype_int16 yypact[] = -299, -299 }; -/* YYPGOTO[NTERM-NUM]. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int16 yydefact[] = +{ + 2, 0, 1, 18, 19, 237, 247, 535, 595, 554, + 256, 609, 632, 266, 648, 283, 600, 3, 17, 21, + 239, 249, 258, 268, 285, 537, 556, 597, 602, 611, + 634, 650, 4, 5, 6, 10, 14, 15, 8, 9, + 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 22, 23, 86, 89, 98, 200, 201, 24, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 37, + 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, + 31, 28, 29, 32, 33, 34, 234, 235, 236, 35, + 36, 121, 212, 122, 124, 125, 126, 214, 219, 215, + 226, 227, 228, 229, 127, 128, 129, 130, 131, 132, + 133, 196, 87, 76, 102, 119, 120, 224, 221, 123, + 38, 39, 40, 41, 42, 78, 92, 93, 108, 64, + 74, 65, 204, 205, 103, 58, 59, 203, 60, 61, + 232, 112, 116, 137, 147, 174, 150, 225, 113, 71, + 43, 44, 45, 100, 138, 139, 140, 141, 46, 47, + 49, 50, 52, 53, 51, 145, 151, 54, 55, 56, + 62, 81, 117, 95, 146, 88, 170, 96, 97, 114, + 115, 222, 101, 57, 79, 82, 63, 66, 104, 105, + 80, 171, 106, 67, 68, 69, 213, 118, 188, 189, + 190, 191, 192, 193, 194, 202, 107, 75, 233, 109, + 110, 111, 172, 72, 73, 94, 83, 84, 99, 134, + 135, 223, 136, 142, 143, 144, 175, 176, 178, 180, + 181, 179, 182, 197, 148, 149, 154, 155, 152, 153, + 156, 157, 159, 158, 216, 218, 217, 173, 183, 184, + 185, 186, 187, 206, 208, 207, 209, 210, 211, 230, + 231, 177, 195, 198, 199, 220, 0, 0, 0, 0, + 0, 0, 0, 238, 240, 241, 242, 244, 245, 246, + 243, 0, 0, 0, 0, 0, 0, 248, 250, 251, + 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, + 0, 257, 259, 260, 263, 264, 261, 265, 262, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, + 270, 271, 272, 276, 277, 273, 274, 275, 0, 0, + 0, 0, 0, 288, 292, 293, 294, 295, 284, 286, + 287, 289, 290, 291, 0, 0, 0, 0, 0, 0, + 0, 0, 536, 538, 540, 539, 545, 541, 542, 543, + 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 555, 557, 559, 558, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 0, 596, 598, 0, 601, 603, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 610, 612, 613, 614, + 616, 617, 615, 618, 619, 620, 621, 0, 0, 0, + 0, 0, 0, 633, 635, 636, 637, 638, 639, 640, + 0, 0, 649, 651, 652, 297, 296, 303, 316, 314, + 326, 322, 323, 327, 324, 325, 328, 329, 330, 334, + 335, 365, 366, 367, 368, 369, 395, 396, 397, 403, + 404, 319, 405, 406, 409, 407, 408, 412, 413, 414, + 428, 380, 381, 383, 384, 415, 431, 374, 376, 432, + 438, 439, 440, 320, 394, 458, 459, 375, 452, 358, + 315, 370, 429, 435, 416, 0, 0, 462, 321, 298, + 357, 420, 299, 317, 318, 371, 372, 460, 418, 422, + 423, 332, 331, 300, 463, 398, 427, 359, 379, 433, + 434, 437, 451, 373, 456, 454, 455, 386, 393, 424, + 425, 387, 388, 417, 442, 360, 361, 364, 336, 338, + 333, 339, 340, 341, 342, 349, 350, 351, 352, 353, + 354, 355, 464, 465, 467, 399, 400, 401, 402, 410, + 411, 468, 469, 470, 0, 0, 0, 419, 389, 391, + 605, 479, 483, 481, 480, 484, 482, 0, 0, 487, + 488, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 421, 436, 457, 492, 493, 390, 471, 0, 0, + 0, 0, 0, 0, 443, 444, 445, 446, 447, 448, + 449, 450, 606, 382, 377, 441, 356, 301, 302, 378, + 494, 495, 496, 497, 498, 500, 499, 501, 502, 503, + 337, 344, 489, 491, 490, 343, 0, 363, 426, 466, + 362, 392, 345, 346, 348, 347, 0, 505, 385, 453, + 506, 507, 508, 512, 511, 509, 510, 513, 514, 515, + 516, 518, 517, 528, 0, 532, 533, 0, 0, 534, + 519, 526, 520, 521, 522, 525, 527, 523, 524, 278, + 279, 280, 281, 282, 546, 548, 547, 550, 551, 552, + 553, 549, 576, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 577, 587, 588, 589, 590, 591, 592, 593, + 594, 599, 604, 622, 623, 624, 627, 625, 626, 628, + 629, 630, 631, 641, 642, 643, 644, 645, 646, 653, + 654, 430, 461, 478, 607, 608, 485, 486, 472, 473, + 0, 0, 0, 477, 647, 504, 529, 530, 531, 476, + 474, 475 +}; + + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, @@ -2105,12 +2488,49 @@ static const yytype_int16 yypgoto[] = -299, -299, -299, -299, -299, -299, -299, -299, -299 }; -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -1 -static const yytype_uint16 yytable[] = + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 1, 17, 18, 19, 32, 260, 20, 33, 483, + 21, 34, 497, 22, 35, 511, 23, 36, 528, 543, + 544, 545, 546, 547, 24, 37, 548, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 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, 484, 485, 486, + 487, 488, 489, 490, 498, 499, 500, 501, 502, 503, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 512, + 513, 514, 515, 516, 517, 518, 25, 38, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 26, 39, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 27, + 40, 611, 612, 28, 41, 614, 615, 471, 472, 473, + 474, 29, 42, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 30, 43, 643, 644, 645, 646, + 647, 648, 649, 475, 31, 44, 652, 653, 654 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = { 2, 519, 476, 504, 477, 478, 610, 491, 650, 651, 613, 3, 4, 655, 656, 492, 493, 519, 571, 572, @@ -2252,9 +2672,9 @@ static const yytype_int16 yycheck[] = -1, 37, 37, 37 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_int16 yystos[] = { 0, 315, 0, 11, 12, 46, 52, 96, 114, 165, 224, 243, 264, 273, 297, 301, 307, 316, 317, 318, @@ -2356,95 +2776,182 @@ static const yytype_uint16 yystos[] = 10, 10 }; -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_int16 yyr1[] = +{ + 0, 314, 315, 315, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 317, 318, + 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 321, 322, 322, + 323, 323, 323, 323, 323, 323, 323, 324, 325, 325, + 326, 326, 326, 326, 326, 326, 327, 328, 328, 329, + 329, 329, 329, 329, 329, 329, 330, 331, 331, 332, + 332, 332, 332, 332, 332, 332, 332, 332, 333, 334, + 335, 336, 337, 338, 339, 339, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 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, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 581, 582, 582, + 582, 582, 582, 582, 582, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 592, 593, 593, 593, + 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, + 593, 593, 593, 593, 593, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 614, 615, 616, + 617, 618, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 626, 627, 627, 627, 627, 627, 627, 627, 627, + 627, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 639, 640, 640, 640, 640, 640, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 649, 650, 650, 651, 652 +}; -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, + 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, + 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 2, + 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 3, 1, 2, + 0, 1, 1, 2, 2 +}; -/* Like YYERROR except do call yyerror. This remains here temporarily - to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab -#define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (YYID (0)) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) +/* Backward compatibility with an undocumented macro. + Use YYerror or YYUNDEF. */ +#define YYERRCODE YYUNDEF -#define YYTERROR 1 -#define YYERRCODE 256 - - -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - -#ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif -#endif - - -/* YYLEX -- calling `yylex' with the right arguments. */ - -#ifdef YYLEX_PARAM -# define YYLEX yylex (YYLEX_PARAM) -#else -# define YYLEX yylex () -#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2454,80 +2961,65 @@ while (YYID (0)) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (YYID (0)) +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (YYID (0)) +/* This macro is provided for backward compatibility. */ +# ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_value_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { + FILE *yyoutput = yyo; + YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# else - YYUSE (yyoutput); + if (yykind < YYNTOKENS) + YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif - switch (yytype) - { - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) -#else -static void -yy_symbol_print (yyoutput, yytype, yyvaluep) - FILE *yyoutput; - int yytype; - YYSTYPE const * const yyvaluep; -#endif +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { - if (yytype < YYNTOKENS) - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); - else - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yykind, yyvaluep); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -2535,80 +3027,68 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) | TOP (included). | `------------------------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) -#else -static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; -#endif +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (YYID (0)) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) -#else -static void -yy_reduce_print (yyvsp, yyrule) - YYSTYPE *yyvsp; - int yyrule; -#endif +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, + int yyrule) { + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], - &(yyvsp[(yyi + 1) - (yynrhs)]) - ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)]); + YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyvsp, Rule); \ -} while (YYID (0)) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule); \ +} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ -# define YYDPRINTF(Args) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2623,478 +3103,230 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - -#if YYERROR_VERBOSE -# ifndef yystrlen -# if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen -# else -/* Return the length of YYSTR. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static YYSIZE_T -yystrlen (const char *yystr) -#else -static YYSIZE_T -yystrlen (yystr) - const char *yystr; -#endif -{ - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) - continue; - return yylen; -} -# endif -# endif -# ifndef yystpcpy -# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE -# define yystpcpy stpcpy -# else -/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -static char * -yystpcpy (char *yydest, const char *yysrc) -#else -static char * -yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -#endif -{ - char *yyd = yydest; - const char *yys = yysrc; - while ((*yyd++ = *yys++) != '\0') - continue; - - return yyd - 1; -} -# endif -# endif - -# ifndef yytnamerr -/* Copy to YYRES the contents of YYSTR after stripping away unnecessary - quotes and backslashes, so that it's suitable for yyerror. The - heuristic is that double-quoting is unnecessary unless the string - contains an apostrophe, a comma, or backslash (other than - backslash-backslash). YYSTR is taken from yytname. If YYRES is - null, do not copy; instead, return the length of what the result - would have been. */ -static YYSIZE_T -yytnamerr (char *yyres, const char *yystr) -{ - if (*yystr == '"') - { - YYSIZE_T yyn = 0; - char const *yyp = yystr; - - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } - do_not_strip_quotes: ; - } - - if (! yyres) - return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; -} -# endif - -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) -{ - int yyn = yypact[yystate]; - - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else - { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; - } -} -#endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -/*ARGSUSED*/ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) static void -yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) -#else -static void -yydestruct (yymsg, yytype, yyvaluep) - const char *yymsg; - int yytype; - YYSTYPE *yyvaluep; -#endif +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { YYUSE (yyvaluep); - if (!yymsg) yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YYUSE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END } - - -/* Prevent warnings from -Wmissing-prototypes. */ - -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; - /* Number of syntax errors so far. */ int yynerrs; + /*----------. | yyparse. | `----------*/ -#ifdef YYPARSE_PARAM -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) -int -yyparse (void *YYPARSE_PARAM) -#else -int -yyparse (YYPARSE_PARAM) - void *YYPARSE_PARAM; -#endif -#else /* ! YYPARSE_PARAM */ -#if (defined __STDC__ || defined __C99__FUNC__ \ - || defined __cplusplus || defined _MSC_VER) int yyparse (void) -#else -int -yyparse () - -#endif -#endif { - - int yystate; + yy_state_fast_t yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize; + + /* The state stack. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + int yyn; + /* The return value of yyparse. */ int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; - - - -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; - + /* Lookahead token as an internal (translated) token number. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; - YYDPRINTF ((stderr, "Starting parse\n")); - + yynerrs = 0; yystate = 0; yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ + yystacksize = YYINITDEPTH; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; - yyssp = yyss; - yyvsp = yyvs; + YYDPRINTF ((stderr, "Starting parse\n")); + + yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { - YYDPRINTF ((stderr, "Reading a token: ")); - yychar = YYLEX; + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (); } if (yychar <= YYEOF) { - yychar = yytoken = YYEOF; + yychar = YYEOF; + yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } + else if (yychar == YYerror) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = YYUNDEF; + yytoken = YYSYMBOL_YYerror; + goto yyerrlab1; + } else { yytoken = YYTRANSLATE (yychar); @@ -3109,30 +3341,26 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -3147,14 +3375,14 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - `$$ = $1'. + '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3167,23 +3395,25 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 198 "util/configparser.y" - { + case 18: +#line 198 "./util/configparser.y" + { OUTYY(("\nP(force-toplevel)\n")); } +#line 3404 "util/configparser.c" break; case 19: -#line 204 "util/configparser.y" - { +#line 204 "./util/configparser.y" + { OUTYY(("\nP(server:)\n")); } +#line 3412 "util/configparser.c" break; case 237: -#line 309 "util/configparser.y" - { +#line 309 "./util/configparser.y" + { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -3193,11 +3423,12 @@ yyreduce: } else yyerror("out of memory"); } +#line 3427 "util/configparser.c" break; case 247: -#line 326 "util/configparser.y" - { +#line 326 "./util/configparser.y" + { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -3207,11 +3438,12 @@ yyreduce: } else yyerror("out of memory"); } +#line 3442 "util/configparser.c" break; case 256: -#line 343 "util/configparser.y" - { +#line 343 "./util/configparser.y" + { struct config_view* s; OUTYY(("\nP(view:)\n")); s = (struct config_view*)calloc(1, sizeof(struct config_view)); @@ -3223,11 +3455,12 @@ yyreduce: } else yyerror("out of memory"); } +#line 3459 "util/configparser.c" break; case 266: -#line 362 "util/configparser.y" - { +#line 362 "./util/configparser.y" + { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -3243,17 +3476,18 @@ yyreduce: } else yyerror("out of memory"); } +#line 3480 "util/configparser.c" break; case 278: -#line 387 "util/configparser.y" - { +#line 387 "./util/configparser.y" + { uint8_t* bitlist; size_t len = 0; - OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (2)].str))); - bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(2) - (2)].str), + OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); + bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); } @@ -3263,58 +3497,63 @@ yyreduce: } } +#line 3501 "util/configparser.c" break; case 279: -#line 406 "util/configparser.y" - { - OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "nxdomain")!=0 && strcmp((yyvsp[(2) - (2)].str), "nodata")!=0 && - strcmp((yyvsp[(2) - (2)].str), "passthru")!=0 && strcmp((yyvsp[(2) - (2)].str), "drop")!=0 && - strcmp((yyvsp[(2) - (2)].str), "cname")!=0 && strcmp((yyvsp[(2) - (2)].str), "disabled")!=0) { +#line 406 "./util/configparser.y" + { + OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && + strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && + strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) { yyerror("rpz-action-override action: expected nxdomain, " "nodata, passthru, drop, cname or disabled"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); cfg_parser->cfg->auths->rpz_action_override = NULL; } else { - cfg_parser->cfg->auths->rpz_action_override = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } +#line 3520 "util/configparser.c" break; case 280: -#line 423 "util/configparser.y" - { - OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[(2) - (2)].str))); +#line 423 "./util/configparser.y" + { + OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); - cfg_parser->cfg->auths->rpz_cname = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } +#line 3530 "util/configparser.c" break; case 281: -#line 431 "util/configparser.y" - { - OUTYY(("P(rpz_log:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 431 "./util/configparser.y" + { + OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3542 "util/configparser.c" break; case 282: -#line 441 "util/configparser.y" - { - OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 441 "./util/configparser.y" + { + OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); - cfg_parser->cfg->auths->rpz_log_name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } +#line 3552 "util/configparser.c" break; case 283: -#line 449 "util/configparser.y" - { +#line 449 "./util/configparser.y" + { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -3329,273 +3568,292 @@ yyreduce: } else yyerror("out of memory"); } +#line 3572 "util/configparser.c" break; case 296: -#line 472 "util/configparser.y" - { - OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 472 "./util/configparser.y" + { + OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3584 "util/configparser.c" break; case 297: -#line 481 "util/configparser.y" - { - OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 481 "./util/configparser.y" + { + OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3596 "util/configparser.c" break; case 298: -#line 490 "util/configparser.y" - { - OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) +#line 490 "./util/configparser.y" + { + OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->stat_interval = 0; - else if(atoi((yyvsp[(2) - (2)].str)) == 0) + else if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3610 "util/configparser.c" break; case 299: -#line 501 "util/configparser.y" - { - OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 501 "./util/configparser.y" + { + OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3622 "util/configparser.c" break; case 300: -#line 510 "util/configparser.y" - { - OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 510 "./util/configparser.y" + { + OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3634 "util/configparser.c" break; case 301: -#line 519 "util/configparser.y" - { - OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 519 "./util/configparser.y" + { + OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3646 "util/configparser.c" break; case 302: -#line 528 "util/configparser.y" - { - OUTYY(("P(server_shm_key:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) +#line 528 "./util/configparser.y" + { + OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->shm_key = 0; - else if(atoi((yyvsp[(2) - (2)].str)) == 0) + else if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->shm_key = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3660 "util/configparser.c" break; case 303: -#line 539 "util/configparser.y" - { - OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 539 "./util/configparser.y" + { + OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); - else cfg_parser->cfg->port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3672 "util/configparser.c" break; case 304: -#line 548 "util/configparser.y" - { +#line 548 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[(2) - (2)].str))) + OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) fatal_exit("out of memory adding client-subnet"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 3687 "util/configparser.c" break; case 305: -#line 560 "util/configparser.y" - { +#line 560 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, - (yyvsp[(2) - (2)].str))) + (yyvsp[0].str))) fatal_exit("out of memory adding client-subnet-zone"); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 3703 "util/configparser.c" break; case 306: -#line 574 "util/configparser.y" - { +#line 574 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_client_subnet_always_forward:%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->client_subnet_always_forward = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + (strcmp((yyvsp[0].str), "yes")==0); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3721 "util/configparser.c" break; case 307: -#line 589 "util/configparser.y" - { +#line 589 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); OUTYY(("P(Deprecated option, ignoring)\n")); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3735 "util/configparser.c" break; case 308: -#line 600 "util/configparser.y" - { +#line 600 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("IPv4 subnet length expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 32) + else if (atoi((yyvsp[0].str)) > 32) cfg_parser->cfg->max_client_subnet_ipv4 = 32; - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->max_client_subnet_ipv4 = 0; - else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3755 "util/configparser.c" break; case 309: -#line 617 "util/configparser.y" - { +#line 617 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("Ipv6 subnet length expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 128) + else if (atoi((yyvsp[0].str)) > 128) cfg_parser->cfg->max_client_subnet_ipv6 = 128; - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->max_client_subnet_ipv6 = 0; - else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3775 "util/configparser.c" break; case 310: -#line 634 "util/configparser.y" - { +#line 634 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("IPv4 subnet length expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 32) + else if (atoi((yyvsp[0].str)) > 32) cfg_parser->cfg->min_client_subnet_ipv4 = 32; - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->min_client_subnet_ipv4 = 0; - else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3795 "util/configparser.c" break; case 311: -#line 651 "util/configparser.y" - { +#line 651 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("Ipv6 subnet length expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 128) + else if (atoi((yyvsp[0].str)) > 128) cfg_parser->cfg->min_client_subnet_ipv6 = 128; - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->min_client_subnet_ipv6 = 0; - else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3815 "util/configparser.c" break; case 312: -#line 668 "util/configparser.y" - { +#line 668 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("IPv4 ECS tree size expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3833 "util/configparser.c" break; case 313: -#line 683 "util/configparser.y" - { +#line 683 "./util/configparser.y" + { #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("IPv6 ECS tree size expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3851 "util/configparser.c" break; case 314: -#line 698 "util/configparser.y" - { - OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str))); +#line 698 "./util/configparser.y" + { + OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, @@ -3603,14 +3861,15 @@ yyreduce: if(!cfg_parser->cfg->ifs) yyerror("out of memory"); else - cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } +#line 3867 "util/configparser.c" break; case 315: -#line 711 "util/configparser.y" - { - OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str))); +#line 711 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); else cfg_parser->cfg->out_ifs = realloc( @@ -3620,590 +3879,642 @@ yyreduce: yyerror("out of memory"); else cfg_parser->cfg->out_ifs[ - cfg_parser->cfg->num_out_ifs++] = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } +#line 3885 "util/configparser.c" break; case 316: -#line 726 "util/configparser.y" - { - OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 726 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3897 "util/configparser.c" break; case 317: -#line 735 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1, +#line 735 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); + if(!cfg_mark_ports((yyvsp[0].str), 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3909 "util/configparser.c" break; case 318: -#line 744 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0, +#line 744 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); + if(!cfg_mark_ports((yyvsp[0].str), 0, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 3921 "util/configparser.c" break; case 319: -#line 753 "util/configparser.y" - { - OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 753 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3933 "util/configparser.c" break; case 320: -#line 762 "util/configparser.y" - { - OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 762 "./util/configparser.y" + { + OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 3945 "util/configparser.c" break; case 321: -#line 771 "util/configparser.y" - { - OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 771 "./util/configparser.y" + { + OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3957 "util/configparser.c" break; case 322: -#line 780 "util/configparser.y" - { - OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 780 "./util/configparser.y" + { + OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3969 "util/configparser.c" break; case 323: -#line 789 "util/configparser.y" - { - OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 789 "./util/configparser.y" + { + OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3981 "util/configparser.c" break; case 324: -#line 798 "util/configparser.y" - { - OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 798 "./util/configparser.y" + { + OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_udp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 3993 "util/configparser.c" break; case 325: -#line 807 "util/configparser.y" - { - OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 807 "./util/configparser.y" + { + OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4005 "util/configparser.c" break; case 326: -#line 816 "util/configparser.y" - { - OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 816 "./util/configparser.y" + { + OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4017 "util/configparser.c" break; case 327: -#line 825 "util/configparser.y" - { - OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 825 "./util/configparser.y" + { + OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4029 "util/configparser.c" break; case 328: -#line 834 "util/configparser.y" - { - OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 834 "./util/configparser.y" + { + OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->tcp_mss = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4041 "util/configparser.c" break; case 329: -#line 843 "util/configparser.y" - { - OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 843 "./util/configparser.y" + { + OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4053 "util/configparser.c" break; case 330: -#line 852 "util/configparser.y" - { - OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 852 "./util/configparser.y" + { + OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 120000) + else if (atoi((yyvsp[0].str)) > 120000) cfg_parser->cfg->tcp_idle_timeout = 120000; - else if (atoi((yyvsp[(2) - (2)].str)) < 1) + else if (atoi((yyvsp[0].str)) < 1) cfg_parser->cfg->tcp_idle_timeout = 1; - else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4069 "util/configparser.c" break; case 331: -#line 865 "util/configparser.y" - { - OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 865 "./util/configparser.y" + { + OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 1) + else if (atoi((yyvsp[0].str)) < 1) cfg_parser->cfg->max_reuse_tcp_queries = 0; - else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4083 "util/configparser.c" break; case 332: -#line 876 "util/configparser.y" - { - OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 876 "./util/configparser.y" + { + OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 1) + else if (atoi((yyvsp[0].str)) < 1) cfg_parser->cfg->tcp_reuse_timeout = 0; - else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4097 "util/configparser.c" break; case 333: -#line 887 "util/configparser.y" - { - OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 887 "./util/configparser.y" + { + OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 1) + else if (atoi((yyvsp[0].str)) < 1) cfg_parser->cfg->tcp_auth_query_timeout = 0; - else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4111 "util/configparser.c" break; case 334: -#line 898 "util/configparser.y" - { - OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 898 "./util/configparser.y" + { + OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4123 "util/configparser.c" break; case 335: -#line 907 "util/configparser.y" - { - OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 907 "./util/configparser.y" + { + OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 6553500) + else if (atoi((yyvsp[0].str)) > 6553500) cfg_parser->cfg->tcp_keepalive_timeout = 6553500; - else if (atoi((yyvsp[(2) - (2)].str)) < 1) + else if (atoi((yyvsp[0].str)) < 1) cfg_parser->cfg->tcp_keepalive_timeout = 0; - else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4139 "util/configparser.c" break; case 336: -#line 920 "util/configparser.y" - { - OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 920 "./util/configparser.y" + { + OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4151 "util/configparser.c" break; case 337: -#line 929 "util/configparser.y" - { - OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 929 "./util/configparser.y" + { + OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4163 "util/configparser.c" break; case 338: -#line 938 "util/configparser.y" - { - OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 938 "./util/configparser.y" + { + OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4175 "util/configparser.c" break; case 339: -#line 947 "util/configparser.y" - { - OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str))); +#line 947 "./util/configparser.y" + { + OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); - cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } +#line 4185 "util/configparser.c" break; case 340: -#line 954 "util/configparser.y" - { - OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str))); +#line 954 "./util/configparser.y" + { + OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); - cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } +#line 4195 "util/configparser.c" break; case 341: -#line 961 "util/configparser.y" - { - OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 961 "./util/configparser.y" + { + OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); - else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4207 "util/configparser.c" break; case 342: -#line 970 "util/configparser.y" - { - OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str))); +#line 970 "./util/configparser.y" + { + OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); - cfg_parser->cfg->tls_cert_bundle = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } +#line 4217 "util/configparser.c" break; case 343: -#line 977 "util/configparser.y" - { - OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 977 "./util/configparser.y" + { + OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4229 "util/configparser.c" break; case 344: -#line 986 "util/configparser.y" - { - OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[(2) - (2)].str))); +#line 986 "./util/configparser.y" + { + OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, - (yyvsp[(2) - (2)].str))) + (yyvsp[0].str))) yyerror("out of memory"); } +#line 4240 "util/configparser.c" break; case 345: -#line 994 "util/configparser.y" - { - OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[(2) - (2)].str))); +#line 994 "./util/configparser.y" + { + OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); - cfg_parser->cfg->tls_ciphers = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } +#line 4250 "util/configparser.c" break; case 346: -#line 1001 "util/configparser.y" - { - OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1001 "./util/configparser.y" + { + OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); - cfg_parser->cfg->tls_ciphersuites = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } +#line 4260 "util/configparser.c" break; case 347: -#line 1008 "util/configparser.y" - { - OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1008 "./util/configparser.y" + { + OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, - (yyvsp[(2) - (2)].str))) + (yyvsp[0].str))) yyerror("out of memory"); } +#line 4271 "util/configparser.c" break; case 348: -#line 1016 "util/configparser.y" - { - OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1016 "./util/configparser.y" + { + OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4283 "util/configparser.c" break; case 349: -#line 1025 "util/configparser.y" - { - OUTYY(("P(server_https_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1025 "./util/configparser.y" + { + OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); - else cfg_parser->cfg->https_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4295 "util/configparser.c" break; case 350: -#line 1033 "util/configparser.y" - { - OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1033 "./util/configparser.y" + { + OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); - if((yyvsp[(2) - (2)].str) && (yyvsp[(2) - (2)].str)[0] != '/') { - cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[(2) - (2)].str))+2); + if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { + cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2); if(!cfg_parser->cfg->http_endpoint) yyerror("out of memory"); cfg_parser->cfg->http_endpoint[0] = '/'; - memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[(2) - (2)].str), - strlen((yyvsp[(2) - (2)].str))+1); - free((yyvsp[(2) - (2)].str)); + memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str), + strlen((yyvsp[0].str))+1); + free((yyvsp[0].str)); } else { - cfg_parser->cfg->http_endpoint = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } +#line 4315 "util/configparser.c" break; case 351: -#line 1049 "util/configparser.y" - { - OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1049 "./util/configparser.y" + { + OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->http_max_streams = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4327 "util/configparser.c" break; case 352: -#line 1057 "util/configparser.y" - { - OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), +#line 1057 "./util/configparser.y" + { + OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->http_query_buffer_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4339 "util/configparser.c" break; case 353: -#line 1065 "util/configparser.y" - { - OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), +#line 1065 "./util/configparser.y" + { + OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->http_response_buffer_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4351 "util/configparser.c" break; case 354: -#line 1073 "util/configparser.y" - { - OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1073 "./util/configparser.y" + { + OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4363 "util/configparser.c" break; case 355: -#line 1081 "util/configparser.y" - { - OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1081 "./util/configparser.y" + { + OUTYY(("P(server_http_notls_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->http_notls_downstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4375 "util/configparser.c" break; case 356: -#line 1089 "util/configparser.y" - { - OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1089 "./util/configparser.y" + { + OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4387 "util/configparser.c" break; case 357: -#line 1098 "util/configparser.y" - { - OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1098 "./util/configparser.y" + { + OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4399 "util/configparser.c" break; case 358: -#line 1107 "util/configparser.y" - { - OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1107 "./util/configparser.y" + { + OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0); #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) - if(strcmp((yyvsp[(2) - (2)].str), "yes") == 0) + if(strcmp((yyvsp[0].str), "yes") == 0) yyerror("no syslog services are available. " "(reconfigure and compile to add)"); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4416 "util/configparser.c" break; case 359: -#line 1121 "util/configparser.y" - { - OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1121 "./util/configparser.y" + { + OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4428 "util/configparser.c" break; case 360: -#line 1130 "util/configparser.y" - { - OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1130 "./util/configparser.y" + { + OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_queries = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4440 "util/configparser.c" break; case 361: -#line 1139 "util/configparser.y" - { - OUTYY(("P(server_log_replies:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1139 "./util/configparser.y" + { + OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_replies = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4452 "util/configparser.c" break; case 362: -#line 1148 "util/configparser.y" - { - OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1148 "./util/configparser.y" + { + OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4464 "util/configparser.c" break; case 363: -#line 1157 "util/configparser.y" - { - OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1157 "./util/configparser.y" + { + OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4476 "util/configparser.c" break; case 364: -#line 1166 "util/configparser.y" - { - OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1166 "./util/configparser.y" + { + OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4488 "util/configparser.c" break; case 365: -#line 1175 "util/configparser.y" - { - OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1175 "./util/configparser.y" + { + OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); - cfg_parser->cfg->chrootdir = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->chrootdir = (yyvsp[0].str); } +#line 4498 "util/configparser.c" break; case 366: -#line 1182 "util/configparser.y" - { - OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1182 "./util/configparser.y" + { + OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); - cfg_parser->cfg->username = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->username = (yyvsp[0].str); } +#line 4508 "util/configparser.c" break; case 367: -#line 1189 "util/configparser.y" - { - OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1189 "./util/configparser.y" + { + OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); - cfg_parser->cfg->directory = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->directory = (yyvsp[0].str); /* change there right away for includes relative to this */ - if((yyvsp[(2) - (2)].str)[0]) { + if((yyvsp[0].str)[0]) { char* d; #ifdef UB_ON_WINDOWS w_config_adjust_directory(cfg_parser->cfg); @@ -4222,1100 +4533,1194 @@ yyreduce: } } } +#line 4537 "util/configparser.c" break; case 368: -#line 1215 "util/configparser.y" - { - OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1215 "./util/configparser.y" + { + OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); - cfg_parser->cfg->logfile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } +#line 4548 "util/configparser.c" break; case 369: -#line 1223 "util/configparser.y" - { - OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1223 "./util/configparser.y" + { + OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); - cfg_parser->cfg->pidfile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->pidfile = (yyvsp[0].str); } +#line 4558 "util/configparser.c" break; case 370: -#line 1230 "util/configparser.y" - { - OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str))) +#line 1230 "./util/configparser.y" + { + OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4568 "util/configparser.c" break; case 371: -#line 1237 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1237 "./util/configparser.y" + { + OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4578 "util/configparser.c" break; case 372: -#line 1244 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1244 "./util/configparser.y" + { + OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4588 "util/configparser.c" break; case 373: -#line 1251 "util/configparser.y" - { - OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1251 "./util/configparser.y" + { + OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> - auto_trust_anchor_file_list, (yyvsp[(2) - (2)].str))) + auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4599 "util/configparser.c" break; case 374: -#line 1259 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1259 "./util/configparser.y" + { + OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trust_anchor_file_list, (yyvsp[(2) - (2)].str))) + trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4610 "util/configparser.c" break; case 375: -#line 1267 "util/configparser.y" - { - OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1267 "./util/configparser.y" + { + OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, (yyvsp[(2) - (2)].str))) + trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4621 "util/configparser.c" break; case 376: -#line 1275 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str))) +#line 1275 "./util/configparser.y" + { + OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4631 "util/configparser.c" break; case 377: -#line 1282 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1282 "./util/configparser.y" + { + OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->trust_anchor_signaling = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4645 "util/configparser.c" break; case 378: -#line 1293 "util/configparser.y" - { - OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1293 "./util/configparser.y" + { + OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->root_key_sentinel = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4659 "util/configparser.c" break; case 379: -#line 1304 "util/configparser.y" - { - OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str))) +#line 1304 "./util/configparser.y" + { + OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } +#line 4669 "util/configparser.c" break; case 380: -#line 1311 "util/configparser.y" - { - OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1311 "./util/configparser.y" + { + OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4681 "util/configparser.c" break; case 381: -#line 1320 "util/configparser.y" - { - OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1320 "./util/configparser.y" + { + OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->hide_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4693 "util/configparser.c" break; case 382: -#line 1329 "util/configparser.y" - { - OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1329 "./util/configparser.y" + { + OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4705 "util/configparser.c" break; case 383: -#line 1338 "util/configparser.y" - { - OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1338 "./util/configparser.y" + { + OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); - cfg_parser->cfg->identity = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->identity = (yyvsp[0].str); } +#line 4715 "util/configparser.c" break; case 384: -#line 1345 "util/configparser.y" - { - OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1345 "./util/configparser.y" + { + OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); - cfg_parser->cfg->version = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->version = (yyvsp[0].str); } +#line 4725 "util/configparser.c" break; case 385: -#line 1352 "util/configparser.y" - { - OUTYY(("P(server_nsid:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1352 "./util/configparser.y" + { + OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); - cfg_parser->cfg->nsid_cfg_str = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str); free(cfg_parser->cfg->nsid); cfg_parser->cfg->nsid = NULL; cfg_parser->cfg->nsid_len = 0; - if (*(yyvsp[(2) - (2)].str) == 0) + if (*(yyvsp[0].str) == 0) ; /* pass; empty string is not setting nsid */ else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid( - (yyvsp[(2) - (2)].str), &cfg_parser->cfg->nsid_len))) + (yyvsp[0].str), &cfg_parser->cfg->nsid_len))) yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } +#line 4744 "util/configparser.c" break; case 386: -#line 1368 "util/configparser.y" - { - OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf)) +#line 1368 "./util/configparser.y" + { + OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4755 "util/configparser.c" break; case 387: -#line 1376 "util/configparser.y" - { - OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf)) +#line 1376 "./util/configparser.y" + { + OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4766 "util/configparser.c" break; case 388: -#line 1384 "util/configparser.y" +#line 1384 "./util/configparser.y" { - OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_so_reuseport:%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->so_reuseport = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4779 "util/configparser.c" break; case 389: -#line 1394 "util/configparser.y" +#line 1394 "./util/configparser.y" { - OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_ip_transparent:%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->ip_transparent = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4792 "util/configparser.c" break; case 390: -#line 1404 "util/configparser.y" +#line 1404 "./util/configparser.y" { - OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_ip_freebind:%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->ip_freebind = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4805 "util/configparser.c" break; case 391: -#line 1414 "util/configparser.y" - { - OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1414 "./util/configparser.y" + { + OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) > 63) + else if (atoi((yyvsp[0].str)) > 63) yyerror("value too large (max 63)"); - else if (atoi((yyvsp[(2) - (2)].str)) < 0) + else if (atoi((yyvsp[0].str)) < 0) yyerror("value too small (min 0)"); else - cfg_parser->cfg->ip_dscp = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4822 "util/configparser.c" break; case 392: -#line 1428 "util/configparser.y" - { - OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->stream_wait_size)) +#line 1428 "./util/configparser.y" + { + OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4833 "util/configparser.c" break; case 393: -#line 1436 "util/configparser.y" - { - OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1436 "./util/configparser.y" + { + OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 12) + else if (atoi((yyvsp[0].str)) < 12) yyerror("edns buffer size too small"); - else if (atoi((yyvsp[(2) - (2)].str)) > 65535) + else if (atoi((yyvsp[0].str)) > 65535) cfg_parser->cfg->edns_buffer_size = 65535; - else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4849 "util/configparser.c" break; case 394: -#line 1449 "util/configparser.y" - { - OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1449 "./util/configparser.y" + { + OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else if (atoi((yyvsp[(2) - (2)].str)) < 4096) + else if (atoi((yyvsp[0].str)) < 4096) yyerror("message buffer size too small (use 4096)"); - else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4863 "util/configparser.c" break; case 395: -#line 1460 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size)) +#line 1460 "./util/configparser.y" + { + OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4874 "util/configparser.c" break; case 396: -#line 1468 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1468 "./util/configparser.y" + { + OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4890 "util/configparser.c" break; case 397: -#line 1481 "util/configparser.y" - { - OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1481 "./util/configparser.y" + { + OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4902 "util/configparser.c" break; case 398: -#line 1490 "util/configparser.y" - { - OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1490 "./util/configparser.y" + { + OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->jostle_time = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4914 "util/configparser.c" break; case 399: -#line 1499 "util/configparser.y" - { - OUTYY(("P(server_delay_close:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1499 "./util/configparser.y" + { + OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->delay_close = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 4926 "util/configparser.c" break; case 400: -#line 1508 "util/configparser.y" - { - OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1508 "./util/configparser.y" + { + OUTYY(("P(server_udp_connect:%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_connect = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4938 "util/configparser.c" break; case 401: -#line 1517 "util/configparser.y" - { - OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1517 "./util/configparser.y" + { + OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->unblock_lan_zones = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4951 "util/configparser.c" break; case 402: -#line 1527 "util/configparser.y" - { - OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1527 "./util/configparser.y" + { + OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->insecure_lan_zones = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 4964 "util/configparser.c" break; case 403: -#line 1537 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size)) +#line 1537 "./util/configparser.y" + { + OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4975 "util/configparser.c" break; case 404: -#line 1545 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1545 "./util/configparser.y" + { + OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 4991 "util/configparser.c" break; case 405: -#line 1558 "util/configparser.y" - { - OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1558 "./util/configparser.y" + { + OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->host_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5003 "util/configparser.c" break; case 406: -#line 1567 "util/configparser.y" - { - OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1567 "./util/configparser.y" + { + OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " - "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + "removed, use infra-host-ttl)", (yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5014 "util/configparser.c" break; case 407: -#line 1575 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1575 "./util/configparser.y" + { + OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5026 "util/configparser.c" break; case 408: -#line 1584 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1584 "./util/configparser.y" + { + OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " - "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5037 "util/configparser.c" break; case 409: -#line 1592 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 1592 "./util/configparser.y" + { + OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5053 "util/configparser.c" break; case 410: -#line 1605 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1605 "./util/configparser.y" + { + OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5065 "util/configparser.c" break; case 411: -#line 1614 "util/configparser.y" - { - OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1614 "./util/configparser.y" + { + OUTYY(("P(server_infra_keep_probing:%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->infra_keep_probing = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5078 "util/configparser.c" break; case 412: -#line 1624 "util/configparser.y" - { - OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1624 "./util/configparser.y" + { + OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); - cfg_parser->cfg->target_fetch_policy = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } +#line 5088 "util/configparser.c" break; case 413: -#line 1631 "util/configparser.y" - { - OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1631 "./util/configparser.y" + { + OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_short_bufsize = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5101 "util/configparser.c" break; case 414: -#line 1641 "util/configparser.y" - { - OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1641 "./util/configparser.y" + { + OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_large_queries = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5114 "util/configparser.c" break; case 415: -#line 1651 "util/configparser.y" - { - OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1651 "./util/configparser.y" + { + OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_glue = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5127 "util/configparser.c" break; case 416: -#line 1661 "util/configparser.y" - { - OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1661 "./util/configparser.y" + { + OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_dnssec_stripped = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5140 "util/configparser.c" break; case 417: -#line 1671 "util/configparser.y" - { - OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1671 "./util/configparser.y" + { + OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_below_nxdomain = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5153 "util/configparser.c" break; case 418: -#line 1681 "util/configparser.y" - { - OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1681 "./util/configparser.y" + { + OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_referral_path = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5166 "util/configparser.c" break; case 419: -#line 1691 "util/configparser.y" - { - OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1691 "./util/configparser.y" + { + OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->harden_algo_downgrade = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5179 "util/configparser.c" break; case 420: -#line 1701 "util/configparser.y" - { - OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1701 "./util/configparser.y" + { + OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->use_caps_bits_for_id = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5192 "util/configparser.c" break; case 421: -#line 1711 "util/configparser.y" - { - OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[(2) - (2)].str))) +#line 1711 "./util/configparser.y" + { + OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } +#line 5202 "util/configparser.c" break; case 422: -#line 1718 "util/configparser.y" - { - OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) +#line 1718 "./util/configparser.y" + { + OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } +#line 5212 "util/configparser.c" break; case 423: -#line 1725 "util/configparser.y" - { - OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) +#line 1725 "./util/configparser.y" + { + OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } +#line 5222 "util/configparser.c" break; case 424: -#line 1732 "util/configparser.y" - { - OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1732 "./util/configparser.y" + { + OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5234 "util/configparser.c" break; case 425: -#line 1741 "util/configparser.y" - { - OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1741 "./util/configparser.y" + { + OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5246 "util/configparser.c" break; case 426: -#line 1750 "util/configparser.y" - { - OUTYY(("P(server_deny_any:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1750 "./util/configparser.y" + { + OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->deny_any = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5258 "util/configparser.c" break; case 427: -#line 1759 "util/configparser.y" - { - OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1759 "./util/configparser.y" + { + OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5270 "util/configparser.c" break; case 428: -#line 1768 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) +#line 1768 "./util/configparser.y" + { + OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } +#line 5280 "util/configparser.c" break; case 429: -#line 1775 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1775 "./util/configparser.y" + { + OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->donotquery_localhost = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5293 "util/configparser.c" break; case 430: -#line 1785 "util/configparser.y" - { - OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && - strcmp((yyvsp[(3) - (3)].str), "deny_non_local")!=0 && - strcmp((yyvsp[(3) - (3)].str), "refuse_non_local")!=0 && - strcmp((yyvsp[(3) - (3)].str), "allow_setrd")!=0 && - strcmp((yyvsp[(3) - (3)].str), "allow")!=0 && - strcmp((yyvsp[(3) - (3)].str), "allow_snoop")!=0) { +#line 1785 "./util/configparser.y" + { + OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && + strcmp((yyvsp[0].str), "deny_non_local")!=0 && + strcmp((yyvsp[0].str), "refuse_non_local")!=0 && + strcmp((yyvsp[0].str), "allow_setrd")!=0 && + strcmp((yyvsp[0].str), "allow")!=0 && + strcmp((yyvsp[0].str), "allow_snoop")!=0) { yyerror("expected deny, refuse, deny_non_local, " "refuse_non_local, allow, allow_setrd or " "allow_snoop in access control action"); - free((yyvsp[(2) - (3)].str)); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding acl"); } } +#line 5316 "util/configparser.c" break; case 431: -#line 1805 "util/configparser.y" - { - OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); +#line 1805 "./util/configparser.y" + { + OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); - cfg_parser->cfg->module_conf = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->module_conf = (yyvsp[0].str); } +#line 5326 "util/configparser.c" break; case 432: -#line 1812 "util/configparser.y" - { - OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); - if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { +#line 1812 "./util/configparser.y" + { + OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_date_override = 0; - } else if(strlen((yyvsp[(2) - (2)].str)) == 14) { + } else if(strlen((yyvsp[0].str)) == 14) { cfg_parser->cfg->val_date_override = - cfg_convert_timeval((yyvsp[(2) - (2)].str)); + cfg_convert_timeval((yyvsp[0].str)); if(!cfg_parser->cfg->val_date_override) yyerror("bad date/time specification"); } else { - if(atoi((yyvsp[(2) - (2)].str)) == 0) + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - cfg_parser->cfg->val_date_override = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str)); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5347 "util/configparser.c" break; case 433: -#line 1830 "util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); - if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { +#line 1830 "./util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_min = 0; } else { - cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str)); if(!cfg_parser->cfg->val_sig_skew_min) yyerror("number expected"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5363 "util/configparser.c" break; case 434: -#line 1843 "util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); - if(*(yyvsp[(2) - (2)].str) == '\0' || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { +#line 1843 "./util/configparser.y" + { + OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_max = 0; } else { - cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str)); if(!cfg_parser->cfg->val_sig_skew_max) yyerror("number expected"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5379 "util/configparser.c" break; case 435: -#line 1856 "util/configparser.y" - { - OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1856 "./util/configparser.y" + { + OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->max_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5391 "util/configparser.c" break; case 436: -#line 1865 "util/configparser.y" - { - OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1865 "./util/configparser.y" + { + OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5403 "util/configparser.c" break; case 437: -#line 1874 "util/configparser.y" - { - OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1874 "./util/configparser.y" + { + OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->min_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5415 "util/configparser.c" break; case 438: -#line 1883 "util/configparser.y" - { - OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1883 "./util/configparser.y" + { + OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5427 "util/configparser.c" break; case 439: -#line 1892 "util/configparser.y" - { - OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1892 "./util/configparser.y" + { + OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->val_clean_additional = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5440 "util/configparser.c" break; case 440: -#line 1902 "util/configparser.y" - { - OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1902 "./util/configparser.y" + { + OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->val_permissive_mode = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5453 "util/configparser.c" break; case 441: -#line 1912 "util/configparser.y" - { - OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1912 "./util/configparser.y" + { + OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->aggressive_nsec = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5467 "util/configparser.c" break; case 442: -#line 1923 "util/configparser.y" - { - OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1923 "./util/configparser.y" + { + OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5479 "util/configparser.c" break; case 443: -#line 1932 "util/configparser.y" - { - OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1932 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5491 "util/configparser.c" break; case 444: -#line 1941 "util/configparser.y" - { - OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1941 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5503 "util/configparser.c" break; case 445: -#line 1950 "util/configparser.y" - { - OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1950 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5515 "util/configparser.c" break; case 446: -#line 1959 "util/configparser.y" - { - OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1959 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5527 "util/configparser.c" break; case 447: -#line 1968 "util/configparser.y" - { - OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 1968 "./util/configparser.y" + { + OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5539 "util/configparser.c" break; case 448: -#line 1977 "util/configparser.y" - { - OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1977 "./util/configparser.y" + { + OUTYY(("P(server_serve_original_ttl:%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->serve_original_ttl = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5551 "util/configparser.c" break; case 449: -#line 1986 "util/configparser.y" - { - OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1986 "./util/configparser.y" + { + OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); #if defined(HAVE_SSL) || defined(HAVE_NETTLE) - else fake_dsa = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0); if(fake_dsa) log_warn("test option fake_dsa is enabled"); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5567 "util/configparser.c" break; case 450: -#line 1999 "util/configparser.y" - { - OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 1999 "./util/configparser.y" + { + OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); #if defined(HAVE_SSL) || defined(HAVE_NETTLE) - else fake_sha1 = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0); if(fake_sha1) log_warn("test option fake_sha1 is enabled"); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5583 "util/configparser.c" break; case 451: -#line 2012 "util/configparser.y" - { - OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2012 "./util/configparser.y" + { + OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->val_log_level = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5595 "util/configparser.c" break; case 452: -#line 2021 "util/configparser.y" - { - OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2021 "./util/configparser.y" + { + OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); - cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } +#line 5605 "util/configparser.c" break; case 453: -#line 2028 "util/configparser.y" - { - OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2028 "./util/configparser.y" + { + OUTYY(("P(server_zonemd_permissive_mode:%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->zonemd_permissive_mode = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5617 "util/configparser.c" break; case 454: -#line 2037 "util/configparser.y" - { - OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2037 "./util/configparser.y" + { + OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->add_holddown = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5629 "util/configparser.c" break; case 455: -#line 2046 "util/configparser.y" - { - OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2046 "./util/configparser.y" + { + OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->del_holddown = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5641 "util/configparser.c" break; case 456: -#line 2055 "util/configparser.y" - { - OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2055 "./util/configparser.y" + { + OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->keep_missing = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5653 "util/configparser.c" break; case 457: -#line 2064 "util/configparser.y" - { - OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2064 "./util/configparser.y" + { + OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->permit_small_holddown = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5666 "util/configparser.c" break; case 458: -#line 2073 "util/configparser.y" - { - OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) +#line 2073 "./util/configparser.y" + { + OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5677 "util/configparser.c" break; case 459: -#line 2081 "util/configparser.y" - { - OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2081 "./util/configparser.y" + { + OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5693 "util/configparser.c" break; case 460: -#line 2094 "util/configparser.y" - { - OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) +#line 2094 "./util/configparser.y" + { + OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5704 "util/configparser.c" break; case 461: -#line 2102 "util/configparser.y" - { - OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && - strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && - strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0 - && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0 - && strcmp((yyvsp[(3) - (3)].str), "noview")!=0 - && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0 - && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0 - && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) { +#line 2102 "./util/configparser.y" + { + OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && + strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && + strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 + && strcmp((yyvsp[0].str), "typetransparent")!=0 + && strcmp((yyvsp[0].str), "always_transparent")!=0 + && strcmp((yyvsp[0].str), "always_refuse")!=0 + && strcmp((yyvsp[0].str), "always_nxdomain")!=0 + && strcmp((yyvsp[0].str), "always_nodata")!=0 + && strcmp((yyvsp[0].str), "always_deny")!=0 + && strcmp((yyvsp[0].str), "always_null")!=0 + && strcmp((yyvsp[0].str), "noview")!=0 + && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 + && strcmp((yyvsp[0].str), "inform_redirect") != 0 + && strcmp((yyvsp[0].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -5323,44 +5728,46 @@ yyreduce: "always_refuse, always_nxdomain, " "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); - free((yyvsp[(2) - (3)].str)); - free((yyvsp[(3) - (3)].str)); - } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { + free((yyvsp[-1].str)); + free((yyvsp[0].str)); + } else if(strcmp((yyvsp[0].str), "nodefault")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_nodefault, (yyvsp[(2) - (3)].str))) + local_zones_nodefault, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[0].str)); #ifdef USE_IPSET - } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) { + } else if(strcmp((yyvsp[0].str), "ipset")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_ipset, (yyvsp[(2) - (3)].str))) + local_zones_ipset, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[0].str)); #endif } else { if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding local-zone"); } } +#line 5752 "util/configparser.c" break; case 462: -#line 2147 "util/configparser.y" - { - OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) +#line 2147 "./util/configparser.y" + { + OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } +#line 5762 "util/configparser.c" break; case 463: -#line 2154 "util/configparser.y" - { +#line 2154 "./util/configparser.y" + { char* ptr; - OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); - ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); + ptr = cfg_ptr_reverse((yyvsp[0].str)); + free((yyvsp[0].str)); if(ptr) { if(!cfg_strlist_insert(&cfg_parser->cfg-> local_data, ptr)) @@ -5369,85 +5776,93 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } +#line 5780 "util/configparser.c" break; case 464: -#line 2169 "util/configparser.y" - { - OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2169 "./util/configparser.y" + { + OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->minimal_responses = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5793 "util/configparser.c" break; case 465: -#line 2179 "util/configparser.y" - { - OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2179 "./util/configparser.y" + { + OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->rrset_roundrobin = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5806 "util/configparser.c" break; case 466: -#line 2189 "util/configparser.y" - { - OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[(2) - (2)].str))); - cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); +#line 2189 "./util/configparser.y" + { + OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); + cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5816 "util/configparser.c" break; case 467: -#line 2196 "util/configparser.y" - { - OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[(2) - (2)].str))); - cfg_parser->cfg->max_udp_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); +#line 2196 "./util/configparser.y" + { + OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); + cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 5826 "util/configparser.c" break; case 468: -#line 2203 "util/configparser.y" - { - OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2203 "./util/configparser.y" + { + OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); - cfg_parser->cfg->dns64_prefix = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } +#line 5836 "util/configparser.c" break; case 469: -#line 2210 "util/configparser.y" - { - OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2210 "./util/configparser.y" + { + OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 5848 "util/configparser.c" break; case 470: -#line 2219 "util/configparser.y" - { - OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2219 "./util/configparser.y" + { + OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, - (yyvsp[(2) - (2)].str))) + (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } +#line 5859 "util/configparser.c" break; case 471: -#line 2227 "util/configparser.y" - { - char* p, *s = (yyvsp[(2) - (2)].str); - OUTYY(("P(server_define_tag:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2227 "./util/configparser.y" + { + char* p, *s = (yyvsp[0].str); + OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); while((p=strsep(&s, " \t\n")) != NULL) { if(*p) { if(!config_add_tag(cfg_parser->cfg, p)) @@ -5455,742 +5870,800 @@ yyreduce: "out of memory"); } } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 5876 "util/configparser.c" break; case 472: -#line 2241 "util/configparser.y" - { +#line 2241 "./util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); - free((yyvsp[(3) - (3)].str)); - OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[(2) - (3)].str))); + free((yyvsp[0].str)); + OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->local_zone_tags, - (yyvsp[(2) - (3)].str), bitlist, len)) { + (yyvsp[-1].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } } } +#line 5900 "util/configparser.c" break; case 473: -#line 2262 "util/configparser.y" - { +#line 2262 "./util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); - free((yyvsp[(3) - (3)].str)); - OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[(2) - (3)].str))); + free((yyvsp[0].str)); + OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->acl_tags, - (yyvsp[(2) - (3)].str), bitlist, len)) { + (yyvsp[-1].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } } } +#line 5924 "util/configparser.c" break; case 474: -#line 2283 "util/configparser.y" - { - OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); +#line 2283 "./util/configparser.y" + { + OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, - (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); - free((yyvsp[(2) - (4)].str)); - free((yyvsp[(3) - (4)].str)); - free((yyvsp[(4) - (4)].str)); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } } +#line 5939 "util/configparser.c" break; case 475: -#line 2295 "util/configparser.y" - { - OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); +#line 2295 "./util/configparser.y" + { + OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, - (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); - free((yyvsp[(2) - (4)].str)); - free((yyvsp[(3) - (4)].str)); - free((yyvsp[(4) - (4)].str)); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } } +#line 5954 "util/configparser.c" break; case 476: -#line 2307 "util/configparser.y" - { - OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))); +#line 2307 "./util/configparser.y" + { + OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, - (yyvsp[(2) - (4)].str), (yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].str))) { + (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); - free((yyvsp[(2) - (4)].str)); - free((yyvsp[(3) - (4)].str)); - free((yyvsp[(4) - (4)].str)); + free((yyvsp[-2].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } } +#line 5969 "util/configparser.c" break; case 477: -#line 2319 "util/configparser.y" - { - OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); +#line 2319 "./util/configparser.y" + { + OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) { + (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); } } +#line 5981 "util/configparser.c" break; case 478: -#line 2328 "util/configparser.y" - { +#line 2328 "./util/configparser.y" + { size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[(3) - (3)].str), + uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); - free((yyvsp[(3) - (3)].str)); - OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[(2) - (3)].str))); + free((yyvsp[0].str)); + OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str))); if(!bitlist) { yyerror("could not parse tags, (define-tag them first)"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } if(bitlist) { if(!cfg_strbytelist_insert( &cfg_parser->cfg->respip_tags, - (yyvsp[(2) - (3)].str), bitlist, len)) { + (yyvsp[-1].str), bitlist, len)) { yyerror("out of memory"); - free((yyvsp[(2) - (3)].str)); + free((yyvsp[-1].str)); } } } +#line 6005 "util/configparser.c" break; case 479: -#line 2349 "util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2349 "./util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6017 "util/configparser.c" break; case 480: -#line 2359 "util/configparser.y" - { - OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2359 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->ratelimit = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6029 "util/configparser.c" break; case 481: -#line 2368 "util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ip_ratelimit_size)) +#line 2368 "./util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6040 "util/configparser.c" break; case 482: -#line 2376 "util/configparser.y" - { - OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->ratelimit_size)) +#line 2376 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6051 "util/configparser.c" break; case 483: -#line 2384 "util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2384 "./util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6067 "util/configparser.c" break; case 484: -#line 2397 "util/configparser.y" - { - OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2397 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->ratelimit_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6083 "util/configparser.c" break; case 485: -#line 2410 "util/configparser.y" - { - OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { +#line 2410 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); - free((yyvsp[(2) - (3)].str)); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } else { if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_for_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding " "ratelimit-for-domain"); } } +#line 6101 "util/configparser.c" break; case 486: -#line 2425 "util/configparser.y" - { - OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(atoi((yyvsp[(3) - (3)].str)) == 0 && strcmp((yyvsp[(3) - (3)].str), "0") != 0) { +#line 2425 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); - free((yyvsp[(2) - (3)].str)); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[-1].str)); + free((yyvsp[0].str)); } else { if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_below_domain, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding " "ratelimit-below-domain"); } } +#line 6119 "util/configparser.c" break; case 487: -#line 2440 "util/configparser.y" - { - OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2440 "./util/configparser.y" + { + OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6131 "util/configparser.c" break; case 488: -#line 2449 "util/configparser.y" - { - OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2449 "./util/configparser.y" + { + OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6143 "util/configparser.c" break; case 489: -#line 2458 "util/configparser.y" - { +#line 2458 "./util/configparser.y" + { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6152 "util/configparser.c" break; case 490: -#line 2464 "util/configparser.y" - { - OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) <= 0) +#line 2464 "./util/configparser.y" + { + OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) <= 0) yyerror("number expected"); - else cfg_parser->cfg->fast_server_num = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6164 "util/configparser.c" break; case 491: -#line 2473 "util/configparser.y" - { - OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2473 "./util/configparser.y" + { + OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6176 "util/configparser.c" break; case 492: -#line 2482 "util/configparser.y" - { - OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2482 "./util/configparser.y" + { + OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->qname_minimisation = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6189 "util/configparser.c" break; case 493: -#line 2492 "util/configparser.y" - { - OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2492 "./util/configparser.y" + { + OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->qname_minimisation_strict = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6202 "util/configparser.c" break; case 494: -#line 2502 "util/configparser.y" - { - OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2502 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses:%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->pad_responses = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6215 "util/configparser.c" break; case 495: -#line 2512 "util/configparser.y" - { - OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2512 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6227 "util/configparser.c" break; case 496: -#line 2521 "util/configparser.y" - { - OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2521 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries:%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->pad_queries = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6240 "util/configparser.c" break; case 497: -#line 2531 "util/configparser.y" - { - OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2531 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); - else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6252 "util/configparser.c" break; case 498: -#line 2540 "util/configparser.y" - { +#line 2540 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6268 "util/configparser.c" break; case 499: -#line 2553 "util/configparser.y" - { +#line 2553 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 6284 "util/configparser.c" break; case 500: -#line 2566 "util/configparser.y" - { +#line 2566 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ipsecmod_hook); - cfg_parser->cfg->ipsecmod_hook = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 6299 "util/configparser.c" break; case 501: -#line 2578 "util/configparser.y" - { +#line 2578 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) + OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); - else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 6316 "util/configparser.c" break; case 502: -#line 2592 "util/configparser.y" - { +#line 2592 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[(2) - (2)].str))) + OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str))) yyerror("out of memory"); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 6331 "util/configparser.c" break; case 503: -#line 2604 "util/configparser.y" - { +#line 2604 "./util/configparser.y" + { #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); #else OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 6348 "util/configparser.c" break; case 504: -#line 2618 "util/configparser.y" - { - OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); +#line 2618 "./util/configparser.y" + { + OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( - &cfg_parser->cfg->edns_client_strings, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding " "edns-client-string"); } +#line 6360 "util/configparser.c" break; case 505: -#line 2627 "util/configparser.y" - { - OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) +#line 2627 "./util/configparser.y" + { + OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("option code expected"); - else if(atoi((yyvsp[(2) - (2)].str)) > 65535 || atoi((yyvsp[(2) - (2)].str)) < 0) + else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) yyerror("option code must be in interval [0, 65535]"); - else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6375 "util/configparser.c" break; case 506: -#line 2639 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2639 "./util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) yyerror("stub name override, there must be one name " "for one stub-zone"); free(cfg_parser->cfg->stubs->name); - cfg_parser->cfg->stubs->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->stubs->name = (yyvsp[0].str); } +#line 6388 "util/configparser.c" break; case 507: -#line 2649 "util/configparser.y" - { - OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) +#line 2649 "./util/configparser.y" + { + OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6398 "util/configparser.c" break; case 508: -#line 2656 "util/configparser.y" - { - OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) +#line 2656 "./util/configparser.y" + { + OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6408 "util/configparser.c" break; case 509: -#line 2663 "util/configparser.y" - { - OUTYY(("P(stub-first:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2663 "./util/configparser.y" + { + OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6420 "util/configparser.c" break; case 510: -#line 2672 "util/configparser.y" - { - OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2672 "./util/configparser.y" + { + OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6432 "util/configparser.c" break; case 511: -#line 2681 "util/configparser.y" - { - OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2681 "./util/configparser.y" + { + OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->ssl_upstream = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6445 "util/configparser.c" break; case 512: -#line 2691 "util/configparser.y" - { - OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2691 "./util/configparser.y" + { + OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->isprime = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6458 "util/configparser.c" break; case 513: -#line 2701 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2701 "./util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) yyerror("forward name override, there must be one " "name for one forward-zone"); free(cfg_parser->cfg->forwards->name); - cfg_parser->cfg->forwards->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->forwards->name = (yyvsp[0].str); } +#line 6471 "util/configparser.c" break; case 514: -#line 2711 "util/configparser.y" - { - OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) +#line 2711 "./util/configparser.y" + { + OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6481 "util/configparser.c" break; case 515: -#line 2718 "util/configparser.y" - { - OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) +#line 2718 "./util/configparser.y" + { + OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6491 "util/configparser.c" break; case 516: -#line 2725 "util/configparser.y" - { - OUTYY(("P(forward-first:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2725 "./util/configparser.y" + { + OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6503 "util/configparser.c" break; case 517: -#line 2734 "util/configparser.y" - { - OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2734 "./util/configparser.y" + { + OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6515 "util/configparser.c" break; case 518: -#line 2743 "util/configparser.y" - { - OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2743 "./util/configparser.y" + { + OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->forwards->ssl_upstream = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6528 "util/configparser.c" break; case 519: -#line 2753 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2753 "./util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) yyerror("auth name override, there must be one name " "for one auth-zone"); free(cfg_parser->cfg->auths->name); - cfg_parser->cfg->auths->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->auths->name = (yyvsp[0].str); } +#line 6541 "util/configparser.c" break; case 520: -#line 2763 "util/configparser.y" - { - OUTYY(("P(zonefile:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2763 "./util/configparser.y" + { + OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); - cfg_parser->cfg->auths->zonefile = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } +#line 6551 "util/configparser.c" break; case 521: -#line 2770 "util/configparser.y" - { - OUTYY(("P(master:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[(2) - (2)].str))) +#line 2770 "./util/configparser.y" + { + OUTYY(("P(master:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6561 "util/configparser.c" break; case 522: -#line 2777 "util/configparser.y" - { - OUTYY(("P(url:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[(2) - (2)].str))) +#line 2777 "./util/configparser.y" + { + OUTYY(("P(url:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6571 "util/configparser.c" break; case 523: -#line 2784 "util/configparser.y" - { - OUTYY(("P(allow-notify:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2784 "./util/configparser.y" + { + OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, - (yyvsp[(2) - (2)].str))) + (yyvsp[0].str))) yyerror("out of memory"); } +#line 6582 "util/configparser.c" break; case 524: -#line 2792 "util/configparser.y" - { - OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2792 "./util/configparser.y" + { + OUTYY(("P(zonemd-reject-absence:%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->auths->zonemd_reject_absence = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6595 "util/configparser.c" break; case 525: -#line 2802 "util/configparser.y" - { - OUTYY(("P(for-downstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2802 "./util/configparser.y" + { + OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->auths->for_downstream = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6608 "util/configparser.c" break; case 526: -#line 2812 "util/configparser.y" - { - OUTYY(("P(for-upstream:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2812 "./util/configparser.y" + { + OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->auths->for_upstream = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6621 "util/configparser.c" break; case 527: -#line 2822 "util/configparser.y" - { - OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2822 "./util/configparser.y" + { + OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->auths->fallback_enabled = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6634 "util/configparser.c" break; case 528: -#line 2832 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2832 "./util/configparser.y" + { + OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) yyerror("view name override, there must be one " "name for one view"); free(cfg_parser->cfg->views->name); - cfg_parser->cfg->views->name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->views->name = (yyvsp[0].str); } +#line 6647 "util/configparser.c" break; case 529: -#line 2842 "util/configparser.y" - { - OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && - strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && strcmp((yyvsp[(3) - (3)].str), "redirect")!=0 && - strcmp((yyvsp[(3) - (3)].str), "transparent")!=0 && strcmp((yyvsp[(3) - (3)].str), "nodefault")!=0 - && strcmp((yyvsp[(3) - (3)].str), "typetransparent")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_transparent")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_refuse")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_nxdomain")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_nodata")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_deny")!=0 - && strcmp((yyvsp[(3) - (3)].str), "always_null")!=0 - && strcmp((yyvsp[(3) - (3)].str), "noview")!=0 - && strcmp((yyvsp[(3) - (3)].str), "inform")!=0 && strcmp((yyvsp[(3) - (3)].str), "inform_deny")!=0 - && strcmp((yyvsp[(3) - (3)].str), "inform_redirect") != 0 - && strcmp((yyvsp[(3) - (3)].str), "ipset") != 0) { +#line 2842 "./util/configparser.y" + { + OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && + strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && + strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 + && strcmp((yyvsp[0].str), "typetransparent")!=0 + && strcmp((yyvsp[0].str), "always_transparent")!=0 + && strcmp((yyvsp[0].str), "always_refuse")!=0 + && strcmp((yyvsp[0].str), "always_nxdomain")!=0 + && strcmp((yyvsp[0].str), "always_nodata")!=0 + && strcmp((yyvsp[0].str), "always_deny")!=0 + && strcmp((yyvsp[0].str), "always_null")!=0 + && strcmp((yyvsp[0].str), "noview")!=0 + && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 + && strcmp((yyvsp[0].str), "inform_redirect") != 0 + && strcmp((yyvsp[0].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -6198,68 +6671,72 @@ yyreduce: "always_refuse, always_nxdomain, " "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); - free((yyvsp[(2) - (3)].str)); - free((yyvsp[(3) - (3)].str)); - } else if(strcmp((yyvsp[(3) - (3)].str), "nodefault")==0) { + free((yyvsp[-1].str)); + free((yyvsp[0].str)); + } else if(strcmp((yyvsp[0].str), "nodefault")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_zones_nodefault, (yyvsp[(2) - (3)].str))) + local_zones_nodefault, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[0].str)); #ifdef USE_IPSET - } else if(strcmp((yyvsp[(3) - (3)].str), "ipset")==0) { + } else if(strcmp((yyvsp[0].str), "ipset")==0) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_zones_ipset, (yyvsp[(2) - (3)].str))) + local_zones_ipset, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); - free((yyvsp[(3) - (3)].str)); + free((yyvsp[0].str)); #endif } else { if(!cfg_str2list_insert( &cfg_parser->cfg->views->local_zones, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding local-zone"); } } +#line 6696 "util/configparser.c" break; case 530: -#line 2888 "util/configparser.y" - { - OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - validate_respip_action((yyvsp[(3) - (3)].str)); +#line 2888 "./util/configparser.y" + { + OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_actions, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding per-view " "response-ip action"); } +#line 6709 "util/configparser.c" break; case 531: -#line 2898 "util/configparser.y" - { - OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str))); +#line 2898 "./util/configparser.y" + { + OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_data, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } +#line 6720 "util/configparser.c" break; case 532: -#line 2906 "util/configparser.y" - { - OUTYY(("P(view_local_data:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[(2) - (2)].str))) { +#line 2906 "./util/configparser.y" + { + OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } +#line 6731 "util/configparser.c" break; case 533: -#line 2914 "util/configparser.y" - { +#line 2914 "./util/configparser.y" + { char* ptr; - OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); - ptr = cfg_ptr_reverse((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); + ptr = cfg_ptr_reverse((yyvsp[0].str)); + free((yyvsp[0].str)); if(ptr) { if(!cfg_strlist_insert(&cfg_parser->cfg->views-> local_data, ptr)) @@ -6268,749 +6745,785 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } +#line 6749 "util/configparser.c" break; case 534: -#line 2929 "util/configparser.y" - { - OUTYY(("P(view-first:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2929 "./util/configparser.y" + { + OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6761 "util/configparser.c" break; case 535: -#line 2938 "util/configparser.y" - { +#line 2938 "./util/configparser.y" + { OUTYY(("\nP(remote-control:)\n")); } +#line 6769 "util/configparser.c" break; case 546: -#line 2949 "util/configparser.y" - { - OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 2949 "./util/configparser.y" + { + OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->remote_control_enable = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6782 "util/configparser.c" break; case 547: -#line 2959 "util/configparser.y" - { - OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 2959 "./util/configparser.y" + { + OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("control port number expected"); - else cfg_parser->cfg->control_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 6794 "util/configparser.c" break; case 548: -#line 2968 "util/configparser.y" - { - OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) +#line 2968 "./util/configparser.y" + { + OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } +#line 6804 "util/configparser.c" break; case 549: -#line 2975 "util/configparser.y" - { - OUTYY(("P(control_use_cert:%s)\n", (yyvsp[(2) - (2)].str))); - cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); +#line 2975 "./util/configparser.y" + { + OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); + cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6814 "util/configparser.c" break; case 550: -#line 2982 "util/configparser.y" - { - OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2982 "./util/configparser.y" + { + OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); - cfg_parser->cfg->server_key_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->server_key_file = (yyvsp[0].str); } +#line 6824 "util/configparser.c" break; case 551: -#line 2989 "util/configparser.y" - { - OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2989 "./util/configparser.y" + { + OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); - cfg_parser->cfg->server_cert_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } +#line 6834 "util/configparser.c" break; case 552: -#line 2996 "util/configparser.y" - { - OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 2996 "./util/configparser.y" + { + OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); - cfg_parser->cfg->control_key_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->control_key_file = (yyvsp[0].str); } +#line 6844 "util/configparser.c" break; case 553: -#line 3003 "util/configparser.y" - { - OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3003 "./util/configparser.y" + { + OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); - cfg_parser->cfg->control_cert_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } +#line 6854 "util/configparser.c" break; case 554: -#line 3010 "util/configparser.y" - { +#line 3010 "./util/configparser.y" + { OUTYY(("\nP(dnstap:)\n")); } +#line 6862 "util/configparser.c" break; case 576: -#line 3030 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3030 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6874 "util/configparser.c" break; case 577: -#line 3039 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3039 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_bidirectional = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6887 "util/configparser.c" break; case 578: -#line 3049 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3049 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); - cfg_parser->cfg->dnstap_socket_path = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } +#line 6897 "util/configparser.c" break; case 579: -#line 3056 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3056 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); - cfg_parser->cfg->dnstap_ip = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } +#line 6907 "util/configparser.c" break; case 580: -#line 3063 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3063 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6919 "util/configparser.c" break; case 581: -#line 3072 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3072 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); - cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } +#line 6929 "util/configparser.c" break; case 582: -#line 3079 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3079 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); - cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } +#line 6939 "util/configparser.c" break; case 583: -#line 3086 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3086 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); - cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } +#line 6949 "util/configparser.c" break; case 584: -#line 3093 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3093 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); - cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } +#line 6959 "util/configparser.c" break; case 585: -#line 3100 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3100 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6971 "util/configparser.c" break; case 586: -#line 3109 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3109 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 6983 "util/configparser.c" break; case 587: -#line 3118 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3118 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); - cfg_parser->cfg->dnstap_identity = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } +#line 6993 "util/configparser.c" break; case 588: -#line 3125 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3125 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); - cfg_parser->cfg->dnstap_version = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } +#line 7003 "util/configparser.c" break; case 589: -#line 3132 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3132 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_resolver_query_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7016 "util/configparser.c" break; case 590: -#line 3142 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3142 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_resolver_response_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7029 "util/configparser.c" break; case 591: -#line 3152 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3152 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_client_query_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7042 "util/configparser.c" break; case 592: -#line 3162 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3162 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_client_response_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7055 "util/configparser.c" break; case 593: -#line 3172 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3172 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_forwarder_query_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7068 "util/configparser.c" break; case 594: -#line 3182 "util/configparser.y" - { - OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3182 "./util/configparser.y" + { + OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_log_forwarder_response_messages = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7081 "util/configparser.c" break; case 595: -#line 3192 "util/configparser.y" - { +#line 3192 "./util/configparser.y" + { OUTYY(("\nP(python:)\n")); } +#line 7089 "util/configparser.c" break; case 599: -#line 3201 "util/configparser.y" - { - OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[(2) - (2)].str))) +#line 3201 "./util/configparser.y" + { + OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } +#line 7099 "util/configparser.c" break; case 600: -#line 3207 "util/configparser.y" - { +#line 3207 "./util/configparser.y" + { OUTYY(("\nP(dynlib:)\n")); } +#line 7107 "util/configparser.c" break; case 604: -#line 3216 "util/configparser.y" - { - OUTYY(("P(dynlib-file:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[(2) - (2)].str))) +#line 3216 "./util/configparser.y" + { + OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } +#line 7117 "util/configparser.c" break; case 605: -#line 3222 "util/configparser.y" - { - OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[(2) - (2)].str))); - if (strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3222 "./util/configparser.y" + { + OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); + if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->disable_dnssec_lame_check = - (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7130 "util/configparser.c" break; case 606: -#line 3232 "util/configparser.y" - { - OUTYY(("P(server_log_identity:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3232 "./util/configparser.y" + { + OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); - cfg_parser->cfg->log_identity = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->log_identity = (yyvsp[0].str); } +#line 7140 "util/configparser.c" break; case 607: -#line 3239 "util/configparser.y" - { - OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - validate_respip_action((yyvsp[(3) - (3)].str)); +#line 3239 "./util/configparser.y" + { + OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } +#line 7152 "util/configparser.c" break; case 608: -#line 3248 "util/configparser.y" - { - OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[(2) - (3)].str))); +#line 3248 "./util/configparser.y" + { + OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, - (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } +#line 7163 "util/configparser.c" break; case 609: -#line 3256 "util/configparser.y" - { +#line 3256 "./util/configparser.y" + { OUTYY(("\nP(dnscrypt:)\n")); } +#line 7171 "util/configparser.c" break; case 622: -#line 3272 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) +#line 3272 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); - else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); } +#line 7183 "util/configparser.c" break; case 623: -#line 3282 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 3282 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); - else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[(2) - (2)].str)); - free((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } +#line 7195 "util/configparser.c" break; case 624: -#line 3291 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[(2) - (2)].str))); +#line 3291 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); - cfg_parser->cfg->dnscrypt_provider = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } +#line 7205 "util/configparser.c" break; case 625: -#line 3298 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[(2) - (2)].str))); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str))) - log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[(2) - (2)].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[(2) - (2)].str))) +#line 3298 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) + log_warn("dnscrypt-provider-cert %s is a duplicate", (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 7217 "util/configparser.c" break; case 626: -#line 3307 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[(2) - (2)].str))) +#line 3307 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); + if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } +#line 7227 "util/configparser.c" break; case 627: -#line 3314 "util/configparser.y" - { - OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[(2) - (2)].str))); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str))) - log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[(2) - (2)].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[(2) - (2)].str))) +#line 3314 "./util/configparser.y" + { + OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); + if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) + log_warn("dnscrypt-secret-key: %s is a duplicate", (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 7239 "util/configparser.c" break; case 628: -#line 3323 "util/configparser.y" - { - OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) +#line 3323 "./util/configparser.y" + { + OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7250 "util/configparser.c" break; case 629: -#line 3331 "util/configparser.y" - { - OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 3331 "./util/configparser.y" + { + OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else { - cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[(2) - (2)].str)); + cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str)); if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) yyerror("must be a power of 2"); } - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7266 "util/configparser.c" break; case 630: -#line 3344 "util/configparser.y" - { - OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); - if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) +#line 3344 "./util/configparser.y" + { + OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7277 "util/configparser.c" break; case 631: -#line 3352 "util/configparser.y" - { - OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) +#line 3352 "./util/configparser.y" + { + 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[(2) - (2)].str)); + 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[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7293 "util/configparser.c" break; case 632: -#line 3365 "util/configparser.y" - { +#line 3365 "./util/configparser.y" + { OUTYY(("\nP(cachedb:)\n")); } +#line 7301 "util/configparser.c" break; case 641: -#line 3376 "util/configparser.y" - { +#line 3376 "./util/configparser.y" + { #ifdef USE_CACHEDB - OUTYY(("P(backend:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_backend); - cfg_parser->cfg->cachedb_backend = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->cachedb_backend = (yyvsp[0].str); #else OUTYY(("P(Compiled without cachedb, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 7316 "util/configparser.c" break; case 642: -#line 3388 "util/configparser.y" - { +#line 3388 "./util/configparser.y" + { #ifdef USE_CACHEDB - OUTYY(("P(secret-seed:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_secret); - cfg_parser->cfg->cachedb_secret = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->cachedb_secret = (yyvsp[0].str); #else OUTYY(("P(Compiled without cachedb, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 7331 "util/configparser.c" break; case 643: -#line 3400 "util/configparser.y" - { +#line 3400 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_server_host:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->redis_server_host); - cfg_parser->cfg->redis_server_host = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->redis_server_host = (yyvsp[0].str); #else OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 7346 "util/configparser.c" break; case 644: -#line 3412 "util/configparser.y" - { +#line 3412 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; - OUTYY(("P(redis_server_port:%s)\n", (yyvsp[(2) - (2)].str))); - port = atoi((yyvsp[(2) - (2)].str)); + OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); + port = atoi((yyvsp[0].str)); if(port == 0 || port < 0 || port > 65535) yyerror("valid redis server port number expected"); else cfg_parser->cfg->redis_server_port = port; #else OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7364 "util/configparser.c" break; case 645: -#line 3427 "util/configparser.y" - { +#line 3427 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_timeout:%s)\n", (yyvsp[(2) - (2)].str))); - if(atoi((yyvsp[(2) - (2)].str)) == 0) + OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) yyerror("redis timeout value expected"); - else cfg_parser->cfg->redis_timeout = atoi((yyvsp[(2) - (2)].str)); + else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str)); #else OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7380 "util/configparser.c" break; case 646: -#line 3440 "util/configparser.y" - { +#line 3440 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[(2) - (2)].str))); - if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + OUTYY(("P(redis_expire_records:%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->redis_expire_records = (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0); #else OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); #endif - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); } +#line 7396 "util/configparser.c" break; case 647: -#line 3453 "util/configparser.y" - { - OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); - if (atoi((yyvsp[(3) - (3)].str)) < 0) +#line 3453 "./util/configparser.y" + { + OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + if (atoi((yyvsp[0].str)) < 0) yyerror("positive number expected"); else { - if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))) + if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding tcp connection limit"); } } +#line 7410 "util/configparser.c" break; case 648: -#line 3464 "util/configparser.y" - { +#line 3464 "./util/configparser.y" + { OUTYY(("\nP(ipset:)\n")); } +#line 7418 "util/configparser.c" break; case 653: -#line 3473 "util/configparser.y" - { +#line 3473 "./util/configparser.y" + { #ifdef USE_IPSET - OUTYY(("P(name-v4:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v4) yyerror("ipset name v4 override, there must be one " "name for ip v4"); free(cfg_parser->cfg->ipset_name_v4); - cfg_parser->cfg->ipset_name_v4 = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str); #else OUTYY(("P(Compiled without ipset, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 7436 "util/configparser.c" break; case 654: -#line 3488 "util/configparser.y" - { +#line 3488 "./util/configparser.y" + { #ifdef USE_IPSET - OUTYY(("P(name-v6:%s)\n", (yyvsp[(2) - (2)].str))); + OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v6) yyerror("ipset name v6 override, there must be one " "name for ip v6"); free(cfg_parser->cfg->ipset_name_v6); - cfg_parser->cfg->ipset_name_v6 = (yyvsp[(2) - (2)].str); + cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str); #else OUTYY(("P(Compiled without ipset, ignoring)\n")); - free((yyvsp[(2) - (2)].str)); + free((yyvsp[0].str)); #endif } +#line 7454 "util/configparser.c" break; -/* Line 1267 of yacc.c. */ -#line 6921 "util/configparser.c" +#line 7458 "util/configparser.c" + default: break; } - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; - YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; - - /* Now `shift' the result of the reduction. Determine what state + /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; -/*------------------------------------. -| yyerrlab -- here on detecting error | -`------------------------------------*/ +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; -#if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); -#else - { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } - } -#endif } - - if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -7019,14 +7532,12 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - - /* Do not reclaim the symbols of the rule which action triggered + /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7039,42 +7550,42 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ + /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp); + YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ - YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; @@ -7087,6 +7598,7 @@ yyacceptlab: yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -7094,7 +7606,8 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow + +#if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -7104,34 +7617,38 @@ yyexhaustedlab: /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); - /* Do not reclaim the symbols of the rule which action triggered + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } + /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif - /* Make sure YYID is used. */ - return YYID (yyresult); + + return yyresult; } - -#line 3502 "util/configparser.y" +#line 3502 "./util/configparser.y" /* parse helper routines could be here */ @@ -7153,4 +7670,3 @@ validate_respip_action(const char* action) } - diff --git a/util/configparser.h b/util/configparser.h index 430f09180..98e628db7 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,14 +1,14 @@ -/* A Bison parser, made by GNU Bison 2.3. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,9 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -33,326 +31,347 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Tokens. */ +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int yydebug; +#endif + +/* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - SPACE = 258, - LETTER = 259, - NEWLINE = 260, - COMMENT = 261, - COLON = 262, - ANY = 263, - ZONESTR = 264, - STRING_ARG = 265, - VAR_FORCE_TOPLEVEL = 266, - VAR_SERVER = 267, - VAR_VERBOSITY = 268, - VAR_NUM_THREADS = 269, - VAR_PORT = 270, - VAR_OUTGOING_RANGE = 271, - VAR_INTERFACE = 272, - VAR_PREFER_IP4 = 273, - VAR_DO_IP4 = 274, - VAR_DO_IP6 = 275, - VAR_PREFER_IP6 = 276, - VAR_DO_UDP = 277, - VAR_DO_TCP = 278, - VAR_TCP_MSS = 279, - VAR_OUTGOING_TCP_MSS = 280, - VAR_TCP_IDLE_TIMEOUT = 281, - VAR_EDNS_TCP_KEEPALIVE = 282, - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, - VAR_CHROOT = 284, - VAR_USERNAME = 285, - VAR_DIRECTORY = 286, - VAR_LOGFILE = 287, - VAR_PIDFILE = 288, - VAR_MSG_CACHE_SIZE = 289, - VAR_MSG_CACHE_SLABS = 290, - VAR_NUM_QUERIES_PER_THREAD = 291, - VAR_RRSET_CACHE_SIZE = 292, - VAR_RRSET_CACHE_SLABS = 293, - VAR_OUTGOING_NUM_TCP = 294, - VAR_INFRA_HOST_TTL = 295, - VAR_INFRA_LAME_TTL = 296, - VAR_INFRA_CACHE_SLABS = 297, - VAR_INFRA_CACHE_NUMHOSTS = 298, - VAR_INFRA_CACHE_LAME_SIZE = 299, - VAR_NAME = 300, - VAR_STUB_ZONE = 301, - VAR_STUB_HOST = 302, - VAR_STUB_ADDR = 303, - VAR_TARGET_FETCH_POLICY = 304, - VAR_HARDEN_SHORT_BUFSIZE = 305, - VAR_HARDEN_LARGE_QUERIES = 306, - VAR_FORWARD_ZONE = 307, - VAR_FORWARD_HOST = 308, - VAR_FORWARD_ADDR = 309, - VAR_DO_NOT_QUERY_ADDRESS = 310, - VAR_HIDE_IDENTITY = 311, - VAR_HIDE_VERSION = 312, - VAR_IDENTITY = 313, - VAR_VERSION = 314, - VAR_HARDEN_GLUE = 315, - VAR_MODULE_CONF = 316, - VAR_TRUST_ANCHOR_FILE = 317, - VAR_TRUST_ANCHOR = 318, - VAR_VAL_OVERRIDE_DATE = 319, - VAR_BOGUS_TTL = 320, - VAR_VAL_CLEAN_ADDITIONAL = 321, - VAR_VAL_PERMISSIVE_MODE = 322, - VAR_INCOMING_NUM_TCP = 323, - VAR_MSG_BUFFER_SIZE = 324, - VAR_KEY_CACHE_SIZE = 325, - VAR_KEY_CACHE_SLABS = 326, - VAR_TRUSTED_KEYS_FILE = 327, - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, - VAR_USE_SYSLOG = 329, - VAR_OUTGOING_INTERFACE = 330, - VAR_ROOT_HINTS = 331, - VAR_DO_NOT_QUERY_LOCALHOST = 332, - VAR_CACHE_MAX_TTL = 333, - VAR_HARDEN_DNSSEC_STRIPPED = 334, - VAR_ACCESS_CONTROL = 335, - VAR_LOCAL_ZONE = 336, - VAR_LOCAL_DATA = 337, - VAR_INTERFACE_AUTOMATIC = 338, - VAR_STATISTICS_INTERVAL = 339, - VAR_DO_DAEMONIZE = 340, - VAR_USE_CAPS_FOR_ID = 341, - VAR_STATISTICS_CUMULATIVE = 342, - VAR_OUTGOING_PORT_PERMIT = 343, - VAR_OUTGOING_PORT_AVOID = 344, - VAR_DLV_ANCHOR_FILE = 345, - VAR_DLV_ANCHOR = 346, - VAR_NEG_CACHE_SIZE = 347, - VAR_HARDEN_REFERRAL_PATH = 348, - VAR_PRIVATE_ADDRESS = 349, - VAR_PRIVATE_DOMAIN = 350, - VAR_REMOTE_CONTROL = 351, - VAR_CONTROL_ENABLE = 352, - VAR_CONTROL_INTERFACE = 353, - VAR_CONTROL_PORT = 354, - VAR_SERVER_KEY_FILE = 355, - VAR_SERVER_CERT_FILE = 356, - VAR_CONTROL_KEY_FILE = 357, - VAR_CONTROL_CERT_FILE = 358, - VAR_CONTROL_USE_CERT = 359, - VAR_TCP_REUSE_TIMEOUT = 360, - VAR_MAX_REUSE_TCP_QUERIES = 361, - VAR_EXTENDED_STATISTICS = 362, - VAR_LOCAL_DATA_PTR = 363, - VAR_JOSTLE_TIMEOUT = 364, - VAR_STUB_PRIME = 365, - VAR_UNWANTED_REPLY_THRESHOLD = 366, - VAR_LOG_TIME_ASCII = 367, - VAR_DOMAIN_INSECURE = 368, - VAR_PYTHON = 369, - VAR_PYTHON_SCRIPT = 370, - VAR_VAL_SIG_SKEW_MIN = 371, - VAR_VAL_SIG_SKEW_MAX = 372, - VAR_CACHE_MIN_TTL = 373, - VAR_VAL_LOG_LEVEL = 374, - VAR_AUTO_TRUST_ANCHOR_FILE = 375, - VAR_KEEP_MISSING = 376, - VAR_ADD_HOLDDOWN = 377, - VAR_DEL_HOLDDOWN = 378, - VAR_SO_RCVBUF = 379, - VAR_EDNS_BUFFER_SIZE = 380, - VAR_PREFETCH = 381, - VAR_PREFETCH_KEY = 382, - VAR_SO_SNDBUF = 383, - VAR_SO_REUSEPORT = 384, - VAR_HARDEN_BELOW_NXDOMAIN = 385, - VAR_IGNORE_CD_FLAG = 386, - VAR_LOG_QUERIES = 387, - VAR_LOG_REPLIES = 388, - VAR_LOG_LOCAL_ACTIONS = 389, - VAR_TCP_UPSTREAM = 390, - VAR_SSL_UPSTREAM = 391, - VAR_TCP_AUTH_QUERY_TIMEOUT = 392, - VAR_SSL_SERVICE_KEY = 393, - VAR_SSL_SERVICE_PEM = 394, - VAR_SSL_PORT = 395, - VAR_FORWARD_FIRST = 396, - VAR_STUB_SSL_UPSTREAM = 397, - VAR_FORWARD_SSL_UPSTREAM = 398, - VAR_TLS_CERT_BUNDLE = 399, - VAR_HTTPS_PORT = 400, - VAR_HTTP_ENDPOINT = 401, - VAR_HTTP_MAX_STREAMS = 402, - VAR_HTTP_QUERY_BUFFER_SIZE = 403, - VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, - VAR_HTTP_NODELAY = 405, - VAR_HTTP_NOTLS_DOWNSTREAM = 406, - VAR_STUB_FIRST = 407, - VAR_MINIMAL_RESPONSES = 408, - VAR_RRSET_ROUNDROBIN = 409, - VAR_MAX_UDP_SIZE = 410, - VAR_DELAY_CLOSE = 411, - VAR_UDP_CONNECT = 412, - VAR_UNBLOCK_LAN_ZONES = 413, - VAR_INSECURE_LAN_ZONES = 414, - VAR_INFRA_CACHE_MIN_RTT = 415, - VAR_INFRA_KEEP_PROBING = 416, - VAR_DNS64_PREFIX = 417, - VAR_DNS64_SYNTHALL = 418, - VAR_DNS64_IGNORE_AAAA = 419, - VAR_DNSTAP = 420, - VAR_DNSTAP_ENABLE = 421, - VAR_DNSTAP_SOCKET_PATH = 422, - VAR_DNSTAP_IP = 423, - VAR_DNSTAP_TLS = 424, - VAR_DNSTAP_TLS_SERVER_NAME = 425, - VAR_DNSTAP_TLS_CERT_BUNDLE = 426, - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, - VAR_DNSTAP_SEND_IDENTITY = 429, - VAR_DNSTAP_SEND_VERSION = 430, - VAR_DNSTAP_BIDIRECTIONAL = 431, - VAR_DNSTAP_IDENTITY = 432, - VAR_DNSTAP_VERSION = 433, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, - VAR_RESPONSE_IP_TAG = 440, - VAR_RESPONSE_IP = 441, - VAR_RESPONSE_IP_DATA = 442, - VAR_HARDEN_ALGO_DOWNGRADE = 443, - VAR_IP_TRANSPARENT = 444, - VAR_IP_DSCP = 445, - VAR_DISABLE_DNSSEC_LAME_CHECK = 446, - VAR_IP_RATELIMIT = 447, - VAR_IP_RATELIMIT_SLABS = 448, - VAR_IP_RATELIMIT_SIZE = 449, - VAR_RATELIMIT = 450, - VAR_RATELIMIT_SLABS = 451, - VAR_RATELIMIT_SIZE = 452, - VAR_RATELIMIT_FOR_DOMAIN = 453, - VAR_RATELIMIT_BELOW_DOMAIN = 454, - VAR_IP_RATELIMIT_FACTOR = 455, - VAR_RATELIMIT_FACTOR = 456, - VAR_SEND_CLIENT_SUBNET = 457, - VAR_CLIENT_SUBNET_ZONE = 458, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, - VAR_CLIENT_SUBNET_OPCODE = 460, - VAR_MAX_CLIENT_SUBNET_IPV4 = 461, - VAR_MAX_CLIENT_SUBNET_IPV6 = 462, - VAR_MIN_CLIENT_SUBNET_IPV4 = 463, - VAR_MIN_CLIENT_SUBNET_IPV6 = 464, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, - VAR_CAPS_WHITELIST = 467, - VAR_CACHE_MAX_NEGATIVE_TTL = 468, - VAR_PERMIT_SMALL_HOLDDOWN = 469, - VAR_QNAME_MINIMISATION = 470, - VAR_QNAME_MINIMISATION_STRICT = 471, - VAR_IP_FREEBIND = 472, - VAR_DEFINE_TAG = 473, - VAR_LOCAL_ZONE_TAG = 474, - VAR_ACCESS_CONTROL_TAG = 475, - VAR_LOCAL_ZONE_OVERRIDE = 476, - VAR_ACCESS_CONTROL_TAG_ACTION = 477, - VAR_ACCESS_CONTROL_TAG_DATA = 478, - VAR_VIEW = 479, - VAR_ACCESS_CONTROL_VIEW = 480, - VAR_VIEW_FIRST = 481, - VAR_SERVE_EXPIRED = 482, - VAR_SERVE_EXPIRED_TTL = 483, - VAR_SERVE_EXPIRED_TTL_RESET = 484, - VAR_SERVE_EXPIRED_REPLY_TTL = 485, - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, - VAR_SERVE_ORIGINAL_TTL = 487, - VAR_FAKE_DSA = 488, - VAR_FAKE_SHA1 = 489, - VAR_LOG_IDENTITY = 490, - VAR_HIDE_TRUSTANCHOR = 491, - VAR_TRUST_ANCHOR_SIGNALING = 492, - VAR_AGGRESSIVE_NSEC = 493, - VAR_USE_SYSTEMD = 494, - VAR_SHM_ENABLE = 495, - VAR_SHM_KEY = 496, - VAR_ROOT_KEY_SENTINEL = 497, - VAR_DNSCRYPT = 498, - VAR_DNSCRYPT_ENABLE = 499, - VAR_DNSCRYPT_PORT = 500, - VAR_DNSCRYPT_PROVIDER = 501, - VAR_DNSCRYPT_SECRET_KEY = 502, - VAR_DNSCRYPT_PROVIDER_CERT = 503, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, - VAR_PAD_RESPONSES = 509, - VAR_PAD_RESPONSES_BLOCK_SIZE = 510, - VAR_PAD_QUERIES = 511, - VAR_PAD_QUERIES_BLOCK_SIZE = 512, - VAR_IPSECMOD_ENABLED = 513, - VAR_IPSECMOD_HOOK = 514, - VAR_IPSECMOD_IGNORE_BOGUS = 515, - VAR_IPSECMOD_MAX_TTL = 516, - VAR_IPSECMOD_WHITELIST = 517, - VAR_IPSECMOD_STRICT = 518, - VAR_CACHEDB = 519, - VAR_CACHEDB_BACKEND = 520, - VAR_CACHEDB_SECRETSEED = 521, - VAR_CACHEDB_REDISHOST = 522, - VAR_CACHEDB_REDISPORT = 523, - VAR_CACHEDB_REDISTIMEOUT = 524, - VAR_CACHEDB_REDISEXPIRERECORDS = 525, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, - VAR_FOR_UPSTREAM = 527, - VAR_AUTH_ZONE = 528, - VAR_ZONEFILE = 529, - VAR_MASTER = 530, - VAR_URL = 531, - VAR_FOR_DOWNSTREAM = 532, - VAR_FALLBACK_ENABLED = 533, - VAR_TLS_ADDITIONAL_PORT = 534, - VAR_LOW_RTT = 535, - VAR_LOW_RTT_PERMIL = 536, - VAR_FAST_SERVER_PERMIL = 537, - VAR_FAST_SERVER_NUM = 538, - VAR_ALLOW_NOTIFY = 539, - VAR_TLS_WIN_CERT = 540, - VAR_TCP_CONNECTION_LIMIT = 541, - VAR_FORWARD_NO_CACHE = 542, - VAR_STUB_NO_CACHE = 543, - VAR_LOG_SERVFAIL = 544, - VAR_DENY_ANY = 545, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, - VAR_LOG_TAG_QUERYREPLY = 547, - VAR_STREAM_WAIT_SIZE = 548, - VAR_TLS_CIPHERS = 549, - VAR_TLS_CIPHERSUITES = 550, - VAR_TLS_USE_SNI = 551, - VAR_IPSET = 552, - VAR_IPSET_NAME_V4 = 553, - VAR_IPSET_NAME_V6 = 554, - VAR_TLS_SESSION_TICKET_KEYS = 555, - VAR_RPZ = 556, - VAR_TAGS = 557, - VAR_RPZ_ACTION_OVERRIDE = 558, - VAR_RPZ_CNAME_OVERRIDE = 559, - VAR_RPZ_LOG = 560, - VAR_RPZ_LOG_NAME = 561, - VAR_DYNLIB = 562, - VAR_DYNLIB_FILE = 563, - VAR_EDNS_CLIENT_STRING = 564, - VAR_EDNS_CLIENT_STRING_OPCODE = 565, - VAR_NSID = 566, - VAR_ZONEMD_PERMISSIVE_MODE = 567, - VAR_ZONEMD_REJECT_ABSENCE = 568 - }; + enum yytokentype + { + YYEMPTY = -2, + YYEOF = 0, /* "end of file" */ + YYerror = 256, /* error */ + YYUNDEF = 257, /* "invalid token" */ + SPACE = 258, /* SPACE */ + LETTER = 259, /* LETTER */ + NEWLINE = 260, /* NEWLINE */ + COMMENT = 261, /* COMMENT */ + COLON = 262, /* COLON */ + ANY = 263, /* ANY */ + ZONESTR = 264, /* ZONESTR */ + STRING_ARG = 265, /* STRING_ARG */ + VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ + VAR_SERVER = 267, /* VAR_SERVER */ + VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ + VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ + VAR_PORT = 270, /* VAR_PORT */ + VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ + VAR_INTERFACE = 272, /* VAR_INTERFACE */ + VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ + VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ + VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ + VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ + VAR_DO_UDP = 277, /* VAR_DO_UDP */ + VAR_DO_TCP = 278, /* VAR_DO_TCP */ + VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ + VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ + VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ + VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ + VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ + VAR_CHROOT = 284, /* VAR_CHROOT */ + VAR_USERNAME = 285, /* VAR_USERNAME */ + VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ + VAR_LOGFILE = 287, /* VAR_LOGFILE */ + VAR_PIDFILE = 288, /* VAR_PIDFILE */ + VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ + VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ + VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ + VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ + VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ + VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ + VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ + VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ + VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ + VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ + VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ + VAR_NAME = 300, /* VAR_NAME */ + VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ + VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ + VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ + VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ + VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ + VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ + VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ + VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ + VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ + VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ + VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ + VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ + VAR_IDENTITY = 313, /* VAR_IDENTITY */ + VAR_VERSION = 314, /* VAR_VERSION */ + VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ + VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ + VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ + VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ + VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ + VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ + VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ + VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ + VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ + VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ + VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ + VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ + VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ + VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ + VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ + VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ + VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ + VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ + VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ + VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ + VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ + VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ + VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ + VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ + VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ + VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ + VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ + VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ + VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ + VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ + VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ + VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ + VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ + VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ + VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ + VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ + VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ + VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ + VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ + VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ + VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ + VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ + VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ + VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ + VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ + VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ + VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ + VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ + VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ + VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ + VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ + VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ + VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ + VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ + VAR_PYTHON = 369, /* VAR_PYTHON */ + VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ + VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ + VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ + VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 381, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 392, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 393, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 394, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 395, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 396, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 397, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 398, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 399, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 400, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 401, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 402, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 403, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 405, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 406, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 407, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 408, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 409, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 410, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 411, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 412, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 413, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 414, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 415, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 416, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 417, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 418, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 419, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 420, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 421, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 422, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 423, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 424, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 425, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 426, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 429, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 430, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 431, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 432, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 433, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 440, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 441, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 442, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 443, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 444, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 445, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 446, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 447, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 448, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 449, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 450, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 451, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 452, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 453, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 454, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 455, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 456, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 457, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 458, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 460, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 467, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 468, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 469, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 470, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 471, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 472, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 473, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 474, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 475, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 476, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 477, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 478, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 479, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 480, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 481, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 482, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 483, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 484, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 485, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 487, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 488, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 489, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 490, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 491, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 492, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 493, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 494, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 495, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 496, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 497, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 498, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 499, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 500, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 501, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 502, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 503, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 509, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 510, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 511, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 512, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 513, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 514, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 515, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 516, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 517, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 518, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 519, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 520, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 521, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 522, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 523, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 524, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 525, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 527, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 528, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 529, /* VAR_ZONEFILE */ + VAR_MASTER = 530, /* VAR_MASTER */ + VAR_URL = 531, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 532, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 533, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 534, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 535, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 536, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 537, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 538, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 539, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 540, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 541, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 542, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 543, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 544, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 545, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 547, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 548, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 549, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 550, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 551, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 552, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 553, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 554, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 555, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 556, /* VAR_RPZ */ + VAR_TAGS = 557, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 558, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 559, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 560, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 561, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 562, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 563, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 564, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 566, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_REJECT_ABSENCE = 568 /* VAR_ZONEMD_REJECT_ABSENCE */ + }; + typedef enum yytokentype yytoken_kind_t; #endif -/* Tokens. */ +/* Token kinds. */ +#define YYEOF 0 +#define YYerror 256 +#define YYUNDEF 257 #define SPACE 258 #define LETTER 259 #define NEWLINE 260 @@ -665,22 +684,25 @@ #define VAR_ZONEMD_PERMISSIVE_MODE 567 #define VAR_ZONEMD_REJECT_ABSENCE 568 - - - +/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE -#line 66 "util/configparser.y" +union YYSTYPE { +#line 66 "./util/configparser.y" + char* str; -} -/* Line 1529 of yacc.c. */ -#line 679 "util/configparser.h" - YYSTYPE; -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ -# define YYSTYPE_IS_DECLARED 1 + +#line 696 "util/configparser.h" + +}; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 #endif + extern YYSTYPE yylval; +int yyparse (void); + +#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ From 07fda669e45ca6068dc490b79ad9c918b5aa10a3 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 7 May 2021 11:13:44 +0200 Subject: [PATCH 026/156] - Fix #485: Unbound occasionally reports broken stats. --- daemon/remote.c | 10 ++++++++-- doc/Changelog | 3 +++ services/mesh.c | 10 ++++++++-- smallapp/unbound-control.c | 10 ++++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/daemon/remote.c b/daemon/remote.c index 7e432fe52..5836c0c79 100644 --- a/daemon/remote.c +++ b/daemon/remote.c @@ -130,7 +130,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -139,7 +139,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } diff --git a/doc/Changelog b/doc/Changelog index cf306ea6b..61fd924c3 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +7 May 2021: Wouter + - Fix #485: Unbound occasionally reports broken stats. + 4 May 2021: George - Fix for #367: only attempt to get the interface for queries that are no longer on the tcp_waiting_list. diff --git a/services/mesh.c b/services/mesh.c index 88b3d15d0..7931a072f 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -99,7 +99,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, size_t d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -108,7 +108,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, size_t d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } diff --git a/smallapp/unbound-control.c b/smallapp/unbound-control.c index 86e3949c0..af72f2a4e 100644 --- a/smallapp/unbound-control.c +++ b/smallapp/unbound-control.c @@ -188,7 +188,7 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) { #ifndef S_SPLINT_S size_t leftover; - if(d == 0) { + if(d <= 0) { avg->tv_sec = 0; avg->tv_usec = 0; return; @@ -197,7 +197,13 @@ timeval_divide(struct timeval* avg, const struct timeval* sum, long long d) avg->tv_usec = sum->tv_usec / d; /* handle fraction from seconds divide */ leftover = sum->tv_sec - avg->tv_sec*d; - avg->tv_usec += (leftover*1000000)/d; + if(leftover <= 0) + leftover = 0; + avg->tv_usec += (((long long)leftover)*((long long)1000000))/d; + if(avg->tv_sec < 0) + avg->tv_sec = 0; + if(avg->tv_usec < 0) + avg->tv_usec = 0; #endif } From 59ea44322ea468e3dfcc056870f66136707b475d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 7 May 2021 14:28:20 +0200 Subject: [PATCH 027/156] - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. --- config.h.in | 3 +++ configure | 17 ++++++++++++++++ configure.ac | 5 +++++ doc/Changelog | 1 + validator/autotrust.c | 4 +++- validator/val_anchor.c | 3 ++- validator/val_sigcrypt.c | 42 ++++++++++++++++++++++++++++++++++++++++ validator/val_sigcrypt.h | 17 ++++++++++++++++ validator/val_utils.c | 39 ++++++++++++++++++++++++++++++++----- 9 files changed, 124 insertions(+), 7 deletions(-) diff --git a/config.h.in b/config.h.in index a843d703d..cb27afa4f 100644 --- a/config.h.in +++ b/config.h.in @@ -28,6 +28,9 @@ /* Whether daemon is deprecated */ #undef DEPRECATED_DAEMON +/* Deprecate RSA 1024 bit length, makes that an unsupported key */ +#undef DEPRECATE_RSA_1024 + /* Define this to enable kernel based UDP source port randomization. */ #undef DISABLE_EXPLICIT_PORT_RANDOMISATION diff --git a/configure b/configure index 30e061f35..fb3bcffe2 100755 --- a/configure +++ b/configure @@ -877,6 +877,7 @@ enable_subnet enable_gost enable_ecdsa enable_dsa +with_deprecate_rsa_1024 enable_ed25519 enable_ed448 enable_event_api @@ -1639,6 +1640,10 @@ Optional Packages: /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr) --with-libbsd Use portable libbsd functions + --with-deprecate-rsa-1024 + Deprecate RSA 1024 bit length, makes that an + unsupported key, for use when OpenSSL FIPS refuses + 1024 bit verification --with-libevent=pathname use libevent (will check /usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr or you can specify @@ -19035,6 +19040,18 @@ _ACEOF ;; esac + +# Check whether --with-deprecate-rsa-1024 was given. +if test "${with_deprecate_rsa_1024+set}" = set; then : + withval=$with_deprecate_rsa_1024; +fi + +if test "$with_deprecate_rsa_1024" = "yes"; then + +$as_echo "#define DEPRECATE_RSA_1024 1" >>confdefs.h + +fi + # Check whether --enable-ed25519 was given. if test "${enable_ed25519+set}" = set; then : enableval=$enable_ed25519; diff --git a/configure.ac b/configure.ac index 14d9b02c2..62bcee1df 100644 --- a/configure.ac +++ b/configure.ac @@ -1155,6 +1155,11 @@ AC_INCLUDES_DEFAULT ;; esac +AC_ARG_WITH(deprecate-rsa-1024, AS_HELP_STRING([--with-deprecate-rsa-1024],[Deprecate RSA 1024 bit length, makes that an unsupported key, for use when OpenSSL FIPS refuses 1024 bit verification])) +if test "$with_deprecate_rsa_1024" = "yes"; then + AC_DEFINE([DEPRECATE_RSA_1024], [1], [Deprecate RSA 1024 bit length, makes that an unsupported key]) +fi + AC_ARG_ENABLE(ed25519, AS_HELP_STRING([--disable-ed25519],[Disable ED25519 support])) use_ed25519="no" case "$enable_ed25519" in diff --git a/doc/Changelog b/doc/Changelog index 61fd924c3..2ed0bf92c 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 7 May 2021: Wouter - Fix #485: Unbound occasionally reports broken stats. + - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. 4 May 2021: George - Fix for #367: only attempt to get the interface for queries that are no diff --git a/validator/autotrust.c b/validator/autotrust.c index 7ce07e0d8..adf836754 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -1579,6 +1579,7 @@ key_matches_a_ds(struct module_env* env, struct val_env* ve, for(ds_idx=0; ds_idxnumDNSKEY; i++) { - if(!dnskey_algo_is_supported(ta->dnskey_rrset, i)) + if(!dnskey_algo_is_supported(ta->dnskey_rrset, i) || + !dnskey_size_is_supported(ta->dnskey_rrset, i)) num++; } return num; diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index 14e13da06..5ce20b223 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -386,6 +386,48 @@ int dnskey_algo_is_supported(struct ub_packed_rrset_key* dnskey_rrset, dnskey_idx)); } +int dnskey_size_is_supported(struct ub_packed_rrset_key* dnskey_rrset, + size_t dnskey_idx) +{ +#ifdef DEPRECATE_RSA_1024 + uint8_t* rdata; + size_t len; + int alg = dnskey_get_algo(dnskey_rrset, dnskey_idx); + size_t keysize; + + rrset_get_rdata(dnskey_rrset, dnskey_idx, &rdata, &len); + if(len < 2+4) + return 0; + keysize = sldns_rr_dnskey_key_size_raw(rdata+2+4, len-2-4, alg); + + switch((sldns_algorithm)alg) { + case LDNS_RSAMD5: + case LDNS_RSASHA1: + case LDNS_RSASHA1_NSEC3: + case LDNS_RSASHA256: + case LDNS_RSASHA512: + /* reject RSA keys of 1024 bits and shorter */ + if(keysize <= 1024) + return 0; + default: + break; + } +#else + (void)dnskey_rrset; (void)dnskey_idx; +#endif /* DEPRECATE_RSA_1024 */ + return 1; +} + +int dnskeyset_size_is_supported(struct ub_packed_rrset_key* dnskey_rrset) +{ + size_t i, num = rrset_get_count(dnskey_rrset); + for(i=0; i Date: Fri, 7 May 2021 17:06:09 +0200 Subject: [PATCH 028/156] - Remove case fallthrough from deprecate-rsa-1024 code. --- doc/Changelog | 1 + validator/val_sigcrypt.c | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 2ed0bf92c..fcd5a8a1d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 7 May 2021: Wouter - Fix #485: Unbound occasionally reports broken stats. - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. + - Remove case fallthrough from deprecate-rsa-1024 code. 4 May 2021: George - Fix for #367: only attempt to get the interface for queries that are no diff --git a/validator/val_sigcrypt.c b/validator/val_sigcrypt.c index 5ce20b223..b15fba3f4 100644 --- a/validator/val_sigcrypt.c +++ b/validator/val_sigcrypt.c @@ -409,6 +409,7 @@ int dnskey_size_is_supported(struct ub_packed_rrset_key* dnskey_rrset, /* reject RSA keys of 1024 bits and shorter */ if(keysize <= 1024) return 0; + break; default: break; } From d4314cad33142d6004a8cfdf3d20fdea60af655c Mon Sep 17 00:00:00 2001 From: Florian Obser Date: Sat, 8 May 2021 16:56:32 +0200 Subject: [PATCH 029/156] Make VAL_MAX_RESTART_COUNT configurable. unbound tries very hard (up to 6 authoritative servers) to find a validating answer. This is not always desirable, for example on high latency links. --- doc/unbound.conf.5.in | 4 ++++ util/config_file.c | 8 ++++++-- util/config_file.h | 2 ++ util/configlexer.lex | 1 + util/configparser.y | 33 ++++++++++++++++++++++++--------- validator/validator.c | 18 ++++++++++-------- validator/validator.h | 6 +++--- 7 files changed, 50 insertions(+), 22 deletions(-) diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 9aa12c65c..16de27941 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1131,6 +1131,10 @@ min and max very low disables the clock skew allowances. Setting both min and max very high makes the validator check the signature timestamps less strictly. .TP +.B val\-max\-restart: \fI +The maximum number the validator should restart validation with +another authority in case of failed validation. Default is 5. +.TP .B val\-bogus\-ttl: \fI The time to live for bogus data. This is data that has failed validation; due to invalid signatures or other checks. The TTL from that data cannot be diff --git a/util/config_file.c b/util/config_file.c index 1d6374156..d1bfa61c5 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -253,6 +253,7 @@ config_create(void) cfg->val_date_override = 0; cfg->val_sig_skew_min = 3600; /* at least daylight savings trouble */ cfg->val_sig_skew_max = 86400; /* at most timezone settings trouble */ + cfg->val_max_restart = 5; cfg->val_clean_additional = 1; cfg->val_log_level = 0; cfg->val_log_squelch = 0; @@ -764,12 +765,14 @@ int config_set_option(struct config_file* cfg, const char* opt, #endif else if(strcmp(opt, "define-tag:") ==0) { return config_add_tag(cfg, val); - /* val_sig_skew_min and max are copied into val_env during init, - * so this does not update val_env with set_option */ + /* val_sig_skew_min, max and val_max_restart are copied into val_env + * during init so this does not update val_env with set_option */ } else if(strcmp(opt, "val-sig-skew-min:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_min = (int32_t)atoi(val); } else if(strcmp(opt, "val-sig-skew-max:") == 0) { IS_NUMBER_OR_ZERO; cfg->val_sig_skew_max = (int32_t)atoi(val); } + else if(strcmp(opt, "val-max-restart:") == 0) + { IS_NUMBER_OR_ZERO; cfg->val_max_restart = (int32_t)atoi(val); } else if (strcmp(opt, "outgoing-interface:") == 0) { char* d = strdup(val); char** oi = @@ -1190,6 +1193,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_DEC(opt, "fast-server-permil", fast_server_permil) else O_DEC(opt, "val-sig-skew-min", val_sig_skew_min) else O_DEC(opt, "val-sig-skew-max", val_sig_skew_max) + else O_DEC(opt, "val-max-restart", val_max_restart) else O_YNO(opt, "qname-minimisation", qname_minimisation) else O_YNO(opt, "qname-minimisation-strict", qname_minimisation_strict) else O_IFC(opt, "define-tag", num_tags, tagname) diff --git a/util/config_file.h b/util/config_file.h index 524e648fe..67abe55a8 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -373,6 +373,8 @@ struct config_file { int32_t val_sig_skew_min; /** the maximum for signature clock skew */ int32_t val_sig_skew_max; + /** max number of query restarts, number of IPs to probe */ + int32_t val_max_restart; /** this value sets the number of seconds before revalidating bogus */ int bogus_ttl; /** should validator clean additional section for secure msgs */ diff --git a/util/configlexer.lex b/util/configlexer.lex index e982463d1..732dd8310 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -385,6 +385,7 @@ root-key-sentinel{COLON} { YDVAR(1, VAR_ROOT_KEY_SENTINEL) } val-override-date{COLON} { YDVAR(1, VAR_VAL_OVERRIDE_DATE) } val-sig-skew-min{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } val-sig-skew-max{COLON} { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +val-max-restart{COLON} { YDVAR(1, VAR_VAL_MAX_RESTART) } val-bogus-ttl{COLON} { YDVAR(1, VAR_BOGUS_TTL) } val-clean-additional{COLON} { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } val-permissive-mode{COLON} { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } diff --git a/util/configparser.y b/util/configparser.y index 6a8f83112..86febcf1d 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -104,13 +104,14 @@ extern struct config_parser_state* cfg_parser; %token VAR_EXTENDED_STATISTICS VAR_LOCAL_DATA_PTR VAR_JOSTLE_TIMEOUT %token VAR_STUB_PRIME VAR_UNWANTED_REPLY_THRESHOLD VAR_LOG_TIME_ASCII %token VAR_DOMAIN_INSECURE VAR_PYTHON VAR_PYTHON_SCRIPT VAR_VAL_SIG_SKEW_MIN -%token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL -%token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN -%token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH -%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT VAR_HARDEN_BELOW_NXDOMAIN -%token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS -%token VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM VAR_TCP_AUTH_QUERY_TIMEOUT -%token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST +%token VAR_VAL_SIG_SKEW_MAX VAR_VAL_MAX_RESTART VAR_CACHE_MIN_TTL +%token VAR_VAL_LOG_LEVEL VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING +%token VAR_ADD_HOLDDOWN VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE +%token VAR_PREFETCH VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_SO_REUSEPORT +%token VAR_HARDEN_BELOW_NXDOMAIN VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES +%token VAR_LOG_REPLIES VAR_LOG_LOCAL_ACTIONS VAR_TCP_UPSTREAM +%token VAR_SSL_UPSTREAM VAR_TCP_AUTH_QUERY_TIMEOUT VAR_SSL_SERVICE_KEY +%token VAR_SSL_SERVICE_PEM VAR_SSL_PORT VAR_FORWARD_FIRST %token VAR_STUB_SSL_UPSTREAM VAR_FORWARD_SSL_UPSTREAM VAR_TLS_CERT_BUNDLE %token VAR_HTTPS_PORT VAR_HTTP_ENDPOINT VAR_HTTP_MAX_STREAMS %token VAR_HTTP_QUERY_BUFFER_SIZE VAR_HTTP_RESPONSE_BUFFER_SIZE @@ -243,8 +244,9 @@ content_server: server_num_threads | server_verbosity | server_port | server_local_data_ptr | server_jostle_timeout | server_unwanted_reply_threshold | server_log_time_ascii | server_domain_insecure | server_val_sig_skew_min | - server_val_sig_skew_max | server_cache_min_ttl | server_val_log_level | - server_auto_trust_anchor_file | server_add_holddown | + server_val_sig_skew_max | server_val_max_restart | + server_cache_min_ttl | server_val_log_level | + server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag | @@ -1852,6 +1854,19 @@ server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG free($2); } ; +server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG + { + OUTYY(("P(server_val_max_restart:%s)\n", $2)); + if(*$2 == '\0' || strcmp($2, "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi($2); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free($2); + } + ; server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG { OUTYY(("P(server_cache_max_ttl:%s)\n", $2)); diff --git a/validator/validator.c b/validator/validator.c index e12180b4b..d4d48d956 100644 --- a/validator/validator.c +++ b/validator/validator.c @@ -137,6 +137,7 @@ val_apply_cfg(struct module_env* env, struct val_env* val_env, val_env->date_override = cfg->val_date_override; val_env->skew_min = cfg->val_sig_skew_min; val_env->skew_max = cfg->val_sig_skew_max; + val_env->max_restart = cfg->val_max_restart; c = cfg_count_numbers(cfg->val_nsec3_key_iterations); if(c < 1 || (c&1)) { log_err("validator: unparseable or odd nsec3 key " @@ -1487,7 +1488,7 @@ processInit(struct module_qstate* qstate, struct val_qstate* vq, enum val_classification subtype = val_classify_response( qstate->query_flags, &qstate->qinfo, &vq->qchase, vq->orig_msg->rep, vq->rrset_skip); - if(vq->restart_count > VAL_MAX_RESTART_COUNT) { + if(vq->restart_count > ve->max_restart) { verbose(VERB_ALGO, "restart count exceeded"); return val_error(qstate, id); } @@ -1640,7 +1641,7 @@ processInit(struct module_qstate* qstate, struct val_qstate* vq, errinf(qstate, key_entry_get_reason(vq->key_entry)); } /* no retries, stop bothering the authority until timeout */ - vq->restart_count = VAL_MAX_RESTART_COUNT; + vq->restart_count = ve->max_restart; vq->chase_reply->security = sec_status_bogus; vq->state = VAL_FINISHED_STATE; return 1; @@ -1848,7 +1849,7 @@ processValidate(struct module_qstate* qstate, struct val_qstate* vq, LDNS_RR_TYPE_DNSKEY, vq->key_entry->key_class); vq->chase_reply->security = sec_status_bogus; errinf(qstate, "while building chain of trust"); - if(vq->restart_count >= VAL_MAX_RESTART_COUNT) + if(vq->restart_count >= ve->max_restart) key_cache_insert(ve->kcache, vq->key_entry, qstate); return 1; } @@ -2064,7 +2065,7 @@ processFinished(struct module_qstate* qstate, struct val_qstate* vq, * endless bogus revalidation */ if(vq->orig_msg->rep->security == sec_status_bogus) { /* see if we can try again to fetch data */ - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { int restart_count = vq->restart_count+1; verbose(VERB_ALGO, "validation failed, " "blacklist and retry to fetch data"); @@ -2605,6 +2606,7 @@ process_ds_response(struct module_qstate* qstate, struct val_qstate* vq, int id, int rcode, struct dns_msg* msg, struct query_info* qinfo, struct sock_list* origin) { + struct val_env* ve = (struct val_env*)qstate->env->modinfo[id]; struct key_entry_key* dske = NULL; uint8_t* olds = vq->empty_DS_name; vq->empty_DS_name = NULL; @@ -2638,7 +2640,7 @@ process_ds_response(struct module_qstate* qstate, struct val_qstate* vq, vq->chain_blacklist = NULL; /* fresh blacklist for next part*/ /* Keep the forState.state on FINDKEY. */ } else if(key_entry_isbad(dske) - && vq->restart_count < VAL_MAX_RESTART_COUNT) { + && vq->restart_count < ve->max_restart) { vq->empty_DS_name = olds; val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2691,7 +2693,7 @@ process_dnskey_response(struct module_qstate* qstate, struct val_qstate* vq, /* bad response */ verbose(VERB_DETAIL, "Missing DNSKEY RRset in response to " "DNSKEY query."); - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2730,7 +2732,7 @@ process_dnskey_response(struct module_qstate* qstate, struct val_qstate* vq, * state. */ if(!key_entry_isgood(vq->key_entry)) { if(key_entry_isbad(vq->key_entry)) { - if(vq->restart_count < VAL_MAX_RESTART_COUNT) { + if(vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; @@ -2807,7 +2809,7 @@ process_prime_response(struct module_qstate* qstate, struct val_qstate* vq, lock_basic_unlock(&ta->lock); if(vq->key_entry) { if(key_entry_isbad(vq->key_entry) - && vq->restart_count < VAL_MAX_RESTART_COUNT) { + && vq->restart_count < ve->max_restart) { val_blacklist(&vq->chain_blacklist, qstate->region, origin, 1); qstate->errinf = NULL; diff --git a/validator/validator.h b/validator/validator.h index 35da1920a..a928e10a6 100644 --- a/validator/validator.h +++ b/validator/validator.h @@ -64,9 +64,6 @@ struct config_strlist; */ #define BOGUS_KEY_TTL 60 /* seconds */ -/** max number of query restarts, number of IPs to probe */ -#define VAL_MAX_RESTART_COUNT 5 - /** Root key sentinel is ta preamble */ #define SENTINEL_IS "root-key-sentinel-is-ta-" /** Root key sentinel is not ta preamble */ @@ -95,6 +92,9 @@ struct val_env { /** clock skew max for signatures */ int32_t skew_max; + /** max number of query restarts, number of IPs to probe */ + int32_t max_restart; + /** TTL for bogus data; used instead of untrusted TTL from data. * Bogus data will not be verified more often than this interval. * seconds. */ From cde6284a036b32a03cbd89d9c478a6273d2124e5 Mon Sep 17 00:00:00 2001 From: Stuart Henderson Date: Sat, 8 May 2021 15:12:39 +0000 Subject: [PATCH 030/156] ifdef RLIMIT_AS in recently added check Some OS still don't have RLIMIT_AS --- daemon/unbound.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/daemon/unbound.c b/daemon/unbound.c index b2bb526c0..78771dbdd 100644 --- a/daemon/unbound.c +++ b/daemon/unbound.c @@ -212,12 +212,14 @@ checkrlimits(struct config_file* cfg) } #endif +#ifdef RLIMIT_AS if(getrlimit(RLIMIT_AS, &rlim) == 0) { if(rlim.rlim_cur != (rlim_t)RLIM_INFINITY && rlim.rlim_cur < (rlim_t)memsize_expect) { log_warn("the ulimit(max memory size) is smaller than the expected memory usage (added size of caches). %u < %u bytes", (unsigned)rlim.rlim_cur, (unsigned)memsize_expect); } } +#endif if(getrlimit(RLIMIT_DATA, &rlim) == 0) { if(rlim.rlim_cur != (rlim_t)RLIM_INFINITY && rlim.rlim_cur < memsize_expect) { From 1e85196fd9016f2309a248add1991360e6918b90 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 10 May 2021 08:18:15 +0200 Subject: [PATCH 031/156] Changelog note for #487 - Merge PR #487: ifdef RLIMIT_AS in recently added check. --- doc/Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index fcd5a8a1d..ac3a9c390 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +10 May 2021: Wouter + - Merge PR #487: ifdef RLIMIT_AS in recently added check. + 7 May 2021: Wouter - Fix #485: Unbound occasionally reports broken stats. - Add ./configure --with-deprecate-rsa-1024 that turns off RSA 1024. From 9aa072d115c8e5123ba3ea8766946c19f1b5ecb0 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 12 May 2021 17:24:03 +0200 Subject: [PATCH 032/156] - Fix that auth-zone zonefiles use last TTL if no TTL is specified. --- doc/Changelog | 3 +++ sldns/str2wire.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index ac3a9c390..aaa1561e0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +12 May 2021: Wouter + - Fix that auth-zone zonefiles use last TTL if no TTL is specified. + 10 May 2021: Wouter - Merge PR #487: ifdef RLIMIT_AS in recently added check. diff --git a/sldns/str2wire.c b/sldns/str2wire.c index 70eec6dab..401625728 100644 --- a/sldns/str2wire.c +++ b/sldns/str2wire.c @@ -929,6 +929,10 @@ int sldns_fp2wire_rr_buf(FILE* in, uint8_t* rr, size_t* len, size_t* dname_len, memmove(parse_state->prev_rr, rr, *dname_len); parse_state->prev_rr_len = (*dname_len); } + if(r == LDNS_WIREPARSE_ERR_OK && parse_state) { + parse_state->default_ttl = sldns_wirerr_get_ttl( + rr, *len, *dname_len); + } return r; } return LDNS_WIREPARSE_ERR_OK; From f5e0207a5e1aaad8b255713a9921656b57b1d3d8 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 17 May 2021 08:43:46 +0200 Subject: [PATCH 033/156] - Fix #489: Compile using MSYS2 MinGW 64-bit. --- acx_nlnetlabs.m4 | 6 ++++-- configure | 6 +++--- configure.ac | 4 ++-- doc/Changelog | 3 +++ 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4 index dd8d8c329..ad8fb5007 100644 --- a/acx_nlnetlabs.m4 +++ b/acx_nlnetlabs.m4 @@ -2,7 +2,9 @@ # Copyright 2009, Wouter Wijngaards, NLnet Labs. # BSD licensed. # -# Version 38 +# Version 39 +# 2021-05-17 fix nonblocking socket test from grep on mingw32 to mingw for +# 64bit compatibility. # 2021-03-24 fix ACX_FUNC_DEPRECATED to use CPPFLAGS and CFLAGS. # 2021-01-05 fix defun for aclocal # 2021-01-05 autoconf 2.70 autoupdate and fixes, no AC_TRY_COMPILE @@ -915,7 +917,7 @@ dnl a nonblocking socket do not work, a new call to select is necessary. AC_DEFUN([ACX_CHECK_NONBLOCKING_BROKEN], [ AC_MSG_CHECKING([if nonblocking sockets work]) -if echo $target | grep mingw32 >/dev/null; then +if echo $target | grep mingw >/dev/null; then AC_MSG_RESULT([no (windows)]) AC_DEFINE([NONBLOCKING_IS_BROKEN], 1, [Define if the network stack does not fully support nonblocking io (causes lower performance).]) else diff --git a/configure b/configure index fb3bcffe2..d0050b1e6 100755 --- a/configure +++ b/configure @@ -4204,9 +4204,9 @@ case "$exec_prefix" in esac # are we on MinGW? -if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes" +if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw32 >/dev/null; then on_mingw="yes" + if echo $host $target | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi @@ -15927,7 +15927,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5 $as_echo_n "checking if nonblocking sockets work... " >&6; } -if echo $target | grep mingw32 >/dev/null; then +if echo $target | grep mingw >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5 $as_echo "no (windows)" >&6; } diff --git a/configure.ac b/configure.ac index 62bcee1df..9abf2299f 100644 --- a/configure.ac +++ b/configure.ac @@ -147,9 +147,9 @@ case "$exec_prefix" in esac # are we on MinGW? -if uname -s 2>&1 | grep MINGW32 >/dev/null; then on_mingw="yes" +if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw32 >/dev/null; then on_mingw="yes" + if echo $host $target | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi diff --git a/doc/Changelog b/doc/Changelog index aaa1561e0..3b30b6f07 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +15 May 2021: Wouter + - Fix #489: Compile using MSYS2 MinGW 64-bit. + 12 May 2021: Wouter - Fix that auth-zone zonefiles use last TTL if no TTL is specified. From 23152e6eb84e2de9a42e19db14cb7646c54a36cb Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 17 May 2021 09:13:29 +0200 Subject: [PATCH 034/156] Fix date in changelog. --- doc/Changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 3b30b6f07..6fd42f92d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,4 +1,4 @@ -15 May 2021: Wouter +17 May 2021: Wouter - Fix #489: Compile using MSYS2 MinGW 64-bit. 12 May 2021: Wouter From ff6b527184b33ffe1e2b643db8a32fae8061fc5a Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Wed, 19 May 2021 14:59:33 +0200 Subject: [PATCH 035/156] - Fix for #411, #439, #469: Reset the DNS message ID when moving queries between TCP streams. - Refactor for uniform way to produce random DNS message IDs. --- doc/Changelog | 5 +++++ services/authzone.c | 4 ++-- services/outside_network.c | 45 ++++++++++++++++++++++++++++++++------ util/net_help.h | 4 ++++ 4 files changed, 49 insertions(+), 9 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 6fd42f92d..c410c1880 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,8 @@ +19 May 2021: George + - Fix for #411, #439, #469: Reset the DNS message ID when moving queries + between TCP streams. + - Refactor for uniform way to produce random DNS message IDs. + 17 May 2021: Wouter - Fix #489: Compile using MSYS2 MinGW 64-bit. diff --git a/services/authzone.c b/services/authzone.c index 196fe6693..9f9b08f7d 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -5442,7 +5442,7 @@ xfr_transfer_init_fetch(struct auth_xfer* xfr, struct module_env* env) /* perform AXFR/IXFR */ /* set the packet to be written */ /* create new ID */ - xfr->task_transfer->id = (uint16_t)(ub_random(env->rnd)&0xffff); + xfr->task_transfer->id = GET_RANDOM_ID(env->rnd); xfr_create_ixfr_packet(xfr, env->scratch_buffer, xfr->task_transfer->id, master); @@ -6292,7 +6292,7 @@ xfr_probe_send_probe(struct auth_xfer* xfr, struct module_env* env, /* create new ID for new probes, but not on timeout retries, * this means we'll accept replies to previous retries to same ip */ if(timeout == AUTH_PROBE_TIMEOUT) - xfr->task_probe->id = (uint16_t)(ub_random(env->rnd)&0xffff); + xfr->task_probe->id = GET_RANDOM_ID(env->rnd); xfr_create_soa_probe_packet(xfr, env->scratch_buffer, xfr->task_probe->id); /* we need to remove the cp if we have a different ip4/ip6 type now */ diff --git a/services/outside_network.c b/services/outside_network.c index 9b09aa360..af14f8622 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -94,6 +94,10 @@ static void waiting_list_remove(struct outside_network* outnet, static void reuse_tcp_remove_tree_list(struct outside_network* outnet, struct reuse_tcp* reuse); +/** select a DNS ID for a TCP stream */ +static uint16_t tcp_select_id(struct outside_network* outnet, + struct reuse_tcp* reuse); + int pending_cmp(const void* key1, const void* key2) { @@ -406,9 +410,18 @@ static void reuse_write_wait_push_back(struct reuse_tcp* reuse, void reuse_tree_by_id_insert(struct reuse_tcp* reuse, struct waiting_tcp* w) { +#ifdef UNBOUND_DEBUG + rbnode_type* added; +#endif log_assert(w->id_node.key == NULL); w->id_node.key = w; +#ifdef UNBOUND_DEBUG + added = +#else + (void) +#endif rbtree_insert(&reuse->tree_by_id, &w->id_node); + log_assert(added); /* should have been added */ } /** find element in tree by id */ @@ -752,6 +765,9 @@ use_free_buffer(struct outside_network* outnet) w->on_tcp_waiting_list = 0; reuse = reuse_tcp_find(outnet, &w->addr, w->addrlen, w->ssl_upstream); + /* re-select an ID when moving to a new TCP buffer */ + w->id = tcp_select_id(outnet, reuse); + LDNS_ID_SET(w->pkt, w->id); if(reuse) { log_reuse_tcp(VERB_CLIENT, "use free buffer for waiting tcp: " "found reuse", reuse); @@ -830,8 +846,17 @@ outnet_add_tcp_waiting(struct outside_network* outnet, struct waiting_tcp* w) static void reuse_tree_by_id_delete(struct reuse_tcp* reuse, struct waiting_tcp* w) { +#ifdef UNBOUND_DEBUG + rbnode_type* rem; +#endif log_assert(w->id_node.key != NULL); +#ifdef UNBOUND_DEBUG + rem = +#else + (void) +#endif rbtree_delete(&reuse->tree_by_id, w); + log_assert(rem); /* should have been there */ w->id_node.key = NULL; } @@ -1788,14 +1813,14 @@ select_id(struct outside_network* outnet, struct pending* pend, sldns_buffer* packet) { int id_tries = 0; - pend->id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + pend->id = GET_RANDOM_ID(outnet->rnd); LDNS_ID_SET(sldns_buffer_begin(packet), pend->id); /* insert in tree */ pend->node.key = pend; while(!rbtree_insert(outnet->pending, &pend->node)) { /* change ID to avoid collision */ - pend->id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + pend->id = GET_RANDOM_ID(outnet->rnd); LDNS_ID_SET(sldns_buffer_begin(packet), pend->id); id_tries++; if(id_tries == MAX_ID_RETRY) { @@ -2088,6 +2113,14 @@ reuse_tcp_close_oldest(struct outside_network* outnet) reuse_cb_and_decommission(outnet, pend, NETEVENT_CLOSED); } +static uint16_t +tcp_select_id(struct outside_network* outnet, struct reuse_tcp* reuse) +{ + if(reuse) + return reuse_tcp_select_id(reuse, outnet); + return GET_RANDOM_ID(outnet->rnd); +} + /** find spare ID value for reuse tcp stream. That is random and also does * not collide with an existing query ID that is in use or waiting */ uint16_t @@ -2101,13 +2134,13 @@ reuse_tcp_select_id(struct reuse_tcp* reuse, struct outside_network* outnet) /* make really sure the tree is not empty */ if(reuse->tree_by_id.count == 0) { - id = ((unsigned)ub_random(outnet->rnd)>>8) & 0xffff; + id = GET_RANDOM_ID(outnet->rnd); return id; } /* try to find random empty spots by picking them */ for(i = 0; irnd)>>8) & 0xffff; + id = GET_RANDOM_ID(outnet->rnd); if(!reuse_tcp_by_id_find(reuse, id)) { return id; } @@ -2205,9 +2238,7 @@ pending_tcp_query(struct serviced_query* sq, sldns_buffer* packet, w->pkt = (uint8_t*)w + sizeof(struct waiting_tcp); w->pkt_len = sldns_buffer_limit(packet); memmove(w->pkt, sldns_buffer_begin(packet), w->pkt_len); - if(reuse) - w->id = reuse_tcp_select_id(reuse, sq->outnet); - else w->id = ((unsigned)ub_random(sq->outnet->rnd)>>8) & 0xffff; + w->id = tcp_select_id(sq->outnet, reuse); LDNS_ID_SET(w->pkt, w->id); memcpy(&w->addr, &sq->addr, sq->addrlen); w->addrlen = sq->addrlen; diff --git a/util/net_help.h b/util/net_help.h index 114f4cdb5..79835270c 100644 --- a/util/net_help.h +++ b/util/net_help.h @@ -42,6 +42,7 @@ #ifndef NET_HELP_H #define NET_HELP_H #include "util/log.h" +#include "util/random.h" struct sock_list; struct regional; struct config_strlist; @@ -92,6 +93,9 @@ extern uint16_t EDNS_ADVERTISED_SIZE; /** DNSKEY secure entry point, KSK flag */ #define DNSKEY_BIT_SEP 0x0001 +/** return a random 16-bit number given a random source */ +#define GET_RANDOM_ID(rnd) (((unsigned)ub_random(rnd)>>8) & 0xffff) + /** minimal responses when positive answer */ extern int MINIMAL_RESPONSES; From 4f7c194a833a76c7297d1403c7cd2a3f375545b0 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 21 May 2021 17:08:58 +0200 Subject: [PATCH 036/156] - Test code has -q option for quiet output. --- doc/Changelog | 3 +++ testcode/do-tests.sh | 12 +++++++++--- testcode/mini_tdir.sh | 45 ++++++++++++++++++++++++++++++------------- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index c410c1880..fec5e9ab4 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +21 May 2021: Wouter + - Test code has -q option for quiet output. + 19 May 2021: George - Fix for #411, #439, #469: Reset the DNS message ID when moving queries between TCP streams. diff --git a/testcode/do-tests.sh b/testcode/do-tests.sh index effb7c16a..2a1cfc4c9 100755 --- a/testcode/do-tests.sh +++ b/testcode/do-tests.sh @@ -1,5 +1,11 @@ #!/usr/bin/env bash . testdata/common.sh +quiet=0 +if test "$1" = "-q"; then + quiet=1 + tdirarg="-q" + shift +fi NEED_SPLINT='00-lint.tdir' NEED_DOXYGEN='01-doc.tdir' @@ -33,7 +39,7 @@ fi export -n NOTIFY_SOCKET cd testdata; -sh ../testcode/mini_tdir.sh clean +sh ../testcode/mini_tdir.sh $tdirarg clean rm -f .perfstats.txt for test in `ls -d *.tdir`; do SKIP=0 @@ -57,10 +63,10 @@ for test in `ls -d *.tdir`; do fi if test $SKIP -eq 0; then echo $test - sh ../testcode/mini_tdir.sh -a ../.. exe $test + sh ../testcode/mini_tdir.sh -a ../.. $tdirarg exe $test else echo "skip $test" fi done -sh ../testcode/mini_tdir.sh report +sh ../testcode/mini_tdir.sh $tdirarg report cat .perfstats.txt diff --git a/testcode/mini_tdir.sh b/testcode/mini_tdir.sh index 5f02b0862..0457a95e7 100755 --- a/testcode/mini_tdir.sh +++ b/testcode/mini_tdir.sh @@ -5,14 +5,23 @@ if test "$1" = "-a"; then shift shift fi - +quiet=0 +if test "$1" = "-q"; then + quiet=1 + shift +fi + if test "$1" = "clean"; then - echo "rm -f result.* .done* .tdir.var.master .tdir.var.test" + if test $quiet = 0; then + echo "rm -f result.* .done* .tdir.var.master .tdir.var.test" + fi rm -f result.* .done* .tdir.var.master .tdir.var.test exit 0 fi if test "$1" = "fake"; then - echo "minitdir fake $2" + if test $quiet = 0; then + echo "minitdir fake $2" + fi echo "fake" > .done-`basename $2 .tdir` exit 0 fi @@ -37,7 +46,7 @@ if test "$1" = "-f" && test "$2" = "report"; then desc=`grep ^Description: "result.$name" | sed -e 's/Description: //'` fi if test -f ".done-$name"; then - if test "$1" != "-q"; then + if test $quiet = 0; then echo "** PASSED ** $timelen $name: $desc" pass=`expr $pass + 1` fi @@ -65,7 +74,7 @@ if test "$1" = "report" || test "$2" = "report"; then for result in *.tdir; do name=`basename $result .tdir` if test -f ".done-$name"; then - if test "$1" != "-q"; then + if test $quiet = 0; then echo "** PASSED ** : $name" fi else @@ -82,9 +91,9 @@ fi if test "$1" != 'exe'; then # usage echo "mini tdir. Reduced functionality for old shells." - echo " tdir exe " - echo " tdir fake " - echo " tdir clean" + echo " tdir [-q] exe " + echo " tdir [-q] fake " + echo " tdir [-q] clean" echo " tdir [-q|-f] report" exit 1 fi @@ -117,7 +126,9 @@ if test -f .done-$name; then fi # Copy -echo "minitdir copy $1 to $dir" +if test $quiet = 0; then + echo "minitdir copy $1 to $dir" +fi mkdir $dir if cp --help 2>&1 | grep -- "-a" >/dev/null; then cp -a $name.tdir/* $dir/ @@ -131,7 +142,9 @@ echo "minitdir exe $name" > $result grep "Description:" $name.dsc >> $result 2>&1 echo "DateRunStart: "`date "+%s" 2>/dev/null` >> $result if test -f $name.pre; then - echo "minitdir exe $name.pre" + if test $quiet = 0; then + echo "minitdir exe $name.pre" + fi echo "minitdir exe $name.pre" >> $result $shell $name.pre $args >> $result if test $? -ne 0; then @@ -139,7 +152,9 @@ if test -f $name.pre; then fi fi if test -f $name.test; then - echo "minitdir exe $name.test" + if test $quiet = 0; then + echo "minitdir exe $name.test" + fi echo "minitdir exe $name.test" >> $result $shell $name.test $args >>$result 2>&1 if test $? -ne 0; then @@ -149,12 +164,16 @@ if test -f $name.test; then else echo "$name: PASSED" >> $result echo "$name: PASSED" > ../.done-$name - echo "$name: PASSED" + if test $quiet = 0; then + echo "$name: PASSED" + fi success="yes" fi fi if test -f $name.post; then - echo "minitdir exe $name.post" + if test $quiet = 0; then + echo "minitdir exe $name.post" + fi echo "minitdir exe $name.post" >> $result $shell $name.post $args >> $result if test $? -ne 0; then From 11b3ebc3869480dec06264cef7b6a7b5f4e22a47 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 25 May 2021 14:35:19 +0200 Subject: [PATCH 037/156] - Move the NSEC3 max iterations count in line with the 150 value used by BIND, Knot and PowerDNS. This sets the default value for it in the configuration to 150 for all key sizes. --- doc/Changelog | 5 +++++ doc/example.conf.in | 2 +- doc/unbound.conf.5.in | 2 +- util/config_file.c | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index fec5e9ab4..7e0383db3 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,8 @@ +25 May 2021: Wouter + - Move the NSEC3 max iterations count in line with the 150 value + used by BIND, Knot and PowerDNS. This sets the default value + for it in the configuration to 150 for all key sizes. + 21 May 2021: Wouter - Test code has -q option for quiet output. diff --git a/doc/example.conf.in b/doc/example.conf.in index f968184a9..96eeebd59 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -614,7 +614,7 @@ server: # keysize. Keep this table very short, as linear search is done. # A message with an NSEC3 with larger count is marked insecure. # List in ascending order the keysize and count values. - # val-nsec3-keysize-iterations: "1024 150 2048 500 4096 2500" + # val-nsec3-keysize-iterations: "1024 150 2048 150 4096 150" # if enabled, ZONEMD verification failures do not block the zone. # zonemd-permissive-mode: no diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 9aa12c65c..efd17c0de 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1215,7 +1215,7 @@ Default is "no". .TP .B val\-nsec3\-keysize\-iterations: \fI<"list of values"> List of keysize and iteration count values, separated by spaces, surrounded -by quotes. Default is "1024 150 2048 500 4096 2500". This determines the +by quotes. Default is "1024 150 2048 150 4096 150". This determines the maximum allowed NSEC3 iteration count before a message is simply marked insecure instead of performing the many hashing iterations. The list must be in ascending order and have at least one entry. If you set it to diff --git a/util/config_file.c b/util/config_file.c index 1d6374156..341978d97 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -309,7 +309,7 @@ config_create(void) if(!(cfg->module_conf = strdup("validator iterator"))) goto error_exit; #endif if(!(cfg->val_nsec3_key_iterations = - strdup("1024 150 2048 500 4096 2500"))) goto error_exit; + strdup("1024 150 2048 150 4096 150"))) goto error_exit; #if defined(DNSTAP_SOCKET_PATH) if(!(cfg->dnstap_socket_path = strdup(DNSTAP_SOCKET_PATH))) goto error_exit; From 182a78f1dc9e3163854739cd0dce156aef09f332 Mon Sep 17 00:00:00 2001 From: Havard Eidnes Date: Tue, 25 May 2021 14:51:31 +0200 Subject: [PATCH 038/156] Transplant parts of the contributed RPZ documentation. This comes from the doc/IP-BasedActions.pdf file with minor adaptations. --- doc/unbound.conf.5.in | 102 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 94 insertions(+), 8 deletions(-) diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 9aa12c65c..7c868e820 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1027,6 +1027,7 @@ from the query ID, for speed and thread safety). Default is yes. .TP .B minimal-responses: \fI If yes, Unbound doesn't insert authority/additional sections into response +.\" ' messages when those sections are not required. This reduces response size significantly, and may avoid TCP fallback for some responses. This may cause a slight speedup. The default is yes, even though the DNS @@ -1044,15 +1045,24 @@ of this setting, if a trust anchor is loaded. .TP .B module\-config: \fI<"module names"> Module configuration, a list of module names separated by spaces, surround -the string with quotes (""). The modules can be validator, iterator. -Setting this to "iterator" will result in a non\-validating server. -Setting this to "validator iterator" will turn on DNSSEC validation. -The ordering of the modules is important. -You must also set trust\-anchors for validation to be useful. -The default is "validator iterator". When the server is built with -EDNS client subnet support the default is "subnetcache validator iterator". +the string with quotes (""). The modules can be \fIrespip\fR, +\fIvalidator\fR, or \fIiterator\fR (and possibly more, see below). +Setting this to just "\fIiterator\fR" will result in a non\-validating +server. +Setting this to "\fIvalidator iterator\fR" will turn on DNSSEC validation. +The ordering of the modules is significant, the order decides the +order of processing. +You must also set \fItrust\-anchors\fR for validation to be useful. +Adding \fIrespip\fR to the front will cause RPZ processing to be done on +all queries. +The default is "\fIvalidator iterator\fR". +.IP +When the server is built with +EDNS client subnet support the default is "\fIsubnetcache validator +iterator\fR". Most modules that need to be listed here have to be listed at the beginning -of the line. The cachedb module has to be listed just before the iterator. +of the line. The subnetcachedb module has to be listed just before +the iterator. The python module can be listed in different places, it then processes the output of the module it is just before. The dynlib module can be listed pretty much anywhere, it is only a very thin wrapper that allows dynamic libraries to @@ -1527,6 +1537,82 @@ Use this localzone type, regardless the type configured for the local-zone (both tagged and untagged) and regardless the type configured using access\-control\-tag\-action. .TP 5 +.B response\-ip: \fI +This requires use of the "respip" module. +.IP +If the IP address in an AAAA or A RR in the answer section of a +response matches the specified IP netblock, the specified action will +apply. +\fI\fR has generally the same semantics as that for +\fIaccess-control-tag-action\fR, but there are some exceptions. +.IP +Actions for \fIresponse-ip\fR are different from those for +\fIlocal-zone\fR in that in case of the former there is no point of +such conditions as "the query matches it but there is no local data". +Because of this difference, the semantics of \fIresponse-ip\fR actions +are modified or simplified as follows: The \fIstatic, refuse, +transparent, typetransparent,\fR and \fInodefault\fR actions are +invalid for \fIresponse-ip\fR. +Using any of these will cause the configuration to be rejected as +faulty. The \fIdeny\fR action is non-conditional, i.e. it always +results in dropping the corresponding query. +The resolution result before applying the deny action is still cached +and can be used for other queries. +.TP 5 +.B response-ip-data: \fI <"resource record string"> +This requires use of the "respip" module. +.IP +This specifies the action data for \fIresponse-ip\fR with action being +to redirect as specified by "\fIresource record string\fR". "Resource +record string" is similar to that of \fIaccess-control-tag-action\fR, +but it must be of either AAAA, A or CNAME types. +If the IP-netblock is an IPv6/IPV4 prefix, the record +must be AAAA/A respectively, unless it is a CNAME (which can be used +for both versions of IP netblocks). If it is CNAME there must not be +more than one \fIresponse-ip-data\fR for the same IP-netblock. +Also, CNAME and other types of records must not coexist for the same +IP-netblock, following the normal rules for CNAME records. +The textual domain name for the CNAME does not have to be explicitly +terminated with a dot ("."); the root name is assumed to be the origin +for the name. +.TP 5 +.B response-ip-tag: \fI <"list of tags"> +This requires use of the "respip" module. +.IP +Assign tags to response IP-netblocks. If the IP address in an AAAA or +A RR in the answer section of a response matches the specified +IP-netblock, the specified tags are assigned to the IP address. +Then, if an \fIaccess-control-tag\fR is defined for the client and it +includes one of the tags for the response IP, the corresponding +\fIaccess-control-tag-action\fR will apply. +Tag matching rule is the same as that for \fIaccess-control-tag\fR and +\fIlocal-zones\fR. +Unlike \fIlocal-zone-tag\fR, \fIresponse-ip-tag\fR can be defined for +an IP-netblock even if no \fIresponse-ip\fR is defined for that +netblock. +If multiple \fIresponse-ip-tag\fR options are specified for the same +IP-netblock in different statements, all but the first will be +ignored. +However, this will not be flagged as a configuration error, but the +result is probably not what was intended. +.IP +Actions specified in an +\fIaccess-control-tag-action\fR that has a matching tag with +\fIresponse-ip-tag\fR can be those that are "invalid" for +\fIresponse-ip\fR listed above, since \fIaccess-control-tag-action\fRs +can be shared with local zones. +For these actions, if they behave differently depending on whether +local data exists or not in case of local zones, the behavior for +\fIresponse-ip-data\fR will generally result in NOERROR/NODATA instead +of NXDOMAIN, since the \fIresponse-ip\fR data are inherently type +specific, and non-existence of data does not indicate anything about +the existence or non-existence of the qname itself. +For example, if the matching tag action is \fIstatic\fR but there is +no data for the corresponding \fIresponse-ip\fR configuration, then +the result will be NOERROR/NODATA. +The only case where NXDOMAIN is returned is when an +\fIalways_nxdomain\fR action applies. +.TP 5 .B ratelimit: \fI Enable ratelimiting of queries sent to nameserver for performing recursion. If 0, the default, it is disabled. This option is experimental at this time. From 58eeeeb9898e23d69e1dacf9ecdff1c746b861b1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 25 May 2021 15:06:57 +0200 Subject: [PATCH 039/156] - Fix #492: module-config respip missing in unbound.conf.5.in man page. Merges #494 from he32. Remove comment line (?) from man page. --- doc/Changelog | 2 ++ doc/unbound.conf.5.in | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 7e0383db3..cffaacbf8 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,8 @@ - Move the NSEC3 max iterations count in line with the 150 value used by BIND, Knot and PowerDNS. This sets the default value for it in the configuration to 150 for all key sizes. + - Fix #492: module-config respip missing in unbound.conf.5.in man + page. Merges #494 from he32. 21 May 2021: Wouter - Test code has -q option for quiet output. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 8cf99503a..435bff8d9 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1027,7 +1027,6 @@ from the query ID, for speed and thread safety). Default is yes. .TP .B minimal-responses: \fI If yes, Unbound doesn't insert authority/additional sections into response -.\" ' messages when those sections are not required. This reduces response size significantly, and may avoid TCP fallback for some responses. This may cause a slight speedup. The default is yes, even though the DNS From 0f2ae816b5e28b3f15a13c91a8ad2b9fff22e990 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 25 May 2021 17:32:08 +0200 Subject: [PATCH 040/156] - For #492: Fix font highlighting for the man page on emacs. --- doc/Changelog | 1 + doc/unbound.conf.5.in | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index cffaacbf8..d87e545d7 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ for it in the configuration to 150 for all key sizes. - Fix #492: module-config respip missing in unbound.conf.5.in man page. Merges #494 from he32. + - For #492: Fix font highlighting for the man page on emacs. 21 May 2021: Wouter - Test code has -q option for quiet output. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 435bff8d9..7215bce65 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1026,7 +1026,7 @@ If yes, Unbound rotates RRSet order in response (the random number is taken from the query ID, for speed and thread safety). Default is yes. .TP .B minimal-responses: \fI -If yes, Unbound doesn't insert authority/additional sections into response +If yes, Unbound does not insert authority/additional sections into response messages when those sections are not required. This reduces response size significantly, and may avoid TCP fallback for some responses. This may cause a slight speedup. The default is yes, even though the DNS From 6066a24405465e50615f1a24035693d9e94034c6 Mon Sep 17 00:00:00 2001 From: Jim Hague Date: Thu, 27 May 2021 10:57:35 +0100 Subject: [PATCH 041/156] Use build system endianness if available, otherwise try to work it out. The getdns build system provides the endianness, enabling building on Windows native. This change is a convenience for getdns maintainers. --- util/storage/lookup3.c | 102 +++++++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 44 deletions(-) diff --git a/util/storage/lookup3.c b/util/storage/lookup3.c index bb25eb433..c4026626c 100644 --- a/util/storage/lookup3.c +++ b/util/storage/lookup3.c @@ -53,21 +53,69 @@ on 1 byte), but shoehorning those bytes into integers efficiently is messy. #include "util/storage/lookup3.h" #include /* defines printf for tests */ #include /* defines time_t for timings in the test */ -/*#include defines uint32_t etc (from config.h) */ -#include /* attempt to define endianness */ -#ifdef HAVE_SYS_TYPES_H -# include /* attempt to define endianness (solaris) */ -#endif -#if defined(linux) || defined(__OpenBSD__) + +/* + * If our build system provides endianness info, signalled by + * HAVE_TARGET_ENDIANNESS and the presence or absence of TARGET_IS_BIG_ENDIAN, + * use that. Otherwise try to work out the endianness. + */ +#if defined(HAVE_TARGET_ENDIANNESS) +# if defined(TARGET_IS_BIG_ENDIAN) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# else +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif +#else +# include /* attempt to define endianness */ +# ifdef HAVE_SYS_TYPES_H +# include /* attempt to define endianness (solaris) */ +# endif +# if defined(linux) || defined(__OpenBSD__) # ifdef HAVE_ENDIAN_H # include /* attempt to define endianness */ # else # include /* on older OpenBSD */ # endif -#endif -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) -#include /* attempt to define endianness */ -#endif +# endif +# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) +# include /* attempt to define endianness */ +# endif + /* + * My best guess at if you are big-endian or little-endian. This may + * need adjustment. + */ +# if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ + __BYTE_ORDER == __LITTLE_ENDIAN) || \ + (defined(i386) || defined(__i386__) || defined(__i486__) || \ + defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ + __BYTE_ORDER == __BIG_ENDIAN) || \ + (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# elif defined(_MACHINE_ENDIAN_H_) + /* test for machine_endian_h protects failure if some are empty strings */ +# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 1 +# endif +# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN +# define HASH_LITTLE_ENDIAN 1 +# define HASH_BIG_ENDIAN 0 +# endif /* _MACHINE_ENDIAN_H_ */ +# else +# define HASH_LITTLE_ENDIAN 0 +# define HASH_BIG_ENDIAN 0 +# endif +#endif /* defined(HAVE_TARGET_ENDIANNESS) */ + +#define hashsize(n) ((uint32_t)1<<(n)) +#define hashmask(n) (hashsize(n)-1) +#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) /* random initial value */ static uint32_t raninit = (uint32_t)0xdeadbeef; @@ -78,40 +126,6 @@ hash_set_raninit(uint32_t v) raninit = v; } -/* - * My best guess at if you are big-endian or little-endian. This may - * need adjustment. - */ -#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \ - __BYTE_ORDER == __LITTLE_ENDIAN) || \ - (defined(i386) || defined(__i386__) || defined(__i486__) || \ - defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL) || defined(__x86)) -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \ - __BYTE_ORDER == __BIG_ENDIAN) || \ - (defined(sparc) || defined(__sparc) || defined(__sparc__) || defined(POWERPC) || defined(mc68000) || defined(sel)) -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -#elif defined(_MACHINE_ENDIAN_H_) -/* test for machine_endian_h protects failure if some are empty strings */ -# if defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && _BYTE_ORDER == _BIG_ENDIAN -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 1 -# endif -# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN -# define HASH_LITTLE_ENDIAN 1 -# define HASH_BIG_ENDIAN 0 -# endif /* _MACHINE_ENDIAN_H_ */ -#else -# define HASH_LITTLE_ENDIAN 0 -# define HASH_BIG_ENDIAN 0 -#endif - -#define hashsize(n) ((uint32_t)1<<(n)) -#define hashmask(n) (hashsize(n)-1) -#define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k)))) - /* ------------------------------------------------------------------------------- mix -- mix 3 32-bit values reversibly. From 2196ccf5e83afd88fb3bb19b5326677f30af01f6 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 27 May 2021 13:29:33 +0200 Subject: [PATCH 042/156] - Merge #496 from banburybill: Use build system endianness if available, otherwise try to work it out. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index d87e545d7..f322879dc 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +27 May 2021: Wouter + - Merge #496 from banburybill: Use build system endianness if + available, otherwise try to work it out. + 25 May 2021: Wouter - Move the NSEC3 max iterations count in line with the 150 value used by BIND, Knot and PowerDNS. This sets the default value From ea4f1ee8a68cfdbaaeb110990e59cd976bd1ce5d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 27 May 2021 14:20:53 +0200 Subject: [PATCH 043/156] - zonemd-check: yesno option, default no, enables the processing of ZONEMD records for that zone. --- doc/Changelog | 2 + doc/example.conf.in | 1 + doc/unbound.conf.5.in | 6 + services/authzone.c | 9 + services/authzone.h | 2 + testcode/unitzonemd.c | 3 + testdata/auth_zonemd_anchor.rpl | 1 + testdata/auth_zonemd_anchor_fail.rpl | 1 + testdata/auth_zonemd_chain.rpl | 1 + testdata/auth_zonemd_chain_fail.rpl | 1 + testdata/auth_zonemd_file.rpl | 1 + testdata/auth_zonemd_file_fail.rpl | 1 + testdata/auth_zonemd_insecure.rpl | 1 + testdata/auth_zonemd_insecure_absent.rpl | 1 + .../auth_zonemd_insecure_absent_reject.rpl | 1 + testdata/auth_zonemd_insecure_fail.rpl | 1 + testdata/auth_zonemd_nokey.rpl | 1 + testdata/auth_zonemd_permissive_mode.rpl | 1 + testdata/auth_zonemd_xfr.rpl | 1 + testdata/auth_zonemd_xfr_anchor.rpl | 1 + testdata/auth_zonemd_xfr_anchor_fail.rpl | 1 + testdata/auth_zonemd_xfr_chain.rpl | 1 + testdata/auth_zonemd_xfr_chain_fail.rpl | 1 + testdata/auth_zonemd_xfr_fail.rpl | 1 + util/config_file.h | 2 + util/configlexer.c | 4302 +++++++++-------- util/configlexer.lex | 1 + util/configparser.c | 3187 ++++++------ util/configparser.h | 8 +- util/configparser.y | 15 +- 30 files changed, 3821 insertions(+), 3735 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index f322879dc..1362ef7b0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 27 May 2021: Wouter - Merge #496 from banburybill: Use build system endianness if available, otherwise try to work it out. + - zonemd-check: yesno option, default no, enables the processing + of ZONEMD records for that zone. 25 May 2021: Wouter - Move the NSEC3 max iterations count in line with the 150 value diff --git a/doc/example.conf.in b/doc/example.conf.in index 96eeebd59..e93c40be9 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -1033,6 +1033,7 @@ remote-control: # name: "example.org" # for-downstream: yes # for-upstream: yes +# zonemd-check: no # zonemd-reject-absence: no # zonefile: "example.org.zone" diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 7215bce65..b0ed3aa26 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1980,6 +1980,12 @@ to the authority servers for this zone, it'll fetch the data directly from the zone data. Turn it on when you want unbound to provide recursion for downstream clients, and use the zone data as a local copy to speed up lookups. .TP +.B zonemd\-check: \fI +Enable this option to check ZONEMD records in the zone. Default is disabled. +The ZONEMD record is a checksum over the zone data. This includes glue in +the zone and data from the zone file, and excludes comments from the zone file. +When there is a DNSSEC chain of trust, DNSSEC signatures are checked too. +.TP .B zonemd\-reject\-absence: \fI Enable this option to reject the absence of the ZONEMD record. Without it, when zonemd is not there it is not checked. It is useful to enable for a diff --git a/services/authzone.c b/services/authzone.c index 9f9b08f7d..9ebd79ed3 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -1755,6 +1755,8 @@ zonemd_offline_verify(struct auth_zone* z, struct module_env* env_for_val, { struct module_env env; time_t now = 0; + if(!z->zonemd_check) + return; env = *env_for_val; env.scratch_buffer = sldns_buffer_new(env.cfg->msg_buffer_size); if(!env.scratch_buffer) { @@ -2096,6 +2098,7 @@ auth_zones_cfg(struct auth_zones* az, struct config_auth* c) z->for_downstream = c->for_downstream; z->for_upstream = c->for_upstream; z->fallback_enabled = c->fallback_enabled; + z->zonemd_check = c->zonemd_check; z->zonemd_reject_absence = c->zonemd_reject_absence; if(c->isrpz && !z->rpz){ if(!(z->rpz = rpz_create(c))){ @@ -8234,6 +8237,8 @@ void auth_zone_verify_zonemd(struct auth_zone* z, struct module_env* env, int is_insecure = 0; /* verify the ZONEMD if present. * If not present check if absence is allowed by DNSSEC */ + if(!z->zonemd_check) + return; /* if zone is under a trustanchor */ /* is it equal to trustanchor - get dnskey's verified */ @@ -8302,6 +8307,10 @@ void auth_zones_pickup_zonemd_verify(struct auth_zones* az, lock_rw_rdlock(&az->lock); RBTREE_FOR(z, struct auth_zone*, &az->ztree) { lock_rw_wrlock(&z->lock); + if(!z->zonemd_check) { + lock_rw_unlock(&z->lock); + continue; + } key.dclass = z->dclass; key.namelabs = z->namelabs; if(z->namelen > sizeof(savezname)) { diff --git a/services/authzone.h b/services/authzone.h index 4810017a3..ffe234d59 100644 --- a/services/authzone.h +++ b/services/authzone.h @@ -132,6 +132,8 @@ struct auth_zone { /** for upstream: this zone answers queries that unbound intends to * send upstream. */ int for_upstream; + /** check ZONEMD records */ + int zonemd_check; /** reject absence of ZONEMD records */ int zonemd_reject_absence; /** RPZ zones */ diff --git a/testcode/unitzonemd.c b/testcode/unitzonemd.c index a8949a8c4..3352a7c37 100644 --- a/testcode/unitzonemd.c +++ b/testcode/unitzonemd.c @@ -82,6 +82,7 @@ static void zonemd_generate_test(const char* zname, char* zfile, /* read file */ z = authtest_addzone(az, zname, zfile); unit_assert(z); + z->zonemd_check = 1; /* create zonemd digest */ result = auth_zone_generate_zonemd_hash(z, scheme, hashalgo, @@ -196,6 +197,7 @@ static void zonemd_check_test(void) /* read file */ z = authtest_addzone(az, zname, zfile); unit_assert(z); + z->zonemd_check = 1; hashlen = sizeof(hash); if(sldns_str2wire_hex_buf(digest, hash, &hashlen) != 0) { unit_assert(0); /* parse failure */ @@ -291,6 +293,7 @@ static void zonemd_verify_test(char* zname, char* zfile, char* tastr, /* test */ lock_rw_wrlock(&z->lock); + z->zonemd_check = 1; auth_zone_verify_zonemd(z, &env, &mods, &result, 1, 0); lock_rw_unlock(&z->lock); if(verbosity >= VERB_ALGO) { diff --git a/testdata/auth_zonemd_anchor.rpl b/testdata/auth_zonemd_anchor.rpl index 7e4257513..c443f7d43 100644 --- a/testdata/auth_zonemd_anchor.rpl +++ b/testdata/auth_zonemd_anchor.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_anchor_fail.rpl b/testdata/auth_zonemd_anchor_fail.rpl index 69492d5f8..d055174dc 100644 --- a/testdata/auth_zonemd_anchor_fail.rpl +++ b/testdata/auth_zonemd_anchor_fail.rpl @@ -27,6 +27,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_chain.rpl b/testdata/auth_zonemd_chain.rpl index b693f6c35..74479274f 100644 --- a/testdata/auth_zonemd_chain.rpl +++ b/testdata/auth_zonemd_chain.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_chain_fail.rpl b/testdata/auth_zonemd_chain_fail.rpl index d38367b9d..393b1c028 100644 --- a/testdata/auth_zonemd_chain_fail.rpl +++ b/testdata/auth_zonemd_chain_fail.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_file.rpl b/testdata/auth_zonemd_file.rpl index ffccd6779..bdf0ccbae 100644 --- a/testdata/auth_zonemd_file.rpl +++ b/testdata/auth_zonemd_file.rpl @@ -21,6 +21,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_file_fail.rpl b/testdata/auth_zonemd_file_fail.rpl index 4bfa81b80..69487cf65 100644 --- a/testdata/auth_zonemd_file_fail.rpl +++ b/testdata/auth_zonemd_file_fail.rpl @@ -21,6 +21,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure.rpl b/testdata/auth_zonemd_insecure.rpl index b48992b4d..18a4117d8 100644 --- a/testdata/auth_zonemd_insecure.rpl +++ b/testdata/auth_zonemd_insecure.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure_absent.rpl b/testdata/auth_zonemd_insecure_absent.rpl index 4706ccb0a..1c3f48808 100644 --- a/testdata/auth_zonemd_insecure_absent.rpl +++ b/testdata/auth_zonemd_insecure_absent.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_insecure_absent_reject.rpl b/testdata/auth_zonemd_insecure_absent_reject.rpl index 79225c936..beb9f5b9a 100644 --- a/testdata/auth_zonemd_insecure_absent_reject.rpl +++ b/testdata/auth_zonemd_insecure_absent_reject.rpl @@ -7,6 +7,7 @@ server: auth-zone: name: "example.com." + zonemd-check: yes zonemd-reject-absence: yes ## zonefile (or none). ## zonefile: "example.com.zone" diff --git a/testdata/auth_zonemd_insecure_fail.rpl b/testdata/auth_zonemd_insecure_fail.rpl index 03bbdd64c..f7aad071e 100644 --- a/testdata/auth_zonemd_insecure_fail.rpl +++ b/testdata/auth_zonemd_insecure_fail.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_nokey.rpl b/testdata/auth_zonemd_nokey.rpl index 57609337e..a89414bf6 100644 --- a/testdata/auth_zonemd_nokey.rpl +++ b/testdata/auth_zonemd_nokey.rpl @@ -24,6 +24,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_permissive_mode.rpl b/testdata/auth_zonemd_permissive_mode.rpl index 0df0a2951..4149daa92 100644 --- a/testdata/auth_zonemd_permissive_mode.rpl +++ b/testdata/auth_zonemd_permissive_mode.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr.rpl b/testdata/auth_zonemd_xfr.rpl index 0a4d45f92..89e22cea1 100644 --- a/testdata/auth_zonemd_xfr.rpl +++ b/testdata/auth_zonemd_xfr.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_anchor.rpl b/testdata/auth_zonemd_xfr_anchor.rpl index 682d51b47..667de2eae 100644 --- a/testdata/auth_zonemd_xfr_anchor.rpl +++ b/testdata/auth_zonemd_xfr_anchor.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_anchor_fail.rpl b/testdata/auth_zonemd_xfr_anchor_fail.rpl index 2b2849546..237ed9498 100644 --- a/testdata/auth_zonemd_xfr_anchor_fail.rpl +++ b/testdata/auth_zonemd_xfr_anchor_fail.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_chain.rpl b/testdata/auth_zonemd_xfr_chain.rpl index 9d1fdcf68..4deb99bcb 100644 --- a/testdata/auth_zonemd_xfr_chain.rpl +++ b/testdata/auth_zonemd_xfr_chain.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_chain_fail.rpl b/testdata/auth_zonemd_xfr_chain_fail.rpl index 8b3ad74f0..3e09c9e8e 100644 --- a/testdata/auth_zonemd_xfr_chain_fail.rpl +++ b/testdata/auth_zonemd_xfr_chain_fail.rpl @@ -25,6 +25,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/testdata/auth_zonemd_xfr_fail.rpl b/testdata/auth_zonemd_xfr_fail.rpl index 9fdf70889..f54ca7e08 100644 --- a/testdata/auth_zonemd_xfr_fail.rpl +++ b/testdata/auth_zonemd_xfr_fail.rpl @@ -22,6 +22,7 @@ auth-zone: ## on failures with for-upstream, fallback to sending queries to ## the authority servers ## fallback-enabled: no + zonemd-check: yes ## this line generates zonefile: \n"/tmp/xxx.example.com"\n zonefile: diff --git a/util/config_file.h b/util/config_file.h index 524e648fe..d62babba1 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -735,6 +735,8 @@ struct config_auth { /** Always reply with this CNAME target if the cname override action is * used */ char* rpz_cname; + /** Check ZONEMD records for this zone */ + int zonemd_check; /** Reject absence of ZONEMD records, zone must have one */ int zonemd_reject_absence; }; diff --git a/util/configlexer.c b/util/configlexer.c index 06a688467..e31e36739 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 348 -#define YY_END_OF_BUFFER 349 +#define YY_NUM_RULES 349 +#define YY_END_OF_BUFFER 350 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,386 +363,387 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3439] = +static const flex_int16_t yy_accept[3445] = { 0, - 1, 1, 322, 322, 326, 326, 330, 330, 334, 334, - 1, 1, 338, 338, 342, 342, 349, 346, 1, 320, - 320, 347, 2, 347, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 322, 323, 323, 324, - 347, 326, 327, 327, 328, 347, 333, 330, 331, 331, - 332, 347, 334, 335, 335, 336, 347, 345, 321, 2, - 325, 347, 345, 341, 338, 339, 339, 340, 347, 342, - 343, 343, 344, 347, 346, 0, 1, 2, 2, 2, - 2, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 1, 1, 323, 323, 327, 327, 331, 331, 335, 335, + 1, 1, 339, 339, 343, 343, 350, 347, 1, 321, + 321, 348, 2, 348, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 323, 324, 324, 325, + 348, 327, 328, 328, 329, 348, 334, 331, 332, 332, + 333, 348, 335, 336, 336, 337, 348, 346, 322, 2, + 326, 348, 346, 342, 339, 340, 340, 341, 348, 343, + 344, 344, 345, 348, 347, 0, 1, 2, 2, 2, + 2, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 322, - 0, 326, 0, 333, 0, 330, 334, 0, 345, 0, - 2, 2, 345, 341, 0, 338, 342, 0, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 323, + 0, 327, 0, 334, 0, 331, 335, 0, 346, 0, + 2, 2, 346, 342, 0, 339, 343, 0, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 346, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 128, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 137, - 346, 346, 346, 346, 346, 346, 346, 345, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 128, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 137, + 347, 347, 347, 347, 347, 347, 347, 346, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 112, 346, 319, - 346, 346, 346, 346, 346, 346, 346, 8, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 112, 347, 320, + 347, 347, 347, 347, 347, 347, 347, 8, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 129, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 142, 346, 346, 345, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 129, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 142, 347, 347, 346, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 312, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 313, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 67, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 244, 346, - 14, 15, 346, 19, 18, 346, 346, 228, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 346, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 67, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 245, 347, + 14, 15, 347, 19, 18, 347, 347, 229, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 135, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 226, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 3, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 135, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 227, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 3, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 345, 346, 346, 346, 346, 346, 346, 346, - 306, 346, 346, 305, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 329, 346, 346, 346, 346, 346, 346, 346, 346, - 66, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 346, 347, 347, 347, 347, 347, 347, 347, + 307, 347, 347, 306, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 330, 347, 347, 347, 347, 347, 347, 347, 347, + 66, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 70, 346, 275, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 313, - 314, 346, 346, 346, 346, 346, 346, 346, 71, 346, - 346, 136, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 132, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 215, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 21, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 70, 347, 276, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 314, + 315, 347, 347, 347, 347, 347, 347, 347, 71, 347, + 347, 136, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 132, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 216, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 21, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 161, - 346, 346, 346, 346, 345, 329, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 110, 346, 346, - 346, 346, 346, 346, 346, 283, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 185, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 160, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 161, + 347, 347, 347, 347, 347, 346, 330, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 110, 347, + 347, 347, 347, 347, 347, 347, 284, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 185, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 160, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 109, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 35, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 36, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 109, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 35, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 36, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 68, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 134, 346, 346, 345, - 346, 346, 346, 346, 346, 127, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 69, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 248, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 186, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 68, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 134, 347, 347, + 347, 346, 347, 347, 347, 347, 347, 127, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 69, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 249, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 186, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 57, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 266, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 61, 346, 62, 346, 346, 346, 346, 346, 113, 346, - 114, 346, 346, 346, 346, 111, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 57, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 267, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 61, 347, 62, 347, 347, 347, 347, 347, + 113, 347, 114, 347, 347, 347, 347, 111, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 7, 346, 346, - 346, 345, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 237, 346, 346, 346, 346, 163, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 249, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 7, + 347, 347, 347, 347, 346, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 238, 347, 347, 347, 347, 163, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 250, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 48, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 58, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 207, 346, 206, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 16, 17, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 72, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 214, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 48, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 58, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 208, 347, 207, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 16, + 17, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 72, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 215, 347, 347, - 346, 116, 346, 115, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 198, 346, - 346, 346, 346, 346, 346, 346, 346, 143, 346, 346, - 345, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 104, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 92, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 227, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 116, 347, 115, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 199, 347, 347, 347, 347, 347, 347, 347, 347, + 143, 347, 347, 347, 346, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 104, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 92, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 228, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 97, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 65, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 201, 202, 346, - 346, 346, 277, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 6, 346, 346, 346, - 346, 346, 346, 296, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 281, 346, 346, 346, 346, 346, 346, 307, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 97, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 65, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 202, 203, 347, 347, 347, 278, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 6, 347, 347, 347, 347, 347, 347, 297, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 282, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 45, 346, 346, 346, 346, 47, 346, 346, - 346, 93, 346, 346, 346, 346, 346, 55, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 345, 346, 194, - 346, 346, 346, 138, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 219, 346, 195, 346, 346, 346, - 234, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 56, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 308, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 45, 347, 347, 347, + 347, 47, 347, 347, 347, 93, 347, 347, 347, 347, + 347, 55, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 346, 347, 195, 347, 347, 347, 138, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 220, + 347, 196, 347, 347, 347, 235, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 56, 347, 347, 347, - 346, 346, 140, 121, 346, 122, 346, 346, 346, 120, - 346, 346, 346, 346, 346, 346, 346, 346, 158, 346, - 346, 53, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 265, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 196, 346, - 346, 346, 346, 346, 199, 346, 205, 346, 346, 346, - 346, 346, 346, 233, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 108, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 133, + 347, 347, 347, 347, 347, 347, 347, 140, 121, 347, + 122, 347, 347, 347, 120, 347, 347, 347, 347, 347, + 347, 347, 347, 158, 347, 347, 53, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 266, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 197, 347, 347, 347, 347, 347, 200, + 347, 206, 347, 347, 347, 347, 347, 347, 234, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 108, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 63, 346, 346, - 346, 29, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 20, 346, 346, 346, 346, 346, 346, - 30, 39, 346, 168, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, - 346, 346, 346, 346, 346, 346, 80, 82, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 285, 346, 346, 346, 346, 245, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 123, + 347, 347, 347, 347, 133, 347, 347, 347, 347, 347, + 347, 347, 63, 347, 347, 347, 29, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 20, 347, + 347, 347, 347, 347, 347, 30, 39, 347, 168, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 193, 347, 347, 346, 347, 347, 347, 347, + 347, 347, 80, 82, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 286, 347, 347, + 347, 347, 246, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 157, - 346, 49, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 300, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 162, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 294, 346, 346, 346, - 225, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 310, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 179, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 123, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 157, 347, 49, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 301, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 162, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 295, 347, 347, 347, 226, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 311, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 179, 347, - 346, 346, 117, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 174, 346, 187, 346, 346, 346, - 346, 346, 346, 345, 346, 146, 346, 346, 346, 346, - 346, 103, 346, 346, 346, 346, 217, 346, 346, 346, - 346, 346, 346, 235, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 257, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 139, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 178, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 117, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 174, 347, 187, 347, 347, 347, 347, 347, 347, 346, + 347, 146, 347, 347, 347, 347, 347, 103, 347, 347, + 347, 347, 218, 347, 347, 347, 347, 347, 347, 236, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 258, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 139, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 83, 346, 84, 346, 346, 346, 346, - 346, 64, 303, 346, 346, 346, 346, 346, 91, 188, - 346, 208, 346, 238, 346, 346, 200, 278, 346, 346, - 346, 346, 346, 346, 76, 346, 190, 346, 346, 346, - 346, 346, 9, 346, 346, 346, 346, 346, 107, 346, - 346, 346, 346, 270, 346, 346, 346, 346, 216, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 178, 347, 347, 347, 347, 347, 347, 83, + 347, 84, 347, 347, 347, 347, 347, 64, 304, 347, + 347, 347, 347, 347, 91, 188, 347, 209, 347, 239, + 347, 347, 201, 279, 347, 347, 347, 347, 347, 347, + 76, 347, 190, 347, 347, 347, 347, 347, 9, 347, + 347, 347, 347, 347, 107, 347, 347, 347, 347, 271, + 347, 347, 347, 347, 217, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 345, - 346, 346, 346, 346, 177, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 164, 346, 284, 346, 346, - 346, 346, 346, 256, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 229, 346, 346, 346, 346, - 346, 276, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 304, 346, 189, 346, 346, 346, 346, 346, - 346, 346, 346, 75, 77, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 346, 347, 347, 347, 347, + 177, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 164, 347, 285, 347, 347, 347, 347, 347, 257, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 230, 347, 347, 347, 347, 347, 277, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 305, 347, + 189, 347, 347, 347, 347, 347, 347, 347, 347, 75, - 346, 346, 346, 346, 106, 346, 346, 346, 346, 268, - 346, 346, 346, 346, 280, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 221, 37, 31, - 33, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 38, 346, 32, 34, 346, 346, 346, 346, - 346, 346, 346, 346, 102, 346, 346, 346, 346, 346, - 346, 346, 346, 345, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 223, 220, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 74, 346, 346, 346, 141, + 77, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 106, 347, 347, 347, 347, 269, 347, 347, 347, 347, + 281, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 222, 37, 31, 33, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 38, 347, + 32, 34, 347, 347, 347, 347, 347, 347, 347, 347, + 102, 347, 347, 347, 347, 347, 347, 347, 347, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 224, 221, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 124, 346, 346, 346, 346, 346, 346, 346, 346, - 159, 50, 346, 346, 346, 337, 13, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 298, 346, 301, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 12, 346, 346, 22, 346, 346, 346, 346, 346, - 274, 346, 346, 346, 346, 282, 346, 346, 346, 78, - 346, 231, 346, 346, 346, 346, 346, 222, 346, 346, - 73, 346, 346, 346, 346, 346, 23, 346, 346, 46, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 173, 172, 346, 346, 337, 346, 346, 346, + 347, 74, 347, 347, 347, 141, 347, 124, 347, 347, + 347, 347, 347, 347, 347, 347, 159, 50, 347, 347, + 347, 338, 13, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 299, 347, 302, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 12, 347, 347, + 22, 347, 347, 347, 347, 347, 275, 347, 347, 347, + 347, 283, 347, 347, 347, 78, 347, 232, 347, 347, + 347, 347, 347, 223, 347, 347, 73, 347, 347, 347, + 347, 347, 23, 347, 347, 46, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 173, 172, - 346, 346, 346, 346, 346, 346, 224, 218, 346, 236, - 346, 346, 286, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 85, 346, 346, 346, 346, - 269, 346, 346, 346, 346, 204, 346, 346, 346, 346, - 346, 230, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 308, 309, 170, 346, 346, 79, 346, - 346, 346, 346, 180, 346, 346, 346, 118, 119, 346, - 346, 346, 25, 346, 346, 165, 346, 167, 346, 209, + 347, 347, 338, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 225, 219, 347, 237, 347, 347, 287, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 85, 347, 347, 347, 347, 270, 347, 347, 347, + 347, 205, 347, 347, 347, 347, 347, 231, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 309, + 310, 170, 347, 347, 79, 347, 347, 347, 347, 180, + 347, 347, 347, 118, 119, 347, 347, 347, 25, 347, - 346, 346, 346, 346, 171, 346, 346, 346, 346, 239, - 346, 346, 346, 346, 346, 346, 346, 148, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 247, 346, 346, 346, 346, 346, 346, 346, 317, 346, - 27, 346, 279, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 89, 210, 346, - 346, 267, 346, 302, 346, 203, 346, 346, 346, 346, - 346, 59, 346, 346, 346, 346, 346, 346, 4, 346, - 346, 346, 346, 131, 147, 346, 346, 346, 184, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 165, 347, 167, 347, 210, 347, 347, 347, 347, + 171, 347, 347, 347, 347, 240, 347, 347, 347, 347, + 347, 347, 347, 148, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 248, 347, 347, 347, + 347, 347, 347, 347, 318, 347, 27, 347, 280, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 89, 211, 347, 347, 268, 347, 303, + 347, 204, 347, 347, 347, 347, 347, 59, 347, 347, + 347, 347, 347, 347, 4, 347, 347, 347, 347, 131, + 147, 347, 347, 347, 184, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 242, 40, 41, - 346, 346, 346, 346, 346, 346, 346, 287, 346, 346, - 346, 346, 346, 346, 346, 255, 346, 346, 346, 346, - 346, 346, 346, 346, 213, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 88, 346, 60, - 273, 346, 243, 346, 346, 346, 346, 346, 11, 346, - 346, 346, 346, 346, 346, 346, 346, 130, 346, 346, - 346, 346, 211, 94, 346, 346, 43, 346, 346, 346, - 346, 346, 346, 346, 346, 176, 346, 346, 346, 346, - 346, 346, 346, 150, 346, 346, 346, 346, 246, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 243, 40, 41, 347, 347, 347, 347, + 347, 347, 347, 288, 347, 347, 347, 347, 347, 347, + 347, 256, 347, 347, 347, 347, 347, 347, 347, 347, + 214, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 88, 347, 60, 274, 347, 244, 347, + 347, 347, 347, 347, 11, 347, 347, 347, 347, 347, + 347, 347, 347, 130, 347, 347, 347, 347, 212, 94, + 347, 347, 43, 347, 347, 347, 347, 347, 347, 347, + 347, 176, 347, 347, 347, 347, 347, 347, 347, 150, - 346, 346, 346, 346, 254, 346, 346, 346, 346, 144, - 346, 346, 346, 125, 126, 346, 346, 346, 96, 100, - 95, 346, 346, 346, 346, 86, 346, 346, 346, 346, - 346, 346, 10, 346, 346, 346, 346, 346, 271, 311, - 346, 346, 346, 346, 346, 316, 42, 346, 346, 346, - 346, 346, 175, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 101, 99, - 346, 54, 346, 346, 87, 299, 346, 346, 346, 346, - 24, 346, 346, 346, 346, 346, 197, 346, 346, 346, + 347, 347, 347, 347, 247, 347, 347, 347, 347, 347, + 255, 347, 347, 347, 347, 144, 347, 347, 347, 125, + 126, 347, 347, 347, 96, 100, 95, 347, 347, 347, + 347, 86, 347, 347, 347, 347, 347, 347, 10, 347, + 347, 347, 347, 347, 272, 312, 347, 347, 347, 347, + 347, 317, 42, 347, 347, 347, 347, 347, 175, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 101, 99, 347, 54, 347, 347, + 87, 300, 347, 347, 347, 347, 24, 347, 347, 347, - 346, 346, 212, 346, 346, 346, 346, 346, 346, 346, - 346, 193, 346, 346, 166, 81, 346, 346, 346, 346, - 346, 288, 346, 346, 346, 346, 346, 346, 346, 251, - 346, 346, 250, 145, 346, 346, 98, 51, 346, 151, - 152, 155, 156, 153, 154, 90, 297, 346, 346, 272, - 346, 346, 346, 26, 346, 169, 346, 346, 346, 346, - 192, 346, 241, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 182, 181, 44, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 198, 347, 347, 347, 347, 347, 213, 347, + 347, 347, 347, 347, 347, 347, 347, 194, 347, 347, + 166, 81, 347, 347, 347, 347, 347, 289, 347, 347, + 347, 347, 347, 347, 347, 252, 347, 347, 251, 145, + 347, 347, 98, 51, 347, 151, 152, 155, 156, 153, + 154, 90, 298, 347, 347, 273, 347, 347, 347, 26, + 347, 169, 347, 347, 347, 347, 192, 347, 242, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 182, + 181, 44, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 346, 346, 295, 346, - 346, 346, 346, 105, 346, 240, 346, 264, 292, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 318, 346, 52, 5, 346, 346, 232, 346, 346, 293, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 252, - 28, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 253, 346, 346, 346, 149, 346, 346, - 346, 346, 346, 346, 346, 346, 183, 346, 191, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 289, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 296, 347, 347, 347, 347, 105, + 347, 241, 347, 265, 293, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 319, 347, 52, 5, + 347, 347, 233, 347, 347, 294, 347, 347, 347, 347, + 347, 347, 347, 347, 347, 253, 28, 347, 347, 347, + 347, 347, 347, 347, 347, 347, 347, 347, 347, 254, + 347, 347, 347, 149, 347, 347, 347, 347, 347, 347, + 347, 347, 183, 347, 191, 347, 347, 347, 347, 347, + 347, 347, 347, 347, 290, 347, 347, 347, 347, 347, - 346, 346, 346, 346, 346, 346, 315, 346, 346, 260, - 346, 346, 346, 346, 346, 290, 346, 346, 346, 346, - 346, 346, 291, 346, 346, 346, 258, 346, 261, 262, - 346, 346, 346, 346, 346, 259, 263, 0 + 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 347, 347, 316, 347, 347, 261, 347, 347, 347, 347, + 347, 291, 347, 347, 347, 347, 347, 347, 292, 347, + 347, 347, 259, 347, 262, 263, 347, 347, 347, 347, + 347, 260, 264, 0 } ; static const YY_CHAR yy_ec[256] = @@ -785,17 +786,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3457] = +static const flex_int16_t yy_base[3463] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 2864, 2494, 81, 6714, - 6714, 6714, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 4039, 3298, 81, 6721, + 6721, 6721, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 2453, 6714, 6714, 6714, - 107, 2397, 6714, 6714, 6714, 154, 2315, 2042, 6714, 6714, - 6714, 245, 1786, 6714, 6714, 6714, 163, 1733, 6714, 249, - 6714, 253, 148, 1670, 1574, 6714, 6714, 6714, 257, 1426, - 6714, 6714, 6714, 233, 1294, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 3236, 6721, 6721, 6721, + 107, 2864, 6721, 6721, 6721, 154, 2451, 2010, 6721, 6721, + 6721, 245, 1786, 6721, 6721, 6721, 163, 1733, 6721, 249, + 6721, 253, 148, 1670, 1574, 6721, 6721, 6721, 257, 1426, + 6721, 6721, 6721, 233, 1294, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -825,9 +826,9 @@ static const flex_int16_t yy_base[3457] = 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, - 818, 819, 823, 807, 825, 827, 834, 829, 6714, 831, + 818, 819, 823, 807, 825, 827, 834, 829, 6721, 831, 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, - 864, 867, 876, 898, 849, 871, 868, 878, 881, 6714, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6721, 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, 904, 912, 933, 906, 915, 929, 945, 942, 920, 930, @@ -837,16 +838,16 @@ static const flex_int16_t yy_base[3457] = 1006, 1004, 1001, 1017, 1027, 1019, 1030, 1031, 1034, 1033, 1022, 1043, 1032, 1047, 1048, 1039, 1049, 1057, 1054, 1041, 1055, 1059, 1060, 1061, 1063, 1066, 1067, 1068, 1069, 1073, - 1077, 1071, 1087, 1074, 1082, 1089, 1084, 6714, 1091, 6714, - 1093, 1094, 1095, 1096, 1100, 1098, 1097, 6714, 1101, 1107, + 1077, 1071, 1087, 1074, 1082, 1089, 1084, 6721, 1091, 6721, + 1093, 1094, 1095, 1096, 1100, 1098, 1097, 6721, 1101, 1107, 1108, 1099, 1116, 1111, 1129, 1122, 1112, 1124, 1130, 1131, 1134, 1142, 1137, 1138, 1146, 1139, 1143, 1144, 1147, 1150, - 1151, 1152, 1155, 1158, 1159, 1162, 1179, 6714, 1161, 1163, + 1151, 1152, 1155, 1158, 1159, 1162, 1179, 6721, 1161, 1163, 1171, 1165, 1170, 1172, 1176, 1190, 1191, 1173, 1197, 1201, 1203, 1210, 1206, 1207, 1208, 1209, 1213, 1182, 1214, 1218, 1216, 1222, 1225, 1224, 1226, 1230, 1227, 1228, 1229, 1245, - 6714, 1237, 1238, 1249, 1256, 1252, 1254, 1241, 1257, 1255, + 6721, 1237, 1238, 1249, 1256, 1252, 1254, 1241, 1257, 1255, 1258, 1259, 1261, 1265, 517, 1272, 1278, 1268, 1273, 1281, 1279, 1283, 1282, 1284, 1287, 1290, 1288, 1289, 1301, 1298, 1303, 1309, 1312, 1314, 1316, 1323, 1325, 1310, 1318, 1326, @@ -854,7 +855,7 @@ static const flex_int16_t yy_base[3457] = 1342, 1345, 1348, 1351, 1349, 1354, 1356, 1355, 1357, 1365, 1358, 1366, 1370, 1367, 1368, 1372, 1376, 1374, 1383, 1384, - 1386, 6714, 1393, 1391, 1394, 1395, 1402, 1403, 1404, 1389, + 1386, 6721, 1393, 1391, 1394, 1395, 1402, 1403, 1404, 1389, 1396, 1408, 1410, 1411, 1412, 1418, 1413, 1419, 1420, 1424, 1425, 1427, 1435, 1430, 1428, 1445, 1444, 1446, 1437, 1448, 1449, 1433, 1456, 1453, 1463, 1461, 1459, 1460, 1472, 1467, @@ -867,693 +868,695 @@ static const flex_int16_t yy_base[3457] = 1570, 1572, 1582, 1580, 1583, 1585, 1586, 1587, 1589, 1590, 1592, 1597, 1598, 1604, 1606, 1607, 1609, 1608, 1612, 1620, 1610, 1618, 1625, 1619, 1626, 1627, 1630, 1611, 1637, 1638, - 1641, 1643, 1645, 6714, 1631, 1634, 1646, 1649, 1651, 1652, - 1655, 1662, 1657, 1660, 1658, 1659, 1661, 1685, 6714, 1664, - 6714, 6714, 1669, 6714, 6714, 1671, 1668, 6714, 1672, 1682, + 1641, 1643, 1645, 6721, 1631, 1634, 1646, 1649, 1651, 1652, + 1655, 1662, 1657, 1660, 1658, 1659, 1661, 1685, 6721, 1664, + 6721, 6721, 1669, 6721, 6721, 1671, 1668, 6721, 1672, 1682, 1683, 1688, 1695, 1700, 1698, 1675, 1689, 1702, 1712, 1723, 1708, 1710, 1711, 1714, 1715, 1716, 1721, 1719, 1717, 1728, 1734, 1746, 1743, 1747, 1744, 1749, 1751, 1755, 1758, 1757, 1764, 1765, 1756, 1766, 1769, 1770, 1772, 1771, 1774, 1777, - 1780, 1781, 1778, 1776, 1783, 1793, 1784, 1798, 1801, 6714, + 1780, 1781, 1778, 1776, 1783, 1793, 1784, 1798, 1801, 6721, 1799, 1808, 1803, 1812, 1809, 1813, 1815, 1810, 1811, 1821, 1824, 1817, 1826, 1827, 1828, 1829, 1830, 1831, 1834, 1836, - 1840, 1838, 1849, 1839, 6714, 1842, 1852, 1841, 1854, 1853, + 1840, 1838, 1849, 1839, 6721, 1842, 1852, 1841, 1854, 1853, 1857, 1863, 1855, 1856, 1864, 1866, 1876, 1871, 1867, 1874, - 1877, 1878, 1880, 1884, 6714, 1883, 1889, 1890, 1891, 1892, + 1877, 1878, 1880, 1884, 6721, 1883, 1889, 1890, 1891, 1892, 1894, 1897, 1899, 1900, 1901, 1903, 1904, 1905, 1906, 1915, 1907, 1912, 1918, 1919, 1922, 1927, 1929, 1931, 1939, 1930, 1932, 1941, 1934, 1940, 1942, 1944, 1945, 1947, 1957, 1959, 1946, 1961, 1956, 1958, 1969, 1971, 1968, 1973, 1974, 1975, 1976, 1981, 1983, 1984, 1985, 1988, 1995, 1979, 1991, 1993, - 2000, 1996, 2008, 1998, 2006, 2015, 2004, 2009, 2017, 2018, - 6714, 2019, 2020, 6714, 2023, 2021, 2024, 2046, 2027, 2031, - 2025, 2033, 2038, 2044, 2039, 2042, 2047, 2050, 2059, 2060, - 2061, 2066, 2065, 2068, 2072, 2071, 2074, 2077, 2078, 2081, - 2079, 2086, 2093, 2095, 2097, 2099, 2106, 2101, 2102, 2104, - 2124, 2103, 2105, 2112, 2107, 2108, 2111, 2120, 2113, 2114, - 2117, 2118, 2135, 2137, 2139, 2131, 2140, 2141, 2146, 2148, - 2147, 6714, 2160, 2155, 2153, 2157, 2161, 2169, 2165, 2164, - 6714, 2166, 2168, 2171, 2179, 2176, 2178, 2181, 2180, 2182, + 2000, 2004, 2014, 2002, 2006, 2015, 1996, 2009, 2019, 2012, + 6721, 2021, 2023, 6721, 2025, 2026, 2027, 2049, 2032, 2030, + 2028, 2036, 2039, 2040, 2041, 2047, 2050, 2053, 2063, 2042, + 2059, 2068, 2066, 2071, 2075, 2069, 2077, 2078, 2079, 2080, + 2082, 2085, 2098, 2100, 2096, 2102, 2107, 2083, 2103, 2106, + 2125, 2104, 2108, 2109, 2115, 2110, 2112, 2120, 2118, 2119, + 2121, 2114, 2135, 2136, 2134, 2137, 2142, 2143, 2148, 2149, + 2150, 6721, 2160, 2156, 2152, 2157, 2163, 2172, 2164, 2165, + 6721, 2168, 2173, 2167, 2180, 2178, 2175, 2181, 2179, 2188, - 2184, 2189, 2190, 2193, 2188, 2191, 2198, 6714, 2195, 6714, - 2203, 2205, 2207, 2209, 2206, 2213, 2214, 2210, 2216, 6714, - 6714, 2218, 2224, 2226, 2236, 2232, 2219, 2222, 6714, 2237, - 2244, 6714, 2245, 2239, 2240, 2247, 2248, 2250, 2252, 2251, - 2261, 2256, 2263, 2258, 2269, 2270, 6714, 2259, 2260, 2272, - 2275, 2271, 2279, 2278, 2285, 2282, 6714, 2286, 2289, 2291, - 2299, 2296, 2298, 2300, 2301, 2302, 2306, 2308, 2309, 2310, - 2312, 2317, 2320, 2316, 2323, 2332, 2330, 2337, 6714, 2333, - 2322, 2319, 2342, 2341, 2344, 2345, 2347, 2334, 2348, 2350, - 2355, 2349, 2357, 2351, 2359, 2361, 2370, 2372, 2363, 2368, + 2185, 2189, 2191, 2195, 2190, 2192, 2203, 6721, 2198, 6721, + 2193, 2206, 2208, 2210, 2211, 2212, 2216, 2215, 2217, 6721, + 6721, 2218, 2219, 2232, 2227, 2234, 2224, 2235, 6721, 2236, + 2246, 6721, 2237, 2244, 2242, 2249, 2250, 2253, 2251, 2255, + 2260, 2257, 2265, 2258, 2262, 2261, 6721, 2276, 2263, 2278, + 2280, 2272, 2281, 2282, 2286, 2289, 6721, 2268, 2292, 2293, + 2300, 2296, 2297, 2298, 2302, 2303, 2307, 2309, 2310, 2311, + 2313, 2318, 2321, 2317, 2319, 2329, 2327, 2337, 6721, 2333, + 2334, 2320, 2341, 2339, 2343, 2336, 2346, 2347, 2348, 2350, + 2351, 2349, 2356, 2357, 2358, 2359, 2368, 2369, 2364, 2366, - 2375, 2365, 2376, 2377, 2383, 2381, 2382, 2385, 2386, 6714, - 2387, 2393, 2395, 2396, 2388, 171, 2398, 2394, 2402, 2405, - 2407, 2418, 2403, 2419, 2421, 2420, 2422, 2424, 2425, 2428, - 2429, 2432, 2431, 2433, 2434, 2435, 2438, 6714, 2440, 2444, - 2445, 2447, 2448, 2449, 2451, 6714, 2455, 2460, 2466, 2473, - 2468, 2464, 2474, 2476, 2479, 2480, 2481, 2482, 2484, 2483, - 2485, 2487, 2490, 6714, 2492, 2500, 2502, 2493, 2503, 2506, - 2511, 2504, 2512, 2514, 2516, 2515, 2517, 2522, 2518, 2521, - 2523, 2525, 2529, 2526, 2532, 2536, 2535, 2538, 2539, 2540, - 2543, 2547, 2549, 6714, 2554, 2555, 2553, 2556, 2558, 2560, + 2373, 2374, 2376, 2377, 2384, 2381, 2382, 2383, 2385, 6721, + 2386, 2388, 2392, 2396, 2398, 2394, 171, 2395, 2397, 2404, + 2406, 2408, 2419, 2407, 2421, 2426, 2413, 2423, 2422, 2425, + 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2439, 6721, 2441, + 2442, 2444, 2448, 2447, 2450, 2455, 6721, 2457, 2464, 2467, + 2476, 2459, 2468, 2477, 2473, 2478, 2479, 2481, 2483, 2485, + 2484, 2487, 2493, 2490, 6721, 2495, 2498, 2500, 2491, 2507, + 2506, 2499, 2513, 2514, 2515, 2518, 2516, 2517, 2520, 2519, + 2521, 2522, 2527, 2526, 2523, 2525, 2535, 2536, 2537, 2546, + 2547, 2539, 2548, 2549, 6721, 2559, 2550, 2554, 2552, 2555, - 2561, 2563, 2580, 2565, 2571, 2573, 2581, 2587, 2577, 2589, - 2597, 2593, 2599, 2602, 2607, 2603, 2609, 2612, 2605, 2615, - 2617, 2618, 2619, 2627, 2623, 2624, 2625, 2628, 2629, 2639, - 2640, 2631, 2641, 2643, 2646, 2635, 2653, 2658, 2572, 6714, - 2660, 2650, 2648, 2662, 2673, 2668, 2669, 2670, 2674, 2676, - 2678, 2679, 2680, 2687, 2682, 2684, 2686, 2690, 2689, 2693, - 2699, 2696, 2701, 2704, 2708, 2705, 2711, 2713, 6714, 2716, - 2712, 2718, 2721, 2723, 2724, 2728, 2731, 2729, 2725, 2733, - 2736, 2738, 2739, 2740, 2741, 2748, 2745, 2751, 2747, 2752, - 6714, 2759, 2753, 2764, 2757, 2767, 2755, 2773, 2774, 2775, + 2557, 2562, 2570, 2577, 2561, 2572, 2574, 2578, 2588, 2581, + 2583, 2590, 2598, 2595, 2603, 2591, 2604, 2605, 2613, 2602, + 2615, 2617, 2606, 2618, 2625, 2621, 2608, 2624, 2627, 2631, + 2638, 2639, 2635, 2642, 2634, 2651, 2644, 2659, 2664, 2655, + 6721, 2653, 2663, 2647, 2667, 2674, 2670, 2669, 2672, 2671, + 2675, 2680, 2681, 2682, 2689, 2686, 2637, 2688, 2690, 2692, + 2694, 2697, 2693, 2698, 2705, 2708, 2701, 2713, 2715, 6721, + 2718, 2709, 2719, 2720, 2725, 2722, 2727, 2730, 2728, 2732, + 2734, 2736, 2737, 2739, 2740, 2741, 2750, 2746, 2745, 2747, + 2748, 6721, 2759, 2752, 2758, 2760, 2764, 2765, 2770, 2768, - 2765, 2776, 2779, 2782, 2783, 2785, 6714, 2792, 2793, 2784, - 2800, 2795, 2791, 2796, 2802, 2799, 6714, 2803, 2805, 2808, - 2806, 2809, 2817, 2818, 2814, 6714, 2822, 2813, 2824, 2825, - 2828, 2829, 2830, 2834, 2831, 2836, 2837, 2841, 2839, 2842, - 2847, 6714, 2849, 2859, 2854, 2857, 2856, 2860, 2862, 2863, - 2871, 2873, 2867, 2870, 6714, 2886, 2883, 2885, 2894, 2889, - 2875, 2891, 2890, 2892, 2898, 2899, 2900, 2902, 6714, 2903, - 2906, 2907, 2910, 2914, 2912, 2904, 2921, 2920, 2926, 2913, - 2928, 2929, 2931, 2933, 2934, 2935, 2936, 2937, 2947, 2942, - 2949, 2939, 2951, 2961, 2962, 2953, 2964, 2960, 2965, 2968, + 2772, 2778, 2776, 2780, 2782, 2783, 2784, 6721, 2791, 2792, + 2789, 2793, 2795, 2796, 2799, 2801, 2802, 6721, 2803, 2805, + 2806, 2809, 2807, 2811, 2818, 2819, 2814, 6721, 2831, 2821, + 2817, 2826, 2828, 2829, 2830, 2832, 2836, 2838, 2839, 2842, + 2845, 2849, 2850, 6721, 2851, 2859, 2860, 2852, 2854, 2865, + 2866, 2867, 2868, 2871, 2875, 2869, 6721, 2890, 2887, 2886, + 2894, 2889, 2874, 2892, 2896, 2898, 2895, 2899, 2902, 2904, + 6721, 2906, 2905, 2909, 2911, 2914, 2915, 2916, 2928, 2917, + 2921, 2925, 2926, 2930, 2931, 2932, 2936, 2942, 2934, 2944, + 2948, 2946, 2951, 2938, 2954, 2962, 2963, 2959, 2965, 2966, - 2969, 2976, 2977, 2978, 2979, 2982, 6714, 2985, 2986, 2987, - 2973, 2988, 2992, 2993, 2994, 2997, 2975, 2999, 3004, 3002, - 3003, 3011, 3018, 3013, 3014, 3019, 3020, 3021, 3023, 3024, - 3025, 3026, 3035, 3027, 3031, 3034, 3042, 3037, 3040, 3047, - 3048, 3049, 3050, 3052, 3058, 3053, 3055, 3061, 3054, 3059, - 3063, 3064, 3066, 3080, 3081, 3073, 3075, 3083, 3084, 3085, - 6714, 3089, 3090, 3093, 3094, 3096, 3099, 3100, 3109, 3101, - 3102, 3106, 3113, 3118, 3110, 3119, 3120, 3121, 3131, 3124, - 6714, 3126, 6714, 3127, 3128, 3134, 3138, 3136, 6714, 3140, - 6714, 3142, 3147, 3143, 3149, 6714, 3150, 3151, 3154, 3152, + 2967, 2968, 2969, 2976, 2977, 2981, 2978, 2984, 6721, 2987, + 2988, 2982, 2980, 2990, 2993, 2994, 2996, 2999, 2995, 2997, + 3001, 3004, 3008, 3017, 3020, 3010, 3012, 3021, 3022, 3023, + 3024, 3025, 3026, 3031, 3034, 3033, 3035, 3036, 3043, 3039, + 3042, 3051, 3047, 3050, 3052, 3053, 3054, 3056, 3059, 3060, + 3064, 3057, 3063, 3073, 3079, 3081, 3065, 3083, 3075, 3084, + 3086, 3089, 6721, 3092, 3096, 3090, 3094, 3097, 3103, 3104, + 3106, 3107, 3098, 3112, 3115, 3116, 3118, 3121, 3123, 3124, + 3131, 3127, 6721, 3128, 6721, 3129, 3130, 3133, 3142, 3137, + 6721, 3141, 6721, 3145, 3152, 3143, 3147, 6721, 3153, 3149, - 3155, 3157, 3162, 3160, 3163, 3164, 3166, 3167, 3170, 3171, - 3173, 3176, 3178, 3183, 3185, 3186, 3187, 3190, 3194, 3191, - 3196, 3202, 3197, 3200, 3206, 3207, 3208, 6714, 3215, 3209, - 3212, 3218, 3220, 3221, 3223, 3225, 3224, 3227, 3231, 3230, - 3232, 3241, 3237, 3248, 3244, 3245, 3251, 3260, 3255, 3263, - 6714, 3258, 3262, 3259, 3265, 6714, 3268, 3266, 3269, 3276, - 3267, 3274, 3279, 3280, 3284, 3282, 3286, 3287, 3293, 3295, - 3297, 3301, 6714, 3303, 3305, 3288, 3306, 3315, 3322, 3323, - 3319, 3325, 3327, 3335, 3331, 3308, 3330, 3318, 3332, 3338, - 3339, 3340, 3342, 3349, 3344, 3345, 3354, 3346, 3355, 3356, + 3154, 3155, 3158, 3160, 3162, 3165, 3166, 3167, 3168, 3175, + 3171, 3169, 3173, 3179, 3181, 3183, 3189, 3190, 3191, 3192, + 3194, 3195, 3197, 3205, 3198, 3200, 3209, 3202, 3210, 6721, + 3219, 3222, 3214, 3223, 3216, 3212, 3224, 3226, 3229, 3231, + 3233, 3235, 3237, 3239, 3242, 3244, 3247, 3248, 3249, 3250, + 3260, 3258, 3267, 6721, 3262, 3264, 3265, 3266, 6721, 3269, + 3270, 3279, 3281, 3271, 3273, 3275, 3283, 3287, 3277, 3289, + 3292, 3293, 3303, 3300, 3304, 6721, 3306, 3308, 3302, 3314, + 3310, 3322, 3324, 3320, 3328, 3330, 3332, 3333, 3321, 3319, + 3335, 3336, 3339, 3346, 3347, 3343, 3350, 3345, 3352, 3359, - 3357, 3358, 3360, 3361, 3362, 3359, 3229, 3363, 3364, 6714, - 3366, 3369, 3379, 3388, 3370, 3371, 3385, 3386, 3368, 6714, - 3394, 3391, 3396, 3395, 3397, 3399, 3402, 3403, 3404, 3406, - 3408, 3410, 3409, 3412, 6714, 3419, 6714, 3413, 3426, 3425, - 3431, 3420, 3433, 3437, 3436, 3441, 3442, 3443, 3444, 3445, - 3446, 3452, 3449, 3453, 3455, 3457, 3462, 3460, 3463, 3469, - 3470, 3471, 3473, 3480, 3476, 3475, 6714, 6714, 3477, 3478, - 3490, 3484, 3486, 3492, 3493, 3498, 3499, 3501, 3503, 3505, - 3512, 6714, 3513, 3514, 3509, 3515, 3522, 3517, 3526, 3534, - 3532, 3530, 3539, 3536, 6714, 3518, 3540, 3547, 3543, 3546, + 3355, 3349, 3351, 3353, 3361, 3362, 3363, 3364, 3365, 3366, + 3372, 3369, 6721, 3379, 3380, 3381, 3384, 3383, 3385, 3386, + 3393, 3387, 6721, 3396, 3389, 3397, 3398, 3399, 3404, 3411, + 3405, 3412, 3413, 3416, 3414, 3415, 3417, 6721, 3420, 6721, + 3418, 3423, 3437, 3439, 3432, 3428, 3442, 3448, 3441, 3434, + 3450, 3449, 3451, 3457, 3458, 3459, 3460, 3461, 3462, 3469, + 3465, 3466, 3467, 3472, 3475, 3477, 3484, 3482, 3485, 6721, + 6721, 3481, 3491, 3494, 3488, 3492, 3498, 3499, 3496, 3502, + 3510, 3511, 3512, 3519, 6721, 3515, 3516, 3517, 3520, 3527, + 3522, 3524, 3541, 3533, 3534, 3542, 3537, 6721, 3526, 3544, - 3551, 6714, 3550, 6714, 3548, 3552, 3553, 3557, 3559, 3560, - 3563, 3564, 3565, 3566, 3570, 3581, 3582, 3574, 3584, 3578, - 3585, 3586, 3589, 3593, 3596, 3592, 3594, 3595, 6714, 3600, - 3597, 3604, 3602, 3611, 3615, 3609, 3601, 6714, 3612, 3619, - 3623, 3625, 3627, 3628, 3629, 3630, 3632, 3634, 3636, 3633, - 3638, 6714, 3637, 3639, 3652, 3642, 3644, 3651, 3661, 3655, - 3664, 6714, 3665, 3666, 3673, 3669, 3671, 3672, 3676, 3677, - 3678, 3680, 3681, 3682, 3684, 3685, 3690, 3686, 3688, 3695, - 3691, 3703, 3705, 3692, 3713, 3720, 3706, 6714, 3709, 3716, - 3718, 3719, 3721, 3722, 3724, 3730, 3732, 3726, 3741, 3742, + 3551, 3547, 3550, 3555, 6721, 3554, 6721, 3552, 3556, 3557, + 3561, 3563, 3564, 3567, 3568, 3569, 3570, 3574, 3585, 3586, + 3578, 3588, 3582, 3589, 3590, 3593, 3597, 3600, 3596, 3598, + 3599, 6721, 3604, 3601, 3608, 3606, 3615, 3619, 3613, 3605, + 6721, 3616, 3623, 3626, 3625, 3630, 3634, 3631, 3635, 3636, + 3639, 3640, 3641, 3644, 3646, 6721, 3642, 3643, 3657, 3652, + 3649, 3653, 3666, 3668, 3670, 6721, 3672, 3673, 3680, 3676, + 3678, 3660, 3681, 3679, 3683, 3685, 3686, 3687, 3688, 3689, + 3694, 3695, 3691, 3700, 3697, 3702, 3708, 3701, 3712, 3721, + 3718, 6721, 3719, 3723, 3720, 3724, 3725, 3729, 3730, 3733, - 3733, 3737, 3745, 3747, 3755, 3750, 6714, 3762, 3748, 3763, - 3752, 3761, 3760, 3765, 3767, 3769, 3771, 3770, 3773, 3774, - 3776, 3788, 3780, 3783, 3779, 3784, 3795, 3787, 6714, 3802, - 3798, 3790, 3806, 3800, 3809, 3816, 3813, 3814, 3815, 3818, - 3819, 3820, 3823, 3825, 3826, 3829, 3830, 6714, 6714, 3832, - 3833, 3835, 6714, 3837, 3838, 3848, 3839, 3841, 3849, 3851, - 3853, 3852, 3854, 3856, 3862, 3863, 6714, 3864, 3871, 3867, - 3868, 3878, 3874, 6714, 3873, 3883, 3882, 3884, 3885, 3886, - 3890, 3891, 3893, 3895, 3897, 3898, 3907, 3908, 3900, 3904, - 3910, 6714, 3905, 3911, 3912, 3916, 3918, 3921, 6714, 3922, + 3735, 3726, 3741, 3747, 3728, 3737, 3751, 3752, 3759, 3754, + 6721, 3761, 3760, 3768, 3763, 3764, 3766, 3769, 3770, 3772, + 3776, 3773, 3774, 3780, 3777, 3790, 3783, 3785, 3786, 3787, + 3798, 3793, 6721, 3809, 3800, 3801, 3810, 3806, 3811, 3821, + 3818, 3799, 3820, 3823, 3824, 3828, 3825, 3830, 3831, 3834, + 3835, 6721, 6721, 3837, 3838, 3839, 6721, 3840, 3843, 3853, + 3842, 3857, 3844, 3846, 3859, 3851, 3854, 3867, 3862, 3869, + 6721, 3870, 3877, 3872, 3874, 3879, 3876, 6721, 3882, 3889, + 3887, 3890, 3884, 3891, 3894, 3896, 3897, 3898, 3899, 3902, + 3910, 3912, 3907, 3905, 3914, 6721, 3909, 3915, 3917, 3924, - 3924, 3926, 3929, 3931, 3939, 3942, 3932, 3945, 3934, 3947, - 3949, 3951, 3950, 3952, 3959, 3957, 3954, 3958, 3960, 3965, - 3966, 3974, 6714, 3962, 3976, 3977, 3980, 6714, 3982, 3989, - 3990, 6714, 3991, 3986, 3993, 3994, 4001, 6714, 3996, 3999, - 4002, 4000, 4010, 4005, 4013, 4009, 4011, 4015, 4017, 6714, - 4018, 4016, 4019, 6714, 4023, 4021, 4033, 4037, 4034, 4044, - 4039, 4041, 4042, 4040, 6714, 4047, 6714, 4050, 4043, 4056, - 6714, 4051, 4058, 4059, 4061, 4062, 4067, 4068, 4066, 4075, - 4065, 4077, 4076, 4078, 4079, 4082, 4090, 4080, 4091, 4081, - 4088, 6714, 4092, 4089, 4096, 4095, 4108, 4101, 4106, 4103, + 3919, 3921, 6721, 3926, 3928, 3930, 3933, 3935, 3941, 3942, + 3943, 3948, 3949, 3950, 3952, 3951, 3953, 3955, 3963, 3958, + 3962, 3960, 3961, 3967, 3968, 3978, 6721, 3972, 3979, 3980, + 3984, 6721, 3986, 3993, 3994, 6721, 3997, 3989, 3996, 3998, + 4005, 6721, 4002, 4003, 4004, 4006, 4017, 4008, 4018, 4020, + 4009, 4013, 4021, 4022, 6721, 4023, 4024, 4027, 6721, 4036, + 4037, 4041, 4045, 4029, 4048, 4046, 4050, 4047, 4051, 6721, + 4054, 6721, 4058, 4056, 4062, 6721, 4057, 4064, 4065, 4067, + 4071, 4072, 4073, 4079, 4075, 4081, 4083, 4084, 4085, 4086, + 4088, 4095, 4087, 4091, 4094, 4096, 6721, 4097, 4099, 4106, - 4111, 4112, 6714, 6714, 4114, 6714, 4117, 4119, 4121, 6714, - 4123, 4122, 4132, 4127, 4128, 4131, 4140, 4134, 6714, 4146, - 4147, 6714, 4130, 4143, 4156, 4151, 4141, 4152, 4154, 4157, - 4159, 4161, 4162, 4160, 4164, 4165, 4167, 4171, 6714, 4168, - 4169, 4181, 4179, 4183, 4184, 4186, 4194, 4185, 6714, 4195, - 4196, 4197, 4202, 4203, 6714, 4208, 6714, 4206, 4209, 4211, - 4212, 4213, 4222, 6714, 4219, 4220, 4226, 4227, 4228, 4229, - 4230, 4236, 4237, 4238, 4245, 4242, 4243, 4240, 4250, 4246, - 6714, 4248, 4251, 4260, 4261, 4257, 4263, 4270, 4266, 4273, - 4268, 4269, 4279, 4276, 4280, 4289, 4282, 4287, 4284, 6714, + 4103, 4107, 4111, 4113, 4114, 4116, 4118, 6721, 6721, 4127, + 6721, 4119, 4124, 4128, 6721, 4130, 4129, 4138, 4133, 4136, + 4139, 4147, 4134, 6721, 4149, 4151, 6721, 4153, 4154, 4161, + 4156, 4157, 4158, 4164, 4159, 4162, 4169, 4170, 4171, 4172, + 4166, 4173, 4174, 6721, 4167, 4175, 4177, 4191, 4185, 4194, + 4196, 4195, 4197, 6721, 4201, 4202, 4205, 4207, 4208, 6721, + 4209, 6721, 4210, 4211, 4213, 4219, 4216, 4230, 6721, 4227, + 4222, 4232, 4226, 4233, 4237, 4240, 4241, 4242, 4234, 4249, + 4248, 4244, 4247, 4256, 4258, 6721, 4251, 4261, 4263, 4264, + 4267, 4268, 4277, 4269, 4276, 4272, 4273, 4280, 4283, 4284, - 4294, 4293, 4296, 4305, 4297, 4298, 4300, 6714, 4301, 4310, - 4311, 6714, 4308, 4314, 4318, 4320, 4322, 4323, 4326, 4324, - 4325, 4328, 4330, 6714, 4332, 4333, 4331, 4347, 4348, 4329, - 6714, 6714, 4350, 6714, 4354, 4336, 4346, 4337, 4357, 4358, - 4363, 4364, 4366, 4368, 4370, 4371, 4372, 4375, 4383, 4378, - 4390, 4386, 4397, 4392, 4388, 4379, 6714, 6714, 4402, 4403, - 4398, 4406, 4408, 4381, 4410, 4417, 4414, 4412, 4416, 4420, - 4427, 6714, 4422, 4423, 4430, 4424, 6714, 4431, 4432, 4435, - 4433, 4436, 4439, 4438, 4440, 4442, 4445, 4450, 4451, 4446, - 4459, 4452, 4453, 4462, 4463, 4465, 4466, 4468, 4473, 6714, + 4286, 4291, 4292, 4293, 6721, 4294, 4296, 4299, 4308, 4301, + 4305, 4304, 6721, 4309, 4310, 4312, 6721, 4318, 4319, 4323, + 4325, 4322, 4326, 4327, 4328, 4333, 4330, 4329, 6721, 4336, + 4337, 4335, 4341, 4351, 4350, 6721, 6721, 4352, 6721, 4354, + 4338, 4342, 4362, 4363, 4364, 4366, 4367, 4369, 4370, 4374, + 4372, 4379, 6721, 4375, 4387, 4382, 4391, 4399, 4401, 4383, + 4397, 4396, 6721, 6721, 4403, 4406, 4400, 4411, 4412, 4408, + 4415, 4423, 4414, 4424, 4427, 4429, 4428, 6721, 4431, 4398, + 4436, 4430, 6721, 4437, 4438, 4441, 4439, 4442, 4445, 4444, + 4446, 4448, 4449, 4452, 4455, 4457, 4456, 4458, 4465, 4467, - 4469, 4475, 4476, 4480, 4481, 4483, 4485, 4484, 4487, 6714, - 4489, 6714, 4488, 4493, 4491, 4490, 4499, 4509, 4510, 4511, - 4512, 4515, 4516, 4519, 4520, 4530, 4521, 4525, 4531, 4533, - 4535, 4540, 4541, 6714, 4543, 4527, 4537, 4544, 4550, 4552, - 4553, 4555, 4558, 4560, 4562, 4561, 4564, 4568, 4565, 4569, - 4170, 4570, 4571, 6714, 4575, 4574, 4581, 4583, 4585, 4586, - 4588, 4593, 4596, 4587, 4589, 4597, 6714, 4598, 4601, 4608, - 6714, 4602, 4500, 4610, 4611, 4617, 4605, 4614, 4612, 4618, - 6714, 4629, 4621, 4623, 4626, 4631, 4632, 4634, 4635, 4637, - 4642, 4645, 6714, 4653, 4639, 4638, 4652, 4654, 4655, 4656, + 4468, 4469, 4473, 4470, 4476, 6721, 4477, 4478, 4480, 4481, + 4482, 4489, 4490, 4491, 4492, 6721, 4494, 6721, 4501, 4493, + 4496, 4498, 4516, 4505, 4517, 4512, 4518, 4521, 4522, 4527, + 4528, 4536, 4524, 4529, 4537, 4531, 4545, 4547, 4548, 6721, + 4549, 4541, 4550, 4551, 4556, 4558, 4533, 4560, 4562, 4565, + 4566, 4567, 4569, 4574, 4571, 4575, 4576, 4577, 4578, 6721, + 4582, 4589, 4579, 4595, 4583, 4586, 4596, 4602, 4605, 4590, + 4600, 4606, 6721, 4607, 4610, 4612, 6721, 4613, 4614, 4616, + 4617, 4620, 4623, 4625, 4624, 4626, 6721, 4628, 4632, 4636, + 4634, 4635, 4638, 4640, 4644, 4646, 4647, 4651, 6721, 4663, - 4659, 4658, 6714, 4661, 4662, 4670, 4675, 4678, 4671, 4673, - 4680, 4676, 4682, 4683, 4686, 4690, 4689, 4691, 4694, 4695, - 4696, 4707, 4711, 4702, 6714, 4697, 6714, 4709, 4712, 4720, - 4715, 4719, 4721, 4725, 4723, 6714, 4726, 4731, 4733, 4729, - 4727, 6714, 4734, 4735, 4737, 4738, 6714, 4753, 4749, 4739, - 4748, 4741, 4757, 6714, 4762, 4763, 4764, 4771, 4773, 4768, - 4775, 4770, 4778, 4776, 4772, 4780, 4781, 4789, 4787, 4785, - 6714, 4791, 4793, 4798, 4800, 4794, 4802, 4792, 4804, 4807, - 4809, 6714, 4810, 4813, 4814, 4816, 4817, 4818, 4819, 4826, - 4823, 4825, 4827, 4828, 4831, 4832, 6714, 4837, 4835, 4839, + 4650, 4659, 4660, 4658, 4661, 4667, 4668, 4670, 6721, 4672, + 4675, 4676, 4684, 4685, 4681, 4682, 4692, 4689, 4690, 4687, + 4693, 4698, 4699, 4700, 4704, 4705, 4703, 4716, 4721, 4707, + 6721, 4718, 6721, 4719, 4722, 4726, 4724, 4727, 4729, 4732, + 4731, 6721, 4734, 4739, 4741, 4742, 4735, 6721, 4746, 4743, + 4745, 4749, 6721, 4762, 4747, 4748, 4754, 4764, 4769, 6721, + 4772, 4773, 4774, 4781, 4783, 4778, 4785, 4780, 4788, 4786, + 4782, 4790, 4791, 4799, 4797, 4795, 6721, 4801, 4803, 4808, + 4810, 4804, 4812, 4802, 4814, 4817, 4819, 6721, 4820, 4823, + 4824, 4826, 4827, 4828, 4829, 4836, 4833, 4835, 4837, 4838, - 4848, 4850, 4852, 6714, 4855, 6714, 4845, 4840, 4857, 4856, - 4861, 6714, 6714, 4863, 4871, 4866, 4869, 4870, 6714, 6714, - 4873, 6714, 4874, 6714, 4875, 4877, 6714, 6714, 4876, 4880, - 4883, 4885, 4886, 4888, 6714, 4895, 6714, 4902, 4897, 4884, - 4899, 4903, 6714, 4901, 4907, 4905, 4911, 4913, 6714, 4909, - 4922, 4914, 4915, 6714, 4925, 4926, 4919, 4927, 6714, 4933, - 4936, 4937, 4928, 4931, 4939, 4941, 4947, 4948, 4951, 4949, - 4950, 4952, 4953, 4956, 4960, 4965, 4967, 4957, 4968, 4971, - 4973, 4977, 4975, 4979, 4980, 4981, 4982, 4984, 4989, 4983, - 4991, 4994, 4985, 4995, 4997, 4998, 5005, 5006, 5008, 5009, + 4841, 4842, 6721, 4847, 4845, 4849, 4858, 4860, 4862, 6721, + 4865, 6721, 4855, 4850, 4867, 4866, 4871, 6721, 6721, 4873, + 4881, 4876, 4879, 4880, 6721, 6721, 4883, 6721, 4884, 6721, + 4885, 4887, 6721, 6721, 4886, 4890, 4893, 4895, 4896, 4898, + 6721, 4905, 6721, 4912, 4907, 4894, 4909, 4913, 6721, 4911, + 4917, 4915, 4921, 4923, 6721, 4919, 4932, 4924, 4925, 6721, + 4935, 4936, 4929, 4937, 6721, 4943, 4946, 4947, 4938, 4941, + 4949, 4951, 4957, 4958, 4961, 4959, 4960, 4962, 4963, 4966, + 4970, 4975, 4977, 4967, 4978, 4981, 4983, 4987, 4985, 4989, + 4990, 4991, 4992, 4994, 4999, 4993, 5001, 5004, 4756, 4995, - 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5021, 5020, 5026, - 5031, 5035, 5024, 5034, 6714, 5027, 5037, 5040, 5047, 5046, - 5048, 5051, 5055, 5058, 5061, 6714, 5064, 6714, 5066, 5052, - 5068, 5069, 5071, 6714, 5072, 5073, 5074, 5075, 5076, 5077, - 5078, 5081, 5082, 5084, 5089, 6714, 5094, 5098, 5083, 5099, - 5104, 6714, 5106, 5110, 5107, 5111, 5113, 5116, 5114, 5117, - 5118, 5119, 5122, 5124, 5126, 5127, 5130, 5140, 5142, 5143, - 5133, 5144, 5128, 5148, 5149, 5150, 5152, 5153, 5155, 5161, - 5163, 5167, 6714, 5156, 6714, 5164, 5168, 5169, 5171, 5174, - 5177, 5176, 5178, 6714, 6714, 5180, 5183, 5185, 5188, 5189, + 5008, 5005, 5006, 5014, 5016, 5018, 5021, 5022, 5023, 5024, + 5027, 4495, 5025, 5028, 5030, 5029, 5033, 5037, 5042, 5043, + 6721, 5035, 5045, 5047, 5048, 5052, 5054, 5055, 5062, 5064, + 5068, 6721, 5071, 6721, 5073, 5065, 5075, 5076, 5077, 6721, + 5078, 5079, 5080, 5081, 5082, 5084, 5085, 5088, 5089, 5093, + 5099, 6721, 5106, 5096, 5090, 5094, 5114, 6721, 5109, 5116, + 5117, 5119, 5120, 5121, 5122, 5123, 5126, 5124, 5129, 5131, + 5125, 5132, 5133, 5147, 5149, 5144, 5134, 5151, 5153, 5154, + 5155, 5156, 5157, 5158, 5159, 5165, 5167, 5171, 6721, 5162, + 6721, 5173, 5174, 5175, 5178, 5179, 5180, 5183, 5186, 6721, - 5193, 5190, 5194, 5195, 6714, 5198, 5202, 5205, 5208, 6714, - 5210, 5211, 5212, 5215, 6714, 5216, 5217, 5218, 5220, 5223, - 5230, 5233, 5227, 5224, 5234, 5235, 5244, 6714, 6714, 6714, - 6714, 5247, 5237, 5250, 5239, 5241, 5251, 5253, 5256, 5258, - 5261, 5263, 6714, 5267, 6714, 6714, 5264, 5268, 5270, 5271, - 5272, 5274, 5277, 5275, 6714, 5279, 5282, 5285, 5288, 5292, - 5296, 5297, 5289, 5299, 5300, 5301, 5304, 5305, 5315, 5311, - 5312, 5310, 5314, 5318, 5321, 6714, 6714, 5324, 5327, 5328, - 5335, 5333, 5336, 5330, 5345, 5342, 5343, 5340, 5332, 5350, - 5351, 5359, 5360, 5352, 5355, 6714, 5356, 5361, 5362, 6714, + 6721, 5188, 5189, 5191, 5194, 5195, 5197, 5199, 5200, 5202, + 6721, 5201, 5207, 5218, 5212, 6721, 5204, 5214, 5220, 5222, + 6721, 5223, 5224, 5226, 5228, 5229, 5232, 5236, 5237, 5238, + 5239, 5242, 5244, 6721, 6721, 6721, 6721, 5249, 5245, 5253, + 5247, 5255, 5256, 5257, 5261, 5259, 5263, 5264, 6721, 5272, + 6721, 6721, 5269, 5273, 5275, 5276, 5277, 5280, 5282, 5284, + 6721, 5286, 5288, 5290, 5287, 5297, 5304, 5300, 5294, 5307, + 5308, 5309, 5298, 5310, 5317, 5318, 5319, 5312, 5321, 5325, + 5330, 6721, 6721, 5322, 5332, 5333, 5340, 5337, 5338, 5341, + 5350, 5345, 5346, 5347, 5348, 5352, 5353, 5364, 5365, 5357, - 5364, 6714, 5368, 5369, 5370, 5371, 5377, 5378, 5379, 5381, - 6714, 6714, 5375, 5389, 5385, 6714, 6714, 5382, 5392, 5394, - 5396, 5397, 5398, 5399, 5400, 5403, 5405, 6714, 5406, 6714, - 5407, 5410, 5419, 5409, 5422, 5426, 5411, 5431, 5433, 5428, - 5430, 6714, 5437, 5438, 6714, 5445, 5440, 5444, 5441, 5442, - 6714, 5449, 5447, 5453, 5459, 6714, 5461, 5462, 5463, 6714, - 5470, 6714, 5454, 5467, 5464, 5479, 5471, 6714, 5475, 5480, - 6714, 5485, 5487, 5488, 5477, 5489, 6714, 5493, 5482, 6714, - 5494, 5497, 5498, 5504, 5501, 5506, 5507, 5508, 5509, 5517, - 5513, 5515, 6714, 6714, 5524, 5522, 135, 5531, 5510, 5521, + 5354, 6721, 5361, 5367, 5370, 6721, 5369, 6721, 5371, 5375, + 5377, 5378, 5379, 5383, 5384, 5387, 6721, 6721, 5382, 5399, + 5397, 6721, 6721, 5386, 5389, 5394, 5402, 5404, 5398, 5406, + 5407, 5419, 5408, 6721, 5410, 6721, 5412, 5416, 5424, 5414, + 5434, 5435, 5426, 5436, 5438, 5433, 5440, 6721, 5442, 5443, + 6721, 5452, 5447, 5449, 5448, 5454, 6721, 5457, 5455, 5460, + 5464, 6721, 5466, 5467, 5470, 6721, 5477, 6721, 5461, 5474, + 5468, 5484, 5482, 6721, 5472, 5485, 6721, 5488, 5490, 5493, + 5491, 5495, 6721, 5498, 5499, 6721, 5500, 5502, 5505, 5510, + 5503, 5512, 5513, 5507, 5514, 5521, 5523, 5527, 6721, 6721, - 5528, 5529, 5538, 5534, 5536, 5543, 6714, 6714, 5539, 6714, - 5537, 5546, 6714, 5547, 5550, 5551, 5556, 5555, 5557, 5558, - 5554, 5562, 5563, 5576, 5566, 5564, 5581, 5571, 5591, 5567, - 5593, 5594, 5596, 5598, 5600, 5588, 5602, 5603, 5582, 5605, - 5606, 5609, 5611, 5612, 5613, 6714, 5616, 5618, 5619, 5621, - 6714, 5627, 5624, 5629, 5630, 6714, 5637, 5634, 5638, 5640, - 5641, 6714, 5642, 5645, 5648, 5646, 5651, 5653, 5569, 5662, - 5654, 5657, 5659, 6714, 6714, 6714, 5668, 5672, 6714, 5675, - 5665, 5658, 5669, 6714, 5677, 5680, 5678, 6714, 6714, 5681, - 5686, 5684, 6714, 5682, 5694, 6714, 5685, 6714, 5692, 6714, + 5530, 5529, 135, 5538, 5516, 5533, 5535, 5536, 5546, 5519, + 5541, 5548, 6721, 6721, 5549, 6721, 5543, 5556, 6721, 5550, + 5557, 5561, 5552, 5558, 5564, 5565, 5566, 5568, 5572, 5573, + 5574, 5571, 5579, 5595, 5597, 5581, 5578, 5592, 5598, 5601, + 5603, 5605, 5606, 5607, 5583, 5608, 5610, 5612, 5614, 5615, + 5616, 6721, 5619, 5625, 5628, 5620, 6721, 5633, 5630, 5640, + 5641, 6721, 5643, 5644, 5645, 5647, 5648, 6721, 5634, 5650, + 5622, 5651, 5655, 5658, 5661, 5665, 5662, 5663, 5666, 6721, + 6721, 6721, 5668, 5678, 6721, 5680, 5667, 5671, 5682, 6721, + 5684, 5685, 5686, 6721, 6721, 5687, 5688, 5690, 6721, 5689, - 5695, 5696, 5698, 5703, 6714, 5704, 5705, 5707, 5710, 6714, - 5716, 5720, 5723, 5708, 5724, 5726, 5725, 6714, 5733, 5729, - 5731, 5738, 5728, 5735, 5732, 5743, 5739, 5755, 5740, 5742, - 6714, 5750, 5751, 5758, 5759, 5752, 5761, 5762, 6714, 5764, - 6714, 5767, 6714, 5768, 5769, 5770, 5778, 5772, 5773, 5775, - 5780, 5789, 5786, 5779, 5791, 5794, 5796, 6714, 6714, 5799, - 5801, 6714, 5802, 6714, 5804, 6714, 5805, 5806, 5807, 5808, - 5809, 6714, 5811, 5813, 5816, 5826, 5818, 5819, 6714, 5827, - 5829, 5830, 5832, 6714, 6714, 5834, 5842, 5835, 6714, 5837, - 5845, 5847, 5848, 5850, 5852, 5853, 5856, 5855, 5866, 5839, + 5697, 6721, 5692, 6721, 5695, 6721, 5701, 5702, 5710, 5705, + 6721, 5703, 5713, 5715, 5717, 6721, 5720, 5723, 5725, 5727, + 5728, 5730, 5732, 6721, 5739, 5735, 5738, 5742, 5734, 5744, + 5745, 5746, 5747, 5759, 5750, 5755, 6721, 5757, 5758, 5762, + 5768, 5760, 5770, 5771, 6721, 5764, 6721, 5773, 6721, 5774, + 5776, 5777, 5782, 5778, 5780, 5788, 5790, 5792, 5797, 5783, + 5798, 5803, 5800, 6721, 6721, 5805, 5808, 6721, 5809, 6721, + 5811, 6721, 5812, 5813, 5815, 5816, 5817, 6721, 5826, 5814, + 5818, 5837, 5821, 5823, 6721, 5835, 5833, 5838, 5840, 6721, + 6721, 5841, 5849, 5845, 6721, 5846, 5852, 5854, 5848, 5855, - 5857, 5861, 5868, 5862, 5873, 5879, 5883, 6714, 6714, 6714, - 5874, 5872, 5891, 5888, 5890, 5895, 5878, 6714, 5894, 5898, - 5900, 5901, 5908, 5904, 5907, 6714, 5903, 5909, 5910, 5911, - 5913, 5914, 5916, 5917, 6714, 5919, 5929, 5925, 5923, 5931, - 5939, 5941, 5943, 5934, 5944, 5951, 5948, 6714, 5950, 6714, - 6714, 5946, 6714, 5952, 5954, 5956, 5955, 5957, 6714, 5960, - 5961, 5962, 5964, 5963, 5971, 5967, 5969, 6714, 5979, 5972, - 5982, 5984, 6714, 6714, 5985, 5991, 6714, 5994, 5995, 5988, - 6003, 5986, 5996, 6008, 6005, 6714, 6009, 6011, 5999, 6012, - 6015, 6014, 6017, 6714, 6021, 6018, 6022, 6024, 6714, 6025, + 5859, 5856, 5860, 5862, 5870, 5865, 5871, 5866, 5873, 5874, + 5876, 5877, 5887, 6721, 6721, 6721, 5881, 5885, 5896, 5892, + 5894, 5901, 5898, 6721, 5899, 5903, 5906, 5900, 5913, 5908, + 5910, 6721, 5912, 5914, 5915, 5917, 5921, 5918, 5922, 5927, + 6721, 5929, 5934, 5939, 5931, 5941, 5943, 5948, 5950, 5951, + 5935, 5958, 5954, 6721, 5956, 6721, 6721, 5953, 6721, 5957, + 5960, 5962, 5963, 5965, 6721, 5968, 5969, 5970, 5973, 5971, + 5974, 5976, 5978, 6721, 5986, 5984, 5988, 5992, 6721, 6721, + 5990, 5994, 6721, 5999, 5996, 6000, 6008, 6003, 6005, 6010, + 6012, 6721, 6016, 6018, 6006, 6019, 6022, 6021, 6024, 6721, - 6030, 6031, 6033, 6034, 6714, 6035, 6027, 6051, 6036, 6714, - 6038, 6050, 6052, 6714, 6714, 6056, 6060, 6057, 6714, 6714, - 6714, 6063, 6064, 6066, 6068, 6714, 6071, 6075, 6079, 6081, - 6086, 6074, 6714, 6082, 6088, 6090, 6091, 6092, 6714, 6714, - 6093, 6094, 6095, 6099, 6096, 6714, 6714, 6101, 6103, 6104, - 6102, 6105, 6714, 6107, 6112, 6119, 6115, 6121, 6128, 6130, - 6123, 6131, 6132, 6140, 6143, 6133, 6135, 6142, 6146, 6147, - 6145, 6149, 6159, 6154, 6156, 6162, 6157, 6165, 6714, 6714, - 6167, 6714, 6169, 6171, 6714, 6714, 6174, 6176, 6178, 6182, - 6714, 6184, 6186, 6188, 6190, 6179, 6714, 6191, 6193, 6194, + 6028, 6025, 6029, 6031, 6721, 6032, 6037, 6038, 6040, 6041, + 6721, 6042, 6034, 6058, 6043, 6721, 6045, 6057, 6059, 6721, + 6721, 6063, 6067, 6064, 6721, 6721, 6721, 6070, 6071, 6073, + 6075, 6721, 6078, 6082, 6086, 6088, 6093, 6081, 6721, 6089, + 6095, 6097, 6098, 6099, 6721, 6721, 6100, 6101, 6102, 6106, + 6103, 6721, 6721, 6108, 6110, 6111, 6109, 6112, 6721, 6114, + 6119, 6126, 6122, 6128, 6135, 6137, 6130, 6138, 6139, 6147, + 6150, 6140, 6142, 6149, 6153, 6154, 6152, 6156, 6166, 6161, + 6163, 6169, 6164, 6172, 6721, 6721, 6174, 6721, 6176, 6178, + 6721, 6721, 6181, 6183, 6185, 6189, 6721, 6191, 6193, 6195, - 6195, 6196, 6714, 6198, 6199, 6202, 6204, 6208, 6210, 6211, - 6214, 6714, 6209, 6226, 6714, 6714, 6215, 6217, 6206, 6227, - 6223, 6714, 6231, 6235, 6230, 6237, 6236, 6238, 6243, 6714, - 6239, 6240, 6714, 6714, 6246, 6247, 6714, 6714, 6248, 6714, - 6714, 6714, 6714, 6714, 6714, 6714, 6714, 6252, 6251, 6714, - 6253, 6261, 6264, 6714, 6268, 6714, 6258, 6269, 6271, 6265, - 6714, 6270, 6714, 6272, 6276, 6277, 6286, 6279, 6289, 6280, - 6273, 6283, 6291, 6296, 6297, 6299, 6298, 6300, 6302, 6304, - 6314, 6306, 6311, 6714, 6714, 6714, 6303, 6315, 6319, 6320, - 6325, 6327, 6331, 6333, 6322, 6334, 6336, 6337, 6338, 6340, + 6197, 6186, 6721, 6198, 6200, 6201, 6202, 6203, 6721, 6205, + 6206, 6209, 6211, 6215, 6217, 6218, 6221, 6721, 6216, 6233, + 6721, 6721, 6222, 6224, 6213, 6234, 6230, 6721, 6238, 6242, + 6237, 6244, 6243, 6245, 6250, 6721, 6246, 6247, 6721, 6721, + 6253, 6254, 6721, 6721, 6255, 6721, 6721, 6721, 6721, 6721, + 6721, 6721, 6721, 6259, 6258, 6721, 6260, 6268, 6271, 6721, + 6275, 6721, 6265, 6276, 6278, 6272, 6721, 6277, 6721, 6279, + 6283, 6284, 6293, 6286, 6296, 6287, 6280, 6290, 6298, 6303, + 6304, 6306, 6305, 6307, 6309, 6311, 6321, 6313, 6318, 6721, + 6721, 6721, 6310, 6322, 6326, 6327, 6332, 6334, 6338, 6340, - 6344, 6351, 6346, 6349, 6347, 6356, 6348, 6358, 6714, 6363, - 6364, 6350, 6367, 6714, 6370, 6714, 6353, 6714, 6714, 6373, - 6374, 6376, 6377, 6386, 6387, 6378, 6382, 6383, 6388, 6390, - 6714, 6398, 6714, 6714, 6391, 6394, 6714, 6399, 6400, 6714, - 6401, 6403, 6405, 6406, 6407, 6409, 6410, 6411, 6418, 6714, - 6714, 6422, 6423, 6425, 6427, 6429, 6436, 6431, 6433, 6435, - 6443, 6437, 6445, 6714, 6447, 6449, 6451, 6714, 6453, 6452, - 6455, 6458, 6459, 6466, 6461, 6463, 6714, 6464, 6714, 6468, - 6470, 6469, 6472, 6473, 6475, 6483, 6481, 6485, 6714, 6487, - 6489, 6493, 6494, 6496, 6499, 6500, 6501, 6503, 6505, 6506, + 6329, 6341, 6343, 6344, 6345, 6347, 6351, 6358, 6353, 6356, + 6354, 6363, 6355, 6365, 6721, 6370, 6371, 6357, 6374, 6721, + 6377, 6721, 6360, 6721, 6721, 6380, 6381, 6383, 6384, 6393, + 6394, 6385, 6389, 6390, 6395, 6397, 6721, 6405, 6721, 6721, + 6398, 6401, 6721, 6406, 6407, 6721, 6408, 6410, 6412, 6413, + 6414, 6416, 6417, 6418, 6425, 6721, 6721, 6429, 6430, 6432, + 6434, 6436, 6443, 6438, 6440, 6442, 6450, 6444, 6452, 6721, + 6454, 6456, 6458, 6721, 6460, 6459, 6462, 6465, 6466, 6473, + 6468, 6470, 6721, 6471, 6721, 6475, 6477, 6476, 6479, 6480, + 6482, 6490, 6488, 6492, 6721, 6494, 6496, 6500, 6501, 6503, - 6515, 6509, 6511, 6517, 6519, 6521, 6714, 6523, 6525, 6714, - 6526, 6527, 6528, 6529, 6533, 6714, 6538, 6530, 6535, 6541, - 6546, 6543, 6714, 6552, 6556, 6553, 6714, 6557, 6714, 6714, - 6558, 6559, 6561, 6565, 6567, 6714, 6714, 6714, 6594, 6601, - 6608, 6615, 6622, 6629, 6636, 88, 6643, 6650, 6657, 6664, - 6671, 6678, 6685, 6692, 6699, 6706 + 6506, 6507, 6508, 6510, 6512, 6513, 6522, 6516, 6518, 6524, + 6526, 6528, 6721, 6530, 6532, 6721, 6533, 6534, 6535, 6536, + 6540, 6721, 6545, 6537, 6542, 6548, 6553, 6550, 6721, 6559, + 6563, 6560, 6721, 6564, 6721, 6721, 6565, 6566, 6568, 6572, + 6574, 6721, 6721, 6721, 6601, 6608, 6615, 6622, 6629, 6636, + 6643, 88, 6650, 6657, 6664, 6671, 6678, 6685, 6692, 6699, + 6706, 6713 } ; -static const flex_int16_t yy_def[3457] = +static const flex_int16_t yy_def[3463] = { 0, - 3438, 1, 3439, 3439, 3440, 3440, 3441, 3441, 3442, 3442, - 3443, 3443, 3444, 3444, 3445, 3445, 3438, 3446, 3438, 3438, - 3438, 3438, 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3448, 3438, 3438, 3438, - 3448, 3449, 3438, 3438, 3438, 3449, 3450, 3438, 3438, 3438, - 3438, 3450, 3451, 3438, 3438, 3438, 3451, 3452, 3438, 3453, - 3438, 3452, 3452, 3454, 3438, 3438, 3438, 3438, 3454, 3455, - 3438, 3438, 3438, 3455, 3446, 3446, 3438, 3456, 3447, 3456, - 3447, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3444, 1, 3445, 3445, 3446, 3446, 3447, 3447, 3448, 3448, + 3449, 3449, 3450, 3450, 3451, 3451, 3444, 3452, 3444, 3444, + 3444, 3444, 3453, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3454, 3444, 3444, 3444, + 3454, 3455, 3444, 3444, 3444, 3455, 3456, 3444, 3444, 3444, + 3444, 3456, 3457, 3444, 3444, 3444, 3457, 3458, 3444, 3459, + 3444, 3458, 3458, 3460, 3444, 3444, 3444, 3444, 3460, 3461, + 3444, 3444, 3444, 3461, 3452, 3452, 3444, 3462, 3453, 3462, + 3453, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3448, - 3448, 3449, 3449, 3450, 3450, 3438, 3451, 3451, 3452, 3452, - 3453, 3453, 3452, 3454, 3454, 3438, 3455, 3455, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3454, + 3454, 3455, 3455, 3456, 3456, 3444, 3457, 3457, 3458, 3458, + 3459, 3459, 3458, 3460, 3460, 3444, 3461, 3461, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3458, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3444, 3444, 3452, 3444, 3444, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3452, 3452, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3458, 3458, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3452, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, 3446, 3438, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3458, 3452, 3444, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3446, 3446, 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, + 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3458, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3452, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3458, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3438, 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, + 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3444, + 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3452, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3452, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3444, 3444, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3458, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3438, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3438, 3446, 3446, 3452, 3446, 3446, 3446, + 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, + 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3438, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3446, 3438, 3446, 3446, 3438, 3446, 3438, 3446, 3438, + 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3444, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3444, 3452, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, - 3446, 3438, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3444, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3444, 3452, 3444, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, + 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3444, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3444, 3444, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3444, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3438, 3438, - 3438, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3438, - 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3444, + 3444, 3452, 3452, 3452, 3444, 3444, 3444, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, + 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3452, + 3444, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3446, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3446, 3446, 3438, 3438, 3446, 3446, 3438, 3438, 3446, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3438, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3444, + 3452, 3452, 3444, 3444, 3452, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3444, + 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3438, 3446, 3438, 3446, 3438, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3438, 3446, 3438, 3438, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, - 3438, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, - 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, - 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, + 3452, 3444, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3444, + 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3446, 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3446, 3446, 3446, 3446, - 3446, 3446, 3438, 3446, 3446, 3446, 3438, 3446, 3438, 3438, - 3446, 3446, 3446, 3446, 3446, 3438, 3438, 0, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438 + 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3452, 3452, 3444, 3452, 3444, 3444, 3452, 3452, 3452, 3452, + 3452, 3444, 3444, 0, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444 } ; -static const flex_int16_t yy_nxt[6755] = +static const flex_int16_t yy_nxt[6762] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1776,531 +1779,532 @@ static const flex_int16_t yy_nxt[6755] = 1104, 1094, 86, 1101, 86, 1103, 86, 86, 86, 1099, 1105, 86, 1108, 1110, 86, 1098, 86, 1100, 86, 86, - 1102, 86, 1109, 86, 1107, 1115, 1106, 86, 1112, 86, - 1116, 170, 86, 1118, 1111, 1113, 1117, 1114, 86, 1119, - 86, 86, 86, 86, 86, 1122, 86, 86, 86, 1120, - 86, 1135, 1121, 166, 86, 1138, 86, 1125, 1136, 1126, - 1123, 86, 86, 1137, 1127, 86, 1124, 86, 1128, 86, - 86, 1140, 1129, 86, 1130, 1143, 1145, 1141, 1131, 1142, - 1132, 1146, 86, 86, 86, 1133, 1139, 1144, 86, 86, - 1134, 86, 1147, 1149, 86, 86, 1152, 86, 1148, 1155, - 86, 86, 86, 1151, 86, 1150, 1153, 1154, 1160, 86, + 1102, 166, 1109, 86, 1107, 86, 1106, 86, 1112, 86, + 1113, 1116, 86, 1119, 1111, 86, 1117, 170, 86, 1120, + 1118, 1121, 86, 1114, 86, 1115, 86, 1123, 86, 86, + 86, 86, 1122, 86, 1124, 86, 1136, 1137, 1139, 86, + 1126, 1127, 86, 86, 86, 86, 1138, 1141, 1125, 1128, + 86, 1129, 86, 86, 1148, 1130, 86, 1131, 1144, 1142, + 1146, 1132, 86, 1133, 1143, 1147, 86, 1140, 1134, 86, + 1145, 86, 86, 1135, 86, 1150, 1149, 1156, 86, 1153, + 86, 86, 86, 86, 1152, 86, 86, 1151, 86, 1154, - 1162, 1156, 1163, 1159, 1161, 1158, 86, 1165, 86, 1164, - 86, 1157, 86, 1166, 86, 86, 86, 86, 86, 86, - 86, 86, 1181, 1178, 86, 86, 86, 86, 1177, 1182, - 86, 86, 1180, 86, 1168, 1169, 1167, 86, 1170, 1179, - 1184, 1183, 1188, 1171, 86, 1172, 1185, 1187, 86, 1186, - 86, 1173, 86, 86, 86, 1189, 1174, 1175, 1194, 86, - 86, 86, 1191, 1176, 1190, 1195, 86, 1197, 86, 1192, - 86, 1198, 1193, 86, 86, 1200, 1202, 86, 86, 86, - 1196, 86, 86, 1203, 86, 1199, 1208, 1201, 1205, 86, - 1206, 86, 86, 86, 86, 86, 1204, 86, 1209, 1211, + 1155, 1161, 1160, 1162, 1157, 1163, 1159, 1164, 1165, 86, + 1166, 86, 1158, 86, 1167, 86, 86, 86, 1168, 86, + 86, 86, 86, 86, 1182, 86, 1179, 86, 86, 1178, + 1183, 86, 86, 86, 86, 1169, 1180, 1170, 86, 1171, + 1181, 1184, 1189, 1188, 1172, 1185, 1173, 86, 86, 86, + 86, 1186, 1174, 1187, 1190, 86, 86, 1175, 1176, 1191, + 1195, 86, 86, 86, 1177, 86, 1196, 1198, 1192, 86, + 86, 1193, 1199, 86, 1194, 1201, 86, 86, 86, 1203, + 86, 86, 1204, 1197, 1200, 86, 86, 1209, 86, 1202, + 1206, 86, 86, 86, 86, 1207, 1208, 1205, 86, 1212, - 1207, 86, 86, 86, 86, 1220, 86, 1218, 86, 1213, - 1210, 86, 1216, 1212, 1215, 1217, 86, 1214, 86, 86, - 86, 1219, 86, 86, 1221, 1224, 86, 86, 1229, 86, - 1222, 86, 86, 1226, 1230, 86, 1231, 86, 1223, 86, - 1233, 1225, 1228, 1234, 1227, 86, 1232, 1236, 1237, 86, - 86, 1239, 86, 86, 1235, 1243, 1240, 86, 86, 1241, - 86, 86, 1242, 86, 86, 86, 1238, 1244, 1250, 86, - 1252, 86, 86, 86, 86, 1256, 86, 1246, 1248, 1249, - 1245, 1247, 86, 86, 86, 86, 1253, 1254, 86, 1251, - 1258, 86, 86, 1259, 1257, 86, 1262, 1255, 86, 86, + 1210, 86, 86, 86, 86, 86, 86, 1211, 86, 1219, + 1221, 86, 1213, 1217, 1216, 1214, 86, 1218, 1215, 86, + 1223, 86, 1220, 86, 86, 86, 1225, 1222, 86, 86, + 86, 86, 86, 1230, 1235, 1231, 1232, 86, 1227, 1224, + 86, 1233, 1226, 1228, 1229, 86, 1234, 86, 86, 86, + 86, 1242, 1237, 1240, 1243, 86, 1236, 86, 1241, 86, + 1244, 1238, 86, 86, 86, 1239, 86, 1251, 86, 1245, + 86, 86, 1253, 86, 86, 86, 86, 1249, 86, 1247, + 1255, 86, 1246, 1250, 1248, 86, 1254, 1266, 1256, 86, + 1252, 86, 1257, 86, 86, 86, 1259, 1258, 1260, 86, - 1260, 1261, 86, 1263, 86, 1265, 1268, 1264, 1269, 86, - 1267, 86, 86, 86, 86, 86, 1273, 1272, 1266, 86, - 1270, 86, 86, 86, 1279, 86, 1277, 1280, 165, 86, - 86, 1271, 86, 86, 1281, 86, 86, 1274, 1278, 1283, - 1275, 1282, 1276, 86, 1285, 86, 86, 86, 1284, 1289, - 86, 1286, 1288, 1287, 86, 86, 1291, 86, 86, 1290, - 86, 86, 86, 86, 86, 1294, 1296, 1292, 86, 1293, - 86, 1297, 86, 1298, 86, 1299, 86, 1303, 86, 1304, - 1295, 86, 1300, 86, 1301, 86, 1306, 1307, 86, 86, - 86, 1305, 1311, 1302, 86, 86, 86, 1308, 86, 86, + 1263, 1261, 86, 1262, 1264, 86, 86, 1269, 1270, 86, + 86, 86, 1268, 86, 1265, 86, 86, 1274, 1273, 1271, + 86, 1267, 86, 86, 86, 1280, 86, 1278, 1281, 1272, + 86, 86, 86, 86, 86, 1282, 1284, 1283, 1275, 1279, + 86, 1276, 86, 1277, 1286, 1285, 86, 86, 1290, 86, + 86, 1287, 86, 1289, 86, 1292, 86, 1291, 1293, 86, + 86, 86, 86, 86, 86, 1288, 1297, 1298, 1294, 86, + 86, 86, 86, 1299, 1300, 1304, 1305, 86, 1295, 86, + 1296, 86, 86, 1302, 1307, 1308, 86, 86, 1301, 86, + 86, 1303, 1306, 1312, 86, 86, 86, 86, 86, 86, - 86, 170, 1310, 1309, 1313, 1317, 86, 86, 86, 86, - 163, 86, 1312, 1318, 1319, 86, 86, 1314, 86, 1316, - 86, 1320, 1322, 1324, 1315, 1321, 1328, 1323, 1329, 1325, - 1326, 86, 86, 86, 86, 86, 1327, 86, 86, 1332, - 1331, 86, 86, 1333, 86, 86, 86, 86, 86, 1330, - 1336, 86, 1342, 86, 1339, 1334, 1335, 86, 86, 1337, - 86, 86, 86, 1340, 86, 1338, 161, 1346, 86, 1348, - 1341, 1343, 1352, 86, 1353, 1345, 1344, 86, 1349, 86, - 1350, 86, 1347, 1351, 1354, 1355, 86, 86, 1356, 86, - 1358, 1357, 86, 86, 86, 86, 86, 86, 86, 1362, + 1318, 86, 1311, 1310, 1314, 86, 1309, 170, 86, 86, + 86, 86, 1313, 1319, 1320, 1315, 1321, 86, 1317, 86, + 86, 86, 1323, 1316, 1326, 1324, 86, 1322, 1330, 1325, + 1327, 1328, 86, 1331, 86, 86, 86, 1334, 86, 86, + 1329, 1333, 1332, 1335, 86, 86, 86, 86, 86, 86, + 86, 1338, 86, 1344, 86, 86, 1341, 86, 1336, 1337, + 86, 86, 1339, 86, 165, 1342, 1348, 1340, 86, 1345, + 86, 1343, 86, 1350, 1354, 1346, 1347, 86, 1355, 1358, + 86, 86, 1351, 1349, 1352, 1356, 86, 1353, 1357, 86, + 86, 86, 86, 1360, 86, 1359, 86, 86, 86, 1364, - 86, 1365, 1361, 86, 1369, 86, 86, 86, 1359, 1364, - 1360, 1367, 1366, 86, 1363, 86, 86, 86, 1370, 86, - 1371, 1373, 1368, 1374, 86, 86, 1372, 86, 86, 86, - 86, 86, 1376, 1375, 86, 86, 86, 1381, 86, 86, - 1377, 1379, 86, 1380, 1386, 86, 1378, 1382, 86, 86, - 1383, 86, 86, 86, 1385, 1384, 86, 1387, 1390, 1388, - 86, 1398, 86, 1391, 1393, 1389, 86, 86, 86, 86, - 1392, 86, 1394, 86, 86, 1396, 86, 1401, 86, 1404, - 1400, 1395, 1397, 1399, 86, 86, 86, 1406, 1405, 1403, - 86, 1402, 1407, 86, 86, 1411, 1455, 1408, 1409, 1410, + 86, 1363, 1367, 86, 86, 1361, 86, 1371, 86, 1362, + 1366, 86, 86, 86, 1368, 1365, 1372, 1369, 1373, 86, + 86, 1377, 1370, 1376, 1374, 1375, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 1383, 86, 86, + 86, 1378, 1379, 1381, 1382, 1384, 1388, 1380, 86, 86, + 86, 1385, 86, 1387, 1389, 1386, 1390, 1392, 1391, 86, + 86, 86, 86, 86, 1393, 86, 1400, 86, 86, 1394, + 86, 1395, 86, 1403, 86, 86, 1398, 1397, 1401, 1396, + 1406, 1402, 1399, 86, 1408, 86, 1405, 86, 1404, 1409, + 86, 86, 1413, 1410, 86, 1407, 86, 1423, 1427, 1411, - 86, 1412, 86, 1419, 1421, 1413, 86, 1422, 1414, 1415, - 86, 1420, 86, 1416, 1425, 86, 86, 1423, 86, 1417, - 86, 1426, 86, 1418, 1424, 86, 1428, 1427, 86, 1430, - 86, 86, 86, 1431, 1435, 1432, 86, 86, 86, 1429, - 86, 86, 86, 1438, 86, 1436, 1441, 1442, 86, 1443, - 1434, 1433, 86, 86, 86, 1439, 86, 1437, 1444, 86, - 1440, 86, 1451, 86, 1450, 1445, 86, 1452, 1453, 1454, - 1446, 86, 1447, 86, 1448, 86, 1449, 1456, 1457, 1458, - 1460, 86, 86, 86, 1459, 1461, 86, 86, 1464, 86, - 1462, 86, 86, 86, 1470, 86, 1471, 86, 1466, 86, + 1412, 86, 1414, 86, 86, 1422, 1415, 1421, 86, 1416, + 1417, 86, 1424, 1425, 1418, 86, 86, 86, 86, 86, + 1419, 86, 1428, 1429, 1420, 1426, 86, 1430, 86, 1432, + 86, 86, 1437, 1433, 86, 1434, 1431, 86, 86, 1435, + 86, 1439, 1440, 1438, 86, 1443, 1444, 86, 86, 1436, + 86, 86, 86, 1445, 1441, 86, 1447, 86, 1474, 1446, + 86, 1448, 1442, 1449, 86, 1450, 86, 1451, 86, 1452, + 1458, 1453, 86, 1454, 1455, 1456, 86, 86, 1460, 1457, + 86, 1462, 86, 86, 86, 86, 1463, 86, 86, 1461, + 1466, 1459, 1464, 86, 86, 86, 1472, 1468, 1467, 86, - 86, 1465, 86, 86, 1463, 1472, 86, 1469, 1474, 86, - 1467, 1468, 86, 1473, 86, 1476, 1475, 86, 86, 1477, - 1481, 86, 1480, 1483, 86, 86, 86, 1478, 1484, 86, - 1486, 86, 1485, 1482, 86, 1489, 86, 86, 86, 1479, - 1491, 86, 86, 1488, 86, 1492, 86, 1493, 1496, 86, - 1487, 86, 86, 86, 86, 1501, 1499, 1490, 86, 1494, - 86, 86, 1504, 1502, 86, 86, 86, 1495, 86, 1498, - 86, 1497, 86, 1503, 1500, 1506, 1511, 86, 86, 1515, - 86, 1507, 1508, 1505, 1509, 1510, 86, 86, 86, 86, - 1513, 1512, 86, 1514, 1516, 86, 86, 86, 86, 1521, + 1473, 86, 86, 86, 1465, 86, 86, 86, 1476, 1471, + 86, 86, 1469, 1470, 86, 1475, 1478, 1479, 86, 1477, + 1483, 86, 86, 1482, 1480, 1485, 86, 1488, 86, 1484, + 1486, 86, 86, 86, 1487, 86, 1481, 1491, 86, 1493, + 86, 86, 1490, 86, 1494, 86, 1495, 86, 1498, 86, + 86, 1489, 86, 86, 86, 1492, 1501, 1503, 86, 86, + 86, 86, 1506, 86, 1504, 86, 1496, 1505, 1497, 1500, + 1499, 86, 86, 86, 1502, 1508, 1510, 86, 86, 1507, + 1509, 86, 1512, 86, 1515, 86, 1513, 1511, 1514, 86, + 1516, 86, 1517, 86, 1518, 86, 86, 86, 1523, 1524, - 1522, 1518, 1523, 1519, 86, 86, 86, 1524, 86, 86, - 1517, 1520, 86, 86, 1528, 86, 86, 1525, 86, 86, - 1527, 170, 86, 1526, 1535, 1536, 86, 86, 1531, 1538, - 86, 86, 1529, 1537, 1530, 86, 1532, 86, 86, 1533, - 1539, 86, 86, 86, 86, 1534, 1540, 86, 1546, 86, - 86, 1551, 86, 1543, 86, 86, 1544, 1541, 1542, 1550, - 86, 1545, 86, 3438, 1547, 1553, 1555, 86, 1549, 86, - 86, 1556, 86, 86, 1548, 86, 86, 1559, 1552, 1558, - 86, 1554, 1567, 86, 86, 1557, 86, 1560, 86, 1564, - 1561, 1562, 1565, 1569, 1563, 1566, 86, 1568, 86, 86, + 1526, 1520, 86, 1521, 86, 86, 86, 1525, 86, 86, + 1522, 1519, 86, 1530, 86, 86, 86, 1527, 86, 86, + 86, 1532, 170, 1529, 86, 1538, 1539, 86, 1528, 1534, + 86, 86, 86, 1540, 86, 1531, 1533, 1535, 1541, 86, + 1536, 86, 86, 86, 86, 86, 1549, 1537, 1542, 86, + 1544, 86, 86, 1546, 1543, 86, 1547, 1554, 86, 1545, + 1553, 1548, 86, 86, 86, 86, 1558, 86, 1556, 1550, + 1552, 1559, 86, 86, 1561, 1562, 1551, 163, 86, 86, + 86, 86, 86, 1557, 86, 1555, 1567, 86, 86, 1568, + 1570, 1560, 1563, 1569, 1564, 1565, 1571, 1572, 1566, 86, - 1570, 1572, 86, 86, 86, 86, 1573, 86, 1577, 1571, - 1578, 86, 86, 86, 1575, 86, 86, 86, 1581, 86, - 86, 1574, 1576, 86, 1586, 86, 86, 86, 1590, 1579, - 1583, 1587, 1580, 86, 86, 1582, 1589, 1584, 1585, 86, - 1593, 86, 86, 1588, 86, 1591, 86, 86, 86, 86, - 86, 1597, 86, 1599, 1598, 86, 1594, 1595, 1592, 1601, - 86, 1602, 86, 1596, 86, 1606, 86, 1600, 1607, 1608, - 1603, 1604, 1605, 86, 86, 86, 1610, 86, 86, 1611, - 1609, 86, 86, 1615, 1616, 1617, 86, 1614, 86, 86, - 86, 86, 86, 1618, 1612, 86, 1619, 1620, 86, 86, + 86, 1575, 86, 86, 1573, 86, 1576, 86, 86, 86, + 1574, 86, 86, 1578, 1580, 86, 1581, 86, 86, 86, + 1584, 1577, 86, 1579, 86, 1589, 1582, 86, 86, 86, + 86, 1590, 1583, 1586, 86, 1593, 1587, 1585, 86, 86, + 1588, 86, 1594, 86, 86, 86, 1591, 86, 1592, 86, + 1600, 86, 1596, 1595, 1597, 86, 1601, 86, 1598, 86, + 1602, 86, 1605, 1599, 86, 1603, 1604, 86, 1609, 1610, + 1611, 1608, 86, 1607, 1606, 86, 86, 1613, 86, 86, + 86, 86, 86, 1618, 1619, 1614, 1612, 1617, 1620, 86, + 86, 86, 1621, 86, 86, 86, 1615, 86, 1622, 1623, - 86, 86, 1613, 1621, 1623, 86, 86, 86, 1629, 1622, - 86, 1628, 86, 1624, 1627, 86, 86, 86, 1634, 1625, - 1630, 1626, 1631, 1635, 86, 1636, 86, 86, 1639, 1632, - 1637, 86, 86, 86, 86, 1633, 86, 86, 86, 86, - 86, 1643, 1647, 1642, 86, 1648, 1638, 86, 86, 1651, - 86, 1640, 1641, 86, 1654, 86, 1644, 1646, 1645, 1653, - 86, 86, 86, 86, 1649, 86, 86, 86, 86, 1652, - 1663, 86, 86, 1650, 86, 1662, 86, 86, 1667, 86, - 1655, 1656, 1657, 1661, 1658, 1659, 86, 1660, 86, 1666, - 1670, 1664, 1668, 86, 86, 1665, 86, 86, 86, 1669, + 86, 86, 1616, 86, 1625, 1624, 86, 86, 86, 86, + 86, 1626, 86, 1631, 86, 1627, 1630, 86, 1633, 1634, + 1628, 86, 1629, 86, 1637, 86, 1642, 1639, 1632, 1638, + 86, 1635, 1640, 86, 86, 86, 86, 86, 86, 86, + 1636, 1650, 1646, 1641, 86, 1645, 86, 86, 86, 86, + 1654, 1651, 86, 1643, 1644, 86, 86, 1647, 1657, 1648, + 86, 1656, 1649, 86, 86, 86, 86, 86, 1652, 86, + 86, 1655, 86, 86, 1665, 1653, 86, 86, 86, 1658, + 1666, 1662, 1659, 1672, 1660, 1661, 86, 1664, 86, 1667, + 1663, 1670, 86, 1671, 86, 1668, 86, 86, 1669, 86, - 1674, 1671, 86, 86, 1675, 1672, 86, 86, 1678, 86, - 1673, 1682, 86, 86, 86, 86, 1684, 1676, 1683, 86, - 1677, 1679, 86, 86, 1687, 1681, 86, 1680, 1686, 1685, - 1688, 86, 86, 86, 86, 1689, 1695, 86, 1694, 86, - 86, 86, 1692, 1690, 86, 1700, 1698, 86, 1699, 86, - 1691, 86, 1702, 86, 1693, 86, 86, 1696, 1703, 1704, - 86, 1697, 86, 86, 86, 86, 1707, 86, 86, 1701, - 86, 1712, 1705, 86, 1710, 86, 86, 86, 1706, 86, - 86, 1718, 1716, 86, 86, 1708, 86, 1709, 1711, 86, - 1713, 86, 1719, 1717, 1714, 1715, 86, 1724, 86, 86, + 1673, 1674, 86, 86, 1677, 86, 1675, 86, 1678, 86, + 86, 86, 1676, 1687, 1681, 1685, 86, 86, 1682, 86, + 86, 1679, 1686, 1680, 1689, 86, 1684, 1683, 86, 86, + 1690, 86, 1691, 1692, 86, 1688, 86, 86, 1697, 1698, + 86, 86, 86, 86, 86, 1695, 86, 1702, 1701, 1703, + 86, 1693, 1694, 1705, 86, 86, 86, 1696, 86, 1699, + 86, 1706, 86, 1700, 1707, 86, 86, 86, 86, 1710, + 1704, 86, 1708, 86, 1715, 86, 1709, 1713, 86, 86, + 86, 86, 86, 1711, 86, 1719, 86, 1712, 86, 1721, + 1716, 1714, 86, 1722, 86, 1720, 86, 1727, 1718, 1717, - 86, 1721, 1720, 86, 86, 1727, 1729, 86, 1730, 86, - 86, 1723, 1725, 86, 1722, 86, 1732, 1726, 1728, 86, - 86, 86, 86, 1735, 1734, 86, 1737, 1738, 86, 1731, - 1740, 170, 1733, 86, 86, 1739, 86, 86, 86, 1736, - 86, 1748, 86, 86, 86, 86, 1817, 1741, 1743, 1749, - 86, 1742, 1746, 1752, 86, 1744, 1745, 86, 86, 1753, - 1756, 86, 1747, 1750, 86, 1751, 1754, 1758, 86, 1757, - 1760, 86, 86, 86, 1762, 86, 86, 1755, 86, 86, - 86, 86, 86, 1767, 1764, 1761, 1765, 86, 1759, 86, - 1768, 1763, 86, 86, 1769, 86, 1772, 86, 1773, 86, + 1723, 1724, 86, 86, 86, 86, 1732, 86, 86, 1730, + 86, 86, 1733, 86, 1726, 86, 1728, 1725, 86, 1735, + 1731, 1729, 86, 86, 1737, 86, 1738, 86, 1740, 170, + 1734, 1741, 86, 1736, 1739, 86, 86, 86, 1742, 86, + 1743, 1744, 86, 1746, 86, 1745, 86, 1752, 86, 161, + 86, 1747, 86, 1753, 1756, 86, 1750, 86, 1748, 1749, + 86, 86, 86, 86, 1760, 1758, 1757, 1762, 1761, 1751, + 1754, 86, 1755, 86, 1764, 86, 1766, 86, 86, 86, + 86, 1759, 86, 86, 86, 1768, 86, 1769, 86, 1765, + 86, 1763, 86, 1771, 86, 1772, 86, 1767, 1773, 1776, - 86, 86, 1780, 1766, 3438, 1770, 86, 1771, 86, 1777, - 86, 1775, 1778, 1774, 86, 1781, 86, 1782, 86, 86, - 1776, 86, 1787, 1785, 1779, 1784, 1786, 1788, 86, 1789, - 1790, 86, 86, 1783, 1796, 86, 86, 1791, 86, 1792, - 86, 1793, 1794, 86, 86, 86, 1801, 1802, 86, 1795, - 1798, 86, 86, 86, 1800, 86, 1804, 86, 86, 86, - 1803, 1797, 86, 1806, 1808, 1799, 1807, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 1818, 86, - 1805, 86, 86, 86, 86, 1812, 1809, 1813, 1814, 1810, - 1811, 1820, 86, 1815, 1821, 1823, 1819, 1816, 86, 86, + 86, 1777, 86, 1775, 1774, 86, 86, 1770, 1778, 1781, + 1784, 86, 1782, 86, 1779, 86, 86, 86, 1785, 86, + 1786, 86, 1792, 86, 1783, 1780, 1789, 86, 1788, 1793, + 1791, 1794, 86, 86, 86, 86, 1787, 86, 1795, 1798, + 1790, 86, 1796, 86, 1797, 86, 86, 1800, 86, 86, + 1801, 1799, 86, 1805, 1806, 1804, 86, 1808, 86, 86, + 86, 1807, 86, 86, 86, 86, 86, 1802, 86, 1803, + 1810, 1811, 86, 1812, 86, 86, 86, 86, 86, 86, + 1813, 1809, 86, 1821, 1814, 86, 1815, 1822, 1816, 1817, + 1818, 1827, 86, 86, 86, 1819, 86, 86, 86, 86, - 1825, 86, 1828, 1824, 86, 1822, 1829, 86, 86, 86, - 86, 1833, 86, 1827, 1831, 86, 86, 86, 1826, 86, - 1832, 86, 86, 86, 1830, 86, 86, 1834, 1838, 1835, - 1840, 1841, 86, 86, 1842, 1837, 1839, 1848, 86, 86, - 1836, 1843, 1847, 1849, 86, 1850, 86, 1844, 1853, 86, - 86, 1846, 1845, 1852, 86, 86, 86, 86, 86, 86, - 1857, 1856, 86, 1858, 1851, 86, 86, 1854, 86, 1866, - 86, 1861, 1867, 86, 1855, 86, 86, 1863, 1859, 1865, - 1864, 1860, 86, 86, 86, 1862, 86, 1873, 86, 86, - 86, 86, 1874, 86, 1875, 1869, 1868, 86, 1871, 86, + 86, 1823, 86, 1820, 1824, 1825, 86, 1826, 1833, 86, + 86, 86, 86, 1837, 1829, 1835, 1828, 86, 86, 1830, + 1831, 1832, 1834, 1836, 86, 86, 86, 86, 86, 86, + 86, 86, 1838, 86, 1844, 1842, 86, 1845, 1839, 1851, + 1846, 86, 1840, 1841, 1843, 86, 1847, 86, 1848, 1852, + 86, 1853, 86, 1849, 86, 86, 1850, 1854, 1856, 1855, + 1857, 86, 86, 86, 86, 1861, 1859, 1858, 1860, 1862, + 86, 86, 86, 86, 86, 86, 1870, 1871, 86, 86, + 86, 1865, 86, 1867, 1869, 86, 1868, 1864, 86, 1863, + 86, 1877, 1866, 1873, 86, 86, 1878, 86, 86, 1872, - 1876, 1870, 1872, 86, 1879, 86, 86, 1883, 1881, 1878, - 1882, 86, 86, 1880, 86, 1877, 86, 1887, 86, 1891, - 1885, 1884, 86, 1886, 1892, 86, 86, 86, 86, 1897, - 86, 86, 1888, 1896, 3438, 86, 1890, 1889, 1899, 86, - 1893, 1900, 1894, 86, 1895, 86, 1903, 86, 1898, 86, - 1901, 1905, 86, 86, 1907, 1904, 86, 1902, 1911, 86, - 86, 86, 1909, 86, 86, 86, 86, 1906, 1910, 1908, - 86, 1912, 86, 86, 1915, 1916, 86, 86, 86, 86, - 1913, 1917, 1923, 86, 1914, 1919, 1918, 86, 1925, 1926, - 1920, 86, 1921, 1922, 86, 86, 1928, 86, 86, 86, + 1879, 86, 1875, 1874, 86, 86, 1876, 86, 1883, 86, + 1880, 86, 86, 1887, 1885, 86, 1886, 1884, 1889, 1881, + 1891, 1890, 1882, 86, 86, 86, 1895, 1888, 86, 86, + 86, 1896, 86, 86, 1901, 86, 1903, 86, 1900, 86, + 86, 1892, 1897, 1894, 1898, 1893, 86, 86, 1904, 1907, + 86, 1905, 1899, 1902, 86, 86, 1908, 86, 1911, 1909, + 86, 1906, 1915, 86, 86, 86, 1913, 86, 86, 86, + 86, 1910, 1914, 1912, 86, 1916, 86, 86, 1919, 1920, + 86, 86, 86, 86, 1917, 1921, 1927, 86, 1918, 1923, + 1922, 86, 1929, 1930, 1924, 86, 1925, 1926, 86, 86, - 1927, 1932, 86, 1934, 1924, 86, 86, 86, 86, 86, - 86, 1929, 1938, 86, 86, 86, 1930, 86, 1931, 1933, - 1941, 1940, 86, 1936, 86, 86, 1937, 1935, 86, 1942, - 1939, 1944, 86, 1943, 1946, 1947, 170, 1945, 86, 1950, - 86, 86, 86, 86, 1954, 86, 86, 86, 1948, 86, - 86, 86, 86, 1949, 1952, 86, 1956, 86, 1957, 1961, - 1951, 1955, 1953, 1958, 86, 86, 3438, 1962, 86, 1959, - 1964, 1966, 1960, 1965, 86, 1963, 1967, 86, 86, 86, - 1970, 1971, 86, 1968, 86, 86, 86, 1973, 1969, 86, - 86, 86, 1974, 86, 86, 86, 1972, 86, 86, 86, + 1932, 86, 86, 86, 1931, 1936, 86, 1938, 1928, 86, + 86, 86, 86, 86, 86, 1933, 1942, 86, 86, 86, + 1934, 86, 1935, 1937, 1945, 1944, 86, 1940, 86, 86, + 1941, 1939, 86, 1946, 1943, 1948, 86, 1947, 170, 86, + 1950, 1949, 1952, 86, 86, 1951, 1955, 86, 86, 86, + 1953, 1959, 86, 86, 86, 86, 86, 86, 1954, 86, + 1957, 1961, 86, 1956, 1966, 86, 86, 1960, 1958, 1962, + 86, 1963, 1969, 86, 1964, 1978, 1965, 1967, 1970, 86, + 1968, 86, 1972, 86, 1971, 86, 86, 1975, 1976, 86, + 1973, 86, 86, 86, 86, 1974, 86, 1979, 86, 86, - 1979, 86, 1980, 86, 86, 86, 1984, 1981, 86, 3438, - 1975, 1977, 1978, 1976, 1983, 1982, 86, 1985, 86, 86, - 1991, 1988, 86, 1990, 1987, 1992, 86, 1993, 1989, 86, - 1986, 86, 86, 86, 86, 86, 1999, 86, 2002, 86, - 1994, 1995, 2003, 86, 2004, 86, 86, 1997, 1996, 2000, - 86, 2001, 1998, 2006, 86, 86, 2007, 2010, 86, 2005, - 86, 86, 2012, 86, 2011, 86, 2013, 2008, 86, 2014, - 2016, 2009, 2019, 86, 86, 86, 86, 2018, 86, 2015, - 86, 2022, 86, 86, 86, 2021, 86, 86, 2026, 86, - 2017, 2025, 86, 86, 2027, 2028, 86, 86, 2020, 2023, + 86, 86, 86, 1977, 86, 1984, 1985, 86, 86, 1989, + 86, 1986, 1980, 86, 86, 86, 1982, 1983, 1981, 1987, + 1993, 86, 1990, 1988, 1997, 86, 1995, 1994, 1998, 1996, + 1992, 86, 86, 86, 86, 1991, 86, 86, 86, 86, + 2004, 86, 86, 86, 2007, 2008, 86, 2009, 86, 2002, + 86, 2000, 1999, 2011, 86, 2001, 2005, 2003, 2006, 2010, + 86, 2012, 2013, 2015, 86, 86, 2017, 86, 2019, 2016, + 2018, 2014, 86, 86, 86, 2021, 86, 86, 2024, 86, + 2023, 86, 86, 86, 2027, 86, 86, 86, 2026, 86, + 86, 2020, 2030, 86, 2031, 2032, 86, 2033, 86, 86, - 86, 86, 2036, 86, 2024, 2029, 2030, 2031, 86, 2038, - 2034, 86, 2032, 86, 2039, 86, 2033, 2035, 2041, 86, - 2037, 2042, 86, 2045, 2043, 2040, 86, 86, 86, 86, - 2049, 86, 86, 86, 2051, 2046, 86, 2044, 86, 86, - 2054, 2055, 86, 86, 2057, 86, 86, 2047, 86, 2048, - 86, 86, 86, 2064, 86, 2062, 2052, 2059, 2050, 2060, - 2053, 86, 86, 2056, 86, 86, 86, 86, 2063, 86, - 2070, 2058, 2061, 2067, 2068, 86, 86, 86, 2074, 2066, - 86, 86, 2073, 2065, 86, 2077, 86, 86, 2076, 2078, - 2080, 86, 2072, 2069, 2081, 86, 86, 86, 86, 86, + 86, 2022, 2025, 86, 2028, 2041, 86, 2029, 2034, 2035, + 2036, 86, 86, 86, 86, 2037, 2043, 2039, 2038, 86, + 2040, 2044, 86, 86, 86, 2047, 2042, 2045, 2050, 2046, + 2048, 86, 2052, 86, 86, 2054, 86, 86, 86, 2049, + 2051, 86, 2056, 86, 86, 2059, 2060, 86, 86, 2062, + 86, 86, 86, 86, 2053, 86, 86, 86, 2057, 86, + 2067, 2064, 2065, 2055, 86, 2058, 86, 86, 2061, 2069, + 86, 2068, 86, 2073, 2071, 86, 2063, 2066, 2070, 2072, + 86, 2075, 86, 86, 2079, 86, 2082, 86, 2078, 86, + 86, 2083, 86, 2074, 2081, 86, 2085, 86, 2077, 2086, - 2075, 2071, 2082, 86, 86, 2079, 86, 2083, 86, 2087, - 86, 86, 2090, 86, 2091, 2092, 2086, 86, 86, 2084, - 86, 86, 2085, 86, 86, 86, 2088, 2095, 2100, 86, - 2099, 86, 2094, 2093, 86, 86, 2089, 86, 2097, 86, - 2105, 2104, 86, 2096, 86, 86, 2098, 86, 2106, 2102, - 2101, 2108, 86, 2107, 2103, 86, 2110, 2112, 86, 2109, - 86, 2111, 86, 86, 86, 86, 2119, 86, 2113, 2116, - 86, 86, 86, 86, 2114, 86, 2122, 2124, 86, 86, - 2125, 2115, 2121, 2117, 2127, 2118, 2123, 86, 2120, 86, - 86, 2126, 2131, 86, 2132, 86, 2133, 2135, 2136, 86, + 86, 2076, 86, 86, 86, 2080, 2088, 86, 2087, 86, + 86, 86, 86, 2092, 2084, 86, 2095, 2096, 86, 2097, + 86, 2091, 86, 86, 2089, 86, 2090, 86, 86, 2093, + 86, 2100, 86, 2099, 86, 2104, 2105, 86, 2094, 86, + 2098, 86, 2102, 86, 2110, 2109, 86, 2101, 86, 2107, + 2103, 2106, 2111, 2113, 86, 86, 86, 2112, 2108, 2114, + 2117, 86, 86, 86, 86, 86, 86, 2115, 86, 2121, + 2124, 86, 2116, 86, 86, 86, 86, 2119, 2127, 2129, + 86, 86, 2130, 2118, 2120, 86, 2122, 2128, 2123, 2125, + 2126, 86, 86, 86, 2132, 2131, 2136, 86, 2137, 86, - 2128, 2134, 86, 86, 86, 2129, 86, 86, 2140, 86, - 2130, 2138, 86, 86, 86, 86, 2142, 2145, 86, 2139, - 2147, 2141, 86, 86, 86, 2137, 86, 2143, 170, 86, - 86, 86, 86, 2150, 86, 2156, 86, 2154, 2144, 2155, - 2146, 2148, 2151, 2152, 2149, 2157, 86, 86, 2153, 2158, - 86, 2160, 86, 86, 86, 86, 86, 86, 2161, 2162, - 86, 2163, 2164, 86, 86, 2165, 2166, 2159, 2167, 86, - 2168, 86, 86, 2172, 86, 86, 2169, 2171, 86, 86, - 86, 86, 2176, 2170, 2173, 2174, 2175, 2177, 86, 86, - 86, 86, 86, 86, 86, 86, 2182, 2184, 2178, 2179, + 2138, 2140, 86, 2133, 2141, 2139, 86, 86, 2134, 86, + 86, 86, 2145, 2135, 2143, 86, 86, 86, 86, 86, + 2147, 86, 86, 2144, 2150, 2152, 86, 2146, 2142, 2148, + 86, 86, 2153, 86, 170, 86, 86, 86, 3444, 2156, + 86, 2154, 86, 2151, 2149, 2160, 2155, 2157, 2158, 86, + 86, 2162, 2161, 2163, 86, 2166, 2159, 2164, 86, 86, + 86, 86, 2165, 86, 86, 2167, 2169, 86, 2168, 86, + 86, 86, 2171, 2170, 2172, 86, 2174, 86, 86, 2178, + 86, 2173, 2175, 2177, 86, 86, 86, 2183, 86, 2176, + 2180, 2181, 86, 2179, 86, 2182, 86, 86, 86, 86, - 2183, 86, 86, 86, 86, 86, 2189, 2180, 86, 86, - 2181, 2185, 2187, 2186, 86, 2188, 86, 2190, 2192, 86, - 2191, 86, 2194, 2195, 86, 86, 2200, 86, 2193, 2198, - 86, 2196, 86, 2201, 86, 86, 86, 2197, 2199, 2206, - 86, 86, 2208, 86, 86, 86, 2209, 86, 2202, 2205, - 2203, 2204, 2210, 86, 86, 2211, 86, 2207, 2212, 86, - 86, 2213, 2215, 2216, 86, 86, 2214, 86, 2220, 86, - 86, 2217, 86, 86, 86, 86, 2218, 86, 86, 2221, - 86, 86, 86, 86, 86, 2219, 2223, 2224, 2225, 2226, - 2229, 2234, 86, 2222, 86, 2228, 86, 86, 86, 86, + 86, 86, 2190, 2188, 86, 2185, 2189, 86, 86, 86, + 86, 2195, 86, 2192, 2184, 2186, 86, 2187, 2191, 86, + 86, 2200, 2196, 2194, 86, 2193, 86, 86, 2198, 86, + 2197, 86, 86, 2201, 2204, 2207, 2199, 86, 2202, 2206, + 86, 86, 86, 86, 2205, 2212, 86, 86, 2203, 86, + 2214, 86, 86, 2208, 2215, 2217, 2211, 2209, 2210, 2216, + 86, 2218, 86, 2213, 86, 2219, 86, 86, 2222, 86, + 86, 86, 86, 2221, 86, 86, 2223, 86, 2226, 86, + 86, 2227, 86, 86, 86, 86, 86, 86, 86, 2220, + 86, 2225, 2224, 2235, 2229, 2230, 2228, 2232, 86, 2231, - 2431, 2231, 2237, 2230, 2227, 2232, 2233, 86, 86, 86, - 86, 2241, 2238, 2240, 2235, 86, 86, 2236, 2239, 86, - 2243, 86, 86, 2244, 86, 86, 86, 2249, 2242, 2251, - 2245, 2247, 86, 86, 2252, 86, 2248, 2246, 2254, 86, - 86, 86, 86, 86, 2257, 2250, 2256, 2253, 2258, 86, - 86, 86, 2262, 86, 2259, 86, 86, 2266, 86, 86, - 2263, 86, 2267, 86, 86, 2265, 2255, 2268, 2260, 2264, - 86, 2261, 2271, 86, 86, 2272, 86, 2275, 2270, 86, - 2269, 86, 86, 86, 2276, 2273, 86, 3438, 2277, 86, - 2279, 2281, 86, 86, 2283, 86, 2274, 86, 2280, 2278, + 2237, 2234, 2239, 2240, 86, 2233, 2236, 86, 86, 86, + 86, 2238, 2243, 2244, 86, 86, 2241, 2247, 86, 2246, + 86, 86, 86, 86, 86, 2249, 86, 2242, 2250, 86, + 2245, 2251, 86, 2253, 2255, 86, 2248, 2257, 2254, 86, + 86, 2252, 2258, 86, 2260, 86, 86, 86, 2256, 2259, + 86, 2262, 2263, 86, 86, 86, 2268, 86, 2264, 2265, + 86, 86, 86, 2272, 86, 2261, 2269, 2267, 2273, 86, + 2270, 86, 2271, 2266, 86, 2277, 86, 86, 2278, 2274, + 86, 86, 86, 2275, 2281, 86, 86, 2282, 2276, 86, + 86, 2283, 2287, 86, 2285, 2279, 86, 86, 2289, 86, - 86, 2282, 86, 2284, 2285, 2286, 86, 86, 2290, 86, - 86, 86, 2292, 86, 86, 2287, 2288, 2293, 86, 2289, - 2295, 86, 2294, 86, 86, 2296, 2297, 86, 2298, 2299, - 2291, 86, 2303, 86, 2300, 86, 86, 86, 86, 86, - 2302, 86, 86, 86, 86, 86, 86, 2301, 2310, 86, - 86, 2316, 2308, 2304, 2305, 2306, 2309, 2311, 2312, 86, - 86, 86, 2307, 86, 2313, 2314, 2315, 86, 2322, 2317, - 86, 86, 2320, 2319, 2321, 2325, 86, 86, 2327, 86, - 2324, 86, 2318, 86, 86, 86, 2326, 2329, 86, 2330, - 2333, 170, 86, 2337, 86, 2323, 86, 2335, 2331, 86, + 2290, 2280, 2286, 2284, 86, 86, 86, 86, 2288, 86, + 2292, 2296, 86, 2291, 86, 2298, 2294, 86, 86, 2295, + 2299, 86, 86, 86, 2293, 86, 2300, 2301, 2304, 2302, + 2305, 86, 86, 2297, 2303, 86, 86, 2309, 86, 86, + 86, 86, 86, 86, 2306, 2308, 86, 2316, 86, 86, + 86, 86, 2307, 2310, 86, 86, 2312, 2311, 2315, 2320, + 2314, 2317, 2318, 86, 86, 86, 2313, 86, 2319, 2321, + 2327, 2323, 2322, 2325, 2326, 86, 86, 86, 2331, 86, + 86, 2333, 86, 86, 2324, 86, 2330, 86, 86, 2332, + 2336, 2335, 86, 2328, 2339, 170, 86, 3444, 2341, 2345, - 2328, 86, 2336, 86, 2338, 86, 2349, 2332, 2339, 2340, - 86, 86, 2341, 2334, 2342, 86, 86, 2343, 2347, 86, - 2346, 86, 2348, 86, 2351, 86, 2353, 86, 2354, 86, - 86, 2344, 2352, 86, 2356, 86, 86, 86, 2355, 2357, - 86, 2350, 2345, 86, 86, 86, 86, 2359, 86, 86, - 2362, 86, 86, 86, 2365, 86, 2358, 2360, 86, 86, - 2369, 2364, 2371, 86, 86, 86, 86, 2367, 2372, 2361, - 2366, 2363, 86, 2368, 2373, 86, 86, 2374, 86, 86, - 2370, 86, 86, 2379, 2376, 2382, 86, 2377, 86, 86, - 2383, 2375, 2380, 86, 86, 2378, 86, 86, 86, 2381, + 86, 2329, 2334, 2342, 86, 2337, 2343, 2338, 2344, 86, + 86, 86, 86, 86, 86, 2348, 86, 2340, 2346, 86, + 2349, 86, 2352, 2353, 86, 86, 2354, 86, 86, 2347, + 2357, 2364, 2358, 2355, 2350, 2362, 86, 86, 2359, 2360, + 86, 86, 86, 86, 86, 2351, 2356, 2361, 2363, 86, + 86, 86, 86, 2365, 86, 86, 2368, 86, 86, 86, + 2371, 86, 86, 2366, 2377, 86, 2375, 2370, 86, 86, + 86, 86, 2378, 2373, 2380, 2367, 2372, 2369, 86, 2374, + 86, 86, 86, 86, 2376, 2379, 86, 2385, 2388, 86, + 86, 86, 2383, 86, 86, 86, 2382, 2381, 2389, 2386, - 86, 86, 86, 86, 86, 2396, 86, 2384, 2385, 2390, - 2395, 2397, 86, 86, 2393, 2388, 2386, 2392, 2387, 2389, - 2394, 2391, 86, 86, 86, 86, 2399, 2398, 86, 86, - 2403, 2404, 86, 86, 86, 2405, 2451, 2400, 86, 2401, - 86, 2402, 2406, 86, 86, 2409, 86, 2412, 86, 2407, - 86, 2408, 2413, 86, 86, 2410, 86, 86, 2411, 2414, - 2416, 2415, 2419, 86, 2420, 86, 86, 2422, 86, 2418, - 2417, 86, 2424, 86, 86, 86, 2427, 86, 86, 2426, - 2428, 86, 86, 86, 86, 2421, 2435, 86, 86, 2423, - 2425, 2430, 2429, 2434, 86, 2437, 86, 2432, 86, 86, + 2384, 2387, 86, 86, 86, 86, 86, 86, 86, 86, + 2390, 86, 2391, 2402, 86, 2401, 2396, 2392, 86, 2393, + 2400, 2394, 2398, 2404, 2395, 86, 2397, 2399, 2403, 86, + 86, 86, 2666, 2405, 86, 86, 2409, 86, 2406, 2410, + 86, 86, 86, 2411, 86, 2407, 86, 2408, 2412, 86, + 86, 2415, 2413, 2416, 86, 2414, 2417, 2418, 86, 2419, + 86, 86, 86, 86, 86, 2427, 2420, 2421, 2425, 86, + 2426, 86, 2428, 86, 2422, 86, 2424, 2430, 86, 86, + 86, 2433, 86, 2423, 86, 2432, 2434, 86, 86, 86, + 86, 86, 86, 2429, 2431, 86, 86, 2436, 2435, 86, - 86, 86, 86, 2433, 2440, 2439, 86, 2441, 2443, 86, - 86, 86, 2446, 2436, 86, 86, 2438, 2445, 86, 2444, - 2449, 86, 2442, 86, 86, 86, 2447, 86, 2453, 2454, - 86, 86, 2456, 2448, 86, 2450, 86, 2455, 2452, 86, - 2457, 2459, 86, 2461, 86, 86, 2458, 86, 86, 2466, - 86, 86, 86, 2462, 2460, 86, 2474, 2468, 86, 2467, - 2472, 2469, 2463, 2464, 2473, 86, 86, 86, 86, 86, - 2475, 86, 86, 2465, 86, 86, 2470, 2479, 2471, 2481, - 2482, 2477, 2484, 86, 86, 2485, 86, 2488, 86, 86, - 2478, 86, 2476, 86, 2489, 86, 86, 2480, 2483, 86, + 2440, 2441, 86, 86, 2438, 2445, 2437, 2443, 86, 86, + 2439, 2442, 2446, 86, 2444, 86, 2447, 2449, 86, 86, + 86, 2452, 2450, 86, 2455, 86, 86, 86, 2451, 86, + 86, 2448, 2460, 86, 2459, 2453, 86, 86, 86, 86, + 2465, 86, 2454, 2462, 2458, 86, 2456, 86, 86, 86, + 2457, 86, 2463, 86, 2464, 2461, 2467, 86, 2472, 86, + 86, 2468, 2474, 86, 86, 2466, 2469, 2475, 2473, 2470, + 2478, 86, 86, 86, 86, 2479, 86, 2480, 2481, 2471, + 86, 86, 2476, 86, 2477, 86, 2485, 2483, 86, 86, + 2487, 2490, 2491, 2488, 86, 86, 2482, 86, 86, 2494, - 2490, 2487, 86, 86, 86, 2486, 2493, 86, 86, 86, - 86, 2494, 2492, 2495, 2499, 86, 2496, 2497, 2500, 2501, - 86, 2491, 86, 2498, 86, 86, 2504, 2505, 86, 2506, - 2502, 2503, 86, 86, 86, 2509, 86, 2507, 170, 86, - 86, 2508, 86, 2510, 86, 2515, 86, 86, 86, 2517, - 86, 86, 86, 2526, 86, 2513, 2511, 2516, 2512, 2518, - 2514, 86, 86, 2521, 2519, 2520, 86, 2523, 3438, 2522, - 86, 2527, 2524, 2525, 2528, 86, 86, 86, 2531, 2529, - 2532, 86, 2530, 86, 86, 86, 86, 2534, 86, 86, - 2533, 86, 2536, 86, 86, 2540, 2541, 2535, 86, 2538, + 86, 2484, 86, 86, 2489, 86, 86, 2495, 2496, 2486, + 2493, 86, 86, 86, 2499, 2492, 86, 86, 86, 2498, + 86, 2500, 2501, 2505, 2507, 2497, 2502, 2503, 2506, 86, + 2504, 86, 86, 2511, 86, 86, 2510, 86, 2512, 86, + 86, 2509, 86, 2515, 86, 170, 2513, 86, 86, 2514, + 2516, 2508, 86, 2521, 86, 86, 86, 2523, 86, 86, + 86, 86, 86, 2519, 2517, 2529, 2518, 86, 2520, 86, + 2522, 2524, 2525, 2526, 2527, 86, 2532, 86, 2528, 2531, + 2653, 2530, 86, 2533, 2534, 86, 86, 86, 2537, 2535, + 2538, 86, 2536, 86, 86, 86, 86, 2540, 86, 86, - 86, 2537, 86, 2543, 86, 86, 86, 86, 2544, 2545, - 2546, 86, 2539, 86, 2542, 86, 2548, 86, 2547, 2552, - 86, 2551, 86, 86, 2549, 2550, 86, 86, 2554, 86, - 86, 86, 86, 2561, 2558, 2553, 86, 2560, 86, 86, - 86, 86, 2562, 2557, 86, 86, 2555, 2556, 86, 2566, - 86, 2559, 86, 86, 2576, 2571, 2563, 2570, 86, 2564, - 2565, 86, 2568, 86, 2569, 86, 2567, 2573, 86, 86, - 86, 2572, 2575, 2577, 86, 2579, 86, 2574, 2581, 86, - 2580, 2583, 86, 86, 86, 2585, 86, 86, 86, 86, - 86, 2582, 2584, 86, 2589, 2578, 86, 86, 86, 86, + 2539, 86, 2542, 86, 86, 2546, 2547, 2541, 86, 2544, + 86, 2543, 86, 2549, 86, 86, 86, 86, 2550, 2551, + 2552, 86, 2545, 86, 2548, 86, 2554, 86, 2553, 2558, + 86, 2557, 86, 86, 2555, 2556, 86, 86, 2560, 86, + 86, 86, 86, 2567, 2564, 2559, 86, 2566, 86, 86, + 86, 86, 2568, 2563, 86, 86, 2561, 2562, 86, 2572, + 86, 2565, 86, 86, 2582, 2577, 2569, 2576, 86, 2570, + 2571, 86, 2574, 86, 2575, 86, 2573, 2579, 86, 86, + 86, 2578, 2581, 2583, 86, 2585, 86, 2580, 2587, 86, + 2586, 2589, 86, 86, 86, 2591, 86, 86, 86, 86, - 2594, 86, 2587, 2592, 2593, 2586, 2588, 2595, 86, 2596, - 86, 2597, 86, 2598, 86, 86, 86, 2591, 86, 2590, - 86, 2600, 86, 2602, 86, 2605, 86, 86, 86, 2607, - 2603, 2606, 86, 2601, 2599, 86, 2604, 2610, 86, 86, - 86, 86, 2611, 2609, 86, 2608, 86, 2614, 2615, 86, - 86, 2612, 86, 2618, 86, 2616, 2620, 2619, 2613, 2617, - 86, 86, 86, 86, 86, 86, 86, 2624, 2628, 86, - 86, 2627, 2629, 86, 2621, 2622, 2623, 2630, 86, 2631, - 86, 86, 2632, 2625, 86, 2626, 86, 2635, 86, 2634, - 86, 2636, 86, 86, 86, 86, 86, 86, 86, 2633, + 86, 2588, 2590, 86, 2595, 2584, 86, 86, 86, 86, + 2600, 86, 2593, 2598, 2599, 2592, 2594, 2601, 86, 2602, + 86, 2603, 86, 2604, 86, 86, 86, 2597, 86, 2596, + 86, 2606, 86, 2608, 86, 2611, 86, 86, 86, 2613, + 2609, 2612, 86, 2607, 2605, 86, 2610, 2616, 86, 86, + 86, 86, 2617, 2615, 86, 2614, 86, 2620, 2621, 86, + 86, 2618, 86, 2624, 86, 2622, 2626, 2625, 2619, 2623, + 86, 86, 86, 86, 86, 86, 86, 2630, 2634, 86, + 86, 2633, 2635, 86, 2627, 2628, 2629, 2636, 86, 2637, + 86, 86, 2638, 2631, 86, 2632, 86, 2641, 86, 2640, - 2637, 2643, 86, 2645, 86, 2639, 2646, 86, 86, 2647, - 86, 86, 2638, 2642, 2640, 2644, 2641, 2649, 86, 86, - 2648, 86, 86, 2650, 2652, 2655, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 2663, 2656, 86, 2651, 170, - 86, 2653, 2654, 2659, 86, 2665, 2661, 86, 86, 2658, - 86, 2664, 2667, 86, 2657, 2660, 2662, 2666, 2669, 86, - 86, 86, 2668, 2672, 86, 86, 2674, 2676, 86, 2675, - 2677, 86, 2670, 2673, 86, 2678, 2671, 86, 2679, 86, - 2680, 86, 86, 2681, 86, 86, 86, 86, 86, 86, - 86, 86, 2682, 2691, 86, 86, 86, 86, 2689, 2684, + 86, 2642, 86, 86, 86, 86, 86, 86, 86, 2639, + 2643, 2649, 86, 2651, 86, 2645, 2652, 86, 86, 86, + 2654, 86, 2644, 2648, 2646, 2650, 2647, 86, 2655, 86, + 2656, 86, 2658, 2661, 86, 86, 86, 86, 86, 2657, + 86, 86, 170, 86, 2662, 2669, 86, 2671, 86, 2659, + 86, 2660, 2667, 2665, 2670, 86, 86, 2664, 86, 2672, + 86, 86, 2663, 2668, 2678, 86, 2675, 86, 86, 3444, + 2673, 2674, 2680, 2681, 2682, 86, 2683, 86, 86, 2679, + 2676, 86, 2684, 2677, 86, 2685, 86, 2686, 86, 86, + 86, 86, 86, 86, 86, 86, 2687, 86, 86, 2688, - 3438, 2683, 86, 2695, 2686, 2685, 2696, 86, 2688, 2687, - 2690, 86, 86, 2693, 2692, 2694, 2700, 86, 2698, 86, - 86, 2699, 2702, 86, 86, 2697, 86, 86, 2701, 86, - 86, 86, 86, 2705, 2711, 86, 2712, 86, 2703, 86, - 86, 86, 2704, 86, 2706, 2707, 86, 2709, 2708, 2715, - 2718, 2710, 2716, 86, 2717, 86, 86, 86, 2714, 2713, - 2721, 86, 86, 86, 2719, 86, 86, 2723, 86, 86, - 2727, 2726, 2720, 2728, 86, 2722, 86, 86, 2729, 2730, - 86, 86, 86, 2724, 86, 2725, 2732, 86, 2731, 86, - 86, 86, 2736, 86, 2734, 2737, 86, 2742, 86, 2741, + 2697, 86, 86, 86, 2695, 2690, 86, 86, 2689, 86, + 2692, 2691, 86, 2701, 2694, 2693, 2705, 2696, 2702, 86, + 2699, 2698, 86, 2703, 2700, 2704, 2706, 86, 2708, 86, + 86, 2707, 86, 86, 86, 86, 86, 86, 86, 86, + 2711, 2717, 86, 2718, 86, 86, 86, 86, 2709, 2712, + 2710, 2724, 2721, 2713, 2714, 2715, 2716, 86, 2719, 2722, + 86, 2723, 86, 2720, 86, 2725, 86, 86, 86, 86, + 86, 86, 86, 2729, 2733, 86, 2732, 2734, 86, 2726, + 86, 2728, 2735, 2736, 86, 2727, 86, 86, 86, 2730, + 2731, 86, 86, 86, 2737, 2738, 86, 2742, 2743, 86, - 2733, 86, 86, 86, 2735, 2745, 86, 86, 86, 2738, - 2739, 86, 2748, 2740, 2746, 86, 2743, 2751, 86, 2750, - 2744, 86, 2747, 86, 86, 86, 2749, 2756, 86, 86, - 86, 86, 2760, 86, 2752, 2759, 86, 86, 2753, 2758, - 86, 2757, 2762, 86, 2754, 2755, 86, 86, 86, 2764, - 86, 2763, 86, 2765, 86, 2761, 2768, 86, 3438, 2766, - 86, 2769, 2771, 86, 86, 2772, 86, 2773, 2767, 86, - 2777, 86, 2770, 2774, 86, 2775, 86, 86, 2776, 2780, - 86, 86, 2781, 86, 86, 86, 2782, 86, 86, 2784, - 86, 2779, 86, 2785, 2778, 86, 2788, 2783, 86, 2787, + 2740, 86, 86, 2748, 86, 2747, 2739, 86, 86, 2751, + 86, 2741, 86, 86, 86, 86, 2744, 86, 2745, 2754, + 86, 2746, 2749, 2752, 2756, 86, 2750, 86, 2753, 2755, + 2757, 86, 2759, 86, 2762, 86, 86, 86, 2758, 86, + 2766, 86, 86, 2765, 2768, 86, 2764, 2760, 2763, 86, + 86, 86, 86, 2761, 2769, 86, 2774, 86, 86, 2770, + 86, 2767, 86, 2775, 2772, 2777, 86, 2771, 86, 86, + 86, 2783, 86, 2778, 86, 2773, 86, 86, 2780, 2781, + 2776, 2779, 86, 2782, 2786, 86, 86, 2787, 86, 86, + 86, 2788, 2785, 86, 2790, 86, 2784, 86, 2791, 86, - 2790, 86, 86, 2791, 2793, 86, 2786, 2789, 2794, 86, - 86, 2797, 170, 86, 86, 2795, 2792, 86, 86, 2799, - 2798, 2796, 2802, 86, 86, 86, 2804, 86, 86, 2803, - 2807, 86, 2806, 2808, 86, 2800, 2801, 86, 2805, 2810, - 86, 86, 2812, 86, 2811, 86, 86, 2813, 86, 86, - 2809, 2814, 2817, 86, 2815, 86, 86, 2816, 86, 2818, - 2821, 2819, 2820, 86, 86, 86, 2824, 2825, 86, 86, - 2826, 2822, 86, 86, 86, 86, 2828, 86, 2830, 2829, - 2827, 86, 86, 86, 86, 2823, 2832, 2833, 86, 2831, - 86, 86, 86, 2838, 86, 86, 2841, 2835, 86, 2836, + 86, 86, 2789, 86, 2793, 2794, 2796, 86, 2797, 2799, + 86, 86, 2792, 86, 2795, 2798, 2800, 86, 2801, 2803, + 170, 86, 86, 86, 2808, 86, 2802, 2805, 2804, 2806, + 86, 86, 86, 2810, 86, 86, 2809, 2813, 86, 2812, + 2811, 2807, 2814, 86, 2816, 86, 86, 2818, 2815, 2817, + 86, 86, 2819, 86, 86, 2820, 2821, 2823, 86, 86, + 86, 86, 2824, 86, 2825, 86, 86, 86, 2822, 2826, + 86, 2830, 2831, 2828, 86, 2832, 2827, 86, 86, 2833, + 86, 2834, 86, 86, 86, 2835, 2836, 2829, 86, 2838, + 86, 86, 86, 2839, 2837, 86, 86, 86, 2844, 86, - 2837, 2834, 86, 2839, 2842, 86, 2840, 86, 2846, 86, - 86, 86, 86, 86, 2843, 2851, 86, 2847, 86, 86, - 86, 2849, 86, 86, 86, 2844, 2845, 2855, 2850, 2858, - 2848, 2856, 86, 2859, 2853, 86, 3438, 2852, 2861, 86, - 2854, 86, 2860, 86, 86, 2862, 86, 2857, 2864, 2863, - 86, 86, 2867, 86, 86, 86, 2868, 86, 86, 2865, - 86, 2869, 86, 2872, 2866, 2874, 86, 86, 2870, 3438, - 2871, 2875, 86, 2876, 86, 86, 86, 86, 2873, 2877, - 86, 2878, 2879, 86, 86, 2881, 2883, 2880, 86, 2882, - 86, 2884, 86, 86, 2887, 86, 2885, 2888, 86, 2889, + 86, 2842, 86, 3444, 2841, 2843, 2847, 86, 2840, 2845, + 86, 86, 86, 2846, 2852, 86, 2848, 86, 2849, 86, + 86, 86, 2850, 86, 2853, 86, 2851, 86, 2855, 86, + 2854, 2857, 86, 2861, 3444, 2856, 2862, 86, 2859, 86, + 2858, 2864, 2865, 2867, 3444, 2860, 86, 86, 86, 86, + 2868, 86, 2863, 86, 2869, 86, 86, 2866, 2870, 2873, + 86, 86, 86, 2874, 2871, 86, 2875, 86, 86, 2872, + 86, 2878, 2880, 86, 86, 2876, 2881, 86, 2882, 86, + 86, 86, 2877, 86, 2883, 86, 2879, 86, 2884, 2885, + 86, 2889, 2887, 2888, 2886, 86, 2890, 86, 86, 2893, - 86, 86, 86, 2891, 2890, 2893, 86, 86, 2886, 2896, - 86, 86, 2897, 2894, 86, 2892, 2898, 86, 2900, 86, - 86, 86, 86, 86, 2904, 2905, 86, 2895, 86, 2899, - 86, 2907, 2906, 2901, 86, 86, 2903, 86, 2909, 2902, - 2908, 86, 86, 2910, 86, 2915, 2911, 86, 2914, 86, - 86, 86, 86, 2917, 2912, 2918, 86, 2919, 2920, 86, - 86, 2913, 2921, 86, 86, 2924, 2923, 86, 86, 86, - 86, 86, 2916, 2927, 2931, 86, 86, 86, 2938, 86, - 86, 2930, 86, 2939, 86, 2922, 2925, 2926, 2928, 86, - 2932, 2929, 2933, 2935, 86, 86, 2936, 2977, 2940, 2942, + 2894, 86, 2895, 86, 86, 2892, 86, 2891, 86, 2896, + 2899, 86, 86, 86, 2902, 86, 86, 2897, 86, 2903, + 86, 2898, 2904, 86, 2906, 86, 86, 86, 2910, 86, + 2900, 2905, 86, 2901, 86, 2911, 86, 2913, 2908, 2907, + 86, 2909, 86, 86, 2912, 2915, 86, 2914, 86, 86, + 2916, 86, 2917, 2921, 86, 2920, 86, 2922, 2923, 86, + 2924, 86, 86, 86, 2926, 86, 2918, 2925, 2919, 86, + 86, 86, 2927, 2929, 86, 2930, 2933, 86, 86, 86, + 2937, 86, 2931, 2932, 86, 86, 86, 86, 2928, 2939, + 2949, 86, 86, 2936, 86, 2934, 86, 2940, 2935, 2938, - 2934, 86, 2937, 2941, 86, 2943, 86, 86, 2944, 86, - 2945, 86, 2946, 86, 2947, 86, 86, 2948, 86, 86, - 2949, 2951, 86, 2952, 86, 86, 86, 2954, 2958, 86, - 2959, 86, 86, 2955, 86, 2960, 2950, 86, 2953, 2962, - 86, 2964, 86, 86, 2963, 2956, 2957, 86, 2965, 2966, - 86, 86, 2961, 86, 86, 86, 2967, 2972, 86, 86, - 2968, 86, 2969, 2970, 86, 2973, 86, 86, 2974, 2978, - 86, 86, 86, 2971, 2979, 86, 2982, 2976, 86, 2981, - 2980, 86, 86, 2975, 2984, 86, 2983, 2985, 86, 2989, - 86, 86, 2986, 86, 86, 86, 2987, 86, 86, 86, + 2943, 2941, 2944, 2942, 2946, 86, 2950, 2945, 86, 2947, + 86, 86, 2951, 2948, 86, 2952, 86, 2953, 86, 86, + 86, 86, 2957, 86, 2955, 86, 2958, 86, 86, 86, + 2960, 2964, 86, 86, 2954, 86, 2961, 2965, 86, 2979, + 2956, 86, 2959, 86, 2966, 2968, 86, 86, 2962, 2963, + 2969, 2967, 2970, 86, 86, 2972, 86, 86, 86, 2971, + 86, 86, 2978, 86, 86, 2977, 2973, 2974, 86, 2975, + 2976, 86, 2984, 2980, 86, 86, 86, 2985, 86, 86, + 86, 86, 2982, 2988, 86, 2987, 2989, 2981, 2986, 2983, + 2990, 86, 2991, 86, 2992, 86, 2995, 86, 86, 86, - 2988, 2996, 2990, 2991, 2993, 86, 2994, 86, 86, 86, - 2997, 86, 3001, 2999, 3000, 2995, 86, 86, 86, 2992, - 86, 86, 3003, 86, 3006, 3002, 2998, 3007, 3008, 86, - 3011, 3004, 3009, 86, 3005, 3010, 86, 86, 86, 86, - 3015, 86, 86, 3014, 86, 86, 86, 3016, 86, 3017, - 3018, 86, 86, 86, 3026, 86, 86, 3012, 3013, 3019, - 3020, 3022, 3024, 86, 86, 86, 3021, 3027, 86, 3028, - 3023, 86, 86, 3030, 86, 86, 3029, 86, 3025, 3035, - 86, 86, 86, 86, 3031, 86, 86, 3038, 86, 3032, - 3033, 86, 86, 86, 3036, 3037, 3042, 3034, 3043, 86, + 86, 86, 86, 86, 3002, 86, 2999, 2996, 86, 2993, + 86, 2997, 3000, 2994, 86, 86, 86, 3003, 86, 3005, + 3006, 3009, 3001, 86, 3007, 2998, 86, 3008, 86, 3004, + 86, 3012, 3014, 86, 3013, 3015, 86, 3016, 86, 3010, + 86, 86, 3011, 86, 3444, 86, 3021, 86, 86, 3017, + 3020, 86, 86, 3022, 3024, 86, 3023, 86, 86, 86, + 86, 3018, 3019, 86, 3028, 3025, 3030, 3032, 86, 3026, + 86, 86, 86, 86, 3033, 86, 3034, 86, 3029, 3027, + 3035, 86, 3036, 86, 86, 3041, 86, 86, 3031, 86, + 86, 86, 3037, 86, 3044, 86, 86, 3040, 3038, 3039, - 3039, 3040, 86, 3044, 86, 3041, 3048, 86, 3045, 86, - 3046, 3050, 86, 3051, 86, 86, 3053, 86, 86, 86, - 86, 86, 86, 3059, 86, 3056, 86, 3058, 3049, 86, - 3047, 86, 86, 3062, 3054, 3055, 3052, 3057, 3061, 86, - 86, 3065, 86, 86, 3068, 86, 3060, 86, 86, 3070, - 86, 3064, 86, 3071, 3063, 86, 3066, 3073, 86, 3074, - 86, 86, 3067, 86, 3077, 86, 86, 3069, 86, 86, - 86, 3083, 3072, 3082, 86, 86, 3075, 3079, 3080, 86, - 3086, 86, 3084, 3076, 3078, 86, 86, 86, 3081, 3088, - 3087, 86, 86, 3438, 3085, 3089, 86, 3090, 3093, 3091, + 3042, 86, 3043, 86, 3045, 86, 3050, 3046, 3049, 3048, + 86, 86, 3047, 86, 3052, 3054, 86, 3056, 86, 3051, + 3057, 86, 86, 3059, 86, 86, 86, 86, 86, 86, + 86, 86, 3055, 3062, 86, 3064, 86, 3053, 3065, 86, + 3067, 3060, 3061, 3058, 3068, 3063, 86, 3066, 86, 3071, + 86, 86, 3074, 86, 86, 3070, 3076, 3069, 86, 86, + 3072, 86, 86, 3077, 3079, 86, 3080, 86, 86, 86, + 3073, 3083, 86, 86, 3075, 86, 3081, 3088, 86, 86, + 3085, 3078, 3086, 86, 86, 3092, 86, 86, 3082, 86, + 86, 3084, 3094, 3095, 86, 3087, 3090, 3089, 86, 3091, - 3094, 86, 3096, 86, 86, 3092, 3095, 86, 86, 3097, - 3099, 86, 3098, 86, 86, 3102, 86, 86, 3100, 3105, - 86, 86, 86, 86, 86, 3110, 86, 86, 3106, 86, - 86, 3114, 86, 3101, 3103, 3104, 86, 3109, 86, 3113, - 3107, 3115, 86, 3116, 86, 3112, 3111, 86, 3108, 3118, - 3117, 3119, 86, 3120, 86, 3121, 86, 86, 3124, 86, - 3122, 86, 3126, 86, 86, 86, 3125, 86, 86, 86, - 86, 3132, 3133, 86, 86, 86, 86, 86, 3127, 3139, - 86, 3140, 86, 3123, 86, 86, 3141, 3128, 3130, 3129, - 3131, 3136, 86, 3138, 3135, 86, 3137, 86, 86, 86, + 86, 3096, 3093, 3099, 3100, 86, 3097, 86, 3102, 86, + 3101, 86, 86, 86, 86, 3105, 86, 3104, 3098, 86, + 3108, 86, 3111, 86, 3106, 86, 86, 86, 86, 3103, + 86, 86, 3107, 3116, 86, 86, 3444, 3112, 3109, 3110, + 86, 3120, 86, 3115, 86, 3113, 3121, 86, 86, 3119, + 3117, 3118, 86, 3114, 86, 3125, 86, 3122, 3123, 3124, + 3126, 86, 3127, 86, 86, 3130, 86, 86, 3132, 86, + 86, 86, 3131, 86, 3129, 86, 86, 3128, 86, 3138, + 3139, 86, 86, 86, 86, 3133, 86, 86, 3145, 86, + 3146, 86, 3134, 3147, 3136, 3135, 3144, 86, 3137, 86, - 3134, 86, 3144, 3146, 86, 3142, 3147, 86, 86, 86, - 3150, 3151, 86, 3148, 3143, 3149, 86, 3152, 86, 3145, - 3153, 86, 86, 3154, 86, 86, 3155, 86, 86, 3156, - 86, 86, 3157, 3159, 86, 86, 3161, 86, 86, 3160, - 86, 3438, 3162, 86, 86, 3158, 86, 86, 86, 86, - 3163, 86, 3171, 3172, 3175, 3164, 3166, 3165, 3174, 3167, - 3173, 3168, 3169, 86, 86, 86, 3177, 3170, 3179, 86, - 86, 3176, 3180, 86, 3181, 3182, 86, 86, 3178, 86, - 3185, 86, 3183, 3186, 86, 3187, 3188, 86, 86, 3189, - 3190, 3194, 86, 3191, 86, 86, 3192, 3193, 3184, 86, + 3142, 86, 3141, 86, 3143, 86, 3152, 86, 3140, 86, + 3150, 3153, 86, 86, 3154, 3156, 86, 3148, 86, 86, + 3149, 86, 3159, 86, 3151, 86, 3158, 3155, 3157, 86, + 3160, 86, 86, 3161, 86, 86, 3162, 86, 86, 3163, + 3165, 86, 86, 3167, 86, 86, 3166, 86, 3444, 3168, + 86, 86, 3164, 86, 86, 86, 86, 3169, 86, 3177, + 3178, 3181, 3170, 3172, 3171, 3180, 3173, 3179, 3174, 3175, + 86, 86, 86, 3183, 3176, 3185, 86, 86, 3182, 3186, + 86, 3187, 3188, 86, 86, 3184, 86, 3191, 86, 3189, + 3192, 86, 3193, 3194, 86, 86, 3195, 3196, 3200, 86, - 3195, 86, 3197, 86, 86, 86, 86, 86, 86, 86, - 3196, 3203, 86, 3202, 86, 86, 86, 86, 86, 3199, - 86, 3207, 3198, 3206, 3208, 86, 3200, 3201, 86, 3204, - 3211, 3212, 86, 3209, 86, 3214, 86, 3213, 3210, 3205, - 3215, 86, 3216, 86, 86, 86, 86, 3221, 86, 3218, - 3223, 3217, 3222, 86, 3219, 86, 86, 3220, 86, 86, - 86, 3230, 86, 3225, 3227, 3228, 3231, 86, 3233, 86, - 86, 3224, 86, 3232, 3234, 86, 3226, 3229, 86, 3237, - 86, 3238, 86, 3236, 86, 3235, 3240, 86, 3241, 86, - 3242, 86, 86, 3239, 3243, 86, 3244, 86, 3245, 86, + 3197, 86, 86, 3198, 3199, 3190, 86, 3201, 86, 3203, + 86, 86, 86, 86, 86, 86, 86, 3202, 3209, 86, + 3208, 86, 86, 86, 86, 86, 3205, 86, 3213, 3204, + 3212, 3214, 86, 3206, 3207, 86, 3210, 3217, 3218, 86, + 3215, 86, 3220, 86, 3219, 3216, 3211, 3221, 86, 3222, + 86, 86, 86, 86, 3227, 86, 3224, 3229, 3223, 3228, + 86, 3225, 86, 86, 3226, 86, 86, 86, 3236, 86, + 3231, 3233, 3234, 3237, 86, 3239, 86, 86, 3230, 86, + 3238, 3240, 86, 3232, 3235, 86, 3243, 86, 3244, 86, + 3242, 86, 3241, 3246, 86, 3247, 86, 3248, 86, 86, - 3246, 86, 3247, 86, 86, 3250, 86, 86, 86, 86, - 3254, 86, 86, 3249, 3256, 86, 3251, 86, 3248, 86, - 3252, 86, 86, 86, 86, 3260, 3261, 86, 86, 3253, - 86, 3255, 3257, 3265, 3258, 3259, 86, 3262, 3263, 86, - 86, 3267, 3270, 86, 86, 3266, 3264, 3269, 86, 86, - 86, 86, 86, 86, 3268, 3272, 86, 3271, 3276, 86, - 86, 86, 3277, 3278, 86, 86, 86, 3282, 3273, 3274, - 3281, 86, 3275, 3284, 86, 3279, 3285, 86, 86, 3283, - 3286, 86, 86, 86, 86, 86, 86, 3280, 3289, 86, - 86, 3288, 86, 86, 3287, 3294, 86, 3291, 3290, 86, + 3245, 3249, 86, 3250, 86, 3251, 86, 3252, 86, 3253, + 86, 86, 3256, 86, 86, 86, 86, 3260, 86, 86, + 3255, 3262, 86, 3257, 86, 3254, 86, 3258, 86, 86, + 86, 86, 3266, 3267, 86, 86, 3259, 86, 3261, 3263, + 3271, 3264, 3265, 86, 3268, 3269, 86, 86, 3273, 3276, + 86, 86, 3272, 3270, 3275, 86, 86, 86, 86, 86, + 86, 3274, 3278, 86, 3277, 3282, 86, 86, 86, 3283, + 3284, 86, 86, 86, 3288, 3279, 3280, 3287, 86, 3281, + 3290, 86, 3285, 3291, 86, 86, 3289, 3292, 86, 86, + 86, 86, 86, 86, 3286, 3295, 86, 86, 3294, 86, - 3293, 3295, 86, 3297, 86, 3299, 3298, 3296, 3292, 86, - 86, 86, 86, 86, 3300, 86, 86, 86, 3306, 86, - 3301, 3304, 3308, 3305, 86, 3303, 3309, 86, 86, 3311, - 3312, 3314, 86, 86, 3302, 86, 3307, 3316, 86, 3310, - 86, 3317, 3315, 3318, 86, 3319, 86, 86, 3313, 86, - 86, 86, 3322, 86, 3320, 3323, 3324, 86, 3327, 86, - 86, 86, 86, 86, 86, 3330, 86, 3321, 3331, 86, - 3333, 86, 3326, 3328, 3329, 3334, 86, 86, 3325, 3337, - 86, 3332, 3336, 86, 3339, 3340, 86, 86, 3341, 86, - 86, 86, 3335, 3344, 3345, 86, 86, 3342, 3338, 86, + 86, 3293, 3300, 86, 3297, 3296, 86, 3299, 3301, 86, + 3303, 86, 3305, 3304, 3302, 3298, 86, 86, 86, 86, + 86, 3306, 86, 86, 86, 3312, 86, 3307, 3310, 3314, + 3311, 86, 3309, 3315, 86, 86, 3317, 3318, 3320, 86, + 86, 3308, 86, 3313, 3322, 86, 3316, 86, 3323, 3321, + 3324, 86, 3325, 86, 86, 3319, 86, 86, 86, 3328, + 86, 3326, 3329, 3330, 86, 3333, 86, 86, 86, 86, + 86, 86, 3336, 86, 3327, 3337, 86, 3339, 86, 3332, + 3334, 3335, 3340, 86, 86, 3331, 3343, 86, 3338, 3342, + 86, 3345, 3346, 86, 86, 3347, 86, 86, 86, 3341, - 86, 86, 3350, 86, 86, 3346, 3349, 86, 3347, 3343, - 3351, 86, 86, 86, 86, 3348, 86, 3355, 86, 86, - 86, 3357, 86, 86, 86, 3352, 3354, 3353, 3362, 3363, - 3364, 86, 3359, 3360, 3356, 86, 86, 3358, 86, 3368, - 86, 3361, 86, 3370, 86, 3371, 86, 3369, 86, 86, - 86, 3372, 3376, 3373, 3366, 3365, 86, 3367, 86, 3377, - 86, 3374, 86, 3379, 86, 86, 86, 3378, 86, 3375, - 3380, 86, 86, 3385, 86, 3382, 86, 86, 3388, 86, - 3389, 86, 86, 86, 3381, 86, 86, 3392, 86, 3387, - 3383, 3384, 3390, 3386, 86, 3391, 86, 3396, 86, 3397, + 3350, 3351, 86, 86, 3348, 3344, 86, 86, 86, 3356, + 86, 86, 3352, 3355, 86, 3353, 3349, 3357, 86, 86, + 86, 86, 3354, 86, 3361, 86, 86, 86, 3363, 86, + 86, 86, 3358, 3360, 3359, 3368, 3369, 3370, 86, 3365, + 3366, 3362, 86, 86, 3364, 86, 3374, 86, 3367, 86, + 3376, 86, 3377, 86, 3375, 86, 86, 86, 3378, 3382, + 3379, 3372, 3371, 86, 3373, 86, 3383, 86, 3380, 86, + 3385, 86, 86, 86, 3384, 86, 3381, 3386, 86, 86, + 3391, 86, 3388, 86, 86, 3394, 86, 3395, 86, 86, + 86, 3387, 86, 86, 3398, 86, 3393, 3389, 3390, 3396, - 86, 3395, 86, 3400, 3393, 3394, 86, 86, 3402, 86, - 3403, 3398, 86, 86, 86, 3407, 86, 3404, 86, 86, - 3405, 3409, 86, 3408, 86, 3401, 3399, 3410, 86, 3411, - 86, 3412, 86, 3406, 86, 3416, 86, 3414, 86, 86, - 86, 86, 86, 86, 3418, 3419, 86, 3422, 86, 3413, - 3423, 86, 3438, 3415, 86, 3426, 86, 3417, 3427, 86, - 3420, 3421, 3424, 3428, 3429, 86, 86, 3425, 3430, 86, - 86, 86, 86, 3431, 86, 3432, 3433, 3436, 86, 3437, - 86, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3434, 3438, 3435, 47, 47, 47, 47, 47, 47, + 3392, 86, 3397, 86, 3402, 86, 3403, 86, 3401, 86, + 3406, 3399, 3400, 86, 86, 3408, 86, 3409, 3404, 86, + 86, 86, 3413, 86, 3410, 86, 86, 3411, 3415, 86, + 3414, 86, 3407, 3405, 3416, 86, 3417, 86, 3418, 86, + 3412, 86, 3422, 86, 3420, 86, 86, 86, 86, 86, + 86, 3424, 3425, 86, 3428, 86, 3419, 3429, 86, 3444, + 3421, 86, 3432, 86, 3423, 3433, 86, 3426, 3427, 3430, + 3434, 3435, 86, 86, 3431, 3436, 86, 86, 86, 86, + 3437, 86, 3438, 3439, 3442, 86, 3443, 86, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3440, 3444, - 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, - 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, - 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, - 74, 74, 74, 74, 74, 74, 80, 80, 80, 80, - 80, 80, 80, 89, 89, 3438, 89, 89, 89, 89, - 160, 160, 3438, 3438, 3438, 160, 160, 162, 162, 3438, - 3438, 162, 3438, 162, 164, 3438, 3438, 3438, 3438, 3438, - 164, 167, 167, 3438, 3438, 3438, 167, 167, 169, 3438, - 3438, 3438, 3438, 3438, 169, 171, 171, 3438, 171, 171, - 171, 171, 174, 3438, 3438, 3438, 3438, 3438, 174, 177, + 3441, 47, 47, 47, 47, 47, 47, 47, 52, 52, + 52, 52, 52, 52, 52, 57, 57, 57, 57, 57, + 57, 57, 63, 63, 63, 63, 63, 63, 63, 68, + 68, 68, 68, 68, 68, 68, 74, 74, 74, 74, + 74, 74, 74, 80, 80, 80, 80, 80, 80, 80, + 89, 89, 3444, 89, 89, 89, 89, 160, 160, 3444, + 3444, 3444, 160, 160, 162, 162, 3444, 3444, 162, 3444, + 162, 164, 3444, 3444, 3444, 3444, 3444, 164, 167, 167, + 3444, 3444, 3444, 167, 167, 169, 3444, 3444, 3444, 3444, + 3444, 169, 171, 171, 3444, 171, 171, 171, 171, 174, - 177, 3438, 3438, 3438, 177, 177, 90, 90, 3438, 90, - 90, 90, 90, 17, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438 + 3444, 3444, 3444, 3444, 3444, 174, 177, 177, 3444, 3444, + 3444, 177, 177, 90, 90, 3444, 90, 90, 90, 90, + 17, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444 } ; -static const flex_int16_t yy_chk[6755] = +static const flex_int16_t yy_chk[6762] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2310,18 +2314,18 @@ static const flex_int16_t yy_chk[6755] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3446, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3452, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2797, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2803, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1116, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1117, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2522,529 +2526,530 @@ static const flex_int16_t yy_chk[6755] = 888, 897, 895, 893, 896, 897, 898, 899, 900, 901, 903, 894, 908, 900, 902, 902, 903, 904, 905, 899, - 904, 906, 907, 909, 909, 898, 910, 899, 907, 912, - 901, 914, 908, 911, 906, 913, 905, 917, 911, 915, - 913, 913, 918, 915, 910, 912, 914, 912, 916, 916, - 919, 920, 922, 923, 926, 919, 925, 927, 931, 917, - 929, 929, 918, 58, 930, 932, 932, 923, 930, 925, - 920, 933, 935, 931, 926, 936, 922, 934, 927, 928, - 937, 934, 928, 938, 928, 937, 939, 935, 928, 936, - 928, 939, 939, 940, 941, 928, 933, 938, 943, 942, - 928, 944, 940, 942, 946, 945, 944, 947, 941, 946, - 948, 949, 951, 943, 950, 942, 944, 945, 951, 952, + 904, 906, 907, 909, 909, 898, 910, 899, 907, 917, + 901, 58, 908, 911, 906, 914, 905, 912, 911, 915, + 912, 913, 918, 915, 910, 920, 913, 913, 916, 916, + 914, 917, 919, 912, 922, 912, 923, 919, 925, 926, + 927, 931, 918, 930, 920, 929, 929, 930, 932, 932, + 923, 925, 933, 934, 935, 940, 931, 934, 922, 926, + 936, 927, 928, 937, 940, 928, 938, 928, 937, 935, + 939, 928, 941, 928, 936, 939, 939, 933, 928, 943, + 938, 942, 946, 928, 944, 942, 941, 946, 945, 944, + 947, 948, 949, 950, 943, 951, 958, 942, 952, 944, - 953, 947, 954, 950, 952, 949, 953, 956, 954, 955, - 955, 948, 956, 957, 958, 959, 962, 960, 963, 957, - 965, 966, 966, 963, 967, 964, 969, 970, 962, 967, - 971, 972, 965, 968, 959, 960, 958, 961, 961, 964, - 969, 968, 973, 961, 976, 961, 970, 972, 973, 971, - 974, 961, 975, 977, 978, 974, 961, 961, 979, 979, - 981, 980, 976, 961, 975, 980, 985, 983, 984, 977, - 986, 984, 978, 983, 987, 986, 988, 990, 989, 992, - 981, 993, 988, 989, 994, 985, 995, 987, 992, 996, - 993, 997, 995, 999, 998, 1000, 990, 1001, 996, 998, + 945, 951, 950, 952, 947, 953, 949, 954, 955, 955, + 956, 953, 948, 954, 957, 956, 959, 962, 958, 960, + 957, 963, 964, 966, 966, 967, 963, 972, 965, 962, + 967, 969, 970, 968, 971, 959, 964, 960, 961, 961, + 965, 968, 973, 972, 961, 969, 961, 975, 973, 974, + 976, 970, 961, 971, 974, 977, 978, 961, 961, 975, + 979, 979, 980, 981, 961, 985, 980, 983, 976, 984, + 986, 977, 984, 983, 978, 986, 987, 989, 990, 988, + 994, 992, 989, 981, 985, 988, 993, 995, 997, 987, + 992, 996, 999, 995, 998, 993, 994, 990, 1001, 998, - 994, 1005, 1002, 1003, 1006, 1007, 1004, 1005, 1009, 1000, - 997, 1007, 1003, 999, 1002, 1004, 1011, 1001, 1012, 1015, - 1013, 1006, 1014, 1018, 1009, 1013, 1016, 1017, 1018, 1019, - 1011, 1022, 1027, 1015, 1019, 1028, 1022, 1023, 1012, 1024, - 1024, 1014, 1017, 1025, 1016, 1026, 1023, 1027, 1028, 1025, - 1030, 1031, 1034, 1035, 1026, 1034, 1031, 1031, 1033, 1033, - 1036, 1037, 1033, 1038, 1040, 1039, 1030, 1035, 1041, 1042, - 1043, 1044, 1048, 1049, 1041, 1048, 1043, 1037, 1039, 1040, - 1036, 1038, 1045, 1046, 1052, 1050, 1044, 1045, 1051, 1042, - 1050, 1054, 1053, 1051, 1049, 1056, 1054, 1046, 1055, 1058, + 996, 1000, 1002, 1005, 1003, 1006, 1011, 997, 1004, 1005, + 1007, 1009, 999, 1003, 1002, 1000, 1007, 1004, 1001, 1012, + 1011, 1013, 1006, 1014, 1015, 1016, 1013, 1009, 1018, 1017, + 1019, 1022, 1023, 1018, 1025, 1019, 1022, 1027, 1015, 1012, + 1025, 1023, 1014, 1016, 1017, 1024, 1024, 1026, 1028, 1030, + 1033, 1033, 1027, 1031, 1033, 1035, 1026, 1034, 1031, 1031, + 1034, 1028, 1036, 1037, 1039, 1030, 1038, 1041, 1040, 1035, + 1042, 1044, 1043, 1041, 1046, 1045, 1049, 1039, 1043, 1037, + 1045, 1058, 1036, 1040, 1038, 1052, 1044, 1058, 1046, 1048, + 1042, 1050, 1048, 1051, 1053, 1054, 1050, 1049, 1051, 1055, - 1052, 1053, 1059, 1055, 1060, 1058, 1061, 1056, 1062, 1062, - 1060, 1063, 1061, 1064, 1065, 1066, 1066, 1065, 1059, 1067, - 1063, 1068, 1069, 1070, 1072, 1071, 1070, 1073, 57, 1074, - 1072, 1064, 1082, 1073, 1074, 1081, 1075, 1067, 1071, 1076, - 1068, 1075, 1069, 1077, 1078, 1076, 1080, 1088, 1077, 1083, - 1078, 1080, 1082, 1081, 1084, 1083, 1085, 1085, 1086, 1084, - 1087, 1089, 1092, 1090, 1094, 1088, 1090, 1086, 1091, 1087, - 1093, 1091, 1095, 1092, 1096, 1093, 1099, 1097, 1102, 1098, - 1089, 1100, 1094, 1097, 1095, 1098, 1100, 1101, 1101, 1103, - 1104, 1099, 1105, 1096, 1106, 1107, 1105, 1102, 1108, 1109, + 1054, 1052, 1056, 1053, 1055, 1059, 1060, 1061, 1062, 1062, + 1063, 1064, 1060, 1061, 1056, 1065, 1066, 1066, 1065, 1063, + 1067, 1059, 1068, 1069, 1070, 1072, 1071, 1070, 1073, 1064, + 1074, 1072, 1075, 1082, 1073, 1074, 1076, 1075, 1067, 1071, + 1077, 1068, 1076, 1069, 1078, 1077, 1080, 1081, 1083, 1086, + 1078, 1080, 1084, 1082, 1083, 1085, 1085, 1084, 1086, 1087, + 1088, 1089, 1092, 1090, 1091, 1081, 1090, 1091, 1087, 1093, + 1094, 1095, 1096, 1092, 1093, 1097, 1098, 1099, 1088, 1100, + 1089, 1097, 1098, 1095, 1100, 1101, 1101, 1102, 1094, 1103, + 1104, 1096, 1099, 1105, 1106, 1107, 1108, 1105, 1109, 1111, - 1111, 1115, 1104, 1103, 1107, 1112, 1112, 1118, 1113, 1114, - 52, 1117, 1106, 1113, 1114, 1119, 1123, 1108, 1120, 1111, - 1121, 1115, 1118, 1120, 1109, 1117, 1124, 1119, 1125, 1121, - 1122, 1122, 1124, 1126, 1125, 1127, 1123, 1128, 1129, 1128, - 1127, 1130, 1131, 1129, 1133, 1132, 1134, 1135, 1136, 1126, - 1132, 1137, 1139, 1139, 1135, 1130, 1131, 1140, 1141, 1133, - 1142, 1143, 1144, 1136, 1145, 1134, 47, 1143, 1147, 1145, - 1137, 1140, 1147, 1148, 1148, 1142, 1141, 1152, 1145, 1149, - 1145, 1151, 1144, 1145, 1149, 1150, 1150, 1153, 1151, 1154, - 1153, 1152, 1155, 1156, 1157, 1158, 1160, 1159, 1161, 1157, + 1112, 1112, 1104, 1103, 1107, 1113, 1102, 1116, 1118, 1114, + 1119, 1115, 1106, 1113, 1114, 1108, 1115, 1120, 1111, 1121, + 1124, 1122, 1118, 1109, 1121, 1119, 1127, 1116, 1125, 1120, + 1122, 1123, 1123, 1126, 1125, 1129, 1128, 1129, 1130, 1126, + 1124, 1128, 1127, 1130, 1131, 1132, 1133, 1134, 1135, 1136, + 1137, 1133, 1138, 1140, 1140, 1141, 1136, 1142, 1131, 1132, + 1144, 1143, 1134, 1145, 57, 1137, 1144, 1135, 1146, 1141, + 1148, 1138, 1152, 1146, 1148, 1142, 1143, 1149, 1149, 1152, + 1150, 1153, 1146, 1145, 1146, 1150, 1155, 1146, 1151, 1151, + 1154, 1156, 1157, 1154, 1158, 1153, 1159, 1161, 1160, 1158, - 1162, 1160, 1156, 1163, 1165, 1165, 1168, 18, 1154, 1159, - 1155, 1162, 1161, 1166, 1158, 1167, 1169, 1172, 1166, 1170, - 1167, 1169, 1163, 1170, 1171, 1173, 1168, 1174, 1176, 1175, - 1177, 1179, 1172, 1171, 1180, 1178, 1181, 1177, 1182, 1184, - 1173, 1175, 1183, 1176, 1182, 1185, 1174, 1178, 1187, 1186, - 1179, 1188, 1189, 1190, 1181, 1180, 1191, 1183, 1186, 1184, - 1192, 1195, 1193, 1187, 1189, 1185, 1197, 1195, 1196, 1198, - 1188, 1199, 1190, 1200, 1201, 1192, 1202, 1198, 1204, 1201, - 1197, 1191, 1193, 1196, 1205, 1239, 1206, 1203, 1202, 1200, - 1209, 1199, 1203, 1203, 1207, 1207, 1239, 1204, 1205, 1206, + 1162, 1157, 1161, 1164, 1169, 1155, 1163, 1166, 1166, 1156, + 1160, 1167, 1172, 1168, 1162, 1159, 1167, 1163, 1168, 1171, + 1170, 1172, 1164, 1171, 1169, 1170, 1173, 1174, 1175, 1177, + 1178, 1176, 1180, 1179, 1181, 1182, 1185, 1178, 1186, 1184, + 1183, 1173, 1174, 1176, 1177, 1179, 1183, 1175, 1187, 1188, + 1189, 1180, 1192, 1182, 1184, 1181, 1185, 1187, 1186, 1190, + 1191, 1193, 1194, 1197, 1188, 1199, 1196, 1198, 1200, 1189, + 1201, 1190, 1196, 1199, 1205, 1202, 1193, 1192, 1197, 1191, + 1202, 1198, 1194, 1203, 1204, 1206, 1201, 1207, 1200, 1204, + 1204, 1208, 1208, 1205, 1210, 1203, 1211, 1212, 1216, 1206, - 1208, 1208, 1210, 1209, 1211, 1208, 1212, 1212, 1208, 1208, - 1211, 1210, 1213, 1208, 1215, 1214, 1216, 1213, 1219, 1208, - 1215, 1216, 1217, 1208, 1214, 1218, 1218, 1217, 1220, 1220, - 1221, 1222, 1223, 1221, 1224, 1221, 1225, 1226, 1227, 1219, - 1224, 1228, 1229, 1227, 1232, 1225, 1230, 1231, 1236, 1232, - 1223, 1222, 1230, 1231, 1233, 1228, 1234, 1226, 1233, 1235, - 1229, 1243, 1236, 1242, 1235, 1234, 1237, 1237, 1238, 1238, - 1234, 1238, 1234, 1241, 1234, 1244, 1234, 1241, 1242, 1243, - 1245, 1246, 1247, 1248, 1244, 1245, 1245, 1249, 1248, 1250, - 1246, 1251, 1252, 1253, 1254, 1255, 1255, 1256, 1250, 1257, + 1207, 1209, 1209, 1212, 1216, 1211, 1209, 1210, 1214, 1209, + 1209, 1213, 1213, 1214, 1209, 1220, 1215, 1217, 1218, 1223, + 1209, 1227, 1217, 1218, 1209, 1215, 1219, 1219, 1221, 1221, + 1222, 1224, 1225, 1222, 1226, 1222, 1220, 1228, 1225, 1223, + 1229, 1227, 1228, 1226, 1230, 1231, 1232, 1235, 1233, 1224, + 1257, 1231, 1232, 1233, 1229, 1234, 1235, 1237, 1257, 1234, + 1244, 1235, 1230, 1235, 1236, 1235, 1242, 1235, 1240, 1236, + 1242, 1237, 1238, 1238, 1239, 1239, 1243, 1239, 1244, 1240, + 1245, 1246, 1248, 1247, 1250, 1249, 1246, 1246, 1251, 1245, + 1249, 1243, 1247, 1252, 1253, 1254, 1255, 1251, 1250, 1256, - 1254, 1249, 1259, 1258, 1247, 1256, 1260, 1253, 1258, 1262, - 1251, 1252, 1261, 1257, 1263, 1260, 1259, 1264, 1266, 1261, - 1265, 1265, 1264, 1267, 1267, 1271, 1268, 1262, 1268, 1270, - 1271, 1272, 1270, 1266, 1273, 1274, 1274, 1275, 1279, 1263, - 1276, 1276, 1278, 1273, 1277, 1277, 1280, 1278, 1281, 1281, - 1272, 1282, 1283, 1284, 1285, 1286, 1284, 1275, 1287, 1279, - 1289, 1286, 1289, 1287, 1288, 1290, 1293, 1280, 1297, 1283, - 1295, 1282, 1292, 1288, 1285, 1292, 1297, 1294, 1301, 1301, - 1296, 1293, 1294, 1290, 1295, 1296, 1298, 1299, 1300, 1302, - 1299, 1298, 1303, 1300, 1302, 1304, 1305, 1310, 1306, 1308, + 1256, 1258, 1255, 1259, 1248, 1260, 1263, 1261, 1259, 1254, + 1262, 1264, 1252, 1253, 1267, 1258, 1261, 1262, 1265, 1260, + 1266, 1266, 1272, 1265, 1263, 1268, 1268, 1272, 1269, 1267, + 1269, 1271, 1273, 1274, 1271, 1276, 1264, 1275, 1275, 1277, + 1277, 1279, 1274, 1278, 1278, 1280, 1279, 1281, 1282, 1282, + 1283, 1273, 1284, 1285, 1286, 1276, 1285, 1287, 1289, 1288, + 1290, 1291, 1290, 1287, 1288, 1294, 1280, 1289, 1281, 1284, + 1283, 1295, 1293, 1296, 1286, 1293, 1295, 1297, 1298, 1291, + 1294, 1300, 1297, 1299, 1300, 1301, 1298, 1296, 1299, 1303, + 1301, 1302, 1302, 1304, 1303, 1305, 1306, 1307, 1309, 1310, - 1309, 1304, 1310, 1305, 1313, 1308, 1309, 1311, 1312, 1314, - 1303, 1306, 1316, 1311, 1315, 1315, 1318, 1312, 1319, 1321, - 1314, 1320, 1322, 1313, 1323, 1324, 1328, 1325, 1319, 1327, - 1323, 1324, 1316, 1325, 1318, 1327, 1320, 1329, 1330, 1321, - 1328, 1331, 1332, 1333, 1335, 1322, 1328, 1334, 1334, 1336, - 1337, 1339, 1339, 1331, 1338, 1340, 1332, 1329, 1330, 1338, - 1341, 1333, 1343, 17, 1335, 1341, 1344, 1345, 1337, 1347, - 1346, 1344, 1344, 1348, 1336, 1349, 1350, 1347, 1340, 1346, - 1353, 1343, 1353, 1354, 1351, 1345, 1352, 1348, 1361, 1351, - 1349, 1350, 1351, 1356, 1350, 1352, 1357, 1354, 1358, 1356, + 1312, 1305, 1311, 1306, 1309, 1310, 1312, 1311, 1313, 1314, + 1307, 1304, 1315, 1316, 1316, 1317, 1319, 1313, 1320, 1321, + 1323, 1319, 1322, 1315, 1324, 1325, 1326, 1327, 1314, 1321, + 1331, 1325, 1326, 1327, 1330, 1317, 1320, 1322, 1329, 1332, + 1323, 1333, 1334, 1335, 1329, 1336, 1336, 1324, 1330, 1337, + 1331, 1338, 1339, 1333, 1330, 1340, 1334, 1341, 1341, 1332, + 1340, 1335, 1342, 1343, 1345, 1348, 1346, 1349, 1343, 1337, + 1339, 1346, 1346, 1347, 1348, 1349, 1338, 52, 1350, 1351, + 1352, 1353, 1356, 1345, 1354, 1342, 1353, 1363, 1355, 1353, + 1355, 1347, 1350, 1354, 1351, 1352, 1356, 1358, 1352, 1360, - 1357, 1359, 1360, 1363, 1362, 1364, 1359, 1359, 1363, 1358, - 1364, 1365, 1366, 1367, 1361, 1368, 1370, 1376, 1367, 1371, - 1372, 1360, 1362, 1373, 1373, 1375, 1380, 1374, 1377, 1365, - 1370, 1374, 1366, 1378, 1377, 1368, 1376, 1371, 1372, 1379, - 1380, 1381, 1382, 1375, 1383, 1378, 1384, 1385, 1386, 1387, - 1388, 1384, 1392, 1386, 1385, 1390, 1381, 1382, 1379, 1388, - 1389, 1389, 1391, 1383, 1393, 1393, 1396, 1387, 1394, 1395, - 1390, 1391, 1392, 1398, 1394, 1395, 1397, 1397, 1399, 1398, - 1396, 1400, 1401, 1402, 1403, 1404, 1411, 1401, 1417, 1402, - 1403, 1404, 1405, 1405, 1399, 1406, 1406, 1408, 1408, 1409, + 1359, 1361, 1362, 1358, 1359, 1364, 1361, 1361, 1367, 1365, + 1360, 1366, 1368, 1363, 1365, 1369, 1366, 1370, 1373, 1372, + 1369, 1362, 1374, 1364, 1375, 1375, 1367, 1376, 1377, 1378, + 1380, 1376, 1368, 1372, 1381, 1379, 1373, 1370, 1382, 1383, + 1374, 1379, 1380, 1384, 1385, 1386, 1377, 1389, 1378, 1387, + 1386, 1394, 1382, 1381, 1383, 1388, 1387, 1390, 1384, 1392, + 1388, 1391, 1391, 1385, 1393, 1389, 1390, 1395, 1395, 1396, + 1397, 1394, 1398, 1393, 1392, 1396, 1397, 1399, 1399, 1400, + 1401, 1402, 1403, 1404, 1405, 1400, 1398, 1403, 1406, 1404, + 1405, 1407, 1407, 1413, 1406, 1412, 1401, 1408, 1408, 1410, - 1410, 1412, 1400, 1409, 1411, 1413, 1414, 1415, 1417, 1410, - 1416, 1416, 1418, 1412, 1415, 1420, 1421, 1419, 1422, 1413, - 1418, 1414, 1419, 1422, 1422, 1423, 1424, 1425, 1425, 1420, - 1423, 1423, 1426, 1427, 1428, 1421, 1429, 1430, 1431, 1432, - 1434, 1429, 1433, 1428, 1435, 1434, 1424, 1436, 1433, 1437, - 1438, 1426, 1427, 1439, 1440, 1437, 1430, 1432, 1431, 1439, - 1440, 1441, 1442, 1443, 1435, 1444, 1446, 1449, 1447, 1438, - 1449, 1445, 1450, 1436, 1448, 1448, 1451, 1452, 1453, 1453, - 1441, 1442, 1443, 1447, 1444, 1445, 1456, 1446, 1457, 1452, - 1456, 1450, 1454, 1454, 1455, 1451, 1458, 1459, 1460, 1455, + 1410, 1411, 1402, 1414, 1412, 1411, 1415, 1416, 1419, 1417, + 1420, 1413, 1418, 1418, 1421, 1414, 1417, 1422, 1420, 1421, + 1415, 1423, 1416, 1426, 1424, 1427, 1427, 1425, 1419, 1424, + 1424, 1422, 1425, 1425, 1428, 1429, 1430, 1431, 1432, 1433, + 1423, 1435, 1431, 1426, 1434, 1430, 1436, 1435, 1437, 1438, + 1439, 1436, 1440, 1428, 1429, 1441, 1439, 1432, 1442, 1433, + 1443, 1441, 1434, 1444, 1442, 1445, 1446, 1447, 1437, 1448, + 1452, 1440, 1449, 1450, 1450, 1438, 1453, 1451, 1457, 1443, + 1451, 1447, 1444, 1457, 1445, 1446, 1454, 1449, 1459, 1452, + 1448, 1455, 1455, 1456, 1456, 1453, 1458, 1460, 1454, 1461, - 1460, 1457, 1462, 1463, 1460, 1458, 1464, 1465, 1463, 1466, - 1459, 1467, 1467, 1468, 1470, 1471, 1469, 1460, 1468, 1472, - 1462, 1464, 1469, 1475, 1472, 1466, 1473, 1465, 1471, 1470, - 1473, 1474, 1476, 1477, 1478, 1474, 1480, 1480, 1479, 1482, - 1484, 1485, 1477, 1475, 1479, 1487, 1485, 1486, 1486, 1488, - 1476, 1487, 1490, 1490, 1478, 1492, 1494, 1482, 1492, 1493, - 1493, 1484, 1495, 1497, 1498, 1500, 1497, 1499, 1501, 1488, - 1502, 1502, 1494, 1504, 1500, 1503, 1505, 1506, 1495, 1507, - 1508, 1508, 1506, 1509, 1510, 1498, 1511, 1499, 1501, 1512, - 1503, 1513, 1509, 1507, 1504, 1505, 1514, 1514, 1515, 1516, + 1458, 1459, 1462, 1466, 1462, 1464, 1460, 1467, 1462, 1465, + 1468, 1473, 1461, 1471, 1465, 1469, 1469, 1470, 1466, 1471, + 1472, 1462, 1470, 1464, 1473, 1474, 1468, 1467, 1475, 1476, + 1474, 1477, 1475, 1476, 1478, 1472, 1479, 1480, 1481, 1482, + 1482, 1484, 1486, 1487, 1481, 1479, 1488, 1488, 1487, 1489, + 1490, 1477, 1478, 1492, 1492, 1489, 1496, 1480, 1494, 1484, + 1497, 1494, 1500, 1486, 1495, 1495, 1499, 1501, 1502, 1499, + 1490, 1503, 1496, 1504, 1504, 1505, 1497, 1502, 1506, 1507, + 1508, 1509, 1512, 1500, 1511, 1508, 1513, 1501, 1510, 1510, + 1505, 1503, 1514, 1511, 1515, 1509, 1516, 1516, 1507, 1506, - 1517, 1511, 1510, 1518, 1520, 1517, 1519, 1519, 1520, 1521, - 1523, 1513, 1515, 1524, 1512, 1522, 1522, 1516, 1518, 1525, - 1526, 1527, 1530, 1525, 1524, 1531, 1527, 1529, 1529, 1521, - 1531, 1532, 1523, 1533, 1534, 1530, 1535, 1537, 1536, 1526, - 1538, 1538, 1607, 1540, 1539, 1541, 1607, 1532, 1534, 1539, - 1543, 1533, 1536, 1542, 1542, 1535, 1535, 1545, 1546, 1543, - 1546, 1544, 1537, 1540, 1547, 1541, 1544, 1548, 1549, 1547, - 1550, 1552, 1554, 1548, 1553, 1553, 1550, 1545, 1555, 1558, - 1561, 1557, 1559, 1559, 1555, 1552, 1557, 1562, 1549, 1560, - 1560, 1554, 1563, 1564, 1561, 1566, 1564, 1565, 1565, 1567, + 1512, 1513, 1517, 1518, 1519, 1520, 1521, 1521, 1522, 1519, + 1523, 1525, 1522, 1526, 1515, 1528, 1517, 1514, 1524, 1524, + 1520, 1518, 1527, 1529, 1526, 1536, 1527, 1533, 1529, 1535, + 1523, 1531, 1531, 1525, 1528, 1532, 1534, 1537, 1532, 1538, + 1533, 1534, 1539, 1536, 1540, 1535, 1541, 1541, 1542, 47, + 1543, 1537, 1544, 1542, 1545, 1545, 1539, 1546, 1538, 1538, + 1547, 1548, 1549, 1550, 1549, 1547, 1546, 1551, 1550, 1540, + 1543, 1552, 1544, 1551, 1553, 1555, 1556, 1556, 1557, 1558, + 1553, 1548, 1560, 1561, 1564, 1558, 1565, 1560, 1566, 1555, + 1569, 1552, 1562, 1562, 1563, 1563, 1567, 1557, 1564, 1567, - 1568, 1576, 1570, 1558, 0, 1562, 1569, 1563, 1570, 1569, - 1571, 1567, 1569, 1566, 1572, 1571, 1574, 1572, 1575, 1577, - 1568, 1586, 1577, 1575, 1569, 1574, 1576, 1578, 1578, 1579, - 1580, 1588, 1581, 1572, 1586, 1579, 1580, 1581, 1582, 1582, - 1583, 1583, 1584, 1587, 1585, 1589, 1591, 1592, 1584, 1585, - 1588, 1590, 1591, 1592, 1590, 1593, 1594, 1595, 1596, 1598, - 1593, 1587, 1594, 1596, 1598, 1589, 1597, 1597, 1599, 1600, - 1601, 1602, 1606, 1603, 1604, 1605, 1608, 1609, 1608, 1611, - 1595, 1619, 1612, 1615, 1616, 1602, 1599, 1603, 1604, 1600, - 1601, 1611, 1613, 1605, 1612, 1614, 1609, 1606, 1617, 1618, + 1568, 1568, 1570, 1566, 1565, 1571, 1572, 1561, 1569, 1572, + 1573, 18, 1572, 1574, 1570, 1579, 1573, 1575, 1574, 1577, + 1575, 1578, 1581, 1581, 1572, 1571, 1578, 1580, 1577, 1582, + 1580, 1583, 1590, 1584, 1589, 1582, 1575, 1583, 1584, 1587, + 1579, 1585, 1585, 1586, 1586, 1587, 1588, 1589, 1591, 1592, + 1590, 1588, 1593, 1594, 1595, 1593, 1596, 1597, 1598, 1594, + 1595, 1596, 1602, 1597, 1603, 1599, 1604, 1591, 1601, 1592, + 1599, 1600, 1600, 1601, 1605, 1606, 1607, 1608, 1609, 1610, + 1602, 1598, 1612, 1610, 1603, 1611, 1604, 1611, 1605, 1606, + 1607, 1617, 1614, 1615, 1616, 1608, 1618, 1617, 1619, 1620, - 1616, 1614, 1619, 1615, 1622, 1613, 1621, 1621, 1624, 1623, - 1625, 1625, 1626, 1618, 1623, 1627, 1628, 1629, 1617, 1630, - 1624, 1631, 1633, 1632, 1622, 1634, 1638, 1626, 1630, 1627, - 1632, 1633, 1636, 1642, 1633, 1629, 1631, 1640, 1640, 1639, - 1628, 1634, 1639, 1641, 1641, 1642, 1643, 1636, 1645, 1645, - 1644, 1638, 1636, 1644, 1646, 1647, 1648, 1649, 1650, 1651, - 1649, 1648, 1653, 1650, 1643, 1652, 1654, 1646, 1655, 1657, - 1656, 1653, 1658, 1658, 1647, 1657, 1659, 1655, 1651, 1656, - 1655, 1652, 1660, 1661, 1662, 1654, 1663, 1664, 1666, 1665, - 1669, 1670, 1664, 1664, 1665, 1660, 1659, 1672, 1662, 1673, + 1622, 1612, 1625, 1609, 1614, 1615, 1621, 1616, 1624, 1624, + 1626, 1627, 1628, 1628, 1619, 1626, 1618, 1629, 1631, 1620, + 1621, 1622, 1625, 1627, 1630, 1632, 1633, 1635, 1636, 1634, + 1637, 1641, 1629, 1639, 1635, 1633, 1642, 1636, 1630, 1642, + 1636, 1646, 1631, 1632, 1634, 1645, 1637, 1650, 1639, 1643, + 1643, 1644, 1644, 1639, 1649, 1647, 1641, 1645, 1647, 1646, + 1648, 1648, 1652, 1651, 1653, 1652, 1650, 1649, 1651, 1653, + 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1661, 1662, + 1663, 1656, 1660, 1658, 1659, 1664, 1658, 1655, 1665, 1654, + 1666, 1667, 1657, 1663, 1672, 1668, 1667, 1667, 1669, 1662, - 1666, 1661, 1663, 1671, 1671, 1674, 1675, 1675, 1673, 1670, - 1674, 1676, 1677, 1672, 1678, 1669, 1679, 1677, 1680, 1681, - 1676, 1675, 1685, 1676, 1681, 1681, 1683, 1684, 1686, 1687, - 1688, 1696, 1678, 1686, 0, 1687, 1680, 1679, 1689, 1689, - 1683, 1690, 1684, 1692, 1685, 1691, 1693, 1690, 1688, 1694, - 1691, 1696, 1693, 1697, 1698, 1694, 1699, 1692, 1701, 1700, - 1698, 1705, 1700, 1703, 1701, 1706, 1707, 1697, 1700, 1699, - 1708, 1703, 1709, 1710, 1707, 1708, 1711, 1712, 1713, 1714, - 1705, 1709, 1715, 1715, 1706, 1711, 1710, 1718, 1716, 1717, - 1712, 1720, 1713, 1714, 1716, 1717, 1719, 1719, 1721, 1722, + 1668, 1675, 1665, 1664, 1673, 1676, 1666, 1674, 1674, 1679, + 1669, 1677, 1678, 1678, 1676, 1680, 1677, 1675, 1679, 1672, + 1680, 1679, 1673, 1681, 1682, 1683, 1684, 1678, 1686, 1687, + 1688, 1684, 1684, 1689, 1690, 1691, 1692, 1692, 1689, 1699, + 1690, 1681, 1686, 1683, 1687, 1682, 1694, 1695, 1693, 1696, + 1697, 1694, 1688, 1691, 1693, 1696, 1697, 1700, 1701, 1699, + 1702, 1695, 1704, 1703, 1701, 1708, 1703, 1706, 1704, 1709, + 1710, 1700, 1703, 1702, 1711, 1706, 1712, 1713, 1710, 1711, + 1714, 1715, 1716, 1717, 1708, 1712, 1718, 1718, 1709, 1714, + 1713, 1721, 1719, 1720, 1715, 1723, 1716, 1717, 1719, 1720, - 1718, 1723, 1723, 1725, 1715, 1726, 1724, 1727, 1728, 1725, - 1731, 1720, 1730, 1730, 1737, 1733, 1721, 1732, 1722, 1724, - 1733, 1732, 1736, 1727, 1734, 1739, 1728, 1726, 1735, 1734, - 1731, 1736, 1740, 1735, 1739, 1740, 1741, 1737, 1742, 1743, - 1743, 1744, 1745, 1746, 1747, 1747, 1750, 1748, 1741, 1749, - 1753, 1751, 1754, 1742, 1745, 1756, 1749, 1757, 1750, 1755, - 1744, 1748, 1746, 1751, 1758, 1755, 0, 1756, 1760, 1753, - 1758, 1760, 1754, 1759, 1759, 1757, 1761, 1761, 1763, 1764, - 1765, 1766, 1766, 1763, 1767, 1768, 1765, 1768, 1764, 1769, - 1770, 1771, 1769, 1772, 1773, 1774, 1767, 1775, 1776, 1778, + 1722, 1722, 1724, 1725, 1721, 1726, 1726, 1728, 1718, 1729, + 1727, 1730, 1731, 1728, 1734, 1723, 1733, 1733, 1740, 1736, + 1724, 1735, 1725, 1727, 1736, 1735, 1739, 1730, 1737, 1742, + 1731, 1729, 1738, 1737, 1734, 1739, 1743, 1738, 1745, 1744, + 1742, 1740, 1744, 1746, 1748, 1743, 1747, 1747, 1749, 1750, + 1745, 1751, 1751, 1752, 1753, 1757, 1758, 1754, 1746, 1755, + 1749, 1753, 1761, 1748, 1759, 1760, 1762, 1752, 1750, 1754, + 1759, 1755, 1762, 1772, 1757, 1772, 1758, 1760, 1763, 1763, + 1761, 1764, 1765, 1765, 1764, 1767, 1768, 1769, 1770, 1770, + 1767, 1771, 1774, 1769, 1773, 1768, 1775, 1773, 1776, 1777, - 1774, 1779, 1775, 1777, 1781, 1784, 1779, 1776, 1780, 0, - 1770, 1772, 1773, 1771, 1778, 1777, 1782, 1780, 1783, 1787, - 1784, 1782, 1789, 1783, 1781, 1785, 1785, 1786, 1782, 1790, - 1780, 1791, 1792, 1786, 1793, 1794, 1793, 1795, 1795, 1798, - 1787, 1789, 1796, 1796, 1797, 1797, 1801, 1791, 1790, 1794, - 1802, 1794, 1792, 1799, 1799, 1800, 1800, 1803, 1803, 1798, - 1804, 1809, 1805, 1806, 1804, 1811, 1806, 1801, 1805, 1808, - 1810, 1802, 1813, 1813, 1812, 1808, 1810, 1812, 1814, 1809, - 1815, 1816, 1816, 1818, 1817, 1815, 1819, 1820, 1820, 1821, - 1811, 1819, 1825, 1823, 1821, 1822, 1824, 1826, 1814, 1817, + 1778, 1779, 1780, 1771, 1783, 1778, 1779, 1781, 1782, 1783, + 1785, 1780, 1774, 1784, 1788, 1786, 1776, 1777, 1775, 1781, + 1786, 1787, 1784, 1782, 1789, 1789, 1787, 1786, 1790, 1788, + 1785, 1791, 1793, 1795, 1790, 1784, 1794, 1796, 1797, 1802, + 1797, 1805, 1798, 1799, 1799, 1800, 1800, 1801, 1801, 1795, + 1806, 1793, 1791, 1803, 1803, 1794, 1798, 1796, 1798, 1802, + 1804, 1804, 1805, 1807, 1807, 1808, 1809, 1810, 1812, 1808, + 1810, 1806, 1809, 1813, 1812, 1814, 1815, 1816, 1817, 1817, + 1816, 1814, 1818, 1819, 1820, 1820, 1822, 1823, 1819, 1821, + 1825, 1813, 1823, 1824, 1824, 1825, 1827, 1826, 1828, 1829, - 1828, 1822, 1827, 1832, 1818, 1823, 1823, 1823, 1827, 1830, - 1825, 1831, 1823, 1834, 1830, 1830, 1824, 1826, 1832, 1833, - 1828, 1833, 1835, 1836, 1834, 1831, 1837, 1838, 1839, 1836, - 1840, 1840, 1841, 1842, 1842, 1837, 1843, 1835, 1844, 1845, - 1845, 1846, 1846, 1847, 1850, 1850, 1851, 1838, 1852, 1839, - 1854, 1855, 1857, 1858, 1858, 1856, 1843, 1852, 1841, 1854, - 1844, 1856, 1859, 1847, 1860, 1862, 1861, 1863, 1857, 1864, - 1864, 1851, 1855, 1861, 1862, 1865, 1866, 1868, 1869, 1860, - 1870, 1871, 1868, 1859, 1869, 1872, 1875, 1873, 1871, 1873, - 1876, 1872, 1866, 1863, 1877, 1877, 1876, 1878, 1879, 1880, + 1830, 1815, 1818, 1826, 1821, 1831, 1832, 1822, 1827, 1827, + 1827, 1831, 1842, 1835, 1836, 1827, 1834, 1829, 1828, 1838, + 1830, 1834, 1834, 1837, 1839, 1837, 1832, 1835, 1840, 1836, + 1838, 1841, 1842, 1843, 1840, 1844, 1844, 1845, 1847, 1839, + 1841, 1846, 1846, 1848, 1849, 1849, 1850, 1850, 1851, 1854, + 1854, 1855, 1856, 1858, 1843, 1861, 1859, 1863, 1847, 1864, + 1860, 1856, 1858, 1845, 1866, 1848, 1860, 1867, 1851, 1862, + 1862, 1861, 1865, 1866, 1864, 1869, 1855, 1859, 1863, 1865, + 1868, 1868, 1870, 1872, 1873, 1874, 1876, 1875, 1872, 1877, + 1873, 1877, 1876, 1867, 1875, 1879, 1880, 1883, 1870, 1881, - 1870, 1865, 1878, 1881, 1882, 1875, 1883, 1879, 1884, 1883, - 1885, 1886, 1886, 1889, 1887, 1888, 1882, 1890, 1893, 1880, - 1887, 1888, 1881, 1891, 1894, 1895, 1884, 1891, 1896, 1896, - 1895, 1897, 1890, 1889, 1898, 1900, 1885, 1901, 1893, 1902, - 1902, 1901, 1903, 1891, 1904, 1907, 1894, 1909, 1903, 1898, - 1897, 1905, 1905, 1904, 1900, 1906, 1907, 1908, 1908, 1906, - 1910, 1907, 1911, 1913, 1912, 1914, 1915, 1917, 1909, 1912, - 1916, 1918, 1915, 1919, 1910, 1924, 1918, 1920, 1920, 1921, - 1921, 1911, 1917, 1913, 1924, 1914, 1919, 1922, 1916, 1925, - 1926, 1922, 1927, 1927, 1929, 1929, 1930, 1931, 1933, 1934, + 1881, 1869, 1880, 1882, 1884, 1874, 1883, 1885, 1882, 1886, + 1887, 1888, 1889, 1887, 1879, 1890, 1890, 1891, 1894, 1892, + 1893, 1886, 1897, 1891, 1884, 1892, 1885, 1895, 1898, 1888, + 1899, 1895, 1901, 1894, 1902, 1899, 1900, 1900, 1889, 1904, + 1893, 1905, 1897, 1906, 1906, 1905, 1907, 1895, 1908, 1902, + 1898, 1901, 1907, 1909, 1909, 1910, 1911, 1908, 1904, 1910, + 1912, 1912, 1913, 1914, 1916, 1915, 1917, 1911, 1918, 1916, + 1919, 1920, 1911, 1922, 1923, 1921, 1919, 1914, 1922, 1924, + 1924, 1925, 1925, 1913, 1915, 1928, 1917, 1923, 1918, 1920, + 1921, 1926, 1929, 1930, 1928, 1926, 1931, 1931, 1933, 1933, - 1925, 1930, 1930, 1931, 1933, 1925, 1935, 1936, 1937, 1939, - 1926, 1935, 1940, 1942, 1937, 1941, 1940, 1943, 1944, 1936, - 1945, 1939, 1946, 1943, 1947, 1934, 1945, 1941, 1948, 1952, - 1949, 1951, 1953, 1948, 1956, 1956, 1955, 1953, 1942, 1955, - 1944, 1946, 1949, 1951, 1947, 1957, 1957, 1959, 1952, 1958, - 1958, 1960, 1961, 1964, 1962, 1963, 1969, 1960, 1961, 1962, - 1966, 1963, 1964, 1968, 1972, 1966, 1968, 1959, 1969, 1970, - 1970, 1973, 1974, 1975, 1975, 1976, 1972, 1974, 1981, 1979, - 1977, 1978, 1979, 1973, 1976, 1977, 1978, 1980, 1980, 1983, - 1982, 1984, 1985, 1988, 1990, 1986, 1985, 1987, 1981, 1982, + 1934, 1935, 1938, 1929, 1937, 1934, 1934, 1935, 1929, 1939, + 1937, 1940, 1941, 1930, 1939, 1943, 1944, 1945, 1941, 1946, + 1944, 1948, 1951, 1940, 1947, 1949, 1952, 1943, 1938, 1945, + 1947, 1949, 1950, 1950, 1953, 1954, 1956, 1957, 17, 1953, + 1958, 1951, 1964, 1948, 1946, 1958, 1952, 1954, 1956, 1960, + 1961, 1961, 1960, 1962, 1962, 1965, 1957, 1963, 1963, 1966, + 1968, 1965, 1964, 1967, 1969, 1966, 1968, 1971, 1967, 1974, + 1977, 1973, 1971, 1969, 1973, 1975, 1975, 1978, 1979, 1980, + 1980, 1974, 1977, 1979, 1981, 1982, 1983, 1985, 1985, 1978, + 1982, 1983, 1984, 1981, 1986, 1984, 1987, 1988, 1989, 1990, - 1986, 1991, 1994, 1987, 1989, 1993, 1993, 1983, 1996, 1995, - 1984, 1988, 1990, 1989, 1998, 1991, 2000, 1993, 1995, 1999, - 1994, 1997, 1997, 1998, 2001, 2002, 2005, 2005, 1996, 2001, - 2007, 1999, 2008, 2007, 2009, 2012, 2011, 2000, 2002, 2013, - 2014, 2015, 2015, 2023, 2016, 2013, 2016, 2018, 2008, 2012, - 2009, 2011, 2017, 2017, 2027, 2018, 2024, 2014, 2020, 2020, - 2021, 2021, 2024, 2025, 2026, 2028, 2023, 2029, 2029, 2025, - 2030, 2026, 2031, 2034, 2032, 2033, 2027, 2035, 2036, 2030, - 2037, 2040, 2041, 2251, 2038, 2028, 2032, 2033, 2034, 2035, - 2038, 2043, 2043, 2031, 2042, 2037, 2044, 2045, 2048, 2046, + 1993, 1991, 1992, 1990, 1994, 1987, 1991, 1995, 1992, 1996, + 1998, 1998, 1999, 1994, 1986, 1988, 2001, 1989, 1993, 2000, + 2002, 2002, 1998, 1996, 2003, 1995, 2004, 2005, 2000, 2006, + 1999, 2007, 2012, 2003, 2006, 2012, 2001, 2013, 2004, 2010, + 2010, 2014, 2017, 2016, 2007, 2018, 2019, 2023, 2005, 2020, + 2020, 2018, 2021, 2013, 2021, 2023, 2017, 2014, 2016, 2022, + 2022, 2025, 2025, 2019, 2026, 2026, 2028, 2029, 2030, 2031, + 2032, 2033, 2035, 2029, 2030, 2036, 2031, 2034, 2034, 2041, + 2045, 2035, 2037, 2038, 2039, 2040, 2042, 2043, 2046, 2028, + 2047, 2033, 2032, 2043, 2037, 2038, 2036, 2040, 2049, 2039, - 2251, 2040, 2046, 2038, 2036, 2041, 2042, 2047, 2050, 2051, - 2052, 2051, 2047, 2050, 2044, 2053, 2054, 2045, 2048, 2058, - 2053, 2056, 2059, 2054, 2060, 2061, 2062, 2061, 2052, 2063, - 2056, 2059, 2065, 2066, 2065, 2063, 2060, 2058, 2067, 2067, - 2068, 2069, 2070, 2071, 2070, 2062, 2069, 2066, 2071, 2072, - 2073, 2074, 2075, 2078, 2072, 2076, 2077, 2079, 2075, 2080, - 2076, 2082, 2079, 2079, 2083, 2078, 2068, 2080, 2073, 2077, - 2086, 2074, 2084, 2084, 2085, 2085, 2087, 2088, 2083, 2089, - 2082, 2091, 2092, 2088, 2089, 2086, 2090, 0, 2090, 2094, - 2092, 2093, 2093, 2095, 2095, 2097, 2087, 2099, 2092, 2091, + 2045, 2042, 2047, 2048, 2048, 2041, 2043, 2050, 2052, 2051, + 2053, 2046, 2051, 2052, 2055, 2056, 2049, 2056, 2057, 2055, + 2058, 2059, 2061, 2063, 2064, 2058, 2065, 2050, 2059, 2067, + 2053, 2061, 2066, 2064, 2066, 2071, 2057, 2068, 2065, 2073, + 2070, 2063, 2070, 2068, 2072, 2072, 2074, 2079, 2067, 2071, + 2075, 2074, 2075, 2076, 2077, 2078, 2080, 2082, 2076, 2077, + 2083, 2081, 2080, 2084, 2087, 2073, 2081, 2079, 2084, 2084, + 2082, 2085, 2083, 2078, 2088, 2089, 2089, 2090, 2090, 2085, + 2091, 2092, 2094, 2087, 2093, 2096, 2097, 2094, 2088, 2095, + 2093, 2095, 2098, 2098, 2097, 2091, 2099, 2100, 2100, 2101, - 2098, 2094, 2096, 2096, 2097, 2098, 2102, 2101, 2102, 2103, - 2105, 2106, 2104, 2107, 2109, 2099, 2101, 2104, 2104, 2101, - 2106, 2113, 2105, 2110, 2111, 2107, 2109, 2114, 2110, 2111, - 2103, 2115, 2116, 2116, 2113, 2117, 2118, 2120, 2121, 2119, - 2115, 2122, 2130, 2123, 2127, 2125, 2126, 2114, 2123, 2136, - 2138, 2130, 2121, 2117, 2118, 2119, 2122, 2125, 2126, 2137, - 2128, 2129, 2120, 2133, 2127, 2128, 2129, 2135, 2138, 2133, - 2139, 2140, 2136, 2135, 2137, 2141, 2141, 2142, 2143, 2143, - 2140, 2144, 2133, 2145, 2146, 2147, 2142, 2145, 2148, 2146, - 2149, 2150, 2156, 2152, 2164, 2139, 2149, 2151, 2147, 2152, + 2101, 2092, 2097, 2096, 2102, 2103, 2104, 2106, 2099, 2107, + 2103, 2107, 2108, 2102, 2110, 2109, 2106, 2112, 2111, 2106, + 2109, 2109, 2114, 2115, 2104, 2116, 2110, 2111, 2115, 2112, + 2116, 2118, 2119, 2108, 2114, 2122, 2120, 2121, 2121, 2123, + 2124, 2125, 2128, 2127, 2118, 2120, 2126, 2128, 2132, 2130, + 2131, 2141, 2119, 2122, 2133, 2142, 2124, 2123, 2127, 2133, + 2126, 2130, 2131, 2135, 2134, 2138, 2125, 2140, 2132, 2134, + 2142, 2138, 2135, 2140, 2141, 2143, 2144, 2145, 2146, 2146, + 2147, 2148, 2148, 2149, 2138, 2151, 2145, 2150, 2154, 2147, + 2151, 2150, 2152, 2143, 2155, 2156, 2160, 0, 2157, 2160, - 2144, 2155, 2151, 2151, 2153, 2154, 2164, 2148, 2154, 2155, - 2153, 2161, 2156, 2150, 2159, 2159, 2160, 2160, 2162, 2162, - 2161, 2163, 2163, 2165, 2166, 2168, 2168, 2167, 2169, 2169, - 2166, 2160, 2167, 2170, 2171, 2173, 2174, 2176, 2170, 2173, - 2171, 2165, 2160, 2175, 2178, 2179, 2181, 2175, 2180, 2182, - 2179, 2184, 2183, 2185, 2182, 2186, 2174, 2176, 2187, 2190, - 2186, 2181, 2188, 2188, 2189, 2192, 2193, 2184, 2189, 2178, - 2183, 2180, 2191, 2185, 2190, 2194, 2195, 2191, 2196, 2197, - 2187, 2198, 2201, 2196, 2193, 2199, 2199, 2194, 2202, 2203, - 2201, 2192, 2197, 2204, 2205, 2195, 2206, 2208, 2207, 2198, + 2155, 2144, 2149, 2157, 2157, 2152, 2158, 2154, 2159, 2162, + 2161, 2180, 2158, 2167, 2159, 2165, 2165, 2156, 2161, 2166, + 2166, 2170, 2167, 2168, 2168, 2169, 2169, 2173, 2171, 2162, + 2172, 2180, 2173, 2170, 2166, 2177, 2172, 2174, 2174, 2175, + 2175, 2177, 2176, 2182, 2179, 2166, 2171, 2176, 2179, 2181, + 2184, 2185, 2187, 2181, 2186, 2188, 2185, 2190, 2189, 2191, + 2188, 2192, 2193, 2182, 2194, 2194, 2192, 2187, 2195, 2197, + 2196, 2198, 2195, 2190, 2197, 2184, 2189, 2186, 2199, 2191, + 2200, 2201, 2202, 2204, 2193, 2196, 2203, 2202, 2205, 2205, + 2207, 2208, 2200, 2209, 2210, 2211, 2199, 2198, 2207, 2203, - 2209, 2213, 2211, 2216, 2215, 2216, 2214, 2202, 2203, 2208, - 2215, 2217, 2217, 2273, 2213, 2206, 2204, 2211, 2205, 2207, - 2214, 2209, 2218, 2219, 2220, 2221, 2219, 2218, 2222, 2223, - 2223, 2224, 2224, 2225, 2227, 2225, 2273, 2220, 2228, 2221, - 2236, 2222, 2226, 2226, 2229, 2229, 2230, 2231, 2231, 2227, - 2237, 2228, 2232, 2232, 2233, 2230, 2235, 2238, 2230, 2233, - 2236, 2235, 2239, 2239, 2240, 2240, 2241, 2242, 2242, 2238, - 2237, 2243, 2244, 2244, 2246, 2245, 2247, 2247, 2249, 2246, - 2248, 2248, 2250, 2252, 2253, 2241, 2256, 2256, 2255, 2243, - 2245, 2250, 2249, 2255, 2257, 2258, 2258, 2252, 2259, 2260, + 2201, 2204, 2212, 2213, 2214, 2215, 2220, 2217, 2512, 2221, + 2208, 2222, 2209, 2222, 2219, 2221, 2214, 2210, 2224, 2211, + 2220, 2212, 2217, 2224, 2213, 2226, 2215, 2219, 2223, 2223, + 2225, 2227, 2512, 2225, 2228, 2229, 2229, 2233, 2226, 2230, + 2230, 2231, 2234, 2231, 2236, 2227, 2247, 2228, 2232, 2232, + 2235, 2235, 2233, 2236, 2242, 2234, 2236, 2237, 2237, 2238, + 2238, 2239, 2241, 2243, 2244, 2247, 2239, 2241, 2245, 2245, + 2246, 2246, 2248, 2248, 2242, 2249, 2244, 2250, 2250, 2251, + 2252, 2253, 2253, 2243, 2255, 2252, 2254, 2254, 2256, 2257, + 2258, 2259, 2263, 2249, 2251, 2261, 2265, 2256, 2255, 2266, - 2264, 2261, 2265, 2253, 2261, 2260, 2262, 2262, 2263, 2263, - 2266, 2268, 2266, 2257, 2269, 2272, 2259, 2265, 2277, 2264, - 2270, 2270, 2262, 2274, 2275, 2279, 2268, 2278, 2275, 2276, - 2276, 2280, 2278, 2269, 2283, 2272, 2284, 2277, 2274, 2285, - 2279, 2282, 2282, 2284, 2286, 2287, 2280, 2288, 2289, 2289, - 2290, 2296, 2295, 2285, 2283, 2291, 2296, 2291, 2292, 2290, - 2294, 2292, 2286, 2287, 2295, 2297, 2294, 2298, 2299, 2300, - 2297, 2302, 2301, 2288, 2304, 2305, 2292, 2301, 2292, 2304, - 2305, 2299, 2307, 2306, 2309, 2308, 2310, 2311, 2307, 2312, - 2300, 2308, 2298, 2311, 2312, 2313, 2314, 2302, 2306, 2315, + 2261, 2262, 2262, 2270, 2258, 2266, 2257, 2264, 2264, 2267, + 2259, 2263, 2267, 2271, 2265, 2268, 2268, 2269, 2269, 2272, + 2274, 2272, 2270, 2275, 2276, 2276, 2278, 2279, 2271, 2280, + 2281, 2268, 2282, 2282, 2281, 2274, 2283, 2285, 2284, 2286, + 2288, 2288, 2275, 2284, 2280, 2289, 2278, 2291, 2292, 2290, + 2279, 2293, 2285, 2294, 2286, 2283, 2290, 2295, 2295, 2296, + 2297, 2291, 2297, 2301, 2298, 2289, 2292, 2298, 2296, 2293, + 2300, 2304, 2302, 2303, 2305, 2301, 2300, 2302, 2303, 2294, + 2306, 2307, 2298, 2308, 2298, 2310, 2307, 2305, 2311, 2312, + 2310, 2313, 2314, 2311, 2315, 2316, 2304, 2313, 2314, 2317, - 2313, 2310, 2317, 2316, 2318, 2309, 2316, 2319, 2320, 2321, - 2326, 2317, 2315, 2318, 2322, 2324, 2319, 2320, 2323, 2324, - 2322, 2314, 2328, 2321, 2323, 2329, 2329, 2330, 2331, 2331, - 2326, 2328, 2332, 2330, 2333, 2333, 2335, 2331, 2334, 2337, - 2341, 2332, 2340, 2334, 2338, 2339, 2339, 2343, 2344, 2341, - 2345, 2346, 2350, 2352, 2352, 2337, 2335, 2340, 2335, 2343, - 2338, 2351, 2349, 2346, 2344, 2345, 2348, 2349, 0, 2348, - 2353, 2353, 2350, 2351, 2355, 2355, 2356, 2357, 2358, 2356, - 2359, 2360, 2357, 2362, 2358, 2365, 2359, 2361, 2361, 2364, - 2360, 2363, 2363, 2366, 2367, 2367, 2368, 2362, 2370, 2365, + 2320, 2306, 2318, 2319, 2312, 2317, 2321, 2318, 2319, 2308, + 2316, 2322, 2323, 2324, 2322, 2315, 2327, 2325, 2326, 2321, + 2330, 2323, 2324, 2328, 2330, 2320, 2325, 2326, 2329, 2328, + 2327, 2332, 2334, 2336, 2329, 2335, 2335, 2337, 2337, 2336, + 2338, 2334, 2339, 2339, 2341, 2340, 2337, 2343, 2347, 2338, + 2340, 2332, 2344, 2345, 2345, 2346, 2350, 2347, 2351, 2349, + 2355, 2356, 2352, 2343, 2341, 2355, 2341, 2357, 2344, 2499, + 2346, 2349, 2350, 2351, 2352, 2354, 2358, 2358, 2354, 2357, + 2499, 2356, 2359, 2359, 2361, 2361, 2362, 2363, 2364, 2362, + 2365, 2366, 2363, 2368, 2364, 2371, 2365, 2367, 2367, 2370, - 2369, 2364, 2368, 2370, 2372, 2378, 2373, 2376, 2372, 2373, - 2374, 2374, 2366, 2375, 2369, 2377, 2376, 2379, 2375, 2380, - 2380, 2379, 2381, 2383, 2377, 2378, 2384, 2385, 2383, 2386, - 2387, 2388, 2389, 2390, 2387, 2381, 2391, 2389, 2392, 2390, - 2393, 2394, 2391, 2386, 2395, 2396, 2384, 2385, 2399, 2395, - 2398, 2388, 2400, 2408, 2408, 2401, 2392, 2400, 2407, 2393, - 2394, 2401, 2398, 2402, 2399, 2403, 2396, 2403, 2405, 2410, - 2409, 2402, 2407, 2409, 2411, 2411, 2414, 2405, 2415, 2416, - 2414, 2417, 2417, 2418, 2415, 2421, 2421, 2423, 2425, 2429, - 2426, 2416, 2418, 2430, 2429, 2410, 2431, 2440, 2432, 2433, + 2366, 2369, 2369, 2372, 2373, 2373, 2374, 2368, 2376, 2371, + 2375, 2370, 2374, 2376, 2378, 2384, 2379, 2382, 2378, 2379, + 2380, 2380, 2372, 2381, 2375, 2383, 2382, 2385, 2381, 2386, + 2386, 2385, 2387, 2389, 2383, 2384, 2390, 2391, 2389, 2392, + 2393, 2394, 2395, 2396, 2393, 2387, 2397, 2395, 2398, 2396, + 2399, 2400, 2397, 2392, 2401, 2402, 2390, 2391, 2405, 2401, + 2404, 2394, 2406, 2414, 2414, 2407, 2398, 2406, 2413, 2399, + 2400, 2407, 2404, 2408, 2405, 2409, 2402, 2409, 2411, 2416, + 2415, 2408, 2413, 2415, 2417, 2417, 2420, 2411, 2421, 2422, + 2420, 2423, 2423, 2424, 2421, 2427, 2427, 2429, 2431, 2435, - 2434, 2434, 2425, 2432, 2433, 2423, 2426, 2436, 2436, 2438, - 2439, 2439, 2441, 2440, 2444, 2438, 2442, 2431, 2446, 2430, - 2445, 2442, 2450, 2445, 2447, 2448, 2448, 2452, 2453, 2451, - 2446, 2450, 2457, 2444, 2441, 2451, 2447, 2455, 2455, 2456, - 2458, 2463, 2456, 2453, 2464, 2452, 2460, 2460, 2461, 2461, - 2462, 2457, 2465, 2464, 2466, 2462, 2466, 2465, 2458, 2463, - 2467, 2468, 2470, 2471, 2469, 2472, 2473, 2470, 2474, 2474, - 2478, 2473, 2475, 2475, 2467, 2468, 2469, 2476, 2476, 2477, - 2477, 2479, 2478, 2471, 2480, 2472, 2481, 2481, 2483, 2480, - 2482, 2482, 2484, 2485, 2486, 2487, 2490, 2488, 2493, 2479, + 2432, 2422, 2424, 2436, 2435, 2416, 2437, 2446, 2438, 2439, + 2440, 2440, 2431, 2438, 2439, 2429, 2432, 2442, 2442, 2444, + 2445, 2445, 2447, 2446, 2450, 2444, 2448, 2437, 2452, 2436, + 2451, 2448, 2456, 2451, 2453, 2454, 2454, 2458, 2459, 2457, + 2452, 2456, 2463, 2450, 2447, 2457, 2453, 2461, 2461, 2462, + 2464, 2469, 2462, 2459, 2470, 2458, 2466, 2466, 2467, 2467, + 2468, 2463, 2471, 2470, 2472, 2468, 2472, 2471, 2464, 2469, + 2473, 2474, 2476, 2477, 2475, 2478, 2479, 2476, 2480, 2480, + 2484, 2479, 2481, 2481, 2473, 2474, 2475, 2482, 2482, 2483, + 2483, 2485, 2484, 2477, 2486, 2478, 2487, 2487, 2489, 2486, - 2483, 2489, 2489, 2491, 2491, 2485, 2492, 2492, 2494, 2493, - 2495, 2496, 2484, 2488, 2486, 2490, 2487, 2495, 2497, 2498, - 2494, 2499, 2500, 2496, 2498, 2501, 2501, 2502, 2503, 2504, - 2505, 2506, 2507, 2509, 2508, 2509, 2502, 2513, 2497, 2510, - 2516, 2499, 2500, 2505, 2511, 2511, 2507, 2514, 2512, 2504, - 2517, 2510, 2513, 2518, 2503, 2506, 2508, 2512, 2516, 2520, - 2519, 2521, 2514, 2519, 2522, 2530, 2521, 2523, 2523, 2522, - 2524, 2524, 2517, 2520, 2525, 2525, 2518, 2527, 2527, 2529, - 2529, 2531, 2532, 2530, 2533, 2535, 2536, 2537, 2538, 2539, - 2540, 2541, 2531, 2541, 2542, 2543, 2549, 2544, 2539, 2533, + 2488, 2488, 2490, 2491, 2492, 2493, 2496, 2494, 2500, 2485, + 2489, 2495, 2495, 2497, 2497, 2491, 2498, 2498, 2502, 2503, + 2500, 2501, 2490, 2494, 2492, 2496, 2493, 2504, 2501, 2505, + 2502, 2506, 2504, 2507, 2507, 2508, 2509, 2510, 2513, 2503, + 2511, 2514, 2516, 2515, 2508, 2515, 2517, 2517, 2522, 2505, + 2518, 2506, 2513, 2511, 2516, 2519, 2520, 2510, 2523, 2518, + 2524, 2525, 2509, 2514, 2525, 2526, 2522, 2527, 2528, 0, + 2519, 2520, 2527, 2528, 2529, 2529, 2530, 2530, 2536, 2526, + 2523, 2531, 2531, 2524, 2533, 2533, 2535, 2535, 2537, 2538, + 2539, 2541, 2542, 2543, 2544, 2545, 2536, 2546, 2547, 2537, - 0, 2532, 2545, 2545, 2536, 2535, 2547, 2547, 2538, 2537, - 2540, 2548, 2550, 2543, 2542, 2544, 2551, 2551, 2549, 2553, - 2555, 2550, 2554, 2554, 2556, 2548, 2557, 2559, 2553, 2558, - 2560, 2561, 2562, 2557, 2563, 2563, 2564, 2564, 2555, 2565, - 2566, 2573, 2556, 2567, 2558, 2559, 2571, 2561, 2560, 2567, - 2570, 2562, 2568, 2568, 2569, 2569, 2570, 2572, 2566, 2565, - 2573, 2574, 2575, 2576, 2571, 2577, 2578, 2575, 2579, 2584, - 2579, 2578, 2572, 2580, 2580, 2574, 2581, 2586, 2581, 2582, - 2582, 2587, 2588, 2576, 2589, 2577, 2586, 2590, 2584, 2592, - 2591, 2593, 2590, 2596, 2588, 2591, 2597, 2598, 2598, 2597, + 2547, 2548, 2549, 2555, 2545, 2539, 2550, 2556, 2538, 2554, + 2542, 2541, 2551, 2551, 2544, 2543, 2556, 2546, 2553, 2553, + 2549, 2548, 2559, 2554, 2550, 2555, 2557, 2557, 2560, 2560, + 2561, 2559, 2562, 2563, 2564, 2565, 2566, 2568, 2571, 2567, + 2563, 2569, 2569, 2570, 2570, 2572, 2573, 2577, 2561, 2564, + 2562, 2576, 2573, 2565, 2566, 2567, 2568, 2576, 2571, 2574, + 2574, 2575, 2575, 2572, 2578, 2577, 2579, 2580, 2581, 2582, + 2583, 2584, 2585, 2581, 2585, 2590, 2584, 2586, 2586, 2578, + 2587, 2580, 2587, 2588, 2588, 2579, 2592, 2593, 2594, 2582, + 2583, 2595, 2596, 2597, 2590, 2592, 2598, 2596, 2597, 2599, - 2587, 2599, 2600, 2602, 2589, 2601, 2601, 2603, 2604, 2592, - 2593, 2606, 2604, 2596, 2602, 2607, 2599, 2608, 2608, 2607, - 2600, 2609, 2603, 2611, 2612, 2613, 2606, 2614, 2614, 2616, - 2617, 2618, 2619, 2619, 2609, 2618, 2620, 2624, 2611, 2617, - 2623, 2616, 2621, 2621, 2612, 2613, 2622, 2625, 2626, 2623, - 2633, 2622, 2635, 2624, 2636, 2620, 2627, 2627, 0, 2625, - 2632, 2632, 2634, 2634, 2637, 2635, 2638, 2636, 2626, 2639, - 2640, 2640, 2633, 2637, 2641, 2638, 2642, 2647, 2639, 2644, - 2644, 2648, 2647, 2649, 2650, 2651, 2648, 2652, 2654, 2650, - 2653, 2642, 2656, 2651, 2641, 2657, 2654, 2649, 2658, 2653, + 2594, 2602, 2603, 2604, 2604, 2603, 2593, 2605, 2606, 2607, + 2607, 2595, 2608, 2609, 2612, 2610, 2598, 2617, 2599, 2610, + 2613, 2602, 2605, 2608, 2613, 2615, 2606, 2618, 2609, 2612, + 2614, 2614, 2617, 2619, 2620, 2620, 2622, 2623, 2615, 2624, + 2625, 2625, 2626, 2624, 2627, 2627, 2623, 2618, 2622, 2628, + 2629, 2630, 2631, 2619, 2628, 2632, 2633, 2633, 2639, 2629, + 2641, 2626, 2638, 2638, 2631, 2640, 2640, 2630, 2642, 2643, + 2644, 2646, 2646, 2641, 2645, 2632, 2647, 2648, 2643, 2644, + 2639, 2642, 2653, 2645, 2650, 2650, 2654, 2653, 2655, 2656, + 2657, 2654, 2648, 2658, 2656, 2659, 2647, 2660, 2657, 2662, - 2657, 2659, 2663, 2658, 2660, 2660, 2652, 2656, 2661, 2661, - 2662, 2664, 2664, 2665, 2666, 2662, 2659, 2667, 2668, 2666, - 2665, 2663, 2669, 2672, 2670, 2671, 2671, 2673, 2669, 2670, - 2674, 2674, 2673, 2675, 2675, 2667, 2668, 2678, 2672, 2679, - 2679, 2680, 2681, 2684, 2680, 2689, 2682, 2681, 2681, 2683, - 2678, 2682, 2685, 2688, 2683, 2686, 2687, 2684, 2685, 2686, - 2689, 2687, 2688, 2690, 2691, 2694, 2692, 2693, 2695, 2697, - 2694, 2690, 2692, 2693, 2698, 2699, 2697, 2701, 2699, 2698, - 2695, 2703, 2704, 2705, 2706, 2691, 2703, 2704, 2713, 2701, - 2707, 2708, 2709, 2709, 2710, 2718, 2714, 2706, 2715, 2707, + 2665, 2663, 2655, 2664, 2659, 2660, 2663, 2669, 2664, 2666, + 2666, 2673, 2658, 2668, 2662, 2665, 2667, 2667, 2668, 2670, + 2670, 2671, 2672, 2674, 2675, 2678, 2669, 2672, 2671, 2673, + 2675, 2676, 2677, 2677, 2679, 2684, 2676, 2680, 2680, 2679, + 2678, 2674, 2681, 2681, 2685, 2685, 2686, 2687, 2684, 2686, + 2688, 2689, 2687, 2687, 2690, 2688, 2689, 2691, 2692, 2693, + 2694, 2695, 2692, 2691, 2693, 2696, 2697, 2701, 2690, 2694, + 2700, 2698, 2699, 2696, 2703, 2700, 2695, 2698, 2699, 2701, + 2704, 2703, 2707, 2705, 2709, 2704, 2705, 2697, 2710, 2709, + 2711, 2712, 2713, 2710, 2707, 2719, 2714, 2715, 2715, 2724, - 2708, 2705, 2714, 2710, 2715, 2719, 2713, 2720, 2721, 2721, - 2722, 2723, 2724, 2725, 2718, 2726, 2726, 2722, 2727, 2729, - 2731, 2724, 2734, 2732, 2737, 2719, 2720, 2732, 2725, 2735, - 2723, 2733, 2733, 2736, 2729, 2735, 0, 2727, 2738, 2736, - 2731, 2740, 2737, 2741, 2738, 2739, 2739, 2734, 2741, 2740, - 2743, 2744, 2746, 2747, 2749, 2750, 2747, 2748, 2746, 2743, - 2753, 2748, 2752, 2752, 2744, 2754, 2754, 2763, 2749, 0, - 2750, 2755, 2755, 2757, 2757, 2758, 2759, 2765, 2753, 2758, - 2764, 2759, 2761, 2761, 2767, 2764, 2766, 2763, 2769, 2765, - 2775, 2766, 2766, 2770, 2770, 2779, 2767, 2772, 2772, 2773, + 2716, 2713, 2725, 0, 2712, 2714, 2720, 2726, 2711, 2716, + 2721, 2729, 2720, 2719, 2727, 2727, 2721, 2728, 2724, 2730, + 2731, 2733, 2725, 2735, 2728, 2737, 2726, 2740, 2730, 2738, + 2729, 2732, 2732, 2738, 0, 2731, 2739, 2739, 2735, 2743, + 2733, 2741, 2742, 2744, 0, 2737, 2746, 2741, 2742, 2744, + 2745, 2745, 2740, 2747, 2746, 2749, 2750, 2743, 2747, 2752, + 2753, 2755, 2754, 2753, 2749, 2752, 2754, 2756, 2759, 2750, + 2758, 2758, 2760, 2760, 2769, 2755, 2761, 2761, 2763, 2763, + 2764, 2771, 2756, 2765, 2764, 2775, 2759, 2770, 2765, 2767, + 2767, 2772, 2770, 2771, 2769, 2773, 2772, 2772, 2776, 2776, - 2773, 2774, 2776, 2775, 2774, 2778, 2778, 2781, 2769, 2782, - 2782, 2783, 2783, 2779, 2785, 2776, 2784, 2784, 2786, 2786, - 2787, 2788, 2789, 2799, 2790, 2791, 2791, 2781, 2792, 2785, - 2790, 2795, 2792, 2787, 2800, 2796, 2789, 2795, 2798, 2788, - 2796, 2801, 2802, 2798, 2798, 2803, 2799, 2804, 2802, 2805, - 2811, 2803, 2809, 2805, 2800, 2806, 2806, 2809, 2811, 2812, - 2814, 2801, 2812, 2815, 2816, 2816, 2815, 2821, 2818, 2817, - 2819, 2820, 2804, 2818, 2822, 2822, 2823, 2826, 2828, 2825, - 2830, 2821, 2869, 2828, 2828, 2814, 2817, 2817, 2819, 2824, - 2823, 2820, 2824, 2825, 2827, 2839, 2826, 2869, 2829, 2830, + 2778, 2778, 2779, 2779, 2781, 2775, 2780, 2773, 2782, 2780, + 2784, 2784, 2785, 2787, 2788, 2788, 2791, 2781, 2789, 2789, + 2794, 2782, 2790, 2790, 2792, 2792, 2793, 2795, 2796, 2805, + 2785, 2791, 2810, 2787, 2796, 2797, 2797, 2801, 2794, 2793, + 2798, 2795, 2802, 2801, 2798, 2804, 2806, 2802, 2807, 2808, + 2804, 2804, 2805, 2809, 2811, 2808, 2817, 2810, 2811, 2809, + 2812, 2812, 2815, 2820, 2817, 2823, 2806, 2815, 2807, 2818, + 2821, 2824, 2818, 2821, 2822, 2822, 2824, 2825, 2826, 2827, + 2828, 2828, 2823, 2823, 2832, 2829, 2830, 2831, 2820, 2830, + 2837, 2837, 2833, 2827, 2836, 2825, 2845, 2830, 2826, 2829, - 2824, 2836, 2827, 2829, 2829, 2831, 2831, 2832, 2832, 2833, - 2833, 2834, 2834, 2835, 2835, 2837, 2838, 2836, 2840, 2841, - 2837, 2839, 2842, 2840, 2843, 2844, 2845, 2842, 2847, 2847, - 2848, 2848, 2849, 2843, 2850, 2849, 2838, 2853, 2841, 2852, - 2852, 2854, 2854, 2855, 2853, 2844, 2845, 2858, 2855, 2857, - 2857, 2859, 2850, 2860, 2861, 2863, 2858, 2864, 2864, 2866, - 2859, 2865, 2860, 2861, 2867, 2865, 2868, 2871, 2866, 2870, - 2872, 2882, 2873, 2863, 2870, 2870, 2873, 2868, 2881, 2872, - 2871, 2877, 2883, 2867, 2878, 2878, 2877, 2880, 2880, 2885, - 2885, 2887, 2881, 2886, 2890, 2894, 2882, 2892, 2897, 2891, + 2833, 2831, 2834, 2832, 2835, 2838, 2838, 2834, 2834, 2835, + 2835, 2839, 2839, 2836, 2840, 2840, 2841, 2841, 2842, 2843, + 2844, 2846, 2845, 2847, 2843, 2848, 2846, 2849, 2850, 2851, + 2848, 2853, 2853, 2856, 2842, 2871, 2849, 2854, 2854, 2871, + 2844, 2855, 2847, 2859, 2855, 2858, 2858, 2869, 2850, 2851, + 2859, 2856, 2860, 2860, 2861, 2863, 2863, 2864, 2865, 2861, + 2866, 2867, 2870, 2870, 2872, 2869, 2864, 2865, 2873, 2866, + 2867, 2874, 2876, 2872, 2875, 2877, 2878, 2876, 2876, 2879, + 2887, 2883, 2874, 2879, 2888, 2878, 2883, 2873, 2877, 2875, + 2884, 2884, 2886, 2886, 2887, 2889, 2891, 2891, 2892, 2893, - 2883, 2895, 2886, 2887, 2891, 2899, 2892, 2895, 2901, 2902, - 2897, 2903, 2903, 2901, 2902, 2894, 2904, 2906, 2907, 2890, - 2908, 2914, 2906, 2909, 2909, 2904, 2899, 2909, 2911, 2911, - 2914, 2907, 2912, 2912, 2908, 2913, 2913, 2915, 2917, 2916, - 2919, 2923, 2920, 2917, 2921, 2925, 2919, 2920, 2924, 2921, - 2922, 2922, 2927, 2929, 2930, 2930, 2926, 2915, 2916, 2923, - 2924, 2926, 2928, 2932, 2933, 2936, 2925, 2932, 2928, 2933, - 2927, 2934, 2935, 2935, 2937, 2938, 2934, 2940, 2929, 2942, - 2942, 2944, 2945, 2946, 2936, 2948, 2949, 2946, 2950, 2937, - 2938, 2947, 2954, 2951, 2944, 2945, 2950, 2940, 2951, 2953, + 2896, 2897, 2900, 2898, 2901, 2903, 2897, 2892, 2905, 2888, + 2901, 2893, 2898, 2889, 2907, 2908, 2912, 2903, 2910, 2907, + 2908, 2912, 2900, 2909, 2909, 2896, 2913, 2910, 2914, 2905, + 2915, 2915, 2917, 2917, 2915, 2918, 2918, 2919, 2919, 2913, + 2920, 2921, 2914, 2922, 0, 2923, 2925, 2929, 2926, 2920, + 2923, 2927, 2925, 2926, 2928, 2928, 2927, 2930, 2931, 2932, + 2933, 2921, 2922, 2935, 2932, 2929, 2934, 2936, 2936, 2930, + 2938, 2939, 2934, 2942, 2938, 2940, 2939, 2946, 2933, 2931, + 2940, 2941, 2941, 2943, 2944, 2948, 2948, 2950, 2935, 2951, + 2952, 2954, 2942, 2955, 2952, 2953, 2960, 2946, 2943, 2944, - 2947, 2948, 2952, 2952, 2955, 2949, 2956, 2956, 2953, 2957, - 2954, 2960, 2960, 2961, 2961, 2963, 2965, 2965, 2967, 2968, - 2969, 2970, 2971, 2973, 2973, 2969, 2974, 2971, 2957, 2975, - 2955, 2977, 2978, 2976, 2967, 2968, 2963, 2970, 2975, 2976, - 2980, 2980, 2981, 2982, 2983, 2983, 2974, 2986, 2988, 2987, - 2990, 2978, 3000, 2988, 2977, 2987, 2981, 2991, 2991, 2992, - 2992, 2993, 2982, 2994, 2995, 2995, 2996, 2986, 2998, 2997, - 3001, 3000, 2990, 2999, 3002, 3004, 2993, 2996, 2997, 2999, - 3003, 3003, 3001, 2994, 2995, 3012, 3005, 3011, 2998, 3005, - 3004, 3017, 3006, 0, 3002, 3006, 3007, 3007, 3013, 3011, + 2950, 2956, 2951, 2957, 2953, 2958, 2958, 2954, 2957, 2956, + 2959, 2961, 2955, 2963, 2960, 2962, 2962, 2966, 2966, 2959, + 2967, 2967, 2969, 2971, 2971, 2973, 2974, 2980, 2975, 2976, + 2977, 2981, 2963, 2975, 2983, 2977, 2984, 2961, 2979, 2979, + 2981, 2973, 2974, 2969, 2982, 2976, 2987, 2980, 2986, 2986, + 2982, 2988, 2989, 2989, 2992, 2984, 2993, 2983, 2994, 2996, + 2987, 2999, 2993, 2994, 2997, 2997, 2998, 2998, 3000, 3002, + 2988, 3001, 3001, 3003, 2992, 3004, 2999, 3005, 3006, 3008, + 3002, 2996, 3003, 3005, 3007, 3009, 3009, 3010, 3000, 3011, + 3012, 3001, 3011, 3012, 3017, 3004, 3007, 3006, 3018, 3008, - 3014, 3014, 3016, 3015, 3013, 3012, 3015, 3019, 3016, 3017, - 3020, 3020, 3019, 3021, 3022, 3023, 3027, 3024, 3021, 3025, - 3025, 3023, 3028, 3029, 3030, 3031, 3031, 3032, 3027, 3033, - 3034, 3036, 3036, 3022, 3024, 3024, 3039, 3030, 3038, 3034, - 3028, 3037, 3037, 3038, 3040, 3033, 3032, 3044, 3029, 3040, - 3039, 3041, 3041, 3042, 3042, 3043, 3043, 3045, 3046, 3052, - 3044, 3047, 3049, 3049, 3046, 3054, 3047, 3055, 3057, 3056, - 3058, 3058, 3060, 3060, 3061, 3062, 3064, 3063, 3052, 3066, - 3066, 3067, 3067, 3045, 3065, 3070, 3069, 3054, 3056, 3055, - 3057, 3063, 3069, 3065, 3062, 3071, 3064, 3072, 3075, 3082, + 3013, 3013, 3010, 3019, 3020, 3020, 3017, 3021, 3022, 3019, + 3021, 3023, 3025, 3028, 3022, 3026, 3026, 3025, 3018, 3027, + 3029, 3030, 3031, 3031, 3027, 3033, 3029, 3034, 3035, 3023, + 3036, 3038, 3028, 3037, 3037, 3039, 0, 3033, 3030, 3030, + 3040, 3042, 3042, 3036, 3045, 3034, 3043, 3043, 3051, 3040, + 3038, 3039, 3044, 3035, 3046, 3047, 3047, 3044, 3045, 3046, + 3048, 3048, 3049, 3049, 3050, 3052, 3058, 3053, 3055, 3055, + 3060, 3052, 3053, 3061, 3051, 3062, 3063, 3050, 3064, 3064, + 3066, 3066, 3067, 3068, 3070, 3058, 3069, 3071, 3072, 3072, + 3073, 3073, 3060, 3075, 3062, 3061, 3071, 3076, 3063, 3075, - 3061, 3080, 3072, 3076, 3076, 3070, 3078, 3078, 3079, 3083, - 3081, 3082, 3089, 3079, 3071, 3080, 3081, 3083, 3085, 3075, - 3084, 3084, 3087, 3085, 3088, 3090, 3087, 3092, 3091, 3088, - 3093, 3096, 3089, 3091, 3095, 3097, 3093, 3098, 3100, 3092, - 3107, 0, 3095, 3101, 3102, 3090, 3103, 3104, 3106, 3109, - 3096, 3111, 3104, 3106, 3109, 3097, 3100, 3098, 3108, 3101, - 3107, 3102, 3102, 3112, 3108, 3113, 3112, 3103, 3116, 3116, - 3118, 3111, 3117, 3117, 3118, 3122, 3122, 3123, 3113, 3124, - 3125, 3125, 3123, 3127, 3127, 3128, 3128, 3132, 3128, 3129, - 3129, 3132, 3129, 3130, 3130, 3134, 3131, 3131, 3124, 3131, + 3069, 3077, 3068, 3081, 3070, 3078, 3082, 3082, 3067, 3085, + 3078, 3084, 3084, 3086, 3085, 3087, 3088, 3076, 3089, 3095, + 3077, 3087, 3090, 3090, 3081, 3091, 3089, 3086, 3088, 3093, + 3091, 3094, 3096, 3093, 3098, 3097, 3094, 3099, 3102, 3095, + 3097, 3101, 3103, 3099, 3104, 3106, 3098, 3113, 0, 3101, + 3107, 3108, 3096, 3109, 3110, 3112, 3115, 3102, 3117, 3110, + 3112, 3115, 3103, 3106, 3104, 3114, 3107, 3113, 3108, 3108, + 3118, 3114, 3119, 3118, 3109, 3122, 3122, 3124, 3117, 3123, + 3123, 3124, 3128, 3128, 3129, 3119, 3130, 3131, 3131, 3129, + 3133, 3133, 3134, 3134, 3138, 3134, 3135, 3135, 3138, 3135, - 3134, 3135, 3136, 3136, 3137, 3138, 3141, 3142, 3143, 3145, - 3135, 3144, 3144, 3143, 3148, 3151, 3149, 3150, 3152, 3138, - 3154, 3150, 3137, 3149, 3151, 3155, 3141, 3142, 3157, 3145, - 3155, 3156, 3156, 3152, 3158, 3158, 3161, 3157, 3154, 3148, - 3159, 3159, 3160, 3160, 3162, 3163, 3166, 3164, 3167, 3162, - 3165, 3161, 3164, 3164, 3163, 3168, 3165, 3163, 3171, 3169, - 3170, 3172, 3172, 3167, 3169, 3170, 3173, 3174, 3175, 3175, - 3177, 3166, 3173, 3174, 3176, 3176, 3168, 3171, 3178, 3181, - 3181, 3183, 3183, 3178, 3184, 3177, 3187, 3187, 3188, 3188, - 3189, 3189, 3196, 3184, 3190, 3190, 3192, 3192, 3193, 3193, + 3136, 3136, 3140, 3137, 3137, 3130, 3137, 3140, 3141, 3142, + 3142, 3143, 3144, 3147, 3148, 3149, 3151, 3141, 3150, 3150, + 3149, 3154, 3157, 3155, 3156, 3158, 3144, 3160, 3156, 3143, + 3155, 3157, 3161, 3147, 3148, 3163, 3151, 3161, 3162, 3162, + 3158, 3164, 3164, 3167, 3163, 3160, 3154, 3165, 3165, 3166, + 3166, 3168, 3169, 3172, 3170, 3173, 3168, 3171, 3167, 3170, + 3170, 3169, 3174, 3171, 3169, 3177, 3175, 3176, 3178, 3178, + 3173, 3175, 3176, 3179, 3180, 3181, 3181, 3183, 3172, 3179, + 3180, 3182, 3182, 3174, 3177, 3184, 3187, 3187, 3189, 3189, + 3184, 3190, 3183, 3193, 3193, 3194, 3194, 3195, 3195, 3202, - 3194, 3194, 3195, 3195, 3198, 3199, 3199, 3200, 3201, 3202, - 3204, 3204, 3205, 3198, 3206, 3206, 3200, 3207, 3196, 3219, - 3201, 3208, 3213, 3209, 3210, 3210, 3211, 3211, 3217, 3202, - 3218, 3205, 3207, 3218, 3208, 3209, 3221, 3213, 3214, 3214, - 3220, 3220, 3224, 3225, 3223, 3219, 3217, 3223, 3224, 3227, - 3226, 3228, 3231, 3232, 3221, 3226, 3229, 3225, 3231, 3235, - 3236, 3239, 3232, 3235, 3249, 3248, 3251, 3249, 3227, 3228, - 3248, 3257, 3229, 3252, 3252, 3236, 3253, 3253, 3260, 3251, - 3255, 3255, 3258, 3262, 3259, 3264, 3271, 3239, 3259, 3265, - 3266, 3258, 3268, 3270, 3257, 3266, 3272, 3262, 3260, 3267, + 3190, 3196, 3196, 3198, 3198, 3199, 3199, 3200, 3200, 3201, + 3201, 3204, 3205, 3205, 3206, 3207, 3208, 3210, 3210, 3211, + 3204, 3212, 3212, 3206, 3213, 3202, 3225, 3207, 3214, 3219, + 3215, 3216, 3216, 3217, 3217, 3223, 3208, 3224, 3211, 3213, + 3224, 3214, 3215, 3227, 3219, 3220, 3220, 3226, 3226, 3230, + 3231, 3229, 3225, 3223, 3229, 3230, 3233, 3232, 3234, 3237, + 3238, 3227, 3232, 3235, 3231, 3237, 3241, 3242, 3245, 3238, + 3241, 3255, 3254, 3257, 3255, 3233, 3234, 3254, 3263, 3235, + 3258, 3258, 3242, 3259, 3259, 3266, 3257, 3261, 3261, 3264, + 3268, 3265, 3270, 3277, 3245, 3265, 3271, 3272, 3264, 3274, - 3265, 3267, 3269, 3269, 3273, 3271, 3270, 3268, 3264, 3274, - 3275, 3277, 3276, 3278, 3272, 3279, 3287, 3280, 3278, 3282, - 3273, 3276, 3280, 3277, 3283, 3275, 3281, 3281, 3288, 3283, - 3287, 3289, 3289, 3290, 3274, 3295, 3279, 3291, 3291, 3282, - 3292, 3292, 3290, 3293, 3293, 3294, 3294, 3296, 3288, 3297, - 3298, 3299, 3297, 3300, 3295, 3298, 3299, 3301, 3302, 3303, - 3305, 3307, 3304, 3312, 3302, 3305, 3317, 3296, 3306, 3306, - 3308, 3308, 3301, 3303, 3304, 3310, 3310, 3311, 3300, 3313, - 3313, 3307, 3312, 3315, 3317, 3320, 3320, 3321, 3321, 3322, - 3323, 3326, 3311, 3324, 3325, 3327, 3328, 3322, 3315, 3324, + 3276, 3263, 3272, 3278, 3268, 3266, 3273, 3271, 3273, 3275, + 3275, 3279, 3277, 3276, 3274, 3270, 3280, 3281, 3283, 3282, + 3284, 3278, 3285, 3293, 3286, 3284, 3288, 3279, 3282, 3286, + 3283, 3289, 3281, 3287, 3287, 3294, 3289, 3293, 3295, 3295, + 3296, 3280, 3301, 3285, 3297, 3297, 3288, 3298, 3298, 3296, + 3299, 3299, 3300, 3300, 3302, 3294, 3303, 3304, 3305, 3303, + 3306, 3301, 3304, 3305, 3307, 3308, 3309, 3311, 3313, 3310, + 3318, 3308, 3311, 3323, 3302, 3312, 3312, 3314, 3314, 3307, + 3309, 3310, 3316, 3316, 3317, 3306, 3319, 3319, 3313, 3318, + 3321, 3323, 3326, 3326, 3327, 3327, 3328, 3329, 3332, 3317, - 3325, 3329, 3330, 3330, 3335, 3326, 3329, 3336, 3327, 3323, - 3332, 3332, 3338, 3339, 3341, 3328, 3342, 3339, 3343, 3344, - 3345, 3342, 3346, 3347, 3348, 3335, 3338, 3336, 3347, 3348, - 3349, 3349, 3344, 3345, 3341, 3352, 3353, 3343, 3354, 3355, - 3355, 3346, 3356, 3357, 3358, 3358, 3359, 3356, 3360, 3357, - 3362, 3359, 3363, 3360, 3353, 3352, 3361, 3354, 3363, 3365, - 3365, 3361, 3366, 3367, 3367, 3370, 3369, 3366, 3371, 3362, - 3369, 3372, 3373, 3374, 3375, 3371, 3376, 3378, 3378, 3374, - 3380, 3380, 3382, 3381, 3370, 3383, 3384, 3382, 3385, 3376, - 3372, 3373, 3381, 3375, 3387, 3381, 3386, 3386, 3388, 3387, + 3330, 3331, 3333, 3334, 3328, 3321, 3330, 3331, 3335, 3336, + 3336, 3341, 3332, 3335, 3342, 3333, 3329, 3338, 3338, 3344, + 3345, 3347, 3334, 3348, 3345, 3349, 3350, 3351, 3348, 3352, + 3353, 3354, 3341, 3344, 3342, 3353, 3354, 3355, 3355, 3350, + 3351, 3347, 3358, 3359, 3349, 3360, 3361, 3361, 3352, 3362, + 3363, 3364, 3364, 3365, 3362, 3366, 3363, 3368, 3365, 3369, + 3366, 3359, 3358, 3367, 3360, 3369, 3371, 3371, 3367, 3372, + 3373, 3373, 3376, 3375, 3372, 3377, 3368, 3375, 3378, 3379, + 3380, 3381, 3377, 3382, 3384, 3384, 3380, 3386, 3386, 3388, + 3387, 3376, 3389, 3390, 3388, 3391, 3382, 3378, 3379, 3387, - 3390, 3385, 3391, 3391, 3383, 3384, 3392, 3393, 3393, 3394, - 3394, 3388, 3395, 3396, 3397, 3398, 3398, 3395, 3399, 3400, - 3396, 3400, 3402, 3399, 3403, 3392, 3390, 3401, 3401, 3402, - 3404, 3403, 3405, 3397, 3406, 3408, 3408, 3405, 3409, 3411, - 3412, 3413, 3414, 3418, 3411, 3412, 3415, 3415, 3419, 3404, - 3417, 3417, 0, 3406, 3420, 3420, 3422, 3409, 3421, 3421, - 3413, 3414, 3418, 3422, 3424, 3424, 3426, 3419, 3425, 3425, - 3428, 3431, 3432, 3426, 3433, 3428, 3431, 3434, 3434, 3435, - 3435, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3432, 0, 3433, 3439, 3439, 3439, 3439, 3439, 3439, + 3381, 3393, 3387, 3392, 3392, 3394, 3393, 3396, 3391, 3397, + 3397, 3389, 3390, 3398, 3399, 3399, 3400, 3400, 3394, 3401, + 3402, 3403, 3404, 3404, 3401, 3405, 3406, 3402, 3406, 3408, + 3405, 3409, 3398, 3396, 3407, 3407, 3408, 3410, 3409, 3411, + 3403, 3412, 3414, 3414, 3411, 3415, 3417, 3418, 3419, 3420, + 3424, 3417, 3418, 3421, 3421, 3425, 3410, 3423, 3423, 0, + 3412, 3426, 3426, 3428, 3415, 3427, 3427, 3419, 3420, 3424, + 3428, 3430, 3430, 3432, 3425, 3431, 3431, 3434, 3437, 3438, + 3432, 3439, 3434, 3437, 3440, 3440, 3441, 3441, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3438, 0, - 3439, 3440, 3440, 3440, 3440, 3440, 3440, 3440, 3441, 3441, - 3441, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442, 3442, - 3442, 3442, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3445, 3445, 3445, 3445, - 3445, 3445, 3445, 3447, 3447, 0, 3447, 3447, 3447, 3447, - 3448, 3448, 0, 0, 0, 3448, 3448, 3449, 3449, 0, - 0, 3449, 0, 3449, 3450, 0, 0, 0, 0, 0, - 3450, 3451, 3451, 0, 0, 0, 3451, 3451, 3452, 0, - 0, 0, 0, 0, 3452, 3453, 3453, 0, 3453, 3453, - 3453, 3453, 3454, 0, 0, 0, 0, 0, 3454, 3455, + 3439, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446, 3446, + 3446, 3446, 3446, 3446, 3446, 3447, 3447, 3447, 3447, 3447, + 3447, 3447, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3449, + 3449, 3449, 3449, 3449, 3449, 3449, 3450, 3450, 3450, 3450, + 3450, 3450, 3450, 3451, 3451, 3451, 3451, 3451, 3451, 3451, + 3453, 3453, 0, 3453, 3453, 3453, 3453, 3454, 3454, 0, + 0, 0, 3454, 3454, 3455, 3455, 0, 0, 3455, 0, + 3455, 3456, 0, 0, 0, 0, 0, 3456, 3457, 3457, + 0, 0, 0, 3457, 3457, 3458, 0, 0, 0, 0, + 0, 3458, 3459, 3459, 0, 3459, 3459, 3459, 3459, 3460, - 3455, 0, 0, 0, 3455, 3455, 3456, 3456, 0, 3456, - 3456, 3456, 3456, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, - 3438, 3438, 3438, 3438 + 0, 0, 0, 0, 0, 3460, 3461, 3461, 0, 0, + 0, 3461, 3461, 3462, 3462, 0, 3462, 3462, 3462, 3462, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, + 3444 } ; static yy_state_type yy_last_accepting_state; @@ -3250,7 +3255,7 @@ static void config_end_include(void) } #endif -#line 3251 "" +#line 3256 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3259,9 +3264,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3260 "" +#line 3265 "" -#line 3262 "" +#line 3267 "" #define INITIAL 0 #define quotedstring 1 @@ -3485,7 +3490,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3486 "" +#line 3491 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3518,13 +3523,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 >= 3439 ) + if ( yy_current_state >= 3445 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6714 ); + while ( yy_base[yy_current_state] != 6721 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4515,435 +4520,435 @@ YY_RULE_SETUP case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +{ YDVAR(1, VAR_ZONEMD_CHECK) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 250: YY_RULE_SETUP #line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 251: YY_RULE_SETUP #line 466 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 252: YY_RULE_SETUP #line 467 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 253: YY_RULE_SETUP -#line 469 "./util/configlexer.lex" +#line 468 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 254: YY_RULE_SETUP -#line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 470 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 255: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 256: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 257: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 258: YY_RULE_SETUP #line 475 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 259: YY_RULE_SETUP -#line 477 "./util/configlexer.lex" +#line 476 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 260: YY_RULE_SETUP -#line 479 "./util/configlexer.lex" +#line 478 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 261: YY_RULE_SETUP -#line 481 "./util/configlexer.lex" +#line 480 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 262: YY_RULE_SETUP -#line 483 "./util/configlexer.lex" +#line 482 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP -#line 485 "./util/configlexer.lex" +#line 484 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 264: YY_RULE_SETUP -#line 487 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 486 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 265: YY_RULE_SETUP #line 488 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 278: YY_RULE_SETUP @@ -4958,119 +4963,119 @@ YY_RULE_SETUP case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 288: YY_RULE_SETUP #line 511 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 289: YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 290: YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 291: YY_RULE_SETUP -#line 515 "./util/configlexer.lex" +#line 514 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 292: YY_RULE_SETUP -#line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 516 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 293: YY_RULE_SETUP #line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 303: YY_RULE_SETUP @@ -5080,118 +5085,123 @@ YY_RULE_SETUP case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 317: YY_RULE_SETUP #line 542 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 318: YY_RULE_SETUP #line 543 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } YY_BREAK case 319: YY_RULE_SETUP #line 544 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } YY_BREAK case 320: -/* rule 320 can match eol */ YY_RULE_SETUP #line 545 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 321: +/* rule 321 can match eol */ +YY_RULE_SETUP +#line 546 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 321: +case 322: YY_RULE_SETUP -#line 548 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 549 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 322: -YY_RULE_SETUP -#line 554 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 323: -/* rule 323 can match eol */ YY_RULE_SETUP #line 555 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 324: +/* rule 324 can match eol */ +YY_RULE_SETUP +#line 556 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 324: +case 325: YY_RULE_SETUP -#line 557 "./util/configlexer.lex" +#line 558 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5204,34 +5214,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 325: +case 326: YY_RULE_SETUP -#line 569 "./util/configlexer.lex" +#line 570 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 570 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 326: -YY_RULE_SETUP -#line 575 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 327: -/* rule 327 can match eol */ YY_RULE_SETUP #line 576 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 328: +/* rule 328 can match eol */ +YY_RULE_SETUP +#line 577 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 328: +case 329: YY_RULE_SETUP -#line 578 "./util/configlexer.lex" +#line 579 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5244,38 +5254,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 329: +case 330: YY_RULE_SETUP -#line 590 "./util/configlexer.lex" +#line 591 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 592 "./util/configlexer.lex" +#line 593 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 330: -YY_RULE_SETUP -#line 596 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 331: -/* rule 331 can match eol */ YY_RULE_SETUP #line 597 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 332: +/* rule 332 can match eol */ YY_RULE_SETUP #line 598 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 333: YY_RULE_SETUP #line 599 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 334: +YY_RULE_SETUP +#line 600 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5283,27 +5293,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 604 "./util/configlexer.lex" +#line 605 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 334: -YY_RULE_SETUP -#line 608 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 335: -/* rule 335 can match eol */ YY_RULE_SETUP #line 609 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 336: +/* rule 336 can match eol */ +YY_RULE_SETUP +#line 610 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 336: +case 337: YY_RULE_SETUP -#line 611 "./util/configlexer.lex" +#line 612 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5313,7 +5323,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 617 "./util/configlexer.lex" +#line 618 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5328,39 +5338,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 337: +case 338: YY_RULE_SETUP -#line 631 "./util/configlexer.lex" +#line 632 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 634 "./util/configlexer.lex" +#line 635 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 338: -YY_RULE_SETUP -#line 638 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK case 339: -/* rule 339 can match eol */ YY_RULE_SETUP #line 639 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 340: +/* rule 340 can match eol */ YY_RULE_SETUP #line 640 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK case 341: YY_RULE_SETUP #line 641 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 342: +YY_RULE_SETUP +#line 642 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5369,29 +5379,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 647 "./util/configlexer.lex" +#line 648 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 342: -YY_RULE_SETUP -#line 651 "./util/configlexer.lex" -{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } - YY_BREAK case 343: -/* rule 343 can match eol */ YY_RULE_SETUP #line 652 "./util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 344: +/* rule 344 can match eol */ +YY_RULE_SETUP +#line 653 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 344: +case 345: YY_RULE_SETUP -#line 656 "./util/configlexer.lex" +#line 657 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5400,33 +5410,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 345: +case 346: YY_RULE_SETUP -#line 664 "./util/configlexer.lex" +#line 665 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 346: +case 347: YY_RULE_SETUP -#line 668 "./util/configlexer.lex" +#line 669 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 347: +case 348: YY_RULE_SETUP -#line 672 "./util/configlexer.lex" +#line 673 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 348: +case 349: YY_RULE_SETUP -#line 676 "./util/configlexer.lex" +#line 677 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5427 "" +#line 5437 "" case YY_END_OF_BUFFER: { @@ -5721,7 +5731,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 >= 3439 ) + if ( yy_current_state >= 3445 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5749,11 +5759,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 >= 3439 ) + if ( yy_current_state >= 3445 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3438); + yy_is_jam = (yy_current_state == 3444); return yy_is_jam ? 0 : yy_current_state; } @@ -6392,6 +6402,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 676 "./util/configlexer.lex" +#line 677 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index e982463d1..e566e1c53 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -405,6 +405,7 @@ neg-cache-size{COLON} { YDVAR(1, VAR_NEG_CACHE_SIZE) } val-nsec3-keysize-iterations{COLON} { YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } zonemd-permissive-mode{COLON} { YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +zonemd-check{COLON} { YDVAR(1, VAR_ZONEMD_CHECK) } zonemd-reject-absence{COLON} { YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } add-holddown{COLON} { YDVAR(1, VAR_ADD_HOLDDOWN) } del-holddown{COLON} { YDVAR(1, VAR_DEL_HOLDDOWN) } diff --git a/util/configparser.c b/util/configparser.c index 2b3fcb558..3f519e9c7 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -450,7 +450,8 @@ extern int yydebug; VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ VAR_NSID = 566, /* VAR_NSID */ VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 568 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_ZONEMD_CHECK = 568, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 569 /* VAR_ZONEMD_REJECT_ABSENCE */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -768,7 +769,8 @@ extern int yydebug; #define VAR_EDNS_CLIENT_STRING_OPCODE 565 #define VAR_NSID 566 #define VAR_ZONEMD_PERMISSIVE_MODE 567 -#define VAR_ZONEMD_REJECT_ABSENCE 568 +#define VAR_ZONEMD_CHECK 568 +#define VAR_ZONEMD_REJECT_ABSENCE 569 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -778,7 +780,7 @@ union YYSTYPE char* str; -#line 782 "util/configparser.c" +#line 784 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -1109,346 +1111,348 @@ enum yysymbol_kind_t YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 310, /* VAR_EDNS_CLIENT_STRING_OPCODE */ YYSYMBOL_VAR_NSID = 311, /* VAR_NSID */ YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 312, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 313, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 314, /* $accept */ - YYSYMBOL_toplevelvars = 315, /* toplevelvars */ - YYSYMBOL_toplevelvar = 316, /* toplevelvar */ - YYSYMBOL_force_toplevel = 317, /* force_toplevel */ - YYSYMBOL_serverstart = 318, /* serverstart */ - YYSYMBOL_contents_server = 319, /* contents_server */ - YYSYMBOL_content_server = 320, /* content_server */ - YYSYMBOL_stubstart = 321, /* stubstart */ - YYSYMBOL_contents_stub = 322, /* contents_stub */ - YYSYMBOL_content_stub = 323, /* content_stub */ - YYSYMBOL_forwardstart = 324, /* forwardstart */ - YYSYMBOL_contents_forward = 325, /* contents_forward */ - YYSYMBOL_content_forward = 326, /* content_forward */ - YYSYMBOL_viewstart = 327, /* viewstart */ - YYSYMBOL_contents_view = 328, /* contents_view */ - YYSYMBOL_content_view = 329, /* content_view */ - YYSYMBOL_authstart = 330, /* authstart */ - YYSYMBOL_contents_auth = 331, /* contents_auth */ - YYSYMBOL_content_auth = 332, /* content_auth */ - YYSYMBOL_rpz_tag = 333, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 334, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 335, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 336, /* rpz_log */ - YYSYMBOL_rpz_log_name = 337, /* rpz_log_name */ - YYSYMBOL_rpzstart = 338, /* rpzstart */ - YYSYMBOL_contents_rpz = 339, /* contents_rpz */ - YYSYMBOL_content_rpz = 340, /* content_rpz */ - YYSYMBOL_server_num_threads = 341, /* server_num_threads */ - YYSYMBOL_server_verbosity = 342, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 343, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 344, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 345, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 346, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 347, /* server_shm_key */ - YYSYMBOL_server_port = 348, /* server_port */ - YYSYMBOL_server_send_client_subnet = 349, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 350, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 351, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 352, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 353, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 354, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 355, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 356, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 357, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 358, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 359, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 360, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 361, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 362, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 363, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 364, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 365, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 366, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 367, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 368, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 369, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 370, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 371, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 372, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 373, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 374, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 375, /* server_tcp_idle_timeout */ - YYSYMBOL_server_max_reuse_tcp_queries = 376, /* server_max_reuse_tcp_queries */ - YYSYMBOL_server_tcp_reuse_timeout = 377, /* server_tcp_reuse_timeout */ - YYSYMBOL_server_tcp_auth_query_timeout = 378, /* server_tcp_auth_query_timeout */ - YYSYMBOL_server_tcp_keepalive = 379, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 380, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 381, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 382, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 383, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 384, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 385, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 386, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 387, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 388, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 389, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 390, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 391, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 392, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 393, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 394, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 395, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 396, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 397, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 398, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 399, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 400, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 401, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 402, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 403, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 404, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 405, /* server_log_queries */ - YYSYMBOL_server_log_replies = 406, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 407, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 408, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 409, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 410, /* server_chroot */ - YYSYMBOL_server_username = 411, /* server_username */ - YYSYMBOL_server_directory = 412, /* server_directory */ - YYSYMBOL_server_logfile = 413, /* server_logfile */ - YYSYMBOL_server_pidfile = 414, /* server_pidfile */ - YYSYMBOL_server_root_hints = 415, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 416, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 417, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 418, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 419, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 420, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 421, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 422, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 423, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 424, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 425, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 426, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 427, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 428, /* server_identity */ - YYSYMBOL_server_version = 429, /* server_version */ - YYSYMBOL_server_nsid = 430, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 431, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 432, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 433, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 434, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 435, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 436, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 437, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 438, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 439, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 440, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 441, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 442, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 443, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 444, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 445, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 446, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 447, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 448, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 449, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 450, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 451, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 452, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 453, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 454, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 455, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 456, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 457, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 458, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 459, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 460, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 461, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 462, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 463, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 464, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 465, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 466, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 467, /* server_private_address */ - YYSYMBOL_server_private_domain = 468, /* server_private_domain */ - YYSYMBOL_server_prefetch = 469, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 470, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 471, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 472, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 473, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 474, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 475, /* server_access_control */ - YYSYMBOL_server_module_conf = 476, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 477, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 478, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 479, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 480, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 481, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 482, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 483, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 484, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 485, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 486, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 487, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 488, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 489, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 490, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 491, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 492, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 493, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 494, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 495, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 496, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 497, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 498, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 499, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 500, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 501, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 502, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 503, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 504, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 505, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 506, /* server_local_zone */ - YYSYMBOL_server_local_data = 507, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 508, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 509, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 510, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 511, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 512, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 513, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 514, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 515, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 516, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 517, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 518, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 519, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 520, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 521, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 522, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 523, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 524, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 525, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 526, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 527, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 528, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 529, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 530, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 531, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 532, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 533, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 534, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 535, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 536, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 537, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 538, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 539, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 540, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 541, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 542, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 543, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 544, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 545, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 546, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 547, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 548, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 549, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 550, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 551, /* stub_name */ - YYSYMBOL_stub_host = 552, /* stub_host */ - YYSYMBOL_stub_addr = 553, /* stub_addr */ - YYSYMBOL_stub_first = 554, /* stub_first */ - YYSYMBOL_stub_no_cache = 555, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 556, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 557, /* stub_prime */ - YYSYMBOL_forward_name = 558, /* forward_name */ - YYSYMBOL_forward_host = 559, /* forward_host */ - YYSYMBOL_forward_addr = 560, /* forward_addr */ - YYSYMBOL_forward_first = 561, /* forward_first */ - YYSYMBOL_forward_no_cache = 562, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 563, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 564, /* auth_name */ - YYSYMBOL_auth_zonefile = 565, /* auth_zonefile */ - YYSYMBOL_auth_master = 566, /* auth_master */ - YYSYMBOL_auth_url = 567, /* auth_url */ - YYSYMBOL_auth_allow_notify = 568, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_reject_absence = 569, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 570, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 571, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 572, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 573, /* view_name */ - YYSYMBOL_view_local_zone = 574, /* view_local_zone */ - YYSYMBOL_view_response_ip = 575, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 576, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 577, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 578, /* view_local_data_ptr */ - YYSYMBOL_view_first = 579, /* view_first */ - YYSYMBOL_rcstart = 580, /* rcstart */ - YYSYMBOL_contents_rc = 581, /* contents_rc */ - YYSYMBOL_content_rc = 582, /* content_rc */ - YYSYMBOL_rc_control_enable = 583, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 584, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 585, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 586, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 587, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 588, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 589, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 590, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 591, /* dtstart */ - YYSYMBOL_contents_dt = 592, /* contents_dt */ - YYSYMBOL_content_dt = 593, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 594, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 595, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 596, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 597, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 598, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 599, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 600, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 601, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 602, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 603, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 604, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 605, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 606, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 607, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 608, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 609, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 610, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 611, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 612, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 613, /* pythonstart */ - YYSYMBOL_contents_py = 614, /* contents_py */ - YYSYMBOL_content_py = 615, /* content_py */ - YYSYMBOL_py_script = 616, /* py_script */ - YYSYMBOL_dynlibstart = 617, /* dynlibstart */ - YYSYMBOL_contents_dl = 618, /* contents_dl */ - YYSYMBOL_content_dl = 619, /* content_dl */ - YYSYMBOL_dl_file = 620, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 621, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 622, /* server_log_identity */ - YYSYMBOL_server_response_ip = 623, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 624, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 625, /* dnscstart */ - YYSYMBOL_contents_dnsc = 626, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 627, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 628, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 629, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 630, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 631, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 632, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 633, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 634, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 635, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 636, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 637, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 638, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 639, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 640, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 641, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 642, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 643, /* redis_server_host */ - YYSYMBOL_redis_server_port = 644, /* redis_server_port */ - YYSYMBOL_redis_timeout = 645, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 646, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 647, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 648, /* ipsetstart */ - YYSYMBOL_contents_ipset = 649, /* contents_ipset */ - YYSYMBOL_content_ipset = 650, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 651, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 652 /* ipset_name_v6 */ + YYSYMBOL_VAR_ZONEMD_CHECK = 313, /* VAR_ZONEMD_CHECK */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 314, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 315, /* $accept */ + YYSYMBOL_toplevelvars = 316, /* toplevelvars */ + YYSYMBOL_toplevelvar = 317, /* toplevelvar */ + YYSYMBOL_force_toplevel = 318, /* force_toplevel */ + YYSYMBOL_serverstart = 319, /* serverstart */ + YYSYMBOL_contents_server = 320, /* contents_server */ + YYSYMBOL_content_server = 321, /* content_server */ + YYSYMBOL_stubstart = 322, /* stubstart */ + YYSYMBOL_contents_stub = 323, /* contents_stub */ + YYSYMBOL_content_stub = 324, /* content_stub */ + YYSYMBOL_forwardstart = 325, /* forwardstart */ + YYSYMBOL_contents_forward = 326, /* contents_forward */ + YYSYMBOL_content_forward = 327, /* content_forward */ + YYSYMBOL_viewstart = 328, /* viewstart */ + YYSYMBOL_contents_view = 329, /* contents_view */ + YYSYMBOL_content_view = 330, /* content_view */ + YYSYMBOL_authstart = 331, /* authstart */ + YYSYMBOL_contents_auth = 332, /* contents_auth */ + YYSYMBOL_content_auth = 333, /* content_auth */ + YYSYMBOL_rpz_tag = 334, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 335, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 336, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 337, /* rpz_log */ + YYSYMBOL_rpz_log_name = 338, /* rpz_log_name */ + YYSYMBOL_rpzstart = 339, /* rpzstart */ + YYSYMBOL_contents_rpz = 340, /* contents_rpz */ + YYSYMBOL_content_rpz = 341, /* content_rpz */ + YYSYMBOL_server_num_threads = 342, /* server_num_threads */ + YYSYMBOL_server_verbosity = 343, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 344, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 345, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 346, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 347, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 348, /* server_shm_key */ + YYSYMBOL_server_port = 349, /* server_port */ + YYSYMBOL_server_send_client_subnet = 350, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 351, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 352, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 353, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 354, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 355, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 356, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 357, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 358, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 359, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 360, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 361, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 362, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 363, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 364, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 365, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 366, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 367, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 368, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 369, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 370, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 371, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 372, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 373, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 374, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 375, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 376, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 377, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 378, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_auth_query_timeout = 379, /* server_tcp_auth_query_timeout */ + YYSYMBOL_server_tcp_keepalive = 380, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 381, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 382, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 383, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 384, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 385, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 386, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 387, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 388, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 389, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 390, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 391, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 392, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 393, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 394, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 395, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 396, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 397, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 398, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 399, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 400, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 401, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 402, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 403, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 404, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 405, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 406, /* server_log_queries */ + YYSYMBOL_server_log_replies = 407, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 408, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 409, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 410, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 411, /* server_chroot */ + YYSYMBOL_server_username = 412, /* server_username */ + YYSYMBOL_server_directory = 413, /* server_directory */ + YYSYMBOL_server_logfile = 414, /* server_logfile */ + YYSYMBOL_server_pidfile = 415, /* server_pidfile */ + YYSYMBOL_server_root_hints = 416, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 417, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 418, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 419, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 420, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 421, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 422, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 423, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 424, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 425, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 426, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 427, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 428, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 429, /* server_identity */ + YYSYMBOL_server_version = 430, /* server_version */ + YYSYMBOL_server_nsid = 431, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 432, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 433, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 434, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 435, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 436, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 437, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 438, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 439, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 440, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 441, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 442, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 443, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 444, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 445, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 446, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 447, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 448, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 449, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 450, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 451, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 452, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 453, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 454, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 455, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 456, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 457, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 458, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 459, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 460, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 461, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 462, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 463, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 464, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 465, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 466, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 467, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 468, /* server_private_address */ + YYSYMBOL_server_private_domain = 469, /* server_private_domain */ + YYSYMBOL_server_prefetch = 470, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 471, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 472, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 473, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 474, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 475, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 476, /* server_access_control */ + YYSYMBOL_server_module_conf = 477, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 478, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 479, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 480, /* server_val_sig_skew_max */ + YYSYMBOL_server_cache_max_ttl = 481, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 482, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 483, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 484, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 485, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 486, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 487, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 488, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 489, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 490, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 491, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 492, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 493, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 494, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 495, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 496, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 497, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 498, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 499, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 500, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 501, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 502, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 503, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 504, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 505, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 506, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 507, /* server_local_zone */ + YYSYMBOL_server_local_data = 508, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 509, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 510, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 511, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 512, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 513, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 514, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 515, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 516, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 517, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 518, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 519, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 520, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 521, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 522, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 523, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 524, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 525, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 526, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 527, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 528, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 529, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 530, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 531, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 532, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 533, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 534, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 535, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 536, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 537, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 538, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 539, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 540, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 541, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 542, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 543, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 544, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 545, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 546, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 547, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 548, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 549, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 550, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 551, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 552, /* stub_name */ + YYSYMBOL_stub_host = 553, /* stub_host */ + YYSYMBOL_stub_addr = 554, /* stub_addr */ + YYSYMBOL_stub_first = 555, /* stub_first */ + YYSYMBOL_stub_no_cache = 556, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 557, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 558, /* stub_prime */ + YYSYMBOL_forward_name = 559, /* forward_name */ + YYSYMBOL_forward_host = 560, /* forward_host */ + YYSYMBOL_forward_addr = 561, /* forward_addr */ + YYSYMBOL_forward_first = 562, /* forward_first */ + YYSYMBOL_forward_no_cache = 563, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 564, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 565, /* auth_name */ + YYSYMBOL_auth_zonefile = 566, /* auth_zonefile */ + YYSYMBOL_auth_master = 567, /* auth_master */ + YYSYMBOL_auth_url = 568, /* auth_url */ + YYSYMBOL_auth_allow_notify = 569, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_check = 570, /* auth_zonemd_check */ + YYSYMBOL_auth_zonemd_reject_absence = 571, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 572, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 573, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 574, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 575, /* view_name */ + YYSYMBOL_view_local_zone = 576, /* view_local_zone */ + YYSYMBOL_view_response_ip = 577, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 578, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 579, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 580, /* view_local_data_ptr */ + YYSYMBOL_view_first = 581, /* view_first */ + YYSYMBOL_rcstart = 582, /* rcstart */ + YYSYMBOL_contents_rc = 583, /* contents_rc */ + YYSYMBOL_content_rc = 584, /* content_rc */ + YYSYMBOL_rc_control_enable = 585, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 586, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 587, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 588, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 589, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 590, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 591, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 592, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 593, /* dtstart */ + YYSYMBOL_contents_dt = 594, /* contents_dt */ + YYSYMBOL_content_dt = 595, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 596, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 597, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 598, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 599, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 600, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 601, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 602, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 603, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 604, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 605, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 606, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 607, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 608, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 609, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 610, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 611, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 612, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 613, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 614, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 615, /* pythonstart */ + YYSYMBOL_contents_py = 616, /* contents_py */ + YYSYMBOL_content_py = 617, /* content_py */ + YYSYMBOL_py_script = 618, /* py_script */ + YYSYMBOL_dynlibstart = 619, /* dynlibstart */ + YYSYMBOL_contents_dl = 620, /* contents_dl */ + YYSYMBOL_content_dl = 621, /* content_dl */ + YYSYMBOL_dl_file = 622, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 623, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 624, /* server_log_identity */ + YYSYMBOL_server_response_ip = 625, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 626, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 627, /* dnscstart */ + YYSYMBOL_contents_dnsc = 628, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 629, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 630, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 631, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 632, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 633, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 634, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 635, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 636, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 637, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 638, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 639, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 640, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 641, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 642, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 643, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 644, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 645, /* redis_server_host */ + YYSYMBOL_redis_server_port = 646, /* redis_server_port */ + YYSYMBOL_redis_timeout = 647, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 648, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 649, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 650, /* ipsetstart */ + YYSYMBOL_contents_ipset = 651, /* contents_ipset */ + YYSYMBOL_content_ipset = 652, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 653, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 654 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1758,18 +1762,18 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 663 +#define YYLAST 666 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 314 +#define YYNTOKENS 315 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 339 +#define YYNNTS 340 /* YYNRULES -- Number of rules. */ -#define YYNRULES 654 +#define YYNRULES 656 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 972 +#define YYNSTATES 975 -#define YYMAXUTOK 568 +#define YYMAXUTOK 569 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1839,7 +1843,7 @@ static const yytype_int16 yytranslate[] = 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 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314 }; #if YYDEBUG @@ -1872,46 +1876,46 @@ static const yytype_int16 yyrline[] = 302, 303, 303, 304, 304, 305, 305, 308, 320, 321, 322, 322, 322, 322, 322, 323, 323, 325, 337, 338, 339, 339, 339, 339, 340, 340, 342, 356, 357, 358, - 358, 358, 358, 359, 359, 359, 361, 379, 380, 381, - 381, 381, 381, 382, 382, 382, 383, 383, 386, 405, - 422, 430, 440, 448, 465, 466, 467, 467, 467, 467, - 467, 468, 468, 468, 469, 469, 471, 480, 489, 500, - 509, 518, 527, 538, 547, 559, 573, 588, 599, 616, - 633, 650, 667, 682, 697, 710, 725, 734, 743, 752, - 761, 770, 779, 788, 797, 806, 815, 824, 833, 842, - 851, 864, 875, 886, 897, 906, 919, 928, 937, 946, - 953, 960, 969, 976, 985, 993, 1000, 1007, 1015, 1024, - 1032, 1048, 1056, 1064, 1072, 1080, 1088, 1097, 1106, 1120, - 1129, 1138, 1147, 1156, 1165, 1174, 1181, 1188, 1214, 1222, - 1229, 1236, 1243, 1250, 1258, 1266, 1274, 1281, 1292, 1303, - 1310, 1319, 1328, 1337, 1344, 1351, 1367, 1375, 1383, 1393, - 1403, 1413, 1427, 1435, 1448, 1459, 1467, 1480, 1489, 1498, - 1507, 1516, 1526, 1536, 1544, 1557, 1566, 1574, 1583, 1591, - 1604, 1613, 1623, 1630, 1640, 1650, 1660, 1670, 1680, 1690, - 1700, 1710, 1717, 1724, 1731, 1740, 1749, 1758, 1767, 1774, - 1784, 1804, 1811, 1829, 1842, 1855, 1864, 1873, 1882, 1891, - 1901, 1911, 1922, 1931, 1940, 1949, 1958, 1967, 1976, 1985, - 1998, 2011, 2020, 2027, 2036, 2045, 2054, 2063, 2072, 2080, - 2093, 2101, 2146, 2153, 2168, 2178, 2188, 2195, 2202, 2209, - 2218, 2226, 2240, 2261, 2282, 2294, 2306, 2318, 2327, 2348, - 2358, 2367, 2375, 2383, 2396, 2409, 2424, 2439, 2448, 2457, - 2463, 2472, 2481, 2491, 2501, 2511, 2520, 2530, 2539, 2552, - 2565, 2577, 2591, 2603, 2617, 2626, 2638, 2648, 2655, 2662, - 2671, 2680, 2690, 2700, 2710, 2717, 2724, 2733, 2742, 2752, - 2762, 2769, 2776, 2783, 2791, 2801, 2811, 2821, 2831, 2841, - 2887, 2897, 2905, 2913, 2928, 2937, 2942, 2943, 2944, 2944, - 2944, 2945, 2945, 2945, 2946, 2946, 2948, 2958, 2967, 2974, - 2981, 2988, 2995, 3002, 3009, 3014, 3015, 3016, 3016, 3016, - 3017, 3017, 3017, 3018, 3019, 3019, 3020, 3020, 3021, 3021, - 3022, 3023, 3024, 3025, 3026, 3027, 3029, 3038, 3048, 3055, - 3062, 3071, 3078, 3085, 3092, 3099, 3108, 3117, 3124, 3131, - 3141, 3151, 3161, 3171, 3181, 3191, 3196, 3197, 3198, 3200, - 3206, 3211, 3212, 3213, 3215, 3221, 3231, 3238, 3247, 3255, - 3260, 3261, 3263, 3263, 3263, 3264, 3264, 3265, 3266, 3267, - 3268, 3269, 3271, 3281, 3290, 3297, 3306, 3313, 3322, 3330, - 3343, 3351, 3364, 3369, 3370, 3371, 3371, 3372, 3372, 3372, - 3373, 3375, 3387, 3399, 3411, 3426, 3439, 3452, 3463, 3468, - 3469, 3470, 3470, 3472, 3487 + 358, 358, 358, 359, 359, 359, 361, 380, 381, 382, + 382, 382, 382, 383, 383, 383, 384, 384, 384, 387, + 406, 423, 431, 441, 449, 466, 467, 468, 468, 468, + 468, 468, 469, 469, 469, 470, 470, 472, 481, 490, + 501, 510, 519, 528, 539, 548, 560, 574, 589, 600, + 617, 634, 651, 668, 683, 698, 711, 726, 735, 744, + 753, 762, 771, 780, 789, 798, 807, 816, 825, 834, + 843, 852, 865, 876, 887, 898, 907, 920, 929, 938, + 947, 954, 961, 970, 977, 986, 994, 1001, 1008, 1016, + 1025, 1033, 1049, 1057, 1065, 1073, 1081, 1089, 1098, 1107, + 1121, 1130, 1139, 1148, 1157, 1166, 1175, 1182, 1189, 1215, + 1223, 1230, 1237, 1244, 1251, 1259, 1267, 1275, 1282, 1293, + 1304, 1311, 1320, 1329, 1338, 1345, 1352, 1368, 1376, 1384, + 1394, 1404, 1414, 1428, 1436, 1449, 1460, 1468, 1481, 1490, + 1499, 1508, 1517, 1527, 1537, 1545, 1558, 1567, 1575, 1584, + 1592, 1605, 1614, 1624, 1631, 1641, 1651, 1661, 1671, 1681, + 1691, 1701, 1711, 1718, 1725, 1732, 1741, 1750, 1759, 1768, + 1775, 1785, 1805, 1812, 1830, 1843, 1856, 1865, 1874, 1883, + 1892, 1902, 1912, 1923, 1932, 1941, 1950, 1959, 1968, 1977, + 1986, 1999, 2012, 2021, 2028, 2037, 2046, 2055, 2064, 2073, + 2081, 2094, 2102, 2147, 2154, 2169, 2179, 2189, 2196, 2203, + 2210, 2219, 2227, 2241, 2262, 2283, 2295, 2307, 2319, 2328, + 2349, 2359, 2368, 2376, 2384, 2397, 2410, 2425, 2440, 2449, + 2458, 2464, 2473, 2482, 2492, 2502, 2512, 2521, 2531, 2540, + 2553, 2566, 2578, 2592, 2604, 2618, 2627, 2639, 2649, 2656, + 2663, 2672, 2681, 2691, 2701, 2711, 2718, 2725, 2734, 2743, + 2753, 2763, 2770, 2777, 2784, 2792, 2802, 2812, 2822, 2832, + 2842, 2852, 2898, 2908, 2916, 2924, 2939, 2948, 2953, 2954, + 2955, 2955, 2955, 2956, 2956, 2956, 2957, 2957, 2959, 2969, + 2978, 2985, 2992, 2999, 3006, 3013, 3020, 3025, 3026, 3027, + 3027, 3027, 3028, 3028, 3028, 3029, 3030, 3030, 3031, 3031, + 3032, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3040, 3049, + 3059, 3066, 3073, 3082, 3089, 3096, 3103, 3110, 3119, 3128, + 3135, 3142, 3152, 3162, 3172, 3182, 3192, 3202, 3207, 3208, + 3209, 3211, 3217, 3222, 3223, 3224, 3226, 3232, 3242, 3249, + 3258, 3266, 3271, 3272, 3274, 3274, 3274, 3275, 3275, 3276, + 3277, 3278, 3279, 3280, 3282, 3292, 3301, 3308, 3317, 3324, + 3333, 3341, 3354, 3362, 3375, 3380, 3381, 3382, 3382, 3383, + 3383, 3383, 3384, 3386, 3398, 3410, 3422, 3437, 3450, 3463, + 3474, 3479, 3480, 3481, 3481, 3483, 3498 }; #endif @@ -2045,17 +2049,18 @@ static const char *const yytname[] = "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", - "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_REJECT_ABSENCE", "$accept", - "toplevelvars", "toplevelvar", "force_toplevel", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "viewstart", "contents_view", "content_view", "authstart", - "contents_auth", "content_auth", "rpz_tag", "rpz_action_override", - "rpz_cname_override", "rpz_log", "rpz_log_name", "rpzstart", - "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity", - "server_statistics_interval", "server_statistics_cumulative", - "server_extended_statistics", "server_shm_enable", "server_shm_key", - "server_port", "server_send_client_subnet", "server_client_subnet_zone", + "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK", + "VAR_ZONEMD_REJECT_ABSENCE", "$accept", "toplevelvars", "toplevelvar", + "force_toplevel", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", + "server_statistics_cumulative", "server_extended_statistics", + "server_shm_enable", "server_shm_key", "server_port", + "server_send_client_subnet", "server_client_subnet_zone", "server_client_subnet_always_forward", "server_client_subnet_opcode", "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", @@ -2148,11 +2153,11 @@ static const char *const yytname[] = "stub_prime", "forward_name", "forward_host", "forward_addr", "forward_first", "forward_no_cache", "forward_ssl_upstream", "auth_name", "auth_zonefile", "auth_master", "auth_url", "auth_allow_notify", - "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream", - "auth_fallback_enabled", "view_name", "view_local_zone", - "view_response_ip", "view_response_ip_data", "view_local_data", - "view_local_data_ptr", "view_first", "rcstart", "contents_rc", - "content_rc", "rc_control_enable", "rc_control_port", + "auth_zonemd_check", "auth_zonemd_reject_absence", "auth_for_downstream", + "auth_for_upstream", "auth_fallback_enabled", "view_name", + "view_local_zone", "view_response_ip", "view_response_ip_data", + "view_local_data", "view_local_data_ptr", "view_first", "rcstart", + "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable", @@ -2226,7 +2231,7 @@ static const yytype_int16 yytoknum[] = 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568 + 565, 566, 567, 568, 569 }; #endif @@ -2266,10 +2271,10 @@ static const yytype_int16 yypact[] = 210, 211, 212, 213, 215, 216, 217, 219, 225, 226, 227, 228, 229, 231, 232, 234, 240, 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, 252, 253, 255, - 256, 257, 258, 260, 261, 262, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 288, 289, 290, 292, 293, 294, - 296, 330, 331, 332, 333, 337, 338, 339, 381, 382, + 256, 257, 258, 261, 262, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, 288, 289, 290, 292, 293, 294, 296, + 330, 331, 332, 333, 337, 338, 339, 381, 382, 383, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, @@ -2291,57 +2296,57 @@ static const yytype_int16 yypact[] = -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 383, 384, 385, 386, - 387, 388, 389, -299, -299, -299, -299, -299, -299, -299, - -299, 395, 399, 400, 426, 427, 428, -299, -299, -299, - -299, -299, -299, -299, 437, 450, 451, 452, 453, 454, - 455, -299, -299, -299, -299, -299, -299, -299, -299, 456, - 457, 458, 459, 460, 461, 462, 463, 464, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 465, 466, - 467, 468, 469, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 509, 511, 528, 529, 530, 531, - 532, 533, -299, -299, -299, -299, -299, -299, -299, -299, - -299, 534, 535, 536, 537, 538, 549, 550, 551, 552, + -299, -299, -299, -299, -299, -299, 384, 385, 386, 387, + 388, 389, 395, -299, -299, -299, -299, -299, -299, -299, + -299, 399, 400, 426, 427, 428, 437, -299, -299, -299, + -299, -299, -299, -299, 450, 451, 452, 453, 454, 455, + 456, -299, -299, -299, -299, -299, -299, -299, -299, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, + 467, 468, 469, 509, 511, -299, -299, -299, -299, -299, + -299, -299, -299, -299, -299, -299, 528, 529, 530, 531, + 532, 533, 534, 535, -299, -299, -299, -299, -299, -299, + -299, -299, -299, 536, 537, 538, 549, 550, 551, 552, 553, 554, 555, 557, 558, 559, 560, 561, 562, 563, + 566, 569, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 566, -299, -299, 569, -299, -299, 572, 573, 582, 583, - 584, 586, 587, 588, 589, 590, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 591, 592, 593, - 598, 599, 600, -299, -299, -299, -299, -299, -299, -299, - 601, 602, -299, -299, -299, -299, -299, -299, -299, -299, + -299, -299, 572, -299, -299, 573, -299, -299, 582, 583, + 584, 586, 587, 588, 589, 590, 591, 592, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, 593, + 598, 599, 600, 601, 602, -299, -299, -299, -299, -299, + -299, -299, 603, 604, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, 603, 604, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, 605, 606, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 605, 606, 607, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 608, 609, -299, + -299, -299, -299, -299, -299, -299, 607, 608, 609, -299, + -299, -299, -299, -299, -299, -299, -299, -299, -299, 610, + 611, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 610, 611, - 612, 613, 614, 615, -299, -299, -299, -299, -299, -299, + 612, 613, 614, 615, 616, 617, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 616, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 617, -299, -299, -299, + -299, -299, -299, -299, -299, -299, -299, -299, 618, -299, + -299, -299, -299, -299, -299, -299, -299, -299, 619, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, 618, -299, -299, 619, 620, -299, + -299, -299, -299, -299, -299, -299, 620, -299, -299, 621, + 622, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 621, 622, 623, -299, -299, -299, -299, -299, -299, -299, - -299, -299 + -299, -299, -299, 623, 624, 625, -299, -299, -299, -299, + -299, -299, -299, -299, -299 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -2349,10 +2354,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 237, 247, 535, 595, 554, - 256, 609, 632, 266, 648, 283, 600, 3, 17, 21, - 239, 249, 258, 268, 285, 537, 556, 597, 602, 611, - 634, 650, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 237, 247, 537, 597, 556, + 256, 611, 634, 266, 650, 284, 602, 3, 17, 21, + 239, 249, 258, 268, 286, 539, 558, 599, 604, 613, + 636, 652, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2401,52 +2406,52 @@ static const yytype_int16 yydefact[] = 243, 0, 0, 0, 0, 0, 0, 248, 250, 251, 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 257, 259, 260, 263, 264, 261, 265, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 267, 269, - 270, 271, 272, 276, 277, 273, 274, 275, 0, 0, - 0, 0, 0, 288, 292, 293, 294, 295, 284, 286, - 287, 289, 290, 291, 0, 0, 0, 0, 0, 0, - 0, 0, 536, 538, 540, 539, 545, 541, 542, 543, - 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, + 269, 270, 271, 272, 276, 277, 278, 273, 274, 275, + 0, 0, 0, 0, 0, 289, 293, 294, 295, 296, + 285, 287, 288, 290, 291, 292, 0, 0, 0, 0, + 0, 0, 0, 0, 538, 540, 542, 541, 547, 543, + 544, 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 555, 557, 559, 558, 560, 561, 562, 563, 564, 565, + 0, 0, 557, 559, 561, 560, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 0, 596, 598, 0, 601, 603, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 610, 612, 613, 614, - 616, 617, 615, 618, 619, 620, 621, 0, 0, 0, - 0, 0, 0, 633, 635, 636, 637, 638, 639, 640, - 0, 0, 649, 651, 652, 297, 296, 303, 316, 314, - 326, 322, 323, 327, 324, 325, 328, 329, 330, 334, - 335, 365, 366, 367, 368, 369, 395, 396, 397, 403, - 404, 319, 405, 406, 409, 407, 408, 412, 413, 414, - 428, 380, 381, 383, 384, 415, 431, 374, 376, 432, - 438, 439, 440, 320, 394, 458, 459, 375, 452, 358, - 315, 370, 429, 435, 416, 0, 0, 462, 321, 298, - 357, 420, 299, 317, 318, 371, 372, 460, 418, 422, - 423, 332, 331, 300, 463, 398, 427, 359, 379, 433, - 434, 437, 451, 373, 456, 454, 455, 386, 393, 424, - 425, 387, 388, 417, 442, 360, 361, 364, 336, 338, - 333, 339, 340, 341, 342, 349, 350, 351, 352, 353, - 354, 355, 464, 465, 467, 399, 400, 401, 402, 410, - 411, 468, 469, 470, 0, 0, 0, 419, 389, 391, - 605, 479, 483, 481, 480, 484, 482, 0, 0, 487, - 488, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 421, 436, 457, 492, 493, 390, 471, 0, 0, - 0, 0, 0, 0, 443, 444, 445, 446, 447, 448, - 449, 450, 606, 382, 377, 441, 356, 301, 302, 378, - 494, 495, 496, 497, 498, 500, 499, 501, 502, 503, - 337, 344, 489, 491, 490, 343, 0, 363, 426, 466, - 362, 392, 345, 346, 348, 347, 0, 505, 385, 453, - 506, 507, 508, 512, 511, 509, 510, 513, 514, 515, - 516, 518, 517, 528, 0, 532, 533, 0, 0, 534, - 519, 526, 520, 521, 522, 525, 527, 523, 524, 278, - 279, 280, 281, 282, 546, 548, 547, 550, 551, 552, - 553, 549, 576, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 577, 587, 588, 589, 590, 591, 592, 593, - 594, 599, 604, 622, 623, 624, 627, 625, 626, 628, - 629, 630, 631, 641, 642, 643, 644, 645, 646, 653, - 654, 430, 461, 478, 607, 608, 485, 486, 472, 473, - 0, 0, 0, 477, 647, 504, 529, 530, 531, 476, - 474, 475 + 576, 577, 0, 598, 600, 0, 603, 605, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 612, 614, + 615, 616, 618, 619, 617, 620, 621, 622, 623, 0, + 0, 0, 0, 0, 0, 635, 637, 638, 639, 640, + 641, 642, 0, 0, 651, 653, 654, 298, 297, 304, + 317, 315, 327, 323, 324, 328, 325, 326, 329, 330, + 331, 335, 336, 366, 367, 368, 369, 370, 396, 397, + 398, 404, 405, 320, 406, 407, 410, 408, 409, 413, + 414, 415, 429, 381, 382, 384, 385, 416, 432, 375, + 377, 433, 439, 440, 441, 321, 395, 459, 460, 376, + 453, 359, 316, 371, 430, 436, 417, 0, 0, 463, + 322, 299, 358, 421, 300, 318, 319, 372, 373, 461, + 419, 423, 424, 333, 332, 301, 464, 399, 428, 360, + 380, 434, 435, 438, 452, 374, 457, 455, 456, 387, + 394, 425, 426, 388, 389, 418, 443, 361, 362, 365, + 337, 339, 334, 340, 341, 342, 343, 350, 351, 352, + 353, 354, 355, 356, 465, 466, 468, 400, 401, 402, + 403, 411, 412, 469, 470, 471, 0, 0, 0, 420, + 390, 392, 607, 480, 484, 482, 481, 485, 483, 0, + 0, 488, 489, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 422, 437, 458, 493, 494, 391, 472, + 0, 0, 0, 0, 0, 0, 444, 445, 446, 447, + 448, 449, 450, 451, 608, 383, 378, 442, 357, 302, + 303, 379, 495, 496, 497, 498, 499, 501, 500, 502, + 503, 504, 338, 345, 490, 492, 491, 344, 0, 364, + 427, 467, 363, 393, 346, 347, 349, 348, 0, 506, + 386, 454, 507, 508, 509, 513, 512, 510, 511, 514, + 515, 516, 517, 519, 518, 530, 0, 534, 535, 0, + 0, 536, 520, 528, 521, 522, 523, 527, 529, 524, + 525, 526, 279, 280, 281, 282, 283, 548, 550, 549, + 552, 553, 554, 555, 551, 578, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 579, 589, 590, 591, 592, + 593, 594, 595, 596, 601, 606, 624, 625, 626, 629, + 627, 628, 630, 631, 632, 633, 643, 644, 645, 646, + 647, 648, 655, 656, 431, 462, 479, 609, 610, 486, + 487, 473, 474, 0, 0, 0, 478, 649, 505, 531, + 532, 533, 477, 475, 476 }; /* YYPGOTO[NTERM-NUM]. */ @@ -2477,7 +2482,7 @@ static const yytype_int16 yypgoto[] = -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 268, 597, 624, 625, 626, -299, -299, -299, -299, -299, + 268, 626, 627, 628, 629, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, @@ -2485,15 +2490,15 @@ static const yytype_int16 yypgoto[] = -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299 + -299, -299, -299, -299, -299, -299, -299, -299, -299, -299 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 1, 17, 18, 19, 32, 260, 20, 33, 483, - 21, 34, 497, 22, 35, 511, 23, 36, 528, 543, - 544, 545, 546, 547, 24, 37, 548, 261, 262, 263, + 21, 34, 497, 22, 35, 511, 23, 36, 529, 545, + 546, 547, 548, 549, 24, 37, 550, 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, @@ -2516,15 +2521,15 @@ static const yytype_int16 yydefgoto[] = 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 484, 485, 486, 487, 488, 489, 490, 498, 499, 500, 501, 502, 503, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 512, - 513, 514, 515, 516, 517, 518, 25, 38, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 26, 39, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 27, - 40, 611, 612, 28, 41, 614, 615, 471, 472, 473, - 474, 29, 42, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 30, 43, 643, 644, 645, 646, - 647, 648, 649, 475, 31, 44, 652, 653, 654 + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 512, 513, 514, 515, 516, 517, 518, 25, 38, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 26, 39, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 27, 40, 613, 614, 28, 41, 616, 617, 471, 472, + 473, 474, 29, 42, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 30, 43, 645, 646, 647, + 648, 649, 650, 651, 475, 31, 44, 654, 655, 656 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -2532,73 +2537,73 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 519, 476, 504, 477, 478, 610, 491, 650, 651, - 613, 3, 4, 655, 656, 492, 493, 519, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 657, 658, 505, - 506, 659, 660, 661, 662, 663, 5, 664, 665, 666, - 667, 668, 6, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 669, 670, 671, 507, 479, 554, 555, - 556, 557, 558, 559, 560, 561, 637, 638, 639, 640, - 641, 642, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 7, 686, 687, 480, - 688, 689, 690, 494, 691, 495, 692, 693, 694, 481, - 695, 696, 697, 698, 8, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 508, 509, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, - 742, 743, 744, 745, 746, 9, 747, 748, 749, 750, - 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 510, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, - 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 10, 804, 805, 806, 520, 807, - 521, 522, 523, 524, 525, 808, 809, 810, 811, 812, - 526, 813, 814, 11, 815, 482, 521, 522, 523, 496, - 816, 817, 818, 819, 820, 821, 526, 822, 823, 824, - 825, 826, 827, 828, 12, 829, 830, 831, 832, 527, - 833, 834, 835, 13, 538, 539, 540, 541, 542, 836, - 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, - 847, 848, 849, 850, 851, 852, 853, 14, 854, 855, - 856, 15, 857, 858, 859, 549, 860, 16, 45, 46, + 2, 519, 476, 504, 477, 478, 612, 491, 652, 653, + 615, 3, 4, 657, 658, 492, 493, 519, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 659, 660, 505, + 506, 661, 662, 663, 664, 665, 5, 666, 667, 668, + 669, 670, 6, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 671, 672, 673, 507, 479, 556, 557, + 558, 559, 560, 561, 562, 563, 639, 640, 641, 642, + 643, 644, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 7, 688, 689, 480, + 690, 691, 692, 494, 693, 495, 694, 695, 696, 481, + 697, 698, 699, 700, 8, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 508, 509, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, + 744, 745, 746, 747, 748, 9, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 765, 766, 510, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + 802, 803, 804, 805, 10, 806, 807, 808, 520, 809, + 521, 522, 523, 524, 525, 810, 811, 812, 813, 814, + 526, 815, 816, 11, 817, 482, 521, 522, 523, 496, + 818, 819, 820, 821, 822, 823, 526, 824, 825, 826, + 827, 828, 829, 830, 12, 831, 832, 833, 834, 527, + 528, 835, 836, 13, 540, 541, 542, 543, 544, 837, + 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, + 848, 849, 850, 851, 852, 853, 854, 14, 855, 856, + 857, 15, 858, 859, 860, 551, 861, 16, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 861, 862, 863, 864, 77, 78, 79, 865, 866, 867, + 862, 863, 864, 865, 77, 78, 79, 866, 867, 868, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 868, 869, 870, 871, 872, 873, 874, 875, 876, - 121, 122, 123, 124, 125, 877, 126, 127, 128, 878, - 879, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 120, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 121, 122, 123, 124, 125, 878, 126, 127, 128, 879, + 880, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 880, 881, 882, 154, - 155, 156, 157, 158, 159, 160, 161, 883, 162, 163, + 148, 149, 150, 151, 152, 153, 881, 882, 883, 154, + 155, 156, 157, 158, 159, 160, 161, 884, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, - 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, + 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 904, - 213, 905, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 917, - 918, 919, 920, 921, 922, 923, 240, 924, 925, 926, - 927, 928, 929, 930, 241, 242, 931, 243, 244, 932, - 245, 246, 933, 934, 247, 248, 249, 250, 251, 252, - 253, 254, 935, 936, 937, 255, 938, 939, 940, 941, - 942, 943, 944, 945, 256, 257, 258, 259, 946, 947, - 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, - 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, - 968, 969, 970, 971, 550, 0, 0, 0, 0, 0, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 905, + 213, 906, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 907, 908, + 909, 910, 911, 912, 913, 914, 915, 916, 917, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 918, + 919, 920, 921, 922, 923, 924, 240, 925, 926, 927, + 928, 929, 930, 931, 241, 242, 932, 243, 244, 933, + 245, 246, 934, 935, 247, 248, 249, 250, 251, 252, + 253, 254, 936, 937, 938, 255, 939, 940, 941, 942, + 943, 944, 945, 946, 256, 257, 258, 259, 947, 948, + 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 551, 552, 553 + 0, 0, 0, 552, 553, 554, 555 }; static const yytype_int16 yycheck[] = @@ -2630,7 +2635,7 @@ static const yytype_int16 yycheck[] = 284, 10, 10, 243, 10, 288, 274, 275, 276, 287, 10, 10, 10, 10, 10, 10, 284, 10, 10, 10, 10, 10, 10, 10, 264, 10, 10, 10, 10, 313, - 10, 10, 10, 273, 302, 303, 304, 305, 306, 10, + 314, 10, 10, 273, 302, 303, 304, 305, 306, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 297, 10, 10, 10, 301, 10, 10, 10, 37, 10, 307, 13, 14, @@ -2666,21 +2671,21 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 309, 310, 311, 312, 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, 37, -1, -1, -1, -1, -1, + 10, 10, 10, 10, 10, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 37, 37 + -1, -1, -1, 37, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 315, 0, 11, 12, 46, 52, 96, 114, 165, - 224, 243, 264, 273, 297, 301, 307, 316, 317, 318, - 321, 324, 327, 330, 338, 580, 591, 613, 617, 625, - 638, 648, 319, 322, 325, 328, 331, 339, 581, 592, - 614, 618, 626, 639, 649, 13, 14, 15, 16, 17, + 0, 316, 0, 11, 12, 46, 52, 96, 114, 165, + 224, 243, 264, 273, 297, 301, 307, 317, 318, 319, + 322, 325, 328, 331, 339, 582, 593, 615, 619, 627, + 640, 650, 320, 323, 326, 329, 332, 340, 583, 594, + 616, 620, 628, 641, 651, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@ -2702,46 +2707,46 @@ static const yytype_int16 yystos[] = 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 271, 279, 280, 282, 283, 285, 286, 289, 290, 291, 292, 293, 294, 295, 296, 300, 309, 310, 311, 312, - 320, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 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, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 621, 622, 623, 624, 647, 45, 47, 48, 110, - 142, 152, 288, 323, 551, 552, 553, 554, 555, 556, - 557, 45, 53, 54, 141, 143, 287, 326, 558, 559, - 560, 561, 562, 563, 45, 81, 82, 108, 186, 187, - 226, 329, 573, 574, 575, 576, 577, 578, 579, 45, - 272, 274, 275, 276, 277, 278, 284, 313, 332, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 302, 303, - 304, 305, 306, 333, 334, 335, 336, 337, 340, 564, - 565, 566, 567, 568, 97, 98, 99, 100, 101, 102, - 103, 104, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 321, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 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, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 623, 624, 625, 626, 649, 45, 47, 48, 110, + 142, 152, 288, 324, 552, 553, 554, 555, 556, 557, + 558, 45, 53, 54, 141, 143, 287, 327, 559, 560, + 561, 562, 563, 564, 45, 81, 82, 108, 186, 187, + 226, 330, 575, 576, 577, 578, 579, 580, 581, 45, + 272, 274, 275, 276, 277, 278, 284, 313, 314, 333, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 302, 303, 304, 305, 306, 334, 335, 336, 337, 338, + 341, 565, 566, 567, 568, 569, 97, 98, 99, 100, + 101, 102, 103, 104, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 115, 615, 616, 308, 619, 620, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 265, 266, 267, - 268, 269, 270, 640, 641, 642, 643, 644, 645, 646, - 298, 299, 650, 651, 652, 10, 10, 10, 10, 10, + 613, 614, 115, 617, 618, 308, 621, 622, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 265, + 266, 267, 268, 269, 270, 642, 643, 644, 645, 646, + 647, 648, 298, 299, 652, 653, 654, 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, @@ -2773,42 +2778,42 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10 + 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 314, 315, 315, 316, 316, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 317, 318, - 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 321, 322, 322, - 323, 323, 323, 323, 323, 323, 323, 324, 325, 325, - 326, 326, 326, 326, 326, 326, 327, 328, 328, 329, - 329, 329, 329, 329, 329, 329, 330, 331, 331, 332, - 332, 332, 332, 332, 332, 332, 332, 332, 333, 334, - 335, 336, 337, 338, 339, 339, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 341, 342, 343, 344, + 0, 315, 316, 316, 317, 317, 317, 317, 317, 317, + 317, 317, 317, 317, 317, 317, 317, 317, 318, 319, + 320, 320, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 322, 323, 323, + 324, 324, 324, 324, 324, 324, 324, 325, 326, 326, + 327, 327, 327, 327, 327, 327, 328, 329, 329, 330, + 330, 330, 330, 330, 330, 330, 331, 332, 332, 333, + 333, 333, 333, 333, 333, 333, 333, 333, 333, 334, + 335, 336, 337, 338, 339, 340, 340, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 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, @@ -2832,19 +2837,19 @@ static const yytype_int16 yyr1[] = 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 581, 582, 582, - 582, 582, 582, 582, 582, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 592, 593, 593, 593, - 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, - 593, 593, 593, 593, 593, 593, 594, 595, 596, 597, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 583, + 584, 584, 584, 584, 584, 584, 584, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 594, 595, + 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, + 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 614, 615, 616, - 617, 618, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 626, 627, 627, 627, 627, 627, 627, 627, 627, - 627, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 639, 640, 640, 640, 640, 640, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 649, 650, 650, 651, 652 + 608, 609, 610, 611, 612, 613, 614, 615, 616, 616, + 617, 618, 619, 620, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 628, 629, 629, 629, 629, 629, 629, + 629, 629, 629, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 641, 642, 642, 642, + 642, 642, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 651, 652, 652, 653, 654 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2877,9 +2882,9 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2893,29 +2898,29 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, - 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 4, 4, 4, 3, 3, + 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 2, - 1, 2, 0, 1, 2, 2, 2, 3, 3, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 3, 1, 2, - 0, 1, 1, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, + 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, + 1, 2, 0, 1, 1, 2, 2 }; @@ -3400,7 +3405,7 @@ yyreduce: { OUTYY(("\nP(force-toplevel)\n")); } -#line 3404 "util/configparser.c" +#line 3409 "util/configparser.c" break; case 19: @@ -3408,7 +3413,7 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 3412 "util/configparser.c" +#line 3417 "util/configparser.c" break; case 237: @@ -3423,7 +3428,7 @@ yyreduce: } else yyerror("out of memory"); } -#line 3427 "util/configparser.c" +#line 3432 "util/configparser.c" break; case 247: @@ -3438,7 +3443,7 @@ yyreduce: } else yyerror("out of memory"); } -#line 3442 "util/configparser.c" +#line 3447 "util/configparser.c" break; case 256: @@ -3455,7 +3460,7 @@ yyreduce: } else yyerror("out of memory"); } -#line 3459 "util/configparser.c" +#line 3464 "util/configparser.c" break; case 266: @@ -3471,16 +3476,17 @@ yyreduce: s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; s->zonemd_reject_absence = 0; s->isrpz = 0; } else yyerror("out of memory"); } -#line 3480 "util/configparser.c" +#line 3486 "util/configparser.c" break; - case 278: -#line 387 "./util/configparser.y" + case 279: +#line 388 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -3497,11 +3503,11 @@ yyreduce: } } -#line 3501 "util/configparser.c" +#line 3507 "util/configparser.c" break; - case 279: -#line 406 "./util/configparser.y" + case 280: +#line 407 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -3516,21 +3522,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 3520 "util/configparser.c" +#line 3526 "util/configparser.c" break; - case 280: -#line 423 "./util/configparser.y" + case 281: +#line 424 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 3530 "util/configparser.c" +#line 3536 "util/configparser.c" break; - case 281: -#line 431 "./util/configparser.y" + case 282: +#line 432 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3538,21 +3544,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3542 "util/configparser.c" +#line 3548 "util/configparser.c" break; - case 282: -#line 441 "./util/configparser.y" + case 283: +#line 442 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3552 "util/configparser.c" +#line 3558 "util/configparser.c" break; - case 283: -#line 449 "./util/configparser.y" + case 284: +#line 450 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -3568,11 +3574,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3572 "util/configparser.c" +#line 3578 "util/configparser.c" break; - case 296: -#line 472 "./util/configparser.y" + case 297: +#line 473 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3580,11 +3586,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3584 "util/configparser.c" +#line 3590 "util/configparser.c" break; - case 297: -#line 481 "./util/configparser.y" + case 298: +#line 482 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3592,11 +3598,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3596 "util/configparser.c" +#line 3602 "util/configparser.c" break; - case 298: -#line 490 "./util/configparser.y" + case 299: +#line 491 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3606,11 +3612,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3610 "util/configparser.c" +#line 3616 "util/configparser.c" break; - case 299: -#line 501 "./util/configparser.y" + case 300: +#line 502 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3618,11 +3624,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3622 "util/configparser.c" +#line 3628 "util/configparser.c" break; - case 300: -#line 510 "./util/configparser.y" + case 301: +#line 511 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3630,11 +3636,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" +#line 3640 "util/configparser.c" break; - case 301: -#line 519 "./util/configparser.y" + case 302: +#line 520 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3642,11 +3648,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3646 "util/configparser.c" +#line 3652 "util/configparser.c" break; - case 302: -#line 528 "./util/configparser.y" + case 303: +#line 529 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3656,11 +3662,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3660 "util/configparser.c" +#line 3666 "util/configparser.c" break; - case 303: -#line 539 "./util/configparser.y" + case 304: +#line 540 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3668,11 +3674,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3672 "util/configparser.c" +#line 3678 "util/configparser.c" break; - case 304: -#line 548 "./util/configparser.y" + case 305: +#line 549 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3683,11 +3689,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3687 "util/configparser.c" +#line 3693 "util/configparser.c" break; - case 305: -#line 560 "./util/configparser.y" + case 306: +#line 561 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3699,11 +3705,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3703 "util/configparser.c" +#line 3709 "util/configparser.c" break; - case 306: -#line 574 "./util/configparser.y" + case 307: +#line 575 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3717,11 +3723,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3721 "util/configparser.c" +#line 3727 "util/configparser.c" break; - case 307: -#line 589 "./util/configparser.y" + case 308: +#line 590 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3731,11 +3737,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3735 "util/configparser.c" +#line 3741 "util/configparser.c" break; - case 308: -#line 600 "./util/configparser.y" + case 309: +#line 601 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3751,11 +3757,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3755 "util/configparser.c" +#line 3761 "util/configparser.c" break; - case 309: -#line 617 "./util/configparser.y" + case 310: +#line 618 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3771,11 +3777,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3775 "util/configparser.c" +#line 3781 "util/configparser.c" break; - case 310: -#line 634 "./util/configparser.y" + case 311: +#line 635 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3791,11 +3797,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3795 "util/configparser.c" +#line 3801 "util/configparser.c" break; - case 311: -#line 651 "./util/configparser.y" + case 312: +#line 652 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3811,11 +3817,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3815 "util/configparser.c" +#line 3821 "util/configparser.c" break; - case 312: -#line 668 "./util/configparser.y" + case 313: +#line 669 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3829,11 +3835,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3833 "util/configparser.c" +#line 3839 "util/configparser.c" break; - case 313: -#line 683 "./util/configparser.y" + case 314: +#line 684 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3847,11 +3853,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3851 "util/configparser.c" +#line 3857 "util/configparser.c" break; - case 314: -#line 698 "./util/configparser.y" + case 315: +#line 699 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3863,11 +3869,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3867 "util/configparser.c" +#line 3873 "util/configparser.c" break; - case 315: -#line 711 "./util/configparser.y" + case 316: +#line 712 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3881,11 +3887,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3885 "util/configparser.c" +#line 3891 "util/configparser.c" break; - case 316: -#line 726 "./util/configparser.y" + case 317: +#line 727 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3893,11 +3899,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3897 "util/configparser.c" +#line 3903 "util/configparser.c" break; - case 317: -#line 735 "./util/configparser.y" + case 318: +#line 736 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3905,11 +3911,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3909 "util/configparser.c" +#line 3915 "util/configparser.c" break; - case 318: -#line 744 "./util/configparser.y" + case 319: +#line 745 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3917,11 +3923,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3921 "util/configparser.c" +#line 3927 "util/configparser.c" break; - case 319: -#line 753 "./util/configparser.y" + case 320: +#line 754 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3929,11 +3935,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3933 "util/configparser.c" +#line 3939 "util/configparser.c" break; - case 320: -#line 762 "./util/configparser.y" + case 321: +#line 763 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3941,11 +3947,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3945 "util/configparser.c" +#line 3951 "util/configparser.c" break; - case 321: -#line 771 "./util/configparser.y" + case 322: +#line 772 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3953,11 +3959,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3957 "util/configparser.c" +#line 3963 "util/configparser.c" break; - case 322: -#line 780 "./util/configparser.y" + case 323: +#line 781 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3965,11 +3971,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3969 "util/configparser.c" +#line 3975 "util/configparser.c" break; - case 323: -#line 789 "./util/configparser.y" + case 324: +#line 790 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3977,11 +3983,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3981 "util/configparser.c" +#line 3987 "util/configparser.c" break; - case 324: -#line 798 "./util/configparser.y" + case 325: +#line 799 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3989,11 +3995,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3993 "util/configparser.c" +#line 3999 "util/configparser.c" break; - case 325: -#line 807 "./util/configparser.y" + case 326: +#line 808 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4001,11 +4007,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4005 "util/configparser.c" +#line 4011 "util/configparser.c" break; - case 326: -#line 816 "./util/configparser.y" + case 327: +#line 817 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4013,11 +4019,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4017 "util/configparser.c" +#line 4023 "util/configparser.c" break; - case 327: -#line 825 "./util/configparser.y" + case 328: +#line 826 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4025,11 +4031,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4029 "util/configparser.c" +#line 4035 "util/configparser.c" break; - case 328: -#line 834 "./util/configparser.y" + case 329: +#line 835 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4037,11 +4043,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4041 "util/configparser.c" +#line 4047 "util/configparser.c" break; - case 329: -#line 843 "./util/configparser.y" + case 330: +#line 844 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4049,11 +4055,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4053 "util/configparser.c" +#line 4059 "util/configparser.c" break; - case 330: -#line 852 "./util/configparser.y" + case 331: +#line 853 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4065,11 +4071,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4069 "util/configparser.c" +#line 4075 "util/configparser.c" break; - case 331: -#line 865 "./util/configparser.y" + case 332: +#line 866 "./util/configparser.y" { OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4079,11 +4085,11 @@ yyreduce: else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4083 "util/configparser.c" +#line 4089 "util/configparser.c" break; - case 332: -#line 876 "./util/configparser.y" + case 333: +#line 877 "./util/configparser.y" { OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4093,11 +4099,11 @@ yyreduce: else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4097 "util/configparser.c" +#line 4103 "util/configparser.c" break; - case 333: -#line 887 "./util/configparser.y" + case 334: +#line 888 "./util/configparser.y" { OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4107,11 +4113,11 @@ yyreduce: else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4111 "util/configparser.c" +#line 4117 "util/configparser.c" break; - case 334: -#line 898 "./util/configparser.y" + case 335: +#line 899 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4119,11 +4125,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4123 "util/configparser.c" +#line 4129 "util/configparser.c" break; - case 335: -#line 907 "./util/configparser.y" + case 336: +#line 908 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4135,11 +4141,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4139 "util/configparser.c" +#line 4145 "util/configparser.c" break; - case 336: -#line 920 "./util/configparser.y" + case 337: +#line 921 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4147,11 +4153,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4151 "util/configparser.c" +#line 4157 "util/configparser.c" break; - case 337: -#line 929 "./util/configparser.y" + case 338: +#line 930 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4159,11 +4165,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4163 "util/configparser.c" +#line 4169 "util/configparser.c" break; - case 338: -#line 938 "./util/configparser.y" + case 339: +#line 939 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4171,31 +4177,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4175 "util/configparser.c" +#line 4181 "util/configparser.c" break; - case 339: -#line 947 "./util/configparser.y" + case 340: +#line 948 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 4185 "util/configparser.c" +#line 4191 "util/configparser.c" break; - case 340: -#line 954 "./util/configparser.y" + case 341: +#line 955 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 4195 "util/configparser.c" +#line 4201 "util/configparser.c" break; - case 341: -#line 961 "./util/configparser.y" + case 342: +#line 962 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4203,21 +4209,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4207 "util/configparser.c" +#line 4213 "util/configparser.c" break; - case 342: -#line 970 "./util/configparser.y" + case 343: +#line 971 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 4217 "util/configparser.c" +#line 4223 "util/configparser.c" break; - case 343: -#line 977 "./util/configparser.y" + case 344: +#line 978 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4225,53 +4231,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4229 "util/configparser.c" +#line 4235 "util/configparser.c" break; - case 344: -#line 986 "./util/configparser.y" + case 345: +#line 987 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4240 "util/configparser.c" +#line 4246 "util/configparser.c" break; - case 345: -#line 994 "./util/configparser.y" + case 346: +#line 995 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 4250 "util/configparser.c" +#line 4256 "util/configparser.c" break; - case 346: -#line 1001 "./util/configparser.y" + case 347: +#line 1002 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 4260 "util/configparser.c" +#line 4266 "util/configparser.c" break; - case 347: -#line 1008 "./util/configparser.y" + case 348: +#line 1009 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4271 "util/configparser.c" +#line 4277 "util/configparser.c" break; - case 348: -#line 1016 "./util/configparser.y" + case 349: +#line 1017 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4279,11 +4285,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4283 "util/configparser.c" +#line 4289 "util/configparser.c" break; - case 349: -#line 1025 "./util/configparser.y" + case 350: +#line 1026 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4291,11 +4297,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4295 "util/configparser.c" +#line 4301 "util/configparser.c" break; - case 350: -#line 1033 "./util/configparser.y" + case 351: +#line 1034 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -4311,11 +4317,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 4315 "util/configparser.c" +#line 4321 "util/configparser.c" break; - case 351: -#line 1049 "./util/configparser.y" + case 352: +#line 1050 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4323,11 +4329,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4327 "util/configparser.c" +#line 4333 "util/configparser.c" break; - case 352: -#line 1057 "./util/configparser.y" + case 353: +#line 1058 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4335,11 +4341,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4339 "util/configparser.c" +#line 4345 "util/configparser.c" break; - case 353: -#line 1065 "./util/configparser.y" + case 354: +#line 1066 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4347,11 +4353,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4351 "util/configparser.c" +#line 4357 "util/configparser.c" break; - case 354: -#line 1073 "./util/configparser.y" + case 355: +#line 1074 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4359,11 +4365,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4363 "util/configparser.c" +#line 4369 "util/configparser.c" break; - case 355: -#line 1081 "./util/configparser.y" + case 356: +#line 1082 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4371,11 +4377,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4375 "util/configparser.c" +#line 4381 "util/configparser.c" break; - case 356: -#line 1089 "./util/configparser.y" + case 357: +#line 1090 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4383,11 +4389,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4387 "util/configparser.c" +#line 4393 "util/configparser.c" break; - case 357: -#line 1098 "./util/configparser.y" + case 358: +#line 1099 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4395,11 +4401,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" +#line 4405 "util/configparser.c" break; - case 358: -#line 1107 "./util/configparser.y" + case 359: +#line 1108 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4412,11 +4418,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4416 "util/configparser.c" +#line 4422 "util/configparser.c" break; - case 359: -#line 1121 "./util/configparser.y" + case 360: +#line 1122 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4424,11 +4430,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4428 "util/configparser.c" +#line 4434 "util/configparser.c" break; - case 360: -#line 1130 "./util/configparser.y" + case 361: +#line 1131 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4436,11 +4442,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4440 "util/configparser.c" +#line 4446 "util/configparser.c" break; - case 361: -#line 1139 "./util/configparser.y" + case 362: +#line 1140 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4448,11 +4454,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4452 "util/configparser.c" +#line 4458 "util/configparser.c" break; - case 362: -#line 1148 "./util/configparser.y" + case 363: +#line 1149 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4460,11 +4466,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4464 "util/configparser.c" +#line 4470 "util/configparser.c" break; - case 363: -#line 1157 "./util/configparser.y" + case 364: +#line 1158 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4472,11 +4478,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4476 "util/configparser.c" +#line 4482 "util/configparser.c" break; - case 364: -#line 1166 "./util/configparser.y" + case 365: +#line 1167 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4484,31 +4490,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4488 "util/configparser.c" +#line 4494 "util/configparser.c" break; - case 365: -#line 1175 "./util/configparser.y" + case 366: +#line 1176 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 4498 "util/configparser.c" +#line 4504 "util/configparser.c" break; - case 366: -#line 1182 "./util/configparser.y" + case 367: +#line 1183 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 4508 "util/configparser.c" +#line 4514 "util/configparser.c" break; - case 367: -#line 1189 "./util/configparser.y" + case 368: +#line 1190 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -4533,105 +4539,105 @@ yyreduce: } } } -#line 4537 "util/configparser.c" +#line 4543 "util/configparser.c" break; - case 368: -#line 1215 "./util/configparser.y" + case 369: +#line 1216 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 4548 "util/configparser.c" +#line 4554 "util/configparser.c" break; - case 369: -#line 1223 "./util/configparser.y" + case 370: +#line 1224 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 4558 "util/configparser.c" +#line 4564 "util/configparser.c" break; - case 370: -#line 1230 "./util/configparser.y" + case 371: +#line 1231 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4568 "util/configparser.c" +#line 4574 "util/configparser.c" break; - case 371: -#line 1237 "./util/configparser.y" + case 372: +#line 1238 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4578 "util/configparser.c" +#line 4584 "util/configparser.c" break; - case 372: -#line 1244 "./util/configparser.y" + case 373: +#line 1245 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4588 "util/configparser.c" +#line 4594 "util/configparser.c" break; - case 373: -#line 1251 "./util/configparser.y" + case 374: +#line 1252 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4599 "util/configparser.c" +#line 4605 "util/configparser.c" break; - case 374: -#line 1259 "./util/configparser.y" + case 375: +#line 1260 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4610 "util/configparser.c" +#line 4616 "util/configparser.c" break; - case 375: -#line 1267 "./util/configparser.y" + case 376: +#line 1268 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4621 "util/configparser.c" +#line 4627 "util/configparser.c" break; - case 376: -#line 1275 "./util/configparser.y" + case 377: +#line 1276 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4631 "util/configparser.c" +#line 4637 "util/configparser.c" break; - case 377: -#line 1282 "./util/configparser.y" + case 378: +#line 1283 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4641,11 +4647,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4645 "util/configparser.c" +#line 4651 "util/configparser.c" break; - case 378: -#line 1293 "./util/configparser.y" + case 379: +#line 1294 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4655,21 +4661,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4659 "util/configparser.c" +#line 4665 "util/configparser.c" break; - case 379: -#line 1304 "./util/configparser.y" + case 380: +#line 1305 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4669 "util/configparser.c" +#line 4675 "util/configparser.c" break; - case 380: -#line 1311 "./util/configparser.y" + case 381: +#line 1312 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4677,11 +4683,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4681 "util/configparser.c" +#line 4687 "util/configparser.c" break; - case 381: -#line 1320 "./util/configparser.y" + case 382: +#line 1321 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4689,11 +4695,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4693 "util/configparser.c" +#line 4699 "util/configparser.c" break; - case 382: -#line 1329 "./util/configparser.y" + case 383: +#line 1330 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4701,31 +4707,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4705 "util/configparser.c" +#line 4711 "util/configparser.c" break; - case 383: -#line 1338 "./util/configparser.y" + case 384: +#line 1339 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4715 "util/configparser.c" +#line 4721 "util/configparser.c" break; - case 384: -#line 1345 "./util/configparser.y" + case 385: +#line 1346 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4725 "util/configparser.c" +#line 4731 "util/configparser.c" break; - case 385: -#line 1352 "./util/configparser.y" + case 386: +#line 1353 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4740,33 +4746,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4744 "util/configparser.c" +#line 4750 "util/configparser.c" break; - case 386: -#line 1368 "./util/configparser.y" + case 387: +#line 1369 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4755 "util/configparser.c" +#line 4761 "util/configparser.c" break; - case 387: -#line 1376 "./util/configparser.y" + case 388: +#line 1377 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4766 "util/configparser.c" +#line 4772 "util/configparser.c" break; - case 388: -#line 1384 "./util/configparser.y" + case 389: +#line 1385 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4775,11 +4781,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4779 "util/configparser.c" +#line 4785 "util/configparser.c" break; - case 389: -#line 1394 "./util/configparser.y" + case 390: +#line 1395 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4788,11 +4794,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4792 "util/configparser.c" +#line 4798 "util/configparser.c" break; - case 390: -#line 1404 "./util/configparser.y" + case 391: +#line 1405 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4801,11 +4807,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4805 "util/configparser.c" +#line 4811 "util/configparser.c" break; - case 391: -#line 1414 "./util/configparser.y" + case 392: +#line 1415 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4818,22 +4824,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4822 "util/configparser.c" +#line 4828 "util/configparser.c" break; - case 392: -#line 1428 "./util/configparser.y" + case 393: +#line 1429 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4833 "util/configparser.c" +#line 4839 "util/configparser.c" break; - case 393: -#line 1436 "./util/configparser.y" + case 394: +#line 1437 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4845,11 +4851,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4849 "util/configparser.c" +#line 4855 "util/configparser.c" break; - case 394: -#line 1449 "./util/configparser.y" + case 395: +#line 1450 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4859,22 +4865,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4863 "util/configparser.c" +#line 4869 "util/configparser.c" break; - case 395: -#line 1460 "./util/configparser.y" + case 396: +#line 1461 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4874 "util/configparser.c" +#line 4880 "util/configparser.c" break; - case 396: -#line 1468 "./util/configparser.y" + case 397: +#line 1469 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4886,11 +4892,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4890 "util/configparser.c" +#line 4896 "util/configparser.c" break; - case 397: -#line 1481 "./util/configparser.y" + case 398: +#line 1482 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4898,11 +4904,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4902 "util/configparser.c" +#line 4908 "util/configparser.c" break; - case 398: -#line 1490 "./util/configparser.y" + case 399: +#line 1491 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4910,11 +4916,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4914 "util/configparser.c" +#line 4920 "util/configparser.c" break; - case 399: -#line 1499 "./util/configparser.y" + case 400: +#line 1500 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4922,11 +4928,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4926 "util/configparser.c" +#line 4932 "util/configparser.c" break; - case 400: -#line 1508 "./util/configparser.y" + case 401: +#line 1509 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4934,11 +4940,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4938 "util/configparser.c" +#line 4944 "util/configparser.c" break; - case 401: -#line 1517 "./util/configparser.y" + case 402: +#line 1518 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4947,11 +4953,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4951 "util/configparser.c" +#line 4957 "util/configparser.c" break; - case 402: -#line 1527 "./util/configparser.y" + case 403: +#line 1528 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4960,22 +4966,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4964 "util/configparser.c" +#line 4970 "util/configparser.c" break; - case 403: -#line 1537 "./util/configparser.y" + case 404: +#line 1538 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4975 "util/configparser.c" +#line 4981 "util/configparser.c" break; - case 404: -#line 1545 "./util/configparser.y" + case 405: +#line 1546 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4987,11 +4993,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4991 "util/configparser.c" +#line 4997 "util/configparser.c" break; - case 405: -#line 1558 "./util/configparser.y" + case 406: +#line 1559 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4999,22 +5005,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5003 "util/configparser.c" +#line 5009 "util/configparser.c" break; - case 406: -#line 1567 "./util/configparser.y" + case 407: +#line 1568 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5014 "util/configparser.c" +#line 5020 "util/configparser.c" break; - case 407: -#line 1575 "./util/configparser.y" + case 408: +#line 1576 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5022,22 +5028,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5026 "util/configparser.c" +#line 5032 "util/configparser.c" break; - case 408: -#line 1584 "./util/configparser.y" + case 409: +#line 1585 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5037 "util/configparser.c" +#line 5043 "util/configparser.c" break; - case 409: -#line 1592 "./util/configparser.y" + case 410: +#line 1593 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5049,11 +5055,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5053 "util/configparser.c" +#line 5059 "util/configparser.c" break; - case 410: -#line 1605 "./util/configparser.y" + case 411: +#line 1606 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5061,11 +5067,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5065 "util/configparser.c" +#line 5071 "util/configparser.c" break; - case 411: -#line 1614 "./util/configparser.y" + case 412: +#line 1615 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5074,21 +5080,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5078 "util/configparser.c" +#line 5084 "util/configparser.c" break; - case 412: -#line 1624 "./util/configparser.y" + case 413: +#line 1625 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 5088 "util/configparser.c" +#line 5094 "util/configparser.c" break; - case 413: -#line 1631 "./util/configparser.y" + case 414: +#line 1632 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5097,11 +5103,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5101 "util/configparser.c" +#line 5107 "util/configparser.c" break; - case 414: -#line 1641 "./util/configparser.y" + case 415: +#line 1642 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5110,11 +5116,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5114 "util/configparser.c" +#line 5120 "util/configparser.c" break; - case 415: -#line 1651 "./util/configparser.y" + case 416: +#line 1652 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5123,11 +5129,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5127 "util/configparser.c" +#line 5133 "util/configparser.c" break; - case 416: -#line 1661 "./util/configparser.y" + case 417: +#line 1662 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5136,11 +5142,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5140 "util/configparser.c" +#line 5146 "util/configparser.c" break; - case 417: -#line 1671 "./util/configparser.y" + case 418: +#line 1672 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5149,11 +5155,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5153 "util/configparser.c" +#line 5159 "util/configparser.c" break; - case 418: -#line 1681 "./util/configparser.y" + case 419: +#line 1682 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5162,11 +5168,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5166 "util/configparser.c" +#line 5172 "util/configparser.c" break; - case 419: -#line 1691 "./util/configparser.y" + case 420: +#line 1692 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5175,11 +5181,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5179 "util/configparser.c" +#line 5185 "util/configparser.c" break; - case 420: -#line 1701 "./util/configparser.y" + case 421: +#line 1702 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5188,41 +5194,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5192 "util/configparser.c" +#line 5198 "util/configparser.c" break; - case 421: -#line 1711 "./util/configparser.y" + case 422: +#line 1712 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5202 "util/configparser.c" +#line 5208 "util/configparser.c" break; - case 422: -#line 1718 "./util/configparser.y" + case 423: +#line 1719 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5212 "util/configparser.c" +#line 5218 "util/configparser.c" break; - case 423: -#line 1725 "./util/configparser.y" + case 424: +#line 1726 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5222 "util/configparser.c" +#line 5228 "util/configparser.c" break; - case 424: -#line 1732 "./util/configparser.y" + case 425: +#line 1733 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5230,11 +5236,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5234 "util/configparser.c" +#line 5240 "util/configparser.c" break; - case 425: -#line 1741 "./util/configparser.y" + case 426: +#line 1742 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5242,11 +5248,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5246 "util/configparser.c" +#line 5252 "util/configparser.c" break; - case 426: -#line 1750 "./util/configparser.y" + case 427: +#line 1751 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5254,11 +5260,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5258 "util/configparser.c" +#line 5264 "util/configparser.c" break; - case 427: -#line 1759 "./util/configparser.y" + case 428: +#line 1760 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5266,21 +5272,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5270 "util/configparser.c" +#line 5276 "util/configparser.c" break; - case 428: -#line 1768 "./util/configparser.y" + case 429: +#line 1769 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5280 "util/configparser.c" +#line 5286 "util/configparser.c" break; - case 429: -#line 1775 "./util/configparser.y" + case 430: +#line 1776 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5289,11 +5295,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5293 "util/configparser.c" +#line 5299 "util/configparser.c" break; - case 430: -#line 1785 "./util/configparser.y" + case 431: +#line 1786 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -5312,21 +5318,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 5316 "util/configparser.c" +#line 5322 "util/configparser.c" break; - case 431: -#line 1805 "./util/configparser.y" + case 432: +#line 1806 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 5326 "util/configparser.c" +#line 5332 "util/configparser.c" break; - case 432: -#line 1812 "./util/configparser.y" + case 433: +#line 1813 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5343,11 +5349,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5347 "util/configparser.c" +#line 5353 "util/configparser.c" break; - case 433: -#line 1830 "./util/configparser.y" + case 434: +#line 1831 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5359,11 +5365,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5363 "util/configparser.c" +#line 5369 "util/configparser.c" break; - case 434: -#line 1843 "./util/configparser.y" + case 435: +#line 1844 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5375,11 +5381,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5379 "util/configparser.c" +#line 5385 "util/configparser.c" break; - case 435: -#line 1856 "./util/configparser.y" + case 436: +#line 1857 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5387,11 +5393,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5391 "util/configparser.c" +#line 5397 "util/configparser.c" break; - case 436: -#line 1865 "./util/configparser.y" + case 437: +#line 1866 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5399,11 +5405,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5403 "util/configparser.c" +#line 5409 "util/configparser.c" break; - case 437: -#line 1874 "./util/configparser.y" + case 438: +#line 1875 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5411,11 +5417,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5415 "util/configparser.c" +#line 5421 "util/configparser.c" break; - case 438: -#line 1883 "./util/configparser.y" + case 439: +#line 1884 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5423,11 +5429,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5427 "util/configparser.c" +#line 5433 "util/configparser.c" break; - case 439: -#line 1892 "./util/configparser.y" + case 440: +#line 1893 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5436,11 +5442,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5440 "util/configparser.c" +#line 5446 "util/configparser.c" break; - case 440: -#line 1902 "./util/configparser.y" + case 441: +#line 1903 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5449,11 +5455,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5453 "util/configparser.c" +#line 5459 "util/configparser.c" break; - case 441: -#line 1912 "./util/configparser.y" + case 442: +#line 1913 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5463,11 +5469,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5467 "util/configparser.c" +#line 5473 "util/configparser.c" break; - case 442: -#line 1923 "./util/configparser.y" + case 443: +#line 1924 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5475,11 +5481,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5479 "util/configparser.c" +#line 5485 "util/configparser.c" break; - case 443: -#line 1932 "./util/configparser.y" + case 444: +#line 1933 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5487,11 +5493,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5491 "util/configparser.c" +#line 5497 "util/configparser.c" break; - case 444: -#line 1941 "./util/configparser.y" + case 445: +#line 1942 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5499,11 +5505,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5503 "util/configparser.c" +#line 5509 "util/configparser.c" break; - case 445: -#line 1950 "./util/configparser.y" + case 446: +#line 1951 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5511,11 +5517,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5515 "util/configparser.c" +#line 5521 "util/configparser.c" break; - case 446: -#line 1959 "./util/configparser.y" + case 447: +#line 1960 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5523,11 +5529,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5527 "util/configparser.c" +#line 5533 "util/configparser.c" break; - case 447: -#line 1968 "./util/configparser.y" + case 448: +#line 1969 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5535,11 +5541,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5539 "util/configparser.c" +#line 5545 "util/configparser.c" break; - case 448: -#line 1977 "./util/configparser.y" + case 449: +#line 1978 "./util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5547,11 +5553,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5551 "util/configparser.c" +#line 5557 "util/configparser.c" break; - case 449: -#line 1986 "./util/configparser.y" + case 450: +#line 1987 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5563,11 +5569,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5567 "util/configparser.c" +#line 5573 "util/configparser.c" break; - case 450: -#line 1999 "./util/configparser.y" + case 451: +#line 2000 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5579,11 +5585,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5583 "util/configparser.c" +#line 5589 "util/configparser.c" break; - case 451: -#line 2012 "./util/configparser.y" + case 452: +#line 2013 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5591,21 +5597,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5595 "util/configparser.c" +#line 5601 "util/configparser.c" break; - case 452: -#line 2021 "./util/configparser.y" + case 453: +#line 2022 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 5605 "util/configparser.c" +#line 5611 "util/configparser.c" break; - case 453: -#line 2028 "./util/configparser.y" + case 454: +#line 2029 "./util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5613,11 +5619,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5617 "util/configparser.c" +#line 5623 "util/configparser.c" break; - case 454: -#line 2037 "./util/configparser.y" + case 455: +#line 2038 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5625,11 +5631,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5629 "util/configparser.c" +#line 5635 "util/configparser.c" break; - case 455: -#line 2046 "./util/configparser.y" + case 456: +#line 2047 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5637,11 +5643,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5641 "util/configparser.c" +#line 5647 "util/configparser.c" break; - case 456: -#line 2055 "./util/configparser.y" + case 457: +#line 2056 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5649,11 +5655,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5653 "util/configparser.c" +#line 5659 "util/configparser.c" break; - case 457: -#line 2064 "./util/configparser.y" + case 458: +#line 2065 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5662,22 +5668,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5666 "util/configparser.c" +#line 5672 "util/configparser.c" break; - case 458: -#line 2073 "./util/configparser.y" + case 459: +#line 2074 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5677 "util/configparser.c" +#line 5683 "util/configparser.c" break; - case 459: -#line 2081 "./util/configparser.y" + case 460: +#line 2082 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5689,22 +5695,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5693 "util/configparser.c" +#line 5699 "util/configparser.c" break; - case 460: -#line 2094 "./util/configparser.y" + case 461: +#line 2095 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5704 "util/configparser.c" +#line 5710 "util/configparser.c" break; - case 461: -#line 2102 "./util/configparser.y" + case 462: +#line 2103 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5748,21 +5754,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5752 "util/configparser.c" +#line 5758 "util/configparser.c" break; - case 462: -#line 2147 "./util/configparser.y" + case 463: +#line 2148 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5762 "util/configparser.c" +#line 5768 "util/configparser.c" break; - case 463: -#line 2154 "./util/configparser.y" + case 464: +#line 2155 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5776,11 +5782,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5780 "util/configparser.c" +#line 5786 "util/configparser.c" break; - case 464: -#line 2169 "./util/configparser.y" + case 465: +#line 2170 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5789,11 +5795,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5793 "util/configparser.c" +#line 5799 "util/configparser.c" break; - case 465: -#line 2179 "./util/configparser.y" + case 466: +#line 2180 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5802,41 +5808,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5806 "util/configparser.c" +#line 5812 "util/configparser.c" break; - case 466: -#line 2189 "./util/configparser.y" + case 467: +#line 2190 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5816 "util/configparser.c" +#line 5822 "util/configparser.c" break; - case 467: -#line 2196 "./util/configparser.y" + case 468: +#line 2197 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5826 "util/configparser.c" +#line 5832 "util/configparser.c" break; - case 468: -#line 2203 "./util/configparser.y" + case 469: +#line 2204 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5836 "util/configparser.c" +#line 5842 "util/configparser.c" break; - case 469: -#line 2210 "./util/configparser.y" + case 470: +#line 2211 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5844,22 +5850,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5848 "util/configparser.c" +#line 5854 "util/configparser.c" break; - case 470: -#line 2219 "./util/configparser.y" + case 471: +#line 2220 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5859 "util/configparser.c" +#line 5865 "util/configparser.c" break; - case 471: -#line 2227 "./util/configparser.y" + case 472: +#line 2228 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5872,11 +5878,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5876 "util/configparser.c" +#line 5882 "util/configparser.c" break; - case 472: -#line 2241 "./util/configparser.y" + case 473: +#line 2242 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5896,11 +5902,11 @@ yyreduce: } } } -#line 5900 "util/configparser.c" +#line 5906 "util/configparser.c" break; - case 473: -#line 2262 "./util/configparser.y" + case 474: +#line 2263 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5920,11 +5926,11 @@ yyreduce: } } } -#line 5924 "util/configparser.c" +#line 5930 "util/configparser.c" break; - case 474: -#line 2283 "./util/configparser.y" + case 475: +#line 2284 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5935,11 +5941,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5939 "util/configparser.c" +#line 5945 "util/configparser.c" break; - case 475: -#line 2295 "./util/configparser.y" + case 476: +#line 2296 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5950,11 +5956,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5954 "util/configparser.c" +#line 5960 "util/configparser.c" break; - case 476: -#line 2307 "./util/configparser.y" + case 477: +#line 2308 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5965,11 +5971,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5969 "util/configparser.c" +#line 5975 "util/configparser.c" break; - case 477: -#line 2319 "./util/configparser.y" + case 478: +#line 2320 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5977,11 +5983,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5981 "util/configparser.c" +#line 5987 "util/configparser.c" break; - case 478: -#line 2328 "./util/configparser.y" + case 479: +#line 2329 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -6001,11 +6007,11 @@ yyreduce: } } } -#line 6005 "util/configparser.c" +#line 6011 "util/configparser.c" break; - case 479: -#line 2349 "./util/configparser.y" + case 480: +#line 2350 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6013,11 +6019,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6017 "util/configparser.c" +#line 6023 "util/configparser.c" break; - case 480: -#line 2359 "./util/configparser.y" + case 481: +#line 2360 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6025,33 +6031,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6029 "util/configparser.c" +#line 6035 "util/configparser.c" break; - case 481: -#line 2368 "./util/configparser.y" + case 482: +#line 2369 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6040 "util/configparser.c" +#line 6046 "util/configparser.c" break; - case 482: -#line 2376 "./util/configparser.y" + case 483: +#line 2377 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6051 "util/configparser.c" +#line 6057 "util/configparser.c" break; - case 483: -#line 2384 "./util/configparser.y" + case 484: +#line 2385 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6063,11 +6069,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6067 "util/configparser.c" +#line 6073 "util/configparser.c" break; - case 484: -#line 2397 "./util/configparser.y" + case 485: +#line 2398 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6079,11 +6085,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6083 "util/configparser.c" +#line 6089 "util/configparser.c" break; - case 485: -#line 2410 "./util/configparser.y" + case 486: +#line 2411 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6097,11 +6103,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 6101 "util/configparser.c" +#line 6107 "util/configparser.c" break; - case 486: -#line 2425 "./util/configparser.y" + case 487: +#line 2426 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6115,11 +6121,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 6119 "util/configparser.c" +#line 6125 "util/configparser.c" break; - case 487: -#line 2440 "./util/configparser.y" + case 488: +#line 2441 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6127,11 +6133,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6131 "util/configparser.c" +#line 6137 "util/configparser.c" break; - case 488: -#line 2449 "./util/configparser.y" + case 489: +#line 2450 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6139,20 +6145,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6143 "util/configparser.c" +#line 6149 "util/configparser.c" break; - case 489: -#line 2458 "./util/configparser.y" + case 490: +#line 2459 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 6152 "util/configparser.c" +#line 6158 "util/configparser.c" break; - case 490: -#line 2464 "./util/configparser.y" + case 491: +#line 2465 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -6160,11 +6166,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6164 "util/configparser.c" +#line 6170 "util/configparser.c" break; - case 491: -#line 2473 "./util/configparser.y" + case 492: +#line 2474 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6172,11 +6178,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6176 "util/configparser.c" +#line 6182 "util/configparser.c" break; - case 492: -#line 2482 "./util/configparser.y" + case 493: +#line 2483 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6185,11 +6191,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6189 "util/configparser.c" +#line 6195 "util/configparser.c" break; - case 493: -#line 2492 "./util/configparser.y" + case 494: +#line 2493 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6198,11 +6204,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6202 "util/configparser.c" +#line 6208 "util/configparser.c" break; - case 494: -#line 2502 "./util/configparser.y" + case 495: +#line 2503 "./util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6211,11 +6217,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6215 "util/configparser.c" +#line 6221 "util/configparser.c" break; - case 495: -#line 2512 "./util/configparser.y" + case 496: +#line 2513 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6223,11 +6229,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6227 "util/configparser.c" +#line 6233 "util/configparser.c" break; - case 496: -#line 2521 "./util/configparser.y" + case 497: +#line 2522 "./util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6236,11 +6242,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6240 "util/configparser.c" +#line 6246 "util/configparser.c" break; - case 497: -#line 2531 "./util/configparser.y" + case 498: +#line 2532 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6248,11 +6254,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6252 "util/configparser.c" +#line 6258 "util/configparser.c" break; - case 498: -#line 2540 "./util/configparser.y" + case 499: +#line 2541 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -6264,11 +6270,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6268 "util/configparser.c" +#line 6274 "util/configparser.c" break; - case 499: -#line 2553 "./util/configparser.y" + case 500: +#line 2554 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -6280,11 +6286,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6284 "util/configparser.c" +#line 6290 "util/configparser.c" break; - case 500: -#line 2566 "./util/configparser.y" + case 501: +#line 2567 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -6295,11 +6301,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6299 "util/configparser.c" +#line 6305 "util/configparser.c" break; - case 501: -#line 2578 "./util/configparser.y" + case 502: +#line 2579 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -6312,11 +6318,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6316 "util/configparser.c" +#line 6322 "util/configparser.c" break; - case 502: -#line 2592 "./util/configparser.y" + case 503: +#line 2593 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -6327,11 +6333,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6331 "util/configparser.c" +#line 6337 "util/configparser.c" break; - case 503: -#line 2604 "./util/configparser.y" + case 504: +#line 2605 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -6344,11 +6350,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6348 "util/configparser.c" +#line 6354 "util/configparser.c" break; - case 504: -#line 2618 "./util/configparser.y" + case 505: +#line 2619 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -6356,11 +6362,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 6360 "util/configparser.c" +#line 6366 "util/configparser.c" break; - case 505: -#line 2627 "./util/configparser.y" + case 506: +#line 2628 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6371,11 +6377,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 6375 "util/configparser.c" +#line 6381 "util/configparser.c" break; - case 506: -#line 2639 "./util/configparser.y" + case 507: +#line 2640 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -6384,31 +6390,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 6388 "util/configparser.c" +#line 6394 "util/configparser.c" break; - case 507: -#line 2649 "./util/configparser.y" + case 508: +#line 2650 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6398 "util/configparser.c" +#line 6404 "util/configparser.c" break; - case 508: -#line 2656 "./util/configparser.y" + case 509: +#line 2657 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6408 "util/configparser.c" +#line 6414 "util/configparser.c" break; - case 509: -#line 2663 "./util/configparser.y" + case 510: +#line 2664 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6416,11 +6422,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6420 "util/configparser.c" +#line 6426 "util/configparser.c" break; - case 510: -#line 2672 "./util/configparser.y" + case 511: +#line 2673 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6428,11 +6434,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6432 "util/configparser.c" +#line 6438 "util/configparser.c" break; - case 511: -#line 2681 "./util/configparser.y" + case 512: +#line 2682 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6441,11 +6447,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6445 "util/configparser.c" +#line 6451 "util/configparser.c" break; - case 512: -#line 2691 "./util/configparser.y" + case 513: +#line 2692 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6454,11 +6460,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6458 "util/configparser.c" +#line 6464 "util/configparser.c" break; - case 513: -#line 2701 "./util/configparser.y" + case 514: +#line 2702 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -6467,31 +6473,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 6471 "util/configparser.c" +#line 6477 "util/configparser.c" break; - case 514: -#line 2711 "./util/configparser.y" + case 515: +#line 2712 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6481 "util/configparser.c" +#line 6487 "util/configparser.c" break; - case 515: -#line 2718 "./util/configparser.y" + case 516: +#line 2719 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6491 "util/configparser.c" +#line 6497 "util/configparser.c" break; - case 516: -#line 2725 "./util/configparser.y" + case 517: +#line 2726 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6499,11 +6505,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6503 "util/configparser.c" +#line 6509 "util/configparser.c" break; - case 517: -#line 2734 "./util/configparser.y" + case 518: +#line 2735 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6511,11 +6517,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6515 "util/configparser.c" +#line 6521 "util/configparser.c" break; - case 518: -#line 2743 "./util/configparser.y" + case 519: +#line 2744 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6524,11 +6530,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6528 "util/configparser.c" +#line 6534 "util/configparser.c" break; - case 519: -#line 2753 "./util/configparser.y" + case 520: +#line 2754 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -6537,52 +6543,65 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 6541 "util/configparser.c" +#line 6547 "util/configparser.c" break; - case 520: -#line 2763 "./util/configparser.y" + case 521: +#line 2764 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 6551 "util/configparser.c" +#line 6557 "util/configparser.c" break; - case 521: -#line 2770 "./util/configparser.y" + case 522: +#line 2771 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6561 "util/configparser.c" +#line 6567 "util/configparser.c" break; - case 522: -#line 2777 "./util/configparser.y" + case 523: +#line 2778 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6571 "util/configparser.c" +#line 6577 "util/configparser.c" break; - case 523: -#line 2784 "./util/configparser.y" + case 524: +#line 2785 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6582 "util/configparser.c" +#line 6588 "util/configparser.c" break; - case 524: -#line 2792 "./util/configparser.y" + case 525: +#line 2793 "./util/configparser.y" + { + OUTYY(("P(zonemd-check:%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->auths->zonemd_check = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 6601 "util/configparser.c" + break; + + case 526: +#line 2803 "./util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6591,11 +6610,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6595 "util/configparser.c" +#line 6614 "util/configparser.c" break; - case 525: -#line 2802 "./util/configparser.y" + case 527: +#line 2813 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6604,11 +6623,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6608 "util/configparser.c" +#line 6627 "util/configparser.c" break; - case 526: -#line 2812 "./util/configparser.y" + case 528: +#line 2823 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6617,11 +6636,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6621 "util/configparser.c" +#line 6640 "util/configparser.c" break; - case 527: -#line 2822 "./util/configparser.y" + case 529: +#line 2833 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6630,11 +6649,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6634 "util/configparser.c" +#line 6653 "util/configparser.c" break; - case 528: -#line 2832 "./util/configparser.y" + case 530: +#line 2843 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6643,11 +6662,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6647 "util/configparser.c" +#line 6666 "util/configparser.c" break; - case 529: -#line 2842 "./util/configparser.y" + case 531: +#line 2853 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -6692,11 +6711,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6696 "util/configparser.c" +#line 6715 "util/configparser.c" break; - case 530: -#line 2888 "./util/configparser.y" + case 532: +#line 2899 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6705,33 +6724,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6709 "util/configparser.c" +#line 6728 "util/configparser.c" break; - case 531: -#line 2898 "./util/configparser.y" + case 533: +#line 2909 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6720 "util/configparser.c" +#line 6739 "util/configparser.c" break; - case 532: -#line 2906 "./util/configparser.y" + case 534: +#line 2917 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6731 "util/configparser.c" +#line 6750 "util/configparser.c" break; - case 533: -#line 2914 "./util/configparser.y" + case 535: +#line 2925 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6745,11 +6764,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6749 "util/configparser.c" +#line 6768 "util/configparser.c" break; - case 534: -#line 2929 "./util/configparser.y" + case 536: +#line 2940 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6757,19 +6776,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6761 "util/configparser.c" +#line 6780 "util/configparser.c" break; - case 535: -#line 2938 "./util/configparser.y" + case 537: +#line 2949 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6769 "util/configparser.c" +#line 6788 "util/configparser.c" break; - case 546: -#line 2949 "./util/configparser.y" + case 548: +#line 2960 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6778,11 +6797,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6782 "util/configparser.c" +#line 6801 "util/configparser.c" break; - case 547: -#line 2959 "./util/configparser.y" + case 549: +#line 2970 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6790,79 +6809,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6794 "util/configparser.c" +#line 6813 "util/configparser.c" break; - case 548: -#line 2968 "./util/configparser.y" + case 550: +#line 2979 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6804 "util/configparser.c" +#line 6823 "util/configparser.c" break; - case 549: -#line 2975 "./util/configparser.y" + case 551: +#line 2986 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6814 "util/configparser.c" +#line 6833 "util/configparser.c" break; - case 550: -#line 2982 "./util/configparser.y" + case 552: +#line 2993 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6824 "util/configparser.c" +#line 6843 "util/configparser.c" break; - case 551: -#line 2989 "./util/configparser.y" + case 553: +#line 3000 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6834 "util/configparser.c" +#line 6853 "util/configparser.c" break; - case 552: -#line 2996 "./util/configparser.y" + case 554: +#line 3007 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6844 "util/configparser.c" +#line 6863 "util/configparser.c" break; - case 553: -#line 3003 "./util/configparser.y" + case 555: +#line 3014 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6854 "util/configparser.c" +#line 6873 "util/configparser.c" break; - case 554: -#line 3010 "./util/configparser.y" + case 556: +#line 3021 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6862 "util/configparser.c" +#line 6881 "util/configparser.c" break; - case 576: -#line 3030 "./util/configparser.y" + case 578: +#line 3041 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6870,11 +6889,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6874 "util/configparser.c" +#line 6893 "util/configparser.c" break; - case 577: -#line 3039 "./util/configparser.y" + case 579: +#line 3050 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6883,31 +6902,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6887 "util/configparser.c" +#line 6906 "util/configparser.c" break; - case 578: -#line 3049 "./util/configparser.y" + case 580: +#line 3060 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6897 "util/configparser.c" +#line 6916 "util/configparser.c" break; - case 579: -#line 3056 "./util/configparser.y" + case 581: +#line 3067 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6907 "util/configparser.c" +#line 6926 "util/configparser.c" break; - case 580: -#line 3063 "./util/configparser.y" + case 582: +#line 3074 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6915,51 +6934,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6919 "util/configparser.c" +#line 6938 "util/configparser.c" break; - case 581: -#line 3072 "./util/configparser.y" + case 583: +#line 3083 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6929 "util/configparser.c" +#line 6948 "util/configparser.c" break; - case 582: -#line 3079 "./util/configparser.y" + case 584: +#line 3090 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6939 "util/configparser.c" +#line 6958 "util/configparser.c" break; - case 583: -#line 3086 "./util/configparser.y" + case 585: +#line 3097 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6949 "util/configparser.c" +#line 6968 "util/configparser.c" break; - case 584: -#line 3093 "./util/configparser.y" + case 586: +#line 3104 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6959 "util/configparser.c" +#line 6978 "util/configparser.c" break; - case 585: -#line 3100 "./util/configparser.y" + case 587: +#line 3111 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6967,11 +6986,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6971 "util/configparser.c" +#line 6990 "util/configparser.c" break; - case 586: -#line 3109 "./util/configparser.y" + case 588: +#line 3120 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6979,31 +6998,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6983 "util/configparser.c" +#line 7002 "util/configparser.c" break; - case 587: -#line 3118 "./util/configparser.y" + case 589: +#line 3129 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 6993 "util/configparser.c" +#line 7012 "util/configparser.c" break; - case 588: -#line 3125 "./util/configparser.y" + case 590: +#line 3136 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 7003 "util/configparser.c" +#line 7022 "util/configparser.c" break; - case 589: -#line 3132 "./util/configparser.y" + case 591: +#line 3143 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7012,11 +7031,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7016 "util/configparser.c" +#line 7035 "util/configparser.c" break; - case 590: -#line 3142 "./util/configparser.y" + case 592: +#line 3153 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7025,11 +7044,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7029 "util/configparser.c" +#line 7048 "util/configparser.c" break; - case 591: -#line 3152 "./util/configparser.y" + case 593: +#line 3163 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7038,11 +7057,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7042 "util/configparser.c" +#line 7061 "util/configparser.c" break; - case 592: -#line 3162 "./util/configparser.y" + case 594: +#line 3173 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7051,11 +7070,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7055 "util/configparser.c" +#line 7074 "util/configparser.c" break; - case 593: -#line 3172 "./util/configparser.y" + case 595: +#line 3183 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7064,11 +7083,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7068 "util/configparser.c" +#line 7087 "util/configparser.c" break; - case 594: -#line 3182 "./util/configparser.y" + case 596: +#line 3193 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7077,47 +7096,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7081 "util/configparser.c" +#line 7100 "util/configparser.c" break; - case 595: -#line 3192 "./util/configparser.y" + case 597: +#line 3203 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 7089 "util/configparser.c" +#line 7108 "util/configparser.c" break; - case 599: -#line 3201 "./util/configparser.y" + case 601: +#line 3212 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7099 "util/configparser.c" +#line 7118 "util/configparser.c" break; - case 600: -#line 3207 "./util/configparser.y" + case 602: +#line 3218 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 7107 "util/configparser.c" +#line 7126 "util/configparser.c" break; - case 604: -#line 3216 "./util/configparser.y" + case 606: +#line 3227 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7117 "util/configparser.c" +#line 7136 "util/configparser.c" break; - case 605: -#line 3222 "./util/configparser.y" + case 607: +#line 3233 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7126,21 +7145,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7130 "util/configparser.c" +#line 7149 "util/configparser.c" break; - case 606: -#line 3232 "./util/configparser.y" + case 608: +#line 3243 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 7140 "util/configparser.c" +#line 7159 "util/configparser.c" break; - case 607: -#line 3239 "./util/configparser.y" + case 609: +#line 3250 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -7148,30 +7167,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 7152 "util/configparser.c" +#line 7171 "util/configparser.c" break; - case 608: -#line 3248 "./util/configparser.y" + case 610: +#line 3259 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 7163 "util/configparser.c" +#line 7182 "util/configparser.c" break; - case 609: -#line 3256 "./util/configparser.y" + case 611: +#line 3267 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7171 "util/configparser.c" +#line 7190 "util/configparser.c" break; - case 622: -#line 3272 "./util/configparser.y" + case 624: +#line 3283 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7179,11 +7198,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7183 "util/configparser.c" +#line 7202 "util/configparser.c" break; - case 623: -#line 3282 "./util/configparser.y" + case 625: +#line 3293 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7191,21 +7210,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7195 "util/configparser.c" +#line 7214 "util/configparser.c" break; - case 624: -#line 3291 "./util/configparser.y" + case 626: +#line 3302 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 7205 "util/configparser.c" +#line 7224 "util/configparser.c" break; - case 625: -#line 3298 "./util/configparser.y" + case 627: +#line 3309 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -7213,21 +7232,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7217 "util/configparser.c" +#line 7236 "util/configparser.c" break; - case 626: -#line 3307 "./util/configparser.y" + case 628: +#line 3318 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 7227 "util/configparser.c" +#line 7246 "util/configparser.c" break; - case 627: -#line 3314 "./util/configparser.y" + case 629: +#line 3325 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -7235,22 +7254,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 7239 "util/configparser.c" +#line 7258 "util/configparser.c" break; - case 628: -#line 3323 "./util/configparser.y" + case 630: +#line 3334 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7250 "util/configparser.c" +#line 7269 "util/configparser.c" break; - case 629: -#line 3331 "./util/configparser.y" + case 631: +#line 3342 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7262,22 +7281,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7266 "util/configparser.c" +#line 7285 "util/configparser.c" break; - case 630: -#line 3344 "./util/configparser.y" + case 632: +#line 3355 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7277 "util/configparser.c" +#line 7296 "util/configparser.c" break; - case 631: -#line 3352 "./util/configparser.y" + case 633: +#line 3363 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7289,19 +7308,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7293 "util/configparser.c" +#line 7312 "util/configparser.c" break; - case 632: -#line 3365 "./util/configparser.y" + case 634: +#line 3376 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 7301 "util/configparser.c" +#line 7320 "util/configparser.c" break; - case 641: -#line 3376 "./util/configparser.y" + case 643: +#line 3387 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -7312,11 +7331,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7316 "util/configparser.c" +#line 7335 "util/configparser.c" break; - case 642: -#line 3388 "./util/configparser.y" + case 644: +#line 3399 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -7327,11 +7346,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7331 "util/configparser.c" +#line 7350 "util/configparser.c" break; - case 643: -#line 3400 "./util/configparser.y" + case 645: +#line 3411 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -7342,11 +7361,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7346 "util/configparser.c" +#line 7365 "util/configparser.c" break; - case 644: -#line 3412 "./util/configparser.y" + case 646: +#line 3423 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -7360,11 +7379,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7364 "util/configparser.c" +#line 7383 "util/configparser.c" break; - case 645: -#line 3427 "./util/configparser.y" + case 647: +#line 3438 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -7376,11 +7395,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7380 "util/configparser.c" +#line 7399 "util/configparser.c" break; - case 646: -#line 3440 "./util/configparser.y" + case 648: +#line 3451 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -7392,11 +7411,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7396 "util/configparser.c" +#line 7415 "util/configparser.c" break; - case 647: -#line 3453 "./util/configparser.y" + case 649: +#line 3464 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -7406,19 +7425,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 7410 "util/configparser.c" +#line 7429 "util/configparser.c" break; - case 648: -#line 3464 "./util/configparser.y" + case 650: +#line 3475 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 7418 "util/configparser.c" +#line 7437 "util/configparser.c" break; - case 653: -#line 3473 "./util/configparser.y" + case 655: +#line 3484 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -7432,11 +7451,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7436 "util/configparser.c" +#line 7455 "util/configparser.c" break; - case 654: -#line 3488 "./util/configparser.y" + case 656: +#line 3499 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -7450,11 +7469,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7454 "util/configparser.c" +#line 7473 "util/configparser.c" break; -#line 7458 "util/configparser.c" +#line 7477 "util/configparser.c" default: break; } @@ -7648,7 +7667,7 @@ yyreturn: return yyresult; } -#line 3502 "./util/configparser.y" +#line 3513 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 98e628db7..aa54b9a17 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -364,7 +364,8 @@ extern int yydebug; VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ VAR_NSID = 566, /* VAR_NSID */ VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_REJECT_ABSENCE = 568 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_ZONEMD_CHECK = 568, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 569 /* VAR_ZONEMD_REJECT_ABSENCE */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -682,7 +683,8 @@ extern int yydebug; #define VAR_EDNS_CLIENT_STRING_OPCODE 565 #define VAR_NSID 566 #define VAR_ZONEMD_PERMISSIVE_MODE 567 -#define VAR_ZONEMD_REJECT_ABSENCE 568 +#define VAR_ZONEMD_CHECK 568 +#define VAR_ZONEMD_REJECT_ABSENCE 569 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -692,7 +694,7 @@ union YYSTYPE char* str; -#line 696 "util/configparser.h" +#line 698 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 6a8f83112..2418f7c74 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -182,7 +182,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_RPZ_CNAME_OVERRIDE VAR_RPZ_LOG VAR_RPZ_LOG_NAME %token VAR_DYNLIB VAR_DYNLIB_FILE VAR_EDNS_CLIENT_STRING %token VAR_EDNS_CLIENT_STRING_OPCODE VAR_NSID -%token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_REJECT_ABSENCE +%token VAR_ZONEMD_PERMISSIVE_MODE VAR_ZONEMD_CHECK VAR_ZONEMD_REJECT_ABSENCE %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -370,6 +370,7 @@ authstart: VAR_AUTH_ZONE s->for_downstream = 1; s->for_upstream = 1; s->fallback_enabled = 0; + s->zonemd_check = 0; s->zonemd_reject_absence = 0; s->isrpz = 0; } else @@ -380,7 +381,7 @@ contents_auth: contents_auth content_auth | ; content_auth: auth_name | auth_zonefile | auth_master | auth_url | auth_for_downstream | auth_for_upstream | auth_fallback_enabled | - auth_allow_notify | auth_zonemd_reject_absence + auth_allow_notify | auth_zonemd_check | auth_zonemd_reject_absence ; rpz_tag: VAR_TAGS STRING_ARG @@ -2788,6 +2789,16 @@ auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG yyerror("out of memory"); } ; +auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG + { + OUTYY(("P(zonemd-check:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->auths->zonemd_check = + (strcmp($2, "yes")==0); + free($2); + } + ; auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG { OUTYY(("P(zonemd-reject-absence:%s)\n", $2)); From 2e8787167802f9f68a82c46917bf61f71f5e9980 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 1 Jun 2021 18:02:10 +0200 Subject: [PATCH 044/156] - Fix test for zonemd-check option. --- doc/Changelog | 3 +++ testdata/zonemd_reload.tdir/zonemd_reload.conf | 1 + 2 files changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 1362ef7b0..1751095a8 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +1 June 2021: George + - Fix test for zonemd-check option. + 27 May 2021: Wouter - Merge #496 from banburybill: Use build system endianness if available, otherwise try to work it out. diff --git a/testdata/zonemd_reload.tdir/zonemd_reload.conf b/testdata/zonemd_reload.tdir/zonemd_reload.conf index 27bdb4424..9afd6e2b1 100644 --- a/testdata/zonemd_reload.tdir/zonemd_reload.conf +++ b/testdata/zonemd_reload.tdir/zonemd_reload.conf @@ -19,4 +19,5 @@ auth-zone: for-upstream: yes for-downstream: yes zonefile: "zonemd_reload.zone" + zonemd-check: yes #master: "127.0.0.1@@TOPORT@" From 553d1c78ef83bc7df0ef25d340ec69bc2a765df5 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Mon, 7 Jun 2021 14:51:21 +0200 Subject: [PATCH 045/156] - Merge #448 from shoeper: Update unbound-control.8.in, fix rpz_disable typo. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 1751095a8..2211086a7 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +7 June 2021: George + - Merge #448 from shoeper: Update unbound-control.8.in, fix + rpz_disable typo. + 1 June 2021: George - Fix test for zonemd-check option. From df53badfa2fb4be5b61f40e45a7c6b31d70672bf Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Mon, 7 Jun 2021 16:02:41 +0200 Subject: [PATCH 046/156] - Fix #425: Document auth-zone supports communication with DNS primary on nondefault port. --- doc/Changelog | 2 ++ doc/unbound.conf.5.in | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index 2211086a7..ab75add77 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 7 June 2021: George - Merge #448 from shoeper: Update unbound-control.8.in, fix rpz_disable typo. + - Fix #425: Document auth-zone supports communication with DNS + primary on nondefault port. 1 June 2021: George - Fix test for zonemd-check option. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index b0ed3aa26..f3cca17a9 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -1923,7 +1923,9 @@ Name of the authority zone. .B primary: \fI Where to download a copy of the zone from, with AXFR and IXFR. Multiple primaries can be specified. They are all tried if one fails. -With the "ip#name" notation a AXFR over TLS can be used. +To use a nondefault port for DNS communication append '@' with the port number. +You can append a '#' and a name, then AXFR over TLS can be used and the tls authentication certificates will be checked with that name. If you combine +the '@' and '#', the '@' comes first. If you point it at another Unbound instance, it would not work because that does not support AXFR/IXFR for the zone, but if you used \fBurl:\fR to download the zonefile as a text file from a webserver that would work. @@ -2500,6 +2502,15 @@ Name of the authority zone. .B primary: \fI Where to download a copy of the zone from, with AXFR and IXFR. Multiple primaries can be specified. They are all tried if one fails. +To use a nondefault port for DNS communication append '@' with the port number. +You can append a '#' and a name, then AXFR over TLS can be used and the tls authentication certificates will be checked with that name. If you combine +the '@' and '#', the '@' comes first. +If you point it at another Unbound instance, it would not work because +that does not support AXFR/IXFR for the zone, but if you used \fBurl:\fR to download +the zonefile as a text file from a webserver that would work. +If you specify the hostname, you cannot use the domain from the zonefile, +because it may not have that when retrieving that data, instead use a plain +IP address to avoid a circular dependency on retrieving that IP address. .TP .B master: \fI Alternate syntax for \fBprimary\fR. From 64546fcfb41a3de3322945baad5a3b115afbdc7b Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 8 Jun 2021 22:15:17 +0200 Subject: [PATCH 047/156] - Fix unused variable warning when compiling with --enable-dnstap. --- dnstap/dnstap.c | 18 +++++++++--------- doc/Changelog | 3 +++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/dnstap/dnstap.c b/dnstap/dnstap.c index 6577a019a..5c0cde1d5 100644 --- a/dnstap/dnstap.c +++ b/dnstap/dnstap.c @@ -507,19 +507,19 @@ dt_msg_send_outside_query(struct dt_env *env, void dt_msg_send_outside_response(struct dt_env *env, - struct sockaddr_storage *rsock, - struct sockaddr_storage *qsock, - enum comm_point_type cptype, - uint8_t *zone, size_t zone_len, - uint8_t *qbuf, size_t qbuf_len, - const struct timeval *qtime, - const struct timeval *rtime, - sldns_buffer *rmsg) + struct sockaddr_storage *rsock, + struct sockaddr_storage *qsock, + enum comm_point_type cptype, + uint8_t *zone, size_t zone_len, + uint8_t *qbuf, size_t qbuf_len, + const struct timeval *qtime, + const struct timeval *rtime, + sldns_buffer *rmsg) { struct dt_msg dm; uint16_t qflags; - log_assert(qbuf_len >= sizeof(qflags)); + (void)qbuf_len; log_assert(qbuf_len >= sizeof(qflags)); memcpy(&qflags, qbuf, sizeof(qflags)); qflags = ntohs(qflags); diff --git a/doc/Changelog b/doc/Changelog index ab75add77..401074b8a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +8 June 2021: George + - Fix unused variable warning when compiling with --enable-dnstap. + 7 June 2021: George - Merge #448 from shoeper: Update unbound-control.8.in, fix rpz_disable typo. From d02e956da0ff64d1ec49c1aaa815394099ed48eb Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Wed, 9 Jun 2021 12:32:58 +0200 Subject: [PATCH 048/156] - Changelog entry for #486: Make VAL_MAX_RESTART_COUNT configurable. - Generetated lexer and parser for #486; updated example.conf. --- doc/Changelog | 4 + doc/example.conf.in | 4 + util/configlexer.c | 4880 ++++++++++++++++++++++--------------------- util/configparser.c | 4779 ++++++++++++++++++------------------------ util/configparser.h | 795 +++---- 5 files changed, 4910 insertions(+), 5552 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 401074b8a..2f52a6b9f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +9 June 2021: George + - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. + - Generated lexer and parser for #486; updated example.conf. + 8 June 2021: George - Fix unused variable warning when compiling with --enable-dnstap. diff --git a/doc/example.conf.in b/doc/example.conf.in index e93c40be9..4b135f5db 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -557,6 +557,10 @@ server: # val-sig-skew-min: 3600 # val-sig-skew-max: 86400 + # The maximum number the validator should restart validation with + # another authority in case of failed validation. + # val-max-restart: 5 + # Should additional section of secure message also be kept clean of # unsecure data. Useful to shield the users of this validator from # potential bogus data in the additional section. All unsigned data diff --git a/util/configlexer.c b/util/configlexer.c index e31e36739..5fae5b41e 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -354,8 +354,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 349 -#define YY_END_OF_BUFFER 350 +#define YY_NUM_RULES 350 +#define YY_END_OF_BUFFER 351 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,387 +363,388 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3445] = +static const flex_int16_t yy_accept[3457] = { 0, - 1, 1, 323, 323, 327, 327, 331, 331, 335, 335, - 1, 1, 339, 339, 343, 343, 350, 347, 1, 321, - 321, 348, 2, 348, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 323, 324, 324, 325, - 348, 327, 328, 328, 329, 348, 334, 331, 332, 332, - 333, 348, 335, 336, 336, 337, 348, 346, 322, 2, - 326, 348, 346, 342, 339, 340, 340, 341, 348, 343, - 344, 344, 345, 348, 347, 0, 1, 2, 2, 2, - 2, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 1, 1, 324, 324, 328, 328, 332, 332, 336, 336, + 1, 1, 340, 340, 344, 344, 351, 348, 1, 322, + 322, 349, 2, 349, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 324, 325, 325, 326, + 349, 328, 329, 329, 330, 349, 335, 332, 333, 333, + 334, 349, 336, 337, 337, 338, 349, 347, 323, 2, + 327, 349, 347, 343, 340, 341, 341, 342, 349, 344, + 345, 345, 346, 349, 348, 0, 1, 2, 2, 2, + 2, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 323, - 0, 327, 0, 334, 0, 331, 335, 0, 346, 0, - 2, 2, 346, 342, 0, 339, 343, 0, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 324, + 0, 328, 0, 335, 0, 332, 336, 0, 347, 0, + 2, 2, 347, 343, 0, 340, 344, 0, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 346, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 128, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 137, - 347, 347, 347, 347, 347, 347, 347, 346, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 128, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 137, + 348, 348, 348, 348, 348, 348, 348, 347, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 112, 347, 320, - 347, 347, 347, 347, 347, 347, 347, 8, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 112, 348, 321, + 348, 348, 348, 348, 348, 348, 348, 8, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 129, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 142, 347, 347, 346, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 129, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 142, 348, 348, 347, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 313, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 314, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 346, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 67, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 245, 347, - 14, 15, 347, 19, 18, 347, 347, 229, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 347, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 67, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 246, 348, 14, 15, 348, 19, 18, 348, 348, 230, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 135, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 227, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 3, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 135, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 228, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 3, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 346, 347, 347, 347, 347, 347, 347, 347, - 307, 347, 347, 306, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 330, 347, 347, 347, 347, 347, 347, 347, 347, - 66, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 347, 348, 348, 348, 348, + 348, 348, 348, 308, 348, 348, 307, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 331, 348, 348, 348, 348, 348, + 348, 348, 348, 66, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 70, 347, 276, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 314, - 315, 347, 347, 347, 347, 347, 347, 347, 71, 347, - 347, 136, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 132, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 216, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 21, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 70, 348, 277, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 315, 316, 348, 348, 348, 348, 348, 348, + 348, 71, 348, 348, 136, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 132, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 217, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 21, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 161, - 347, 347, 347, 347, 347, 346, 330, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 110, 347, - 347, 347, 347, 347, 347, 347, 284, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 185, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 160, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 161, 348, 348, 348, 348, 348, 347, + 331, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 110, 348, 348, 348, 348, 348, 348, 348, + 285, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 186, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 160, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 109, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 35, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 36, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 109, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 35, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 36, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 68, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 134, 347, 347, - 347, 346, 347, 347, 347, 347, 347, 127, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 69, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 249, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 186, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 68, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 134, 348, 348, 348, 347, 348, 348, 348, + 348, 348, 127, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 69, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 250, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 187, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 57, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 267, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 61, 347, 62, 347, 347, 347, 347, 347, - 113, 347, 114, 347, 347, 347, 347, 111, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 57, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 268, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 61, 348, 62, + 348, 348, 348, 348, 348, 113, 348, 114, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 7, - 347, 347, 347, 347, 346, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 238, 347, 347, 347, 347, 163, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 250, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 111, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 7, 348, 348, 348, 348, + 347, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 239, + 348, 348, 348, 348, 163, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 251, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 48, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 58, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 208, 347, 207, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 16, - 17, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 72, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 215, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 48, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 58, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 209, 348, 208, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 16, 17, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 72, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 116, 347, 115, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 199, 347, 347, 347, 347, 347, 347, 347, 347, - 143, 347, 347, 347, 346, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 104, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 92, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 228, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 216, 348, 348, 348, 348, 348, 348, + 116, 348, 115, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 200, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 143, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 104, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 92, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 229, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 97, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 65, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 202, 203, 347, 347, 347, 278, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 6, 347, 347, 347, 347, 347, 347, 297, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 282, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 97, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 65, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 203, 204, + 348, 348, 348, 279, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 6, 348, 348, + 348, 348, 348, 348, 298, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 308, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 45, 347, 347, 347, - 347, 47, 347, 347, 347, 93, 347, 347, 347, 347, - 347, 55, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 346, 347, 195, 347, 347, 347, 138, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 220, - 347, 196, 347, 347, 347, 235, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 56, 347, 347, 347, + 348, 348, 283, 348, 348, 348, 348, 348, 348, 309, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 45, 348, 348, 348, 348, 47, 348, + 348, 348, 93, 348, 348, 348, 348, 348, 55, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 347, 348, 196, 348, 348, 348, 138, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 221, 348, 197, + 348, 348, 348, 236, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 140, 121, 347, - 122, 347, 347, 347, 120, 347, 347, 347, 347, 347, - 347, 347, 347, 158, 347, 347, 53, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 266, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 197, 347, 347, 347, 347, 347, 200, - 347, 206, 347, 347, 347, 347, 347, 347, 234, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 108, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 56, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 140, 121, 348, 122, 348, + 348, 348, 120, 348, 348, 348, 348, 348, 348, 348, + 348, 158, 348, 348, 53, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 267, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 198, 348, 348, 348, 348, 348, 201, 348, 207, + 348, 348, 348, 348, 348, 348, 235, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 108, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 133, 347, 347, 347, 347, 347, - 347, 347, 63, 347, 347, 347, 29, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 20, 347, - 347, 347, 347, 347, 347, 30, 39, 347, 168, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 193, 347, 347, 346, 347, 347, 347, 347, - 347, 347, 80, 82, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 286, 347, 347, - 347, 347, 246, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 133, 348, 348, 348, 348, 348, 348, 348, + 63, 348, 348, 348, 29, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 20, 348, 348, 348, + 348, 348, 348, 30, 39, 348, 168, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 194, 348, 348, 347, 348, 348, 348, 348, 348, + 348, 80, 82, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 287, 348, 348, 348, + 348, 247, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 123, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 157, 347, 49, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 301, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 162, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 295, 347, 347, 347, 226, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 311, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 179, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 123, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 157, 348, 49, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 302, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 162, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 296, 348, 348, 348, 227, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 312, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 117, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 174, 347, 187, 347, 347, 347, 347, 347, 347, 346, - 347, 146, 347, 347, 347, 347, 347, 103, 347, 347, - 347, 347, 218, 347, 347, 347, 347, 347, 347, 236, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 258, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 139, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 180, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 117, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 175, + 348, 188, 348, 348, 348, 348, 348, 348, 348, 347, + 348, 146, 348, 348, 348, 348, 348, 103, 348, 348, + 348, 348, 219, 348, 348, 348, 348, 348, 348, 237, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 259, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 139, 348, 348, - 347, 347, 178, 347, 347, 347, 347, 347, 347, 83, - 347, 84, 347, 347, 347, 347, 347, 64, 304, 347, - 347, 347, 347, 347, 91, 188, 347, 209, 347, 239, - 347, 347, 201, 279, 347, 347, 347, 347, 347, 347, - 76, 347, 190, 347, 347, 347, 347, 347, 9, 347, - 347, 347, 347, 347, 107, 347, 347, 347, 347, 271, - 347, 347, 347, 347, 217, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 179, 348, 348, 348, 348, 348, 348, 83, + 348, 84, 348, 348, 348, 348, 348, 64, 305, 348, + 348, 348, 348, 348, 91, 189, 348, 210, 348, 240, + 348, 348, 202, 280, 348, 348, 348, 348, 348, 348, + 76, 348, 191, 348, 348, 348, 348, 348, 9, 348, + 348, 348, 348, 348, 107, 348, 348, 348, 348, 272, + 348, 348, 348, 348, 218, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 346, 347, 347, 347, 347, - 177, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 164, 347, 285, 347, 347, 347, 347, 347, 257, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 230, 347, 347, 347, 347, 347, 277, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 305, 347, - 189, 347, 347, 347, 347, 347, 347, 347, 347, 75, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 347, 348, 348, 348, + 348, 178, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 164, 348, 286, 348, 348, 348, 348, 348, + 258, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 231, 348, 348, 348, 348, 348, 278, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 306, - 77, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 106, 347, 347, 347, 347, 269, 347, 347, 347, 347, - 281, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 222, 37, 31, 33, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 38, 347, - 32, 34, 347, 347, 347, 347, 347, 347, 347, 347, - 102, 347, 347, 347, 347, 347, 347, 347, 347, 346, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 224, 221, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 190, 348, 348, 348, 348, 348, 348, 348, 348, + 75, 77, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 106, 348, 348, 348, 348, 270, 348, 348, 348, + 348, 282, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 223, 37, 31, 33, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 38, + 348, 32, 34, 348, 348, 348, 348, 348, 348, 348, + 348, 102, 348, 174, 348, 348, 348, 348, 348, 348, + 348, 347, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 225, 222, 348, 348, 348, 348, 348, - 347, 74, 347, 347, 347, 141, 347, 124, 347, 347, - 347, 347, 347, 347, 347, 347, 159, 50, 347, 347, - 347, 338, 13, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 299, 347, 302, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 12, 347, 347, - 22, 347, 347, 347, 347, 347, 275, 347, 347, 347, - 347, 283, 347, 347, 347, 78, 347, 232, 347, 347, - 347, 347, 347, 223, 347, 347, 73, 347, 347, 347, - 347, 347, 23, 347, 347, 46, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 173, 172, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 74, 348, 348, 348, 141, 348, 124, + 348, 348, 348, 348, 348, 348, 348, 348, 159, 50, + 348, 348, 348, 339, 13, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 300, 348, 303, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 12, + 348, 348, 22, 348, 348, 348, 348, 348, 276, 348, + 348, 348, 348, 284, 348, 348, 348, 78, 348, 233, + 348, 348, 348, 348, 348, 224, 348, 348, 73, 348, + 348, 348, 348, 348, 23, 348, 348, 46, 348, 348, - 347, 347, 338, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 225, 219, 347, 237, 347, 347, 287, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 85, 347, 347, 347, 347, 270, 347, 347, 347, - 347, 205, 347, 347, 347, 347, 347, 231, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 309, - 310, 170, 347, 347, 79, 347, 347, 347, 347, 180, - 347, 347, 347, 118, 119, 347, 347, 347, 25, 347, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 173, 172, 348, 348, 339, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 226, 220, 348, 238, 348, 348, + 288, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 85, 348, 348, 348, 348, 271, 348, + 348, 348, 348, 206, 348, 348, 348, 348, 348, 232, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 310, 311, 170, 348, 348, 79, 348, 348, 348, - 347, 165, 347, 167, 347, 210, 347, 347, 347, 347, - 171, 347, 347, 347, 347, 240, 347, 347, 347, 347, - 347, 347, 347, 148, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 248, 347, 347, 347, - 347, 347, 347, 347, 318, 347, 27, 347, 280, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 89, 211, 347, 347, 268, 347, 303, - 347, 204, 347, 347, 347, 347, 347, 59, 347, 347, - 347, 347, 347, 347, 4, 347, 347, 347, 347, 131, - 147, 347, 347, 347, 184, 347, 347, 347, 347, 347, + 348, 181, 348, 348, 348, 118, 119, 348, 348, 348, + 25, 348, 348, 165, 348, 167, 348, 211, 348, 348, + 348, 348, 171, 348, 348, 348, 348, 241, 348, 348, + 348, 348, 348, 348, 348, 148, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 249, 348, + 348, 348, 348, 348, 348, 348, 319, 348, 27, 348, + 281, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 89, 212, 348, 348, 269, + 348, 304, 348, 205, 348, 348, 348, 348, 348, 59, + 348, 348, 348, 348, 348, 348, 4, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 243, 40, 41, 347, 347, 347, 347, - 347, 347, 347, 288, 347, 347, 347, 347, 347, 347, - 347, 256, 347, 347, 347, 347, 347, 347, 347, 347, - 214, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 88, 347, 60, 274, 347, 244, 347, - 347, 347, 347, 347, 11, 347, 347, 347, 347, 347, - 347, 347, 347, 130, 347, 347, 347, 347, 212, 94, - 347, 347, 43, 347, 347, 347, 347, 347, 347, 347, - 347, 176, 347, 347, 347, 347, 347, 347, 347, 150, + 348, 131, 147, 348, 348, 348, 185, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 244, 40, 41, 348, 348, + 348, 348, 348, 348, 348, 289, 348, 348, 348, 348, + 348, 348, 348, 257, 348, 348, 348, 348, 348, 348, + 348, 348, 215, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 88, 348, 60, 275, 348, + 245, 348, 348, 348, 348, 348, 11, 348, 348, 348, + 348, 348, 348, 348, 348, 130, 348, 348, 348, 348, + 213, 94, 348, 348, 43, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 247, 347, 347, 347, 347, 347, - 255, 347, 347, 347, 347, 144, 347, 347, 347, 125, - 126, 347, 347, 347, 96, 100, 95, 347, 347, 347, - 347, 86, 347, 347, 347, 347, 347, 347, 10, 347, - 347, 347, 347, 347, 272, 312, 347, 347, 347, 347, - 347, 317, 42, 347, 347, 347, 347, 347, 175, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 101, 99, 347, 54, 347, 347, - 87, 300, 347, 347, 347, 347, 24, 347, 347, 347, + 348, 348, 348, 177, 348, 348, 348, 348, 348, 348, + 348, 150, 348, 348, 348, 348, 248, 348, 348, 348, + 348, 348, 256, 348, 348, 348, 348, 144, 348, 348, + 348, 125, 126, 348, 348, 348, 96, 100, 95, 348, + 348, 348, 348, 86, 348, 348, 348, 348, 348, 348, + 10, 348, 348, 348, 348, 348, 273, 313, 348, 348, + 348, 348, 348, 318, 42, 348, 348, 348, 348, 348, + 176, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 101, 99, 348, 54, - 347, 347, 198, 347, 347, 347, 347, 347, 213, 347, - 347, 347, 347, 347, 347, 347, 347, 194, 347, 347, - 166, 81, 347, 347, 347, 347, 347, 289, 347, 347, - 347, 347, 347, 347, 347, 252, 347, 347, 251, 145, - 347, 347, 98, 51, 347, 151, 152, 155, 156, 153, - 154, 90, 298, 347, 347, 273, 347, 347, 347, 26, - 347, 169, 347, 347, 347, 347, 192, 347, 242, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 182, - 181, 44, 347, 347, 347, 347, 347, 347, 347, 347, + 348, 348, 87, 301, 348, 348, 348, 348, 24, 348, + 348, 348, 348, 348, 199, 348, 348, 348, 348, 348, + 214, 348, 348, 348, 348, 348, 348, 348, 348, 195, + 348, 348, 166, 81, 348, 348, 348, 348, 348, 290, + 348, 348, 348, 348, 348, 348, 348, 253, 348, 348, + 252, 145, 348, 348, 98, 51, 348, 151, 152, 155, + 156, 153, 154, 90, 299, 348, 348, 274, 348, 348, + 348, 26, 348, 169, 348, 348, 348, 348, 193, 348, + 243, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 296, 347, 347, 347, 347, 105, - 347, 241, 347, 265, 293, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 319, 347, 52, 5, - 347, 347, 233, 347, 347, 294, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 253, 28, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 254, - 347, 347, 347, 149, 347, 347, 347, 347, 347, 347, - 347, 347, 183, 347, 191, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 290, 347, 347, 347, 347, 347, + 348, 183, 182, 44, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 297, 348, 348, 348, + 348, 105, 348, 242, 348, 266, 294, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 320, 348, + 52, 5, 348, 348, 234, 348, 348, 295, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 254, 28, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 255, 348, 348, 348, 149, 348, 348, 348, 348, + 348, 348, 348, 348, 184, 348, 192, 348, 348, 348, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 316, 347, 347, 261, 347, 347, 347, 347, - 347, 291, 347, 347, 347, 347, 347, 347, 292, 347, - 347, 347, 259, 347, 262, 263, 347, 347, 347, 347, - 347, 260, 264, 0 + 348, 348, 348, 348, 348, 348, 291, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 317, 348, 348, 262, 348, 348, + 348, 348, 348, 292, 348, 348, 348, 348, 348, 348, + 293, 348, 348, 348, 260, 348, 263, 264, 348, 348, + 348, 348, 348, 261, 265, 0 } ; static const YY_CHAR yy_ec[256] = @@ -786,17 +787,17 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3463] = +static const flex_int16_t yy_base[3475] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 4039, 3298, 81, 6721, - 6721, 6721, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 4558, 4515, 81, 6741, + 6741, 6741, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 3236, 6721, 6721, 6721, - 107, 2864, 6721, 6721, 6721, 154, 2451, 2010, 6721, 6721, - 6721, 245, 1786, 6721, 6721, 6721, 163, 1733, 6721, 249, - 6721, 253, 148, 1670, 1574, 6721, 6721, 6721, 257, 1426, - 6721, 6721, 6721, 233, 1294, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 4396, 6741, 6741, 6741, + 107, 3671, 6741, 6741, 6741, 154, 3247, 3086, 6741, 6741, + 6741, 245, 2975, 6741, 6741, 6741, 163, 2912, 6741, 249, + 6741, 253, 148, 2860, 2006, 6741, 6741, 6741, 257, 1786, + 6741, 6741, 6741, 233, 1674, 263, 201, 0, 267, 0, 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, @@ -804,8 +805,8 @@ static const flex_int16_t yy_base[3463] = 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, - 367, 389, 390, 394, 393, 395, 396, 403, 404, 1266, - 419, 1115, 422, 1023, 429, 930, 888, 433, 775, 437, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1564, + 419, 1169, 422, 1003, 429, 930, 888, 433, 775, 437, 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, @@ -826,737 +827,739 @@ static const flex_int16_t yy_base[3463] = 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, 763, 766, 762, 774, 773, 765, 769, 794, 799, 782, 787, 800, 801, 804, 802, 803, 806, 808, 809, 814, - 818, 819, 823, 807, 825, 827, 834, 829, 6721, 831, + 818, 819, 823, 807, 825, 827, 834, 829, 6741, 831, 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, - 864, 867, 876, 898, 849, 871, 868, 878, 881, 6721, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6741, 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, - 904, 912, 933, 906, 915, 929, 945, 942, 920, 930, + 904, 912, 933, 906, 920, 915, 945, 942, 930, 943, - 944, 946, 948, 958, 953, 955, 956, 957, 966, 861, - 961, 962, 972, 964, 973, 974, 978, 979, 980, 987, - 993, 985, 976, 988, 994, 996, 999, 998, 1011, 1008, - 1006, 1004, 1001, 1017, 1027, 1019, 1030, 1031, 1034, 1033, - 1022, 1043, 1032, 1047, 1048, 1039, 1049, 1057, 1054, 1041, - 1055, 1059, 1060, 1061, 1063, 1066, 1067, 1068, 1069, 1073, - 1077, 1071, 1087, 1074, 1082, 1089, 1084, 6721, 1091, 6721, - 1093, 1094, 1095, 1096, 1100, 1098, 1097, 6721, 1101, 1107, - 1108, 1099, 1116, 1111, 1129, 1122, 1112, 1124, 1130, 1131, - 1134, 1142, 1137, 1138, 1146, 1139, 1143, 1144, 1147, 1150, + 944, 946, 952, 954, 955, 953, 957, 958, 966, 861, + 961, 970, 981, 962, 964, 968, 971, 974, 986, 983, + 990, 991, 993, 995, 997, 996, 1001, 998, 1011, 1005, + 1008, 1021, 1000, 1022, 1033, 1002, 1030, 1034, 1032, 1037, + 1019, 1040, 1043, 1045, 1046, 1047, 1048, 1058, 1050, 1053, + 1055, 1057, 1059, 1065, 1061, 1063, 1067, 1069, 1072, 1077, + 1080, 1078, 1070, 1086, 1079, 1087, 1089, 6741, 1092, 6741, + 1094, 1095, 1096, 1097, 1099, 1101, 1098, 6741, 1102, 1106, + 1107, 1109, 1114, 1116, 1119, 1112, 1126, 1128, 1129, 1130, + 1131, 1141, 1133, 1134, 1148, 1138, 1145, 1143, 1147, 1151, - 1151, 1152, 1155, 1158, 1159, 1162, 1179, 6721, 1161, 1163, - 1171, 1165, 1170, 1172, 1176, 1190, 1191, 1173, 1197, 1201, - 1203, 1210, 1206, 1207, 1208, 1209, 1213, 1182, 1214, 1218, - 1216, 1222, 1225, 1224, 1226, 1230, 1227, 1228, 1229, 1245, - 6721, 1237, 1238, 1249, 1256, 1252, 1254, 1241, 1257, 1255, - 1258, 1259, 1261, 1265, 517, 1272, 1278, 1268, 1273, 1281, - 1279, 1283, 1282, 1284, 1287, 1290, 1288, 1289, 1301, 1298, - 1303, 1309, 1312, 1314, 1316, 1323, 1325, 1310, 1318, 1326, - 1322, 1320, 1328, 1332, 1333, 1321, 1334, 1337, 1346, 1343, - 1342, 1345, 1348, 1351, 1349, 1354, 1356, 1355, 1357, 1365, + 1149, 1156, 1157, 1158, 1159, 1160, 1179, 6741, 1161, 1163, + 1167, 1172, 1164, 1170, 1186, 1188, 1191, 1189, 1201, 1194, + 1203, 1214, 1207, 1209, 1215, 1197, 1211, 1216, 1221, 1223, + 1226, 1227, 1228, 1229, 1232, 1233, 1235, 1236, 1234, 1237, + 1238, 6741, 1247, 1250, 1257, 1248, 1258, 1249, 1259, 1260, + 1262, 1263, 1265, 1177, 1266, 517, 1267, 1272, 1279, 1276, + 1286, 1282, 1284, 1283, 1285, 1290, 1289, 1293, 1291, 1304, + 1301, 1306, 1311, 1319, 1316, 1318, 1326, 1328, 1308, 1321, + 1296, 1325, 1323, 1324, 1331, 1335, 1336, 1337, 1339, 1344, + 1341, 1346, 1347, 1348, 1349, 1351, 1353, 1355, 1354, 1357, - 1358, 1366, 1370, 1367, 1368, 1372, 1376, 1374, 1383, 1384, - 1386, 6721, 1393, 1391, 1394, 1395, 1402, 1403, 1404, 1389, - 1396, 1408, 1410, 1411, 1412, 1418, 1413, 1419, 1420, 1424, - 1425, 1427, 1435, 1430, 1428, 1445, 1444, 1446, 1437, 1448, - 1449, 1433, 1456, 1453, 1463, 1461, 1459, 1460, 1472, 1467, - 1468, 1469, 1476, 1473, 1477, 1478, 1475, 1490, 1487, 1479, - 1499, 1496, 1498, 1506, 1501, 1485, 1507, 1504, 1512, 1511, - 1515, 1516, 1517, 1518, 1525, 1520, 1521, 1522, 1526, 1527, - 1528, 1531, 1535, 1546, 1532, 1539, 1542, 1544, 1548, 1549, - 1551, 1556, 1557, 1558, 1559, 1560, 1561, 1567, 1564, 1571, + 1367, 1358, 1365, 1372, 1368, 1381, 1369, 1373, 1371, 1385, + 1378, 1388, 6741, 1397, 1393, 1395, 1396, 1394, 1401, 1405, + 1407, 1406, 1408, 1412, 1409, 1411, 1417, 1418, 1413, 1419, + 1420, 1421, 1426, 1434, 1429, 1439, 1446, 1445, 1447, 1433, + 1441, 1449, 1437, 1459, 1457, 1464, 1460, 1450, 1461, 1471, + 1467, 1468, 1469, 1478, 1473, 1476, 1477, 1479, 1483, 1486, + 1487, 1497, 1494, 1495, 1502, 1503, 1498, 1507, 1508, 1511, + 1512, 1514, 1515, 1516, 1517, 1524, 1521, 1519, 1526, 1529, + 1520, 1531, 1522, 1536, 1545, 1540, 1542, 1543, 1546, 1547, + 1548, 1549, 1552, 1557, 1554, 1558, 1559, 1561, 1569, 1562, - 1570, 1572, 1582, 1580, 1583, 1585, 1586, 1587, 1589, 1590, - 1592, 1597, 1598, 1604, 1606, 1607, 1609, 1608, 1612, 1620, - 1610, 1618, 1625, 1619, 1626, 1627, 1630, 1611, 1637, 1638, - 1641, 1643, 1645, 6721, 1631, 1634, 1646, 1649, 1651, 1652, - 1655, 1662, 1657, 1660, 1658, 1659, 1661, 1685, 6721, 1664, - 6721, 6721, 1669, 6721, 6721, 1671, 1668, 6721, 1672, 1682, - 1683, 1688, 1695, 1700, 1698, 1675, 1689, 1702, 1712, 1723, - 1708, 1710, 1711, 1714, 1715, 1716, 1721, 1719, 1717, 1728, - 1734, 1746, 1743, 1747, 1744, 1749, 1751, 1755, 1758, 1757, - 1764, 1765, 1756, 1766, 1769, 1770, 1772, 1771, 1774, 1777, + 1571, 1574, 1579, 1580, 1581, 1582, 1584, 1585, 1586, 1589, + 1592, 1594, 1590, 1602, 1603, 1593, 1605, 1606, 1609, 1610, + 1613, 1622, 1621, 1617, 1624, 1618, 1627, 1629, 1631, 1630, + 1634, 1637, 1640, 1642, 1641, 6741, 1635, 1649, 1648, 1652, + 1653, 1655, 1657, 1664, 1659, 1662, 1660, 1661, 1663, 1687, + 6741, 1666, 6741, 6741, 1671, 6741, 6741, 1670, 1676, 6741, + 1684, 1685, 1677, 1691, 1672, 1697, 1700, 1701, 1702, 1703, + 1710, 1724, 1708, 1712, 1714, 1717, 1705, 1718, 1715, 1727, + 1730, 1734, 1737, 1750, 1741, 1751, 1739, 1753, 1755, 1757, + 1760, 1761, 1765, 1767, 1735, 1768, 1770, 1771, 1773, 1772, - 1780, 1781, 1778, 1776, 1783, 1793, 1784, 1798, 1801, 6721, - 1799, 1808, 1803, 1812, 1809, 1813, 1815, 1810, 1811, 1821, - 1824, 1817, 1826, 1827, 1828, 1829, 1830, 1831, 1834, 1836, - 1840, 1838, 1849, 1839, 6721, 1842, 1852, 1841, 1854, 1853, - 1857, 1863, 1855, 1856, 1864, 1866, 1876, 1871, 1867, 1874, - 1877, 1878, 1880, 1884, 6721, 1883, 1889, 1890, 1891, 1892, - 1894, 1897, 1899, 1900, 1901, 1903, 1904, 1905, 1906, 1915, - 1907, 1912, 1918, 1919, 1922, 1927, 1929, 1931, 1939, 1930, - 1932, 1941, 1934, 1940, 1942, 1944, 1945, 1947, 1957, 1959, - 1946, 1961, 1956, 1958, 1969, 1971, 1968, 1973, 1974, 1975, + 1775, 1778, 1781, 1782, 1779, 1777, 1784, 1794, 1785, 1799, + 1802, 6741, 1800, 1809, 1804, 1813, 1810, 1814, 1816, 1811, + 1812, 1822, 1825, 1818, 1827, 1828, 1829, 1830, 1831, 1832, + 1835, 1837, 1841, 1839, 1850, 1840, 6741, 1843, 1853, 1842, + 1855, 1854, 1858, 1864, 1856, 1857, 1865, 1867, 1877, 1872, + 1868, 1875, 1878, 1879, 1881, 1885, 6741, 1884, 1890, 1891, + 1892, 1893, 1895, 1898, 1900, 1901, 1902, 1904, 1905, 1906, + 1907, 1916, 1908, 1913, 1919, 1920, 1923, 1928, 1930, 1932, + 1940, 1931, 1933, 1942, 1935, 1941, 1943, 1945, 1946, 1948, + 1958, 1960, 1947, 1962, 1957, 1959, 1970, 1972, 1969, 1974, - 1976, 1981, 1983, 1984, 1985, 1988, 1995, 1979, 1991, 1993, - 2000, 2004, 2014, 2002, 2006, 2015, 1996, 2009, 2019, 2012, - 6721, 2021, 2023, 6721, 2025, 2026, 2027, 2049, 2032, 2030, - 2028, 2036, 2039, 2040, 2041, 2047, 2050, 2053, 2063, 2042, - 2059, 2068, 2066, 2071, 2075, 2069, 2077, 2078, 2079, 2080, - 2082, 2085, 2098, 2100, 2096, 2102, 2107, 2083, 2103, 2106, - 2125, 2104, 2108, 2109, 2115, 2110, 2112, 2120, 2118, 2119, - 2121, 2114, 2135, 2136, 2134, 2137, 2142, 2143, 2148, 2149, - 2150, 6721, 2160, 2156, 2152, 2157, 2163, 2172, 2164, 2165, - 6721, 2168, 2173, 2167, 2180, 2178, 2175, 2181, 2179, 2188, + 1975, 1976, 1977, 1982, 1984, 1986, 1985, 1989, 1990, 1997, + 1992, 2000, 1996, 2001, 2002, 2010, 2008, 2011, 2016, 2013, + 2019, 2021, 2022, 6741, 2024, 2028, 6741, 2025, 2027, 2029, + 2051, 2030, 2032, 2034, 2044, 2033, 2053, 2037, 2045, 2061, + 2055, 2071, 2064, 2063, 2074, 2068, 2076, 2075, 2079, 2080, + 2082, 2085, 2086, 2040, 2088, 2098, 2102, 2101, 2109, 2111, + 2097, 2089, 2106, 2125, 2110, 2107, 2113, 2116, 2114, 2118, + 2121, 2120, 2117, 2130, 2132, 2141, 2137, 2138, 2140, 2143, + 2146, 2153, 2156, 2147, 6741, 2161, 2154, 2162, 2163, 2165, + 2172, 2169, 2170, 6741, 2171, 2173, 2175, 2183, 2176, 2179, - 2185, 2189, 2191, 2195, 2190, 2192, 2203, 6721, 2198, 6721, - 2193, 2206, 2208, 2210, 2211, 2212, 2216, 2215, 2217, 6721, - 6721, 2218, 2219, 2232, 2227, 2234, 2224, 2235, 6721, 2236, - 2246, 6721, 2237, 2244, 2242, 2249, 2250, 2253, 2251, 2255, - 2260, 2257, 2265, 2258, 2262, 2261, 6721, 2276, 2263, 2278, - 2280, 2272, 2281, 2282, 2286, 2289, 6721, 2268, 2292, 2293, - 2300, 2296, 2297, 2298, 2302, 2303, 2307, 2309, 2310, 2311, - 2313, 2318, 2321, 2317, 2319, 2329, 2327, 2337, 6721, 2333, - 2334, 2320, 2341, 2339, 2343, 2336, 2346, 2347, 2348, 2350, - 2351, 2349, 2356, 2357, 2358, 2359, 2368, 2369, 2364, 2366, + 2187, 2184, 2186, 2188, 2190, 2194, 2196, 2193, 2195, 2207, + 6741, 2197, 6741, 2206, 2209, 2210, 2211, 2214, 2216, 2217, + 2218, 2219, 6741, 6741, 2221, 2222, 2235, 2233, 2237, 2225, + 2238, 6741, 2239, 2248, 6741, 2249, 2241, 2243, 2245, 2252, + 2254, 2256, 2258, 2266, 2259, 2267, 2262, 2270, 2264, 6741, + 2271, 2263, 2276, 2280, 2282, 2283, 2286, 2288, 2287, 6741, + 2289, 2290, 2294, 2302, 2304, 2301, 2297, 2305, 2311, 2307, + 2309, 2313, 2314, 2316, 2324, 2326, 2322, 2330, 2337, 2334, + 2338, 6741, 2336, 2340, 2323, 2348, 2344, 2346, 2347, 2350, + 2351, 2352, 2354, 2360, 2353, 2361, 2355, 2362, 2365, 2376, - 2373, 2374, 2376, 2377, 2384, 2381, 2382, 2383, 2385, 6721, - 2386, 2388, 2392, 2396, 2398, 2394, 171, 2395, 2397, 2404, - 2406, 2408, 2419, 2407, 2421, 2426, 2413, 2423, 2422, 2425, - 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2439, 6721, 2441, - 2442, 2444, 2448, 2447, 2450, 2455, 6721, 2457, 2464, 2467, - 2476, 2459, 2468, 2477, 2473, 2478, 2479, 2481, 2483, 2485, - 2484, 2487, 2493, 2490, 6721, 2495, 2498, 2500, 2491, 2507, - 2506, 2499, 2513, 2514, 2515, 2518, 2516, 2517, 2520, 2519, - 2521, 2522, 2527, 2526, 2523, 2525, 2535, 2536, 2537, 2546, - 2547, 2539, 2548, 2549, 6721, 2559, 2550, 2554, 2552, 2555, + 2378, 2367, 2375, 2386, 2368, 2377, 2381, 2379, 2392, 2383, + 2389, 2390, 2394, 6741, 2395, 2400, 2396, 2402, 2403, 2405, + 171, 2406, 2411, 2410, 2412, 2415, 2428, 2413, 2429, 2436, + 2416, 2434, 2319, 2435, 2431, 2437, 2438, 2441, 2442, 2446, + 2444, 2447, 6741, 2449, 2450, 2452, 2454, 2457, 2455, 2460, + 6741, 2458, 2467, 2472, 2481, 2471, 2473, 2418, 2482, 2484, + 2483, 2485, 2486, 2488, 2489, 2493, 2495, 2491, 6741, 2497, + 2498, 2499, 2508, 2509, 2511, 2512, 2516, 2517, 2518, 2513, + 2519, 2520, 2523, 2522, 2524, 2526, 2530, 2533, 2529, 2538, + 2542, 2539, 2540, 2543, 2546, 2547, 2552, 2550, 6741, 2562, - 2557, 2562, 2570, 2577, 2561, 2572, 2574, 2578, 2588, 2581, - 2583, 2590, 2598, 2595, 2603, 2591, 2604, 2605, 2613, 2602, - 2615, 2617, 2606, 2618, 2625, 2621, 2608, 2624, 2627, 2631, - 2638, 2639, 2635, 2642, 2634, 2651, 2644, 2659, 2664, 2655, - 6721, 2653, 2663, 2647, 2667, 2674, 2670, 2669, 2672, 2671, - 2675, 2680, 2681, 2682, 2689, 2686, 2637, 2688, 2690, 2692, - 2694, 2697, 2693, 2698, 2705, 2708, 2701, 2713, 2715, 6721, - 2718, 2709, 2719, 2720, 2725, 2722, 2727, 2730, 2728, 2732, - 2734, 2736, 2737, 2739, 2740, 2741, 2750, 2746, 2745, 2747, - 2748, 6721, 2759, 2752, 2758, 2760, 2764, 2765, 2770, 2768, + 2553, 2557, 2561, 2560, 2563, 2573, 2564, 2583, 2566, 2574, + 2581, 2586, 2595, 2584, 2589, 2599, 2590, 2601, 2602, 2613, + 2605, 2612, 2615, 2609, 2619, 2621, 2622, 2623, 2631, 2627, + 2628, 2629, 2632, 2633, 2643, 2644, 2635, 2645, 2647, 2650, + 2639, 2657, 2662, 2664, 6741, 2666, 2654, 2668, 2671, 2678, + 2673, 2652, 2676, 2679, 2683, 2684, 2685, 2687, 2694, 2689, + 2691, 2695, 2697, 2696, 2698, 2705, 2700, 2706, 2708, 2715, + 2711, 2717, 2719, 6741, 2720, 2722, 2724, 2725, 2729, 2730, + 2733, 2735, 2737, 2738, 2739, 2741, 2744, 2575, 2745, 2746, + 2753, 2749, 2752, 2755, 2751, 6741, 2762, 2756, 2758, 2767, - 2772, 2778, 2776, 2780, 2782, 2783, 2784, 6721, 2791, 2792, - 2789, 2793, 2795, 2796, 2799, 2801, 2802, 6721, 2803, 2805, - 2806, 2809, 2807, 2811, 2818, 2819, 2814, 6721, 2831, 2821, - 2817, 2826, 2828, 2829, 2830, 2832, 2836, 2838, 2839, 2842, - 2845, 2849, 2850, 6721, 2851, 2859, 2860, 2852, 2854, 2865, - 2866, 2867, 2868, 2871, 2875, 2869, 6721, 2890, 2887, 2886, - 2894, 2889, 2874, 2892, 2896, 2898, 2895, 2899, 2902, 2904, - 6721, 2906, 2905, 2909, 2911, 2914, 2915, 2916, 2928, 2917, - 2921, 2925, 2926, 2930, 2931, 2932, 2936, 2942, 2934, 2944, - 2948, 2946, 2951, 2938, 2954, 2962, 2963, 2959, 2965, 2966, + 2768, 2770, 2772, 2776, 2775, 2782, 2784, 2774, 2785, 2786, + 2787, 6741, 2794, 2796, 2797, 2798, 2801, 2799, 2804, 2805, + 2807, 2809, 6741, 2810, 2812, 2811, 2813, 2814, 2817, 2824, + 2825, 2820, 6741, 2833, 2822, 2831, 2832, 2835, 2839, 2837, + 2843, 2838, 2841, 2845, 2849, 2857, 2846, 2859, 6741, 2848, + 2871, 2850, 2872, 2874, 2861, 2862, 2873, 2878, 2876, 2887, + 2879, 6741, 2890, 2892, 2894, 2901, 2880, 2897, 2898, 2902, + 2903, 2904, 2906, 2909, 2910, 6741, 2911, 2913, 2915, 2917, + 2920, 2919, 2921, 2934, 2927, 2929, 2932, 2935, 2936, 2938, + 2942, 2945, 2944, 2941, 2953, 2954, 2943, 2956, 2960, 2963, - 2967, 2968, 2969, 2976, 2977, 2981, 2978, 2984, 6721, 2987, - 2988, 2982, 2980, 2990, 2993, 2994, 2996, 2999, 2995, 2997, - 3001, 3004, 3008, 3017, 3020, 3010, 3012, 3021, 3022, 3023, - 3024, 3025, 3026, 3031, 3034, 3033, 3035, 3036, 3043, 3039, - 3042, 3051, 3047, 3050, 3052, 3053, 3054, 3056, 3059, 3060, - 3064, 3057, 3063, 3073, 3079, 3081, 3065, 3083, 3075, 3084, - 3086, 3089, 6721, 3092, 3096, 3090, 3094, 3097, 3103, 3104, - 3106, 3107, 3098, 3112, 3115, 3116, 3118, 3121, 3123, 3124, - 3131, 3127, 6721, 3128, 6721, 3129, 3130, 3133, 3142, 3137, - 6721, 3141, 6721, 3145, 3152, 3143, 3147, 6721, 3153, 3149, + 2967, 2972, 2968, 2970, 2971, 2973, 2974, 2976, 2984, 2985, + 2992, 2987, 2990, 6741, 2994, 2996, 2997, 2983, 2998, 2999, + 3002, 3004, 3007, 3003, 3012, 3009, 3005, 3015, 3022, 3030, + 3018, 3025, 3027, 3028, 3031, 3032, 3033, 3035, 3036, 3045, + 3043, 3041, 3042, 3050, 3051, 3053, 3062, 3057, 3058, 3060, + 3063, 3064, 3065, 3066, 3071, 3080, 3069, 3073, 3075, 3085, + 3090, 3091, 3093, 3094, 3095, 3098, 3099, 6741, 3049, 3103, + 3100, 3102, 3109, 3113, 3114, 3116, 3106, 3117, 3123, 3120, + 3127, 3126, 3129, 3132, 3133, 3140, 3136, 6741, 3137, 6741, + 3138, 3139, 3142, 3151, 3148, 6741, 3150, 6741, 3154, 3161, - 3154, 3155, 3158, 3160, 3162, 3165, 3166, 3167, 3168, 3175, - 3171, 3169, 3173, 3179, 3181, 3183, 3189, 3190, 3191, 3192, - 3194, 3195, 3197, 3205, 3198, 3200, 3209, 3202, 3210, 6721, - 3219, 3222, 3214, 3223, 3216, 3212, 3224, 3226, 3229, 3231, - 3233, 3235, 3237, 3239, 3242, 3244, 3247, 3248, 3249, 3250, - 3260, 3258, 3267, 6721, 3262, 3264, 3265, 3266, 6721, 3269, - 3270, 3279, 3281, 3271, 3273, 3275, 3283, 3287, 3277, 3289, - 3292, 3293, 3303, 3300, 3304, 6721, 3306, 3308, 3302, 3314, - 3310, 3322, 3324, 3320, 3328, 3330, 3332, 3333, 3321, 3319, - 3335, 3336, 3339, 3346, 3347, 3343, 3350, 3345, 3352, 3359, + 3156, 3158, 6741, 3162, 3152, 3163, 3166, 3164, 3169, 3167, + 3171, 3176, 3180, 3177, 3178, 3181, 3186, 3187, 3188, 3189, + 3193, 3196, 3197, 3198, 3199, 3201, 3207, 3205, 3216, 3206, + 3208, 3212, 3218, 3219, 3221, 6741, 3230, 3231, 3220, 3232, + 3224, 3235, 3236, 3239, 3241, 3242, 3243, 3246, 3245, 3248, + 3257, 3252, 3249, 3260, 3262, 3266, 3269, 3270, 3278, 6741, + 3273, 3275, 3276, 3277, 6741, 3279, 3281, 3285, 3288, 3282, + 3291, 3292, 3294, 3298, 3293, 3300, 3301, 3310, 3308, 3314, + 3303, 6741, 3315, 3318, 3304, 3317, 3326, 3333, 3336, 3332, + 3334, 3338, 3346, 3342, 3331, 3341, 3343, 3345, 3348, 3355, - 3355, 3349, 3351, 3353, 3361, 3362, 3363, 3364, 3365, 3366, - 3372, 3369, 6721, 3379, 3380, 3381, 3384, 3383, 3385, 3386, - 3393, 3387, 6721, 3396, 3389, 3397, 3398, 3399, 3404, 3411, - 3405, 3412, 3413, 3416, 3414, 3415, 3417, 6721, 3420, 6721, - 3418, 3423, 3437, 3439, 3432, 3428, 3442, 3448, 3441, 3434, - 3450, 3449, 3451, 3457, 3458, 3459, 3460, 3461, 3462, 3469, - 3465, 3466, 3467, 3472, 3475, 3477, 3484, 3482, 3485, 6721, - 6721, 3481, 3491, 3494, 3488, 3492, 3498, 3499, 3496, 3502, - 3510, 3511, 3512, 3519, 6721, 3515, 3516, 3517, 3520, 3527, - 3522, 3524, 3541, 3533, 3534, 3542, 3537, 6721, 3526, 3544, + 3356, 3352, 3360, 3353, 3358, 3367, 3364, 3361, 3368, 3370, + 3371, 3372, 3373, 3374, 3375, 3377, 3378, 3382, 6741, 3383, + 3384, 3389, 3397, 3393, 3394, 3398, 3403, 3399, 6741, 3405, + 3406, 3407, 3409, 3414, 3408, 3411, 3416, 3419, 3422, 3424, + 3427, 3429, 3428, 6741, 3430, 6741, 3432, 3433, 3443, 3447, + 3448, 3435, 3449, 3455, 3451, 3456, 3458, 3459, 3461, 3465, + 3467, 3468, 3469, 3470, 3471, 3478, 3474, 3476, 3481, 3485, + 3486, 3489, 3493, 3490, 3497, 6741, 6741, 3491, 3499, 3501, + 3498, 3504, 3506, 3507, 3512, 3510, 3518, 3519, 3520, 3529, + 6741, 3525, 3526, 3527, 3530, 3537, 3532, 3534, 3548, 3546, - 3551, 3547, 3550, 3555, 6721, 3554, 6721, 3552, 3556, 3557, - 3561, 3563, 3564, 3567, 3568, 3569, 3570, 3574, 3585, 3586, - 3578, 3588, 3582, 3589, 3590, 3593, 3597, 3600, 3596, 3598, - 3599, 6721, 3604, 3601, 3608, 3606, 3615, 3619, 3613, 3605, - 6721, 3616, 3623, 3626, 3625, 3630, 3634, 3631, 3635, 3636, - 3639, 3640, 3641, 3644, 3646, 6721, 3642, 3643, 3657, 3652, - 3649, 3653, 3666, 3668, 3670, 6721, 3672, 3673, 3680, 3676, - 3678, 3660, 3681, 3679, 3683, 3685, 3686, 3687, 3688, 3689, - 3694, 3695, 3691, 3700, 3697, 3702, 3708, 3701, 3712, 3721, - 3718, 6721, 3719, 3723, 3720, 3724, 3725, 3729, 3730, 3733, + 3543, 3553, 3552, 6741, 3544, 3545, 3560, 3555, 3562, 3567, + 6741, 3566, 6741, 3556, 3563, 3569, 3573, 3570, 3572, 3580, + 3581, 3576, 3583, 3587, 3598, 3599, 3588, 3596, 3584, 3591, + 3600, 3603, 3605, 3612, 3607, 3610, 3613, 6741, 3615, 3616, + 3617, 3620, 3622, 3623, 3627, 3624, 3611, 6741, 3630, 3635, + 3637, 3638, 3639, 3646, 3643, 3647, 3648, 3652, 3649, 3653, + 3656, 3657, 6741, 3655, 3658, 3670, 3661, 3665, 3666, 3676, + 3677, 3682, 6741, 3679, 3685, 3692, 3688, 3689, 3691, 3695, + 3690, 3696, 3697, 3699, 3700, 3702, 3703, 3704, 3706, 3708, + 3711, 3709, 3714, 3722, 3723, 3725, 3734, 3730, 6741, 3731, - 3735, 3726, 3741, 3747, 3728, 3737, 3751, 3752, 3759, 3754, - 6721, 3761, 3760, 3768, 3763, 3764, 3766, 3769, 3770, 3772, - 3776, 3773, 3774, 3780, 3777, 3790, 3783, 3785, 3786, 3787, - 3798, 3793, 6721, 3809, 3800, 3801, 3810, 3806, 3811, 3821, - 3818, 3799, 3820, 3823, 3824, 3828, 3825, 3830, 3831, 3834, - 3835, 6721, 6721, 3837, 3838, 3839, 6721, 3840, 3843, 3853, - 3842, 3857, 3844, 3846, 3859, 3851, 3854, 3867, 3862, 3869, - 6721, 3870, 3877, 3872, 3874, 3879, 3876, 6721, 3882, 3889, - 3887, 3890, 3884, 3891, 3894, 3896, 3897, 3898, 3899, 3902, - 3910, 3912, 3907, 3905, 3914, 6721, 3909, 3915, 3917, 3924, + 3735, 3732, 3736, 3737, 3741, 3742, 3745, 3747, 3740, 3753, + 3758, 3749, 3761, 3763, 3764, 3771, 3766, 6741, 3773, 3772, + 3780, 3775, 3776, 3778, 3781, 3783, 3785, 3787, 3786, 3789, + 3791, 3793, 3803, 3796, 3799, 3795, 3804, 3811, 3806, 6741, + 3818, 3814, 3816, 3820, 3821, 3823, 3833, 3825, 3829, 3830, + 3836, 3837, 3839, 3841, 3842, 3843, 3846, 3847, 6741, 6741, + 3853, 3848, 3850, 6741, 3856, 3854, 3866, 3855, 3858, 3862, + 3869, 3870, 3872, 3868, 3878, 3874, 3876, 6741, 3880, 3888, + 3886, 3889, 3893, 3895, 6741, 3890, 3904, 3902, 3903, 3905, + 3891, 3899, 3907, 3910, 3912, 3915, 3916, 3926, 3927, 3922, - 3919, 3921, 6721, 3926, 3928, 3930, 3933, 3935, 3941, 3942, - 3943, 3948, 3949, 3950, 3952, 3951, 3953, 3955, 3963, 3958, - 3962, 3960, 3961, 3967, 3968, 3978, 6721, 3972, 3979, 3980, - 3984, 6721, 3986, 3993, 3994, 6721, 3997, 3989, 3996, 3998, - 4005, 6721, 4002, 4003, 4004, 4006, 4017, 4008, 4018, 4020, - 4009, 4013, 4021, 4022, 6721, 4023, 4024, 4027, 6721, 4036, - 4037, 4041, 4045, 4029, 4048, 4046, 4050, 4047, 4051, 6721, - 4054, 6721, 4058, 4056, 4062, 6721, 4057, 4064, 4065, 4067, - 4071, 4072, 4073, 4079, 4075, 4081, 4083, 4084, 4085, 4086, - 4088, 4095, 4087, 4091, 4094, 4096, 6721, 4097, 4099, 4106, + 3923, 3924, 6741, 3925, 3929, 3931, 3933, 3934, 3935, 6741, + 3937, 3939, 3946, 3948, 3940, 3958, 3955, 3952, 3961, 3962, + 3964, 3965, 3966, 3967, 3969, 3976, 3972, 3973, 3974, 3980, + 3982, 3985, 3991, 6741, 3992, 3994, 3977, 3999, 6741, 4003, + 4012, 4013, 6741, 4014, 3996, 4004, 4015, 4023, 6741, 4016, + 4020, 4018, 4025, 3975, 4035, 4019, 4037, 4033, 4021, 4034, + 4038, 4036, 6741, 4039, 4042, 4044, 6741, 4047, 4045, 4053, + 4056, 4057, 4064, 4059, 4062, 4060, 4063, 6741, 4068, 6741, + 4071, 4069, 4075, 6741, 4070, 4078, 4079, 4086, 4080, 4083, + 4087, 4091, 4096, 4093, 4097, 4098, 4099, 4100, 4102, 4109, - 4103, 4107, 4111, 4113, 4114, 4116, 4118, 6721, 6721, 4127, - 6721, 4119, 4124, 4128, 6721, 4130, 4129, 4138, 4133, 4136, - 4139, 4147, 4134, 6721, 4149, 4151, 6721, 4153, 4154, 4161, - 4156, 4157, 4158, 4164, 4159, 4162, 4169, 4170, 4171, 4172, - 4166, 4173, 4174, 6721, 4167, 4175, 4177, 4191, 4185, 4194, - 4196, 4195, 4197, 6721, 4201, 4202, 4205, 4207, 4208, 6721, - 4209, 6721, 4210, 4211, 4213, 4219, 4216, 4230, 6721, 4227, - 4222, 4232, 4226, 4233, 4237, 4240, 4241, 4242, 4234, 4249, - 4248, 4244, 4247, 4256, 4258, 6721, 4251, 4261, 4263, 4264, - 4267, 4268, 4277, 4269, 4276, 4272, 4273, 4280, 4283, 4284, + 4101, 4105, 4108, 4110, 6741, 4111, 4115, 4120, 4117, 4121, + 4125, 4127, 4128, 4130, 4131, 6741, 6741, 4141, 6741, 4142, + 4132, 4136, 6741, 4138, 4143, 4156, 4146, 4154, 4158, 4162, + 4151, 6741, 4165, 4166, 6741, 4147, 4168, 4175, 4171, 4172, + 4173, 4176, 4179, 4180, 4183, 4184, 4182, 4186, 4181, 4185, + 4199, 6741, 4189, 4187, 4190, 4192, 4203, 4204, 4208, 4212, + 4206, 6741, 4214, 4213, 4216, 4220, 4222, 6741, 4223, 6741, + 4227, 4228, 4230, 4231, 4235, 4244, 6741, 4239, 4236, 4247, + 4240, 4243, 4249, 4252, 4253, 4255, 4256, 4265, 4262, 4261, + 4260, 4269, 4270, 6741, 4264, 4271, 4280, 4281, 4275, 4277, - 4286, 4291, 4292, 4293, 6721, 4294, 4296, 4299, 4308, 4301, - 4305, 4304, 6721, 4309, 4310, 4312, 6721, 4318, 4319, 4323, - 4325, 4322, 4326, 4327, 4328, 4333, 4330, 4329, 6721, 4336, - 4337, 4335, 4341, 4351, 4350, 6721, 6721, 4352, 6721, 4354, - 4338, 4342, 4362, 4363, 4364, 4366, 4367, 4369, 4370, 4374, - 4372, 4379, 6721, 4375, 4387, 4382, 4391, 4399, 4401, 4383, - 4397, 4396, 6721, 6721, 4403, 4406, 4400, 4411, 4412, 4408, - 4415, 4423, 4414, 4424, 4427, 4429, 4428, 6721, 4431, 4398, - 4436, 4430, 6721, 4437, 4438, 4441, 4439, 4442, 4445, 4444, - 4446, 4448, 4449, 4452, 4455, 4457, 4456, 4458, 4465, 4467, + 4292, 4284, 4291, 4287, 4288, 4295, 4298, 4299, 4301, 4303, + 4306, 4307, 6741, 4308, 4313, 4309, 4322, 4314, 4318, 4319, + 6741, 4323, 4324, 4328, 6741, 4332, 4334, 4337, 4339, 4340, + 4341, 4336, 4342, 4343, 4347, 4344, 6741, 4348, 4351, 4350, + 4356, 4364, 4365, 6741, 6741, 4366, 6741, 4371, 4353, 4368, + 4355, 4375, 4378, 4380, 4381, 4389, 4384, 4382, 4391, 4392, + 4386, 6741, 4393, 4404, 4394, 4409, 4411, 4413, 4414, 4410, + 4406, 6741, 6741, 4420, 4421, 4415, 4428, 4429, 4423, 4425, + 4437, 4433, 4439, 4442, 4444, 4451, 6741, 4446, 4432, 4453, + 4434, 6741, 4448, 4455, 4456, 4459, 4458, 4462, 4461, 4464, - 4468, 4469, 4473, 4470, 4476, 6721, 4477, 4478, 4480, 4481, - 4482, 4489, 4490, 4491, 4492, 6721, 4494, 6721, 4501, 4493, - 4496, 4498, 4516, 4505, 4517, 4512, 4518, 4521, 4522, 4527, - 4528, 4536, 4524, 4529, 4537, 4531, 4545, 4547, 4548, 6721, - 4549, 4541, 4550, 4551, 4556, 4558, 4533, 4560, 4562, 4565, - 4566, 4567, 4569, 4574, 4571, 4575, 4576, 4577, 4578, 6721, - 4582, 4589, 4579, 4595, 4583, 4586, 4596, 4602, 4605, 4590, - 4600, 4606, 6721, 4607, 4610, 4612, 6721, 4613, 4614, 4616, - 4617, 4620, 4623, 4625, 4624, 4626, 6721, 4628, 4632, 4636, - 4634, 4635, 4638, 4640, 4644, 4646, 4647, 4651, 6721, 4663, + 4465, 4466, 4468, 4471, 4472, 4476, 4469, 4478, 4482, 4483, + 4485, 4486, 4489, 4492, 6741, 4493, 4497, 4498, 4500, 4503, + 4505, 4504, 4506, 4508, 6741, 4511, 6741, 4509, 4514, 4513, + 4510, 4521, 4530, 4531, 4532, 4533, 4536, 4537, 4540, 4541, + 4551, 4542, 4546, 4552, 4554, 4556, 4561, 4562, 6741, 4564, + 4548, 4558, 4565, 4571, 4573, 4574, 4576, 4579, 4581, 4583, + 4582, 4585, 4589, 4586, 4590, 4591, 4592, 4594, 6741, 4596, + 4603, 4595, 4605, 4607, 4609, 4616, 4610, 4618, 4612, 4620, + 4621, 6741, 4622, 4624, 4628, 6741, 4629, 4630, 4632, 4634, + 4640, 4633, 4636, 4642, 4644, 6741, 4646, 4648, 4651, 4650, - 4650, 4659, 4660, 4658, 4661, 4667, 4668, 4670, 6721, 4672, - 4675, 4676, 4684, 4685, 4681, 4682, 4692, 4689, 4690, 4687, - 4693, 4698, 4699, 4700, 4704, 4705, 4703, 4716, 4721, 4707, - 6721, 4718, 6721, 4719, 4722, 4726, 4724, 4727, 4729, 4732, - 4731, 6721, 4734, 4739, 4741, 4742, 4735, 6721, 4746, 4743, - 4745, 4749, 6721, 4762, 4747, 4748, 4754, 4764, 4769, 6721, - 4772, 4773, 4774, 4781, 4783, 4778, 4785, 4780, 4788, 4786, - 4782, 4790, 4791, 4799, 4797, 4795, 6721, 4801, 4803, 4808, - 4810, 4804, 4812, 4802, 4814, 4817, 4819, 6721, 4820, 4823, - 4824, 4826, 4827, 4828, 4829, 4836, 4833, 4835, 4837, 4838, + 4654, 4655, 4656, 4660, 4662, 4663, 4666, 6741, 4676, 4667, + 4675, 4678, 4674, 4677, 4681, 4687, 4685, 6741, 4688, 4689, + 4691, 4701, 4703, 4696, 4698, 4710, 4700, 4707, 4708, 4709, + 4715, 4714, 4716, 4719, 4720, 4721, 4730, 4732, 4727, 6741, + 4734, 6741, 4736, 4737, 4738, 4747, 4742, 4740, 4744, 4748, + 4750, 6741, 4752, 4755, 4758, 4759, 4760, 6741, 4761, 4762, + 4764, 4763, 6741, 4777, 4776, 4765, 4782, 4767, 4783, 6741, + 4787, 4788, 4790, 4798, 4799, 4796, 4801, 4789, 4806, 4797, + 4802, 4804, 4810, 4814, 4812, 4813, 6741, 4815, 4817, 4822, + 4824, 4825, 4827, 4828, 4831, 4833, 4830, 6741, 4837, 4838, - 4841, 4842, 6721, 4847, 4845, 4849, 4858, 4860, 4862, 6721, - 4865, 6721, 4855, 4850, 4867, 4866, 4871, 6721, 6721, 4873, - 4881, 4876, 4879, 4880, 6721, 6721, 4883, 6721, 4884, 6721, - 4885, 4887, 6721, 6721, 4886, 4890, 4893, 4895, 4896, 4898, - 6721, 4905, 6721, 4912, 4907, 4894, 4909, 4913, 6721, 4911, - 4917, 4915, 4921, 4923, 6721, 4919, 4932, 4924, 4925, 6721, - 4935, 4936, 4929, 4937, 6721, 4943, 4946, 4947, 4938, 4941, - 4949, 4951, 4957, 4958, 4961, 4959, 4960, 4962, 4963, 4966, - 4970, 4975, 4977, 4967, 4978, 4981, 4983, 4987, 4985, 4989, - 4990, 4991, 4992, 4994, 4999, 4993, 5001, 5004, 4756, 4995, + 4839, 4840, 4841, 4844, 4846, 4853, 4849, 4850, 4852, 4856, + 4857, 4860, 6741, 4861, 4863, 4865, 4872, 4869, 4874, 6741, + 4878, 6741, 4880, 4882, 4885, 4867, 4889, 6741, 6741, 4891, + 4892, 4884, 4898, 4899, 6741, 6741, 4901, 6741, 4902, 6741, + 4903, 4905, 6741, 6741, 4904, 4906, 4907, 4910, 4911, 4913, + 6741, 4919, 6741, 4929, 4924, 4914, 4922, 4926, 6741, 4927, + 4933, 4935, 4937, 4939, 6741, 4934, 4948, 4940, 4941, 6741, + 4951, 4952, 4945, 4953, 6741, 4959, 4962, 4963, 4954, 4957, + 4965, 4967, 4973, 4974, 4977, 4975, 4976, 4978, 4979, 4982, + 4986, 4991, 4993, 4983, 4994, 4997, 4999, 5003, 5001, 5005, - 5008, 5005, 5006, 5014, 5016, 5018, 5021, 5022, 5023, 5024, - 5027, 4495, 5025, 5028, 5030, 5029, 5033, 5037, 5042, 5043, - 6721, 5035, 5045, 5047, 5048, 5052, 5054, 5055, 5062, 5064, - 5068, 6721, 5071, 6721, 5073, 5065, 5075, 5076, 5077, 6721, - 5078, 5079, 5080, 5081, 5082, 5084, 5085, 5088, 5089, 5093, - 5099, 6721, 5106, 5096, 5090, 5094, 5114, 6721, 5109, 5116, - 5117, 5119, 5120, 5121, 5122, 5123, 5126, 5124, 5129, 5131, - 5125, 5132, 5133, 5147, 5149, 5144, 5134, 5151, 5153, 5154, - 5155, 5156, 5157, 5158, 5159, 5165, 5167, 5171, 6721, 5162, - 6721, 5173, 5174, 5175, 5178, 5179, 5180, 5183, 5186, 6721, + 5006, 5007, 5008, 5010, 5015, 5009, 5017, 5020, 5011, 5021, + 5023, 5024, 5031, 5032, 5034, 5035, 5039, 5040, 5042, 5043, + 5044, 5045, 5046, 5047, 5050, 5057, 5048, 5052, 5056, 5062, + 5063, 6741, 5066, 5067, 5068, 5071, 5073, 5075, 5076, 5083, + 5086, 5092, 6741, 5094, 6741, 5096, 5088, 5079, 5098, 5099, + 6741, 5100, 5101, 5102, 5103, 5104, 5105, 5107, 5108, 5111, + 5112, 5115, 6741, 5122, 5118, 5126, 5127, 5134, 6741, 5131, + 5138, 5135, 5139, 5142, 5141, 5143, 5144, 5147, 5145, 5151, + 5155, 5146, 5152, 5159, 5168, 5172, 5175, 5158, 5173, 5160, + 5177, 5178, 5174, 5180, 5181, 5182, 5190, 5185, 5193, 6741, - 6721, 5188, 5189, 5191, 5194, 5195, 5197, 5199, 5200, 5202, - 6721, 5201, 5207, 5218, 5212, 6721, 5204, 5214, 5220, 5222, - 6721, 5223, 5224, 5226, 5228, 5229, 5232, 5236, 5237, 5238, - 5239, 5242, 5244, 6721, 6721, 6721, 6721, 5249, 5245, 5253, - 5247, 5255, 5256, 5257, 5261, 5259, 5263, 5264, 6721, 5272, - 6721, 6721, 5269, 5273, 5275, 5276, 5277, 5280, 5282, 5284, - 6721, 5286, 5288, 5290, 5287, 5297, 5304, 5300, 5294, 5307, - 5308, 5309, 5298, 5310, 5317, 5318, 5319, 5312, 5321, 5325, - 5330, 6721, 6721, 5322, 5332, 5333, 5340, 5337, 5338, 5341, - 5350, 5345, 5346, 5347, 5348, 5352, 5353, 5364, 5365, 5357, + 5195, 6741, 5196, 5197, 5198, 5199, 5201, 5202, 5203, 5208, + 6741, 6741, 5204, 5209, 5218, 5211, 5213, 5221, 5222, 5215, + 5225, 6741, 5228, 5232, 5235, 5237, 6741, 5238, 5239, 5240, + 5242, 6741, 5244, 5245, 5247, 5249, 5246, 5258, 5261, 5255, + 5252, 5262, 5263, 5270, 6741, 6741, 6741, 6741, 5271, 5267, + 5276, 5273, 5277, 5278, 5279, 5282, 5281, 5284, 5285, 6741, + 5293, 6741, 6741, 5294, 5296, 5295, 5297, 5298, 5303, 5305, + 5307, 6741, 5308, 6741, 5311, 5312, 5310, 5319, 5321, 5324, + 5313, 5327, 5328, 5331, 5330, 5333, 5340, 5337, 5338, 5341, + 5344, 5346, 5353, 6741, 6741, 5347, 5355, 5358, 5363, 5359, - 5354, 6721, 5361, 5367, 5370, 6721, 5369, 6721, 5371, 5375, - 5377, 5378, 5379, 5383, 5384, 5387, 6721, 6721, 5382, 5399, - 5397, 6721, 6721, 5386, 5389, 5394, 5402, 5404, 5398, 5406, - 5407, 5419, 5408, 6721, 5410, 6721, 5412, 5416, 5424, 5414, - 5434, 5435, 5426, 5436, 5438, 5433, 5440, 6721, 5442, 5443, - 6721, 5452, 5447, 5449, 5448, 5454, 6721, 5457, 5455, 5460, - 5464, 6721, 5466, 5467, 5470, 6721, 5477, 6721, 5461, 5474, - 5468, 5484, 5482, 6721, 5472, 5485, 6721, 5488, 5490, 5493, - 5491, 5495, 6721, 5498, 5499, 6721, 5500, 5502, 5505, 5510, - 5503, 5512, 5513, 5507, 5514, 5521, 5523, 5527, 6721, 6721, + 5365, 5366, 5373, 5368, 5369, 5375, 5371, 5377, 5376, 5387, + 5388, 5378, 5379, 6741, 5343, 5389, 5390, 6741, 5392, 6741, + 5395, 5396, 5398, 5399, 5402, 5405, 5406, 5408, 6741, 6741, + 5403, 5415, 5413, 6741, 6741, 5410, 5418, 5420, 5423, 5424, + 5425, 5426, 5427, 5433, 5428, 6741, 5430, 6741, 5434, 5436, + 5449, 5437, 5452, 5456, 5441, 5457, 5461, 5455, 5453, 6741, + 5464, 5465, 6741, 5472, 5467, 5471, 5468, 5469, 6741, 5476, + 5474, 5480, 5486, 6741, 5488, 5489, 5490, 6741, 5497, 6741, + 5481, 5494, 5491, 5506, 5498, 6741, 5502, 5507, 6741, 5512, + 5514, 5515, 5504, 5516, 6741, 5520, 5509, 6741, 5521, 5524, - 5530, 5529, 135, 5538, 5516, 5533, 5535, 5536, 5546, 5519, - 5541, 5548, 6721, 6721, 5549, 6721, 5543, 5556, 6721, 5550, - 5557, 5561, 5552, 5558, 5564, 5565, 5566, 5568, 5572, 5573, - 5574, 5571, 5579, 5595, 5597, 5581, 5578, 5592, 5598, 5601, - 5603, 5605, 5606, 5607, 5583, 5608, 5610, 5612, 5614, 5615, - 5616, 6721, 5619, 5625, 5628, 5620, 6721, 5633, 5630, 5640, - 5641, 6721, 5643, 5644, 5645, 5647, 5648, 6721, 5634, 5650, - 5622, 5651, 5655, 5658, 5661, 5665, 5662, 5663, 5666, 6721, - 6721, 6721, 5668, 5678, 6721, 5680, 5667, 5671, 5682, 6721, - 5684, 5685, 5686, 6721, 6721, 5687, 5688, 5690, 6721, 5689, + 5525, 5531, 5528, 5533, 5534, 5535, 5536, 5544, 5540, 5542, + 6741, 6741, 5551, 5549, 135, 5558, 5537, 5548, 5555, 5556, + 5565, 5561, 5563, 5570, 6741, 6741, 5566, 6741, 5564, 5573, + 6741, 5574, 5577, 5578, 5583, 5582, 5584, 5585, 5581, 5589, + 5590, 5603, 5593, 5591, 5608, 5598, 5618, 5594, 5620, 5621, + 5623, 5625, 5627, 5615, 5629, 5630, 5609, 5632, 5633, 5636, + 5638, 5639, 5640, 6741, 5643, 5645, 5646, 5648, 6741, 5654, + 5651, 5656, 5657, 6741, 5664, 5661, 5665, 5667, 5668, 6741, + 5669, 5672, 5675, 5673, 5678, 5680, 5596, 5689, 5681, 5684, + 5686, 6741, 6741, 6741, 5695, 5699, 6741, 5702, 5692, 5685, - 5697, 6721, 5692, 6721, 5695, 6721, 5701, 5702, 5710, 5705, - 6721, 5703, 5713, 5715, 5717, 6721, 5720, 5723, 5725, 5727, - 5728, 5730, 5732, 6721, 5739, 5735, 5738, 5742, 5734, 5744, - 5745, 5746, 5747, 5759, 5750, 5755, 6721, 5757, 5758, 5762, - 5768, 5760, 5770, 5771, 6721, 5764, 6721, 5773, 6721, 5774, - 5776, 5777, 5782, 5778, 5780, 5788, 5790, 5792, 5797, 5783, - 5798, 5803, 5800, 6721, 6721, 5805, 5808, 6721, 5809, 6721, - 5811, 6721, 5812, 5813, 5815, 5816, 5817, 6721, 5826, 5814, - 5818, 5837, 5821, 5823, 6721, 5835, 5833, 5838, 5840, 6721, - 6721, 5841, 5849, 5845, 6721, 5846, 5852, 5854, 5848, 5855, + 5696, 6741, 5704, 5707, 5705, 6741, 6741, 5708, 5713, 5711, + 6741, 5709, 5721, 6741, 5712, 6741, 5719, 6741, 5722, 5723, + 5725, 5730, 6741, 5731, 5732, 5734, 5737, 6741, 5743, 5747, + 5750, 5735, 5751, 5753, 5752, 6741, 5760, 5756, 5758, 5765, + 5755, 5762, 5759, 5770, 5766, 5782, 5767, 5769, 6741, 5777, + 5778, 5785, 5786, 5779, 5788, 5789, 6741, 5791, 6741, 5794, + 6741, 5795, 5796, 5797, 5805, 5799, 5800, 5802, 5807, 5816, + 5813, 5806, 5818, 5821, 5823, 6741, 6741, 5826, 5828, 6741, + 5829, 6741, 5831, 6741, 5832, 5833, 5834, 5835, 5836, 6741, + 5838, 5840, 5843, 5853, 5845, 5846, 6741, 5854, 5856, 5857, - 5859, 5856, 5860, 5862, 5870, 5865, 5871, 5866, 5873, 5874, - 5876, 5877, 5887, 6721, 6721, 6721, 5881, 5885, 5896, 5892, - 5894, 5901, 5898, 6721, 5899, 5903, 5906, 5900, 5913, 5908, - 5910, 6721, 5912, 5914, 5915, 5917, 5921, 5918, 5922, 5927, - 6721, 5929, 5934, 5939, 5931, 5941, 5943, 5948, 5950, 5951, - 5935, 5958, 5954, 6721, 5956, 6721, 6721, 5953, 6721, 5957, - 5960, 5962, 5963, 5965, 6721, 5968, 5969, 5970, 5973, 5971, - 5974, 5976, 5978, 6721, 5986, 5984, 5988, 5992, 6721, 6721, - 5990, 5994, 6721, 5999, 5996, 6000, 6008, 6003, 6005, 6010, - 6012, 6721, 6016, 6018, 6006, 6019, 6022, 6021, 6024, 6721, + 5859, 6741, 6741, 5861, 5869, 5862, 6741, 5864, 5872, 5874, + 5875, 5877, 5879, 5880, 5883, 5882, 5893, 5866, 5884, 5888, + 5895, 5889, 5900, 5906, 5910, 6741, 6741, 6741, 5901, 5899, + 5918, 5915, 5917, 5922, 5905, 6741, 5921, 5925, 5927, 5928, + 5935, 5931, 5934, 6741, 5930, 5936, 5937, 5938, 5940, 5941, + 5943, 5944, 6741, 5946, 5956, 5952, 5950, 5958, 5966, 5968, + 5970, 5961, 5971, 5978, 5975, 6741, 5977, 6741, 6741, 5973, + 6741, 5979, 5981, 5983, 5982, 5984, 6741, 5987, 5988, 5989, + 5991, 5990, 5998, 5994, 5996, 6741, 6006, 5999, 6009, 6011, + 6741, 6741, 6012, 6018, 6741, 6021, 6022, 6015, 6030, 6013, - 6028, 6025, 6029, 6031, 6721, 6032, 6037, 6038, 6040, 6041, - 6721, 6042, 6034, 6058, 6043, 6721, 6045, 6057, 6059, 6721, - 6721, 6063, 6067, 6064, 6721, 6721, 6721, 6070, 6071, 6073, - 6075, 6721, 6078, 6082, 6086, 6088, 6093, 6081, 6721, 6089, - 6095, 6097, 6098, 6099, 6721, 6721, 6100, 6101, 6102, 6106, - 6103, 6721, 6721, 6108, 6110, 6111, 6109, 6112, 6721, 6114, - 6119, 6126, 6122, 6128, 6135, 6137, 6130, 6138, 6139, 6147, - 6150, 6140, 6142, 6149, 6153, 6154, 6152, 6156, 6166, 6161, - 6163, 6169, 6164, 6172, 6721, 6721, 6174, 6721, 6176, 6178, - 6721, 6721, 6181, 6183, 6185, 6189, 6721, 6191, 6193, 6195, + 6023, 6035, 6032, 6741, 6036, 6038, 6026, 6039, 6042, 6041, + 6044, 6741, 6048, 6045, 6049, 6051, 6741, 6052, 6057, 6058, + 6060, 6061, 6741, 6062, 6054, 6078, 6063, 6741, 6065, 6077, + 6079, 6741, 6741, 6083, 6087, 6084, 6741, 6741, 6741, 6090, + 6091, 6093, 6095, 6741, 6098, 6102, 6106, 6108, 6113, 6101, + 6741, 6109, 6115, 6117, 6118, 6119, 6741, 6741, 6120, 6121, + 6122, 6126, 6123, 6741, 6741, 6128, 6130, 6131, 6129, 6132, + 6741, 6134, 6139, 6146, 6142, 6148, 6155, 6157, 6150, 6158, + 6159, 6167, 6170, 6160, 6162, 6169, 6173, 6174, 6172, 6176, + 6186, 6181, 6183, 6189, 6184, 6192, 6741, 6741, 6194, 6741, - 6197, 6186, 6721, 6198, 6200, 6201, 6202, 6203, 6721, 6205, - 6206, 6209, 6211, 6215, 6217, 6218, 6221, 6721, 6216, 6233, - 6721, 6721, 6222, 6224, 6213, 6234, 6230, 6721, 6238, 6242, - 6237, 6244, 6243, 6245, 6250, 6721, 6246, 6247, 6721, 6721, - 6253, 6254, 6721, 6721, 6255, 6721, 6721, 6721, 6721, 6721, - 6721, 6721, 6721, 6259, 6258, 6721, 6260, 6268, 6271, 6721, - 6275, 6721, 6265, 6276, 6278, 6272, 6721, 6277, 6721, 6279, - 6283, 6284, 6293, 6286, 6296, 6287, 6280, 6290, 6298, 6303, - 6304, 6306, 6305, 6307, 6309, 6311, 6321, 6313, 6318, 6721, - 6721, 6721, 6310, 6322, 6326, 6327, 6332, 6334, 6338, 6340, + 6196, 6198, 6741, 6741, 6201, 6203, 6205, 6209, 6741, 6211, + 6213, 6215, 6217, 6206, 6741, 6218, 6220, 6221, 6222, 6223, + 6741, 6225, 6226, 6229, 6231, 6235, 6237, 6238, 6241, 6741, + 6236, 6253, 6741, 6741, 6242, 6244, 6233, 6254, 6250, 6741, + 6258, 6262, 6257, 6264, 6263, 6265, 6270, 6741, 6266, 6267, + 6741, 6741, 6273, 6274, 6741, 6741, 6275, 6741, 6741, 6741, + 6741, 6741, 6741, 6741, 6741, 6279, 6278, 6741, 6280, 6288, + 6291, 6741, 6295, 6741, 6285, 6296, 6298, 6292, 6741, 6297, + 6741, 6299, 6303, 6304, 6313, 6306, 6316, 6307, 6300, 6310, + 6318, 6323, 6324, 6326, 6325, 6327, 6329, 6331, 6341, 6333, - 6329, 6341, 6343, 6344, 6345, 6347, 6351, 6358, 6353, 6356, - 6354, 6363, 6355, 6365, 6721, 6370, 6371, 6357, 6374, 6721, - 6377, 6721, 6360, 6721, 6721, 6380, 6381, 6383, 6384, 6393, - 6394, 6385, 6389, 6390, 6395, 6397, 6721, 6405, 6721, 6721, - 6398, 6401, 6721, 6406, 6407, 6721, 6408, 6410, 6412, 6413, - 6414, 6416, 6417, 6418, 6425, 6721, 6721, 6429, 6430, 6432, - 6434, 6436, 6443, 6438, 6440, 6442, 6450, 6444, 6452, 6721, - 6454, 6456, 6458, 6721, 6460, 6459, 6462, 6465, 6466, 6473, - 6468, 6470, 6721, 6471, 6721, 6475, 6477, 6476, 6479, 6480, - 6482, 6490, 6488, 6492, 6721, 6494, 6496, 6500, 6501, 6503, + 6338, 6741, 6741, 6741, 6330, 6342, 6346, 6347, 6352, 6354, + 6358, 6360, 6349, 6361, 6363, 6364, 6365, 6367, 6371, 6378, + 6373, 6376, 6374, 6383, 6375, 6385, 6741, 6390, 6391, 6377, + 6394, 6741, 6397, 6741, 6380, 6741, 6741, 6400, 6401, 6403, + 6404, 6413, 6414, 6405, 6409, 6410, 6415, 6417, 6741, 6425, + 6741, 6741, 6418, 6421, 6741, 6426, 6427, 6741, 6428, 6430, + 6432, 6433, 6434, 6436, 6437, 6438, 6445, 6741, 6741, 6449, + 6450, 6452, 6454, 6456, 6463, 6458, 6460, 6462, 6470, 6464, + 6472, 6741, 6474, 6476, 6478, 6741, 6480, 6479, 6482, 6485, + 6486, 6493, 6488, 6490, 6741, 6491, 6741, 6495, 6497, 6496, - 6506, 6507, 6508, 6510, 6512, 6513, 6522, 6516, 6518, 6524, - 6526, 6528, 6721, 6530, 6532, 6721, 6533, 6534, 6535, 6536, - 6540, 6721, 6545, 6537, 6542, 6548, 6553, 6550, 6721, 6559, - 6563, 6560, 6721, 6564, 6721, 6721, 6565, 6566, 6568, 6572, - 6574, 6721, 6721, 6721, 6601, 6608, 6615, 6622, 6629, 6636, - 6643, 88, 6650, 6657, 6664, 6671, 6678, 6685, 6692, 6699, - 6706, 6713 + 6499, 6500, 6502, 6510, 6508, 6512, 6741, 6514, 6516, 6520, + 6521, 6523, 6526, 6527, 6528, 6530, 6532, 6533, 6542, 6536, + 6538, 6544, 6546, 6548, 6741, 6550, 6552, 6741, 6553, 6554, + 6555, 6556, 6560, 6741, 6565, 6557, 6562, 6568, 6573, 6570, + 6741, 6579, 6583, 6580, 6741, 6584, 6741, 6741, 6585, 6586, + 6588, 6592, 6594, 6741, 6741, 6741, 6621, 6628, 6635, 6642, + 6649, 6656, 6663, 88, 6670, 6677, 6684, 6691, 6698, 6705, + 6712, 6719, 6726, 6733 } ; -static const flex_int16_t yy_def[3463] = +static const flex_int16_t yy_def[3475] = { 0, - 3444, 1, 3445, 3445, 3446, 3446, 3447, 3447, 3448, 3448, - 3449, 3449, 3450, 3450, 3451, 3451, 3444, 3452, 3444, 3444, - 3444, 3444, 3453, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3454, 3444, 3444, 3444, - 3454, 3455, 3444, 3444, 3444, 3455, 3456, 3444, 3444, 3444, - 3444, 3456, 3457, 3444, 3444, 3444, 3457, 3458, 3444, 3459, - 3444, 3458, 3458, 3460, 3444, 3444, 3444, 3444, 3460, 3461, - 3444, 3444, 3444, 3461, 3452, 3452, 3444, 3462, 3453, 3462, - 3453, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3456, 1, 3457, 3457, 3458, 3458, 3459, 3459, 3460, 3460, + 3461, 3461, 3462, 3462, 3463, 3463, 3456, 3464, 3456, 3456, + 3456, 3456, 3465, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3466, 3456, 3456, 3456, + 3466, 3467, 3456, 3456, 3456, 3467, 3468, 3456, 3456, 3456, + 3456, 3468, 3469, 3456, 3456, 3456, 3469, 3470, 3456, 3471, + 3456, 3470, 3470, 3472, 3456, 3456, 3456, 3456, 3472, 3473, + 3456, 3456, 3456, 3473, 3464, 3464, 3456, 3474, 3465, 3474, + 3465, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3454, - 3454, 3455, 3455, 3456, 3456, 3444, 3457, 3457, 3458, 3458, - 3459, 3459, 3458, 3460, 3460, 3444, 3461, 3461, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3466, + 3466, 3467, 3467, 3468, 3468, 3456, 3469, 3469, 3470, 3470, + 3471, 3471, 3470, 3472, 3472, 3456, 3473, 3473, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3458, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3444, 3444, 3452, 3444, 3444, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3456, 3464, 3456, 3456, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3458, 3458, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3470, + 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3470, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3458, 3452, 3444, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3470, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, - 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3458, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3458, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3470, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, - 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3444, - 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3456, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3458, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3470, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3444, 3444, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3458, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3470, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, - 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, - 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3444, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, - 3452, 3452, 3458, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3444, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3444, 3452, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3470, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3464, - 3452, 3444, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3444, 3452, 3444, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, - 3444, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3464, 3456, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, + 3456, 3464, 3464, 3456, 3464, 3456, 3464, 3456, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3456, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3444, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3444, 3444, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3444, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, + 3464, 3456, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3444, - 3444, 3452, 3452, 3452, 3444, 3444, 3444, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, 3452, - 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3444, 3452, 3452, - 3444, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3464, 3456, 3456, 3464, 3464, 3464, 3456, 3456, 3456, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, 3456, - 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3444, 3444, - 3452, 3452, 3444, 3444, 3452, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3444, - 3452, 3444, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3444, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3456, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, + 3456, 3456, 3464, 3464, 3456, 3456, 3464, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3464, 3464, 3464, 3456, 3464, + 3456, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3444, - 3452, 3444, 3452, 3444, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, 3444, 3444, - 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3444, 3444, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3444, - 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3444, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3452, 3452, 3444, 3452, 3452, 3452, 3452, 3452, + 3464, 3456, 3456, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3456, 3464, 3456, 3464, 3456, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, + 3456, 3456, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3456, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3456, 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3456, 3464, 3464, 3464, - 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, 3452, - 3452, 3452, 3444, 3452, 3452, 3444, 3452, 3452, 3452, 3452, - 3452, 3444, 3452, 3452, 3452, 3452, 3452, 3452, 3444, 3452, - 3452, 3452, 3444, 3452, 3444, 3444, 3452, 3452, 3452, 3452, - 3452, 3444, 3444, 0, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444 + 3464, 3464, 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, + 3464, 3464, 3464, 3464, 3456, 3464, 3464, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3464, 3464, 3464, 3464, 3464, 3464, + 3456, 3464, 3464, 3464, 3456, 3464, 3456, 3456, 3464, 3464, + 3464, 3464, 3464, 3456, 3456, 0, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456 } ; -static const flex_int16_t yy_nxt[6762] = +static const flex_int16_t yy_nxt[6782] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1618,7 +1621,7 @@ static const flex_int16_t yy_nxt[6762] = 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, - 332, 86, 86, 86, 732, 334, 86, 338, 323, 331, + 332, 86, 86, 86, 734, 334, 86, 338, 323, 331, 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, @@ -1655,656 +1658,658 @@ static const flex_int16_t yy_nxt[6762] = 86, 86, 86, 86, 492, 496, 498, 86, 499, 86, 501, 497, 170, 507, 86, 500, 508, 86, 505, 86, 86, 86, 522, 502, 86, 509, 503, 523, 504, 86, - 510, 86, 511, 544, 86, 86, 525, 86, 512, 568, + 510, 86, 511, 545, 86, 86, 525, 86, 512, 569, 528, 168, 513, 86, 86, 524, 526, 514, 527, 530, - 515, 86, 516, 539, 517, 540, 529, 86, 538, 86, - 541, 86, 86, 86, 86, 86, 547, 518, 86, 542, - 519, 166, 520, 86, 521, 86, 543, 531, 532, 546, - 549, 545, 86, 86, 548, 550, 86, 533, 551, 534, - 535, 536, 553, 557, 537, 86, 552, 86, 86, 86, - 555, 86, 554, 558, 560, 562, 86, 563, 86, 86, - 86, 86, 559, 567, 86, 86, 561, 86, 556, 86, - 570, 565, 571, 572, 566, 86, 86, 86, 564, 86, - 569, 86, 86, 86, 577, 578, 579, 573, 86, 584, + 515, 86, 516, 540, 517, 541, 529, 86, 539, 86, + 542, 86, 86, 86, 86, 86, 548, 518, 86, 543, + 519, 166, 520, 86, 521, 86, 544, 531, 532, 547, + 550, 546, 553, 86, 549, 551, 86, 533, 534, 535, + 536, 537, 554, 552, 538, 86, 86, 86, 86, 86, + 556, 563, 555, 558, 561, 86, 86, 86, 86, 564, + 86, 86, 560, 568, 86, 86, 559, 86, 557, 86, + 562, 86, 566, 86, 86, 567, 565, 86, 571, 578, + 570, 572, 573, 575, 86, 574, 86, 576, 577, 86, - 86, 86, 574, 575, 581, 576, 86, 86, 585, 86, - 582, 86, 86, 580, 86, 598, 586, 86, 601, 86, - 590, 86, 600, 587, 86, 583, 589, 588, 599, 593, - 86, 591, 86, 592, 603, 86, 165, 594, 595, 602, - 86, 596, 597, 86, 86, 86, 86, 86, 606, 605, - 607, 608, 86, 604, 86, 609, 86, 610, 611, 612, - 86, 86, 86, 615, 616, 614, 613, 86, 86, 618, - 86, 617, 86, 86, 86, 622, 86, 620, 621, 86, - 86, 86, 86, 623, 86, 628, 86, 86, 624, 619, - 86, 629, 633, 627, 630, 86, 631, 86, 626, 625, + 582, 579, 580, 86, 86, 585, 86, 583, 86, 86, + 86, 86, 599, 86, 86, 86, 165, 602, 86, 581, + 591, 86, 584, 587, 86, 586, 588, 589, 590, 594, + 600, 592, 86, 593, 86, 86, 605, 595, 596, 601, + 604, 597, 598, 86, 603, 86, 86, 86, 608, 606, + 86, 607, 610, 86, 611, 609, 86, 613, 86, 86, + 86, 86, 616, 86, 614, 617, 86, 618, 86, 612, + 86, 86, 86, 615, 86, 621, 86, 622, 86, 623, + 86, 619, 86, 86, 633, 86, 625, 624, 629, 620, + 86, 86, 86, 86, 628, 630, 626, 631, 627, 86, - 86, 632, 86, 635, 86, 637, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 639, 634, 640, 642, 636, - 86, 86, 644, 650, 86, 86, 649, 638, 163, 86, - 641, 643, 645, 651, 646, 86, 652, 86, 647, 654, - 653, 648, 86, 86, 86, 655, 657, 86, 656, 660, - 86, 86, 86, 663, 662, 86, 86, 86, 658, 86, - 86, 666, 659, 86, 86, 86, 665, 669, 86, 670, - 661, 86, 86, 672, 86, 86, 86, 664, 86, 667, - 671, 668, 687, 86, 86, 86, 86, 673, 675, 86, - 689, 674, 86, 676, 684, 86, 706, 685, 677, 686, + 86, 636, 86, 632, 634, 86, 638, 86, 86, 86, + 86, 86, 86, 635, 86, 86, 640, 643, 641, 86, + 86, 651, 86, 645, 637, 86, 653, 86, 639, 86, + 654, 642, 86, 646, 644, 647, 650, 648, 652, 86, + 649, 86, 86, 86, 86, 658, 86, 86, 661, 656, + 663, 86, 657, 655, 86, 664, 86, 659, 86, 660, + 86, 86, 86, 667, 86, 666, 662, 671, 670, 86, + 86, 86, 86, 86, 86, 673, 86, 86, 668, 665, + 86, 669, 163, 86, 672, 86, 676, 674, 690, 688, + 86, 675, 86, 677, 685, 687, 689, 686, 678, 86, - 678, 694, 688, 86, 86, 690, 679, 691, 680, 692, - 86, 681, 682, 693, 86, 695, 86, 699, 683, 86, - 86, 86, 86, 86, 703, 698, 86, 86, 700, 86, - 696, 86, 708, 697, 701, 86, 702, 86, 86, 86, - 86, 86, 86, 86, 709, 704, 705, 710, 714, 715, - 86, 86, 707, 711, 86, 720, 712, 717, 86, 719, - 716, 713, 170, 722, 718, 86, 721, 86, 86, 86, - 86, 86, 86, 725, 86, 735, 729, 723, 86, 161, - 731, 86, 724, 727, 726, 86, 86, 730, 737, 728, - 734, 86, 86, 733, 86, 86, 86, 86, 736, 739, + 679, 86, 86, 732, 86, 692, 680, 86, 681, 693, + 86, 682, 683, 694, 86, 691, 86, 695, 684, 696, + 86, 700, 86, 697, 86, 699, 698, 86, 86, 86, + 707, 704, 701, 705, 86, 702, 86, 709, 703, 86, + 86, 86, 86, 713, 706, 86, 86, 86, 86, 86, + 86, 86, 711, 716, 710, 724, 712, 720, 717, 708, + 86, 86, 86, 86, 714, 719, 718, 722, 715, 721, + 170, 86, 86, 86, 723, 86, 86, 726, 86, 86, + 86, 733, 731, 725, 736, 86, 737, 728, 735, 86, + 729, 727, 86, 739, 730, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 738, 742, 743, 86, 748, 740, - 744, 86, 741, 749, 86, 751, 86, 745, 747, 753, - 746, 752, 86, 86, 750, 86, 754, 86, 755, 86, - 756, 86, 757, 86, 86, 86, 86, 758, 86, 86, - 762, 86, 761, 760, 759, 86, 86, 86, 765, 764, - 86, 766, 763, 770, 769, 86, 86, 767, 86, 86, - 771, 86, 86, 773, 86, 775, 768, 86, 86, 86, - 86, 86, 781, 772, 778, 774, 782, 776, 86, 86, - 86, 86, 789, 86, 779, 86, 784, 86, 777, 86, - 780, 785, 792, 783, 786, 787, 86, 86, 788, 86, + 741, 738, 86, 86, 86, 745, 86, 740, 744, 86, + 742, 750, 763, 743, 86, 746, 751, 86, 753, 86, + 749, 86, 747, 754, 86, 748, 755, 752, 756, 86, + 757, 86, 86, 758, 86, 759, 86, 86, 86, 86, + 760, 86, 761, 764, 86, 766, 762, 767, 86, 86, + 86, 772, 86, 768, 86, 765, 771, 86, 773, 86, + 86, 86, 86, 777, 86, 775, 86, 86, 86, 770, + 86, 86, 769, 780, 783, 776, 784, 774, 86, 778, + 86, 86, 86, 781, 86, 86, 86, 779, 786, 794, + 782, 86, 785, 787, 86, 791, 788, 789, 86, 790, - 796, 793, 86, 790, 86, 791, 86, 86, 86, 86, - 798, 794, 799, 797, 795, 86, 86, 86, 804, 802, - 801, 86, 803, 86, 86, 86, 86, 805, 806, 808, - 810, 86, 86, 86, 800, 811, 807, 86, 86, 178, - 86, 86, 817, 86, 819, 809, 86, 815, 86, 818, - 86, 812, 816, 814, 813, 820, 821, 86, 86, 86, - 822, 86, 86, 828, 823, 827, 86, 826, 824, 86, - 830, 829, 86, 86, 86, 825, 86, 831, 833, 834, - 86, 86, 86, 841, 835, 86, 86, 838, 86, 86, - 86, 86, 86, 836, 837, 848, 844, 832, 86, 843, + 792, 86, 793, 795, 798, 796, 86, 86, 86, 86, + 86, 800, 803, 801, 86, 799, 797, 804, 86, 86, + 86, 86, 86, 805, 86, 86, 86, 810, 808, 812, + 86, 86, 86, 86, 86, 802, 806, 807, 809, 86, + 813, 819, 86, 817, 811, 814, 86, 86, 820, 816, + 86, 818, 86, 815, 86, 821, 822, 823, 86, 86, + 86, 824, 86, 86, 826, 825, 830, 828, 827, 829, + 86, 832, 86, 86, 86, 831, 833, 86, 836, 835, + 86, 86, 86, 837, 86, 843, 86, 840, 834, 86, + 86, 86, 86, 838, 839, 846, 86, 848, 845, 86, - 86, 839, 840, 86, 846, 842, 850, 847, 845, 86, - 849, 86, 86, 854, 86, 856, 852, 86, 855, 86, - 86, 851, 858, 857, 86, 86, 853, 860, 86, 86, - 86, 86, 866, 86, 86, 86, 859, 867, 86, 86, - 86, 86, 861, 868, 86, 86, 862, 863, 86, 864, - 869, 865, 86, 875, 870, 86, 873, 86, 871, 86, - 872, 86, 86, 874, 86, 876, 877, 878, 882, 86, - 86, 86, 86, 86, 86, 176, 879, 86, 891, 889, - 86, 881, 880, 86, 86, 86, 884, 883, 892, 885, - 886, 887, 888, 86, 890, 86, 86, 893, 86, 86, + 86, 841, 842, 850, 852, 844, 849, 86, 86, 856, + 86, 86, 847, 854, 857, 86, 86, 858, 851, 853, + 86, 86, 860, 855, 86, 86, 862, 86, 86, 86, + 86, 868, 86, 86, 86, 86, 859, 86, 869, 86, + 861, 870, 86, 863, 86, 864, 865, 875, 866, 86, + 867, 873, 877, 86, 871, 86, 86, 872, 86, 86, + 86, 86, 86, 874, 876, 86, 884, 86, 880, 879, + 86, 86, 86, 878, 86, 86, 893, 161, 881, 891, + 883, 882, 86, 885, 86, 887, 886, 86, 894, 888, + 889, 890, 86, 86, 86, 86, 892, 86, 86, 86, - 86, 897, 86, 86, 894, 86, 895, 896, 902, 901, - 86, 86, 903, 900, 898, 904, 905, 86, 899, 86, - 86, 86, 86, 170, 86, 86, 907, 912, 913, 908, - 910, 86, 86, 86, 914, 906, 909, 911, 86, 86, - 86, 928, 915, 86, 86, 920, 916, 86, 917, 921, - 86, 86, 922, 924, 86, 918, 86, 919, 86, 86, - 923, 925, 86, 927, 86, 86, 930, 926, 86, 934, - 86, 86, 86, 86, 86, 86, 931, 86, 935, 929, - 936, 86, 86, 175, 86, 86, 933, 950, 86, 937, - 932, 951, 947, 949, 939, 86, 86, 938, 86, 948, + 899, 895, 86, 86, 897, 86, 86, 86, 898, 903, + 904, 896, 902, 900, 905, 86, 86, 901, 86, 86, + 907, 908, 86, 86, 909, 910, 86, 906, 911, 915, + 86, 86, 913, 917, 170, 86, 912, 86, 914, 916, + 86, 918, 86, 86, 86, 919, 924, 86, 86, 920, + 86, 925, 927, 86, 86, 86, 931, 921, 922, 926, + 928, 86, 86, 929, 923, 86, 86, 930, 86, 933, + 86, 937, 86, 86, 86, 86, 86, 86, 934, 86, + 938, 932, 939, 86, 86, 86, 958, 86, 936, 86, + 86, 940, 952, 935, 950, 953, 942, 86, 86, 941, - 940, 86, 86, 941, 952, 954, 958, 942, 86, 955, - 943, 86, 953, 86, 956, 86, 959, 944, 945, 961, - 946, 86, 957, 86, 86, 86, 969, 86, 86, 86, - 86, 972, 86, 974, 86, 960, 86, 962, 963, 976, - 964, 86, 971, 965, 970, 978, 170, 86, 966, 975, - 980, 977, 973, 981, 967, 968, 86, 86, 982, 86, - 86, 984, 86, 983, 86, 987, 979, 986, 86, 86, - 86, 86, 985, 988, 989, 990, 991, 86, 86, 86, - 992, 993, 86, 86, 86, 86, 995, 86, 999, 86, - 86, 86, 998, 86, 86, 1002, 86, 86, 994, 168, + 86, 951, 943, 954, 86, 944, 956, 955, 957, 945, + 86, 959, 946, 86, 86, 86, 86, 964, 86, 947, + 948, 86, 949, 86, 960, 86, 972, 86, 86, 962, + 86, 86, 961, 979, 975, 977, 963, 86, 965, 966, + 86, 967, 976, 86, 968, 974, 973, 86, 86, 969, + 86, 978, 86, 983, 86, 970, 971, 984, 981, 980, + 996, 986, 985, 86, 86, 987, 86, 988, 86, 990, + 86, 989, 982, 86, 86, 991, 992, 994, 86, 993, + 86, 86, 995, 86, 86, 86, 86, 998, 86, 1002, + 86, 86, 86, 1001, 86, 86, 1005, 86, 86, 178, - 1006, 1004, 1007, 996, 997, 1000, 86, 1001, 1009, 1003, - 1008, 86, 86, 1010, 86, 1012, 86, 1011, 1005, 1014, - 1016, 86, 86, 86, 86, 86, 86, 1015, 86, 1018, - 86, 1017, 1019, 1020, 86, 1013, 1021, 86, 1022, 86, - 86, 86, 86, 86, 86, 1024, 1029, 86, 1025, 86, - 1032, 86, 86, 86, 86, 86, 1033, 1023, 1030, 1027, - 1026, 1031, 86, 1028, 1035, 86, 86, 86, 86, 86, - 86, 1034, 1038, 1040, 1036, 1039, 86, 86, 1037, 86, - 86, 1041, 1042, 1046, 86, 1048, 1044, 86, 1047, 86, - 86, 86, 1045, 86, 1043, 1049, 86, 86, 1056, 1051, + 997, 1009, 1007, 1010, 999, 1000, 1003, 86, 1004, 1012, + 1006, 1011, 86, 86, 1013, 86, 1015, 86, 1014, 1008, + 1017, 1019, 86, 86, 86, 86, 86, 86, 1018, 86, + 1021, 86, 1020, 1022, 1023, 86, 1016, 1024, 86, 1025, + 86, 86, 86, 86, 86, 86, 1027, 1032, 86, 1028, + 86, 1035, 86, 86, 86, 86, 86, 1036, 1026, 1033, + 1030, 1029, 1034, 86, 1031, 1038, 86, 86, 86, 86, + 86, 86, 1037, 1041, 1043, 1039, 1042, 86, 86, 1040, + 86, 86, 1044, 1045, 1049, 86, 1051, 1047, 86, 1050, + 86, 86, 86, 1048, 86, 1046, 1052, 86, 86, 1059, - 1054, 1057, 86, 86, 86, 86, 1050, 86, 1055, 1059, - 86, 1053, 86, 86, 86, 1052, 86, 86, 86, 86, - 86, 1067, 1070, 1065, 1058, 86, 1060, 1061, 86, 1071, - 1062, 86, 86, 1064, 1063, 86, 1068, 1072, 1069, 1066, - 86, 1075, 86, 86, 86, 86, 1074, 86, 1076, 1078, - 1073, 1079, 86, 86, 86, 86, 1077, 86, 86, 86, - 86, 1084, 1080, 1082, 1089, 1081, 1090, 1083, 1092, 86, - 86, 86, 86, 1091, 86, 1085, 1095, 1087, 1096, 1086, - 1088, 86, 86, 1093, 86, 1097, 86, 86, 86, 86, - 1104, 1094, 86, 1101, 86, 1103, 86, 86, 86, 1099, + 1054, 1057, 1060, 86, 86, 86, 86, 1053, 86, 1058, + 1062, 86, 1056, 86, 86, 86, 1055, 86, 86, 86, + 86, 86, 1070, 1073, 1068, 1061, 86, 1063, 1064, 86, + 1074, 1065, 86, 86, 1067, 1066, 86, 1071, 1075, 1072, + 1069, 86, 1078, 86, 86, 86, 86, 1077, 86, 1079, + 1081, 1076, 1082, 86, 86, 86, 86, 1080, 86, 86, + 86, 86, 1087, 1083, 1085, 1092, 1084, 1093, 1086, 1095, + 86, 86, 86, 86, 1094, 86, 1088, 1098, 1090, 1099, + 1089, 1091, 86, 86, 1096, 86, 1100, 86, 86, 86, + 86, 1107, 1097, 1108, 1104, 86, 1106, 86, 86, 86, - 1105, 86, 1108, 1110, 86, 1098, 86, 1100, 86, 86, - 1102, 166, 1109, 86, 1107, 86, 1106, 86, 1112, 86, - 1113, 1116, 86, 1119, 1111, 86, 1117, 170, 86, 1120, - 1118, 1121, 86, 1114, 86, 1115, 86, 1123, 86, 86, - 86, 86, 1122, 86, 1124, 86, 1136, 1137, 1139, 86, - 1126, 1127, 86, 86, 86, 86, 1138, 1141, 1125, 1128, - 86, 1129, 86, 86, 1148, 1130, 86, 1131, 1144, 1142, - 1146, 1132, 86, 1133, 1143, 1147, 86, 1140, 1134, 86, - 1145, 86, 86, 1135, 86, 1150, 1149, 1156, 86, 1153, - 86, 86, 86, 86, 1152, 86, 86, 1151, 86, 1154, + 1102, 1109, 86, 86, 1112, 86, 1101, 176, 1103, 86, + 86, 1105, 1114, 86, 86, 86, 1111, 1120, 1117, 1116, + 1110, 86, 1121, 170, 86, 1113, 86, 1115, 1123, 86, + 1124, 1118, 86, 1119, 86, 86, 1122, 86, 86, 1127, + 86, 86, 86, 86, 1140, 86, 86, 86, 1125, 1141, + 86, 1131, 1126, 86, 1128, 1130, 1143, 86, 86, 1165, + 1132, 1129, 1142, 1133, 86, 1146, 86, 1134, 86, 1135, + 1145, 1144, 1147, 1136, 86, 1137, 86, 86, 1150, 1148, + 1138, 86, 1149, 1151, 86, 1139, 1152, 86, 86, 86, + 1153, 1154, 86, 86, 1157, 86, 1156, 1160, 86, 86, - 1155, 1161, 1160, 1162, 1157, 1163, 1159, 1164, 1165, 86, - 1166, 86, 1158, 86, 1167, 86, 86, 86, 1168, 86, - 86, 86, 86, 86, 1182, 86, 1179, 86, 86, 1178, - 1183, 86, 86, 86, 86, 1169, 1180, 1170, 86, 1171, - 1181, 1184, 1189, 1188, 1172, 1185, 1173, 86, 86, 86, - 86, 1186, 1174, 1187, 1190, 86, 86, 1175, 1176, 1191, - 1195, 86, 86, 86, 1177, 86, 1196, 1198, 1192, 86, - 86, 1193, 1199, 86, 1194, 1201, 86, 86, 86, 1203, - 86, 86, 1204, 1197, 1200, 86, 86, 1209, 86, 1202, - 1206, 86, 86, 86, 86, 1207, 1208, 1205, 86, 1212, + 1159, 86, 86, 1155, 1158, 1167, 1166, 1161, 1164, 1168, + 86, 86, 1163, 1169, 86, 86, 1162, 1170, 1171, 86, + 86, 1173, 86, 86, 86, 1183, 86, 86, 1186, 86, + 86, 86, 1172, 86, 86, 1182, 1187, 1174, 86, 1175, + 1184, 1185, 1188, 86, 1176, 86, 1177, 1189, 1193, 1190, + 86, 86, 1178, 86, 86, 1194, 86, 1179, 1180, 86, + 86, 1192, 1191, 1195, 1181, 1199, 86, 86, 1202, 86, + 1203, 1196, 1197, 1200, 86, 86, 86, 1198, 86, 1207, + 1201, 1205, 86, 86, 86, 86, 86, 1208, 86, 86, + 1213, 1206, 86, 1210, 1204, 1211, 86, 86, 1214, 86, - 1210, 86, 86, 86, 86, 86, 86, 1211, 86, 1219, - 1221, 86, 1213, 1217, 1216, 1214, 86, 1218, 1215, 86, - 1223, 86, 1220, 86, 86, 86, 1225, 1222, 86, 86, - 86, 86, 86, 1230, 1235, 1231, 1232, 86, 1227, 1224, - 86, 1233, 1226, 1228, 1229, 86, 1234, 86, 86, 86, - 86, 1242, 1237, 1240, 1243, 86, 1236, 86, 1241, 86, - 1244, 1238, 86, 86, 86, 1239, 86, 1251, 86, 1245, - 86, 86, 1253, 86, 86, 86, 86, 1249, 86, 1247, - 1255, 86, 1246, 1250, 1248, 86, 1254, 1266, 1256, 86, - 1252, 86, 1257, 86, 86, 86, 1259, 1258, 1260, 86, + 86, 86, 1209, 86, 1212, 1216, 86, 86, 86, 86, + 86, 1215, 1223, 1218, 1225, 1220, 1221, 1217, 1222, 86, + 86, 1219, 86, 86, 86, 1224, 1226, 86, 1229, 86, + 86, 86, 86, 1227, 86, 86, 1234, 1235, 86, 1236, + 1239, 1231, 1228, 1230, 1237, 1233, 86, 1232, 86, 1238, + 86, 86, 86, 1241, 86, 1244, 86, 1248, 86, 1240, + 1245, 86, 86, 1246, 1242, 86, 1247, 86, 1243, 86, + 1249, 86, 86, 1255, 1257, 86, 86, 86, 1250, 86, + 86, 1251, 1253, 86, 86, 1252, 1254, 1261, 1259, 86, + 1258, 1260, 1256, 86, 1263, 86, 86, 1262, 1264, 86, - 1263, 1261, 86, 1262, 1264, 86, 86, 1269, 1270, 86, - 86, 86, 1268, 86, 1265, 86, 86, 1274, 1273, 1271, - 86, 1267, 86, 86, 86, 1280, 86, 1278, 1281, 1272, - 86, 86, 86, 86, 86, 1282, 1284, 1283, 1275, 1279, - 86, 1276, 86, 1277, 1286, 1285, 86, 86, 1290, 86, - 86, 1287, 86, 1289, 86, 1292, 86, 1291, 1293, 86, - 86, 86, 86, 86, 86, 1288, 1297, 1298, 1294, 86, - 86, 86, 86, 1299, 1300, 1304, 1305, 86, 1295, 86, - 1296, 86, 86, 1302, 1307, 1308, 86, 86, 1301, 86, - 86, 1303, 1306, 1312, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 1267, 1266, 1268, 86, 1270, 1273, + 86, 1265, 1269, 1272, 86, 86, 1274, 86, 86, 1271, + 86, 1277, 86, 1275, 86, 1278, 86, 86, 1276, 86, + 1282, 1284, 86, 1285, 1339, 86, 86, 86, 1279, 86, + 1286, 1280, 1283, 86, 1288, 1290, 1281, 86, 1287, 86, + 86, 86, 1289, 86, 1291, 1294, 1293, 86, 1296, 86, + 86, 86, 1295, 86, 86, 86, 86, 86, 86, 1297, + 1301, 1292, 1298, 86, 86, 86, 1302, 1303, 86, 1304, + 86, 86, 1299, 1308, 1300, 1309, 1305, 1306, 86, 86, + 86, 86, 86, 1311, 86, 1310, 86, 1307, 1312, 86, - 1318, 86, 1311, 1310, 1314, 86, 1309, 170, 86, 86, - 86, 86, 1313, 1319, 1320, 1315, 1321, 86, 1317, 86, - 86, 86, 1323, 1316, 1326, 1324, 86, 1322, 1330, 1325, - 1327, 1328, 86, 1331, 86, 86, 86, 1334, 86, 86, - 1329, 1333, 1332, 1335, 86, 86, 86, 86, 86, 86, - 86, 1338, 86, 1344, 86, 86, 1341, 86, 1336, 1337, - 86, 86, 1339, 86, 165, 1342, 1348, 1340, 86, 1345, - 86, 1343, 86, 1350, 1354, 1346, 1347, 86, 1355, 1358, - 86, 86, 1351, 1349, 1352, 1356, 86, 1353, 1357, 86, - 86, 86, 86, 1360, 86, 1359, 86, 86, 86, 1364, + 1313, 1317, 86, 86, 1314, 86, 1315, 86, 86, 86, + 1316, 1319, 1323, 86, 1318, 86, 86, 1324, 170, 86, + 1325, 1326, 1320, 86, 86, 86, 86, 1322, 86, 86, + 1331, 86, 1321, 1328, 1365, 1330, 1335, 1332, 1327, 1329, + 1333, 86, 86, 1336, 86, 1337, 1334, 86, 86, 86, + 86, 86, 1338, 1340, 86, 86, 1343, 86, 1341, 86, + 86, 1349, 86, 86, 1342, 86, 1346, 86, 86, 1344, + 86, 86, 1347, 86, 1345, 1359, 1353, 1350, 1355, 1348, + 86, 1360, 1352, 1351, 86, 86, 86, 1356, 1354, 1357, + 1361, 1363, 1358, 1362, 86, 86, 86, 86, 86, 86, - 86, 1363, 1367, 86, 86, 1361, 86, 1371, 86, 1362, - 1366, 86, 86, 86, 1368, 1365, 1372, 1369, 1373, 86, - 86, 1377, 1370, 1376, 1374, 1375, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 1383, 86, 86, - 86, 1378, 1379, 1381, 1382, 1384, 1388, 1380, 86, 86, - 86, 1385, 86, 1387, 1389, 1386, 1390, 1392, 1391, 86, - 86, 86, 86, 86, 1393, 86, 1400, 86, 86, 1394, - 86, 1395, 86, 1403, 86, 86, 1398, 1397, 1401, 1396, - 1406, 1402, 1399, 86, 1408, 86, 1405, 86, 1404, 1409, - 86, 86, 1413, 1410, 86, 1407, 86, 1423, 1427, 1411, + 1364, 86, 86, 1369, 86, 1368, 86, 1372, 86, 1376, + 86, 86, 86, 1371, 1366, 1367, 1377, 1378, 1370, 1374, + 1373, 86, 86, 1375, 86, 86, 86, 1380, 1381, 86, + 86, 86, 86, 86, 1382, 86, 86, 86, 1386, 86, + 1388, 1379, 86, 86, 1383, 1384, 86, 1387, 1389, 1393, + 1385, 86, 86, 86, 1390, 86, 86, 1392, 1391, 86, + 86, 1394, 1395, 86, 1397, 86, 86, 1398, 1400, 1405, + 86, 1396, 1399, 86, 86, 86, 86, 86, 1401, 86, + 1403, 1406, 1408, 1404, 1407, 1402, 86, 86, 86, 1412, + 1413, 1411, 1410, 1409, 86, 1414, 86, 86, 1415, 86, - 1412, 86, 1414, 86, 86, 1422, 1415, 1421, 86, 1416, - 1417, 86, 1424, 1425, 1418, 86, 86, 86, 86, 86, - 1419, 86, 1428, 1429, 1420, 1426, 86, 1430, 86, 1432, - 86, 86, 1437, 1433, 86, 1434, 1431, 86, 86, 1435, - 86, 1439, 1440, 1438, 86, 1443, 1444, 86, 86, 1436, - 86, 86, 86, 1445, 1441, 86, 1447, 86, 1474, 1446, - 86, 1448, 1442, 1449, 86, 1450, 86, 1451, 86, 1452, - 1458, 1453, 86, 1454, 1455, 1456, 86, 86, 1460, 1457, - 86, 1462, 86, 86, 86, 86, 1463, 86, 86, 1461, - 1466, 1459, 1464, 86, 86, 86, 1472, 1468, 1467, 86, + 1418, 1416, 86, 86, 1429, 1505, 1428, 1417, 86, 1419, + 1426, 1427, 86, 1420, 86, 86, 1421, 1422, 86, 1430, + 1432, 1423, 86, 1433, 1431, 86, 86, 1424, 86, 1435, + 1434, 1425, 86, 1437, 86, 86, 86, 1438, 1442, 1439, + 86, 86, 86, 1436, 86, 86, 86, 1445, 86, 1443, + 1448, 1449, 86, 1450, 1441, 1440, 86, 86, 86, 1446, + 86, 1444, 1451, 86, 1447, 86, 1458, 86, 1457, 1452, + 86, 1459, 1460, 1461, 1453, 86, 1454, 86, 1455, 86, + 1456, 86, 1464, 1463, 86, 1467, 86, 1470, 1462, 86, + 1468, 86, 86, 1466, 1471, 1469, 86, 86, 86, 1465, - 1473, 86, 86, 86, 1465, 86, 86, 86, 1476, 1471, - 86, 86, 1469, 1470, 86, 1475, 1478, 1479, 86, 1477, - 1483, 86, 86, 1482, 1480, 1485, 86, 1488, 86, 1484, - 1486, 86, 86, 86, 1487, 86, 1481, 1491, 86, 1493, - 86, 86, 1490, 86, 1494, 86, 1495, 86, 1498, 86, - 86, 1489, 86, 86, 86, 1492, 1501, 1503, 86, 86, - 86, 86, 1506, 86, 1504, 86, 1496, 1505, 1497, 1500, - 1499, 86, 86, 86, 1502, 1508, 1510, 86, 86, 1507, - 1509, 86, 1512, 86, 1515, 86, 1513, 1511, 1514, 86, - 1516, 86, 1517, 86, 1518, 86, 86, 86, 1523, 1524, + 86, 1477, 86, 1478, 86, 1473, 1472, 86, 86, 86, + 86, 86, 1479, 86, 1476, 1481, 1474, 1475, 86, 86, + 1483, 86, 1480, 1482, 86, 1484, 1487, 1488, 86, 1490, + 86, 1485, 86, 86, 1491, 86, 1492, 86, 86, 1489, + 1493, 1496, 86, 86, 1486, 1498, 86, 1495, 86, 1499, + 86, 86, 86, 1503, 86, 1500, 1494, 86, 86, 86, + 1508, 1506, 86, 1497, 86, 86, 86, 1509, 86, 86, + 1511, 86, 1501, 1502, 1510, 86, 1515, 1504, 1513, 1507, + 86, 86, 1512, 86, 1514, 86, 1517, 86, 86, 86, + 1519, 1518, 1520, 1521, 1516, 86, 1522, 86, 86, 86, - 1526, 1520, 86, 1521, 86, 86, 86, 1525, 86, 86, - 1522, 1519, 86, 1530, 86, 86, 86, 1527, 86, 86, - 86, 1532, 170, 1529, 86, 1538, 1539, 86, 1528, 1534, - 86, 86, 86, 1540, 86, 1531, 1533, 1535, 1541, 86, - 1536, 86, 86, 86, 86, 86, 1549, 1537, 1542, 86, - 1544, 86, 86, 1546, 1543, 86, 1547, 1554, 86, 1545, - 1553, 1548, 86, 86, 86, 86, 1558, 86, 1556, 1550, - 1552, 1559, 86, 86, 1561, 1562, 1551, 163, 86, 86, - 86, 86, 86, 1557, 86, 1555, 1567, 86, 86, 1568, - 1570, 1560, 1563, 1569, 1564, 1565, 1571, 1572, 1566, 86, + 86, 1528, 1523, 1529, 1525, 1524, 1526, 86, 1532, 86, + 86, 86, 86, 1527, 86, 1530, 1531, 86, 86, 1536, + 86, 1533, 86, 86, 86, 86, 170, 86, 1538, 1535, + 86, 1544, 1545, 86, 1540, 86, 1534, 86, 86, 1546, + 1547, 1541, 1537, 1539, 86, 86, 86, 1542, 86, 1548, + 86, 86, 86, 1543, 86, 1549, 86, 1555, 86, 86, + 1552, 86, 86, 86, 1550, 1551, 1553, 1559, 1554, 1560, + 86, 1556, 86, 175, 86, 86, 1558, 1562, 1564, 1557, + 1563, 1566, 1561, 1565, 86, 86, 86, 86, 1569, 86, + 1570, 86, 86, 86, 1567, 1568, 1573, 1578, 1575, 1574, - 86, 1575, 86, 86, 1573, 86, 1576, 86, 86, 86, - 1574, 86, 86, 1578, 1580, 86, 1581, 86, 86, 86, - 1584, 1577, 86, 1579, 86, 1589, 1582, 86, 86, 86, - 86, 1590, 1583, 1586, 86, 1593, 1587, 1585, 86, 86, - 1588, 86, 1594, 86, 86, 86, 1591, 86, 1592, 86, - 1600, 86, 1596, 1595, 1597, 86, 1601, 86, 1598, 86, - 1602, 86, 1605, 1599, 86, 1603, 1604, 86, 1609, 1610, - 1611, 1608, 86, 1607, 1606, 86, 86, 1613, 86, 86, - 86, 86, 86, 1618, 1619, 1614, 1612, 1617, 1620, 86, - 86, 86, 1621, 86, 86, 86, 1615, 86, 1622, 1623, + 86, 1571, 1576, 86, 1572, 86, 1577, 86, 1581, 1579, + 86, 86, 1583, 1582, 86, 86, 86, 86, 1580, 86, + 1586, 1587, 86, 86, 86, 170, 86, 1590, 86, 1585, + 86, 1595, 86, 86, 86, 1588, 1584, 1596, 1592, 1589, + 86, 1599, 86, 1591, 1593, 86, 1594, 86, 86, 86, + 1597, 86, 1600, 1598, 86, 86, 86, 86, 86, 1602, + 1606, 1601, 1608, 1603, 1604, 1607, 86, 86, 1611, 86, + 1605, 1612, 1609, 86, 1616, 1610, 86, 1615, 1613, 1617, + 86, 86, 1619, 86, 86, 86, 86, 86, 168, 86, + 1620, 1624, 1625, 1614, 1623, 1618, 86, 86, 86, 1626, - 86, 86, 1616, 86, 1625, 1624, 86, 86, 86, 86, - 86, 1626, 86, 1631, 86, 1627, 1630, 86, 1633, 1634, - 1628, 86, 1629, 86, 1637, 86, 1642, 1639, 1632, 1638, - 86, 1635, 1640, 86, 86, 86, 86, 86, 86, 86, - 1636, 1650, 1646, 1641, 86, 1645, 86, 86, 86, 86, - 1654, 1651, 86, 1643, 1644, 86, 86, 1647, 1657, 1648, - 86, 1656, 1649, 86, 86, 86, 86, 86, 1652, 86, - 86, 1655, 86, 86, 1665, 1653, 86, 86, 86, 1658, - 1666, 1662, 1659, 1672, 1660, 1661, 86, 1664, 86, 1667, - 1663, 1670, 86, 1671, 86, 1668, 86, 86, 1669, 86, + 86, 1627, 1621, 86, 1628, 86, 1629, 86, 1622, 86, + 86, 86, 86, 1630, 1632, 86, 86, 86, 86, 1631, + 86, 1637, 86, 1633, 1636, 86, 1634, 1640, 86, 1643, + 1635, 86, 1641, 1639, 1644, 86, 1638, 1645, 86, 1648, + 86, 86, 1646, 86, 86, 86, 86, 1642, 86, 86, + 1652, 1647, 1656, 1651, 86, 86, 86, 1660, 86, 1649, + 1650, 1657, 86, 86, 86, 1653, 86, 1655, 1654, 1663, + 86, 86, 1662, 86, 1658, 86, 86, 86, 86, 86, + 1686, 1659, 86, 1661, 86, 1671, 86, 166, 86, 1664, + 1665, 1668, 1666, 86, 1670, 1667, 1672, 1676, 86, 1669, - 1673, 1674, 86, 86, 1677, 86, 1675, 86, 1678, 86, - 86, 86, 1676, 1687, 1681, 1685, 86, 86, 1682, 86, - 86, 1679, 1686, 1680, 1689, 86, 1684, 1683, 86, 86, - 1690, 86, 1691, 1692, 86, 1688, 86, 86, 1697, 1698, - 86, 86, 86, 86, 86, 1695, 86, 1702, 1701, 1703, - 86, 1693, 1694, 1705, 86, 86, 86, 1696, 86, 1699, - 86, 1706, 86, 1700, 1707, 86, 86, 86, 86, 1710, - 1704, 86, 1708, 86, 1715, 86, 1709, 1713, 86, 86, - 86, 86, 86, 1711, 86, 1719, 86, 1712, 86, 1721, - 1716, 1714, 86, 1722, 86, 1720, 86, 1727, 1718, 1717, + 1675, 1673, 1677, 86, 86, 1674, 86, 86, 86, 1678, + 1679, 86, 86, 86, 1683, 86, 86, 1681, 1684, 86, + 1680, 1687, 86, 1693, 1682, 1691, 86, 86, 1688, 86, + 86, 1685, 1692, 86, 1694, 1689, 86, 1697, 1690, 86, + 86, 1696, 86, 1695, 1698, 86, 86, 1703, 1704, 86, + 86, 86, 86, 86, 1701, 86, 1708, 1707, 1709, 1699, + 1700, 86, 1711, 86, 86, 86, 1702, 86, 1705, 86, + 1712, 86, 1706, 1713, 86, 86, 86, 86, 1716, 86, + 86, 1710, 86, 1721, 86, 1714, 1717, 1715, 1719, 86, + 86, 86, 1727, 86, 86, 1722, 1718, 1720, 1725, 86, - 1723, 1724, 86, 86, 86, 86, 1732, 86, 86, 1730, - 86, 86, 1733, 86, 1726, 86, 1728, 1725, 86, 1735, - 1731, 1729, 86, 86, 1737, 86, 1738, 86, 1740, 170, - 1734, 1741, 86, 1736, 1739, 86, 86, 86, 1742, 86, - 1743, 1744, 86, 1746, 86, 1745, 86, 1752, 86, 161, - 86, 1747, 86, 1753, 1756, 86, 1750, 86, 1748, 1749, - 86, 86, 86, 86, 1760, 1758, 1757, 1762, 1761, 1751, - 1754, 86, 1755, 86, 1764, 86, 1766, 86, 86, 86, - 86, 1759, 86, 86, 86, 1768, 86, 1769, 86, 1765, - 86, 1763, 86, 1771, 86, 1772, 86, 1767, 1773, 1776, + 86, 86, 86, 1728, 1726, 1723, 86, 1733, 1724, 86, + 86, 86, 86, 1738, 86, 1730, 1736, 1729, 86, 86, + 86, 86, 1732, 1734, 1739, 86, 1731, 1737, 1735, 86, + 1741, 86, 86, 86, 86, 1745, 1744, 170, 1740, 1747, + 1743, 1742, 1748, 86, 86, 86, 1750, 1749, 86, 86, + 1751, 1746, 86, 1752, 86, 86, 86, 1759, 86, 86, + 165, 86, 86, 1754, 1760, 86, 1753, 1765, 1757, 1763, + 86, 1755, 1756, 86, 1764, 86, 1769, 1767, 1761, 86, + 1758, 1762, 86, 86, 1768, 1771, 86, 1773, 86, 86, + 86, 86, 86, 1766, 86, 86, 1775, 1776, 86, 1778, - 86, 1777, 86, 1775, 1774, 86, 86, 1770, 1778, 1781, - 1784, 86, 1782, 86, 1779, 86, 86, 86, 1785, 86, - 1786, 86, 1792, 86, 1783, 1780, 1789, 86, 1788, 1793, - 1791, 1794, 86, 86, 86, 86, 1787, 86, 1795, 1798, - 1790, 86, 1796, 86, 1797, 86, 86, 1800, 86, 86, - 1801, 1799, 86, 1805, 1806, 1804, 86, 1808, 86, 86, - 86, 1807, 86, 86, 86, 86, 86, 1802, 86, 1803, - 1810, 1811, 86, 1812, 86, 86, 86, 86, 86, 86, - 1813, 1809, 86, 1821, 1814, 86, 1815, 1822, 1816, 1817, - 1818, 1827, 86, 86, 86, 1819, 86, 86, 86, 86, + 1772, 86, 1779, 1770, 86, 86, 86, 86, 1774, 1780, + 1783, 86, 1784, 86, 86, 1791, 86, 86, 1777, 1793, + 1782, 86, 1781, 86, 1785, 1786, 1788, 86, 86, 1789, + 86, 86, 1792, 1798, 1787, 1794, 1796, 1795, 1799, 86, + 1800, 1790, 1797, 1801, 86, 86, 86, 86, 1803, 86, + 1802, 86, 1804, 1805, 86, 86, 86, 1807, 86, 86, + 1806, 86, 1812, 1813, 1811, 86, 86, 1815, 86, 86, + 1814, 86, 1808, 86, 86, 1809, 1817, 86, 1810, 1818, + 86, 86, 1819, 86, 86, 86, 86, 86, 86, 1816, + 86, 86, 1820, 1829, 1828, 86, 86, 86, 1823, 1824, - 86, 1823, 86, 1820, 1824, 1825, 86, 1826, 1833, 86, - 86, 86, 86, 1837, 1829, 1835, 1828, 86, 86, 1830, - 1831, 1832, 1834, 1836, 86, 86, 86, 86, 86, 86, - 86, 86, 1838, 86, 1844, 1842, 86, 1845, 1839, 1851, - 1846, 86, 1840, 1841, 1843, 86, 1847, 86, 1848, 1852, - 86, 1853, 86, 1849, 86, 86, 1850, 1854, 1856, 1855, - 1857, 86, 86, 86, 86, 1861, 1859, 1858, 1860, 1862, - 86, 86, 86, 86, 86, 86, 1870, 1871, 86, 86, - 86, 1865, 86, 1867, 1869, 86, 1868, 1864, 86, 1863, - 86, 1877, 1866, 1873, 86, 86, 1878, 86, 86, 1872, + 1825, 1821, 86, 1822, 1834, 1826, 86, 86, 1831, 1832, + 86, 86, 86, 1827, 1830, 1833, 86, 1840, 86, 86, + 86, 86, 86, 1836, 86, 1842, 1835, 86, 1844, 86, + 1838, 1837, 86, 1839, 1843, 86, 1845, 86, 1846, 1841, + 86, 86, 86, 86, 1849, 86, 86, 1851, 86, 1858, + 1848, 1852, 1850, 1847, 1853, 1859, 86, 1854, 1855, 1860, + 86, 86, 86, 1856, 86, 1863, 1862, 1864, 86, 86, + 1857, 86, 86, 1861, 86, 1868, 1867, 1865, 86, 1869, + 86, 86, 86, 86, 86, 1877, 1878, 86, 1866, 86, + 1872, 86, 1874, 1876, 86, 1875, 1871, 1870, 86, 86, - 1879, 86, 1875, 1874, 86, 86, 1876, 86, 1883, 86, - 1880, 86, 86, 1887, 1885, 86, 1886, 1884, 1889, 1881, - 1891, 1890, 1882, 86, 86, 86, 1895, 1888, 86, 86, - 86, 1896, 86, 86, 1901, 86, 1903, 86, 1900, 86, - 86, 1892, 1897, 1894, 1898, 1893, 86, 86, 1904, 1907, - 86, 1905, 1899, 1902, 86, 86, 1908, 86, 1911, 1909, - 86, 1906, 1915, 86, 86, 86, 1913, 86, 86, 86, - 86, 1910, 1914, 1912, 86, 1916, 86, 86, 1919, 1920, - 86, 86, 86, 86, 1917, 1921, 1927, 86, 1918, 1923, - 1922, 86, 1929, 1930, 1924, 86, 1925, 1926, 86, 86, + 1884, 1873, 86, 86, 86, 1885, 86, 1880, 1886, 1879, + 86, 86, 86, 1882, 86, 1890, 1881, 86, 1883, 86, + 86, 1894, 1887, 86, 1893, 86, 1892, 1891, 1898, 1888, + 1889, 86, 86, 86, 1896, 1895, 1902, 1897, 86, 86, + 86, 1903, 86, 86, 1908, 86, 1910, 86, 1907, 1899, + 86, 1901, 1904, 1900, 1905, 1911, 86, 86, 86, 86, + 1914, 86, 1906, 1909, 1912, 86, 86, 1918, 86, 86, + 1913, 1915, 1917, 86, 1922, 86, 86, 1916, 1920, 86, + 86, 1919, 86, 86, 1921, 86, 86, 1923, 1924, 86, + 1926, 1927, 1928, 86, 86, 1925, 86, 86, 1929, 1934, - 1932, 86, 86, 86, 1931, 1936, 86, 1938, 1928, 86, - 86, 86, 86, 86, 86, 1933, 1942, 86, 86, 86, - 1934, 86, 1935, 1937, 1945, 1944, 86, 1940, 86, 86, - 1941, 1939, 86, 1946, 1943, 1948, 86, 1947, 170, 86, - 1950, 1949, 1952, 86, 86, 1951, 1955, 86, 86, 86, - 1953, 1959, 86, 86, 86, 86, 86, 86, 1954, 86, - 1957, 1961, 86, 1956, 1966, 86, 86, 1960, 1958, 1962, - 86, 1963, 1969, 86, 1964, 1978, 1965, 1967, 1970, 86, - 1968, 86, 1972, 86, 1971, 86, 86, 1975, 1976, 86, - 1973, 86, 86, 86, 86, 1974, 86, 1979, 86, 86, + 86, 86, 1930, 1932, 86, 1936, 1937, 1931, 1939, 86, + 1933, 86, 86, 86, 1938, 1943, 86, 1940, 86, 1945, + 86, 1935, 1941, 86, 86, 86, 86, 1949, 86, 86, + 86, 1944, 1942, 86, 1951, 86, 86, 86, 1952, 1947, + 86, 1954, 1946, 86, 1948, 1955, 1956, 1957, 86, 1950, + 86, 170, 86, 1960, 1958, 1953, 86, 1959, 1963, 86, + 86, 86, 86, 1961, 1967, 86, 86, 1962, 86, 86, + 86, 86, 1965, 1969, 86, 1964, 1968, 1974, 86, 86, + 1966, 1970, 1971, 86, 163, 1977, 1975, 1972, 1978, 86, + 86, 1973, 86, 1979, 1980, 86, 1976, 1981, 86, 1983, - 86, 86, 86, 1977, 86, 1984, 1985, 86, 86, 1989, - 86, 1986, 1980, 86, 86, 86, 1982, 1983, 1981, 1987, - 1993, 86, 1990, 1988, 1997, 86, 1995, 1994, 1998, 1996, - 1992, 86, 86, 86, 86, 1991, 86, 86, 86, 86, - 2004, 86, 86, 86, 2007, 2008, 86, 2009, 86, 2002, - 86, 2000, 1999, 2011, 86, 2001, 2005, 2003, 2006, 2010, - 86, 2012, 2013, 2015, 86, 86, 2017, 86, 2019, 2016, - 2018, 2014, 86, 86, 86, 2021, 86, 86, 2024, 86, - 2023, 86, 86, 86, 2027, 86, 86, 86, 2026, 86, - 86, 2020, 2030, 86, 2031, 2032, 86, 2033, 86, 86, + 1984, 86, 86, 86, 86, 86, 1986, 1982, 86, 86, + 86, 1987, 86, 86, 1985, 86, 86, 86, 1992, 86, + 1993, 86, 86, 1988, 86, 1994, 1997, 86, 1990, 1995, + 1991, 1989, 2001, 1998, 1996, 86, 86, 2005, 86, 2002, + 2003, 2006, 2000, 86, 86, 86, 1999, 86, 86, 86, + 86, 2004, 2012, 86, 86, 86, 2015, 2016, 86, 2017, + 86, 2010, 86, 2008, 2007, 2019, 86, 2009, 2013, 2011, + 2014, 86, 2020, 2018, 86, 2023, 86, 86, 2025, 86, + 2027, 2024, 2026, 2021, 86, 86, 86, 2029, 86, 86, + 2032, 86, 2031, 86, 86, 2022, 86, 2035, 86, 86, - 86, 2022, 2025, 86, 2028, 2041, 86, 2029, 2034, 2035, - 2036, 86, 86, 86, 86, 2037, 2043, 2039, 2038, 86, - 2040, 2044, 86, 86, 86, 2047, 2042, 2045, 2050, 2046, - 2048, 86, 2052, 86, 86, 2054, 86, 86, 86, 2049, - 2051, 86, 2056, 86, 86, 2059, 2060, 86, 86, 2062, - 86, 86, 86, 86, 2053, 86, 86, 86, 2057, 86, - 2067, 2064, 2065, 2055, 86, 2058, 86, 86, 2061, 2069, - 86, 2068, 86, 2073, 2071, 86, 2063, 2066, 2070, 2072, - 86, 2075, 86, 86, 2079, 86, 2082, 86, 2078, 86, - 86, 2083, 86, 2074, 2081, 86, 2085, 86, 2077, 2086, + 86, 2034, 86, 2028, 86, 2039, 86, 2038, 86, 86, + 2041, 2040, 86, 2030, 2033, 2036, 86, 86, 2049, 86, + 2037, 2042, 2043, 2044, 86, 2051, 2047, 86, 2045, 86, + 2052, 86, 2046, 86, 86, 2055, 86, 2048, 86, 2050, + 2058, 2053, 86, 86, 2054, 2056, 86, 2059, 2062, 86, + 86, 2057, 86, 2064, 86, 86, 86, 2067, 2068, 86, + 86, 86, 2060, 86, 2061, 2070, 86, 86, 86, 86, + 2077, 86, 2072, 2075, 2065, 86, 2063, 2066, 2073, 86, + 2069, 86, 86, 86, 2076, 86, 2071, 86, 2074, 86, + 2080, 86, 2083, 86, 2081, 2087, 2078, 2079, 2086, 86, - 86, 2076, 86, 86, 86, 2080, 2088, 86, 2087, 86, - 86, 86, 86, 2092, 2084, 86, 2095, 2096, 86, 2097, - 86, 2091, 86, 86, 2089, 86, 2090, 86, 86, 2093, - 86, 2100, 86, 2099, 86, 2104, 2105, 86, 2094, 86, - 2098, 86, 2102, 86, 2110, 2109, 86, 2101, 86, 2107, - 2103, 2106, 2111, 2113, 86, 86, 86, 2112, 2108, 2114, - 2117, 86, 86, 86, 86, 86, 86, 2115, 86, 2121, - 2124, 86, 2116, 86, 86, 86, 86, 2119, 2127, 2129, - 86, 86, 2130, 2118, 2120, 86, 2122, 2128, 2123, 2125, - 2126, 86, 86, 86, 2132, 2131, 2136, 86, 2137, 86, + 2090, 86, 86, 86, 86, 2085, 86, 2082, 86, 2089, + 2091, 2093, 86, 2084, 2094, 86, 86, 86, 86, 2088, + 86, 2095, 2092, 86, 2097, 86, 2100, 2096, 86, 86, + 2103, 2098, 2099, 2104, 2105, 86, 86, 86, 86, 86, + 86, 2108, 86, 2101, 86, 2113, 86, 86, 86, 2112, + 86, 2107, 86, 86, 2102, 2106, 2117, 2109, 2110, 86, + 2118, 86, 2120, 2115, 2111, 86, 2114, 2119, 86, 2116, + 2121, 86, 2122, 2125, 86, 86, 2123, 86, 86, 86, + 86, 2124, 86, 2132, 2129, 86, 86, 86, 86, 86, + 86, 2127, 2135, 86, 2137, 86, 2126, 2128, 86, 2138, - 2138, 2140, 86, 2133, 2141, 2139, 86, 86, 2134, 86, - 86, 86, 2145, 2135, 2143, 86, 86, 86, 86, 86, - 2147, 86, 86, 2144, 2150, 2152, 86, 2146, 2142, 2148, - 86, 86, 2153, 86, 170, 86, 86, 86, 3444, 2156, - 86, 2154, 86, 2151, 2149, 2160, 2155, 2157, 2158, 86, - 86, 2162, 2161, 2163, 86, 2166, 2159, 2164, 86, 86, - 86, 86, 2165, 86, 86, 2167, 2169, 86, 2168, 86, - 86, 86, 2171, 2170, 2172, 86, 2174, 86, 86, 2178, - 86, 2173, 2175, 2177, 86, 86, 86, 2183, 86, 2176, - 2180, 2181, 86, 2179, 86, 2182, 86, 86, 86, 86, + 2130, 2134, 2131, 2133, 86, 86, 2136, 86, 2139, 86, + 2143, 2144, 86, 2158, 2140, 2145, 86, 86, 2141, 2146, + 2148, 2149, 2151, 2142, 2147, 86, 86, 86, 86, 86, + 2153, 86, 86, 86, 86, 2150, 86, 2155, 86, 2157, + 2152, 2154, 2159, 2156, 2161, 2162, 86, 86, 86, 86, + 86, 170, 86, 2163, 2160, 86, 2165, 86, 86, 2171, + 86, 2166, 2169, 2170, 2167, 2172, 86, 2164, 2173, 86, + 86, 2175, 86, 86, 2168, 86, 86, 86, 2176, 2178, + 2177, 86, 86, 86, 86, 2179, 2180, 2181, 86, 2183, + 2174, 86, 86, 86, 2182, 2184, 86, 2186, 2187, 86, - 86, 86, 2190, 2188, 86, 2185, 2189, 86, 86, 86, - 86, 2195, 86, 2192, 2184, 2186, 86, 2187, 2191, 86, - 86, 2200, 2196, 2194, 86, 2193, 86, 86, 2198, 86, - 2197, 86, 86, 2201, 2204, 2207, 2199, 86, 2202, 2206, - 86, 86, 86, 86, 2205, 2212, 86, 86, 2203, 86, - 2214, 86, 86, 2208, 2215, 2217, 2211, 2209, 2210, 2216, - 86, 2218, 86, 2213, 86, 2219, 86, 86, 2222, 86, - 86, 86, 86, 2221, 86, 86, 2223, 86, 2226, 86, - 86, 2227, 86, 86, 86, 86, 86, 86, 86, 2220, - 86, 2225, 2224, 2235, 2229, 2230, 2228, 2232, 86, 2231, + 86, 2189, 2188, 2185, 86, 2190, 86, 2191, 2192, 86, + 86, 86, 86, 86, 86, 86, 2199, 2197, 86, 2194, + 2198, 86, 86, 86, 86, 2204, 2193, 2201, 86, 2195, + 86, 2196, 2200, 86, 86, 2209, 2205, 2203, 86, 2202, + 86, 86, 2207, 86, 86, 86, 2206, 2210, 2213, 86, + 2208, 86, 2211, 2215, 86, 86, 86, 2214, 2216, 86, + 86, 2217, 2212, 2221, 86, 2218, 2219, 86, 2223, 86, + 2220, 86, 2226, 2224, 2225, 86, 2222, 2227, 86, 86, + 2228, 86, 2231, 2229, 86, 86, 86, 2230, 86, 86, + 2235, 2232, 86, 86, 86, 86, 86, 86, 86, 86, - 2237, 2234, 2239, 2240, 86, 2233, 2236, 86, 86, 86, - 86, 2238, 2243, 2244, 86, 86, 2241, 2247, 86, 2246, - 86, 86, 86, 86, 86, 2249, 86, 2242, 2250, 86, - 2245, 2251, 86, 2253, 2255, 86, 2248, 2257, 2254, 86, - 86, 2252, 2258, 86, 2260, 86, 86, 86, 2256, 2259, - 86, 2262, 2263, 86, 86, 86, 2268, 86, 2264, 2265, - 86, 86, 86, 2272, 86, 2261, 2269, 2267, 2273, 86, - 2270, 86, 2271, 2266, 86, 2277, 86, 86, 2278, 2274, - 86, 86, 86, 2275, 2281, 86, 86, 2282, 2276, 86, - 86, 2283, 2287, 86, 2285, 2279, 86, 86, 2289, 86, + 86, 2236, 86, 86, 2249, 86, 2234, 2233, 2238, 2239, + 2240, 2241, 86, 2243, 2237, 2248, 86, 86, 2244, 86, + 2242, 86, 2246, 2247, 2252, 86, 86, 86, 2256, 86, + 2253, 2245, 2255, 86, 2250, 86, 86, 2251, 2258, 2254, + 86, 86, 2259, 86, 86, 2260, 2264, 2257, 86, 86, + 2262, 2266, 86, 86, 2267, 2263, 86, 86, 2261, 2269, + 86, 2271, 86, 2268, 2272, 86, 86, 2265, 86, 86, + 2273, 2274, 2277, 86, 86, 86, 2281, 86, 86, 2270, + 2278, 2282, 86, 86, 86, 2280, 2275, 2279, 86, 2276, + 86, 2283, 2286, 86, 86, 2287, 2284, 86, 2285, 2290, - 2290, 2280, 2286, 2284, 86, 86, 86, 86, 2288, 86, - 2292, 2296, 86, 2291, 86, 2298, 2294, 86, 86, 2295, - 2299, 86, 86, 86, 2293, 86, 2300, 2301, 2304, 2302, - 2305, 86, 86, 2297, 2303, 86, 86, 2309, 86, 86, - 86, 86, 86, 86, 2306, 2308, 86, 2316, 86, 86, - 86, 86, 2307, 2310, 86, 86, 2312, 2311, 2315, 2320, - 2314, 2317, 2318, 86, 86, 86, 2313, 86, 2319, 2321, - 2327, 2323, 2322, 2325, 2326, 86, 86, 86, 2331, 86, - 86, 2333, 86, 86, 2324, 86, 2330, 86, 86, 2332, - 2336, 2335, 86, 2328, 2339, 170, 86, 3444, 2341, 2345, + 86, 86, 2291, 2288, 86, 86, 2292, 2296, 86, 2294, + 2289, 86, 86, 2298, 86, 2299, 86, 2295, 2293, 86, + 86, 86, 86, 2297, 2301, 2300, 86, 86, 2305, 2307, + 2303, 86, 86, 2304, 2308, 86, 86, 86, 2302, 2309, + 2310, 86, 2313, 2306, 2311, 86, 2314, 86, 2312, 86, + 86, 2318, 86, 86, 86, 86, 86, 86, 2315, 2317, + 86, 86, 2325, 86, 86, 2321, 86, 2316, 86, 86, + 2323, 2319, 2320, 2326, 2329, 2324, 2327, 86, 86, 86, + 2322, 86, 2330, 2328, 86, 2332, 2337, 2331, 86, 2335, + 2334, 86, 2340, 86, 86, 86, 2336, 86, 2333, 86, - 86, 2329, 2334, 2342, 86, 2337, 2343, 2338, 2344, 86, - 86, 86, 86, 86, 86, 2348, 86, 2340, 2346, 86, - 2349, 86, 2352, 2353, 86, 86, 2354, 86, 86, 2347, - 2357, 2364, 2358, 2355, 2350, 2362, 86, 86, 2359, 2360, - 86, 86, 86, 86, 86, 2351, 2356, 2361, 2363, 86, - 86, 86, 86, 2365, 86, 86, 2368, 86, 86, 86, - 2371, 86, 86, 2366, 2377, 86, 2375, 2370, 86, 86, - 86, 86, 2378, 2373, 2380, 2367, 2372, 2369, 86, 2374, - 86, 86, 86, 86, 2376, 2379, 86, 2385, 2388, 86, - 86, 86, 2383, 86, 86, 86, 2382, 2381, 2389, 2386, + 2339, 2342, 86, 2341, 86, 86, 86, 170, 2345, 161, + 2346, 2349, 2347, 2338, 2344, 2343, 2351, 86, 2353, 86, + 2354, 2352, 86, 86, 86, 2348, 86, 86, 86, 2350, + 2355, 2356, 2358, 86, 86, 2359, 86, 2362, 86, 2357, + 2363, 86, 86, 2364, 2367, 86, 86, 86, 2365, 2360, + 86, 2368, 86, 2369, 2370, 86, 2366, 86, 2372, 86, + 2361, 86, 2371, 2373, 86, 2374, 86, 2376, 86, 86, + 2375, 86, 86, 2378, 86, 86, 2381, 86, 86, 86, + 2387, 86, 86, 2385, 86, 86, 2377, 2380, 2388, 86, + 2383, 86, 2379, 2382, 2390, 86, 86, 2384, 86, 86, - 2384, 2387, 86, 86, 86, 86, 86, 86, 86, 86, - 2390, 86, 2391, 2402, 86, 2401, 2396, 2392, 86, 2393, - 2400, 2394, 2398, 2404, 2395, 86, 2397, 2399, 2403, 86, - 86, 86, 2666, 2405, 86, 86, 2409, 86, 2406, 2410, - 86, 86, 86, 2411, 86, 2407, 86, 2408, 2412, 86, - 86, 2415, 2413, 2416, 86, 2414, 2417, 2418, 86, 2419, - 86, 86, 86, 86, 86, 2427, 2420, 2421, 2425, 86, - 2426, 86, 2428, 86, 2422, 86, 2424, 2430, 86, 86, - 86, 2433, 86, 2423, 86, 2432, 2434, 86, 86, 86, - 86, 86, 86, 2429, 2431, 86, 86, 2436, 2435, 86, + 2389, 2386, 86, 2395, 2398, 86, 86, 2393, 2391, 2392, + 86, 86, 2396, 86, 2399, 2394, 86, 86, 86, 86, + 2397, 86, 86, 86, 86, 2412, 86, 86, 86, 2400, + 2401, 2406, 2411, 2413, 86, 2409, 2402, 2404, 2405, 2408, + 2403, 2410, 2407, 86, 86, 86, 86, 2415, 2414, 86, + 86, 2419, 2420, 86, 86, 86, 2421, 3456, 2416, 86, + 2417, 86, 2418, 2422, 86, 86, 2425, 86, 2428, 86, + 2423, 86, 2424, 2429, 86, 86, 2426, 86, 86, 2427, + 2430, 2432, 2431, 2435, 86, 2436, 86, 86, 2438, 86, + 2434, 2433, 86, 2440, 86, 86, 86, 2443, 86, 86, - 2440, 2441, 86, 86, 2438, 2445, 2437, 2443, 86, 86, - 2439, 2442, 2446, 86, 2444, 86, 2447, 2449, 86, 86, - 86, 2452, 2450, 86, 2455, 86, 86, 86, 2451, 86, - 86, 2448, 2460, 86, 2459, 2453, 86, 86, 86, 86, - 2465, 86, 2454, 2462, 2458, 86, 2456, 86, 86, 86, - 2457, 86, 2463, 86, 2464, 2461, 2467, 86, 2472, 86, - 86, 2468, 2474, 86, 86, 2466, 2469, 2475, 2473, 2470, - 2478, 86, 86, 86, 86, 2479, 86, 2480, 2481, 2471, - 86, 86, 2476, 86, 2477, 86, 2485, 2483, 86, 86, - 2487, 2490, 2491, 2488, 86, 86, 2482, 86, 86, 2494, + 2442, 2444, 86, 86, 86, 86, 2437, 86, 86, 86, + 2439, 2441, 2446, 2445, 2450, 2451, 86, 2453, 86, 2448, + 86, 2447, 86, 86, 2457, 86, 2449, 2452, 2455, 86, + 2459, 86, 2456, 86, 86, 86, 2462, 86, 2454, 2458, + 2465, 86, 86, 86, 2460, 86, 86, 86, 2461, 86, + 2463, 2469, 2470, 86, 2472, 86, 2464, 86, 2475, 86, + 2468, 86, 2466, 86, 86, 2471, 2467, 86, 86, 86, + 2473, 2477, 2474, 86, 2482, 86, 86, 2478, 2484, 86, + 86, 2476, 2485, 2488, 2483, 2479, 2480, 86, 86, 86, + 86, 86, 2489, 2490, 86, 2481, 2491, 2486, 86, 2487, - 86, 2484, 86, 86, 2489, 86, 86, 2495, 2496, 2486, - 2493, 86, 86, 86, 2499, 2492, 86, 86, 86, 2498, - 86, 2500, 2501, 2505, 2507, 2497, 2502, 2503, 2506, 86, - 2504, 86, 86, 2511, 86, 86, 2510, 86, 2512, 86, - 86, 2509, 86, 2515, 86, 170, 2513, 86, 86, 2514, - 2516, 2508, 86, 2521, 86, 86, 86, 2523, 86, 86, - 86, 86, 86, 2519, 2517, 2529, 2518, 86, 2520, 86, - 2522, 2524, 2525, 2526, 2527, 86, 2532, 86, 2528, 2531, - 2653, 2530, 86, 2533, 2534, 86, 86, 86, 2537, 2535, - 2538, 86, 2536, 86, 86, 86, 86, 2540, 86, 86, + 86, 86, 86, 2493, 86, 2495, 2497, 2498, 2500, 86, + 2501, 86, 2492, 86, 86, 2494, 86, 2504, 2505, 2499, + 86, 86, 86, 86, 2496, 2506, 2503, 86, 86, 86, + 2502, 2509, 86, 86, 86, 2508, 2510, 2515, 2511, 2516, + 86, 2512, 2513, 86, 2517, 86, 2507, 86, 2514, 86, + 86, 86, 2521, 86, 2522, 86, 2523, 86, 2526, 2520, + 86, 170, 2525, 86, 2524, 86, 2527, 2518, 86, 2519, + 2532, 86, 86, 86, 86, 86, 86, 86, 86, 2543, + 86, 2530, 2534, 2528, 2531, 2529, 2535, 2533, 2538, 86, + 86, 2536, 2537, 2539, 2540, 86, 86, 2544, 2541, 2545, - 2539, 86, 2542, 86, 86, 2546, 2547, 2541, 86, 2544, - 86, 2543, 86, 2549, 86, 86, 86, 86, 2550, 2551, - 2552, 86, 2545, 86, 2548, 86, 2554, 86, 2553, 2558, - 86, 2557, 86, 86, 2555, 2556, 86, 86, 2560, 86, - 86, 86, 86, 2567, 2564, 2559, 86, 2566, 86, 86, - 86, 86, 2568, 2563, 86, 86, 2561, 2562, 86, 2572, - 86, 2565, 86, 86, 2582, 2577, 2569, 2576, 86, 2570, - 2571, 86, 2574, 86, 2575, 86, 2573, 2579, 86, 86, - 86, 2578, 2581, 2583, 86, 2585, 86, 2580, 2587, 86, - 2586, 2589, 86, 86, 86, 2591, 86, 86, 86, 86, + 86, 86, 86, 86, 2546, 2548, 2549, 2542, 2547, 86, + 86, 86, 86, 2551, 86, 86, 2552, 86, 2550, 86, + 2553, 2558, 2554, 86, 2557, 86, 86, 86, 86, 2555, + 86, 2560, 2561, 2562, 2563, 86, 2556, 86, 86, 2559, + 86, 86, 2564, 86, 86, 2569, 86, 2565, 2568, 2566, + 86, 86, 86, 86, 86, 2571, 2570, 86, 2575, 86, + 2578, 2567, 86, 86, 2577, 86, 86, 2574, 2579, 86, + 86, 2572, 2573, 86, 86, 2583, 86, 2576, 86, 2588, + 86, 2580, 86, 2587, 2581, 86, 2585, 86, 2582, 2590, + 2589, 86, 2586, 86, 2584, 86, 2593, 86, 86, 2598, - 86, 2588, 2590, 86, 2595, 2584, 86, 86, 86, 86, - 2600, 86, 2593, 2598, 2599, 2592, 2594, 2601, 86, 2602, - 86, 2603, 86, 2604, 86, 86, 86, 2597, 86, 2596, - 86, 2606, 86, 2608, 86, 2611, 86, 86, 86, 2613, - 2609, 2612, 86, 2607, 2605, 86, 2610, 2616, 86, 86, - 86, 86, 2617, 2615, 86, 2614, 86, 2620, 2621, 86, - 86, 2618, 86, 2624, 86, 2622, 2626, 2625, 2619, 2623, - 86, 86, 86, 86, 86, 86, 86, 2630, 2634, 86, - 86, 2633, 2635, 86, 2627, 2628, 2629, 2636, 86, 2637, - 86, 86, 2638, 2631, 86, 2632, 86, 2641, 86, 2640, + 2591, 2594, 86, 2596, 86, 86, 2595, 2592, 2597, 2599, + 2600, 86, 86, 2602, 86, 86, 86, 86, 86, 86, + 86, 2601, 2606, 86, 86, 2611, 86, 86, 2609, 2610, + 2604, 2612, 86, 2603, 2605, 86, 2613, 86, 2614, 86, + 86, 2608, 86, 2615, 2617, 2607, 86, 86, 86, 2619, + 86, 2622, 86, 86, 86, 2624, 2623, 2616, 86, 2618, + 2620, 86, 2621, 2627, 86, 86, 86, 86, 2628, 2626, + 86, 2625, 86, 2631, 2632, 86, 86, 2629, 86, 2635, + 86, 2633, 2637, 2636, 2630, 2634, 86, 86, 86, 86, + 86, 86, 86, 2641, 2645, 86, 86, 2644, 2646, 86, - 86, 2642, 86, 86, 86, 86, 86, 86, 86, 2639, - 2643, 2649, 86, 2651, 86, 2645, 2652, 86, 86, 86, - 2654, 86, 2644, 2648, 2646, 2650, 2647, 86, 2655, 86, - 2656, 86, 2658, 2661, 86, 86, 86, 86, 86, 2657, - 86, 86, 170, 86, 2662, 2669, 86, 2671, 86, 2659, - 86, 2660, 2667, 2665, 2670, 86, 86, 2664, 86, 2672, - 86, 86, 2663, 2668, 2678, 86, 2675, 86, 86, 3444, - 2673, 2674, 2680, 2681, 2682, 86, 2683, 86, 86, 2679, - 2676, 86, 2684, 2677, 86, 2685, 86, 2686, 86, 86, - 86, 86, 86, 86, 86, 86, 2687, 86, 86, 2688, + 2638, 2639, 2640, 2647, 86, 2648, 86, 86, 2649, 2642, + 86, 2643, 86, 2652, 86, 2651, 86, 2653, 86, 86, + 86, 86, 86, 86, 86, 2650, 2654, 2660, 86, 2662, + 86, 2656, 2663, 86, 86, 2664, 86, 86, 2655, 2659, + 2657, 2661, 2658, 2666, 86, 86, 2665, 86, 86, 2667, + 2669, 2672, 86, 86, 2674, 86, 86, 86, 86, 86, + 86, 170, 2673, 86, 2668, 86, 2683, 2670, 2671, 86, + 86, 2677, 2681, 2682, 2679, 86, 86, 2676, 2684, 86, + 86, 86, 2675, 2678, 86, 2680, 86, 2690, 86, 86, + 2685, 2686, 86, 2692, 2693, 2694, 86, 2687, 2695, 86, - 2697, 86, 86, 86, 2695, 2690, 86, 86, 2689, 86, - 2692, 2691, 86, 2701, 2694, 2693, 2705, 2696, 2702, 86, - 2699, 2698, 86, 2703, 2700, 2704, 2706, 86, 2708, 86, - 86, 2707, 86, 86, 86, 86, 86, 86, 86, 86, - 2711, 2717, 86, 2718, 86, 86, 86, 86, 2709, 2712, - 2710, 2724, 2721, 2713, 2714, 2715, 2716, 86, 2719, 2722, - 86, 2723, 86, 2720, 86, 2725, 86, 86, 86, 86, - 86, 86, 86, 2729, 2733, 86, 2732, 2734, 86, 2726, - 86, 2728, 2735, 2736, 86, 2727, 86, 86, 86, 2730, - 2731, 86, 86, 86, 2737, 2738, 86, 2742, 2743, 86, + 2691, 86, 2688, 2700, 2689, 86, 2696, 86, 2697, 86, + 2698, 86, 86, 86, 86, 86, 86, 86, 86, 2699, + 86, 86, 2709, 3456, 86, 86, 2707, 2702, 86, 2713, + 2701, 86, 2704, 2703, 2714, 86, 2706, 2705, 2708, 86, + 86, 2710, 2711, 2712, 86, 2715, 2718, 86, 86, 2717, + 2720, 86, 86, 2719, 86, 86, 86, 86, 86, 86, + 86, 2716, 2723, 2729, 86, 86, 2721, 2730, 86, 2724, + 2722, 86, 86, 86, 2725, 2726, 2727, 2728, 2733, 2731, + 2734, 86, 2736, 2732, 2735, 86, 86, 86, 86, 2737, + 86, 86, 2739, 86, 86, 86, 2741, 2745, 86, 2744, - 2740, 86, 86, 2748, 86, 2747, 2739, 86, 86, 2751, - 86, 2741, 86, 86, 86, 86, 2744, 86, 2745, 2754, - 86, 2746, 2749, 2752, 2756, 86, 2750, 86, 2753, 2755, - 2757, 86, 2759, 86, 2762, 86, 86, 86, 2758, 86, - 2766, 86, 86, 2765, 2768, 86, 2764, 2760, 2763, 86, - 86, 86, 86, 2761, 2769, 86, 2774, 86, 86, 2770, - 86, 2767, 86, 2775, 2772, 2777, 86, 2771, 86, 86, - 86, 2783, 86, 2778, 86, 2773, 86, 86, 2780, 2781, - 2776, 2779, 86, 2782, 2786, 86, 86, 2787, 86, 86, - 86, 2788, 2785, 86, 2790, 86, 2784, 86, 2791, 86, + 2747, 2738, 2746, 86, 2740, 2748, 86, 2742, 86, 86, + 86, 86, 86, 2743, 86, 86, 86, 86, 2750, 2754, + 2755, 86, 86, 2752, 86, 2759, 86, 2749, 86, 2751, + 2760, 86, 2753, 2763, 86, 86, 2756, 2758, 86, 2761, + 2757, 86, 2766, 2765, 2762, 86, 2764, 2769, 86, 2768, + 86, 86, 86, 86, 2774, 86, 2767, 86, 86, 86, + 86, 2778, 86, 2770, 2777, 86, 2771, 2776, 86, 2775, + 2780, 86, 2772, 2773, 86, 86, 86, 2782, 2779, 2781, + 86, 2783, 2786, 86, 86, 2787, 86, 2784, 2789, 86, + 86, 86, 86, 2795, 86, 86, 2785, 86, 86, 2790, - 86, 86, 2789, 86, 2793, 2794, 2796, 86, 2797, 2799, - 86, 86, 2792, 86, 2795, 2798, 2800, 86, 2801, 2803, - 170, 86, 86, 86, 2808, 86, 2802, 2805, 2804, 2806, - 86, 86, 86, 2810, 86, 86, 2809, 2813, 86, 2812, - 2811, 2807, 2814, 86, 2816, 86, 86, 2818, 2815, 2817, - 86, 86, 2819, 86, 86, 2820, 2821, 2823, 86, 86, - 86, 86, 2824, 86, 2825, 86, 86, 86, 2822, 2826, - 86, 2830, 2831, 2828, 86, 2832, 2827, 86, 86, 2833, - 86, 2834, 86, 86, 86, 2835, 2836, 2829, 86, 2838, - 86, 86, 86, 2839, 2837, 86, 86, 86, 2844, 86, + 2792, 2793, 2788, 2791, 2794, 2798, 86, 86, 86, 86, + 86, 86, 2799, 2797, 2800, 2802, 86, 2796, 86, 2803, + 86, 86, 2801, 86, 86, 86, 86, 2805, 2806, 2808, + 2809, 2811, 86, 2812, 86, 2804, 2807, 86, 2810, 2815, + 170, 86, 2813, 86, 86, 2814, 86, 2820, 2816, 2817, + 86, 86, 2822, 86, 86, 2821, 86, 86, 2825, 86, + 86, 2818, 2824, 2846, 2819, 2826, 86, 2828, 86, 2823, + 2830, 86, 86, 2827, 2829, 2831, 86, 2832, 86, 86, + 2835, 86, 86, 2833, 86, 2836, 86, 2837, 86, 86, + 86, 86, 86, 2834, 2842, 2843, 2844, 2838, 2840, 2839, - 86, 2842, 86, 3444, 2841, 2843, 2847, 86, 2840, 2845, - 86, 86, 86, 2846, 2852, 86, 2848, 86, 2849, 86, - 86, 86, 2850, 86, 2853, 86, 2851, 86, 2855, 86, - 2854, 2857, 86, 2861, 3444, 2856, 2862, 86, 2859, 86, - 2858, 2864, 2865, 2867, 3444, 2860, 86, 86, 86, 86, - 2868, 86, 2863, 86, 2869, 86, 86, 2866, 2870, 2873, - 86, 86, 86, 2874, 2871, 86, 2875, 86, 86, 2872, - 86, 2878, 2880, 86, 86, 2876, 2881, 86, 2882, 86, - 86, 86, 2877, 86, 2883, 86, 2879, 86, 2884, 2885, - 86, 2889, 2887, 2888, 2886, 86, 2890, 86, 86, 2893, + 86, 86, 86, 86, 2845, 86, 2848, 2847, 86, 86, + 2841, 86, 86, 2850, 2851, 86, 86, 2849, 86, 86, + 2856, 86, 2859, 86, 2854, 2853, 86, 2855, 86, 2852, + 2857, 86, 2860, 86, 2858, 2864, 86, 86, 86, 86, + 86, 86, 2861, 86, 2865, 2869, 86, 86, 2867, 86, + 86, 2862, 2863, 2873, 86, 2868, 3456, 2866, 2871, 2876, + 2870, 2874, 86, 2877, 2879, 86, 86, 2872, 86, 86, + 86, 2882, 2878, 2880, 86, 2875, 2881, 86, 86, 2885, + 86, 86, 86, 2886, 86, 86, 2883, 86, 2887, 86, + 2890, 2884, 2892, 86, 86, 2888, 3456, 2889, 2893, 86, - 2894, 86, 2895, 86, 86, 2892, 86, 2891, 86, 2896, - 2899, 86, 86, 86, 2902, 86, 86, 2897, 86, 2903, - 86, 2898, 2904, 86, 2906, 86, 86, 86, 2910, 86, - 2900, 2905, 86, 2901, 86, 2911, 86, 2913, 2908, 2907, - 86, 2909, 86, 86, 2912, 2915, 86, 2914, 86, 86, - 2916, 86, 2917, 2921, 86, 2920, 86, 2922, 2923, 86, - 2924, 86, 86, 86, 2926, 86, 2918, 2925, 2919, 86, - 86, 86, 2927, 2929, 86, 2930, 2933, 86, 86, 86, - 2937, 86, 2931, 2932, 86, 86, 86, 86, 2928, 2939, - 2949, 86, 86, 2936, 86, 2934, 86, 2940, 2935, 2938, + 2894, 86, 86, 86, 86, 2891, 2895, 86, 2896, 2897, + 86, 86, 2899, 2901, 2898, 86, 2900, 86, 2902, 86, + 86, 2905, 86, 2903, 2906, 86, 2907, 86, 86, 86, + 2909, 2908, 2911, 86, 86, 2904, 2914, 86, 86, 2915, + 2912, 86, 2910, 2916, 86, 2918, 86, 86, 86, 86, + 86, 2922, 2923, 86, 2913, 86, 2917, 86, 2925, 2924, + 2919, 86, 86, 2921, 86, 2927, 2920, 2926, 86, 86, + 2928, 86, 2933, 2929, 86, 2932, 86, 86, 86, 86, + 2935, 2930, 2936, 86, 2937, 2938, 86, 86, 2931, 2939, + 86, 86, 2942, 2941, 86, 86, 86, 86, 86, 2934, - 2943, 2941, 2944, 2942, 2946, 86, 2950, 2945, 86, 2947, - 86, 86, 2951, 2948, 86, 2952, 86, 2953, 86, 86, - 86, 86, 2957, 86, 2955, 86, 2958, 86, 86, 86, - 2960, 2964, 86, 86, 2954, 86, 2961, 2965, 86, 2979, - 2956, 86, 2959, 86, 2966, 2968, 86, 86, 2962, 2963, - 2969, 2967, 2970, 86, 86, 2972, 86, 86, 86, 2971, - 86, 86, 2978, 86, 86, 2977, 2973, 2974, 86, 2975, - 2976, 86, 2984, 2980, 86, 86, 86, 2985, 86, 86, - 86, 86, 2982, 2988, 86, 2987, 2989, 2981, 2986, 2983, - 2990, 86, 2991, 86, 2992, 86, 2995, 86, 86, 86, + 2945, 2949, 86, 86, 86, 2956, 86, 86, 2948, 86, + 2957, 86, 2940, 2943, 2944, 2946, 86, 2950, 2947, 2951, + 2953, 86, 86, 2954, 2995, 2958, 2960, 2952, 86, 2955, + 2959, 86, 2961, 86, 86, 2962, 86, 2963, 86, 2964, + 86, 2965, 86, 86, 2966, 86, 86, 2967, 2969, 86, + 2970, 86, 86, 86, 2972, 2976, 86, 2977, 86, 86, + 2973, 86, 2978, 2968, 86, 2971, 2980, 86, 2982, 86, + 86, 2981, 2974, 2975, 86, 2983, 2984, 86, 86, 2979, + 86, 86, 86, 2985, 2990, 86, 86, 2986, 86, 2987, + 2988, 86, 2991, 86, 86, 2992, 2996, 86, 86, 86, - 86, 86, 86, 86, 3002, 86, 2999, 2996, 86, 2993, - 86, 2997, 3000, 2994, 86, 86, 86, 3003, 86, 3005, - 3006, 3009, 3001, 86, 3007, 2998, 86, 3008, 86, 3004, - 86, 3012, 3014, 86, 3013, 3015, 86, 3016, 86, 3010, - 86, 86, 3011, 86, 3444, 86, 3021, 86, 86, 3017, - 3020, 86, 86, 3022, 3024, 86, 3023, 86, 86, 86, - 86, 3018, 3019, 86, 3028, 3025, 3030, 3032, 86, 3026, - 86, 86, 86, 86, 3033, 86, 3034, 86, 3029, 3027, - 3035, 86, 3036, 86, 86, 3041, 86, 86, 3031, 86, - 86, 86, 3037, 86, 3044, 86, 86, 3040, 3038, 3039, + 2989, 2997, 86, 3000, 2994, 86, 2999, 2998, 86, 86, + 2993, 3002, 86, 3001, 3003, 86, 3007, 86, 86, 3004, + 86, 86, 86, 3005, 86, 86, 86, 3006, 3014, 3008, + 3009, 3011, 86, 3012, 86, 86, 86, 3015, 86, 3019, + 3017, 3018, 3013, 86, 86, 86, 3010, 86, 86, 3021, + 86, 3024, 3020, 3016, 3025, 3026, 86, 3029, 3022, 3027, + 86, 3023, 3028, 86, 86, 86, 86, 3033, 86, 86, + 3032, 86, 86, 86, 3034, 86, 3035, 3036, 86, 86, + 86, 3044, 86, 86, 3030, 3031, 3037, 3038, 3040, 3042, + 86, 86, 86, 3039, 3045, 86, 3046, 3041, 86, 86, - 3042, 86, 3043, 86, 3045, 86, 3050, 3046, 3049, 3048, - 86, 86, 3047, 86, 3052, 3054, 86, 3056, 86, 3051, - 3057, 86, 86, 3059, 86, 86, 86, 86, 86, 86, - 86, 86, 3055, 3062, 86, 3064, 86, 3053, 3065, 86, - 3067, 3060, 3061, 3058, 3068, 3063, 86, 3066, 86, 3071, - 86, 86, 3074, 86, 86, 3070, 3076, 3069, 86, 86, - 3072, 86, 86, 3077, 3079, 86, 3080, 86, 86, 86, - 3073, 3083, 86, 86, 3075, 86, 3081, 3088, 86, 86, - 3085, 3078, 3086, 86, 86, 3092, 86, 86, 3082, 86, - 86, 3084, 3094, 3095, 86, 3087, 3090, 3089, 86, 3091, + 3048, 86, 86, 3047, 86, 3043, 3053, 86, 86, 86, + 86, 3049, 86, 86, 3056, 86, 3050, 3051, 86, 86, + 86, 3054, 3055, 3060, 3052, 3061, 86, 3057, 3058, 86, + 3062, 86, 3059, 3066, 86, 3063, 86, 3064, 3068, 86, + 3069, 86, 86, 3071, 86, 86, 86, 86, 86, 86, + 3077, 86, 3074, 86, 3076, 3067, 86, 3065, 86, 86, + 3080, 3072, 3073, 3070, 3075, 3079, 86, 86, 3083, 86, + 86, 3086, 86, 3078, 86, 86, 3088, 86, 3082, 86, + 3089, 3081, 86, 3084, 3091, 86, 3092, 86, 86, 3085, + 86, 3095, 86, 86, 3087, 86, 86, 86, 3101, 3090, - 86, 3096, 3093, 3099, 3100, 86, 3097, 86, 3102, 86, - 3101, 86, 86, 86, 86, 3105, 86, 3104, 3098, 86, - 3108, 86, 3111, 86, 3106, 86, 86, 86, 86, 3103, - 86, 86, 3107, 3116, 86, 86, 3444, 3112, 3109, 3110, - 86, 3120, 86, 3115, 86, 3113, 3121, 86, 86, 3119, - 3117, 3118, 86, 3114, 86, 3125, 86, 3122, 3123, 3124, - 3126, 86, 3127, 86, 86, 3130, 86, 86, 3132, 86, - 86, 86, 3131, 86, 3129, 86, 86, 3128, 86, 3138, - 3139, 86, 86, 86, 86, 3133, 86, 86, 3145, 86, - 3146, 86, 3134, 3147, 3136, 3135, 3144, 86, 3137, 86, + 3100, 86, 86, 3093, 3097, 3098, 86, 3104, 86, 3102, + 3094, 3096, 86, 86, 86, 3099, 3106, 3105, 86, 86, + 3456, 3103, 3107, 86, 3108, 3111, 3109, 3112, 86, 3114, + 86, 86, 3110, 3113, 86, 86, 3115, 3117, 86, 3116, + 86, 86, 3120, 86, 86, 3118, 3123, 86, 86, 86, + 86, 86, 3128, 86, 86, 3124, 86, 86, 3132, 86, + 3119, 3121, 3122, 86, 3127, 86, 3131, 3125, 3133, 86, + 3134, 86, 3130, 3129, 86, 3126, 3136, 3135, 3137, 86, + 3138, 86, 3139, 86, 86, 3142, 86, 3140, 86, 3144, + 86, 86, 86, 3143, 86, 86, 86, 86, 3150, 3151, - 3142, 86, 3141, 86, 3143, 86, 3152, 86, 3140, 86, - 3150, 3153, 86, 86, 3154, 3156, 86, 3148, 86, 86, - 3149, 86, 3159, 86, 3151, 86, 3158, 3155, 3157, 86, - 3160, 86, 86, 3161, 86, 86, 3162, 86, 86, 3163, - 3165, 86, 86, 3167, 86, 86, 3166, 86, 3444, 3168, - 86, 86, 3164, 86, 86, 86, 86, 3169, 86, 3177, - 3178, 3181, 3170, 3172, 3171, 3180, 3173, 3179, 3174, 3175, - 86, 86, 86, 3183, 3176, 3185, 86, 86, 3182, 3186, - 86, 3187, 3188, 86, 86, 3184, 86, 3191, 86, 3189, - 3192, 86, 3193, 3194, 86, 86, 3195, 3196, 3200, 86, + 86, 86, 86, 86, 86, 3145, 3157, 86, 3158, 86, + 3141, 86, 86, 3159, 3146, 3148, 3147, 3149, 3154, 86, + 3156, 3153, 86, 3155, 86, 86, 86, 3152, 86, 3162, + 3164, 86, 3160, 3165, 86, 86, 86, 3168, 3169, 86, + 3166, 3161, 3167, 86, 3170, 86, 3163, 3171, 86, 86, + 3172, 86, 86, 3173, 86, 86, 3174, 86, 86, 3175, + 3177, 86, 86, 3179, 86, 86, 3178, 86, 3456, 3180, + 86, 86, 3176, 86, 86, 86, 86, 3181, 86, 3189, + 3190, 3193, 3182, 3184, 3183, 3192, 3185, 3191, 3186, 3187, + 86, 86, 86, 3195, 3188, 3197, 86, 86, 3194, 3198, - 3197, 86, 86, 3198, 3199, 3190, 86, 3201, 86, 3203, - 86, 86, 86, 86, 86, 86, 86, 3202, 3209, 86, - 3208, 86, 86, 86, 86, 86, 3205, 86, 3213, 3204, - 3212, 3214, 86, 3206, 3207, 86, 3210, 3217, 3218, 86, - 3215, 86, 3220, 86, 3219, 3216, 3211, 3221, 86, 3222, - 86, 86, 86, 86, 3227, 86, 3224, 3229, 3223, 3228, - 86, 3225, 86, 86, 3226, 86, 86, 86, 3236, 86, - 3231, 3233, 3234, 3237, 86, 3239, 86, 86, 3230, 86, - 3238, 3240, 86, 3232, 3235, 86, 3243, 86, 3244, 86, - 3242, 86, 3241, 3246, 86, 3247, 86, 3248, 86, 86, + 86, 3199, 3200, 86, 86, 3196, 86, 3203, 86, 3201, + 3204, 86, 3205, 3206, 86, 86, 3207, 3208, 3212, 86, + 3209, 86, 86, 3210, 3211, 3202, 86, 3213, 86, 3215, + 86, 86, 86, 86, 86, 86, 86, 3214, 3221, 86, + 3220, 86, 86, 86, 86, 86, 3217, 86, 3225, 3216, + 3224, 3226, 86, 3218, 3219, 86, 3222, 3229, 3230, 86, + 3227, 86, 3232, 86, 3231, 3228, 3223, 3233, 86, 3234, + 86, 86, 86, 86, 3239, 86, 3236, 3241, 3235, 3240, + 86, 3237, 86, 86, 3238, 86, 86, 86, 3248, 86, + 3243, 3245, 3246, 3249, 86, 3251, 86, 86, 3242, 86, - 3245, 3249, 86, 3250, 86, 3251, 86, 3252, 86, 3253, - 86, 86, 3256, 86, 86, 86, 86, 3260, 86, 86, - 3255, 3262, 86, 3257, 86, 3254, 86, 3258, 86, 86, - 86, 86, 3266, 3267, 86, 86, 3259, 86, 3261, 3263, - 3271, 3264, 3265, 86, 3268, 3269, 86, 86, 3273, 3276, - 86, 86, 3272, 3270, 3275, 86, 86, 86, 86, 86, - 86, 3274, 3278, 86, 3277, 3282, 86, 86, 86, 3283, - 3284, 86, 86, 86, 3288, 3279, 3280, 3287, 86, 3281, - 3290, 86, 3285, 3291, 86, 86, 3289, 3292, 86, 86, - 86, 86, 86, 86, 3286, 3295, 86, 86, 3294, 86, + 3250, 3252, 86, 3244, 3247, 86, 3255, 86, 3256, 86, + 3254, 86, 3253, 3258, 86, 3259, 86, 3260, 86, 86, + 3257, 3261, 86, 3262, 86, 3263, 86, 3264, 86, 3265, + 86, 86, 3268, 86, 86, 86, 86, 3272, 86, 86, + 3267, 3274, 86, 3269, 86, 3266, 86, 3270, 86, 86, + 86, 86, 3278, 3279, 86, 86, 3271, 86, 3273, 3275, + 3283, 3276, 3277, 86, 3280, 3281, 86, 86, 3285, 3288, + 86, 86, 3284, 3282, 3287, 86, 86, 86, 86, 86, + 86, 3286, 3290, 86, 3289, 3294, 86, 86, 86, 3295, + 3296, 86, 86, 86, 3300, 3291, 3292, 3299, 86, 3293, - 86, 3293, 3300, 86, 3297, 3296, 86, 3299, 3301, 86, - 3303, 86, 3305, 3304, 3302, 3298, 86, 86, 86, 86, - 86, 3306, 86, 86, 86, 3312, 86, 3307, 3310, 3314, - 3311, 86, 3309, 3315, 86, 86, 3317, 3318, 3320, 86, - 86, 3308, 86, 3313, 3322, 86, 3316, 86, 3323, 3321, - 3324, 86, 3325, 86, 86, 3319, 86, 86, 86, 3328, - 86, 3326, 3329, 3330, 86, 3333, 86, 86, 86, 86, - 86, 86, 3336, 86, 3327, 3337, 86, 3339, 86, 3332, - 3334, 3335, 3340, 86, 86, 3331, 3343, 86, 3338, 3342, - 86, 3345, 3346, 86, 86, 3347, 86, 86, 86, 3341, + 3302, 86, 3297, 3303, 86, 86, 3301, 3304, 86, 86, + 86, 86, 86, 86, 3298, 3307, 86, 86, 3306, 86, + 86, 3305, 3312, 86, 3309, 3308, 86, 3311, 3313, 86, + 3315, 86, 3317, 3316, 3314, 3310, 86, 86, 86, 86, + 86, 3318, 86, 86, 86, 3324, 86, 3319, 3322, 3326, + 3323, 86, 3321, 3327, 86, 86, 3329, 3330, 3332, 86, + 86, 3320, 86, 3325, 3334, 86, 3328, 86, 3335, 3333, + 3336, 86, 3337, 86, 86, 3331, 86, 86, 86, 3340, + 86, 3338, 3341, 3342, 86, 3345, 86, 86, 86, 86, + 86, 86, 3348, 86, 3339, 3349, 86, 3351, 86, 3344, - 3350, 3351, 86, 86, 3348, 3344, 86, 86, 86, 3356, - 86, 86, 3352, 3355, 86, 3353, 3349, 3357, 86, 86, - 86, 86, 3354, 86, 3361, 86, 86, 86, 3363, 86, - 86, 86, 3358, 3360, 3359, 3368, 3369, 3370, 86, 3365, - 3366, 3362, 86, 86, 3364, 86, 3374, 86, 3367, 86, - 3376, 86, 3377, 86, 3375, 86, 86, 86, 3378, 3382, - 3379, 3372, 3371, 86, 3373, 86, 3383, 86, 3380, 86, - 3385, 86, 86, 86, 3384, 86, 3381, 3386, 86, 86, - 3391, 86, 3388, 86, 86, 3394, 86, 3395, 86, 86, - 86, 3387, 86, 86, 3398, 86, 3393, 3389, 3390, 3396, + 3346, 3347, 3352, 86, 86, 3343, 3355, 86, 3350, 3354, + 86, 3357, 3358, 86, 86, 3359, 86, 86, 86, 3353, + 3362, 3363, 86, 86, 3360, 3356, 86, 86, 86, 3368, + 86, 86, 3364, 3367, 86, 3365, 3361, 3369, 86, 86, + 86, 86, 3366, 86, 3373, 86, 86, 86, 3375, 86, + 86, 86, 3370, 3372, 3371, 3380, 3381, 3382, 86, 3377, + 3378, 3374, 86, 86, 3376, 86, 3386, 86, 3379, 86, + 3388, 86, 3389, 86, 3387, 86, 86, 86, 3390, 3394, + 3391, 3384, 3383, 86, 3385, 86, 3395, 86, 3392, 86, + 3397, 86, 86, 86, 3396, 86, 3393, 3398, 86, 86, - 3392, 86, 3397, 86, 3402, 86, 3403, 86, 3401, 86, - 3406, 3399, 3400, 86, 86, 3408, 86, 3409, 3404, 86, - 86, 86, 3413, 86, 3410, 86, 86, 3411, 3415, 86, - 3414, 86, 3407, 3405, 3416, 86, 3417, 86, 3418, 86, - 3412, 86, 3422, 86, 3420, 86, 86, 86, 86, 86, - 86, 3424, 3425, 86, 3428, 86, 3419, 3429, 86, 3444, - 3421, 86, 3432, 86, 3423, 3433, 86, 3426, 3427, 3430, - 3434, 3435, 86, 86, 3431, 3436, 86, 86, 86, 86, - 3437, 86, 3438, 3439, 3442, 86, 3443, 86, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3440, 3444, + 3403, 86, 3400, 86, 86, 3406, 86, 3407, 86, 86, + 86, 3399, 86, 86, 3410, 86, 3405, 3401, 3402, 3408, + 3404, 86, 3409, 86, 3414, 86, 3415, 86, 3413, 86, + 3418, 3411, 3412, 86, 86, 3420, 86, 3421, 3416, 86, + 86, 86, 3425, 86, 3422, 86, 86, 3423, 3427, 86, + 3426, 86, 3419, 3417, 3428, 86, 3429, 86, 3430, 86, + 3424, 86, 3434, 86, 3432, 86, 86, 86, 86, 86, + 86, 3436, 3437, 86, 3440, 86, 3431, 3441, 86, 3456, + 3433, 86, 3444, 86, 3435, 3445, 86, 3438, 3439, 3442, + 3446, 3447, 86, 86, 3443, 3448, 86, 86, 86, 86, - 3441, 47, 47, 47, 47, 47, 47, 47, 52, 52, + 3449, 86, 3450, 3451, 3454, 86, 3455, 86, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3452, 3456, + 3453, 47, 47, 47, 47, 47, 47, 47, 52, 52, 52, 52, 52, 52, 52, 57, 57, 57, 57, 57, 57, 57, 63, 63, 63, 63, 63, 63, 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, 74, 74, 74, 74, 74, 80, 80, 80, 80, 80, 80, 80, - 89, 89, 3444, 89, 89, 89, 89, 160, 160, 3444, - 3444, 3444, 160, 160, 162, 162, 3444, 3444, 162, 3444, - 162, 164, 3444, 3444, 3444, 3444, 3444, 164, 167, 167, - 3444, 3444, 3444, 167, 167, 169, 3444, 3444, 3444, 3444, - 3444, 169, 171, 171, 3444, 171, 171, 171, 171, 174, + 89, 89, 3456, 89, 89, 89, 89, 160, 160, 3456, + 3456, 3456, 160, 160, 162, 162, 3456, 3456, 162, 3456, + 162, 164, 3456, 3456, 3456, 3456, 3456, 164, 167, 167, - 3444, 3444, 3444, 3444, 3444, 174, 177, 177, 3444, 3444, - 3444, 177, 177, 90, 90, 3444, 90, 90, 90, 90, - 17, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444 + 3456, 3456, 3456, 167, 167, 169, 3456, 3456, 3456, 3456, + 3456, 169, 171, 171, 3456, 171, 171, 171, 171, 174, + 3456, 3456, 3456, 3456, 3456, 174, 177, 177, 3456, 3456, + 3456, 177, 177, 90, 90, 3456, 90, 90, 90, 90, + 17, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456 } ; -static const flex_int16_t yy_chk[6762] = +static const flex_int16_t yy_chk[6782] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2314,18 +2319,18 @@ static const flex_int16_t yy_chk[6762] = 5, 3, 6, 24, 4, 24, 24, 5, 24, 6, 7, 7, 7, 7, 24, 7, 8, 8, 8, 8, 33, 8, 7, 9, 9, 9, 26, 26, 8, 10, - 10, 10, 19, 29, 9, 33, 19, 29, 3452, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3464, 35, 10, 11, 11, 11, 11, 11, 11, 13, 13, 13, 13, 34, 13, 11, 35, 99, 34, 29, 38, 13, 51, 51, 11, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 99, 14, 12, 15, 15, 15, 38, 23, 14, 23, 23, 12, 23, 46, 15, 16, 16, - 16, 23, 23, 25, 27, 27, 25, 25, 2803, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2815, 16, 25, 46, 27, 30, 30, 25, 27, 56, 40, 27, 56, 73, 31, 31, 25, 28, 67, 67, 30, 32, 28, 31, 40, 32, 28, 73, 32, 28, 92, 28, - 28, 92, 31, 32, 1117, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1121, 32, 36, 36, 37, 37, 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, @@ -2364,9 +2369,9 @@ static const flex_int16_t yy_chk[6762] = 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, - 555, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 556, 214, 218, 216, 208, 209, 211, 205, 210, 211, 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, - 222, 219, 223, 221, 555, 224, 222, 227, 215, 221, + 222, 219, 223, 221, 556, 224, 222, 227, 215, 221, 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, @@ -2407,649 +2412,651 @@ static const flex_int16_t yy_chk[6762] = 381, 167, 373, 384, 385, 376, 378, 373, 379, 382, 373, 374, 374, 385, 374, 386, 381, 391, 384, 394, - 386, 386, 389, 387, 390, 392, 391, 374, 395, 387, - 374, 166, 374, 399, 374, 383, 387, 383, 383, 390, - 393, 389, 396, 400, 392, 394, 393, 383, 395, 383, - 383, 383, 397, 399, 383, 398, 396, 401, 397, 402, - 398, 403, 397, 400, 402, 404, 405, 405, 406, 407, - 408, 404, 401, 409, 411, 412, 403, 414, 398, 409, - 412, 407, 413, 413, 408, 413, 415, 416, 406, 423, - 411, 417, 418, 419, 418, 419, 419, 414, 422, 422, + 386, 386, 389, 387, 390, 392, 391, 374, 396, 387, + 374, 166, 374, 395, 374, 383, 387, 383, 383, 390, + 393, 389, 396, 399, 392, 394, 393, 383, 383, 383, + 383, 383, 397, 395, 383, 398, 400, 401, 397, 402, + 398, 404, 397, 399, 402, 403, 406, 404, 405, 405, + 407, 408, 401, 409, 411, 414, 400, 415, 398, 409, + 403, 416, 407, 412, 417, 408, 406, 418, 412, 418, + 411, 413, 413, 415, 413, 414, 420, 416, 417, 419, - 420, 424, 415, 416, 420, 417, 421, 425, 423, 426, - 421, 428, 427, 419, 433, 430, 424, 432, 433, 431, - 428, 430, 432, 425, 429, 421, 427, 426, 431, 429, - 434, 428, 436, 428, 435, 441, 164, 429, 429, 434, - 435, 429, 429, 437, 438, 443, 440, 439, 438, 437, - 439, 440, 446, 436, 450, 441, 442, 442, 443, 444, - 444, 445, 447, 447, 448, 446, 445, 449, 451, 450, - 448, 449, 452, 453, 454, 454, 455, 452, 453, 456, - 457, 458, 459, 454, 462, 459, 460, 464, 455, 451, - 461, 460, 464, 458, 461, 465, 462, 467, 457, 456, + 420, 419, 419, 421, 422, 422, 423, 421, 424, 426, + 425, 428, 430, 433, 427, 436, 164, 433, 430, 419, + 428, 431, 421, 424, 429, 423, 425, 426, 427, 429, + 431, 428, 441, 428, 432, 434, 436, 429, 429, 432, + 435, 429, 429, 437, 434, 439, 435, 438, 439, 437, + 440, 438, 441, 442, 442, 440, 443, 444, 444, 445, + 446, 447, 447, 449, 445, 448, 450, 449, 451, 443, + 452, 448, 453, 446, 455, 452, 456, 453, 454, 454, + 457, 450, 458, 463, 463, 459, 455, 454, 459, 451, + 460, 462, 465, 461, 458, 460, 456, 461, 457, 464, - 463, 463, 466, 466, 469, 469, 471, 472, 473, 474, - 477, 476, 482, 475, 479, 472, 465, 473, 475, 467, - 480, 481, 477, 483, 484, 487, 482, 471, 162, 483, - 474, 476, 479, 484, 479, 486, 485, 488, 480, 487, - 486, 481, 485, 489, 490, 488, 489, 491, 488, 492, - 493, 494, 496, 495, 494, 492, 497, 498, 490, 495, - 499, 497, 491, 500, 501, 502, 496, 500, 503, 501, - 493, 504, 505, 503, 509, 506, 510, 495, 512, 498, - 502, 499, 512, 513, 511, 514, 518, 504, 506, 515, - 514, 505, 507, 507, 509, 528, 528, 510, 507, 511, + 466, 466, 467, 462, 464, 469, 469, 471, 472, 473, + 474, 477, 475, 465, 476, 479, 472, 475, 473, 480, + 481, 483, 482, 477, 467, 486, 485, 483, 471, 484, + 486, 474, 485, 479, 476, 479, 482, 480, 484, 487, + 481, 488, 489, 490, 491, 489, 493, 494, 492, 488, + 494, 496, 488, 487, 492, 495, 498, 490, 497, 491, + 499, 495, 501, 497, 500, 496, 493, 501, 500, 502, + 503, 504, 505, 506, 509, 503, 510, 513, 498, 495, + 511, 499, 162, 514, 502, 512, 506, 504, 514, 512, + 554, 505, 507, 507, 509, 511, 513, 510, 507, 515, - 507, 518, 513, 516, 517, 515, 507, 516, 507, 517, - 519, 507, 507, 517, 520, 519, 521, 522, 507, 523, - 524, 525, 526, 522, 525, 521, 527, 529, 522, 531, - 520, 530, 530, 520, 523, 532, 524, 534, 533, 535, - 537, 538, 539, 536, 531, 526, 527, 532, 536, 537, - 542, 543, 529, 533, 548, 543, 534, 539, 540, 542, - 538, 535, 544, 545, 540, 546, 544, 547, 550, 545, - 549, 551, 552, 548, 553, 558, 552, 546, 554, 160, - 554, 558, 547, 550, 549, 556, 559, 553, 560, 551, - 557, 557, 561, 556, 560, 563, 562, 564, 559, 562, + 507, 516, 518, 554, 517, 516, 507, 520, 507, 517, + 526, 507, 507, 517, 519, 515, 521, 518, 507, 519, + 523, 522, 524, 520, 527, 521, 520, 522, 525, 528, + 528, 525, 522, 526, 529, 523, 530, 530, 524, 531, + 532, 533, 534, 534, 527, 535, 536, 539, 537, 538, + 540, 541, 532, 537, 531, 546, 533, 541, 538, 529, + 543, 546, 548, 544, 535, 540, 539, 544, 536, 543, + 545, 547, 549, 550, 545, 551, 552, 548, 553, 555, + 557, 555, 553, 547, 558, 558, 559, 550, 557, 560, + 551, 549, 559, 561, 552, 562, 564, 563, 565, 561, - 565, 567, 568, 566, 561, 565, 566, 85, 569, 563, - 567, 570, 564, 569, 569, 571, 571, 567, 568, 573, - 567, 572, 572, 578, 570, 573, 574, 574, 575, 575, - 576, 579, 577, 582, 586, 581, 576, 577, 577, 580, - 581, 583, 580, 579, 578, 584, 585, 587, 584, 583, - 588, 585, 582, 589, 588, 591, 590, 586, 592, 589, - 590, 593, 595, 592, 594, 594, 587, 596, 598, 597, - 599, 601, 600, 591, 597, 593, 601, 595, 600, 602, - 604, 605, 605, 603, 598, 606, 603, 608, 596, 607, - 599, 603, 608, 602, 603, 603, 609, 610, 604, 611, + 563, 560, 567, 566, 569, 567, 568, 562, 566, 581, + 564, 570, 581, 565, 571, 568, 570, 570, 572, 572, + 569, 579, 568, 573, 573, 568, 574, 571, 575, 575, + 576, 576, 574, 577, 580, 578, 583, 584, 582, 577, + 578, 578, 579, 582, 585, 584, 580, 585, 586, 587, + 588, 590, 589, 586, 591, 583, 589, 590, 591, 592, + 593, 594, 595, 595, 596, 593, 597, 599, 598, 588, + 600, 602, 587, 598, 601, 594, 602, 592, 603, 596, + 601, 605, 607, 599, 609, 604, 608, 597, 604, 609, + 600, 611, 603, 604, 606, 606, 604, 604, 610, 605, - 613, 609, 620, 606, 614, 607, 613, 615, 616, 621, - 615, 610, 616, 614, 611, 617, 618, 619, 620, 618, - 617, 622, 619, 623, 624, 625, 627, 621, 622, 624, - 626, 626, 628, 629, 616, 627, 623, 630, 631, 80, - 632, 635, 633, 634, 635, 625, 642, 631, 633, 634, - 639, 628, 632, 630, 629, 636, 636, 637, 636, 638, - 637, 640, 641, 643, 638, 642, 644, 641, 639, 643, - 645, 644, 647, 648, 646, 640, 645, 646, 648, 649, - 650, 651, 652, 653, 649, 649, 654, 652, 657, 653, - 655, 656, 660, 650, 651, 660, 656, 647, 666, 655, + 607, 612, 608, 610, 614, 611, 615, 618, 616, 617, + 614, 616, 618, 617, 619, 615, 612, 619, 620, 622, + 621, 623, 625, 620, 626, 624, 629, 625, 623, 627, + 627, 628, 630, 631, 632, 617, 621, 622, 624, 633, + 628, 634, 635, 632, 626, 629, 640, 634, 635, 631, + 643, 633, 636, 630, 641, 636, 637, 637, 638, 637, + 639, 638, 642, 648, 640, 639, 644, 642, 641, 643, + 645, 646, 644, 647, 649, 645, 647, 646, 650, 649, + 651, 652, 653, 650, 650, 654, 655, 653, 648, 656, + 657, 654, 658, 651, 652, 657, 659, 659, 656, 660, - 659, 652, 652, 658, 658, 654, 661, 659, 657, 662, - 660, 663, 661, 664, 665, 665, 663, 668, 664, 664, - 667, 662, 667, 666, 670, 669, 663, 669, 671, 672, - 673, 674, 675, 676, 677, 678, 668, 676, 675, 679, - 680, 681, 670, 677, 682, 685, 671, 672, 683, 673, - 678, 674, 686, 684, 679, 687, 682, 688, 680, 684, - 681, 689, 690, 683, 691, 685, 686, 687, 691, 692, - 693, 694, 695, 696, 697, 75, 688, 699, 699, 697, - 698, 690, 689, 701, 700, 702, 693, 692, 700, 694, - 695, 695, 696, 704, 698, 703, 705, 701, 706, 707, + 661, 653, 653, 661, 662, 655, 660, 663, 664, 665, + 662, 667, 658, 664, 665, 665, 666, 666, 661, 663, + 668, 669, 668, 664, 670, 671, 670, 672, 673, 674, + 675, 676, 678, 681, 677, 683, 667, 676, 677, 679, + 669, 678, 680, 671, 682, 672, 673, 683, 674, 684, + 675, 681, 685, 686, 679, 687, 688, 680, 685, 689, + 690, 691, 692, 682, 684, 693, 692, 695, 688, 687, + 694, 696, 697, 686, 698, 700, 700, 160, 689, 698, + 691, 690, 699, 693, 701, 695, 694, 702, 701, 696, + 696, 697, 703, 704, 705, 706, 699, 707, 708, 709, - 708, 705, 709, 710, 702, 711, 703, 704, 710, 709, - 712, 713, 711, 708, 706, 712, 713, 714, 707, 715, - 716, 718, 717, 721, 728, 719, 715, 720, 721, 716, - 718, 722, 724, 720, 722, 714, 717, 719, 723, 725, - 726, 736, 723, 727, 735, 728, 724, 736, 725, 729, - 729, 730, 730, 731, 731, 726, 732, 727, 733, 737, - 730, 732, 738, 735, 739, 740, 738, 733, 741, 742, - 743, 745, 746, 744, 747, 742, 739, 750, 743, 737, - 744, 757, 753, 74, 756, 759, 741, 757, 766, 745, - 740, 759, 750, 756, 747, 760, 761, 746, 748, 753, + 706, 702, 710, 713, 704, 711, 716, 712, 705, 710, + 711, 703, 709, 707, 712, 714, 715, 708, 717, 718, + 714, 715, 719, 720, 716, 717, 721, 713, 718, 722, + 724, 726, 720, 724, 723, 722, 719, 725, 721, 723, + 727, 725, 728, 730, 729, 726, 731, 731, 737, 727, + 732, 732, 733, 733, 735, 734, 738, 728, 729, 732, + 734, 739, 738, 735, 730, 740, 741, 737, 742, 740, + 743, 744, 745, 747, 748, 746, 749, 744, 741, 752, + 745, 739, 746, 758, 755, 765, 765, 85, 743, 759, + 763, 747, 758, 742, 752, 759, 749, 761, 762, 748, - 748, 762, 767, 748, 760, 762, 766, 748, 763, 763, - 748, 765, 761, 764, 764, 768, 767, 748, 748, 769, - 748, 771, 765, 772, 773, 769, 771, 774, 775, 776, - 779, 774, 778, 776, 777, 768, 770, 770, 770, 777, - 770, 780, 773, 770, 772, 779, 68, 781, 770, 776, - 781, 778, 775, 782, 770, 770, 783, 785, 782, 782, - 784, 784, 786, 783, 787, 787, 780, 786, 788, 793, - 790, 789, 785, 788, 789, 790, 791, 791, 792, 794, - 792, 793, 795, 796, 798, 797, 795, 799, 799, 804, - 800, 803, 798, 801, 802, 802, 805, 807, 794, 63, + 750, 755, 750, 761, 764, 750, 763, 762, 764, 750, + 766, 766, 750, 767, 768, 769, 770, 771, 777, 750, + 750, 773, 750, 771, 767, 774, 773, 775, 779, 769, + 776, 778, 768, 779, 776, 778, 770, 772, 772, 772, + 780, 772, 777, 781, 772, 775, 774, 782, 795, 772, + 783, 778, 787, 783, 785, 772, 772, 784, 781, 780, + 795, 785, 784, 784, 786, 786, 788, 787, 789, 789, + 790, 788, 782, 791, 792, 790, 791, 793, 793, 792, + 794, 796, 794, 797, 798, 800, 799, 797, 801, 801, + 806, 802, 805, 800, 803, 804, 804, 807, 809, 80, - 806, 804, 807, 796, 797, 800, 806, 801, 809, 803, - 808, 808, 811, 809, 809, 812, 813, 811, 805, 814, - 816, 812, 815, 818, 819, 814, 816, 815, 817, 818, - 822, 817, 819, 820, 820, 813, 821, 821, 822, 823, - 824, 825, 826, 827, 828, 824, 829, 829, 825, 830, - 832, 832, 834, 831, 838, 836, 833, 823, 830, 827, - 826, 831, 833, 828, 836, 837, 840, 839, 843, 844, - 841, 834, 839, 841, 837, 840, 842, 845, 838, 846, - 849, 842, 843, 847, 848, 848, 845, 850, 847, 847, - 851, 852, 846, 853, 844, 849, 856, 854, 856, 851, + 796, 808, 806, 809, 798, 799, 802, 808, 803, 811, + 805, 810, 810, 813, 811, 811, 814, 815, 813, 807, + 816, 818, 814, 817, 820, 821, 816, 818, 817, 819, + 820, 824, 819, 821, 822, 822, 815, 823, 823, 824, + 825, 826, 827, 828, 829, 830, 826, 831, 831, 827, + 832, 834, 834, 836, 833, 840, 838, 835, 825, 832, + 829, 828, 833, 835, 830, 838, 839, 842, 841, 845, + 846, 843, 836, 841, 843, 839, 842, 844, 847, 840, + 848, 851, 844, 845, 849, 850, 850, 847, 852, 849, + 849, 853, 854, 848, 855, 846, 851, 858, 856, 858, - 854, 857, 857, 858, 859, 860, 850, 861, 854, 859, - 862, 853, 863, 864, 865, 852, 866, 867, 868, 869, - 871, 867, 870, 865, 858, 872, 860, 861, 870, 871, - 862, 873, 874, 864, 863, 875, 868, 872, 869, 866, - 876, 875, 877, 880, 878, 881, 874, 883, 876, 878, - 873, 879, 879, 884, 882, 885, 877, 886, 887, 891, - 888, 884, 880, 882, 889, 881, 890, 883, 892, 893, - 889, 894, 890, 891, 892, 885, 895, 887, 896, 886, - 888, 897, 895, 893, 896, 897, 898, 899, 900, 901, - 903, 894, 908, 900, 902, 902, 903, 904, 905, 899, + 853, 856, 859, 859, 860, 861, 862, 852, 863, 856, + 861, 864, 855, 865, 866, 867, 854, 868, 869, 870, + 871, 873, 869, 872, 867, 860, 874, 862, 863, 872, + 873, 864, 875, 876, 866, 865, 877, 870, 874, 871, + 868, 878, 877, 879, 882, 880, 883, 876, 885, 878, + 880, 875, 881, 881, 886, 884, 887, 879, 888, 889, + 893, 890, 886, 882, 884, 891, 883, 892, 885, 894, + 895, 891, 896, 892, 893, 894, 887, 897, 889, 898, + 888, 890, 899, 897, 895, 898, 899, 900, 901, 902, + 903, 905, 896, 906, 902, 904, 904, 905, 907, 906, - 904, 906, 907, 909, 909, 898, 910, 899, 907, 917, - 901, 58, 908, 911, 906, 914, 905, 912, 911, 915, - 912, 913, 918, 915, 910, 920, 913, 913, 916, 916, - 914, 917, 919, 912, 922, 912, 923, 919, 925, 926, - 927, 931, 918, 930, 920, 929, 929, 930, 932, 932, - 923, 925, 933, 934, 935, 940, 931, 934, 922, 926, - 936, 927, 928, 937, 940, 928, 938, 928, 937, 935, - 939, 928, 941, 928, 936, 939, 939, 933, 928, 943, - 938, 942, 946, 928, 944, 942, 941, 946, 945, 944, - 947, 948, 949, 950, 943, 951, 958, 942, 952, 944, + 901, 907, 908, 909, 910, 911, 900, 75, 901, 913, + 910, 903, 912, 912, 914, 915, 909, 916, 915, 914, + 908, 917, 916, 916, 918, 911, 920, 913, 918, 919, + 919, 915, 921, 915, 922, 923, 917, 925, 928, 922, + 929, 926, 930, 932, 932, 933, 936, 934, 920, 933, + 938, 928, 921, 954, 923, 926, 935, 935, 939, 954, + 929, 925, 934, 930, 931, 938, 937, 931, 941, 931, + 937, 936, 939, 931, 940, 931, 944, 943, 942, 940, + 931, 946, 941, 942, 942, 931, 943, 945, 948, 947, + 944, 945, 949, 950, 947, 951, 946, 949, 952, 953, - 945, 951, 950, 952, 947, 953, 949, 954, 955, 955, - 956, 953, 948, 954, 957, 956, 959, 962, 958, 960, - 957, 963, 964, 966, 966, 967, 963, 972, 965, 962, - 967, 969, 970, 968, 971, 959, 964, 960, 961, 961, - 965, 968, 973, 972, 961, 969, 961, 975, 973, 974, - 976, 970, 961, 971, 974, 977, 978, 961, 961, 975, - 979, 979, 980, 981, 961, 985, 980, 983, 976, 984, - 986, 977, 984, 983, 978, 986, 987, 989, 990, 988, - 994, 992, 989, 981, 985, 988, 993, 995, 997, 987, - 992, 996, 999, 995, 998, 993, 994, 990, 1001, 998, + 948, 955, 962, 945, 947, 956, 955, 950, 953, 957, + 961, 956, 952, 958, 958, 957, 951, 959, 960, 963, + 966, 962, 959, 965, 960, 966, 967, 969, 969, 968, + 973, 970, 961, 972, 971, 965, 970, 963, 964, 964, + 967, 968, 971, 974, 964, 975, 964, 972, 976, 973, + 977, 978, 964, 979, 976, 977, 980, 964, 964, 981, + 984, 975, 974, 978, 964, 982, 982, 987, 986, 983, + 987, 979, 980, 983, 986, 988, 989, 981, 990, 991, + 984, 989, 992, 993, 995, 991, 996, 992, 997, 999, + 998, 990, 1000, 995, 988, 996, 998, 1002, 999, 1003, - 996, 1000, 1002, 1005, 1003, 1006, 1011, 997, 1004, 1005, - 1007, 1009, 999, 1003, 1002, 1000, 1007, 1004, 1001, 1012, - 1011, 1013, 1006, 1014, 1015, 1016, 1013, 1009, 1018, 1017, - 1019, 1022, 1023, 1018, 1025, 1019, 1022, 1027, 1015, 1012, - 1025, 1023, 1014, 1016, 1017, 1024, 1024, 1026, 1028, 1030, - 1033, 1033, 1027, 1031, 1033, 1035, 1026, 1034, 1031, 1031, - 1034, 1028, 1036, 1037, 1039, 1030, 1038, 1041, 1040, 1035, - 1042, 1044, 1043, 1041, 1046, 1045, 1049, 1039, 1043, 1037, - 1045, 1058, 1036, 1040, 1038, 1052, 1044, 1058, 1046, 1048, - 1042, 1050, 1048, 1051, 1053, 1054, 1050, 1049, 1051, 1055, + 1001, 1004, 993, 1005, 997, 1001, 1008, 1006, 1009, 1007, + 1012, 1000, 1008, 1003, 1010, 1005, 1006, 1002, 1007, 1014, + 1010, 1004, 1015, 1016, 1017, 1009, 1012, 1018, 1016, 1019, + 1020, 1021, 1022, 1014, 1025, 1026, 1021, 1022, 1030, 1025, + 1028, 1018, 1015, 1017, 1026, 1020, 1028, 1019, 1027, 1027, + 1029, 1031, 1033, 1030, 1037, 1034, 1038, 1037, 1039, 1029, + 1034, 1034, 1036, 1036, 1031, 1040, 1036, 1041, 1033, 1042, + 1038, 1043, 1045, 1044, 1046, 1047, 1052, 1049, 1039, 1044, + 1046, 1040, 1042, 1048, 1051, 1041, 1043, 1051, 1048, 1053, + 1047, 1049, 1045, 1054, 1053, 1055, 1056, 1052, 1054, 1057, - 1054, 1052, 1056, 1053, 1055, 1059, 1060, 1061, 1062, 1062, - 1063, 1064, 1060, 1061, 1056, 1065, 1066, 1066, 1065, 1063, - 1067, 1059, 1068, 1069, 1070, 1072, 1071, 1070, 1073, 1064, - 1074, 1072, 1075, 1082, 1073, 1074, 1076, 1075, 1067, 1071, - 1077, 1068, 1076, 1069, 1078, 1077, 1080, 1081, 1083, 1086, - 1078, 1080, 1084, 1082, 1083, 1085, 1085, 1084, 1086, 1087, - 1088, 1089, 1092, 1090, 1091, 1081, 1090, 1091, 1087, 1093, - 1094, 1095, 1096, 1092, 1093, 1097, 1098, 1099, 1088, 1100, - 1089, 1097, 1098, 1095, 1100, 1101, 1101, 1102, 1094, 1103, - 1104, 1096, 1099, 1105, 1106, 1107, 1108, 1105, 1109, 1111, + 1059, 1058, 1061, 1062, 1057, 1056, 1058, 1063, 1061, 1064, + 1067, 1055, 1059, 1063, 1066, 1064, 1065, 1065, 1068, 1062, + 1070, 1068, 1071, 1066, 1069, 1069, 1072, 1073, 1067, 1074, + 1073, 1075, 1133, 1076, 1133, 1077, 1085, 1075, 1070, 1076, + 1077, 1071, 1074, 1078, 1079, 1081, 1072, 1080, 1078, 1083, + 1079, 1081, 1080, 1084, 1083, 1086, 1085, 1087, 1088, 1088, + 1089, 1086, 1087, 1090, 1091, 1092, 1095, 1093, 1097, 1089, + 1093, 1084, 1090, 1094, 1096, 1098, 1094, 1095, 1099, 1096, + 1102, 1105, 1091, 1100, 1092, 1101, 1097, 1098, 1103, 1100, + 1106, 1101, 1108, 1103, 1107, 1102, 1110, 1099, 1104, 1104, - 1112, 1112, 1104, 1103, 1107, 1113, 1102, 1116, 1118, 1114, - 1119, 1115, 1106, 1113, 1114, 1108, 1115, 1120, 1111, 1121, - 1124, 1122, 1118, 1109, 1121, 1119, 1127, 1116, 1125, 1120, - 1122, 1123, 1123, 1126, 1125, 1129, 1128, 1129, 1130, 1126, - 1124, 1128, 1127, 1130, 1131, 1132, 1133, 1134, 1135, 1136, - 1137, 1133, 1138, 1140, 1140, 1141, 1136, 1142, 1131, 1132, - 1144, 1143, 1134, 1145, 57, 1137, 1144, 1135, 1146, 1141, - 1148, 1138, 1152, 1146, 1148, 1142, 1143, 1149, 1149, 1152, - 1150, 1153, 1146, 1145, 1146, 1150, 1155, 1146, 1151, 1151, - 1154, 1156, 1157, 1154, 1158, 1153, 1159, 1161, 1160, 1158, + 1105, 1109, 1111, 1112, 1106, 1109, 1107, 1113, 1115, 1117, + 1108, 1111, 1116, 1116, 1110, 1118, 1119, 1117, 1120, 1122, + 1118, 1119, 1112, 1124, 1123, 1125, 1128, 1115, 1126, 1131, + 1125, 1158, 1113, 1122, 1158, 1124, 1129, 1126, 1120, 1123, + 1127, 1127, 1129, 1130, 1135, 1131, 1128, 1132, 1134, 1130, + 1136, 1137, 1132, 1134, 1138, 1139, 1137, 1141, 1135, 1140, + 1142, 1144, 1144, 1145, 1136, 1146, 1140, 1147, 1149, 1138, + 1148, 1152, 1141, 1150, 1139, 1152, 1148, 1145, 1150, 1142, + 1153, 1153, 1147, 1146, 1156, 1154, 1157, 1150, 1149, 1150, + 1154, 1156, 1150, 1155, 1155, 1159, 1161, 1160, 1162, 1163, - 1162, 1157, 1161, 1164, 1169, 1155, 1163, 1166, 1166, 1156, - 1160, 1167, 1172, 1168, 1162, 1159, 1167, 1163, 1168, 1171, - 1170, 1172, 1164, 1171, 1169, 1170, 1173, 1174, 1175, 1177, - 1178, 1176, 1180, 1179, 1181, 1182, 1185, 1178, 1186, 1184, - 1183, 1173, 1174, 1176, 1177, 1179, 1183, 1175, 1187, 1188, - 1189, 1180, 1192, 1182, 1184, 1181, 1185, 1187, 1186, 1190, - 1191, 1193, 1194, 1197, 1188, 1199, 1196, 1198, 1200, 1189, - 1201, 1190, 1196, 1199, 1205, 1202, 1193, 1192, 1197, 1191, - 1202, 1198, 1194, 1203, 1204, 1206, 1201, 1207, 1200, 1204, - 1204, 1208, 1208, 1205, 1210, 1203, 1211, 1212, 1216, 1206, + 1157, 1164, 1165, 1162, 1168, 1161, 1166, 1165, 1167, 1170, + 1170, 1171, 1172, 1164, 1159, 1160, 1171, 1172, 1163, 1167, + 1166, 1173, 1174, 1168, 1175, 1176, 1180, 1174, 1175, 1177, + 1178, 1179, 1181, 1182, 1176, 1184, 1183, 1185, 1180, 1186, + 1182, 1173, 1189, 1187, 1177, 1178, 1188, 1181, 1183, 1187, + 1179, 1190, 1192, 1193, 1184, 1191, 1194, 1186, 1185, 1195, + 1196, 1188, 1189, 1198, 1191, 1197, 1201, 1192, 1194, 1200, + 1202, 1190, 1193, 1204, 1203, 1200, 1205, 1207, 1195, 1209, + 1197, 1201, 1203, 1198, 1202, 1196, 1206, 1210, 1288, 1207, + 1208, 1206, 1205, 1204, 1211, 1208, 1208, 1214, 1209, 1212, - 1207, 1209, 1209, 1212, 1216, 1211, 1209, 1210, 1214, 1209, - 1209, 1213, 1213, 1214, 1209, 1220, 1215, 1217, 1218, 1223, - 1209, 1227, 1217, 1218, 1209, 1215, 1219, 1219, 1221, 1221, - 1222, 1224, 1225, 1222, 1226, 1222, 1220, 1228, 1225, 1223, - 1229, 1227, 1228, 1226, 1230, 1231, 1232, 1235, 1233, 1224, - 1257, 1231, 1232, 1233, 1229, 1234, 1235, 1237, 1257, 1234, - 1244, 1235, 1230, 1235, 1236, 1235, 1242, 1235, 1240, 1236, - 1242, 1237, 1238, 1238, 1239, 1239, 1243, 1239, 1244, 1240, - 1245, 1246, 1248, 1247, 1250, 1249, 1246, 1246, 1251, 1245, - 1249, 1243, 1247, 1252, 1253, 1254, 1255, 1251, 1250, 1256, + 1212, 1210, 1215, 1217, 1217, 1288, 1216, 1211, 1213, 1213, + 1214, 1215, 1216, 1213, 1218, 1219, 1213, 1213, 1221, 1218, + 1220, 1213, 1224, 1221, 1219, 1222, 1220, 1213, 1223, 1223, + 1222, 1213, 1225, 1225, 1226, 1227, 1228, 1226, 1229, 1226, + 1230, 1231, 1232, 1224, 1229, 1233, 1234, 1232, 1237, 1230, + 1235, 1236, 1241, 1237, 1228, 1227, 1235, 1236, 1238, 1233, + 1239, 1231, 1238, 1240, 1234, 1252, 1241, 1247, 1240, 1239, + 1242, 1242, 1243, 1243, 1239, 1243, 1239, 1244, 1239, 1246, + 1239, 1248, 1247, 1246, 1249, 1250, 1251, 1252, 1244, 1253, + 1250, 1250, 1254, 1249, 1253, 1251, 1255, 1256, 1257, 1248, - 1256, 1258, 1255, 1259, 1248, 1260, 1263, 1261, 1259, 1254, - 1262, 1264, 1252, 1253, 1267, 1258, 1261, 1262, 1265, 1260, - 1266, 1266, 1272, 1265, 1263, 1268, 1268, 1272, 1269, 1267, - 1269, 1271, 1273, 1274, 1271, 1276, 1264, 1275, 1275, 1277, - 1277, 1279, 1274, 1278, 1278, 1280, 1279, 1281, 1282, 1282, - 1283, 1273, 1284, 1285, 1286, 1276, 1285, 1287, 1289, 1288, - 1290, 1291, 1290, 1287, 1288, 1294, 1280, 1289, 1281, 1284, - 1283, 1295, 1293, 1296, 1286, 1293, 1295, 1297, 1298, 1291, - 1294, 1300, 1297, 1299, 1300, 1301, 1298, 1296, 1299, 1303, - 1301, 1302, 1302, 1304, 1303, 1305, 1306, 1307, 1309, 1310, + 1258, 1259, 1260, 1260, 1261, 1255, 1254, 1259, 1262, 1264, + 1263, 1265, 1261, 1267, 1258, 1263, 1256, 1257, 1266, 1268, + 1265, 1269, 1262, 1264, 1271, 1266, 1269, 1270, 1270, 1272, + 1272, 1267, 1273, 1275, 1273, 1276, 1275, 1277, 1278, 1271, + 1276, 1279, 1279, 1280, 1268, 1281, 1281, 1278, 1282, 1282, + 1283, 1284, 1285, 1286, 1286, 1283, 1277, 1287, 1289, 1290, + 1291, 1289, 1292, 1280, 1295, 1293, 1291, 1292, 1294, 1298, + 1294, 1299, 1284, 1285, 1293, 1297, 1299, 1287, 1297, 1290, + 1300, 1301, 1295, 1302, 1298, 1303, 1301, 1308, 1305, 1304, + 1303, 1302, 1304, 1305, 1300, 1306, 1306, 1307, 1309, 1310, - 1312, 1305, 1311, 1306, 1309, 1310, 1312, 1311, 1313, 1314, - 1307, 1304, 1315, 1316, 1316, 1317, 1319, 1313, 1320, 1321, - 1323, 1319, 1322, 1315, 1324, 1325, 1326, 1327, 1314, 1321, - 1331, 1325, 1326, 1327, 1330, 1317, 1320, 1322, 1329, 1332, - 1323, 1333, 1334, 1335, 1329, 1336, 1336, 1324, 1330, 1337, - 1331, 1338, 1339, 1333, 1330, 1340, 1334, 1341, 1341, 1332, - 1340, 1335, 1342, 1343, 1345, 1348, 1346, 1349, 1343, 1337, - 1339, 1346, 1346, 1347, 1348, 1349, 1338, 52, 1350, 1351, - 1352, 1353, 1356, 1345, 1354, 1342, 1353, 1363, 1355, 1353, - 1355, 1347, 1350, 1354, 1351, 1352, 1356, 1358, 1352, 1360, + 1311, 1313, 1307, 1314, 1309, 1308, 1310, 1313, 1317, 1314, + 1315, 1316, 1318, 1311, 1317, 1315, 1316, 1319, 1320, 1321, + 1321, 1318, 1322, 1324, 1326, 1325, 1327, 1328, 1324, 1320, + 1329, 1330, 1331, 1332, 1326, 1335, 1319, 1330, 1331, 1332, + 1334, 1327, 1322, 1325, 1336, 1337, 1334, 1328, 1338, 1335, + 1340, 1342, 1339, 1329, 1343, 1335, 1341, 1341, 1344, 1347, + 1338, 1350, 1345, 1352, 1336, 1337, 1339, 1345, 1340, 1346, + 1346, 1342, 1348, 74, 1355, 1356, 1344, 1348, 1351, 1343, + 1350, 1352, 1347, 1351, 1351, 1353, 1357, 1354, 1355, 1359, + 1356, 1358, 1361, 1367, 1353, 1354, 1358, 1363, 1359, 1358, - 1359, 1361, 1362, 1358, 1359, 1364, 1361, 1361, 1367, 1365, - 1360, 1366, 1368, 1363, 1365, 1369, 1366, 1370, 1373, 1372, - 1369, 1362, 1374, 1364, 1375, 1375, 1367, 1376, 1377, 1378, - 1380, 1376, 1368, 1372, 1381, 1379, 1373, 1370, 1382, 1383, - 1374, 1379, 1380, 1384, 1385, 1386, 1377, 1389, 1378, 1387, - 1386, 1394, 1382, 1381, 1383, 1388, 1387, 1390, 1384, 1392, - 1388, 1391, 1391, 1385, 1393, 1389, 1390, 1395, 1395, 1396, - 1397, 1394, 1398, 1393, 1392, 1396, 1397, 1399, 1399, 1400, - 1401, 1402, 1403, 1404, 1405, 1400, 1398, 1403, 1406, 1404, - 1405, 1407, 1407, 1413, 1406, 1412, 1401, 1408, 1408, 1410, + 1360, 1357, 1360, 1363, 1357, 1364, 1361, 1365, 1366, 1364, + 1368, 1369, 1367, 1366, 1366, 1370, 1371, 1372, 1365, 1373, + 1370, 1371, 1374, 1375, 1377, 68, 1378, 1374, 1379, 1369, + 1380, 1380, 1382, 1381, 1383, 1372, 1368, 1381, 1377, 1373, + 1385, 1384, 1386, 1375, 1378, 1387, 1379, 1384, 1388, 1389, + 1382, 1390, 1385, 1383, 1394, 1391, 1397, 1393, 1392, 1387, + 1391, 1386, 1393, 1388, 1389, 1392, 1395, 1396, 1396, 1398, + 1390, 1397, 1394, 1399, 1401, 1395, 1400, 1400, 1398, 1402, + 1401, 1403, 1404, 1404, 1405, 1402, 1406, 1407, 63, 1408, + 1405, 1409, 1410, 1399, 1408, 1403, 1418, 1409, 1410, 1411, - 1410, 1411, 1402, 1414, 1412, 1411, 1415, 1416, 1419, 1417, - 1420, 1413, 1418, 1418, 1421, 1414, 1417, 1422, 1420, 1421, - 1415, 1423, 1416, 1426, 1424, 1427, 1427, 1425, 1419, 1424, - 1424, 1422, 1425, 1425, 1428, 1429, 1430, 1431, 1432, 1433, - 1423, 1435, 1431, 1426, 1434, 1430, 1436, 1435, 1437, 1438, - 1439, 1436, 1440, 1428, 1429, 1441, 1439, 1432, 1442, 1433, - 1443, 1441, 1434, 1444, 1442, 1445, 1446, 1447, 1437, 1448, - 1452, 1440, 1449, 1450, 1450, 1438, 1453, 1451, 1457, 1443, - 1451, 1447, 1444, 1457, 1445, 1446, 1454, 1449, 1459, 1452, - 1448, 1455, 1455, 1456, 1456, 1453, 1458, 1460, 1454, 1461, + 1412, 1412, 1406, 1413, 1413, 1411, 1415, 1415, 1407, 1416, + 1417, 1419, 1420, 1416, 1418, 1421, 1424, 1422, 1427, 1417, + 1423, 1423, 1426, 1419, 1422, 1425, 1420, 1426, 1428, 1429, + 1421, 1431, 1427, 1425, 1429, 1429, 1424, 1430, 1432, 1432, + 1433, 1434, 1430, 1430, 1435, 1436, 1437, 1428, 1438, 1439, + 1436, 1431, 1440, 1435, 1442, 1443, 1441, 1444, 1440, 1433, + 1434, 1441, 1469, 1444, 1445, 1437, 1446, 1439, 1438, 1447, + 1448, 1449, 1446, 1450, 1442, 1447, 1451, 1452, 1453, 1454, + 1469, 1443, 1457, 1445, 1455, 1455, 1458, 58, 1459, 1448, + 1449, 1452, 1450, 1456, 1454, 1451, 1456, 1460, 1460, 1453, - 1458, 1459, 1462, 1466, 1462, 1464, 1460, 1467, 1462, 1465, - 1468, 1473, 1461, 1471, 1465, 1469, 1469, 1470, 1466, 1471, - 1472, 1462, 1470, 1464, 1473, 1474, 1468, 1467, 1475, 1476, - 1474, 1477, 1475, 1476, 1478, 1472, 1479, 1480, 1481, 1482, - 1482, 1484, 1486, 1487, 1481, 1479, 1488, 1488, 1487, 1489, - 1490, 1477, 1478, 1492, 1492, 1489, 1496, 1480, 1494, 1484, - 1497, 1494, 1500, 1486, 1495, 1495, 1499, 1501, 1502, 1499, - 1490, 1503, 1496, 1504, 1504, 1505, 1497, 1502, 1506, 1507, - 1508, 1509, 1512, 1500, 1511, 1508, 1513, 1501, 1510, 1510, - 1505, 1503, 1514, 1511, 1515, 1509, 1516, 1516, 1507, 1506, + 1459, 1457, 1461, 1461, 1462, 1458, 1463, 1464, 1465, 1462, + 1463, 1466, 1467, 1471, 1467, 1472, 1470, 1465, 1467, 1477, + 1464, 1470, 1473, 1476, 1466, 1474, 1474, 1475, 1471, 1476, + 1478, 1467, 1475, 1480, 1477, 1472, 1479, 1480, 1473, 1482, + 1481, 1479, 1483, 1478, 1481, 1484, 1485, 1486, 1487, 1487, + 1489, 1491, 1492, 1486, 1484, 1493, 1493, 1492, 1494, 1482, + 1483, 1495, 1497, 1497, 1494, 1505, 1485, 1499, 1489, 1501, + 1499, 1502, 1491, 1500, 1500, 1504, 1506, 1508, 1504, 1507, + 1510, 1495, 1509, 1509, 1511, 1501, 1505, 1502, 1507, 1512, + 1514, 1515, 1515, 1513, 1516, 1510, 1506, 1508, 1513, 1517, - 1512, 1513, 1517, 1518, 1519, 1520, 1521, 1521, 1522, 1519, - 1523, 1525, 1522, 1526, 1515, 1528, 1517, 1514, 1524, 1524, - 1520, 1518, 1527, 1529, 1526, 1536, 1527, 1533, 1529, 1535, - 1523, 1531, 1531, 1525, 1528, 1532, 1534, 1537, 1532, 1538, - 1533, 1534, 1539, 1536, 1540, 1535, 1541, 1541, 1542, 47, - 1543, 1537, 1544, 1542, 1545, 1545, 1539, 1546, 1538, 1538, - 1547, 1548, 1549, 1550, 1549, 1547, 1546, 1551, 1550, 1540, - 1543, 1552, 1544, 1551, 1553, 1555, 1556, 1556, 1557, 1558, - 1553, 1548, 1560, 1561, 1564, 1558, 1565, 1560, 1566, 1555, - 1569, 1552, 1562, 1562, 1563, 1563, 1567, 1557, 1564, 1567, + 1518, 1519, 1520, 1516, 1514, 1511, 1521, 1521, 1512, 1522, + 1523, 1524, 1525, 1526, 1526, 1518, 1524, 1517, 1528, 1530, + 1527, 1531, 1520, 1522, 1527, 1532, 1519, 1525, 1523, 1529, + 1529, 1533, 1534, 1539, 1535, 1533, 1532, 1541, 1528, 1535, + 1531, 1530, 1537, 1537, 1538, 1540, 1539, 1538, 1542, 1543, + 1540, 1534, 1544, 1541, 1545, 1546, 1547, 1547, 1549, 1548, + 57, 1550, 1553, 1543, 1548, 1552, 1542, 1553, 1545, 1551, + 1551, 1544, 1544, 1554, 1552, 1555, 1557, 1555, 1549, 1556, + 1546, 1550, 1557, 1558, 1556, 1559, 1561, 1562, 1562, 1563, + 1564, 1559, 1566, 1554, 1567, 1570, 1564, 1566, 1568, 1568, - 1568, 1568, 1570, 1566, 1565, 1571, 1572, 1561, 1569, 1572, - 1573, 18, 1572, 1574, 1570, 1579, 1573, 1575, 1574, 1577, - 1575, 1578, 1581, 1581, 1572, 1571, 1578, 1580, 1577, 1582, - 1580, 1583, 1590, 1584, 1589, 1582, 1575, 1583, 1584, 1587, - 1579, 1585, 1585, 1586, 1586, 1587, 1588, 1589, 1591, 1592, - 1590, 1588, 1593, 1594, 1595, 1593, 1596, 1597, 1598, 1594, - 1595, 1596, 1602, 1597, 1603, 1599, 1604, 1591, 1601, 1592, - 1599, 1600, 1600, 1601, 1605, 1606, 1607, 1608, 1609, 1610, - 1602, 1598, 1612, 1610, 1603, 1611, 1604, 1611, 1605, 1606, - 1607, 1617, 1614, 1615, 1616, 1608, 1618, 1617, 1619, 1620, + 1561, 1569, 1569, 1558, 1571, 1572, 1575, 1573, 1563, 1570, + 1573, 1574, 1574, 1576, 1577, 1579, 1581, 1585, 1567, 1581, + 1572, 1579, 1571, 1578, 1575, 1576, 1578, 1580, 1583, 1578, + 1586, 1584, 1580, 1586, 1577, 1581, 1584, 1583, 1587, 1587, + 1588, 1578, 1585, 1589, 1595, 1590, 1588, 1591, 1591, 1589, + 1590, 1592, 1592, 1593, 1596, 1594, 1597, 1595, 1598, 1593, + 1594, 1599, 1600, 1601, 1599, 1602, 1604, 1603, 1600, 1601, + 1602, 1605, 1596, 1603, 1608, 1597, 1605, 1607, 1598, 1606, + 1606, 1609, 1607, 1610, 1611, 1612, 1613, 1614, 1615, 1604, + 1616, 1617, 1608, 1617, 1616, 1618, 1620, 1621, 1611, 1612, - 1622, 1612, 1625, 1609, 1614, 1615, 1621, 1616, 1624, 1624, - 1626, 1627, 1628, 1628, 1619, 1626, 1618, 1629, 1631, 1620, - 1621, 1622, 1625, 1627, 1630, 1632, 1633, 1635, 1636, 1634, - 1637, 1641, 1629, 1639, 1635, 1633, 1642, 1636, 1630, 1642, - 1636, 1646, 1631, 1632, 1634, 1645, 1637, 1650, 1639, 1643, - 1643, 1644, 1644, 1639, 1649, 1647, 1641, 1645, 1647, 1646, - 1648, 1648, 1652, 1651, 1653, 1652, 1650, 1649, 1651, 1653, - 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1661, 1662, - 1663, 1656, 1660, 1658, 1659, 1664, 1658, 1655, 1665, 1654, - 1666, 1667, 1657, 1663, 1672, 1668, 1667, 1667, 1669, 1662, + 1613, 1609, 1622, 1610, 1623, 1614, 1624, 1625, 1620, 1621, + 1623, 1626, 1628, 1615, 1618, 1622, 1627, 1630, 1630, 1631, + 1632, 1635, 1633, 1625, 1636, 1632, 1624, 1634, 1634, 1637, + 1627, 1626, 1638, 1628, 1633, 1639, 1635, 1640, 1636, 1631, + 1641, 1643, 1642, 1645, 1639, 1647, 1648, 1641, 1652, 1648, + 1638, 1642, 1640, 1637, 1642, 1649, 1649, 1643, 1645, 1650, + 1650, 1651, 1653, 1645, 1655, 1653, 1652, 1654, 1654, 1656, + 1647, 1657, 1658, 1651, 1659, 1658, 1657, 1655, 1660, 1659, + 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1667, 1656, 1668, + 1662, 1666, 1664, 1665, 1669, 1664, 1661, 1660, 1670, 1671, - 1668, 1675, 1665, 1664, 1673, 1676, 1666, 1674, 1674, 1679, - 1669, 1677, 1678, 1678, 1676, 1680, 1677, 1675, 1679, 1672, - 1680, 1679, 1673, 1681, 1682, 1683, 1684, 1678, 1686, 1687, - 1688, 1684, 1684, 1689, 1690, 1691, 1692, 1692, 1689, 1699, - 1690, 1681, 1686, 1683, 1687, 1682, 1694, 1695, 1693, 1696, - 1697, 1694, 1688, 1691, 1693, 1696, 1697, 1700, 1701, 1699, - 1702, 1695, 1704, 1703, 1701, 1708, 1703, 1706, 1704, 1709, - 1710, 1700, 1703, 1702, 1711, 1706, 1712, 1713, 1710, 1711, - 1714, 1715, 1716, 1717, 1708, 1712, 1718, 1718, 1709, 1714, - 1713, 1721, 1719, 1720, 1715, 1723, 1716, 1717, 1719, 1720, + 1673, 1663, 1672, 1674, 1678, 1673, 1673, 1669, 1674, 1668, + 1675, 1681, 1679, 1671, 1680, 1680, 1670, 1682, 1672, 1683, + 1684, 1684, 1675, 1686, 1683, 1685, 1682, 1681, 1686, 1678, + 1679, 1687, 1688, 1689, 1685, 1684, 1690, 1685, 1692, 1693, + 1694, 1690, 1690, 1695, 1696, 1697, 1698, 1698, 1695, 1687, + 1696, 1689, 1692, 1688, 1693, 1699, 1701, 1705, 1706, 1700, + 1702, 1699, 1694, 1697, 1700, 1703, 1702, 1707, 1708, 1714, + 1701, 1703, 1706, 1707, 1710, 1709, 1715, 1705, 1709, 1712, + 1710, 1708, 1716, 1718, 1709, 1719, 1717, 1712, 1714, 1722, + 1716, 1717, 1718, 1720, 1721, 1715, 1723, 1729, 1719, 1724, - 1722, 1722, 1724, 1725, 1721, 1726, 1726, 1728, 1718, 1729, - 1727, 1730, 1731, 1728, 1734, 1723, 1733, 1733, 1740, 1736, - 1724, 1735, 1725, 1727, 1736, 1735, 1739, 1730, 1737, 1742, - 1731, 1729, 1738, 1737, 1734, 1739, 1743, 1738, 1745, 1744, - 1742, 1740, 1744, 1746, 1748, 1743, 1747, 1747, 1749, 1750, - 1745, 1751, 1751, 1752, 1753, 1757, 1758, 1754, 1746, 1755, - 1749, 1753, 1761, 1748, 1759, 1760, 1762, 1752, 1750, 1754, - 1759, 1755, 1762, 1772, 1757, 1772, 1758, 1760, 1763, 1763, - 1761, 1764, 1765, 1765, 1764, 1767, 1768, 1769, 1770, 1770, - 1767, 1771, 1774, 1769, 1773, 1768, 1775, 1773, 1776, 1777, + 1724, 1727, 1720, 1722, 1730, 1725, 1726, 1721, 1728, 1728, + 1723, 1725, 1726, 1731, 1727, 1732, 1732, 1729, 1733, 1734, + 1735, 1724, 1730, 1736, 1747, 1734, 1737, 1739, 1739, 1740, + 1741, 1733, 1731, 1742, 1741, 1743, 1744, 1746, 1742, 1736, + 1745, 1744, 1735, 1749, 1737, 1745, 1746, 1747, 1750, 1740, + 1751, 1752, 1753, 1751, 1749, 1743, 1755, 1750, 1754, 1754, + 1756, 1757, 1759, 1752, 1758, 1758, 1760, 1753, 1764, 1761, + 1762, 1765, 1756, 1760, 1767, 1755, 1759, 1766, 1768, 1769, + 1757, 1761, 1762, 1766, 52, 1769, 1767, 1764, 1770, 1770, + 1771, 1765, 1774, 1771, 1772, 1772, 1768, 1774, 1775, 1776, - 1778, 1779, 1780, 1771, 1783, 1778, 1779, 1781, 1782, 1783, - 1785, 1780, 1774, 1784, 1788, 1786, 1776, 1777, 1775, 1781, - 1786, 1787, 1784, 1782, 1789, 1789, 1787, 1786, 1790, 1788, - 1785, 1791, 1793, 1795, 1790, 1784, 1794, 1796, 1797, 1802, - 1797, 1805, 1798, 1799, 1799, 1800, 1800, 1801, 1801, 1795, - 1806, 1793, 1791, 1803, 1803, 1794, 1798, 1796, 1798, 1802, - 1804, 1804, 1805, 1807, 1807, 1808, 1809, 1810, 1812, 1808, - 1810, 1806, 1809, 1813, 1812, 1814, 1815, 1816, 1817, 1817, - 1816, 1814, 1818, 1819, 1820, 1820, 1822, 1823, 1819, 1821, - 1825, 1813, 1823, 1824, 1824, 1825, 1827, 1826, 1828, 1829, + 1777, 1777, 1778, 1781, 1779, 1776, 1779, 1775, 1780, 1782, + 1783, 1780, 1784, 1785, 1778, 1786, 1787, 1788, 1785, 1789, + 1786, 1790, 1792, 1781, 1791, 1787, 1790, 1793, 1783, 1788, + 1784, 1782, 1793, 1791, 1789, 1794, 1795, 1796, 1796, 1793, + 1794, 1797, 1792, 1798, 1800, 1802, 1791, 1797, 1801, 1803, + 1804, 1795, 1804, 1809, 1805, 1806, 1806, 1807, 1807, 1808, + 1808, 1802, 1812, 1800, 1798, 1810, 1810, 1801, 1805, 1803, + 1805, 1811, 1811, 1809, 1813, 1814, 1814, 1815, 1816, 1817, + 1819, 1815, 1817, 1812, 1816, 1820, 1819, 1821, 1822, 1823, + 1824, 1824, 1823, 1821, 1825, 1813, 1826, 1827, 1827, 1829, - 1830, 1815, 1818, 1826, 1821, 1831, 1832, 1822, 1827, 1827, - 1827, 1831, 1842, 1835, 1836, 1827, 1834, 1829, 1828, 1838, - 1830, 1834, 1834, 1837, 1839, 1837, 1832, 1835, 1840, 1836, - 1838, 1841, 1842, 1843, 1840, 1844, 1844, 1845, 1847, 1839, - 1841, 1846, 1846, 1848, 1849, 1849, 1850, 1850, 1851, 1854, - 1854, 1855, 1856, 1858, 1843, 1861, 1859, 1863, 1847, 1864, - 1860, 1856, 1858, 1845, 1866, 1848, 1860, 1867, 1851, 1862, - 1862, 1861, 1865, 1866, 1864, 1869, 1855, 1859, 1863, 1865, - 1868, 1868, 1870, 1872, 1873, 1874, 1876, 1875, 1872, 1877, - 1873, 1877, 1876, 1867, 1875, 1879, 1880, 1883, 1870, 1881, + 1828, 1826, 1830, 1820, 1831, 1831, 1832, 1830, 1836, 1834, + 1833, 1832, 1835, 1822, 1825, 1828, 1833, 1837, 1838, 1839, + 1829, 1834, 1834, 1834, 1838, 1841, 1836, 1842, 1834, 1843, + 1841, 1841, 1835, 1844, 1845, 1844, 1846, 1837, 1848, 1839, + 1847, 1842, 1849, 1850, 1843, 1845, 1847, 1848, 1851, 1851, + 1852, 1846, 1853, 1853, 1854, 1855, 1856, 1856, 1857, 1857, + 1858, 1862, 1849, 1863, 1850, 1861, 1861, 1866, 1868, 1865, + 1869, 1869, 1863, 1867, 1854, 1870, 1852, 1855, 1865, 1867, + 1858, 1874, 1871, 1872, 1868, 1873, 1862, 1876, 1866, 1877, + 1872, 1875, 1875, 1879, 1873, 1880, 1870, 1871, 1879, 1881, - 1881, 1869, 1880, 1882, 1884, 1874, 1883, 1885, 1882, 1886, - 1887, 1888, 1889, 1887, 1879, 1890, 1890, 1891, 1894, 1892, - 1893, 1886, 1897, 1891, 1884, 1892, 1885, 1895, 1898, 1888, - 1899, 1895, 1901, 1894, 1902, 1899, 1900, 1900, 1889, 1904, - 1893, 1905, 1897, 1906, 1906, 1905, 1907, 1895, 1908, 1902, - 1898, 1901, 1907, 1909, 1909, 1910, 1911, 1908, 1904, 1910, - 1912, 1912, 1913, 1914, 1916, 1915, 1917, 1911, 1918, 1916, - 1919, 1920, 1911, 1922, 1923, 1921, 1919, 1914, 1922, 1924, - 1924, 1925, 1925, 1913, 1915, 1928, 1917, 1923, 1918, 1920, - 1921, 1926, 1929, 1930, 1928, 1926, 1931, 1931, 1933, 1933, + 1883, 1880, 1882, 1886, 1891, 1877, 1883, 1874, 1884, 1882, + 1884, 1887, 1892, 1876, 1888, 1888, 1889, 1887, 1890, 1881, + 1893, 1889, 1886, 1894, 1891, 1895, 1894, 1890, 1896, 1897, + 1897, 1892, 1893, 1898, 1899, 1900, 1901, 1902, 1904, 1898, + 1899, 1902, 1905, 1895, 1906, 1907, 1907, 1908, 1909, 1906, + 1911, 1901, 1912, 1915, 1896, 1900, 1912, 1902, 1904, 1913, + 1913, 1914, 1915, 1909, 1905, 1918, 1908, 1914, 1917, 1911, + 1916, 1916, 1917, 1919, 1919, 1920, 1918, 1921, 1922, 1923, + 1924, 1918, 1925, 1926, 1923, 1927, 1928, 1929, 1954, 1926, + 1937, 1921, 1929, 1930, 1931, 1931, 1920, 1922, 1932, 1932, - 1934, 1935, 1938, 1929, 1937, 1934, 1934, 1935, 1929, 1939, - 1937, 1940, 1941, 1930, 1939, 1943, 1944, 1945, 1941, 1946, - 1944, 1948, 1951, 1940, 1947, 1949, 1952, 1943, 1938, 1945, - 1947, 1949, 1950, 1950, 1953, 1954, 1956, 1957, 17, 1953, - 1958, 1951, 1964, 1948, 1946, 1958, 1952, 1954, 1956, 1960, - 1961, 1961, 1960, 1962, 1962, 1965, 1957, 1963, 1963, 1966, - 1968, 1965, 1964, 1967, 1969, 1966, 1968, 1971, 1967, 1974, - 1977, 1973, 1971, 1969, 1973, 1975, 1975, 1978, 1979, 1980, - 1980, 1974, 1977, 1979, 1981, 1982, 1983, 1985, 1985, 1978, - 1982, 1983, 1984, 1981, 1986, 1984, 1987, 1988, 1989, 1990, + 1924, 1928, 1925, 1927, 1933, 1935, 1930, 1936, 1933, 1945, + 1937, 1938, 1938, 1954, 1935, 1940, 1940, 1946, 1936, 1941, + 1942, 1944, 1946, 1936, 1941, 1941, 1942, 1944, 1947, 1950, + 1948, 1952, 1956, 1951, 1959, 1945, 1948, 1951, 1953, 1953, + 1947, 1950, 1955, 1952, 1957, 1958, 1958, 1960, 1955, 1962, + 1957, 1961, 1964, 1959, 1956, 1965, 1961, 1966, 1969, 1969, + 1968, 1962, 1966, 1968, 1964, 1970, 1970, 1960, 1971, 1971, + 1972, 1973, 1974, 1976, 1965, 1975, 1977, 1973, 1974, 1976, + 1975, 1979, 1982, 1985, 1981, 1977, 1979, 1981, 1983, 1983, + 1972, 1986, 1987, 1989, 1982, 1985, 1990, 1987, 1988, 1988, - 1993, 1991, 1992, 1990, 1994, 1987, 1991, 1995, 1992, 1996, - 1998, 1998, 1999, 1994, 1986, 1988, 2001, 1989, 1993, 2000, - 2002, 2002, 1998, 1996, 2003, 1995, 2004, 2005, 2000, 2006, - 1999, 2007, 2012, 2003, 2006, 2012, 2001, 2013, 2004, 2010, - 2010, 2014, 2017, 2016, 2007, 2018, 2019, 2023, 2005, 2020, - 2020, 2018, 2021, 2013, 2021, 2023, 2017, 2014, 2016, 2022, - 2022, 2025, 2025, 2019, 2026, 2026, 2028, 2029, 2030, 2031, - 2032, 2033, 2035, 2029, 2030, 2036, 2031, 2034, 2034, 2041, - 2045, 2035, 2037, 2038, 2039, 2040, 2042, 2043, 2046, 2028, - 2047, 2033, 2032, 2043, 2037, 2038, 2036, 2040, 2049, 2039, + 1991, 1990, 1989, 1986, 1992, 1991, 1994, 1992, 1993, 1993, + 1995, 1996, 1997, 1998, 2001, 1999, 2000, 1998, 2002, 1995, + 1999, 2003, 2000, 2004, 2006, 2006, 1994, 2002, 2007, 1996, + 2009, 1997, 2001, 2008, 2010, 2010, 2006, 2004, 2011, 2003, + 2012, 2013, 2008, 2014, 2015, 2021, 2007, 2011, 2014, 2022, + 2009, 2024, 2012, 2018, 2018, 2020, 2025, 2015, 2020, 2027, + 2036, 2021, 2013, 2026, 2031, 2022, 2024, 2028, 2028, 2026, + 2025, 2029, 2031, 2029, 2030, 2030, 2027, 2033, 2033, 2034, + 2034, 2037, 2038, 2036, 2039, 2040, 2041, 2037, 2038, 2042, + 2042, 2039, 2043, 2044, 2049, 2047, 2045, 2046, 2050, 2048, - 2045, 2042, 2047, 2048, 2048, 2041, 2043, 2050, 2052, 2051, - 2053, 2046, 2051, 2052, 2055, 2056, 2049, 2056, 2057, 2055, - 2058, 2059, 2061, 2063, 2064, 2058, 2065, 2050, 2059, 2067, - 2053, 2061, 2066, 2064, 2066, 2071, 2057, 2068, 2065, 2073, - 2070, 2063, 2070, 2068, 2072, 2072, 2074, 2079, 2067, 2071, - 2075, 2074, 2075, 2076, 2077, 2078, 2080, 2082, 2076, 2077, - 2083, 2081, 2080, 2084, 2087, 2073, 2081, 2079, 2084, 2084, - 2082, 2085, 2083, 2078, 2088, 2089, 2089, 2090, 2090, 2085, - 2091, 2092, 2094, 2087, 2093, 2096, 2097, 2094, 2088, 2095, - 2093, 2095, 2098, 2098, 2097, 2091, 2099, 2100, 2100, 2101, + 2054, 2043, 2053, 2055, 2056, 2056, 2041, 2040, 2045, 2046, + 2047, 2048, 2051, 2050, 2044, 2055, 2057, 2058, 2051, 2061, + 2049, 2059, 2053, 2054, 2059, 2060, 2064, 2063, 2064, 2065, + 2060, 2051, 2063, 2066, 2057, 2067, 2069, 2058, 2066, 2061, + 2071, 2072, 2067, 2073, 2074, 2069, 2074, 2065, 2075, 2079, + 2072, 2076, 2078, 2081, 2078, 2073, 2082, 2076, 2071, 2080, + 2080, 2082, 2083, 2079, 2083, 2084, 2085, 2075, 2086, 2087, + 2084, 2085, 2088, 2091, 2090, 2089, 2092, 2095, 2088, 2081, + 2089, 2092, 2092, 2093, 2096, 2091, 2086, 2090, 2099, 2087, + 2100, 2093, 2097, 2097, 2098, 2098, 2095, 2102, 2096, 2101, - 2101, 2092, 2097, 2096, 2102, 2103, 2104, 2106, 2099, 2107, - 2103, 2107, 2108, 2102, 2110, 2109, 2106, 2112, 2111, 2106, - 2109, 2109, 2114, 2115, 2104, 2116, 2110, 2111, 2115, 2112, - 2116, 2118, 2119, 2108, 2114, 2122, 2120, 2121, 2121, 2123, - 2124, 2125, 2128, 2127, 2118, 2120, 2126, 2128, 2132, 2130, - 2131, 2141, 2119, 2122, 2133, 2142, 2124, 2123, 2127, 2133, - 2126, 2130, 2131, 2135, 2134, 2138, 2125, 2140, 2132, 2134, - 2142, 2138, 2135, 2140, 2141, 2143, 2144, 2145, 2146, 2146, - 2147, 2148, 2148, 2149, 2138, 2151, 2145, 2150, 2154, 2147, - 2151, 2150, 2152, 2143, 2155, 2156, 2160, 0, 2157, 2160, + 2104, 2105, 2102, 2099, 2103, 2101, 2103, 2106, 2106, 2105, + 2100, 2107, 2108, 2108, 2109, 2109, 2110, 2105, 2104, 2111, + 2112, 2114, 2116, 2107, 2111, 2110, 2115, 2118, 2115, 2117, + 2114, 2119, 2120, 2114, 2117, 2117, 2122, 2123, 2112, 2118, + 2119, 2124, 2123, 2116, 2120, 2126, 2124, 2127, 2122, 2132, + 2128, 2129, 2129, 2130, 2131, 2133, 2134, 2136, 2126, 2128, + 2135, 2138, 2136, 2140, 2139, 2132, 2149, 2127, 2151, 2141, + 2134, 2130, 2131, 2138, 2141, 2135, 2139, 2142, 2143, 2146, + 2133, 2150, 2142, 2140, 2148, 2146, 2151, 2143, 2152, 2149, + 2148, 2153, 2154, 2154, 2155, 2158, 2150, 2157, 2146, 2161, - 2155, 2144, 2149, 2157, 2157, 2152, 2158, 2154, 2159, 2162, - 2161, 2180, 2158, 2167, 2159, 2165, 2165, 2156, 2161, 2166, - 2166, 2170, 2167, 2168, 2168, 2169, 2169, 2173, 2171, 2162, - 2172, 2180, 2173, 2170, 2166, 2177, 2172, 2174, 2174, 2175, - 2175, 2177, 2176, 2182, 2179, 2166, 2171, 2176, 2179, 2181, - 2184, 2185, 2187, 2181, 2186, 2188, 2185, 2190, 2189, 2191, - 2188, 2192, 2193, 2182, 2194, 2194, 2192, 2187, 2195, 2197, - 2196, 2198, 2195, 2190, 2197, 2184, 2189, 2186, 2199, 2191, - 2200, 2201, 2202, 2204, 2193, 2196, 2203, 2202, 2205, 2205, - 2207, 2208, 2200, 2209, 2210, 2211, 2199, 2198, 2207, 2203, + 2153, 2156, 2156, 2155, 2159, 2160, 2163, 2165, 2159, 47, + 2160, 2164, 2161, 2152, 2158, 2157, 2166, 2164, 2167, 2171, + 2168, 2166, 2166, 2170, 2167, 2163, 2168, 2169, 2176, 2165, + 2169, 2170, 2174, 2174, 2175, 2175, 2179, 2176, 2180, 2171, + 2177, 2177, 2178, 2178, 2181, 2189, 2182, 2191, 2179, 2175, + 2181, 2182, 2183, 2183, 2184, 2184, 2180, 2185, 2186, 2188, + 2175, 2193, 2185, 2188, 2186, 2189, 2190, 2191, 2194, 2195, + 2190, 2197, 2196, 2194, 2199, 2198, 2197, 2200, 2201, 2202, + 2203, 2203, 2207, 2201, 2204, 2205, 2193, 2196, 2204, 2206, + 2199, 2208, 2195, 2198, 2206, 2209, 2210, 2200, 2211, 2212, - 2201, 2204, 2212, 2213, 2214, 2215, 2220, 2217, 2512, 2221, - 2208, 2222, 2209, 2222, 2219, 2221, 2214, 2210, 2224, 2211, - 2220, 2212, 2217, 2224, 2213, 2226, 2215, 2219, 2223, 2223, - 2225, 2227, 2512, 2225, 2228, 2229, 2229, 2233, 2226, 2230, - 2230, 2231, 2234, 2231, 2236, 2227, 2247, 2228, 2232, 2232, - 2235, 2235, 2233, 2236, 2242, 2234, 2236, 2237, 2237, 2238, - 2238, 2239, 2241, 2243, 2244, 2247, 2239, 2241, 2245, 2245, - 2246, 2246, 2248, 2248, 2242, 2249, 2244, 2250, 2250, 2251, - 2252, 2253, 2253, 2243, 2255, 2252, 2254, 2254, 2256, 2257, - 2258, 2259, 2263, 2249, 2251, 2261, 2265, 2256, 2255, 2266, + 2205, 2202, 2213, 2211, 2214, 2214, 2216, 2209, 2207, 2208, + 2217, 2218, 2212, 2219, 2216, 2210, 2220, 2222, 2221, 2223, + 2213, 2224, 2228, 2231, 2226, 2231, 2230, 2229, 18, 2217, + 2218, 2223, 2230, 2232, 2232, 2228, 2219, 2221, 2222, 2226, + 2220, 2229, 2224, 2233, 2234, 2235, 2236, 2234, 2233, 2237, + 2238, 2238, 2239, 2239, 2240, 2242, 2240, 17, 2235, 2243, + 2236, 2251, 2237, 2241, 2241, 2244, 2244, 2245, 2246, 2246, + 2242, 2252, 2243, 2247, 2247, 2248, 2245, 2250, 2253, 2245, + 2248, 2251, 2250, 2254, 2254, 2255, 2255, 2256, 2257, 2257, + 2253, 2252, 2258, 2259, 2259, 2261, 2260, 2262, 2262, 2264, - 2261, 2262, 2262, 2270, 2258, 2266, 2257, 2264, 2264, 2267, - 2259, 2263, 2267, 2271, 2265, 2268, 2268, 2269, 2269, 2272, - 2274, 2272, 2270, 2275, 2276, 2276, 2278, 2279, 2271, 2280, - 2281, 2268, 2282, 2282, 2281, 2274, 2283, 2285, 2284, 2286, - 2288, 2288, 2275, 2284, 2280, 2289, 2278, 2291, 2292, 2290, - 2279, 2293, 2285, 2294, 2286, 2283, 2290, 2295, 2295, 2296, - 2297, 2291, 2297, 2301, 2298, 2289, 2292, 2298, 2296, 2293, - 2300, 2304, 2302, 2303, 2305, 2301, 2300, 2302, 2303, 2294, - 2306, 2307, 2298, 2308, 2298, 2310, 2307, 2305, 2311, 2312, - 2310, 2313, 2314, 2311, 2315, 2316, 2304, 2313, 2314, 2317, + 2261, 2263, 2263, 2265, 2266, 2267, 2256, 2268, 2272, 2270, + 2258, 2260, 2265, 2264, 2270, 2271, 2271, 2273, 2273, 2267, + 2274, 2266, 2275, 2277, 2277, 2279, 2268, 2272, 2275, 2276, + 2278, 2278, 2276, 2280, 2281, 2283, 2281, 2284, 2274, 2277, + 2285, 2285, 2287, 2288, 2279, 2289, 2292, 2290, 2280, 2293, + 2283, 2290, 2291, 2291, 2293, 2294, 2284, 2295, 2297, 2297, + 2289, 2298, 2287, 2300, 2299, 2292, 2288, 2301, 2302, 2303, + 2294, 2299, 2295, 2304, 2304, 2305, 2306, 2300, 2306, 2307, + 2310, 2298, 2307, 2309, 2305, 2301, 2302, 2313, 2311, 2309, + 2314, 2312, 2310, 2311, 2315, 2303, 2312, 2307, 2317, 2307, - 2320, 2306, 2318, 2319, 2312, 2317, 2321, 2318, 2319, 2308, - 2316, 2322, 2323, 2324, 2322, 2315, 2327, 2325, 2326, 2321, - 2330, 2323, 2324, 2328, 2330, 2320, 2325, 2326, 2329, 2328, - 2327, 2332, 2334, 2336, 2329, 2335, 2335, 2337, 2337, 2336, - 2338, 2334, 2339, 2339, 2341, 2340, 2337, 2343, 2347, 2338, - 2340, 2332, 2344, 2345, 2345, 2346, 2350, 2347, 2351, 2349, - 2355, 2356, 2352, 2343, 2341, 2355, 2341, 2357, 2344, 2499, - 2346, 2349, 2350, 2351, 2352, 2354, 2358, 2358, 2354, 2357, - 2499, 2356, 2359, 2359, 2361, 2361, 2362, 2363, 2364, 2362, - 2365, 2366, 2363, 2368, 2364, 2371, 2365, 2367, 2367, 2370, + 2316, 2319, 2320, 2314, 2321, 2316, 2319, 2320, 2322, 2324, + 2323, 2325, 2313, 2327, 2322, 2315, 2323, 2326, 2327, 2321, + 2328, 2329, 2330, 2326, 2317, 2328, 2325, 2332, 2331, 2333, + 2324, 2331, 2334, 2335, 2336, 2330, 2332, 2337, 2333, 2338, + 2339, 2334, 2335, 2337, 2339, 2338, 2329, 2341, 2336, 2343, + 2344, 2345, 2345, 2348, 2346, 2347, 2347, 2349, 2349, 2344, + 2346, 2350, 2348, 2351, 2347, 2353, 2350, 2341, 2354, 2343, + 2355, 2355, 2356, 2357, 2359, 2360, 2362, 2361, 2366, 2368, + 2368, 2353, 2357, 2351, 2354, 2351, 2359, 2356, 2362, 2365, + 2364, 2360, 2361, 2364, 2365, 2367, 2369, 2369, 2366, 2371, - 2366, 2369, 2369, 2372, 2373, 2373, 2374, 2368, 2376, 2371, - 2375, 2370, 2374, 2376, 2378, 2384, 2379, 2382, 2378, 2379, - 2380, 2380, 2372, 2381, 2375, 2383, 2382, 2385, 2381, 2386, - 2386, 2385, 2387, 2389, 2383, 2384, 2390, 2391, 2389, 2392, - 2393, 2394, 2395, 2396, 2393, 2387, 2397, 2395, 2398, 2396, - 2399, 2400, 2397, 2392, 2401, 2402, 2390, 2391, 2405, 2401, - 2404, 2394, 2406, 2414, 2414, 2407, 2398, 2406, 2413, 2399, - 2400, 2407, 2404, 2408, 2405, 2409, 2402, 2409, 2411, 2416, - 2415, 2408, 2413, 2415, 2417, 2417, 2420, 2411, 2421, 2422, - 2420, 2423, 2423, 2424, 2421, 2427, 2427, 2429, 2431, 2435, + 2371, 2372, 2378, 2373, 2372, 2374, 2375, 2367, 2373, 2376, + 2380, 2374, 2375, 2377, 2377, 2381, 2378, 2382, 2376, 2379, + 2379, 2384, 2380, 2383, 2383, 2385, 2386, 2384, 2388, 2381, + 2389, 2386, 2388, 2389, 2390, 2390, 2382, 2391, 2392, 2385, + 2393, 2394, 2391, 2397, 2395, 2396, 2396, 2392, 2395, 2393, + 2399, 2400, 2401, 2402, 2403, 2399, 2397, 2404, 2403, 2405, + 2406, 2394, 2407, 2408, 2405, 2409, 2406, 2402, 2407, 2410, + 2411, 2400, 2401, 2412, 2414, 2411, 2415, 2404, 2416, 2417, + 2426, 2408, 2418, 2416, 2409, 2417, 2414, 2419, 2410, 2419, + 2418, 2421, 2415, 2423, 2412, 2424, 2424, 2432, 2425, 2431, - 2432, 2422, 2424, 2436, 2435, 2416, 2437, 2446, 2438, 2439, - 2440, 2440, 2431, 2438, 2439, 2429, 2432, 2442, 2442, 2444, - 2445, 2445, 2447, 2446, 2450, 2444, 2448, 2437, 2452, 2436, - 2451, 2448, 2456, 2451, 2453, 2454, 2454, 2458, 2459, 2457, - 2452, 2456, 2463, 2450, 2447, 2457, 2453, 2461, 2461, 2462, - 2464, 2469, 2462, 2459, 2470, 2458, 2466, 2466, 2467, 2467, - 2468, 2463, 2471, 2470, 2472, 2468, 2472, 2471, 2464, 2469, - 2473, 2474, 2476, 2477, 2475, 2478, 2479, 2476, 2480, 2480, - 2484, 2479, 2481, 2481, 2473, 2474, 2475, 2482, 2482, 2483, - 2483, 2485, 2484, 2477, 2486, 2478, 2487, 2487, 2489, 2486, + 2421, 2425, 2427, 2427, 2430, 2431, 2426, 2423, 2430, 2432, + 2433, 2433, 2434, 2437, 2437, 2439, 2441, 2445, 2442, 2446, + 2447, 2434, 2445, 2448, 2449, 2450, 2450, 2456, 2448, 2449, + 2441, 2452, 2452, 2439, 2442, 2457, 2454, 2455, 2455, 2458, + 2460, 2447, 2454, 2456, 2458, 2446, 2461, 2466, 2462, 2461, + 2463, 2464, 2464, 2468, 2469, 2467, 2466, 2457, 2473, 2460, + 2462, 2467, 2463, 2471, 2471, 2472, 2474, 2479, 2472, 2469, + 2480, 2468, 2476, 2476, 2477, 2477, 2478, 2473, 2481, 2480, + 2482, 2478, 2482, 2481, 2474, 2479, 2483, 2484, 2486, 2487, + 2485, 2488, 2489, 2486, 2490, 2490, 2494, 2489, 2491, 2491, - 2488, 2488, 2490, 2491, 2492, 2493, 2496, 2494, 2500, 2485, - 2489, 2495, 2495, 2497, 2497, 2491, 2498, 2498, 2502, 2503, - 2500, 2501, 2490, 2494, 2492, 2496, 2493, 2504, 2501, 2505, - 2502, 2506, 2504, 2507, 2507, 2508, 2509, 2510, 2513, 2503, - 2511, 2514, 2516, 2515, 2508, 2515, 2517, 2517, 2522, 2505, - 2518, 2506, 2513, 2511, 2516, 2519, 2520, 2510, 2523, 2518, - 2524, 2525, 2509, 2514, 2525, 2526, 2522, 2527, 2528, 0, - 2519, 2520, 2527, 2528, 2529, 2529, 2530, 2530, 2536, 2526, - 2523, 2531, 2531, 2524, 2533, 2533, 2535, 2535, 2537, 2538, - 2539, 2541, 2542, 2543, 2544, 2545, 2536, 2546, 2547, 2537, + 2483, 2484, 2485, 2492, 2492, 2493, 2493, 2495, 2494, 2487, + 2496, 2488, 2497, 2497, 2499, 2496, 2498, 2498, 2500, 2501, + 2502, 2503, 2506, 2504, 2509, 2495, 2499, 2505, 2505, 2507, + 2507, 2501, 2508, 2508, 2510, 2509, 2511, 2512, 2500, 2504, + 2502, 2506, 2503, 2511, 2513, 2514, 2510, 2515, 2516, 2512, + 2514, 2517, 2517, 2518, 2519, 2519, 2520, 2521, 2522, 2523, + 2524, 2527, 2518, 2525, 2513, 2528, 2528, 2515, 2516, 2529, + 2526, 2522, 2526, 2527, 2524, 2530, 2531, 2521, 2529, 2533, + 2534, 2535, 2520, 2523, 2536, 2525, 2537, 2536, 2538, 2539, + 2530, 2531, 2548, 2538, 2539, 2540, 2540, 2533, 2541, 2541, - 2547, 2548, 2549, 2555, 2545, 2539, 2550, 2556, 2538, 2554, - 2542, 2541, 2551, 2551, 2544, 2543, 2556, 2546, 2553, 2553, - 2549, 2548, 2559, 2554, 2550, 2555, 2557, 2557, 2560, 2560, - 2561, 2559, 2562, 2563, 2564, 2565, 2566, 2568, 2571, 2567, - 2563, 2569, 2569, 2570, 2570, 2572, 2573, 2577, 2561, 2564, - 2562, 2576, 2573, 2565, 2566, 2567, 2568, 2576, 2571, 2574, - 2574, 2575, 2575, 2572, 2578, 2577, 2579, 2580, 2581, 2582, - 2583, 2584, 2585, 2581, 2585, 2590, 2584, 2586, 2586, 2578, - 2587, 2580, 2587, 2588, 2588, 2579, 2592, 2593, 2594, 2582, - 2583, 2595, 2596, 2597, 2590, 2592, 2598, 2596, 2597, 2599, + 2537, 2547, 2534, 2548, 2535, 2542, 2542, 2544, 2544, 2546, + 2546, 2549, 2550, 2552, 2553, 2554, 2555, 2556, 2557, 2547, + 2558, 2559, 2558, 0, 2560, 2561, 2556, 2550, 2562, 2562, + 2549, 2565, 2553, 2552, 2564, 2564, 2555, 2554, 2557, 2566, + 2567, 2559, 2560, 2561, 2570, 2565, 2568, 2568, 2572, 2567, + 2571, 2571, 2573, 2570, 2575, 2574, 2576, 2577, 2579, 2582, + 2578, 2566, 2574, 2580, 2580, 2583, 2572, 2581, 2581, 2575, + 2573, 2588, 2584, 2590, 2576, 2577, 2578, 2579, 2584, 2582, + 2585, 2585, 2587, 2583, 2586, 2586, 2589, 2593, 2587, 2588, + 2591, 2592, 2590, 2594, 2595, 2596, 2592, 2596, 2598, 2595, - 2594, 2602, 2603, 2604, 2604, 2603, 2593, 2605, 2606, 2607, - 2607, 2595, 2608, 2609, 2612, 2610, 2598, 2617, 2599, 2610, - 2613, 2602, 2605, 2608, 2613, 2615, 2606, 2618, 2609, 2612, - 2614, 2614, 2617, 2619, 2620, 2620, 2622, 2623, 2615, 2624, - 2625, 2625, 2626, 2624, 2627, 2627, 2623, 2618, 2622, 2628, - 2629, 2630, 2631, 2619, 2628, 2632, 2633, 2633, 2639, 2629, - 2641, 2626, 2638, 2638, 2631, 2640, 2640, 2630, 2642, 2643, - 2644, 2646, 2646, 2641, 2645, 2632, 2647, 2648, 2643, 2644, - 2639, 2642, 2653, 2645, 2650, 2650, 2654, 2653, 2655, 2656, - 2657, 2654, 2648, 2658, 2656, 2659, 2647, 2660, 2657, 2662, + 2598, 2589, 2597, 2597, 2591, 2599, 2599, 2593, 2601, 2603, + 2604, 2605, 2606, 2594, 2607, 2608, 2609, 2613, 2603, 2607, + 2608, 2610, 2614, 2605, 2616, 2614, 2617, 2601, 2620, 2604, + 2615, 2615, 2606, 2618, 2618, 2619, 2609, 2613, 2621, 2616, + 2610, 2623, 2621, 2620, 2617, 2624, 2619, 2625, 2625, 2624, + 2626, 2628, 2629, 2630, 2631, 2631, 2623, 2633, 2634, 2637, + 2635, 2636, 2636, 2626, 2635, 2641, 2628, 2634, 2640, 2633, + 2638, 2638, 2629, 2630, 2639, 2642, 2643, 2640, 2637, 2639, + 2650, 2641, 2644, 2644, 2649, 2649, 2652, 2642, 2651, 2651, + 2653, 2654, 2655, 2657, 2657, 2656, 2643, 2658, 2659, 2652, - 2665, 2663, 2655, 2664, 2659, 2660, 2663, 2669, 2664, 2666, - 2666, 2673, 2658, 2668, 2662, 2665, 2667, 2667, 2668, 2670, - 2670, 2671, 2672, 2674, 2675, 2678, 2669, 2672, 2671, 2673, - 2675, 2676, 2677, 2677, 2679, 2684, 2676, 2680, 2680, 2679, - 2678, 2674, 2681, 2681, 2685, 2685, 2686, 2687, 2684, 2686, - 2688, 2689, 2687, 2687, 2690, 2688, 2689, 2691, 2692, 2693, - 2694, 2695, 2692, 2691, 2693, 2696, 2697, 2701, 2690, 2694, - 2700, 2698, 2699, 2696, 2703, 2700, 2695, 2698, 2699, 2701, - 2704, 2703, 2707, 2705, 2709, 2704, 2705, 2697, 2710, 2709, - 2711, 2712, 2713, 2710, 2707, 2719, 2714, 2715, 2715, 2724, + 2654, 2655, 2650, 2653, 2656, 2661, 2661, 2664, 2666, 2665, + 2667, 2668, 2664, 2659, 2665, 2667, 2669, 2658, 2670, 2668, + 2671, 2673, 2666, 2677, 2675, 2676, 2681, 2670, 2671, 2675, + 2676, 2678, 2678, 2679, 2679, 2669, 2673, 2680, 2677, 2682, + 2682, 2683, 2680, 2685, 2684, 2681, 2686, 2687, 2683, 2684, + 2688, 2689, 2689, 2687, 2690, 2688, 2715, 2691, 2692, 2692, + 2696, 2685, 2691, 2715, 2686, 2693, 2693, 2697, 2697, 2690, + 2699, 2698, 2700, 2696, 2698, 2699, 2699, 2700, 2701, 2702, + 2703, 2704, 2705, 2701, 2707, 2704, 2703, 2705, 2706, 2709, + 2708, 2712, 2713, 2702, 2710, 2711, 2712, 2706, 2708, 2707, - 2716, 2713, 2725, 0, 2712, 2714, 2720, 2726, 2711, 2716, - 2721, 2729, 2720, 2719, 2727, 2727, 2721, 2728, 2724, 2730, - 2731, 2733, 2725, 2735, 2728, 2737, 2726, 2740, 2730, 2738, - 2729, 2732, 2732, 2738, 0, 2731, 2739, 2739, 2735, 2743, - 2733, 2741, 2742, 2744, 0, 2737, 2746, 2741, 2742, 2744, - 2745, 2745, 2740, 2747, 2746, 2749, 2750, 2743, 2747, 2752, - 2753, 2755, 2754, 2753, 2749, 2752, 2754, 2756, 2759, 2750, - 2758, 2758, 2760, 2760, 2769, 2755, 2761, 2761, 2763, 2763, - 2764, 2771, 2756, 2765, 2764, 2775, 2759, 2770, 2765, 2767, - 2767, 2772, 2770, 2771, 2769, 2773, 2772, 2772, 2776, 2776, + 2710, 2711, 2716, 2717, 2713, 2719, 2717, 2716, 2721, 2722, + 2709, 2723, 2724, 2721, 2722, 2725, 2731, 2719, 2726, 2727, + 2727, 2728, 2732, 2736, 2725, 2724, 2733, 2726, 2732, 2723, + 2728, 2737, 2733, 2738, 2731, 2739, 2739, 2740, 2741, 2742, + 2743, 2745, 2736, 2747, 2740, 2744, 2744, 2749, 2742, 2750, + 2752, 2737, 2738, 2750, 2755, 2743, 0, 2741, 2747, 2753, + 2745, 2751, 2751, 2754, 2756, 2753, 2759, 2749, 2758, 2754, + 2756, 2759, 2755, 2757, 2757, 2752, 2758, 2761, 2762, 2764, + 2765, 2767, 2768, 2765, 2766, 2764, 2761, 2771, 2766, 2770, + 2770, 2762, 2772, 2772, 2781, 2767, 0, 2768, 2773, 2773, - 2778, 2778, 2779, 2779, 2781, 2775, 2780, 2773, 2782, 2780, - 2784, 2784, 2785, 2787, 2788, 2788, 2791, 2781, 2789, 2789, - 2794, 2782, 2790, 2790, 2792, 2792, 2793, 2795, 2796, 2805, - 2785, 2791, 2810, 2787, 2796, 2797, 2797, 2801, 2794, 2793, - 2798, 2795, 2802, 2801, 2798, 2804, 2806, 2802, 2807, 2808, - 2804, 2804, 2805, 2809, 2811, 2808, 2817, 2810, 2811, 2809, - 2812, 2812, 2815, 2820, 2817, 2823, 2806, 2815, 2807, 2818, - 2821, 2824, 2818, 2821, 2822, 2822, 2824, 2825, 2826, 2827, - 2828, 2828, 2823, 2823, 2832, 2829, 2830, 2831, 2820, 2830, - 2837, 2837, 2833, 2827, 2836, 2825, 2845, 2830, 2826, 2829, + 2775, 2775, 2776, 2777, 2783, 2771, 2776, 2782, 2777, 2779, + 2779, 2785, 2782, 2784, 2781, 2787, 2783, 2793, 2784, 2784, + 2788, 2788, 2797, 2785, 2790, 2790, 2791, 2791, 2792, 2794, + 2793, 2792, 2796, 2796, 2799, 2787, 2800, 2800, 2801, 2801, + 2797, 2803, 2794, 2802, 2802, 2804, 2804, 2805, 2806, 2807, + 2817, 2808, 2809, 2809, 2799, 2810, 2803, 2808, 2813, 2810, + 2805, 2818, 2814, 2807, 2813, 2816, 2806, 2814, 2819, 2820, + 2816, 2816, 2821, 2817, 2822, 2820, 2823, 2829, 2821, 2827, + 2823, 2818, 2824, 2824, 2827, 2829, 2830, 2832, 2819, 2830, + 2833, 2834, 2834, 2833, 2839, 2836, 2835, 2837, 2838, 2822, - 2833, 2831, 2834, 2832, 2835, 2838, 2838, 2834, 2834, 2835, - 2835, 2839, 2839, 2836, 2840, 2840, 2841, 2841, 2842, 2843, - 2844, 2846, 2845, 2847, 2843, 2848, 2846, 2849, 2850, 2851, - 2848, 2853, 2853, 2856, 2842, 2871, 2849, 2854, 2854, 2871, - 2844, 2855, 2847, 2859, 2855, 2858, 2858, 2869, 2850, 2851, - 2859, 2856, 2860, 2860, 2861, 2863, 2863, 2864, 2865, 2861, - 2866, 2867, 2870, 2870, 2872, 2869, 2864, 2865, 2873, 2866, - 2867, 2874, 2876, 2872, 2875, 2877, 2878, 2876, 2876, 2879, - 2887, 2883, 2874, 2879, 2888, 2878, 2883, 2873, 2877, 2875, - 2884, 2884, 2886, 2886, 2887, 2889, 2891, 2891, 2892, 2893, + 2836, 2840, 2840, 2841, 2844, 2846, 2843, 2848, 2839, 2887, + 2846, 2846, 2832, 2835, 2835, 2837, 2842, 2841, 2838, 2842, + 2843, 2845, 2857, 2844, 2887, 2847, 2848, 2842, 2854, 2845, + 2847, 2847, 2849, 2849, 2850, 2850, 2851, 2851, 2852, 2852, + 2853, 2853, 2855, 2856, 2854, 2858, 2859, 2855, 2857, 2860, + 2858, 2861, 2862, 2863, 2860, 2865, 2865, 2866, 2866, 2867, + 2861, 2868, 2867, 2856, 2871, 2859, 2870, 2870, 2872, 2872, + 2873, 2871, 2862, 2863, 2876, 2873, 2875, 2875, 2877, 2868, + 2878, 2879, 2881, 2876, 2882, 2882, 2884, 2877, 2883, 2878, + 2879, 2885, 2883, 2886, 2889, 2884, 2888, 2890, 2900, 2891, - 2896, 2897, 2900, 2898, 2901, 2903, 2897, 2892, 2905, 2888, - 2901, 2893, 2898, 2889, 2907, 2908, 2912, 2903, 2910, 2907, - 2908, 2912, 2900, 2909, 2909, 2896, 2913, 2910, 2914, 2905, - 2915, 2915, 2917, 2917, 2915, 2918, 2918, 2919, 2919, 2913, - 2920, 2921, 2914, 2922, 0, 2923, 2925, 2929, 2926, 2920, - 2923, 2927, 2925, 2926, 2928, 2928, 2927, 2930, 2931, 2932, - 2933, 2921, 2922, 2935, 2932, 2929, 2934, 2936, 2936, 2930, - 2938, 2939, 2934, 2942, 2938, 2940, 2939, 2946, 2933, 2931, - 2940, 2941, 2941, 2943, 2944, 2948, 2948, 2950, 2935, 2951, - 2952, 2954, 2942, 2955, 2952, 2953, 2960, 2946, 2943, 2944, + 2881, 2888, 2888, 2891, 2886, 2899, 2890, 2889, 2895, 2901, + 2885, 2896, 2896, 2895, 2898, 2898, 2903, 2903, 2905, 2899, + 2904, 2908, 2912, 2900, 2910, 2915, 2909, 2901, 2913, 2904, + 2905, 2909, 2917, 2910, 2913, 2919, 2920, 2915, 2921, 2921, + 2919, 2920, 2912, 2922, 2924, 2925, 2908, 2926, 2932, 2924, + 2927, 2927, 2922, 2917, 2927, 2929, 2929, 2932, 2925, 2930, + 2930, 2926, 2931, 2931, 2933, 2935, 2934, 2937, 2941, 2938, + 2935, 2939, 2943, 2937, 2938, 2942, 2939, 2940, 2940, 2945, + 2947, 2948, 2948, 2944, 2933, 2934, 2941, 2942, 2944, 2946, + 2950, 2951, 2954, 2943, 2950, 2946, 2951, 2945, 2952, 2953, - 2950, 2956, 2951, 2957, 2953, 2958, 2958, 2954, 2957, 2956, - 2959, 2961, 2955, 2963, 2960, 2962, 2962, 2966, 2966, 2959, - 2967, 2967, 2969, 2971, 2971, 2973, 2974, 2980, 2975, 2976, - 2977, 2981, 2963, 2975, 2983, 2977, 2984, 2961, 2979, 2979, - 2981, 2973, 2974, 2969, 2982, 2976, 2987, 2980, 2986, 2986, - 2982, 2988, 2989, 2989, 2992, 2984, 2993, 2983, 2994, 2996, - 2987, 2999, 2993, 2994, 2997, 2997, 2998, 2998, 3000, 3002, - 2988, 3001, 3001, 3003, 2992, 3004, 2999, 3005, 3006, 3008, - 3002, 2996, 3003, 3005, 3007, 3009, 3009, 3010, 3000, 3011, - 3012, 3001, 3011, 3012, 3017, 3004, 3007, 3006, 3018, 3008, + 2953, 2955, 2956, 2952, 2958, 2947, 2960, 2960, 2962, 2963, + 2964, 2954, 2966, 2967, 2964, 2968, 2955, 2956, 2965, 2972, + 2969, 2962, 2963, 2968, 2958, 2969, 2971, 2965, 2966, 2970, + 2970, 2973, 2967, 2974, 2974, 2971, 2975, 2972, 2978, 2978, + 2979, 2979, 2981, 2983, 2983, 2985, 2986, 2987, 2988, 2989, + 2991, 2991, 2987, 2992, 2989, 2975, 2993, 2973, 2995, 2996, + 2994, 2985, 2986, 2981, 2988, 2993, 2994, 2998, 2998, 2999, + 3000, 3001, 3001, 2992, 3004, 3006, 3005, 3008, 2996, 3018, + 3006, 2995, 3005, 2999, 3009, 3009, 3010, 3010, 3011, 3000, + 3012, 3013, 3013, 3014, 3004, 3016, 3015, 3019, 3018, 3008, - 3013, 3013, 3010, 3019, 3020, 3020, 3017, 3021, 3022, 3019, - 3021, 3023, 3025, 3028, 3022, 3026, 3026, 3025, 3018, 3027, - 3029, 3030, 3031, 3031, 3027, 3033, 3029, 3034, 3035, 3023, - 3036, 3038, 3028, 3037, 3037, 3039, 0, 3033, 3030, 3030, - 3040, 3042, 3042, 3036, 3045, 3034, 3043, 3043, 3051, 3040, - 3038, 3039, 3044, 3035, 3046, 3047, 3047, 3044, 3045, 3046, - 3048, 3048, 3049, 3049, 3050, 3052, 3058, 3053, 3055, 3055, - 3060, 3052, 3053, 3061, 3051, 3062, 3063, 3050, 3064, 3064, - 3066, 3066, 3067, 3068, 3070, 3058, 3069, 3071, 3072, 3072, - 3073, 3073, 3060, 3075, 3062, 3061, 3071, 3076, 3063, 3075, + 3017, 3020, 3022, 3011, 3014, 3015, 3017, 3021, 3021, 3019, + 3012, 3013, 3030, 3023, 3029, 3016, 3023, 3022, 3035, 3024, + 0, 3020, 3024, 3025, 3025, 3031, 3029, 3032, 3032, 3034, + 3033, 3031, 3030, 3033, 3037, 3034, 3035, 3038, 3038, 3037, + 3039, 3040, 3041, 3045, 3042, 3039, 3043, 3043, 3041, 3046, + 3047, 3048, 3049, 3049, 3050, 3045, 3051, 3052, 3054, 3054, + 3040, 3042, 3042, 3057, 3048, 3056, 3052, 3046, 3055, 3055, + 3056, 3058, 3051, 3050, 3062, 3047, 3058, 3057, 3059, 3059, + 3060, 3060, 3061, 3061, 3063, 3064, 3070, 3062, 3065, 3067, + 3067, 3064, 3072, 3065, 3073, 3075, 3074, 3076, 3076, 3078, - 3069, 3077, 3068, 3081, 3070, 3078, 3082, 3082, 3067, 3085, - 3078, 3084, 3084, 3086, 3085, 3087, 3088, 3076, 3089, 3095, - 3077, 3087, 3090, 3090, 3081, 3091, 3089, 3086, 3088, 3093, - 3091, 3094, 3096, 3093, 3098, 3097, 3094, 3099, 3102, 3095, - 3097, 3101, 3103, 3099, 3104, 3106, 3098, 3113, 0, 3101, - 3107, 3108, 3096, 3109, 3110, 3112, 3115, 3102, 3117, 3110, - 3112, 3115, 3103, 3106, 3104, 3114, 3107, 3113, 3108, 3108, - 3118, 3114, 3119, 3118, 3109, 3122, 3122, 3124, 3117, 3123, - 3123, 3124, 3128, 3128, 3129, 3119, 3130, 3131, 3131, 3129, - 3133, 3133, 3134, 3134, 3138, 3134, 3135, 3135, 3138, 3135, + 3078, 3079, 3080, 3082, 3081, 3070, 3084, 3084, 3085, 3085, + 3063, 3083, 3088, 3087, 3072, 3074, 3073, 3075, 3081, 3087, + 3083, 3080, 3089, 3082, 3090, 3093, 3100, 3079, 3098, 3090, + 3094, 3094, 3088, 3096, 3096, 3097, 3101, 3099, 3100, 3107, + 3097, 3089, 3098, 3099, 3101, 3103, 3093, 3102, 3102, 3105, + 3103, 3106, 3108, 3105, 3110, 3109, 3106, 3111, 3114, 3107, + 3109, 3113, 3115, 3111, 3116, 3118, 3110, 3125, 0, 3113, + 3119, 3120, 3108, 3121, 3122, 3124, 3127, 3114, 3129, 3122, + 3124, 3127, 3115, 3118, 3116, 3126, 3119, 3125, 3120, 3120, + 3130, 3126, 3131, 3130, 3121, 3134, 3134, 3136, 3129, 3135, - 3136, 3136, 3140, 3137, 3137, 3130, 3137, 3140, 3141, 3142, - 3142, 3143, 3144, 3147, 3148, 3149, 3151, 3141, 3150, 3150, - 3149, 3154, 3157, 3155, 3156, 3158, 3144, 3160, 3156, 3143, - 3155, 3157, 3161, 3147, 3148, 3163, 3151, 3161, 3162, 3162, - 3158, 3164, 3164, 3167, 3163, 3160, 3154, 3165, 3165, 3166, - 3166, 3168, 3169, 3172, 3170, 3173, 3168, 3171, 3167, 3170, - 3170, 3169, 3174, 3171, 3169, 3177, 3175, 3176, 3178, 3178, - 3173, 3175, 3176, 3179, 3180, 3181, 3181, 3183, 3172, 3179, - 3180, 3182, 3182, 3174, 3177, 3184, 3187, 3187, 3189, 3189, - 3184, 3190, 3183, 3193, 3193, 3194, 3194, 3195, 3195, 3202, + 3135, 3136, 3140, 3140, 3141, 3131, 3142, 3143, 3143, 3141, + 3145, 3145, 3146, 3146, 3150, 3146, 3147, 3147, 3150, 3147, + 3148, 3148, 3152, 3149, 3149, 3142, 3149, 3152, 3153, 3154, + 3154, 3155, 3156, 3159, 3160, 3161, 3163, 3153, 3162, 3162, + 3161, 3166, 3169, 3167, 3168, 3170, 3156, 3172, 3168, 3155, + 3167, 3169, 3173, 3159, 3160, 3175, 3163, 3173, 3174, 3174, + 3170, 3176, 3176, 3179, 3175, 3172, 3166, 3177, 3177, 3178, + 3178, 3180, 3181, 3184, 3182, 3185, 3180, 3183, 3179, 3182, + 3182, 3181, 3186, 3183, 3181, 3189, 3187, 3188, 3190, 3190, + 3185, 3187, 3188, 3191, 3192, 3193, 3193, 3195, 3184, 3191, - 3190, 3196, 3196, 3198, 3198, 3199, 3199, 3200, 3200, 3201, - 3201, 3204, 3205, 3205, 3206, 3207, 3208, 3210, 3210, 3211, - 3204, 3212, 3212, 3206, 3213, 3202, 3225, 3207, 3214, 3219, - 3215, 3216, 3216, 3217, 3217, 3223, 3208, 3224, 3211, 3213, - 3224, 3214, 3215, 3227, 3219, 3220, 3220, 3226, 3226, 3230, - 3231, 3229, 3225, 3223, 3229, 3230, 3233, 3232, 3234, 3237, - 3238, 3227, 3232, 3235, 3231, 3237, 3241, 3242, 3245, 3238, - 3241, 3255, 3254, 3257, 3255, 3233, 3234, 3254, 3263, 3235, - 3258, 3258, 3242, 3259, 3259, 3266, 3257, 3261, 3261, 3264, - 3268, 3265, 3270, 3277, 3245, 3265, 3271, 3272, 3264, 3274, + 3192, 3194, 3194, 3186, 3189, 3196, 3199, 3199, 3201, 3201, + 3196, 3202, 3195, 3205, 3205, 3206, 3206, 3207, 3207, 3214, + 3202, 3208, 3208, 3210, 3210, 3211, 3211, 3212, 3212, 3213, + 3213, 3216, 3217, 3217, 3218, 3219, 3220, 3222, 3222, 3223, + 3216, 3224, 3224, 3218, 3225, 3214, 3237, 3219, 3226, 3231, + 3227, 3228, 3228, 3229, 3229, 3235, 3220, 3236, 3223, 3225, + 3236, 3226, 3227, 3239, 3231, 3232, 3232, 3238, 3238, 3242, + 3243, 3241, 3237, 3235, 3241, 3242, 3245, 3244, 3246, 3249, + 3250, 3239, 3244, 3247, 3243, 3249, 3253, 3254, 3257, 3250, + 3253, 3267, 3266, 3269, 3267, 3245, 3246, 3266, 3275, 3247, - 3276, 3263, 3272, 3278, 3268, 3266, 3273, 3271, 3273, 3275, - 3275, 3279, 3277, 3276, 3274, 3270, 3280, 3281, 3283, 3282, - 3284, 3278, 3285, 3293, 3286, 3284, 3288, 3279, 3282, 3286, - 3283, 3289, 3281, 3287, 3287, 3294, 3289, 3293, 3295, 3295, - 3296, 3280, 3301, 3285, 3297, 3297, 3288, 3298, 3298, 3296, - 3299, 3299, 3300, 3300, 3302, 3294, 3303, 3304, 3305, 3303, - 3306, 3301, 3304, 3305, 3307, 3308, 3309, 3311, 3313, 3310, - 3318, 3308, 3311, 3323, 3302, 3312, 3312, 3314, 3314, 3307, - 3309, 3310, 3316, 3316, 3317, 3306, 3319, 3319, 3313, 3318, - 3321, 3323, 3326, 3326, 3327, 3327, 3328, 3329, 3332, 3317, + 3270, 3270, 3254, 3271, 3271, 3278, 3269, 3273, 3273, 3276, + 3280, 3277, 3282, 3289, 3257, 3277, 3283, 3284, 3276, 3286, + 3288, 3275, 3284, 3290, 3280, 3278, 3285, 3283, 3285, 3287, + 3287, 3291, 3289, 3288, 3286, 3282, 3292, 3293, 3295, 3294, + 3296, 3290, 3297, 3305, 3298, 3296, 3300, 3291, 3294, 3298, + 3295, 3301, 3293, 3299, 3299, 3306, 3301, 3305, 3307, 3307, + 3308, 3292, 3313, 3297, 3309, 3309, 3300, 3310, 3310, 3308, + 3311, 3311, 3312, 3312, 3314, 3306, 3315, 3316, 3317, 3315, + 3318, 3313, 3316, 3317, 3319, 3320, 3321, 3323, 3325, 3322, + 3330, 3320, 3323, 3335, 3314, 3324, 3324, 3326, 3326, 3319, - 3330, 3331, 3333, 3334, 3328, 3321, 3330, 3331, 3335, 3336, - 3336, 3341, 3332, 3335, 3342, 3333, 3329, 3338, 3338, 3344, - 3345, 3347, 3334, 3348, 3345, 3349, 3350, 3351, 3348, 3352, - 3353, 3354, 3341, 3344, 3342, 3353, 3354, 3355, 3355, 3350, - 3351, 3347, 3358, 3359, 3349, 3360, 3361, 3361, 3352, 3362, - 3363, 3364, 3364, 3365, 3362, 3366, 3363, 3368, 3365, 3369, - 3366, 3359, 3358, 3367, 3360, 3369, 3371, 3371, 3367, 3372, - 3373, 3373, 3376, 3375, 3372, 3377, 3368, 3375, 3378, 3379, - 3380, 3381, 3377, 3382, 3384, 3384, 3380, 3386, 3386, 3388, - 3387, 3376, 3389, 3390, 3388, 3391, 3382, 3378, 3379, 3387, + 3321, 3322, 3328, 3328, 3329, 3318, 3331, 3331, 3325, 3330, + 3333, 3335, 3338, 3338, 3339, 3339, 3340, 3341, 3344, 3329, + 3342, 3343, 3345, 3346, 3340, 3333, 3342, 3343, 3347, 3348, + 3348, 3353, 3344, 3347, 3354, 3345, 3341, 3350, 3350, 3356, + 3357, 3359, 3346, 3360, 3357, 3361, 3362, 3363, 3360, 3364, + 3365, 3366, 3353, 3356, 3354, 3365, 3366, 3367, 3367, 3362, + 3363, 3359, 3370, 3371, 3361, 3372, 3373, 3373, 3364, 3374, + 3375, 3376, 3376, 3377, 3374, 3378, 3375, 3380, 3377, 3381, + 3378, 3371, 3370, 3379, 3372, 3381, 3383, 3383, 3379, 3384, + 3385, 3385, 3388, 3387, 3384, 3389, 3380, 3387, 3390, 3391, - 3381, 3393, 3387, 3392, 3392, 3394, 3393, 3396, 3391, 3397, - 3397, 3389, 3390, 3398, 3399, 3399, 3400, 3400, 3394, 3401, - 3402, 3403, 3404, 3404, 3401, 3405, 3406, 3402, 3406, 3408, - 3405, 3409, 3398, 3396, 3407, 3407, 3408, 3410, 3409, 3411, - 3403, 3412, 3414, 3414, 3411, 3415, 3417, 3418, 3419, 3420, - 3424, 3417, 3418, 3421, 3421, 3425, 3410, 3423, 3423, 0, - 3412, 3426, 3426, 3428, 3415, 3427, 3427, 3419, 3420, 3424, - 3428, 3430, 3430, 3432, 3425, 3431, 3431, 3434, 3437, 3438, - 3432, 3439, 3434, 3437, 3440, 3440, 3441, 3441, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3438, 0, + 3392, 3393, 3389, 3394, 3396, 3396, 3392, 3398, 3398, 3400, + 3399, 3388, 3401, 3402, 3400, 3403, 3394, 3390, 3391, 3399, + 3393, 3405, 3399, 3404, 3404, 3406, 3405, 3408, 3403, 3409, + 3409, 3401, 3402, 3410, 3411, 3411, 3412, 3412, 3406, 3413, + 3414, 3415, 3416, 3416, 3413, 3417, 3418, 3414, 3418, 3420, + 3417, 3421, 3410, 3408, 3419, 3419, 3420, 3422, 3421, 3423, + 3415, 3424, 3426, 3426, 3423, 3427, 3429, 3430, 3431, 3432, + 3436, 3429, 3430, 3433, 3433, 3437, 3422, 3435, 3435, 0, + 3424, 3438, 3438, 3440, 3427, 3439, 3439, 3431, 3432, 3436, + 3440, 3442, 3442, 3444, 3437, 3443, 3443, 3446, 3449, 3450, - 3439, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446, 3446, - 3446, 3446, 3446, 3446, 3446, 3447, 3447, 3447, 3447, 3447, - 3447, 3447, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3449, - 3449, 3449, 3449, 3449, 3449, 3449, 3450, 3450, 3450, 3450, - 3450, 3450, 3450, 3451, 3451, 3451, 3451, 3451, 3451, 3451, - 3453, 3453, 0, 3453, 3453, 3453, 3453, 3454, 3454, 0, - 0, 0, 3454, 3454, 3455, 3455, 0, 0, 3455, 0, - 3455, 3456, 0, 0, 0, 0, 0, 3456, 3457, 3457, - 0, 0, 0, 3457, 3457, 3458, 0, 0, 0, 0, - 0, 3458, 3459, 3459, 0, 3459, 3459, 3459, 3459, 3460, + 3444, 3451, 3446, 3449, 3452, 3452, 3453, 3453, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3450, 0, + 3451, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3458, 3458, + 3458, 3458, 3458, 3458, 3458, 3459, 3459, 3459, 3459, 3459, + 3459, 3459, 3460, 3460, 3460, 3460, 3460, 3460, 3460, 3461, + 3461, 3461, 3461, 3461, 3461, 3461, 3462, 3462, 3462, 3462, + 3462, 3462, 3462, 3463, 3463, 3463, 3463, 3463, 3463, 3463, + 3465, 3465, 0, 3465, 3465, 3465, 3465, 3466, 3466, 0, + 0, 0, 3466, 3466, 3467, 3467, 0, 0, 3467, 0, + 3467, 3468, 0, 0, 0, 0, 0, 3468, 3469, 3469, - 0, 0, 0, 0, 0, 3460, 3461, 3461, 0, 0, - 0, 3461, 3461, 3462, 3462, 0, 3462, 3462, 3462, 3462, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, - 3444 + 0, 0, 0, 3469, 3469, 3470, 0, 0, 0, 0, + 0, 3470, 3471, 3471, 0, 3471, 3471, 3471, 3471, 3472, + 0, 0, 0, 0, 0, 3472, 3473, 3473, 0, 0, + 0, 3473, 3473, 3474, 3474, 0, 3474, 3474, 3474, 3474, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, + 3456 } ; static yy_state_type yy_last_accepting_state; @@ -3255,7 +3262,7 @@ static void config_end_include(void) } #endif -#line 3256 "" +#line 3263 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3264,9 +3271,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3265 "" +#line 3272 "" -#line 3267 "" +#line 3274 "" #define INITIAL 0 #define quotedstring 1 @@ -3490,7 +3497,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3491 "" +#line 3498 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3523,13 +3530,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 >= 3445 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 6721 ); + while ( yy_base[yy_current_state] != 6741 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4424,536 +4431,536 @@ YY_RULE_SETUP case 174: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_MAX_RESTART) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 189: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 190: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 191: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 192: YY_RULE_SETUP -#line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +#line 406 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 193: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_CHECK) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 194: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +{ YDVAR(1, VAR_ZONEMD_CHECK) } YY_BREAK case 195: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 196: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 250: YY_RULE_SETUP #line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 251: YY_RULE_SETUP #line 466 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 252: YY_RULE_SETUP #line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 253: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 254: YY_RULE_SETUP -#line 470 "./util/configlexer.lex" +#line 469 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 255: YY_RULE_SETUP -#line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 471 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 256: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 257: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 258: YY_RULE_SETUP #line 475 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 259: YY_RULE_SETUP #line 476 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 260: YY_RULE_SETUP -#line 478 "./util/configlexer.lex" +#line 477 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 261: YY_RULE_SETUP -#line 480 "./util/configlexer.lex" +#line 479 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 262: YY_RULE_SETUP -#line 482 "./util/configlexer.lex" +#line 481 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 263: YY_RULE_SETUP -#line 484 "./util/configlexer.lex" +#line 483 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 264: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 265: YY_RULE_SETUP -#line 488 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 487 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 266: YY_RULE_SETUP #line 489 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 267: YY_RULE_SETUP #line 490 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 268: YY_RULE_SETUP #line 491 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 269: YY_RULE_SETUP #line 492 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 279: YY_RULE_SETUP @@ -4968,119 +4975,119 @@ YY_RULE_SETUP case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 283: YY_RULE_SETUP #line 506 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 288: YY_RULE_SETUP #line 511 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 289: YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 290: YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 291: YY_RULE_SETUP #line 514 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 292: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" +#line 515 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 293: YY_RULE_SETUP -#line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 517 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 304: YY_RULE_SETUP @@ -5090,118 +5097,123 @@ YY_RULE_SETUP case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 317: YY_RULE_SETUP #line 542 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 318: YY_RULE_SETUP #line 543 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 319: YY_RULE_SETUP #line 544 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } YY_BREAK case 320: YY_RULE_SETUP #line 545 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } YY_BREAK case 321: -/* rule 321 can match eol */ YY_RULE_SETUP #line 546 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 322: +/* rule 322 can match eol */ +YY_RULE_SETUP +#line 547 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 322: +case 323: YY_RULE_SETUP -#line 549 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 550 "./util/configlexer.lex" +#line 551 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 323: -YY_RULE_SETUP -#line 555 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 324: -/* rule 324 can match eol */ YY_RULE_SETUP #line 556 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 325: +/* rule 325 can match eol */ +YY_RULE_SETUP +#line 557 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 325: +case 326: YY_RULE_SETUP -#line 558 "./util/configlexer.lex" +#line 559 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5214,34 +5226,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 326: +case 327: YY_RULE_SETUP -#line 570 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 571 "./util/configlexer.lex" +#line 572 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 327: -YY_RULE_SETUP -#line 576 "./util/configlexer.lex" -{ LEXOUT(("STR(%s) ", yytext)); yymore(); } - YY_BREAK case 328: -/* rule 328 can match eol */ YY_RULE_SETUP #line 577 "./util/configlexer.lex" +{ LEXOUT(("STR(%s) ", yytext)); yymore(); } + YY_BREAK +case 329: +/* rule 329 can match eol */ +YY_RULE_SETUP +#line 578 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 329: +case 330: YY_RULE_SETUP -#line 579 "./util/configlexer.lex" +#line 580 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5254,38 +5266,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 330: +case 331: YY_RULE_SETUP -#line 591 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 593 "./util/configlexer.lex" +#line 594 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 331: -YY_RULE_SETUP -#line 597 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 332: -/* rule 332 can match eol */ YY_RULE_SETUP #line 598 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 333: +/* rule 333 can match eol */ YY_RULE_SETUP #line 599 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 334: YY_RULE_SETUP #line 600 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 335: +YY_RULE_SETUP +#line 601 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5293,27 +5305,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 605 "./util/configlexer.lex" +#line 606 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 335: -YY_RULE_SETUP -#line 609 "./util/configlexer.lex" -{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } - YY_BREAK case 336: -/* rule 336 can match eol */ YY_RULE_SETUP #line 610 "./util/configlexer.lex" +{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 337: +/* rule 337 can match eol */ +YY_RULE_SETUP +#line 611 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 337: +case 338: YY_RULE_SETUP -#line 612 "./util/configlexer.lex" +#line 613 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5323,7 +5335,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 618 "./util/configlexer.lex" +#line 619 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5338,39 +5350,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 338: +case 339: YY_RULE_SETUP -#line 632 "./util/configlexer.lex" +#line 633 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 635 "./util/configlexer.lex" +#line 636 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 339: -YY_RULE_SETUP -#line 639 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK case 340: -/* rule 340 can match eol */ YY_RULE_SETUP #line 640 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 341: +/* rule 341 can match eol */ YY_RULE_SETUP #line 641 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK case 342: YY_RULE_SETUP #line 642 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 343: +YY_RULE_SETUP +#line 643 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5379,29 +5391,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 648 "./util/configlexer.lex" +#line 649 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 343: -YY_RULE_SETUP -#line 652 "./util/configlexer.lex" -{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } - YY_BREAK case 344: -/* rule 344 can match eol */ YY_RULE_SETUP #line 653 "./util/configlexer.lex" +{ LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } + YY_BREAK +case 345: +/* rule 345 can match eol */ +YY_RULE_SETUP +#line 654 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 345: +case 346: YY_RULE_SETUP -#line 657 "./util/configlexer.lex" +#line 658 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5410,33 +5422,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 346: +case 347: YY_RULE_SETUP -#line 665 "./util/configlexer.lex" +#line 666 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 347: +case 348: YY_RULE_SETUP -#line 669 "./util/configlexer.lex" +#line 670 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 348: +case 349: YY_RULE_SETUP -#line 673 "./util/configlexer.lex" +#line 674 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 349: +case 350: YY_RULE_SETUP -#line 677 "./util/configlexer.lex" +#line 678 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5437 "" +#line 5449 "" case YY_END_OF_BUFFER: { @@ -5731,7 +5743,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 >= 3445 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5759,11 +5771,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 >= 3445 ) + if ( yy_current_state >= 3457 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3444); + yy_is_jam = (yy_current_state == 3456); return yy_is_jam ? 0 : yy_current_state; } @@ -6402,6 +6414,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 677 "./util/configlexer.lex" +#line 678 "./util/configlexer.lex" diff --git a/util/configparser.c b/util/configparser.c index 3f519e9c7..31de34c72 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison implementation for Yacc-like parsers in C @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30704 -/* Bison version. */ -#define YYBISON_VERSION "3.6.4" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -119,681 +119,7 @@ extern struct config_parser_state* cfg_parser; # endif # endif -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ - VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ - VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 369, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 381, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ - VAR_TCP_AUTH_QUERY_TIMEOUT = 392, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ - VAR_SSL_SERVICE_KEY = 393, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 394, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 395, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 396, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 397, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 398, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 399, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 400, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 401, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 402, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 403, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 405, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 406, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 407, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 408, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 409, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 410, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 411, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 412, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 413, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 414, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 415, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 416, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 417, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 418, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 419, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 420, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 421, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 422, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 423, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 424, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 425, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 426, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 429, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 430, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 431, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 432, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 433, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 440, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 441, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 442, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 443, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 444, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 445, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 446, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 447, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 448, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 449, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 450, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 451, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 452, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 453, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 454, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 455, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 456, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 457, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 458, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 460, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 467, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 468, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 469, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 470, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 471, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 472, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 473, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 474, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 475, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 476, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 477, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 478, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 479, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 480, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 481, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 482, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 483, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 484, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 485, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 487, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 488, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 489, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 490, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 491, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 492, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 493, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 494, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 495, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 496, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 497, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 498, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 499, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 500, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 501, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 502, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 503, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 509, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 510, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 511, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 512, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 513, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 514, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 515, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 516, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 517, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 518, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 519, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 520, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 521, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 522, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 523, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 524, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 525, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 527, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 528, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 529, /* VAR_ZONEFILE */ - VAR_MASTER = 530, /* VAR_MASTER */ - VAR_URL = 531, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 532, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 533, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 534, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 535, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 536, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 537, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 538, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 539, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 540, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 541, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 542, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 543, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 544, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 545, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 547, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 548, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 549, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 550, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 551, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 552, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 553, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 554, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 555, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 556, /* VAR_RPZ */ - VAR_TAGS = 557, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 558, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 559, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 560, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 561, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 562, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 563, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 564, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 566, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 568, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 569 /* VAR_ZONEMD_REJECT_ABSENCE */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING_ARG 265 -#define VAR_FORCE_TOPLEVEL 266 -#define VAR_SERVER 267 -#define VAR_VERBOSITY 268 -#define VAR_NUM_THREADS 269 -#define VAR_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_PREFER_IP4 273 -#define VAR_DO_IP4 274 -#define VAR_DO_IP6 275 -#define VAR_PREFER_IP6 276 -#define VAR_DO_UDP 277 -#define VAR_DO_TCP 278 -#define VAR_TCP_MSS 279 -#define VAR_OUTGOING_TCP_MSS 280 -#define VAR_TCP_IDLE_TIMEOUT 281 -#define VAR_EDNS_TCP_KEEPALIVE 282 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 -#define VAR_CHROOT 284 -#define VAR_USERNAME 285 -#define VAR_DIRECTORY 286 -#define VAR_LOGFILE 287 -#define VAR_PIDFILE 288 -#define VAR_MSG_CACHE_SIZE 289 -#define VAR_MSG_CACHE_SLABS 290 -#define VAR_NUM_QUERIES_PER_THREAD 291 -#define VAR_RRSET_CACHE_SIZE 292 -#define VAR_RRSET_CACHE_SLABS 293 -#define VAR_OUTGOING_NUM_TCP 294 -#define VAR_INFRA_HOST_TTL 295 -#define VAR_INFRA_LAME_TTL 296 -#define VAR_INFRA_CACHE_SLABS 297 -#define VAR_INFRA_CACHE_NUMHOSTS 298 -#define VAR_INFRA_CACHE_LAME_SIZE 299 -#define VAR_NAME 300 -#define VAR_STUB_ZONE 301 -#define VAR_STUB_HOST 302 -#define VAR_STUB_ADDR 303 -#define VAR_TARGET_FETCH_POLICY 304 -#define VAR_HARDEN_SHORT_BUFSIZE 305 -#define VAR_HARDEN_LARGE_QUERIES 306 -#define VAR_FORWARD_ZONE 307 -#define VAR_FORWARD_HOST 308 -#define VAR_FORWARD_ADDR 309 -#define VAR_DO_NOT_QUERY_ADDRESS 310 -#define VAR_HIDE_IDENTITY 311 -#define VAR_HIDE_VERSION 312 -#define VAR_IDENTITY 313 -#define VAR_VERSION 314 -#define VAR_HARDEN_GLUE 315 -#define VAR_MODULE_CONF 316 -#define VAR_TRUST_ANCHOR_FILE 317 -#define VAR_TRUST_ANCHOR 318 -#define VAR_VAL_OVERRIDE_DATE 319 -#define VAR_BOGUS_TTL 320 -#define VAR_VAL_CLEAN_ADDITIONAL 321 -#define VAR_VAL_PERMISSIVE_MODE 322 -#define VAR_INCOMING_NUM_TCP 323 -#define VAR_MSG_BUFFER_SIZE 324 -#define VAR_KEY_CACHE_SIZE 325 -#define VAR_KEY_CACHE_SLABS 326 -#define VAR_TRUSTED_KEYS_FILE 327 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 -#define VAR_USE_SYSLOG 329 -#define VAR_OUTGOING_INTERFACE 330 -#define VAR_ROOT_HINTS 331 -#define VAR_DO_NOT_QUERY_LOCALHOST 332 -#define VAR_CACHE_MAX_TTL 333 -#define VAR_HARDEN_DNSSEC_STRIPPED 334 -#define VAR_ACCESS_CONTROL 335 -#define VAR_LOCAL_ZONE 336 -#define VAR_LOCAL_DATA 337 -#define VAR_INTERFACE_AUTOMATIC 338 -#define VAR_STATISTICS_INTERVAL 339 -#define VAR_DO_DAEMONIZE 340 -#define VAR_USE_CAPS_FOR_ID 341 -#define VAR_STATISTICS_CUMULATIVE 342 -#define VAR_OUTGOING_PORT_PERMIT 343 -#define VAR_OUTGOING_PORT_AVOID 344 -#define VAR_DLV_ANCHOR_FILE 345 -#define VAR_DLV_ANCHOR 346 -#define VAR_NEG_CACHE_SIZE 347 -#define VAR_HARDEN_REFERRAL_PATH 348 -#define VAR_PRIVATE_ADDRESS 349 -#define VAR_PRIVATE_DOMAIN 350 -#define VAR_REMOTE_CONTROL 351 -#define VAR_CONTROL_ENABLE 352 -#define VAR_CONTROL_INTERFACE 353 -#define VAR_CONTROL_PORT 354 -#define VAR_SERVER_KEY_FILE 355 -#define VAR_SERVER_CERT_FILE 356 -#define VAR_CONTROL_KEY_FILE 357 -#define VAR_CONTROL_CERT_FILE 358 -#define VAR_CONTROL_USE_CERT 359 -#define VAR_TCP_REUSE_TIMEOUT 360 -#define VAR_MAX_REUSE_TCP_QUERIES 361 -#define VAR_EXTENDED_STATISTICS 362 -#define VAR_LOCAL_DATA_PTR 363 -#define VAR_JOSTLE_TIMEOUT 364 -#define VAR_STUB_PRIME 365 -#define VAR_UNWANTED_REPLY_THRESHOLD 366 -#define VAR_LOG_TIME_ASCII 367 -#define VAR_DOMAIN_INSECURE 368 -#define VAR_PYTHON 369 -#define VAR_PYTHON_SCRIPT 370 -#define VAR_VAL_SIG_SKEW_MIN 371 -#define VAR_VAL_SIG_SKEW_MAX 372 -#define VAR_CACHE_MIN_TTL 373 -#define VAR_VAL_LOG_LEVEL 374 -#define VAR_AUTO_TRUST_ANCHOR_FILE 375 -#define VAR_KEEP_MISSING 376 -#define VAR_ADD_HOLDDOWN 377 -#define VAR_DEL_HOLDDOWN 378 -#define VAR_SO_RCVBUF 379 -#define VAR_EDNS_BUFFER_SIZE 380 -#define VAR_PREFETCH 381 -#define VAR_PREFETCH_KEY 382 -#define VAR_SO_SNDBUF 383 -#define VAR_SO_REUSEPORT 384 -#define VAR_HARDEN_BELOW_NXDOMAIN 385 -#define VAR_IGNORE_CD_FLAG 386 -#define VAR_LOG_QUERIES 387 -#define VAR_LOG_REPLIES 388 -#define VAR_LOG_LOCAL_ACTIONS 389 -#define VAR_TCP_UPSTREAM 390 -#define VAR_SSL_UPSTREAM 391 -#define VAR_TCP_AUTH_QUERY_TIMEOUT 392 -#define VAR_SSL_SERVICE_KEY 393 -#define VAR_SSL_SERVICE_PEM 394 -#define VAR_SSL_PORT 395 -#define VAR_FORWARD_FIRST 396 -#define VAR_STUB_SSL_UPSTREAM 397 -#define VAR_FORWARD_SSL_UPSTREAM 398 -#define VAR_TLS_CERT_BUNDLE 399 -#define VAR_HTTPS_PORT 400 -#define VAR_HTTP_ENDPOINT 401 -#define VAR_HTTP_MAX_STREAMS 402 -#define VAR_HTTP_QUERY_BUFFER_SIZE 403 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 404 -#define VAR_HTTP_NODELAY 405 -#define VAR_HTTP_NOTLS_DOWNSTREAM 406 -#define VAR_STUB_FIRST 407 -#define VAR_MINIMAL_RESPONSES 408 -#define VAR_RRSET_ROUNDROBIN 409 -#define VAR_MAX_UDP_SIZE 410 -#define VAR_DELAY_CLOSE 411 -#define VAR_UDP_CONNECT 412 -#define VAR_UNBLOCK_LAN_ZONES 413 -#define VAR_INSECURE_LAN_ZONES 414 -#define VAR_INFRA_CACHE_MIN_RTT 415 -#define VAR_INFRA_KEEP_PROBING 416 -#define VAR_DNS64_PREFIX 417 -#define VAR_DNS64_SYNTHALL 418 -#define VAR_DNS64_IGNORE_AAAA 419 -#define VAR_DNSTAP 420 -#define VAR_DNSTAP_ENABLE 421 -#define VAR_DNSTAP_SOCKET_PATH 422 -#define VAR_DNSTAP_IP 423 -#define VAR_DNSTAP_TLS 424 -#define VAR_DNSTAP_TLS_SERVER_NAME 425 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 426 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 427 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 428 -#define VAR_DNSTAP_SEND_IDENTITY 429 -#define VAR_DNSTAP_SEND_VERSION 430 -#define VAR_DNSTAP_BIDIRECTIONAL 431 -#define VAR_DNSTAP_IDENTITY 432 -#define VAR_DNSTAP_VERSION 433 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 434 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 435 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 436 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 437 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 438 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 439 -#define VAR_RESPONSE_IP_TAG 440 -#define VAR_RESPONSE_IP 441 -#define VAR_RESPONSE_IP_DATA 442 -#define VAR_HARDEN_ALGO_DOWNGRADE 443 -#define VAR_IP_TRANSPARENT 444 -#define VAR_IP_DSCP 445 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 446 -#define VAR_IP_RATELIMIT 447 -#define VAR_IP_RATELIMIT_SLABS 448 -#define VAR_IP_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT 450 -#define VAR_RATELIMIT_SLABS 451 -#define VAR_RATELIMIT_SIZE 452 -#define VAR_RATELIMIT_FOR_DOMAIN 453 -#define VAR_RATELIMIT_BELOW_DOMAIN 454 -#define VAR_IP_RATELIMIT_FACTOR 455 -#define VAR_RATELIMIT_FACTOR 456 -#define VAR_SEND_CLIENT_SUBNET 457 -#define VAR_CLIENT_SUBNET_ZONE 458 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 459 -#define VAR_CLIENT_SUBNET_OPCODE 460 -#define VAR_MAX_CLIENT_SUBNET_IPV4 461 -#define VAR_MAX_CLIENT_SUBNET_IPV6 462 -#define VAR_MIN_CLIENT_SUBNET_IPV4 463 -#define VAR_MIN_CLIENT_SUBNET_IPV6 464 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 465 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 466 -#define VAR_CAPS_WHITELIST 467 -#define VAR_CACHE_MAX_NEGATIVE_TTL 468 -#define VAR_PERMIT_SMALL_HOLDDOWN 469 -#define VAR_QNAME_MINIMISATION 470 -#define VAR_QNAME_MINIMISATION_STRICT 471 -#define VAR_IP_FREEBIND 472 -#define VAR_DEFINE_TAG 473 -#define VAR_LOCAL_ZONE_TAG 474 -#define VAR_ACCESS_CONTROL_TAG 475 -#define VAR_LOCAL_ZONE_OVERRIDE 476 -#define VAR_ACCESS_CONTROL_TAG_ACTION 477 -#define VAR_ACCESS_CONTROL_TAG_DATA 478 -#define VAR_VIEW 479 -#define VAR_ACCESS_CONTROL_VIEW 480 -#define VAR_VIEW_FIRST 481 -#define VAR_SERVE_EXPIRED 482 -#define VAR_SERVE_EXPIRED_TTL 483 -#define VAR_SERVE_EXPIRED_TTL_RESET 484 -#define VAR_SERVE_EXPIRED_REPLY_TTL 485 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 486 -#define VAR_SERVE_ORIGINAL_TTL 487 -#define VAR_FAKE_DSA 488 -#define VAR_FAKE_SHA1 489 -#define VAR_LOG_IDENTITY 490 -#define VAR_HIDE_TRUSTANCHOR 491 -#define VAR_TRUST_ANCHOR_SIGNALING 492 -#define VAR_AGGRESSIVE_NSEC 493 -#define VAR_USE_SYSTEMD 494 -#define VAR_SHM_ENABLE 495 -#define VAR_SHM_KEY 496 -#define VAR_ROOT_KEY_SENTINEL 497 -#define VAR_DNSCRYPT 498 -#define VAR_DNSCRYPT_ENABLE 499 -#define VAR_DNSCRYPT_PORT 500 -#define VAR_DNSCRYPT_PROVIDER 501 -#define VAR_DNSCRYPT_SECRET_KEY 502 -#define VAR_DNSCRYPT_PROVIDER_CERT 503 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 504 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 505 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 506 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 507 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 508 -#define VAR_PAD_RESPONSES 509 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 510 -#define VAR_PAD_QUERIES 511 -#define VAR_PAD_QUERIES_BLOCK_SIZE 512 -#define VAR_IPSECMOD_ENABLED 513 -#define VAR_IPSECMOD_HOOK 514 -#define VAR_IPSECMOD_IGNORE_BOGUS 515 -#define VAR_IPSECMOD_MAX_TTL 516 -#define VAR_IPSECMOD_WHITELIST 517 -#define VAR_IPSECMOD_STRICT 518 -#define VAR_CACHEDB 519 -#define VAR_CACHEDB_BACKEND 520 -#define VAR_CACHEDB_SECRETSEED 521 -#define VAR_CACHEDB_REDISHOST 522 -#define VAR_CACHEDB_REDISPORT 523 -#define VAR_CACHEDB_REDISTIMEOUT 524 -#define VAR_CACHEDB_REDISEXPIRERECORDS 525 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 526 -#define VAR_FOR_UPSTREAM 527 -#define VAR_AUTH_ZONE 528 -#define VAR_ZONEFILE 529 -#define VAR_MASTER 530 -#define VAR_URL 531 -#define VAR_FOR_DOWNSTREAM 532 -#define VAR_FALLBACK_ENABLED 533 -#define VAR_TLS_ADDITIONAL_PORT 534 -#define VAR_LOW_RTT 535 -#define VAR_LOW_RTT_PERMIL 536 -#define VAR_FAST_SERVER_PERMIL 537 -#define VAR_FAST_SERVER_NUM 538 -#define VAR_ALLOW_NOTIFY 539 -#define VAR_TLS_WIN_CERT 540 -#define VAR_TCP_CONNECTION_LIMIT 541 -#define VAR_FORWARD_NO_CACHE 542 -#define VAR_STUB_NO_CACHE 543 -#define VAR_LOG_SERVFAIL 544 -#define VAR_DENY_ANY 545 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 546 -#define VAR_LOG_TAG_QUERYREPLY 547 -#define VAR_STREAM_WAIT_SIZE 548 -#define VAR_TLS_CIPHERS 549 -#define VAR_TLS_CIPHERSUITES 550 -#define VAR_TLS_USE_SNI 551 -#define VAR_IPSET 552 -#define VAR_IPSET_NAME_V4 553 -#define VAR_IPSET_NAME_V6 554 -#define VAR_TLS_SESSION_TICKET_KEYS 555 -#define VAR_RPZ 556 -#define VAR_TAGS 557 -#define VAR_RPZ_ACTION_OVERRIDE 558 -#define VAR_RPZ_CNAME_OVERRIDE 559 -#define VAR_RPZ_LOG 560 -#define VAR_RPZ_LOG_NAME 561 -#define VAR_DYNLIB 562 -#define VAR_DYNLIB_FILE 563 -#define VAR_EDNS_CLIENT_STRING 564 -#define VAR_EDNS_CLIENT_STRING_OPCODE 565 -#define VAR_NSID 566 -#define VAR_ZONEMD_PERMISSIVE_MODE 567 -#define VAR_ZONEMD_CHECK 568 -#define VAR_ZONEMD_REJECT_ABSENCE 569 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 66 "./util/configparser.y" - - char* str; - -#line 784 "util/configparser.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +#include "configparser.h" /* Symbol kind. */ enum yysymbol_kind_t { @@ -916,543 +242,545 @@ enum yysymbol_kind_t YYSYMBOL_VAR_PYTHON_SCRIPT = 115, /* VAR_PYTHON_SCRIPT */ YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 116, /* VAR_VAL_SIG_SKEW_MIN */ YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 117, /* VAR_VAL_SIG_SKEW_MAX */ - YYSYMBOL_VAR_CACHE_MIN_TTL = 118, /* VAR_CACHE_MIN_TTL */ - YYSYMBOL_VAR_VAL_LOG_LEVEL = 119, /* VAR_VAL_LOG_LEVEL */ - YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 120, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - YYSYMBOL_VAR_KEEP_MISSING = 121, /* VAR_KEEP_MISSING */ - YYSYMBOL_VAR_ADD_HOLDDOWN = 122, /* VAR_ADD_HOLDDOWN */ - YYSYMBOL_VAR_DEL_HOLDDOWN = 123, /* VAR_DEL_HOLDDOWN */ - YYSYMBOL_VAR_SO_RCVBUF = 124, /* VAR_SO_RCVBUF */ - YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 125, /* VAR_EDNS_BUFFER_SIZE */ - YYSYMBOL_VAR_PREFETCH = 126, /* VAR_PREFETCH */ - YYSYMBOL_VAR_PREFETCH_KEY = 127, /* VAR_PREFETCH_KEY */ - YYSYMBOL_VAR_SO_SNDBUF = 128, /* VAR_SO_SNDBUF */ - YYSYMBOL_VAR_SO_REUSEPORT = 129, /* VAR_SO_REUSEPORT */ - YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 130, /* VAR_HARDEN_BELOW_NXDOMAIN */ - YYSYMBOL_VAR_IGNORE_CD_FLAG = 131, /* VAR_IGNORE_CD_FLAG */ - YYSYMBOL_VAR_LOG_QUERIES = 132, /* VAR_LOG_QUERIES */ - YYSYMBOL_VAR_LOG_REPLIES = 133, /* VAR_LOG_REPLIES */ - YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 134, /* VAR_LOG_LOCAL_ACTIONS */ - YYSYMBOL_VAR_TCP_UPSTREAM = 135, /* VAR_TCP_UPSTREAM */ - YYSYMBOL_VAR_SSL_UPSTREAM = 136, /* VAR_SSL_UPSTREAM */ - YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 137, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ - YYSYMBOL_VAR_SSL_SERVICE_KEY = 138, /* VAR_SSL_SERVICE_KEY */ - YYSYMBOL_VAR_SSL_SERVICE_PEM = 139, /* VAR_SSL_SERVICE_PEM */ - YYSYMBOL_VAR_SSL_PORT = 140, /* VAR_SSL_PORT */ - YYSYMBOL_VAR_FORWARD_FIRST = 141, /* VAR_FORWARD_FIRST */ - YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 142, /* VAR_STUB_SSL_UPSTREAM */ - YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 143, /* VAR_FORWARD_SSL_UPSTREAM */ - YYSYMBOL_VAR_TLS_CERT_BUNDLE = 144, /* VAR_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_HTTPS_PORT = 145, /* VAR_HTTPS_PORT */ - YYSYMBOL_VAR_HTTP_ENDPOINT = 146, /* VAR_HTTP_ENDPOINT */ - YYSYMBOL_VAR_HTTP_MAX_STREAMS = 147, /* VAR_HTTP_MAX_STREAMS */ - YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 148, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 149, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - YYSYMBOL_VAR_HTTP_NODELAY = 150, /* VAR_HTTP_NODELAY */ - YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 151, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - YYSYMBOL_VAR_STUB_FIRST = 152, /* VAR_STUB_FIRST */ - YYSYMBOL_VAR_MINIMAL_RESPONSES = 153, /* VAR_MINIMAL_RESPONSES */ - YYSYMBOL_VAR_RRSET_ROUNDROBIN = 154, /* VAR_RRSET_ROUNDROBIN */ - YYSYMBOL_VAR_MAX_UDP_SIZE = 155, /* VAR_MAX_UDP_SIZE */ - YYSYMBOL_VAR_DELAY_CLOSE = 156, /* VAR_DELAY_CLOSE */ - YYSYMBOL_VAR_UDP_CONNECT = 157, /* VAR_UDP_CONNECT */ - YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 158, /* VAR_UNBLOCK_LAN_ZONES */ - YYSYMBOL_VAR_INSECURE_LAN_ZONES = 159, /* VAR_INSECURE_LAN_ZONES */ - YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 160, /* VAR_INFRA_CACHE_MIN_RTT */ - YYSYMBOL_VAR_INFRA_KEEP_PROBING = 161, /* VAR_INFRA_KEEP_PROBING */ - YYSYMBOL_VAR_DNS64_PREFIX = 162, /* VAR_DNS64_PREFIX */ - YYSYMBOL_VAR_DNS64_SYNTHALL = 163, /* VAR_DNS64_SYNTHALL */ - YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 164, /* VAR_DNS64_IGNORE_AAAA */ - YYSYMBOL_VAR_DNSTAP = 165, /* VAR_DNSTAP */ - YYSYMBOL_VAR_DNSTAP_ENABLE = 166, /* VAR_DNSTAP_ENABLE */ - YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 167, /* VAR_DNSTAP_SOCKET_PATH */ - YYSYMBOL_VAR_DNSTAP_IP = 168, /* VAR_DNSTAP_IP */ - YYSYMBOL_VAR_DNSTAP_TLS = 169, /* VAR_DNSTAP_TLS */ - YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 170, /* VAR_DNSTAP_TLS_SERVER_NAME */ - YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 171, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 172, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 173, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 174, /* VAR_DNSTAP_SEND_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 175, /* VAR_DNSTAP_SEND_VERSION */ - YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 176, /* VAR_DNSTAP_BIDIRECTIONAL */ - YYSYMBOL_VAR_DNSTAP_IDENTITY = 177, /* VAR_DNSTAP_IDENTITY */ - YYSYMBOL_VAR_DNSTAP_VERSION = 178, /* VAR_DNSTAP_VERSION */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 179, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 180, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 181, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 182, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 183, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 184, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - YYSYMBOL_VAR_RESPONSE_IP_TAG = 185, /* VAR_RESPONSE_IP_TAG */ - YYSYMBOL_VAR_RESPONSE_IP = 186, /* VAR_RESPONSE_IP */ - YYSYMBOL_VAR_RESPONSE_IP_DATA = 187, /* VAR_RESPONSE_IP_DATA */ - YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 188, /* VAR_HARDEN_ALGO_DOWNGRADE */ - YYSYMBOL_VAR_IP_TRANSPARENT = 189, /* VAR_IP_TRANSPARENT */ - YYSYMBOL_VAR_IP_DSCP = 190, /* VAR_IP_DSCP */ - YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 191, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - YYSYMBOL_VAR_IP_RATELIMIT = 192, /* VAR_IP_RATELIMIT */ - YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 193, /* VAR_IP_RATELIMIT_SLABS */ - YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 194, /* VAR_IP_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT = 195, /* VAR_RATELIMIT */ - YYSYMBOL_VAR_RATELIMIT_SLABS = 196, /* VAR_RATELIMIT_SLABS */ - YYSYMBOL_VAR_RATELIMIT_SIZE = 197, /* VAR_RATELIMIT_SIZE */ - YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 198, /* VAR_RATELIMIT_FOR_DOMAIN */ - YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 199, /* VAR_RATELIMIT_BELOW_DOMAIN */ - YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 200, /* VAR_IP_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_RATELIMIT_FACTOR = 201, /* VAR_RATELIMIT_FACTOR */ - YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 202, /* VAR_SEND_CLIENT_SUBNET */ - YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 203, /* VAR_CLIENT_SUBNET_ZONE */ - YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 204, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 205, /* VAR_CLIENT_SUBNET_OPCODE */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 206, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 207, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 208, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 209, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 210, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 211, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - YYSYMBOL_VAR_CAPS_WHITELIST = 212, /* VAR_CAPS_WHITELIST */ - YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 213, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 214, /* VAR_PERMIT_SMALL_HOLDDOWN */ - YYSYMBOL_VAR_QNAME_MINIMISATION = 215, /* VAR_QNAME_MINIMISATION */ - YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 216, /* VAR_QNAME_MINIMISATION_STRICT */ - YYSYMBOL_VAR_IP_FREEBIND = 217, /* VAR_IP_FREEBIND */ - YYSYMBOL_VAR_DEFINE_TAG = 218, /* VAR_DEFINE_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_TAG = 219, /* VAR_LOCAL_ZONE_TAG */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 220, /* VAR_ACCESS_CONTROL_TAG */ - YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 221, /* VAR_LOCAL_ZONE_OVERRIDE */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 222, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 223, /* VAR_ACCESS_CONTROL_TAG_DATA */ - YYSYMBOL_VAR_VIEW = 224, /* VAR_VIEW */ - YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 225, /* VAR_ACCESS_CONTROL_VIEW */ - YYSYMBOL_VAR_VIEW_FIRST = 226, /* VAR_VIEW_FIRST */ - YYSYMBOL_VAR_SERVE_EXPIRED = 227, /* VAR_SERVE_EXPIRED */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 228, /* VAR_SERVE_EXPIRED_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 229, /* VAR_SERVE_EXPIRED_TTL_RESET */ - YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 230, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 231, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 232, /* VAR_SERVE_ORIGINAL_TTL */ - YYSYMBOL_VAR_FAKE_DSA = 233, /* VAR_FAKE_DSA */ - YYSYMBOL_VAR_FAKE_SHA1 = 234, /* VAR_FAKE_SHA1 */ - YYSYMBOL_VAR_LOG_IDENTITY = 235, /* VAR_LOG_IDENTITY */ - YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 236, /* VAR_HIDE_TRUSTANCHOR */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 237, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 238, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 239, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 240, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 241, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 242, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 243, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 244, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 245, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 246, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 247, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 248, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 249, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 250, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 251, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 252, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 253, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 254, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 255, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 256, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 257, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 258, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 259, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 260, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 261, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 262, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 263, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 264, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 265, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 266, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 267, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 268, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 269, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 270, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 271, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 272, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 273, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 274, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 275, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 276, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 277, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 278, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 279, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 280, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 281, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 282, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 283, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 284, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 285, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 286, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 287, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 288, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 289, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 290, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 291, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 292, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 293, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 294, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 295, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 296, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 297, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 298, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 299, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 300, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 301, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 302, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 303, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 304, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 305, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 306, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 307, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 308, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 309, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 310, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 311, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 312, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_CHECK = 313, /* VAR_ZONEMD_CHECK */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 314, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 315, /* $accept */ - YYSYMBOL_toplevelvars = 316, /* toplevelvars */ - YYSYMBOL_toplevelvar = 317, /* toplevelvar */ - YYSYMBOL_force_toplevel = 318, /* force_toplevel */ - YYSYMBOL_serverstart = 319, /* serverstart */ - YYSYMBOL_contents_server = 320, /* contents_server */ - YYSYMBOL_content_server = 321, /* content_server */ - YYSYMBOL_stubstart = 322, /* stubstart */ - YYSYMBOL_contents_stub = 323, /* contents_stub */ - YYSYMBOL_content_stub = 324, /* content_stub */ - YYSYMBOL_forwardstart = 325, /* forwardstart */ - YYSYMBOL_contents_forward = 326, /* contents_forward */ - YYSYMBOL_content_forward = 327, /* content_forward */ - YYSYMBOL_viewstart = 328, /* viewstart */ - YYSYMBOL_contents_view = 329, /* contents_view */ - YYSYMBOL_content_view = 330, /* content_view */ - YYSYMBOL_authstart = 331, /* authstart */ - YYSYMBOL_contents_auth = 332, /* contents_auth */ - YYSYMBOL_content_auth = 333, /* content_auth */ - YYSYMBOL_rpz_tag = 334, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 335, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 336, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 337, /* rpz_log */ - YYSYMBOL_rpz_log_name = 338, /* rpz_log_name */ - YYSYMBOL_rpzstart = 339, /* rpzstart */ - YYSYMBOL_contents_rpz = 340, /* contents_rpz */ - YYSYMBOL_content_rpz = 341, /* content_rpz */ - YYSYMBOL_server_num_threads = 342, /* server_num_threads */ - YYSYMBOL_server_verbosity = 343, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 344, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 345, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 346, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 347, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 348, /* server_shm_key */ - YYSYMBOL_server_port = 349, /* server_port */ - YYSYMBOL_server_send_client_subnet = 350, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 351, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 352, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 353, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 354, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 355, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 356, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 357, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 358, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 359, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 360, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 361, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 362, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 363, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 364, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 365, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 366, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 367, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 368, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 369, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 370, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 371, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 372, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 373, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 374, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 375, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 376, /* server_tcp_idle_timeout */ - YYSYMBOL_server_max_reuse_tcp_queries = 377, /* server_max_reuse_tcp_queries */ - YYSYMBOL_server_tcp_reuse_timeout = 378, /* server_tcp_reuse_timeout */ - YYSYMBOL_server_tcp_auth_query_timeout = 379, /* server_tcp_auth_query_timeout */ - YYSYMBOL_server_tcp_keepalive = 380, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 381, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 382, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 383, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 384, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 385, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 386, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 387, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 388, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 389, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 390, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 391, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 392, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 393, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 394, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 395, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 396, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 397, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 398, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 399, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 400, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 401, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 402, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 403, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 404, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 405, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 406, /* server_log_queries */ - YYSYMBOL_server_log_replies = 407, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 408, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 409, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 410, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 411, /* server_chroot */ - YYSYMBOL_server_username = 412, /* server_username */ - YYSYMBOL_server_directory = 413, /* server_directory */ - YYSYMBOL_server_logfile = 414, /* server_logfile */ - YYSYMBOL_server_pidfile = 415, /* server_pidfile */ - YYSYMBOL_server_root_hints = 416, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 417, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 418, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 419, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 420, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 421, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 422, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 423, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 424, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 425, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 426, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 427, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 428, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 429, /* server_identity */ - YYSYMBOL_server_version = 430, /* server_version */ - YYSYMBOL_server_nsid = 431, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 432, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 433, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 434, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 435, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 436, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 437, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 438, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 439, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 440, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 441, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 442, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 443, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 444, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 445, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 446, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 447, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 448, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 449, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 450, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 451, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 452, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 453, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 454, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 455, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 456, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 457, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 458, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 459, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 460, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 461, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 462, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 463, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 464, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 465, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 466, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 467, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 468, /* server_private_address */ - YYSYMBOL_server_private_domain = 469, /* server_private_domain */ - YYSYMBOL_server_prefetch = 470, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 471, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 472, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 473, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 474, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 475, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 476, /* server_access_control */ - YYSYMBOL_server_module_conf = 477, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 478, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 479, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 480, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 481, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 482, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 483, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 484, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 485, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 486, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 487, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 488, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 489, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 490, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 491, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 492, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 493, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 494, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 495, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 496, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 497, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 498, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 499, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 500, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 501, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 502, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 503, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 504, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 505, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 506, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 507, /* server_local_zone */ - YYSYMBOL_server_local_data = 508, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 509, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 510, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 511, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 512, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 513, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 514, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 515, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 516, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 517, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 518, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 519, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 520, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 521, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 522, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 523, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 524, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 525, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 526, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 527, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 528, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 529, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 530, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 531, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 532, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 533, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 534, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 535, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 536, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 537, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 538, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 539, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 540, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 541, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 542, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 543, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 544, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 545, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 546, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 547, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 548, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 549, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 550, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 551, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 552, /* stub_name */ - YYSYMBOL_stub_host = 553, /* stub_host */ - YYSYMBOL_stub_addr = 554, /* stub_addr */ - YYSYMBOL_stub_first = 555, /* stub_first */ - YYSYMBOL_stub_no_cache = 556, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 557, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 558, /* stub_prime */ - YYSYMBOL_forward_name = 559, /* forward_name */ - YYSYMBOL_forward_host = 560, /* forward_host */ - YYSYMBOL_forward_addr = 561, /* forward_addr */ - YYSYMBOL_forward_first = 562, /* forward_first */ - YYSYMBOL_forward_no_cache = 563, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 564, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 565, /* auth_name */ - YYSYMBOL_auth_zonefile = 566, /* auth_zonefile */ - YYSYMBOL_auth_master = 567, /* auth_master */ - YYSYMBOL_auth_url = 568, /* auth_url */ - YYSYMBOL_auth_allow_notify = 569, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_check = 570, /* auth_zonemd_check */ - YYSYMBOL_auth_zonemd_reject_absence = 571, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 572, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 573, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 574, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 575, /* view_name */ - YYSYMBOL_view_local_zone = 576, /* view_local_zone */ - YYSYMBOL_view_response_ip = 577, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 578, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 579, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 580, /* view_local_data_ptr */ - YYSYMBOL_view_first = 581, /* view_first */ - YYSYMBOL_rcstart = 582, /* rcstart */ - YYSYMBOL_contents_rc = 583, /* contents_rc */ - YYSYMBOL_content_rc = 584, /* content_rc */ - YYSYMBOL_rc_control_enable = 585, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 586, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 587, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 588, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 589, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 590, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 591, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 592, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 593, /* dtstart */ - YYSYMBOL_contents_dt = 594, /* contents_dt */ - YYSYMBOL_content_dt = 595, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 596, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 597, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 598, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 599, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 600, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 601, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 602, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 603, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 604, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 605, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 606, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 607, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 608, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 609, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 610, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 611, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 612, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 613, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 614, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 615, /* pythonstart */ - YYSYMBOL_contents_py = 616, /* contents_py */ - YYSYMBOL_content_py = 617, /* content_py */ - YYSYMBOL_py_script = 618, /* py_script */ - YYSYMBOL_dynlibstart = 619, /* dynlibstart */ - YYSYMBOL_contents_dl = 620, /* contents_dl */ - YYSYMBOL_content_dl = 621, /* content_dl */ - YYSYMBOL_dl_file = 622, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 623, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 624, /* server_log_identity */ - YYSYMBOL_server_response_ip = 625, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 626, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 627, /* dnscstart */ - YYSYMBOL_contents_dnsc = 628, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 629, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 630, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 631, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 632, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 633, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 634, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 635, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 636, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 637, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 638, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 639, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 640, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 641, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 642, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 643, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 644, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 645, /* redis_server_host */ - YYSYMBOL_redis_server_port = 646, /* redis_server_port */ - YYSYMBOL_redis_timeout = 647, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 648, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 649, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 650, /* ipsetstart */ - YYSYMBOL_contents_ipset = 651, /* contents_ipset */ - YYSYMBOL_content_ipset = 652, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 653, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 654 /* ipset_name_v6 */ + YYSYMBOL_VAR_VAL_MAX_RESTART = 118, /* VAR_VAL_MAX_RESTART */ + YYSYMBOL_VAR_CACHE_MIN_TTL = 119, /* VAR_CACHE_MIN_TTL */ + YYSYMBOL_VAR_VAL_LOG_LEVEL = 120, /* VAR_VAL_LOG_LEVEL */ + YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 121, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + YYSYMBOL_VAR_KEEP_MISSING = 122, /* VAR_KEEP_MISSING */ + YYSYMBOL_VAR_ADD_HOLDDOWN = 123, /* VAR_ADD_HOLDDOWN */ + YYSYMBOL_VAR_DEL_HOLDDOWN = 124, /* VAR_DEL_HOLDDOWN */ + YYSYMBOL_VAR_SO_RCVBUF = 125, /* VAR_SO_RCVBUF */ + YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 126, /* VAR_EDNS_BUFFER_SIZE */ + YYSYMBOL_VAR_PREFETCH = 127, /* VAR_PREFETCH */ + YYSYMBOL_VAR_PREFETCH_KEY = 128, /* VAR_PREFETCH_KEY */ + YYSYMBOL_VAR_SO_SNDBUF = 129, /* VAR_SO_SNDBUF */ + YYSYMBOL_VAR_SO_REUSEPORT = 130, /* VAR_SO_REUSEPORT */ + YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 131, /* VAR_HARDEN_BELOW_NXDOMAIN */ + YYSYMBOL_VAR_IGNORE_CD_FLAG = 132, /* VAR_IGNORE_CD_FLAG */ + YYSYMBOL_VAR_LOG_QUERIES = 133, /* VAR_LOG_QUERIES */ + YYSYMBOL_VAR_LOG_REPLIES = 134, /* VAR_LOG_REPLIES */ + YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 135, /* VAR_LOG_LOCAL_ACTIONS */ + YYSYMBOL_VAR_TCP_UPSTREAM = 136, /* VAR_TCP_UPSTREAM */ + YYSYMBOL_VAR_SSL_UPSTREAM = 137, /* VAR_SSL_UPSTREAM */ + YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 138, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + YYSYMBOL_VAR_SSL_SERVICE_KEY = 139, /* VAR_SSL_SERVICE_KEY */ + YYSYMBOL_VAR_SSL_SERVICE_PEM = 140, /* VAR_SSL_SERVICE_PEM */ + YYSYMBOL_VAR_SSL_PORT = 141, /* VAR_SSL_PORT */ + YYSYMBOL_VAR_FORWARD_FIRST = 142, /* VAR_FORWARD_FIRST */ + YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 143, /* VAR_STUB_SSL_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 144, /* VAR_FORWARD_SSL_UPSTREAM */ + YYSYMBOL_VAR_TLS_CERT_BUNDLE = 145, /* VAR_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_HTTPS_PORT = 146, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 147, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 148, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 149, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 150, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 151, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 152, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 153, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 154, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 155, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 156, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 157, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 158, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 159, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 160, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 161, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 162, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 163, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 164, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 165, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 166, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 167, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 168, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 169, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 170, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 171, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 172, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 173, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 174, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 175, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 176, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 177, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 178, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 179, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 180, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 181, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 184, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 185, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 186, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 187, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 188, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 189, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 190, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 191, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 192, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 193, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 194, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 195, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 196, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 197, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 198, /* VAR_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 199, /* VAR_RATELIMIT_FOR_DOMAIN */ + YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 200, /* VAR_RATELIMIT_BELOW_DOMAIN */ + YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 201, /* VAR_IP_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_RATELIMIT_FACTOR = 202, /* VAR_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 203, /* VAR_SEND_CLIENT_SUBNET */ + YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 204, /* VAR_CLIENT_SUBNET_ZONE */ + YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 205, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 206, /* VAR_CLIENT_SUBNET_OPCODE */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 207, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 208, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 209, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 210, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 211, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 212, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + YYSYMBOL_VAR_CAPS_WHITELIST = 213, /* VAR_CAPS_WHITELIST */ + YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 214, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 215, /* VAR_PERMIT_SMALL_HOLDDOWN */ + YYSYMBOL_VAR_QNAME_MINIMISATION = 216, /* VAR_QNAME_MINIMISATION */ + YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 217, /* VAR_QNAME_MINIMISATION_STRICT */ + YYSYMBOL_VAR_IP_FREEBIND = 218, /* VAR_IP_FREEBIND */ + YYSYMBOL_VAR_DEFINE_TAG = 219, /* VAR_DEFINE_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_TAG = 220, /* VAR_LOCAL_ZONE_TAG */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 221, /* VAR_ACCESS_CONTROL_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 222, /* VAR_LOCAL_ZONE_OVERRIDE */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 223, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 224, /* VAR_ACCESS_CONTROL_TAG_DATA */ + YYSYMBOL_VAR_VIEW = 225, /* VAR_VIEW */ + YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 226, /* VAR_ACCESS_CONTROL_VIEW */ + YYSYMBOL_VAR_VIEW_FIRST = 227, /* VAR_VIEW_FIRST */ + YYSYMBOL_VAR_SERVE_EXPIRED = 228, /* VAR_SERVE_EXPIRED */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 229, /* VAR_SERVE_EXPIRED_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 230, /* VAR_SERVE_EXPIRED_TTL_RESET */ + YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 231, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 232, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 233, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 234, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 235, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 236, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 237, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 238, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 239, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 240, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 241, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 242, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 243, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 244, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 245, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 246, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 247, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 248, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 249, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 250, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 251, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 252, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 253, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 254, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 255, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 256, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 257, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 258, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 259, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 260, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 261, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 262, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 263, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 264, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 265, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 266, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 267, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 268, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 269, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 270, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 271, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 272, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 273, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 274, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 275, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 276, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 277, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 278, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 279, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 280, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 281, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 282, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 283, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 284, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 285, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 286, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 287, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 288, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 289, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 290, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 291, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 292, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 293, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 294, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 295, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 296, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 297, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 298, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 299, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 300, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 301, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 302, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 303, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 304, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 305, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 306, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 307, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 308, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 309, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 310, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 311, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 312, /* VAR_NSID */ + YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 313, /* VAR_ZONEMD_PERMISSIVE_MODE */ + YYSYMBOL_VAR_ZONEMD_CHECK = 314, /* VAR_ZONEMD_CHECK */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 315, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 316, /* $accept */ + YYSYMBOL_toplevelvars = 317, /* toplevelvars */ + YYSYMBOL_toplevelvar = 318, /* toplevelvar */ + YYSYMBOL_force_toplevel = 319, /* force_toplevel */ + YYSYMBOL_serverstart = 320, /* serverstart */ + YYSYMBOL_contents_server = 321, /* contents_server */ + YYSYMBOL_content_server = 322, /* content_server */ + YYSYMBOL_stubstart = 323, /* stubstart */ + YYSYMBOL_contents_stub = 324, /* contents_stub */ + YYSYMBOL_content_stub = 325, /* content_stub */ + YYSYMBOL_forwardstart = 326, /* forwardstart */ + YYSYMBOL_contents_forward = 327, /* contents_forward */ + YYSYMBOL_content_forward = 328, /* content_forward */ + YYSYMBOL_viewstart = 329, /* viewstart */ + YYSYMBOL_contents_view = 330, /* contents_view */ + YYSYMBOL_content_view = 331, /* content_view */ + YYSYMBOL_authstart = 332, /* authstart */ + YYSYMBOL_contents_auth = 333, /* contents_auth */ + YYSYMBOL_content_auth = 334, /* content_auth */ + YYSYMBOL_rpz_tag = 335, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 336, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 337, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 338, /* rpz_log */ + YYSYMBOL_rpz_log_name = 339, /* rpz_log_name */ + YYSYMBOL_rpzstart = 340, /* rpzstart */ + YYSYMBOL_contents_rpz = 341, /* contents_rpz */ + YYSYMBOL_content_rpz = 342, /* content_rpz */ + YYSYMBOL_server_num_threads = 343, /* server_num_threads */ + YYSYMBOL_server_verbosity = 344, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 345, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 346, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 347, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 348, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 349, /* server_shm_key */ + YYSYMBOL_server_port = 350, /* server_port */ + YYSYMBOL_server_send_client_subnet = 351, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 352, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 353, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 354, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 355, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 356, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 357, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 358, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 359, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 360, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 361, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 362, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 363, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 364, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 365, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 366, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 367, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 368, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 369, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 370, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 371, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 372, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 373, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 374, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 375, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 376, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 377, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 378, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 379, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_auth_query_timeout = 380, /* server_tcp_auth_query_timeout */ + YYSYMBOL_server_tcp_keepalive = 381, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 382, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 383, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 384, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 385, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 386, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 387, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 388, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 389, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 390, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 391, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 392, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 393, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 394, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 395, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 396, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 397, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 398, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 399, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 400, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 401, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 402, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 403, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 404, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 405, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 406, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 407, /* server_log_queries */ + YYSYMBOL_server_log_replies = 408, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 409, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 410, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 411, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 412, /* server_chroot */ + YYSYMBOL_server_username = 413, /* server_username */ + YYSYMBOL_server_directory = 414, /* server_directory */ + YYSYMBOL_server_logfile = 415, /* server_logfile */ + YYSYMBOL_server_pidfile = 416, /* server_pidfile */ + YYSYMBOL_server_root_hints = 417, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 418, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 419, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 420, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 421, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 422, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 423, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 424, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 425, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 426, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 427, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 428, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 429, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 430, /* server_identity */ + YYSYMBOL_server_version = 431, /* server_version */ + YYSYMBOL_server_nsid = 432, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 433, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 434, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 435, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 436, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 437, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 438, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 439, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 440, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 441, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 442, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 443, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 444, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 445, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 446, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 447, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 448, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 449, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 450, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 451, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 452, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 453, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 454, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 455, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 456, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 457, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 458, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 459, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 460, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 461, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 462, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 463, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 464, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 465, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 466, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 467, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 468, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 469, /* server_private_address */ + YYSYMBOL_server_private_domain = 470, /* server_private_domain */ + YYSYMBOL_server_prefetch = 471, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 472, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 473, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 474, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 475, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 476, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 477, /* server_access_control */ + YYSYMBOL_server_module_conf = 478, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 479, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 480, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 481, /* server_val_sig_skew_max */ + YYSYMBOL_server_val_max_restart = 482, /* server_val_max_restart */ + YYSYMBOL_server_cache_max_ttl = 483, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 484, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 485, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 486, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 487, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 488, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 489, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 490, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 491, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 492, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 493, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 494, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 495, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 496, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 497, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 498, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 499, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 500, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 501, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 502, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 503, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 504, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 505, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 506, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 507, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 508, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 509, /* server_local_zone */ + YYSYMBOL_server_local_data = 510, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 511, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 512, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 513, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 514, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 515, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 516, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 517, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 518, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 519, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 520, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 521, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 522, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 523, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 524, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 525, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 526, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 527, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 528, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 529, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 530, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 531, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 532, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 533, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 534, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 535, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 536, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 537, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 538, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 539, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 540, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 541, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 542, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 543, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 544, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 545, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 546, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 547, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 548, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 549, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 550, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 551, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 552, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 553, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 554, /* stub_name */ + YYSYMBOL_stub_host = 555, /* stub_host */ + YYSYMBOL_stub_addr = 556, /* stub_addr */ + YYSYMBOL_stub_first = 557, /* stub_first */ + YYSYMBOL_stub_no_cache = 558, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 559, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 560, /* stub_prime */ + YYSYMBOL_forward_name = 561, /* forward_name */ + YYSYMBOL_forward_host = 562, /* forward_host */ + YYSYMBOL_forward_addr = 563, /* forward_addr */ + YYSYMBOL_forward_first = 564, /* forward_first */ + YYSYMBOL_forward_no_cache = 565, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 566, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 567, /* auth_name */ + YYSYMBOL_auth_zonefile = 568, /* auth_zonefile */ + YYSYMBOL_auth_master = 569, /* auth_master */ + YYSYMBOL_auth_url = 570, /* auth_url */ + YYSYMBOL_auth_allow_notify = 571, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_check = 572, /* auth_zonemd_check */ + YYSYMBOL_auth_zonemd_reject_absence = 573, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 574, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 575, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 576, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 577, /* view_name */ + YYSYMBOL_view_local_zone = 578, /* view_local_zone */ + YYSYMBOL_view_response_ip = 579, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 580, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 581, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 582, /* view_local_data_ptr */ + YYSYMBOL_view_first = 583, /* view_first */ + YYSYMBOL_rcstart = 584, /* rcstart */ + YYSYMBOL_contents_rc = 585, /* contents_rc */ + YYSYMBOL_content_rc = 586, /* content_rc */ + YYSYMBOL_rc_control_enable = 587, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 588, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 589, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 590, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 591, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 592, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 593, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 594, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 595, /* dtstart */ + YYSYMBOL_contents_dt = 596, /* contents_dt */ + YYSYMBOL_content_dt = 597, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 598, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 599, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 600, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 601, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 602, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 603, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 604, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 605, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 606, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 607, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 608, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 609, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 610, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 611, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 612, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 613, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 614, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 615, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 616, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 617, /* pythonstart */ + YYSYMBOL_contents_py = 618, /* contents_py */ + YYSYMBOL_content_py = 619, /* content_py */ + YYSYMBOL_py_script = 620, /* py_script */ + YYSYMBOL_dynlibstart = 621, /* dynlibstart */ + YYSYMBOL_contents_dl = 622, /* contents_dl */ + YYSYMBOL_content_dl = 623, /* content_dl */ + YYSYMBOL_dl_file = 624, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 625, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 626, /* server_log_identity */ + YYSYMBOL_server_response_ip = 627, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 628, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 629, /* dnscstart */ + YYSYMBOL_contents_dnsc = 630, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 631, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 632, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 633, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 634, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 635, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 636, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 637, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 638, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 639, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 640, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 641, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 642, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 643, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 644, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 645, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 646, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 647, /* redis_server_host */ + YYSYMBOL_redis_server_port = 648, /* redis_server_port */ + YYSYMBOL_redis_timeout = 649, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 650, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 651, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 652, /* ipsetstart */ + YYSYMBOL_contents_ipset = 653, /* contents_ipset */ + YYSYMBOL_content_ipset = 654, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 655, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 656 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1762,18 +1090,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 666 +#define YYLAST 668 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 315 +#define YYNTOKENS 316 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 340 +#define YYNNTS 341 /* YYNRULES -- Number of rules. */ -#define YYNRULES 656 +#define YYNRULES 658 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 975 +#define YYNSTATES 978 -#define YYMAXUTOK 569 +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 570 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1843,79 +1172,80 @@ static const yytype_int16 yytranslate[] = 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 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 188, 188, 188, 189, 189, 190, 190, 191, 191, - 191, 192, 192, 193, 193, 194, 194, 195, 197, 203, - 208, 209, 210, 210, 210, 211, 211, 212, 212, 212, - 213, 213, 214, 214, 214, 215, 215, 216, 216, 216, - 217, 217, 217, 218, 218, 219, 219, 220, 220, 221, - 221, 222, 222, 223, 223, 224, 224, 225, 225, 226, - 226, 226, 227, 227, 227, 228, 228, 228, 229, 229, - 230, 230, 231, 231, 232, 232, 233, 233, 233, 234, - 234, 235, 235, 236, 236, 236, 237, 237, 238, 238, - 239, 239, 240, 240, 240, 241, 241, 242, 242, 243, - 243, 244, 244, 245, 245, 246, 246, 246, 247, 247, - 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, - 251, 251, 251, 252, 253, 253, 253, 254, 254, 254, - 255, 255, 256, 256, 257, 257, 257, 258, 258, 258, - 259, 259, 260, 260, 260, 261, 261, 262, 262, 262, - 263, 263, 264, 264, 265, 265, 266, 267, 267, 268, - 268, 269, 269, 270, 271, 271, 272, 272, 273, 273, - 274, 274, 275, 275, 276, 276, 276, 277, 277, 278, - 278, 279, 279, 280, 281, 281, 282, 282, 283, 284, - 284, 285, 285, 286, 286, 287, 287, 288, 288, 288, - 289, 289, 289, 290, 290, 291, 292, 292, 293, 293, - 294, 294, 295, 295, 296, 296, 296, 297, 297, 297, - 298, 298, 298, 299, 299, 300, 300, 301, 301, 302, - 302, 303, 303, 304, 304, 305, 305, 308, 320, 321, - 322, 322, 322, 322, 322, 323, 323, 325, 337, 338, - 339, 339, 339, 339, 340, 340, 342, 356, 357, 358, - 358, 358, 358, 359, 359, 359, 361, 380, 381, 382, - 382, 382, 382, 383, 383, 383, 384, 384, 384, 387, - 406, 423, 431, 441, 449, 466, 467, 468, 468, 468, - 468, 468, 469, 469, 469, 470, 470, 472, 481, 490, - 501, 510, 519, 528, 539, 548, 560, 574, 589, 600, - 617, 634, 651, 668, 683, 698, 711, 726, 735, 744, - 753, 762, 771, 780, 789, 798, 807, 816, 825, 834, - 843, 852, 865, 876, 887, 898, 907, 920, 929, 938, - 947, 954, 961, 970, 977, 986, 994, 1001, 1008, 1016, - 1025, 1033, 1049, 1057, 1065, 1073, 1081, 1089, 1098, 1107, - 1121, 1130, 1139, 1148, 1157, 1166, 1175, 1182, 1189, 1215, - 1223, 1230, 1237, 1244, 1251, 1259, 1267, 1275, 1282, 1293, - 1304, 1311, 1320, 1329, 1338, 1345, 1352, 1368, 1376, 1384, - 1394, 1404, 1414, 1428, 1436, 1449, 1460, 1468, 1481, 1490, - 1499, 1508, 1517, 1527, 1537, 1545, 1558, 1567, 1575, 1584, - 1592, 1605, 1614, 1624, 1631, 1641, 1651, 1661, 1671, 1681, - 1691, 1701, 1711, 1718, 1725, 1732, 1741, 1750, 1759, 1768, - 1775, 1785, 1805, 1812, 1830, 1843, 1856, 1865, 1874, 1883, - 1892, 1902, 1912, 1923, 1932, 1941, 1950, 1959, 1968, 1977, - 1986, 1999, 2012, 2021, 2028, 2037, 2046, 2055, 2064, 2073, - 2081, 2094, 2102, 2147, 2154, 2169, 2179, 2189, 2196, 2203, - 2210, 2219, 2227, 2241, 2262, 2283, 2295, 2307, 2319, 2328, - 2349, 2359, 2368, 2376, 2384, 2397, 2410, 2425, 2440, 2449, - 2458, 2464, 2473, 2482, 2492, 2502, 2512, 2521, 2531, 2540, - 2553, 2566, 2578, 2592, 2604, 2618, 2627, 2639, 2649, 2656, - 2663, 2672, 2681, 2691, 2701, 2711, 2718, 2725, 2734, 2743, - 2753, 2763, 2770, 2777, 2784, 2792, 2802, 2812, 2822, 2832, - 2842, 2852, 2898, 2908, 2916, 2924, 2939, 2948, 2953, 2954, - 2955, 2955, 2955, 2956, 2956, 2956, 2957, 2957, 2959, 2969, - 2978, 2985, 2992, 2999, 3006, 3013, 3020, 3025, 3026, 3027, - 3027, 3027, 3028, 3028, 3028, 3029, 3030, 3030, 3031, 3031, - 3032, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3040, 3049, - 3059, 3066, 3073, 3082, 3089, 3096, 3103, 3110, 3119, 3128, - 3135, 3142, 3152, 3162, 3172, 3182, 3192, 3202, 3207, 3208, - 3209, 3211, 3217, 3222, 3223, 3224, 3226, 3232, 3242, 3249, - 3258, 3266, 3271, 3272, 3274, 3274, 3274, 3275, 3275, 3276, - 3277, 3278, 3279, 3280, 3282, 3292, 3301, 3308, 3317, 3324, - 3333, 3341, 3354, 3362, 3375, 3380, 3381, 3382, 3382, 3383, - 3383, 3383, 3384, 3386, 3398, 3410, 3422, 3437, 3450, 3463, - 3474, 3479, 3480, 3481, 3481, 3483, 3498 + 0, 189, 189, 189, 190, 190, 191, 191, 192, 192, + 192, 193, 193, 194, 194, 195, 195, 196, 198, 204, + 209, 210, 211, 211, 211, 212, 212, 213, 213, 213, + 214, 214, 215, 215, 215, 216, 216, 217, 217, 217, + 218, 218, 218, 219, 219, 220, 220, 221, 221, 222, + 222, 223, 223, 224, 224, 225, 225, 226, 226, 227, + 227, 227, 228, 228, 228, 229, 229, 229, 230, 230, + 231, 231, 232, 232, 233, 233, 234, 234, 234, 235, + 235, 236, 236, 237, 237, 237, 238, 238, 239, 239, + 240, 240, 241, 241, 241, 242, 242, 243, 243, 244, + 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, + 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, + 253, 253, 253, 253, 254, 255, 255, 255, 256, 256, + 256, 257, 257, 258, 258, 259, 259, 259, 260, 260, + 260, 261, 261, 262, 262, 262, 263, 263, 264, 264, + 264, 265, 265, 266, 266, 267, 267, 268, 269, 269, + 270, 270, 271, 271, 272, 273, 273, 274, 274, 275, + 275, 276, 276, 277, 277, 278, 278, 278, 279, 279, + 280, 280, 281, 281, 282, 283, 283, 284, 284, 285, + 286, 286, 287, 287, 288, 288, 289, 289, 290, 290, + 290, 291, 291, 291, 292, 292, 293, 294, 294, 295, + 295, 296, 296, 297, 297, 298, 298, 298, 299, 299, + 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, + 304, 304, 305, 305, 306, 306, 307, 307, 310, 322, + 323, 324, 324, 324, 324, 324, 325, 325, 327, 339, + 340, 341, 341, 341, 341, 342, 342, 344, 358, 359, + 360, 360, 360, 360, 361, 361, 361, 363, 382, 383, + 384, 384, 384, 384, 385, 385, 385, 386, 386, 386, + 389, 408, 425, 433, 443, 451, 468, 469, 470, 470, + 470, 470, 470, 471, 471, 471, 472, 472, 474, 483, + 492, 503, 512, 521, 530, 541, 550, 562, 576, 591, + 602, 619, 636, 653, 670, 685, 700, 713, 728, 737, + 746, 755, 764, 773, 782, 791, 800, 809, 818, 827, + 836, 845, 854, 867, 878, 889, 900, 909, 922, 931, + 940, 949, 956, 963, 972, 979, 988, 996, 1003, 1010, + 1018, 1027, 1035, 1051, 1059, 1067, 1075, 1083, 1091, 1100, + 1109, 1123, 1132, 1141, 1150, 1159, 1168, 1177, 1184, 1191, + 1217, 1225, 1232, 1239, 1246, 1253, 1261, 1269, 1277, 1284, + 1295, 1306, 1313, 1322, 1331, 1340, 1347, 1354, 1370, 1378, + 1386, 1396, 1406, 1416, 1430, 1438, 1451, 1462, 1470, 1483, + 1492, 1501, 1510, 1519, 1529, 1539, 1547, 1560, 1569, 1577, + 1586, 1594, 1607, 1616, 1626, 1633, 1643, 1653, 1663, 1673, + 1683, 1693, 1703, 1713, 1720, 1727, 1734, 1743, 1752, 1761, + 1770, 1777, 1787, 1807, 1814, 1832, 1845, 1858, 1871, 1880, + 1889, 1898, 1907, 1917, 1927, 1938, 1947, 1956, 1965, 1974, + 1983, 1992, 2001, 2014, 2027, 2036, 2043, 2052, 2061, 2070, + 2079, 2088, 2096, 2109, 2117, 2162, 2169, 2184, 2194, 2204, + 2211, 2218, 2225, 2234, 2242, 2256, 2277, 2298, 2310, 2322, + 2334, 2343, 2364, 2374, 2383, 2391, 2399, 2412, 2425, 2440, + 2455, 2464, 2473, 2479, 2488, 2497, 2507, 2517, 2527, 2536, + 2546, 2555, 2568, 2581, 2593, 2607, 2619, 2633, 2642, 2654, + 2664, 2671, 2678, 2687, 2696, 2706, 2716, 2726, 2733, 2740, + 2749, 2758, 2768, 2778, 2785, 2792, 2799, 2807, 2817, 2827, + 2837, 2847, 2857, 2867, 2913, 2923, 2931, 2939, 2954, 2963, + 2968, 2969, 2970, 2970, 2970, 2971, 2971, 2971, 2972, 2972, + 2974, 2984, 2993, 3000, 3007, 3014, 3021, 3028, 3035, 3040, + 3041, 3042, 3042, 3042, 3043, 3043, 3043, 3044, 3045, 3045, + 3046, 3046, 3047, 3047, 3048, 3049, 3050, 3051, 3052, 3053, + 3055, 3064, 3074, 3081, 3088, 3097, 3104, 3111, 3118, 3125, + 3134, 3143, 3150, 3157, 3167, 3177, 3187, 3197, 3207, 3217, + 3222, 3223, 3224, 3226, 3232, 3237, 3238, 3239, 3241, 3247, + 3257, 3264, 3273, 3281, 3286, 3287, 3289, 3289, 3289, 3290, + 3290, 3291, 3292, 3293, 3294, 3295, 3297, 3307, 3316, 3323, + 3332, 3339, 3348, 3356, 3369, 3377, 3390, 3395, 3396, 3397, + 3397, 3398, 3398, 3398, 3399, 3401, 3413, 3425, 3437, 3452, + 3465, 3478, 3489, 3494, 3495, 3496, 3496, 3498, 3513 }; #endif @@ -1969,14 +1299,14 @@ static const char *const yytname[] = "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", - "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL", - "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", - "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", - "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY", - "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN", - "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_LOG_REPLIES", - "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM", - "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY", + "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_VAL_MAX_RESTART", + "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", + "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", + "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", + "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", + "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", + "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", + "VAR_SSL_UPSTREAM", "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT", @@ -2116,17 +1446,17 @@ static const char *const yytname[] = "server_do_not_query_address", "server_do_not_query_localhost", "server_access_control", "server_module_conf", "server_val_override_date", "server_val_sig_skew_min", - "server_val_sig_skew_max", "server_cache_max_ttl", - "server_cache_max_negative_ttl", "server_cache_min_ttl", - "server_bogus_ttl", "server_val_clean_additional", - "server_val_permissive_mode", "server_aggressive_nsec", - "server_ignore_cd_flag", "server_serve_expired", - "server_serve_expired_ttl", "server_serve_expired_ttl_reset", - "server_serve_expired_reply_ttl", "server_serve_expired_client_timeout", - "server_serve_original_ttl", "server_fake_dsa", "server_fake_sha1", - "server_val_log_level", "server_val_nsec3_keysize_iterations", - "server_zonemd_permissive_mode", "server_add_holddown", - "server_del_holddown", "server_keep_missing", + "server_val_sig_skew_max", "server_val_max_restart", + "server_cache_max_ttl", "server_cache_max_negative_ttl", + "server_cache_min_ttl", "server_bogus_ttl", + "server_val_clean_additional", "server_val_permissive_mode", + "server_aggressive_nsec", "server_ignore_cd_flag", + "server_serve_expired", "server_serve_expired_ttl", + "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl", + "server_serve_expired_client_timeout", "server_serve_original_ttl", + "server_fake_dsa", "server_fake_sha1", "server_val_log_level", + "server_val_nsec3_keysize_iterations", "server_zonemd_permissive_mode", + "server_add_holddown", "server_del_holddown", "server_keep_missing", "server_permit_small_holddown", "server_key_cache_size", "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", "server_local_data", "server_local_data_ptr", "server_minimal_responses", @@ -2231,11 +1561,11 @@ static const yytype_int16 yytoknum[] = 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569 + 565, 566, 567, 568, 569, 570 }; #endif -#define YYPACT_NINF (-299) +#define YYPACT_NINF (-300) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -2249,104 +1579,104 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -299, 0, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 295, -43, -38, -42, -44, -28, -29, -148, - -109, -298, -191, -189, -290, 3, 4, 27, 28, 31, + -300, 0, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 296, -43, -38, -42, -44, -28, -29, -149, + -109, -299, -192, -190, -291, 3, 4, 27, 28, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 53, 54, 55, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 87, 88, 90, 91, - 92, 94, 96, 97, 98, 100, 101, 102, 103, 105, + 80, 81, 82, 83, 84, 85, 87, 88, 89, 91, + 92, 93, 95, 97, 98, 99, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 136, 137, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, + 148, 149, 150, 151, 152, 153, 154, 155, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 175, 176, 177, 178, 179, + 169, 170, 171, 172, 173, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 215, 216, 217, 219, 225, 226, - 227, 228, 229, 231, 232, 234, 240, 241, 242, 243, - 244, 245, 247, 248, 249, 250, 251, 252, 253, 255, - 256, 257, 258, 261, 262, 269, 270, 271, 272, 273, + 210, 211, 212, 213, 214, 216, 217, 218, 220, 226, + 227, 228, 229, 230, 232, 233, 235, 241, 242, 243, + 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, + 256, 257, 258, 259, 262, 263, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 288, 289, 290, 292, 293, 294, 296, - 330, 331, 332, 333, 337, 338, 339, 381, 382, 383, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 384, 385, 386, 387, - 388, 389, 395, -299, -299, -299, -299, -299, -299, -299, - -299, 399, 400, 426, 427, 428, 437, -299, -299, -299, - -299, -299, -299, -299, 450, 451, 452, 453, 454, 455, - 456, -299, -299, -299, -299, -299, -299, -299, -299, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 467, 468, 469, 509, 511, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 528, 529, 530, 531, - 532, 533, 534, 535, -299, -299, -299, -299, -299, -299, - -299, -299, -299, 536, 537, 538, 549, 550, 551, 552, - 553, 554, 555, 557, 558, 559, 560, 561, 562, 563, - 566, 569, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, 572, -299, -299, 573, -299, -299, 582, 583, - 584, 586, 587, 588, 589, 590, 591, 592, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 593, - 598, 599, 600, 601, 602, -299, -299, -299, -299, -299, - -299, -299, 603, 604, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, 605, 606, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 607, 608, 609, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, 610, - 611, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 612, 613, 614, 615, 616, 617, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 618, -299, - -299, -299, -299, -299, -299, -299, -299, -299, 619, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, 620, -299, -299, 621, - 622, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, 623, 624, 625, -299, -299, -299, -299, - -299, -299, -299, -299, -299 + 284, 285, 286, 287, 289, 290, 291, 293, 294, 295, + 297, 331, 332, 333, 334, 338, 339, 340, 382, 383, + 384, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, 385, 386, + 387, 388, 389, 390, 396, -300, -300, -300, -300, -300, + -300, -300, -300, 400, 401, 428, 429, 430, 439, -300, + -300, -300, -300, -300, -300, -300, 452, 453, 454, 455, + 456, 457, 458, -300, -300, -300, -300, -300, -300, -300, + -300, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 469, 470, 471, 511, 513, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, 530, 531, + 532, 533, 534, 535, 536, 537, -300, -300, -300, -300, + -300, -300, -300, -300, -300, 538, 539, 540, 551, 552, + 553, 554, 555, 556, 557, 559, 560, 561, 562, 563, + 564, 565, 568, 571, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, 574, -300, -300, 575, -300, -300, + 584, 585, 586, 588, 589, 590, 591, 592, 593, 594, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 595, 600, 601, 602, 603, 604, -300, -300, -300, + -300, -300, -300, -300, 605, 606, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 607, + 608, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 609, + 610, 611, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, 612, 613, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, 614, 615, 616, 617, 618, 619, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 620, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 621, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, 622, + -300, -300, 623, 624, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, 625, 626, 627, -300, + -300, -300, -300, -300, -300, -300, -300, -300 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -2354,10 +1684,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 237, 247, 537, 597, 556, - 256, 611, 634, 266, 650, 284, 602, 3, 17, 21, - 239, 249, 258, 268, 286, 539, 558, 599, 604, 613, - 636, 652, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 238, 248, 539, 599, 558, + 257, 613, 636, 267, 652, 285, 604, 3, 17, 21, + 240, 250, 259, 269, 287, 541, 560, 601, 606, 615, + 638, 654, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2380,156 +1710,158 @@ static const yytype_int16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 22, 23, 86, 89, 98, 200, 201, 24, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 37, - 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, - 31, 28, 29, 32, 33, 34, 234, 235, 236, 35, - 36, 121, 212, 122, 124, 125, 126, 214, 219, 215, - 226, 227, 228, 229, 127, 128, 129, 130, 131, 132, - 133, 196, 87, 76, 102, 119, 120, 224, 221, 123, - 38, 39, 40, 41, 42, 78, 92, 93, 108, 64, - 74, 65, 204, 205, 103, 58, 59, 203, 60, 61, - 232, 112, 116, 137, 147, 174, 150, 225, 113, 71, - 43, 44, 45, 100, 138, 139, 140, 141, 46, 47, - 49, 50, 52, 53, 51, 145, 151, 54, 55, 56, - 62, 81, 117, 95, 146, 88, 170, 96, 97, 114, - 115, 222, 101, 57, 79, 82, 63, 66, 104, 105, - 80, 171, 106, 67, 68, 69, 213, 118, 188, 189, - 190, 191, 192, 193, 194, 202, 107, 75, 233, 109, - 110, 111, 172, 72, 73, 94, 83, 84, 99, 134, - 135, 223, 136, 142, 143, 144, 175, 176, 178, 180, - 181, 179, 182, 197, 148, 149, 154, 155, 152, 153, - 156, 157, 159, 158, 216, 218, 217, 173, 183, 184, - 185, 186, 187, 206, 208, 207, 209, 210, 211, 230, - 231, 177, 195, 198, 199, 220, 0, 0, 0, 0, - 0, 0, 0, 238, 240, 241, 242, 244, 245, 246, - 243, 0, 0, 0, 0, 0, 0, 248, 250, 251, - 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, - 0, 257, 259, 260, 263, 264, 261, 265, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, - 269, 270, 271, 272, 276, 277, 278, 273, 274, 275, - 0, 0, 0, 0, 0, 289, 293, 294, 295, 296, - 285, 287, 288, 290, 291, 292, 0, 0, 0, 0, - 0, 0, 0, 0, 538, 540, 542, 541, 547, 543, - 544, 545, 546, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 22, 23, 86, 89, 98, 201, 202, 24, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 37, 77, 25, 90, 91, 48, 70, 85, 26, 27, + 30, 31, 28, 29, 32, 33, 34, 235, 236, 237, + 35, 36, 122, 213, 123, 125, 126, 127, 215, 220, + 216, 227, 228, 229, 230, 128, 129, 130, 131, 132, + 133, 134, 197, 87, 76, 102, 120, 121, 225, 222, + 124, 38, 39, 40, 41, 42, 78, 92, 93, 109, + 64, 74, 65, 205, 206, 103, 58, 59, 204, 60, + 61, 233, 113, 117, 138, 148, 175, 151, 226, 114, + 71, 43, 44, 45, 100, 139, 140, 141, 142, 46, + 47, 49, 50, 52, 53, 51, 146, 152, 54, 55, + 56, 62, 81, 118, 95, 147, 88, 171, 96, 97, + 115, 116, 223, 101, 57, 79, 82, 63, 66, 104, + 105, 106, 80, 172, 107, 67, 68, 69, 214, 119, + 189, 190, 191, 192, 193, 194, 195, 203, 108, 75, + 234, 110, 111, 112, 173, 72, 73, 94, 83, 84, + 99, 135, 136, 224, 137, 143, 144, 145, 176, 177, + 179, 181, 182, 180, 183, 198, 149, 150, 155, 156, + 153, 154, 157, 158, 160, 159, 217, 219, 218, 174, + 184, 185, 186, 187, 188, 207, 209, 208, 210, 211, + 212, 231, 232, 178, 196, 199, 200, 221, 0, 0, + 0, 0, 0, 0, 0, 239, 241, 242, 243, 245, + 246, 247, 244, 0, 0, 0, 0, 0, 0, 249, + 251, 252, 253, 254, 255, 256, 0, 0, 0, 0, + 0, 0, 0, 258, 260, 261, 264, 265, 262, 266, + 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 268, 270, 271, 272, 273, 277, 278, 279, 274, + 275, 276, 0, 0, 0, 0, 0, 290, 294, 295, + 296, 297, 286, 288, 289, 291, 292, 293, 0, 0, + 0, 0, 0, 0, 0, 0, 540, 542, 544, 543, + 549, 545, 546, 547, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 559, 561, 560, 562, 563, 564, 565, + 0, 0, 0, 0, 559, 561, 563, 562, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 0, 598, 600, 0, 603, 605, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 612, 614, - 615, 616, 618, 619, 617, 620, 621, 622, 623, 0, - 0, 0, 0, 0, 0, 635, 637, 638, 639, 640, - 641, 642, 0, 0, 651, 653, 654, 298, 297, 304, - 317, 315, 327, 323, 324, 328, 325, 326, 329, 330, - 331, 335, 336, 366, 367, 368, 369, 370, 396, 397, - 398, 404, 405, 320, 406, 407, 410, 408, 409, 413, - 414, 415, 429, 381, 382, 384, 385, 416, 432, 375, - 377, 433, 439, 440, 441, 321, 395, 459, 460, 376, - 453, 359, 316, 371, 430, 436, 417, 0, 0, 463, - 322, 299, 358, 421, 300, 318, 319, 372, 373, 461, - 419, 423, 424, 333, 332, 301, 464, 399, 428, 360, - 380, 434, 435, 438, 452, 374, 457, 455, 456, 387, - 394, 425, 426, 388, 389, 418, 443, 361, 362, 365, - 337, 339, 334, 340, 341, 342, 343, 350, 351, 352, - 353, 354, 355, 356, 465, 466, 468, 400, 401, 402, - 403, 411, 412, 469, 470, 471, 0, 0, 0, 420, - 390, 392, 607, 480, 484, 482, 481, 485, 483, 0, - 0, 488, 489, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 422, 437, 458, 493, 494, 391, 472, - 0, 0, 0, 0, 0, 0, 444, 445, 446, 447, - 448, 449, 450, 451, 608, 383, 378, 442, 357, 302, - 303, 379, 495, 496, 497, 498, 499, 501, 500, 502, - 503, 504, 338, 345, 490, 492, 491, 344, 0, 364, - 427, 467, 363, 393, 346, 347, 349, 348, 0, 506, - 386, 454, 507, 508, 509, 513, 512, 510, 511, 514, - 515, 516, 517, 519, 518, 530, 0, 534, 535, 0, - 0, 536, 520, 528, 521, 522, 523, 527, 529, 524, - 525, 526, 279, 280, 281, 282, 283, 548, 550, 549, - 552, 553, 554, 555, 551, 578, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 579, 589, 590, 591, 592, - 593, 594, 595, 596, 601, 606, 624, 625, 626, 629, - 627, 628, 630, 631, 632, 633, 643, 644, 645, 646, - 647, 648, 655, 656, 431, 462, 479, 609, 610, 486, - 487, 473, 474, 0, 0, 0, 478, 649, 505, 531, - 532, 533, 477, 475, 476 + 576, 577, 578, 579, 0, 600, 602, 0, 605, 607, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 614, 616, 617, 618, 620, 621, 619, 622, 623, 624, + 625, 0, 0, 0, 0, 0, 0, 637, 639, 640, + 641, 642, 643, 644, 0, 0, 653, 655, 656, 299, + 298, 305, 318, 316, 328, 324, 325, 329, 326, 327, + 330, 331, 332, 336, 337, 367, 368, 369, 370, 371, + 397, 398, 399, 405, 406, 321, 407, 408, 411, 409, + 410, 414, 415, 416, 430, 382, 383, 385, 386, 417, + 433, 376, 378, 434, 441, 442, 443, 322, 396, 461, + 462, 377, 455, 360, 317, 372, 431, 438, 418, 0, + 0, 465, 323, 300, 359, 422, 301, 319, 320, 373, + 374, 463, 420, 424, 425, 334, 333, 302, 466, 400, + 429, 361, 381, 435, 436, 437, 440, 454, 375, 459, + 457, 458, 388, 395, 426, 427, 389, 390, 419, 445, + 362, 363, 366, 338, 340, 335, 341, 342, 343, 344, + 351, 352, 353, 354, 355, 356, 357, 467, 468, 470, + 401, 402, 403, 404, 412, 413, 471, 472, 473, 0, + 0, 0, 421, 391, 393, 609, 482, 486, 484, 483, + 487, 485, 0, 0, 490, 491, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 423, 439, 460, 495, + 496, 392, 474, 0, 0, 0, 0, 0, 0, 446, + 447, 448, 449, 450, 451, 452, 453, 610, 384, 379, + 444, 358, 303, 304, 380, 497, 498, 499, 500, 501, + 503, 502, 504, 505, 506, 339, 346, 492, 494, 493, + 345, 0, 365, 428, 469, 364, 394, 347, 348, 350, + 349, 0, 508, 387, 456, 509, 510, 511, 515, 514, + 512, 513, 516, 517, 518, 519, 521, 520, 532, 0, + 536, 537, 0, 0, 538, 522, 530, 523, 524, 525, + 529, 531, 526, 527, 528, 280, 281, 282, 283, 284, + 550, 552, 551, 554, 555, 556, 557, 553, 580, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 581, 591, + 592, 593, 594, 595, 596, 597, 598, 603, 608, 626, + 627, 628, 631, 629, 630, 632, 633, 634, 635, 645, + 646, 647, 648, 649, 650, 657, 658, 432, 464, 481, + 611, 612, 488, 489, 475, 476, 0, 0, 0, 480, + 651, 507, 533, 534, 535, 479, 477, 478 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - 268, 626, 627, 628, 629, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, - -299, -299, -299, -299, -299, -299, -299, -299, -299, -299 + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, 269, 628, 629, 630, 631, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, + -300 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 260, 20, 33, 483, - 21, 34, 497, 22, 35, 511, 23, 36, 529, 545, - 546, 547, 548, 549, 24, 37, 550, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 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, 484, 485, 486, - 487, 488, 489, 490, 498, 499, 500, 501, 502, 503, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 512, 513, 514, 515, 516, 517, 518, 25, 38, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 26, 39, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 27, 40, 613, 614, 28, 41, 616, 617, 471, 472, - 473, 474, 29, 42, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 30, 43, 645, 646, 647, - 648, 649, 650, 651, 475, 31, 44, 654, 655, 656 + -1, 1, 17, 18, 19, 32, 261, 20, 33, 485, + 21, 34, 499, 22, 35, 513, 23, 36, 531, 547, + 548, 549, 550, 551, 24, 37, 552, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 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, 486, 487, + 488, 489, 490, 491, 492, 500, 501, 502, 503, 504, + 505, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 514, 515, 516, 517, 518, 519, 520, 25, 38, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 26, + 39, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 27, 40, 615, 616, 28, 41, 618, 619, 473, + 474, 475, 476, 29, 42, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 30, 43, 647, 648, + 649, 650, 651, 652, 653, 477, 31, 44, 656, 657, + 658 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -2537,155 +1869,155 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 519, 476, 504, 477, 478, 612, 491, 652, 653, - 615, 3, 4, 657, 658, 492, 493, 519, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 659, 660, 505, - 506, 661, 662, 663, 664, 665, 5, 666, 667, 668, - 669, 670, 6, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 671, 672, 673, 507, 479, 556, 557, - 558, 559, 560, 561, 562, 563, 639, 640, 641, 642, - 643, 644, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 7, 688, 689, 480, - 690, 691, 692, 494, 693, 495, 694, 695, 696, 481, - 697, 698, 699, 700, 8, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 508, 509, 730, 731, 732, 733, - 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, - 744, 745, 746, 747, 748, 9, 749, 750, 751, 752, - 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 510, 767, 768, 769, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, - 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, - 802, 803, 804, 805, 10, 806, 807, 808, 520, 809, - 521, 522, 523, 524, 525, 810, 811, 812, 813, 814, - 526, 815, 816, 11, 817, 482, 521, 522, 523, 496, - 818, 819, 820, 821, 822, 823, 526, 824, 825, 826, - 827, 828, 829, 830, 12, 831, 832, 833, 834, 527, - 528, 835, 836, 13, 540, 541, 542, 543, 544, 837, - 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 850, 851, 852, 853, 854, 14, 855, 856, - 857, 15, 858, 859, 860, 551, 861, 16, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 862, 863, 864, 865, 77, 78, 79, 866, 867, 868, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 121, 122, 123, 124, 125, 878, 126, 127, 128, 879, - 880, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 881, 882, 883, 154, - 155, 156, 157, 158, 159, 160, 161, 884, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 905, - 213, 906, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 907, 908, - 909, 910, 911, 912, 913, 914, 915, 916, 917, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 918, - 919, 920, 921, 922, 923, 924, 240, 925, 926, 927, - 928, 929, 930, 931, 241, 242, 932, 243, 244, 933, - 245, 246, 934, 935, 247, 248, 249, 250, 251, 252, - 253, 254, 936, 937, 938, 255, 939, 940, 941, 942, - 943, 944, 945, 946, 256, 257, 258, 259, 947, 948, - 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, - 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, - 969, 970, 971, 972, 973, 974, 0, 0, 0, 0, + 2, 521, 478, 506, 479, 480, 614, 493, 654, 655, + 617, 3, 4, 659, 660, 494, 495, 521, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 661, 662, 507, + 508, 663, 664, 665, 666, 667, 5, 668, 669, 670, + 671, 672, 6, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 673, 674, 675, 509, 481, 558, 559, + 560, 561, 562, 563, 564, 565, 641, 642, 643, 644, + 645, 646, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 7, 690, 691, 692, + 482, 693, 694, 695, 496, 696, 497, 697, 698, 699, + 483, 700, 701, 702, 8, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 510, 511, 733, 734, 735, + 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, + 746, 747, 748, 749, 750, 751, 9, 752, 753, 754, + 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 512, 770, 771, 772, 773, + 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 10, 809, 810, 811, 522, + 812, 523, 524, 525, 526, 527, 813, 814, 815, 816, + 817, 528, 818, 819, 11, 820, 484, 523, 524, 525, + 498, 821, 822, 823, 824, 825, 826, 528, 827, 828, + 829, 830, 831, 832, 833, 12, 834, 835, 836, 837, + 529, 530, 838, 839, 13, 542, 543, 544, 545, 546, + 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, + 850, 851, 852, 853, 854, 855, 856, 857, 14, 858, + 859, 860, 15, 861, 862, 863, 553, 864, 16, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 865, 866, 867, 868, 77, 78, 79, 869, 870, + 871, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 872, 873, 874, 875, 876, 877, 878, 879, + 880, 121, 122, 123, 124, 125, 881, 126, 127, 128, + 882, 883, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 884, 885, + 886, 155, 156, 157, 158, 159, 160, 161, 162, 887, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 908, 214, 909, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, + 920, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 921, 922, 923, 924, 925, 926, 927, 241, 928, + 929, 930, 931, 932, 933, 934, 242, 243, 935, 244, + 245, 936, 246, 247, 937, 938, 248, 249, 250, 251, + 252, 253, 254, 255, 939, 940, 941, 256, 942, 943, + 944, 945, 946, 947, 948, 949, 257, 258, 259, 260, + 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 970, 971, 972, 973, 974, 975, 976, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 552, 553, 554, 555 + 0, 0, 0, 0, 0, 554, 555, 556, 557 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 47, 48, 115, 45, 298, 299, - 308, 11, 12, 10, 10, 53, 54, 45, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 10, 10, 81, + 0, 45, 45, 45, 47, 48, 115, 45, 299, 300, + 309, 11, 12, 10, 10, 53, 54, 45, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 10, 10, 81, 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, - 10, 10, 52, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 10, 10, 10, 108, 110, 97, 98, - 99, 100, 101, 102, 103, 104, 265, 266, 267, 268, - 269, 270, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 96, 10, 10, 142, - 10, 10, 10, 141, 10, 143, 10, 10, 10, 152, - 10, 10, 10, 10, 114, 10, 10, 10, 10, 10, + 10, 10, 52, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 10, 10, 10, 108, 110, 97, 98, + 99, 100, 101, 102, 103, 104, 266, 267, 268, 269, + 270, 271, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 96, 10, 10, 10, + 143, 10, 10, 10, 142, 10, 144, 10, 10, 10, + 153, 10, 10, 10, 114, 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, 186, 187, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 187, 188, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 165, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 166, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 226, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 227, 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, 224, 10, 10, 10, 272, 10, - 274, 275, 276, 277, 278, 10, 10, 10, 10, 10, - 284, 10, 10, 243, 10, 288, 274, 275, 276, 287, - 10, 10, 10, 10, 10, 10, 284, 10, 10, 10, - 10, 10, 10, 10, 264, 10, 10, 10, 10, 313, - 314, 10, 10, 273, 302, 303, 304, 305, 306, 10, + 10, 10, 10, 10, 10, 225, 10, 10, 10, 273, + 10, 275, 276, 277, 278, 279, 10, 10, 10, 10, + 10, 285, 10, 10, 244, 10, 289, 275, 276, 277, + 288, 10, 10, 10, 10, 10, 10, 285, 10, 10, + 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, + 314, 315, 10, 10, 274, 303, 304, 305, 306, 307, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 297, 10, 10, - 10, 301, 10, 10, 10, 37, 10, 307, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 10, 10, 10, 10, 49, 50, 51, 10, 10, 10, - 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, 91, 92, 93, 94, - 95, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 105, 106, 107, 108, 109, 10, 111, 112, 113, 10, - 10, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 10, 10, 10, 144, - 145, 146, 147, 148, 149, 150, 151, 10, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 10, 10, 10, 10, 10, 10, 10, 10, 298, 10, + 10, 10, 302, 10, 10, 10, 37, 10, 308, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 10, 10, 10, 10, 49, 50, 51, 10, 10, + 10, 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, 91, 92, 93, + 94, 95, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 105, 106, 107, 108, 109, 10, 111, 112, 113, + 10, 10, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 10, 10, + 10, 145, 146, 147, 148, 149, 150, 151, 152, 10, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 10, 226, 10, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 10, 10, 10, 10, 10, 10, 10, 272, 10, + 10, 10, 10, 10, 10, 10, 280, 281, 10, 283, + 284, 10, 286, 287, 10, 10, 290, 291, 292, 293, + 294, 295, 296, 297, 10, 10, 10, 301, 10, 10, + 10, 10, 10, 10, 10, 10, 310, 311, 312, 313, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 10, - 225, 10, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 10, - 10, 10, 10, 10, 10, 10, 271, 10, 10, 10, - 10, 10, 10, 10, 279, 280, 10, 282, 283, 10, - 285, 286, 10, 10, 289, 290, 291, 292, 293, 294, - 295, 296, 10, 10, 10, 300, 10, 10, 10, 10, - 10, 10, 10, 10, 309, 310, 311, 312, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, -1, -1, -1, -1, + 10, 10, 10, 10, 10, 10, 10, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 37, 37, 37 + -1, -1, -1, -1, -1, 37, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 316, 0, 11, 12, 46, 52, 96, 114, 165, - 224, 243, 264, 273, 297, 301, 307, 317, 318, 319, - 322, 325, 328, 331, 339, 582, 593, 615, 619, 627, - 640, 650, 320, 323, 326, 329, 332, 340, 583, 594, - 616, 620, 628, 641, 651, 13, 14, 15, 16, 17, + 0, 317, 0, 11, 12, 46, 52, 96, 114, 166, + 225, 244, 265, 274, 298, 302, 308, 318, 319, 320, + 323, 326, 329, 332, 340, 584, 595, 617, 621, 629, + 642, 652, 321, 324, 327, 330, 333, 341, 585, 596, + 618, 622, 630, 643, 653, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@ -2696,18 +2028,18 @@ static const yytype_int16 yystos[] = 95, 105, 106, 107, 108, 109, 111, 112, 113, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 144, 145, 146, 147, 148, 149, - 150, 151, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 185, 186, 187, 188, 189, 190, + 137, 138, 139, 140, 141, 145, 146, 147, 148, 149, + 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 225, 227, 228, 229, 230, 231, 232, + 221, 222, 223, 224, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 271, 279, 280, 282, 283, 285, 286, 289, 290, 291, - 292, 293, 294, 295, 296, 300, 309, 310, 311, 312, - 321, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 243, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 272, 280, 281, 283, 284, 286, 287, 290, 291, + 292, 293, 294, 295, 296, 297, 301, 310, 311, 312, + 313, 322, 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, @@ -2728,25 +2060,25 @@ static const yytype_int16 yystos[] = 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 623, 624, 625, 626, 649, 45, 47, 48, 110, - 142, 152, 288, 324, 552, 553, 554, 555, 556, 557, - 558, 45, 53, 54, 141, 143, 287, 327, 559, 560, - 561, 562, 563, 564, 45, 81, 82, 108, 186, 187, - 226, 330, 575, 576, 577, 578, 579, 580, 581, 45, - 272, 274, 275, 276, 277, 278, 284, 313, 314, 333, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 302, 303, 304, 305, 306, 334, 335, 336, 337, 338, - 341, 565, 566, 567, 568, 569, 97, 98, 99, 100, - 101, 102, 103, 104, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 595, 596, 597, 598, 599, 600, 601, 602, + 551, 552, 553, 625, 626, 627, 628, 651, 45, 47, + 48, 110, 143, 153, 289, 325, 554, 555, 556, 557, + 558, 559, 560, 45, 53, 54, 142, 144, 288, 328, + 561, 562, 563, 564, 565, 566, 45, 81, 82, 108, + 187, 188, 227, 331, 577, 578, 579, 580, 581, 582, + 583, 45, 273, 275, 276, 277, 278, 279, 285, 314, + 315, 334, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 303, 304, 305, 306, 307, 335, 336, 337, + 338, 339, 342, 567, 568, 569, 570, 571, 97, 98, + 99, 100, 101, 102, 103, 104, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 115, 617, 618, 308, 621, 622, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 265, - 266, 267, 268, 269, 270, 642, 643, 644, 645, 646, - 647, 648, 298, 299, 652, 653, 654, 10, 10, 10, + 613, 614, 615, 616, 115, 619, 620, 309, 623, 624, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 266, 267, 268, 269, 270, 271, 644, 645, 646, + 647, 648, 649, 650, 299, 300, 654, 655, 656, 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, @@ -2778,42 +2110,42 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 315, 316, 316, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 318, 319, - 320, 320, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 322, 323, 323, - 324, 324, 324, 324, 324, 324, 324, 325, 326, 326, - 327, 327, 327, 327, 327, 327, 328, 329, 329, 330, - 330, 330, 330, 330, 330, 330, 331, 332, 332, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 334, - 335, 336, 337, 338, 339, 340, 340, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 342, 343, 344, + 0, 316, 317, 317, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 319, 320, + 321, 321, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, + 324, 325, 325, 325, 325, 325, 325, 325, 326, 327, + 327, 328, 328, 328, 328, 328, 328, 329, 330, 330, + 331, 331, 331, 331, 331, 331, 331, 332, 333, 333, + 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, + 335, 336, 337, 338, 339, 340, 341, 341, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 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, @@ -2837,19 +2169,19 @@ static const yytype_int16 yyr1[] = 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 583, - 584, 584, 584, 584, 584, 584, 584, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 594, 595, - 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, - 595, 595, 595, 595, 595, 595, 595, 595, 596, 597, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 585, 586, 586, 586, 586, 586, 586, 586, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 596, 597, 597, 597, 597, 597, 597, 597, 597, 597, + 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 616, - 617, 618, 619, 620, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 628, 629, 629, 629, 629, 629, 629, - 629, 629, 629, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 641, 642, 642, 642, - 642, 642, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 651, 652, 652, 653, 654 + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 618, 619, 620, 621, 622, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 630, 631, 631, 631, 631, + 631, 631, 631, 631, 631, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 643, 644, + 644, 644, 644, 644, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 653, 654, 654, 655, 656 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2878,13 +2210,13 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -2898,29 +2230,29 @@ static const yytype_int8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 3, 4, 4, 4, 3, 3, - 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 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, + 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, + 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, - 1, 2, 0, 1, 1, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 2, 1, 2, 0, 1, 2, 2, + 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 3, 1, 2, 0, 1, 1, 2, 2 }; @@ -3132,7 +2464,7 @@ yydestruct (const char *yymsg, } -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -3150,34 +2482,30 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize; + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The state stack. */ + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ + /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -3191,15 +2519,6 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -3400,24 +2719,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 198 "./util/configparser.y" + case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ +#line 199 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 3409 "util/configparser.c" +#line 2728 "util/configparser.c" break; - case 19: -#line 204 "./util/configparser.y" + case 19: /* serverstart: VAR_SERVER */ +#line 205 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 3417 "util/configparser.c" +#line 2736 "util/configparser.c" break; - case 237: -#line 309 "./util/configparser.y" + case 238: /* stubstart: VAR_STUB_ZONE */ +#line 311 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -3428,11 +2747,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3432 "util/configparser.c" +#line 2751 "util/configparser.c" break; - case 247: -#line 326 "./util/configparser.y" + case 248: /* forwardstart: VAR_FORWARD_ZONE */ +#line 328 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -3443,11 +2762,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3447 "util/configparser.c" +#line 2766 "util/configparser.c" break; - case 256: -#line 343 "./util/configparser.y" + case 257: /* viewstart: VAR_VIEW */ +#line 345 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -3460,11 +2779,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3464 "util/configparser.c" +#line 2783 "util/configparser.c" break; - case 266: -#line 362 "./util/configparser.y" + case 267: /* authstart: VAR_AUTH_ZONE */ +#line 364 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -3482,11 +2801,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3486 "util/configparser.c" +#line 2805 "util/configparser.c" break; - case 279: -#line 388 "./util/configparser.y" + case 280: /* rpz_tag: VAR_TAGS STRING_ARG */ +#line 390 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -3503,11 +2822,11 @@ yyreduce: } } -#line 3507 "util/configparser.c" +#line 2826 "util/configparser.c" break; - case 280: -#line 407 "./util/configparser.y" + case 281: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ +#line 409 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -3522,21 +2841,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 3526 "util/configparser.c" +#line 2845 "util/configparser.c" break; - case 281: -#line 424 "./util/configparser.y" + case 282: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ +#line 426 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 3536 "util/configparser.c" +#line 2855 "util/configparser.c" break; - case 282: -#line 432 "./util/configparser.y" + case 283: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ +#line 434 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3544,21 +2863,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3548 "util/configparser.c" +#line 2867 "util/configparser.c" break; - case 283: -#line 442 "./util/configparser.y" + case 284: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ +#line 444 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3558 "util/configparser.c" +#line 2877 "util/configparser.c" break; - case 284: -#line 450 "./util/configparser.y" + case 285: /* rpzstart: VAR_RPZ */ +#line 452 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -3574,11 +2893,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 3578 "util/configparser.c" +#line 2897 "util/configparser.c" break; - case 297: -#line 473 "./util/configparser.y" + case 298: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ +#line 475 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3586,11 +2905,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3590 "util/configparser.c" +#line 2909 "util/configparser.c" break; - case 298: -#line 482 "./util/configparser.y" + case 299: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ +#line 484 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3598,11 +2917,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3602 "util/configparser.c" +#line 2921 "util/configparser.c" break; - case 299: -#line 491 "./util/configparser.y" + case 300: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ +#line 493 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3612,11 +2931,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3616 "util/configparser.c" +#line 2935 "util/configparser.c" break; - case 300: -#line 502 "./util/configparser.y" + case 301: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ +#line 504 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3624,11 +2943,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3628 "util/configparser.c" +#line 2947 "util/configparser.c" break; - case 301: -#line 511 "./util/configparser.y" + case 302: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ +#line 513 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3636,11 +2955,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3640 "util/configparser.c" +#line 2959 "util/configparser.c" break; - case 302: -#line 520 "./util/configparser.y" + case 303: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ +#line 522 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3648,11 +2967,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3652 "util/configparser.c" +#line 2971 "util/configparser.c" break; - case 303: -#line 529 "./util/configparser.y" + case 304: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ +#line 531 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) @@ -3662,11 +2981,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3666 "util/configparser.c" +#line 2985 "util/configparser.c" break; - case 304: -#line 540 "./util/configparser.y" + case 305: /* server_port: VAR_PORT STRING_ARG */ +#line 542 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3674,11 +2993,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3678 "util/configparser.c" +#line 2997 "util/configparser.c" break; - case 305: -#line 549 "./util/configparser.y" + case 306: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ +#line 551 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3689,11 +3008,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3693 "util/configparser.c" +#line 3012 "util/configparser.c" break; - case 306: -#line 561 "./util/configparser.y" + case 307: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ +#line 563 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3705,11 +3024,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3709 "util/configparser.c" +#line 3028 "util/configparser.c" break; - case 307: -#line 575 "./util/configparser.y" + case 308: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ +#line 577 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3723,11 +3042,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3727 "util/configparser.c" +#line 3046 "util/configparser.c" break; - case 308: -#line 590 "./util/configparser.y" + case 309: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ +#line 592 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3737,11 +3056,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3741 "util/configparser.c" +#line 3060 "util/configparser.c" break; - case 309: -#line 601 "./util/configparser.y" + case 310: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 603 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3757,11 +3076,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3761 "util/configparser.c" +#line 3080 "util/configparser.c" break; - case 310: -#line 618 "./util/configparser.y" + case 311: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 620 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3777,11 +3096,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3781 "util/configparser.c" +#line 3100 "util/configparser.c" break; - case 311: -#line 635 "./util/configparser.y" + case 312: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 637 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3797,11 +3116,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3801 "util/configparser.c" +#line 3120 "util/configparser.c" break; - case 312: -#line 652 "./util/configparser.y" + case 313: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 654 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3817,11 +3136,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3821 "util/configparser.c" +#line 3140 "util/configparser.c" break; - case 313: -#line 669 "./util/configparser.y" + case 314: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ +#line 671 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3835,11 +3154,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3839 "util/configparser.c" +#line 3158 "util/configparser.c" break; - case 314: -#line 684 "./util/configparser.y" + case 315: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ +#line 686 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3853,11 +3172,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3857 "util/configparser.c" +#line 3176 "util/configparser.c" break; - case 315: -#line 699 "./util/configparser.y" + case 316: /* server_interface: VAR_INTERFACE STRING_ARG */ +#line 701 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3869,11 +3188,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3873 "util/configparser.c" +#line 3192 "util/configparser.c" break; - case 316: -#line 712 "./util/configparser.y" + case 317: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ +#line 714 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3887,11 +3206,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3891 "util/configparser.c" +#line 3210 "util/configparser.c" break; - case 317: -#line 727 "./util/configparser.y" + case 318: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ +#line 729 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3899,11 +3218,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3903 "util/configparser.c" +#line 3222 "util/configparser.c" break; - case 318: -#line 736 "./util/configparser.y" + case 319: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ +#line 738 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3911,11 +3230,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3915 "util/configparser.c" +#line 3234 "util/configparser.c" break; - case 319: -#line 745 "./util/configparser.y" + case 320: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ +#line 747 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3923,11 +3242,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3927 "util/configparser.c" +#line 3246 "util/configparser.c" break; - case 320: -#line 754 "./util/configparser.y" + case 321: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ +#line 756 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3935,11 +3254,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3939 "util/configparser.c" +#line 3258 "util/configparser.c" break; - case 321: -#line 763 "./util/configparser.y" + case 322: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ +#line 765 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3947,11 +3266,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3951 "util/configparser.c" +#line 3270 "util/configparser.c" break; - case 322: -#line 772 "./util/configparser.y" + case 323: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ +#line 774 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3959,11 +3278,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3963 "util/configparser.c" +#line 3282 "util/configparser.c" break; - case 323: -#line 781 "./util/configparser.y" + case 324: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ +#line 783 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3971,11 +3290,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3975 "util/configparser.c" +#line 3294 "util/configparser.c" break; - case 324: -#line 790 "./util/configparser.y" + case 325: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ +#line 792 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3983,11 +3302,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3987 "util/configparser.c" +#line 3306 "util/configparser.c" break; - case 325: -#line 799 "./util/configparser.y" + case 326: /* server_do_udp: VAR_DO_UDP STRING_ARG */ +#line 801 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3995,11 +3314,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3999 "util/configparser.c" +#line 3318 "util/configparser.c" break; - case 326: -#line 808 "./util/configparser.y" + case 327: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ +#line 810 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4007,11 +3326,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4011 "util/configparser.c" +#line 3330 "util/configparser.c" break; - case 327: -#line 817 "./util/configparser.y" + case 328: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ +#line 819 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4019,11 +3338,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4023 "util/configparser.c" +#line 3342 "util/configparser.c" break; - case 328: -#line 826 "./util/configparser.y" + case 329: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ +#line 828 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4031,11 +3350,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4035 "util/configparser.c" +#line 3354 "util/configparser.c" break; - case 329: -#line 835 "./util/configparser.y" + case 330: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ +#line 837 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4043,11 +3362,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4047 "util/configparser.c" +#line 3366 "util/configparser.c" break; - case 330: -#line 844 "./util/configparser.y" + case 331: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ +#line 846 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4055,11 +3374,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4059 "util/configparser.c" +#line 3378 "util/configparser.c" break; - case 331: -#line 853 "./util/configparser.y" + case 332: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ +#line 855 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4071,11 +3390,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4075 "util/configparser.c" +#line 3394 "util/configparser.c" break; - case 332: -#line 866 "./util/configparser.y" + case 333: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ +#line 868 "./util/configparser.y" { OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4085,11 +3404,11 @@ yyreduce: else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4089 "util/configparser.c" +#line 3408 "util/configparser.c" break; - case 333: -#line 877 "./util/configparser.y" + case 334: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ +#line 879 "./util/configparser.y" { OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4099,11 +3418,11 @@ yyreduce: else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4103 "util/configparser.c" +#line 3422 "util/configparser.c" break; - case 334: -#line 888 "./util/configparser.y" + case 335: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */ +#line 890 "./util/configparser.y" { OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4113,11 +3432,11 @@ yyreduce: else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4117 "util/configparser.c" +#line 3436 "util/configparser.c" break; - case 335: -#line 899 "./util/configparser.y" + case 336: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ +#line 901 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4125,11 +3444,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4129 "util/configparser.c" +#line 3448 "util/configparser.c" break; - case 336: -#line 908 "./util/configparser.y" + case 337: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ +#line 910 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4141,11 +3460,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4145 "util/configparser.c" +#line 3464 "util/configparser.c" break; - case 337: -#line 921 "./util/configparser.y" + case 338: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ +#line 923 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4153,11 +3472,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4157 "util/configparser.c" +#line 3476 "util/configparser.c" break; - case 338: -#line 930 "./util/configparser.y" + case 339: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ +#line 932 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4165,11 +3484,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4169 "util/configparser.c" +#line 3488 "util/configparser.c" break; - case 339: -#line 939 "./util/configparser.y" + case 340: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ +#line 941 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4177,31 +3496,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4181 "util/configparser.c" +#line 3500 "util/configparser.c" break; - case 340: -#line 948 "./util/configparser.y" + case 341: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ +#line 950 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 4191 "util/configparser.c" +#line 3510 "util/configparser.c" break; - case 341: -#line 955 "./util/configparser.y" + case 342: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ +#line 957 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 4201 "util/configparser.c" +#line 3520 "util/configparser.c" break; - case 342: -#line 962 "./util/configparser.y" + case 343: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ +#line 964 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4209,21 +3528,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4213 "util/configparser.c" +#line 3532 "util/configparser.c" break; - case 343: -#line 971 "./util/configparser.y" + case 344: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ +#line 973 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 4223 "util/configparser.c" +#line 3542 "util/configparser.c" break; - case 344: -#line 978 "./util/configparser.y" + case 345: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ +#line 980 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4231,53 +3550,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4235 "util/configparser.c" +#line 3554 "util/configparser.c" break; - case 345: -#line 987 "./util/configparser.y" + case 346: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ +#line 989 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4246 "util/configparser.c" +#line 3565 "util/configparser.c" break; - case 346: -#line 995 "./util/configparser.y" + case 347: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ +#line 997 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 4256 "util/configparser.c" +#line 3575 "util/configparser.c" break; - case 347: -#line 1002 "./util/configparser.y" + case 348: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ +#line 1004 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 4266 "util/configparser.c" +#line 3585 "util/configparser.c" break; - case 348: -#line 1009 "./util/configparser.y" + case 349: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ +#line 1011 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4277 "util/configparser.c" +#line 3596 "util/configparser.c" break; - case 349: -#line 1017 "./util/configparser.y" + case 350: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ +#line 1019 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4285,11 +3604,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4289 "util/configparser.c" +#line 3608 "util/configparser.c" break; - case 350: -#line 1026 "./util/configparser.y" + case 351: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ +#line 1028 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4297,11 +3616,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4301 "util/configparser.c" +#line 3620 "util/configparser.c" break; - case 351: -#line 1034 "./util/configparser.y" + case 352: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ +#line 1036 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -4317,11 +3636,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 4321 "util/configparser.c" +#line 3640 "util/configparser.c" break; - case 352: -#line 1050 "./util/configparser.y" + case 353: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ +#line 1052 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4329,11 +3648,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4333 "util/configparser.c" +#line 3652 "util/configparser.c" break; - case 353: -#line 1058 "./util/configparser.y" + case 354: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ +#line 1060 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4341,11 +3660,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4345 "util/configparser.c" +#line 3664 "util/configparser.c" break; - case 354: -#line 1066 "./util/configparser.y" + case 355: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ +#line 1068 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -4353,11 +3672,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4357 "util/configparser.c" +#line 3676 "util/configparser.c" break; - case 355: -#line 1074 "./util/configparser.y" + case 356: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ +#line 1076 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4365,11 +3684,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4369 "util/configparser.c" +#line 3688 "util/configparser.c" break; - case 356: -#line 1082 "./util/configparser.y" + case 357: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ +#line 1084 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4377,11 +3696,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4381 "util/configparser.c" +#line 3700 "util/configparser.c" break; - case 357: -#line 1090 "./util/configparser.y" + case 358: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ +#line 1092 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4389,11 +3708,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4393 "util/configparser.c" +#line 3712 "util/configparser.c" break; - case 358: -#line 1099 "./util/configparser.y" + case 359: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ +#line 1101 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4401,11 +3720,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4405 "util/configparser.c" +#line 3724 "util/configparser.c" break; - case 359: -#line 1108 "./util/configparser.y" + case 360: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ +#line 1110 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4418,11 +3737,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4422 "util/configparser.c" +#line 3741 "util/configparser.c" break; - case 360: -#line 1122 "./util/configparser.y" + case 361: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ +#line 1124 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4430,11 +3749,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4434 "util/configparser.c" +#line 3753 "util/configparser.c" break; - case 361: -#line 1131 "./util/configparser.y" + case 362: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ +#line 1133 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4442,11 +3761,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4446 "util/configparser.c" +#line 3765 "util/configparser.c" break; - case 362: -#line 1140 "./util/configparser.y" + case 363: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ +#line 1142 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4454,11 +3773,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4458 "util/configparser.c" +#line 3777 "util/configparser.c" break; - case 363: -#line 1149 "./util/configparser.y" + case 364: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ +#line 1151 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4466,11 +3785,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4470 "util/configparser.c" +#line 3789 "util/configparser.c" break; - case 364: -#line 1158 "./util/configparser.y" + case 365: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ +#line 1160 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4478,11 +3797,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4482 "util/configparser.c" +#line 3801 "util/configparser.c" break; - case 365: -#line 1167 "./util/configparser.y" + case 366: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ +#line 1169 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4490,31 +3809,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4494 "util/configparser.c" +#line 3813 "util/configparser.c" break; - case 366: -#line 1176 "./util/configparser.y" + case 367: /* server_chroot: VAR_CHROOT STRING_ARG */ +#line 1178 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 4504 "util/configparser.c" +#line 3823 "util/configparser.c" break; - case 367: -#line 1183 "./util/configparser.y" + case 368: /* server_username: VAR_USERNAME STRING_ARG */ +#line 1185 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 4514 "util/configparser.c" +#line 3833 "util/configparser.c" break; - case 368: -#line 1190 "./util/configparser.y" + case 369: /* server_directory: VAR_DIRECTORY STRING_ARG */ +#line 1192 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -4539,105 +3858,105 @@ yyreduce: } } } -#line 4543 "util/configparser.c" +#line 3862 "util/configparser.c" break; - case 369: -#line 1216 "./util/configparser.y" + case 370: /* server_logfile: VAR_LOGFILE STRING_ARG */ +#line 1218 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 4554 "util/configparser.c" +#line 3873 "util/configparser.c" break; - case 370: -#line 1224 "./util/configparser.y" + case 371: /* server_pidfile: VAR_PIDFILE STRING_ARG */ +#line 1226 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 4564 "util/configparser.c" +#line 3883 "util/configparser.c" break; - case 371: -#line 1231 "./util/configparser.y" + case 372: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ +#line 1233 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4574 "util/configparser.c" +#line 3893 "util/configparser.c" break; - case 372: -#line 1238 "./util/configparser.y" + case 373: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ +#line 1240 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4584 "util/configparser.c" +#line 3903 "util/configparser.c" break; - case 373: -#line 1245 "./util/configparser.y" + case 374: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ +#line 1247 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4594 "util/configparser.c" +#line 3913 "util/configparser.c" break; - case 374: -#line 1252 "./util/configparser.y" + case 375: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1254 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4605 "util/configparser.c" +#line 3924 "util/configparser.c" break; - case 375: -#line 1260 "./util/configparser.y" + case 376: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1262 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4616 "util/configparser.c" +#line 3935 "util/configparser.c" break; - case 376: -#line 1268 "./util/configparser.y" + case 377: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ +#line 1270 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4627 "util/configparser.c" +#line 3946 "util/configparser.c" break; - case 377: -#line 1276 "./util/configparser.y" + case 378: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ +#line 1278 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4637 "util/configparser.c" +#line 3956 "util/configparser.c" break; - case 378: -#line 1283 "./util/configparser.y" + case 379: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ +#line 1285 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4647,11 +3966,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4651 "util/configparser.c" +#line 3970 "util/configparser.c" break; - case 379: -#line 1294 "./util/configparser.y" + case 380: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ +#line 1296 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4661,21 +3980,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4665 "util/configparser.c" +#line 3984 "util/configparser.c" break; - case 380: -#line 1305 "./util/configparser.y" + case 381: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ +#line 1307 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4675 "util/configparser.c" +#line 3994 "util/configparser.c" break; - case 381: -#line 1312 "./util/configparser.y" + case 382: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ +#line 1314 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4683,11 +4002,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4687 "util/configparser.c" +#line 4006 "util/configparser.c" break; - case 382: -#line 1321 "./util/configparser.y" + case 383: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ +#line 1323 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4695,11 +4014,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 4018 "util/configparser.c" break; - case 383: -#line 1330 "./util/configparser.y" + case 384: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ +#line 1332 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4707,31 +4026,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4711 "util/configparser.c" +#line 4030 "util/configparser.c" break; - case 384: -#line 1339 "./util/configparser.y" + case 385: /* server_identity: VAR_IDENTITY STRING_ARG */ +#line 1341 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4721 "util/configparser.c" +#line 4040 "util/configparser.c" break; - case 385: -#line 1346 "./util/configparser.y" + case 386: /* server_version: VAR_VERSION STRING_ARG */ +#line 1348 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4731 "util/configparser.c" +#line 4050 "util/configparser.c" break; - case 386: -#line 1353 "./util/configparser.y" + case 387: /* server_nsid: VAR_NSID STRING_ARG */ +#line 1355 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4746,33 +4065,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4750 "util/configparser.c" +#line 4069 "util/configparser.c" break; - case 387: -#line 1369 "./util/configparser.y" + case 388: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ +#line 1371 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4761 "util/configparser.c" +#line 4080 "util/configparser.c" break; - case 388: -#line 1377 "./util/configparser.y" + case 389: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ +#line 1379 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4772 "util/configparser.c" +#line 4091 "util/configparser.c" break; - case 389: -#line 1385 "./util/configparser.y" + case 390: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ +#line 1387 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4781,11 +4100,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4785 "util/configparser.c" +#line 4104 "util/configparser.c" break; - case 390: -#line 1395 "./util/configparser.y" + case 391: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ +#line 1397 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4794,11 +4113,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4798 "util/configparser.c" +#line 4117 "util/configparser.c" break; - case 391: -#line 1405 "./util/configparser.y" + case 392: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ +#line 1407 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4807,11 +4126,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4811 "util/configparser.c" +#line 4130 "util/configparser.c" break; - case 392: -#line 1415 "./util/configparser.y" + case 393: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ +#line 1417 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4824,22 +4143,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4828 "util/configparser.c" +#line 4147 "util/configparser.c" break; - case 393: -#line 1429 "./util/configparser.y" + case 394: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ +#line 1431 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4839 "util/configparser.c" +#line 4158 "util/configparser.c" break; - case 394: -#line 1437 "./util/configparser.y" + case 395: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ +#line 1439 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4851,11 +4170,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4855 "util/configparser.c" +#line 4174 "util/configparser.c" break; - case 395: -#line 1450 "./util/configparser.y" + case 396: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ +#line 1452 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4865,22 +4184,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4869 "util/configparser.c" +#line 4188 "util/configparser.c" break; - case 396: -#line 1461 "./util/configparser.y" + case 397: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ +#line 1463 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4880 "util/configparser.c" +#line 4199 "util/configparser.c" break; - case 397: -#line 1469 "./util/configparser.y" + case 398: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ +#line 1471 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4892,11 +4211,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4896 "util/configparser.c" +#line 4215 "util/configparser.c" break; - case 398: -#line 1482 "./util/configparser.y" + case 399: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ +#line 1484 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4904,11 +4223,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4908 "util/configparser.c" +#line 4227 "util/configparser.c" break; - case 399: -#line 1491 "./util/configparser.y" + case 400: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ +#line 1493 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4916,11 +4235,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4920 "util/configparser.c" +#line 4239 "util/configparser.c" break; - case 400: -#line 1500 "./util/configparser.y" + case 401: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ +#line 1502 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4928,11 +4247,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4932 "util/configparser.c" +#line 4251 "util/configparser.c" break; - case 401: -#line 1509 "./util/configparser.y" + case 402: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ +#line 1511 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4940,11 +4259,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4944 "util/configparser.c" +#line 4263 "util/configparser.c" break; - case 402: -#line 1518 "./util/configparser.y" + case 403: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ +#line 1520 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4953,11 +4272,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4957 "util/configparser.c" +#line 4276 "util/configparser.c" break; - case 403: -#line 1528 "./util/configparser.y" + case 404: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ +#line 1530 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4966,22 +4285,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4970 "util/configparser.c" +#line 4289 "util/configparser.c" break; - case 404: -#line 1538 "./util/configparser.y" + case 405: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ +#line 1540 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4981 "util/configparser.c" +#line 4300 "util/configparser.c" break; - case 405: -#line 1546 "./util/configparser.y" + case 406: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ +#line 1548 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4993,11 +4312,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4997 "util/configparser.c" +#line 4316 "util/configparser.c" break; - case 406: -#line 1559 "./util/configparser.y" + case 407: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ +#line 1561 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5005,22 +4324,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5009 "util/configparser.c" +#line 4328 "util/configparser.c" break; - case 407: -#line 1568 "./util/configparser.y" + case 408: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ +#line 1570 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5020 "util/configparser.c" +#line 4339 "util/configparser.c" break; - case 408: -#line 1576 "./util/configparser.y" + case 409: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ +#line 1578 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5028,22 +4347,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5032 "util/configparser.c" +#line 4351 "util/configparser.c" break; - case 409: -#line 1585 "./util/configparser.y" + case 410: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ +#line 1587 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5043 "util/configparser.c" +#line 4362 "util/configparser.c" break; - case 410: -#line 1593 "./util/configparser.y" + case 411: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ +#line 1595 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5055,11 +4374,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5059 "util/configparser.c" +#line 4378 "util/configparser.c" break; - case 411: -#line 1606 "./util/configparser.y" + case 412: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ +#line 1608 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5067,11 +4386,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5071 "util/configparser.c" +#line 4390 "util/configparser.c" break; - case 412: -#line 1615 "./util/configparser.y" + case 413: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ +#line 1617 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5080,21 +4399,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5084 "util/configparser.c" +#line 4403 "util/configparser.c" break; - case 413: -#line 1625 "./util/configparser.y" + case 414: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ +#line 1627 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 5094 "util/configparser.c" +#line 4413 "util/configparser.c" break; - case 414: -#line 1632 "./util/configparser.y" + case 415: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ +#line 1634 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5103,11 +4422,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5107 "util/configparser.c" +#line 4426 "util/configparser.c" break; - case 415: -#line 1642 "./util/configparser.y" + case 416: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ +#line 1644 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5116,11 +4435,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5120 "util/configparser.c" +#line 4439 "util/configparser.c" break; - case 416: -#line 1652 "./util/configparser.y" + case 417: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ +#line 1654 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5129,11 +4448,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5133 "util/configparser.c" +#line 4452 "util/configparser.c" break; - case 417: -#line 1662 "./util/configparser.y" + case 418: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ +#line 1664 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5142,11 +4461,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5146 "util/configparser.c" +#line 4465 "util/configparser.c" break; - case 418: -#line 1672 "./util/configparser.y" + case 419: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ +#line 1674 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5155,11 +4474,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5159 "util/configparser.c" +#line 4478 "util/configparser.c" break; - case 419: -#line 1682 "./util/configparser.y" + case 420: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ +#line 1684 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5168,11 +4487,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5172 "util/configparser.c" +#line 4491 "util/configparser.c" break; - case 420: -#line 1692 "./util/configparser.y" + case 421: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ +#line 1694 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5181,11 +4500,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5185 "util/configparser.c" +#line 4504 "util/configparser.c" break; - case 421: -#line 1702 "./util/configparser.y" + case 422: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ +#line 1704 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5194,41 +4513,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5198 "util/configparser.c" +#line 4517 "util/configparser.c" break; - case 422: -#line 1712 "./util/configparser.y" + case 423: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ +#line 1714 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5208 "util/configparser.c" +#line 4527 "util/configparser.c" break; - case 423: -#line 1719 "./util/configparser.y" + case 424: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ +#line 1721 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5218 "util/configparser.c" +#line 4537 "util/configparser.c" break; - case 424: -#line 1726 "./util/configparser.y" + case 425: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ +#line 1728 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5228 "util/configparser.c" +#line 4547 "util/configparser.c" break; - case 425: -#line 1733 "./util/configparser.y" + case 426: /* server_prefetch: VAR_PREFETCH STRING_ARG */ +#line 1735 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5236,11 +4555,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5240 "util/configparser.c" +#line 4559 "util/configparser.c" break; - case 426: -#line 1742 "./util/configparser.y" + case 427: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ +#line 1744 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5248,11 +4567,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5252 "util/configparser.c" +#line 4571 "util/configparser.c" break; - case 427: -#line 1751 "./util/configparser.y" + case 428: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ +#line 1753 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5260,11 +4579,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5264 "util/configparser.c" +#line 4583 "util/configparser.c" break; - case 428: -#line 1760 "./util/configparser.y" + case 429: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ +#line 1762 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5272,21 +4591,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5276 "util/configparser.c" +#line 4595 "util/configparser.c" break; - case 429: -#line 1769 "./util/configparser.y" + case 430: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ +#line 1771 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5286 "util/configparser.c" +#line 4605 "util/configparser.c" break; - case 430: -#line 1776 "./util/configparser.y" + case 431: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ +#line 1778 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5295,11 +4614,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5299 "util/configparser.c" +#line 4618 "util/configparser.c" break; - case 431: -#line 1786 "./util/configparser.y" + case 432: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ +#line 1788 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -5318,21 +4637,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 5322 "util/configparser.c" +#line 4641 "util/configparser.c" break; - case 432: -#line 1806 "./util/configparser.y" + case 433: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ +#line 1808 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 5332 "util/configparser.c" +#line 4651 "util/configparser.c" break; - case 433: -#line 1813 "./util/configparser.y" + case 434: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ +#line 1815 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5349,11 +4668,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5353 "util/configparser.c" +#line 4672 "util/configparser.c" break; - case 434: -#line 1831 "./util/configparser.y" + case 435: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ +#line 1833 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5365,11 +4684,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5369 "util/configparser.c" +#line 4688 "util/configparser.c" break; - case 435: -#line 1844 "./util/configparser.y" + case 436: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ +#line 1846 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -5381,11 +4700,27 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5385 "util/configparser.c" +#line 4704 "util/configparser.c" break; - case 436: -#line 1857 "./util/configparser.y" + case 437: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */ +#line 1859 "./util/configparser.y" + { + OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str))); + if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { + cfg_parser->cfg->val_max_restart = 0; + } else { + cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str)); + if(!cfg_parser->cfg->val_max_restart) + yyerror("number expected"); + } + free((yyvsp[0].str)); + } +#line 4720 "util/configparser.c" + break; + + case 438: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ +#line 1872 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5393,11 +4728,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5397 "util/configparser.c" +#line 4732 "util/configparser.c" break; - case 437: -#line 1866 "./util/configparser.y" + case 439: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ +#line 1881 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5405,11 +4740,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5409 "util/configparser.c" +#line 4744 "util/configparser.c" break; - case 438: -#line 1875 "./util/configparser.y" + case 440: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ +#line 1890 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5417,11 +4752,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5421 "util/configparser.c" +#line 4756 "util/configparser.c" break; - case 439: -#line 1884 "./util/configparser.y" + case 441: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ +#line 1899 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5429,11 +4764,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5433 "util/configparser.c" +#line 4768 "util/configparser.c" break; - case 440: -#line 1893 "./util/configparser.y" + case 442: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ +#line 1908 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5442,11 +4777,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5446 "util/configparser.c" +#line 4781 "util/configparser.c" break; - case 441: -#line 1903 "./util/configparser.y" + case 443: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ +#line 1918 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5455,11 +4790,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5459 "util/configparser.c" +#line 4794 "util/configparser.c" break; - case 442: -#line 1913 "./util/configparser.y" + case 444: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ +#line 1928 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5469,11 +4804,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5473 "util/configparser.c" +#line 4808 "util/configparser.c" break; - case 443: -#line 1924 "./util/configparser.y" + case 445: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ +#line 1939 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5481,11 +4816,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5485 "util/configparser.c" +#line 4820 "util/configparser.c" break; - case 444: -#line 1933 "./util/configparser.y" + case 446: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ +#line 1948 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5493,11 +4828,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5497 "util/configparser.c" +#line 4832 "util/configparser.c" break; - case 445: -#line 1942 "./util/configparser.y" + case 447: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ +#line 1957 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5505,11 +4840,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5509 "util/configparser.c" +#line 4844 "util/configparser.c" break; - case 446: -#line 1951 "./util/configparser.y" + case 448: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ +#line 1966 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5517,11 +4852,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5521 "util/configparser.c" +#line 4856 "util/configparser.c" break; - case 447: -#line 1960 "./util/configparser.y" + case 449: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ +#line 1975 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5529,11 +4864,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5533 "util/configparser.c" +#line 4868 "util/configparser.c" break; - case 448: -#line 1969 "./util/configparser.y" + case 450: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ +#line 1984 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5541,11 +4876,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5545 "util/configparser.c" +#line 4880 "util/configparser.c" break; - case 449: -#line 1978 "./util/configparser.y" + case 451: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ +#line 1993 "./util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5553,11 +4888,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5557 "util/configparser.c" +#line 4892 "util/configparser.c" break; - case 450: -#line 1987 "./util/configparser.y" + case 452: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ +#line 2002 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5569,11 +4904,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5573 "util/configparser.c" +#line 4908 "util/configparser.c" break; - case 451: -#line 2000 "./util/configparser.y" + case 453: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ +#line 2015 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5585,11 +4920,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5589 "util/configparser.c" +#line 4924 "util/configparser.c" break; - case 452: -#line 2013 "./util/configparser.y" + case 454: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ +#line 2028 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5597,21 +4932,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5601 "util/configparser.c" +#line 4936 "util/configparser.c" break; - case 453: -#line 2022 "./util/configparser.y" + case 455: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ +#line 2037 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 5611 "util/configparser.c" +#line 4946 "util/configparser.c" break; - case 454: -#line 2029 "./util/configparser.y" + case 456: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ +#line 2044 "./util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5619,11 +4954,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5623 "util/configparser.c" +#line 4958 "util/configparser.c" break; - case 455: -#line 2038 "./util/configparser.y" + case 457: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ +#line 2053 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5631,11 +4966,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5635 "util/configparser.c" +#line 4970 "util/configparser.c" break; - case 456: -#line 2047 "./util/configparser.y" + case 458: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ +#line 2062 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5643,11 +4978,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5647 "util/configparser.c" +#line 4982 "util/configparser.c" break; - case 457: -#line 2056 "./util/configparser.y" + case 459: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ +#line 2071 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5655,11 +4990,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5659 "util/configparser.c" +#line 4994 "util/configparser.c" break; - case 458: -#line 2065 "./util/configparser.y" + case 460: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ +#line 2080 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5668,22 +5003,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5672 "util/configparser.c" +#line 5007 "util/configparser.c" break; - case 459: -#line 2074 "./util/configparser.y" + case 461: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ +#line 2089 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5683 "util/configparser.c" +#line 5018 "util/configparser.c" break; - case 460: -#line 2082 "./util/configparser.y" + case 462: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ +#line 2097 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5695,22 +5030,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5699 "util/configparser.c" +#line 5034 "util/configparser.c" break; - case 461: -#line 2095 "./util/configparser.y" + case 463: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ +#line 2110 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5710 "util/configparser.c" +#line 5045 "util/configparser.c" break; - case 462: -#line 2103 "./util/configparser.y" + case 464: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2118 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5754,21 +5089,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5758 "util/configparser.c" +#line 5093 "util/configparser.c" break; - case 463: -#line 2148 "./util/configparser.y" + case 465: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2163 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5768 "util/configparser.c" +#line 5103 "util/configparser.c" break; - case 464: -#line 2155 "./util/configparser.y" + case 466: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2170 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5782,11 +5117,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5786 "util/configparser.c" +#line 5121 "util/configparser.c" break; - case 465: -#line 2170 "./util/configparser.y" + case 467: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ +#line 2185 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5795,11 +5130,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5799 "util/configparser.c" +#line 5134 "util/configparser.c" break; - case 466: -#line 2180 "./util/configparser.y" + case 468: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ +#line 2195 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5808,41 +5143,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5812 "util/configparser.c" +#line 5147 "util/configparser.c" break; - case 467: -#line 2190 "./util/configparser.y" + case 469: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ +#line 2205 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5822 "util/configparser.c" +#line 5157 "util/configparser.c" break; - case 468: -#line 2197 "./util/configparser.y" + case 470: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ +#line 2212 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5832 "util/configparser.c" +#line 5167 "util/configparser.c" break; - case 469: -#line 2204 "./util/configparser.y" + case 471: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ +#line 2219 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5842 "util/configparser.c" +#line 5177 "util/configparser.c" break; - case 470: -#line 2211 "./util/configparser.y" + case 472: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ +#line 2226 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5850,22 +5185,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5854 "util/configparser.c" +#line 5189 "util/configparser.c" break; - case 471: -#line 2220 "./util/configparser.y" + case 473: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ +#line 2235 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 5865 "util/configparser.c" +#line 5200 "util/configparser.c" break; - case 472: -#line 2228 "./util/configparser.y" + case 474: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ +#line 2243 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5878,11 +5213,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5882 "util/configparser.c" +#line 5217 "util/configparser.c" break; - case 473: -#line 2242 "./util/configparser.y" + case 475: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ +#line 2257 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5902,11 +5237,11 @@ yyreduce: } } } -#line 5906 "util/configparser.c" +#line 5241 "util/configparser.c" break; - case 474: -#line 2263 "./util/configparser.y" + case 476: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ +#line 2278 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5926,11 +5261,11 @@ yyreduce: } } } -#line 5930 "util/configparser.c" +#line 5265 "util/configparser.c" break; - case 475: -#line 2284 "./util/configparser.y" + case 477: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ +#line 2299 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -5941,11 +5276,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5945 "util/configparser.c" +#line 5280 "util/configparser.c" break; - case 476: -#line 2296 "./util/configparser.y" + case 478: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ +#line 2311 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -5956,11 +5291,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5960 "util/configparser.c" +#line 5295 "util/configparser.c" break; - case 477: -#line 2308 "./util/configparser.y" + case 479: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ +#line 2323 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -5971,11 +5306,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5975 "util/configparser.c" +#line 5310 "util/configparser.c" break; - case 478: -#line 2320 "./util/configparser.y" + case 480: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ +#line 2335 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -5983,11 +5318,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5987 "util/configparser.c" +#line 5322 "util/configparser.c" break; - case 479: -#line 2329 "./util/configparser.y" + case 481: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ +#line 2344 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -6007,11 +5342,11 @@ yyreduce: } } } -#line 6011 "util/configparser.c" +#line 5346 "util/configparser.c" break; - case 480: -#line 2350 "./util/configparser.y" + case 482: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ +#line 2365 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6019,11 +5354,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6023 "util/configparser.c" +#line 5358 "util/configparser.c" break; - case 481: -#line 2360 "./util/configparser.y" + case 483: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ +#line 2375 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6031,33 +5366,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6035 "util/configparser.c" +#line 5370 "util/configparser.c" break; - case 482: -#line 2369 "./util/configparser.y" + case 484: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ +#line 2384 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6046 "util/configparser.c" +#line 5381 "util/configparser.c" break; - case 483: -#line 2377 "./util/configparser.y" + case 485: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ +#line 2392 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6057 "util/configparser.c" +#line 5392 "util/configparser.c" break; - case 484: -#line 2385 "./util/configparser.y" + case 486: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ +#line 2400 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6069,11 +5404,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6073 "util/configparser.c" +#line 5408 "util/configparser.c" break; - case 485: -#line 2398 "./util/configparser.y" + case 487: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ +#line 2413 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6085,11 +5420,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6089 "util/configparser.c" +#line 5424 "util/configparser.c" break; - case 486: -#line 2411 "./util/configparser.y" + case 488: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ +#line 2426 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6103,11 +5438,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 6107 "util/configparser.c" +#line 5442 "util/configparser.c" break; - case 487: -#line 2426 "./util/configparser.y" + case 489: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ +#line 2441 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6121,11 +5456,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 6125 "util/configparser.c" +#line 5460 "util/configparser.c" break; - case 488: -#line 2441 "./util/configparser.y" + case 490: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ +#line 2456 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6133,11 +5468,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6137 "util/configparser.c" +#line 5472 "util/configparser.c" break; - case 489: -#line 2450 "./util/configparser.y" + case 491: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ +#line 2465 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6145,20 +5480,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6149 "util/configparser.c" +#line 5484 "util/configparser.c" break; - case 490: -#line 2459 "./util/configparser.y" + case 492: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ +#line 2474 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 6158 "util/configparser.c" +#line 5493 "util/configparser.c" break; - case 491: -#line 2465 "./util/configparser.y" + case 493: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ +#line 2480 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -6166,11 +5501,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6170 "util/configparser.c" +#line 5505 "util/configparser.c" break; - case 492: -#line 2474 "./util/configparser.y" + case 494: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ +#line 2489 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6178,11 +5513,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6182 "util/configparser.c" +#line 5517 "util/configparser.c" break; - case 493: -#line 2483 "./util/configparser.y" + case 495: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ +#line 2498 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6191,11 +5526,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6195 "util/configparser.c" +#line 5530 "util/configparser.c" break; - case 494: -#line 2493 "./util/configparser.y" + case 496: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ +#line 2508 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6204,11 +5539,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6208 "util/configparser.c" +#line 5543 "util/configparser.c" break; - case 495: -#line 2503 "./util/configparser.y" + case 497: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ +#line 2518 "./util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6217,11 +5552,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6221 "util/configparser.c" +#line 5556 "util/configparser.c" break; - case 496: -#line 2513 "./util/configparser.y" + case 498: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ +#line 2528 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6229,11 +5564,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6233 "util/configparser.c" +#line 5568 "util/configparser.c" break; - case 497: -#line 2522 "./util/configparser.y" + case 499: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ +#line 2537 "./util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6242,11 +5577,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6246 "util/configparser.c" +#line 5581 "util/configparser.c" break; - case 498: -#line 2532 "./util/configparser.y" + case 500: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ +#line 2547 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6254,11 +5589,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6258 "util/configparser.c" +#line 5593 "util/configparser.c" break; - case 499: -#line 2541 "./util/configparser.y" + case 501: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ +#line 2556 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -6270,11 +5605,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6274 "util/configparser.c" +#line 5609 "util/configparser.c" break; - case 500: -#line 2554 "./util/configparser.y" + case 502: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ +#line 2569 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -6286,11 +5621,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6290 "util/configparser.c" +#line 5625 "util/configparser.c" break; - case 501: -#line 2567 "./util/configparser.y" + case 503: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ +#line 2582 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -6301,11 +5636,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6305 "util/configparser.c" +#line 5640 "util/configparser.c" break; - case 502: -#line 2579 "./util/configparser.y" + case 504: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ +#line 2594 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -6318,11 +5653,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6322 "util/configparser.c" +#line 5657 "util/configparser.c" break; - case 503: -#line 2593 "./util/configparser.y" + case 505: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ +#line 2608 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -6333,11 +5668,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6337 "util/configparser.c" +#line 5672 "util/configparser.c" break; - case 504: -#line 2605 "./util/configparser.y" + case 506: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ +#line 2620 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -6350,11 +5685,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6354 "util/configparser.c" +#line 5689 "util/configparser.c" break; - case 505: -#line 2619 "./util/configparser.y" + case 507: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ +#line 2634 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -6362,11 +5697,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 6366 "util/configparser.c" +#line 5701 "util/configparser.c" break; - case 506: -#line 2628 "./util/configparser.y" + case 508: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ +#line 2643 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6377,11 +5712,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 6381 "util/configparser.c" +#line 5716 "util/configparser.c" break; - case 507: -#line 2640 "./util/configparser.y" + case 509: /* stub_name: VAR_NAME STRING_ARG */ +#line 2655 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -6390,31 +5725,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 6394 "util/configparser.c" +#line 5729 "util/configparser.c" break; - case 508: -#line 2650 "./util/configparser.y" + case 510: /* stub_host: VAR_STUB_HOST STRING_ARG */ +#line 2665 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6404 "util/configparser.c" +#line 5739 "util/configparser.c" break; - case 509: -#line 2657 "./util/configparser.y" + case 511: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ +#line 2672 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6414 "util/configparser.c" +#line 5749 "util/configparser.c" break; - case 510: -#line 2664 "./util/configparser.y" + case 512: /* stub_first: VAR_STUB_FIRST STRING_ARG */ +#line 2679 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6422,11 +5757,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6426 "util/configparser.c" +#line 5761 "util/configparser.c" break; - case 511: -#line 2673 "./util/configparser.y" + case 513: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ +#line 2688 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6434,11 +5769,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6438 "util/configparser.c" +#line 5773 "util/configparser.c" break; - case 512: -#line 2682 "./util/configparser.y" + case 514: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ +#line 2697 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6447,11 +5782,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6451 "util/configparser.c" +#line 5786 "util/configparser.c" break; - case 513: -#line 2692 "./util/configparser.y" + case 515: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ +#line 2707 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6460,11 +5795,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6464 "util/configparser.c" +#line 5799 "util/configparser.c" break; - case 514: -#line 2702 "./util/configparser.y" + case 516: /* forward_name: VAR_NAME STRING_ARG */ +#line 2717 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -6473,31 +5808,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 6477 "util/configparser.c" +#line 5812 "util/configparser.c" break; - case 515: -#line 2712 "./util/configparser.y" + case 517: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ +#line 2727 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6487 "util/configparser.c" +#line 5822 "util/configparser.c" break; - case 516: -#line 2719 "./util/configparser.y" + case 518: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ +#line 2734 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6497 "util/configparser.c" +#line 5832 "util/configparser.c" break; - case 517: -#line 2726 "./util/configparser.y" + case 519: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ +#line 2741 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6505,11 +5840,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6509 "util/configparser.c" +#line 5844 "util/configparser.c" break; - case 518: -#line 2735 "./util/configparser.y" + case 520: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ +#line 2750 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6517,11 +5852,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6521 "util/configparser.c" +#line 5856 "util/configparser.c" break; - case 519: -#line 2744 "./util/configparser.y" + case 521: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ +#line 2759 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6530,11 +5865,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6534 "util/configparser.c" +#line 5869 "util/configparser.c" break; - case 520: -#line 2754 "./util/configparser.y" + case 522: /* auth_name: VAR_NAME STRING_ARG */ +#line 2769 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -6543,52 +5878,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 6547 "util/configparser.c" +#line 5882 "util/configparser.c" break; - case 521: -#line 2764 "./util/configparser.y" + case 523: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ +#line 2779 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 6557 "util/configparser.c" +#line 5892 "util/configparser.c" break; - case 522: -#line 2771 "./util/configparser.y" + case 524: /* auth_master: VAR_MASTER STRING_ARG */ +#line 2786 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6567 "util/configparser.c" +#line 5902 "util/configparser.c" break; - case 523: -#line 2778 "./util/configparser.y" + case 525: /* auth_url: VAR_URL STRING_ARG */ +#line 2793 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6577 "util/configparser.c" +#line 5912 "util/configparser.c" break; - case 524: -#line 2785 "./util/configparser.y" + case 526: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ +#line 2800 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6588 "util/configparser.c" +#line 5923 "util/configparser.c" break; - case 525: -#line 2793 "./util/configparser.y" + case 527: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */ +#line 2808 "./util/configparser.y" { OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6597,11 +5932,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6601 "util/configparser.c" +#line 5936 "util/configparser.c" break; - case 526: -#line 2803 "./util/configparser.y" + case 528: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ +#line 2818 "./util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6610,11 +5945,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6614 "util/configparser.c" +#line 5949 "util/configparser.c" break; - case 527: -#line 2813 "./util/configparser.y" + case 529: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ +#line 2828 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6623,11 +5958,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6627 "util/configparser.c" +#line 5962 "util/configparser.c" break; - case 528: -#line 2823 "./util/configparser.y" + case 530: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ +#line 2838 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6636,11 +5971,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6640 "util/configparser.c" +#line 5975 "util/configparser.c" break; - case 529: -#line 2833 "./util/configparser.y" + case 531: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ +#line 2848 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6649,11 +5984,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6653 "util/configparser.c" +#line 5988 "util/configparser.c" break; - case 530: -#line 2843 "./util/configparser.y" + case 532: /* view_name: VAR_NAME STRING_ARG */ +#line 2858 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6662,11 +5997,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6666 "util/configparser.c" +#line 6001 "util/configparser.c" break; - case 531: -#line 2853 "./util/configparser.y" + case 533: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2868 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -6711,11 +6046,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6715 "util/configparser.c" +#line 6050 "util/configparser.c" break; - case 532: -#line 2899 "./util/configparser.y" + case 534: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 2914 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6724,33 +6059,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6728 "util/configparser.c" +#line 6063 "util/configparser.c" break; - case 533: -#line 2909 "./util/configparser.y" + case 535: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 2924 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6739 "util/configparser.c" +#line 6074 "util/configparser.c" break; - case 534: -#line 2917 "./util/configparser.y" + case 536: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2932 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6750 "util/configparser.c" +#line 6085 "util/configparser.c" break; - case 535: -#line 2925 "./util/configparser.y" + case 537: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2940 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6764,11 +6099,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6768 "util/configparser.c" +#line 6103 "util/configparser.c" break; - case 536: -#line 2940 "./util/configparser.y" + case 538: /* view_first: VAR_VIEW_FIRST STRING_ARG */ +#line 2955 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6776,19 +6111,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6780 "util/configparser.c" +#line 6115 "util/configparser.c" break; - case 537: -#line 2949 "./util/configparser.y" + case 539: /* rcstart: VAR_REMOTE_CONTROL */ +#line 2964 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6788 "util/configparser.c" +#line 6123 "util/configparser.c" break; - case 548: -#line 2960 "./util/configparser.y" + case 550: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ +#line 2975 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6797,11 +6132,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6801 "util/configparser.c" +#line 6136 "util/configparser.c" break; - case 549: -#line 2970 "./util/configparser.y" + case 551: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ +#line 2985 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6809,79 +6144,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6813 "util/configparser.c" +#line 6148 "util/configparser.c" break; - case 550: -#line 2979 "./util/configparser.y" + case 552: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ +#line 2994 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6823 "util/configparser.c" +#line 6158 "util/configparser.c" break; - case 551: -#line 2986 "./util/configparser.y" + case 553: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ +#line 3001 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6833 "util/configparser.c" +#line 6168 "util/configparser.c" break; - case 552: -#line 2993 "./util/configparser.y" + case 554: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ +#line 3008 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 6843 "util/configparser.c" +#line 6178 "util/configparser.c" break; - case 553: -#line 3000 "./util/configparser.y" + case 555: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ +#line 3015 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 6853 "util/configparser.c" +#line 6188 "util/configparser.c" break; - case 554: -#line 3007 "./util/configparser.y" + case 556: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ +#line 3022 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 6863 "util/configparser.c" +#line 6198 "util/configparser.c" break; - case 555: -#line 3014 "./util/configparser.y" + case 557: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ +#line 3029 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 6873 "util/configparser.c" +#line 6208 "util/configparser.c" break; - case 556: -#line 3021 "./util/configparser.y" + case 558: /* dtstart: VAR_DNSTAP */ +#line 3036 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6881 "util/configparser.c" +#line 6216 "util/configparser.c" break; - case 578: -#line 3041 "./util/configparser.y" + case 580: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ +#line 3056 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6889,11 +6224,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6893 "util/configparser.c" +#line 6228 "util/configparser.c" break; - case 579: -#line 3050 "./util/configparser.y" + case 581: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ +#line 3065 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6902,31 +6237,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6906 "util/configparser.c" +#line 6241 "util/configparser.c" break; - case 580: -#line 3060 "./util/configparser.y" + case 582: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ +#line 3075 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 6916 "util/configparser.c" +#line 6251 "util/configparser.c" break; - case 581: -#line 3067 "./util/configparser.y" + case 583: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ +#line 3082 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 6926 "util/configparser.c" +#line 6261 "util/configparser.c" break; - case 582: -#line 3074 "./util/configparser.y" + case 584: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ +#line 3089 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6934,51 +6269,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6938 "util/configparser.c" +#line 6273 "util/configparser.c" break; - case 583: -#line 3083 "./util/configparser.y" + case 585: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ +#line 3098 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 6948 "util/configparser.c" +#line 6283 "util/configparser.c" break; - case 584: -#line 3090 "./util/configparser.y" + case 586: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ +#line 3105 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 6958 "util/configparser.c" +#line 6293 "util/configparser.c" break; - case 585: -#line 3097 "./util/configparser.y" + case 587: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ +#line 3112 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 6968 "util/configparser.c" +#line 6303 "util/configparser.c" break; - case 586: -#line 3104 "./util/configparser.y" + case 588: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ +#line 3119 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 6978 "util/configparser.c" +#line 6313 "util/configparser.c" break; - case 587: -#line 3111 "./util/configparser.y" + case 589: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ +#line 3126 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6986,11 +6321,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6990 "util/configparser.c" +#line 6325 "util/configparser.c" break; - case 588: -#line 3120 "./util/configparser.y" + case 590: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ +#line 3135 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6998,31 +6333,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7002 "util/configparser.c" +#line 6337 "util/configparser.c" break; - case 589: -#line 3129 "./util/configparser.y" + case 591: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ +#line 3144 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 7012 "util/configparser.c" +#line 6347 "util/configparser.c" break; - case 590: -#line 3136 "./util/configparser.y" + case 592: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ +#line 3151 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 7022 "util/configparser.c" +#line 6357 "util/configparser.c" break; - case 591: -#line 3143 "./util/configparser.y" + case 593: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ +#line 3158 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7031,11 +6366,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7035 "util/configparser.c" +#line 6370 "util/configparser.c" break; - case 592: -#line 3153 "./util/configparser.y" + case 594: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ +#line 3168 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7044,11 +6379,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7048 "util/configparser.c" +#line 6383 "util/configparser.c" break; - case 593: -#line 3163 "./util/configparser.y" + case 595: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ +#line 3178 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7057,11 +6392,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7061 "util/configparser.c" +#line 6396 "util/configparser.c" break; - case 594: -#line 3173 "./util/configparser.y" + case 596: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ +#line 3188 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7070,11 +6405,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7074 "util/configparser.c" +#line 6409 "util/configparser.c" break; - case 595: -#line 3183 "./util/configparser.y" + case 597: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ +#line 3198 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7083,11 +6418,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7087 "util/configparser.c" +#line 6422 "util/configparser.c" break; - case 596: -#line 3193 "./util/configparser.y" + case 598: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ +#line 3208 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7096,47 +6431,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7100 "util/configparser.c" +#line 6435 "util/configparser.c" break; - case 597: -#line 3203 "./util/configparser.y" + case 599: /* pythonstart: VAR_PYTHON */ +#line 3218 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 7108 "util/configparser.c" +#line 6443 "util/configparser.c" break; - case 601: -#line 3212 "./util/configparser.y" + case 603: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ +#line 3227 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7118 "util/configparser.c" +#line 6453 "util/configparser.c" break; - case 602: -#line 3218 "./util/configparser.y" + case 604: /* dynlibstart: VAR_DYNLIB */ +#line 3233 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 7126 "util/configparser.c" +#line 6461 "util/configparser.c" break; - case 606: -#line 3227 "./util/configparser.y" + case 608: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ +#line 3242 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7136 "util/configparser.c" +#line 6471 "util/configparser.c" break; - case 607: -#line 3233 "./util/configparser.y" + case 609: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ +#line 3248 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7145,21 +6480,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7149 "util/configparser.c" +#line 6484 "util/configparser.c" break; - case 608: -#line 3243 "./util/configparser.y" + case 610: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ +#line 3258 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 7159 "util/configparser.c" +#line 6494 "util/configparser.c" break; - case 609: -#line 3250 "./util/configparser.y" + case 611: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3265 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -7167,30 +6502,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 7171 "util/configparser.c" +#line 6506 "util/configparser.c" break; - case 610: -#line 3259 "./util/configparser.y" + case 612: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3274 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 7182 "util/configparser.c" +#line 6517 "util/configparser.c" break; - case 611: -#line 3267 "./util/configparser.y" + case 613: /* dnscstart: VAR_DNSCRYPT */ +#line 3282 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7190 "util/configparser.c" +#line 6525 "util/configparser.c" break; - case 624: -#line 3283 "./util/configparser.y" + case 626: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ +#line 3298 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7198,11 +6533,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7202 "util/configparser.c" +#line 6537 "util/configparser.c" break; - case 625: -#line 3293 "./util/configparser.y" + case 627: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ +#line 3308 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7210,21 +6545,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7214 "util/configparser.c" +#line 6549 "util/configparser.c" break; - case 626: -#line 3302 "./util/configparser.y" + case 628: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ +#line 3317 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 7224 "util/configparser.c" +#line 6559 "util/configparser.c" break; - case 627: -#line 3309 "./util/configparser.y" + case 629: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ +#line 3324 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -7232,21 +6567,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7236 "util/configparser.c" +#line 6571 "util/configparser.c" break; - case 628: -#line 3318 "./util/configparser.y" + case 630: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ +#line 3333 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 7246 "util/configparser.c" +#line 6581 "util/configparser.c" break; - case 629: -#line 3325 "./util/configparser.y" + case 631: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ +#line 3340 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -7254,22 +6589,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 7258 "util/configparser.c" +#line 6593 "util/configparser.c" break; - case 630: -#line 3334 "./util/configparser.y" + case 632: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ +#line 3349 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7269 "util/configparser.c" +#line 6604 "util/configparser.c" break; - case 631: -#line 3342 "./util/configparser.y" + case 633: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ +#line 3357 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7281,22 +6616,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7285 "util/configparser.c" +#line 6620 "util/configparser.c" break; - case 632: -#line 3355 "./util/configparser.y" + case 634: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ +#line 3370 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7296 "util/configparser.c" +#line 6631 "util/configparser.c" break; - case 633: -#line 3363 "./util/configparser.y" + case 635: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ +#line 3378 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7308,19 +6643,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7312 "util/configparser.c" +#line 6647 "util/configparser.c" break; - case 634: -#line 3376 "./util/configparser.y" + case 636: /* cachedbstart: VAR_CACHEDB */ +#line 3391 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 7320 "util/configparser.c" +#line 6655 "util/configparser.c" break; - case 643: -#line 3387 "./util/configparser.y" + case 645: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ +#line 3402 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -7331,11 +6666,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7335 "util/configparser.c" +#line 6670 "util/configparser.c" break; - case 644: -#line 3399 "./util/configparser.y" + case 646: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ +#line 3414 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -7346,11 +6681,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7350 "util/configparser.c" +#line 6685 "util/configparser.c" break; - case 645: -#line 3411 "./util/configparser.y" + case 647: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ +#line 3426 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -7361,11 +6696,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7365 "util/configparser.c" +#line 6700 "util/configparser.c" break; - case 646: -#line 3423 "./util/configparser.y" + case 648: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ +#line 3438 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -7379,11 +6714,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7383 "util/configparser.c" +#line 6718 "util/configparser.c" break; - case 647: -#line 3438 "./util/configparser.y" + case 649: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ +#line 3453 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -7395,11 +6730,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7399 "util/configparser.c" +#line 6734 "util/configparser.c" break; - case 648: -#line 3451 "./util/configparser.y" + case 650: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ +#line 3466 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -7411,11 +6746,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7415 "util/configparser.c" +#line 6750 "util/configparser.c" break; - case 649: -#line 3464 "./util/configparser.y" + case 651: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ +#line 3479 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -7425,19 +6760,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 7429 "util/configparser.c" +#line 6764 "util/configparser.c" break; - case 650: -#line 3475 "./util/configparser.y" + case 652: /* ipsetstart: VAR_IPSET */ +#line 3490 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 7437 "util/configparser.c" +#line 6772 "util/configparser.c" break; - case 655: -#line 3484 "./util/configparser.y" + case 657: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ +#line 3499 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -7451,11 +6786,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7455 "util/configparser.c" +#line 6790 "util/configparser.c" break; - case 656: -#line 3499 "./util/configparser.y" + case 658: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ +#line 3514 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -7469,11 +6804,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7473 "util/configparser.c" +#line 6808 "util/configparser.c" break; -#line 7477 "util/configparser.c" +#line 6812 "util/configparser.c" default: break; } @@ -7633,13 +6968,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -7667,7 +7002,7 @@ yyreturn: return yyresult; } -#line 3513 "./util/configparser.y" +#line 3528 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index aa54b9a17..81766639a 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison interface for Yacc-like parsers in C @@ -169,207 +169,209 @@ extern int yydebug; VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_CACHE_MIN_TTL = 373, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 374, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 375, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 376, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 377, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 378, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 379, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 380, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 381, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 382, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 383, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 384, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 385, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 386, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 387, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 388, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 389, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 390, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 391, /* VAR_SSL_UPSTREAM */ - VAR_TCP_AUTH_QUERY_TIMEOUT = 392, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ - VAR_SSL_SERVICE_KEY = 393, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 394, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 395, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 396, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 397, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 398, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 399, /* VAR_TLS_CERT_BUNDLE */ - VAR_HTTPS_PORT = 400, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 401, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 402, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 403, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 404, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 405, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 406, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 407, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 408, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 409, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 410, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 411, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 412, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 413, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 414, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 415, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 416, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 417, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 418, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 419, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 420, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 421, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 422, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 423, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 424, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 425, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 426, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 427, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 429, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 430, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 431, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 432, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 433, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 434, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 436, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 438, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 440, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 441, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 442, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 443, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 444, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 445, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 446, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 447, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 448, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 449, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 450, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 451, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 452, /* VAR_RATELIMIT_SIZE */ - VAR_RATELIMIT_FOR_DOMAIN = 453, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 454, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 455, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 456, /* VAR_RATELIMIT_FACTOR */ - VAR_SEND_CLIENT_SUBNET = 457, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 458, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 459, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 460, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 461, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 463, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 465, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 467, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 468, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 469, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 470, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 471, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 472, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 473, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 474, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 475, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 476, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 477, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 478, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 479, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 480, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 481, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 482, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 483, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 484, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 485, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 486, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 487, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 488, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 489, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 490, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 491, /* VAR_HIDE_TRUSTANCHOR */ - VAR_TRUST_ANCHOR_SIGNALING = 492, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 493, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 494, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 495, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 496, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 497, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 498, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 499, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 500, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 501, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 502, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 503, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 504, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 505, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 507, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 509, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 510, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 511, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 512, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 513, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 514, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 515, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 516, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 517, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 518, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 519, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 520, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 521, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 522, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 523, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 524, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 525, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 526, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 527, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 528, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 529, /* VAR_ZONEFILE */ - VAR_MASTER = 530, /* VAR_MASTER */ - VAR_URL = 531, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 532, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 533, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 534, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 535, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 536, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 537, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 538, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 539, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 540, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 541, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 542, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 543, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 544, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 545, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 546, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 547, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 548, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 549, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 550, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 551, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 552, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 553, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 554, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 555, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 556, /* VAR_RPZ */ - VAR_TAGS = 557, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 558, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 559, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 560, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 561, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 562, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 563, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 564, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 565, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 566, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 567, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 568, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 569 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_VAL_MAX_RESTART = 373, /* VAR_VAL_MAX_RESTART */ + VAR_CACHE_MIN_TTL = 374, /* VAR_CACHE_MIN_TTL */ + VAR_VAL_LOG_LEVEL = 375, /* VAR_VAL_LOG_LEVEL */ + VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE */ + VAR_KEEP_MISSING = 377, /* VAR_KEEP_MISSING */ + VAR_ADD_HOLDDOWN = 378, /* VAR_ADD_HOLDDOWN */ + VAR_DEL_HOLDDOWN = 379, /* VAR_DEL_HOLDDOWN */ + VAR_SO_RCVBUF = 380, /* VAR_SO_RCVBUF */ + VAR_EDNS_BUFFER_SIZE = 381, /* VAR_EDNS_BUFFER_SIZE */ + VAR_PREFETCH = 382, /* VAR_PREFETCH */ + VAR_PREFETCH_KEY = 383, /* VAR_PREFETCH_KEY */ + VAR_SO_SNDBUF = 384, /* VAR_SO_SNDBUF */ + VAR_SO_REUSEPORT = 385, /* VAR_SO_REUSEPORT */ + VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN */ + VAR_IGNORE_CD_FLAG = 387, /* VAR_IGNORE_CD_FLAG */ + VAR_LOG_QUERIES = 388, /* VAR_LOG_QUERIES */ + VAR_LOG_REPLIES = 389, /* VAR_LOG_REPLIES */ + VAR_LOG_LOCAL_ACTIONS = 390, /* VAR_LOG_LOCAL_ACTIONS */ + VAR_TCP_UPSTREAM = 391, /* VAR_TCP_UPSTREAM */ + VAR_SSL_UPSTREAM = 392, /* VAR_SSL_UPSTREAM */ + VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ + VAR_SSL_SERVICE_KEY = 394, /* VAR_SSL_SERVICE_KEY */ + VAR_SSL_SERVICE_PEM = 395, /* VAR_SSL_SERVICE_PEM */ + VAR_SSL_PORT = 396, /* VAR_SSL_PORT */ + VAR_FORWARD_FIRST = 397, /* VAR_FORWARD_FIRST */ + VAR_STUB_SSL_UPSTREAM = 398, /* VAR_STUB_SSL_UPSTREAM */ + VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM */ + VAR_TLS_CERT_BUNDLE = 400, /* VAR_TLS_CERT_BUNDLE */ + VAR_HTTPS_PORT = 401, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 402, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 403, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 404, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 405, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 406, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 407, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 408, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 409, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 410, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 411, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 412, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 413, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 414, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 415, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 416, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 417, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 418, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 419, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 420, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 421, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 422, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 423, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 424, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 425, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 426, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 427, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 428, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 429, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 430, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 431, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 432, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 433, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 434, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 435, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 436, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 441, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 442, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 443, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 444, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 445, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 446, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 447, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 448, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 449, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 450, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 451, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 452, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 453, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 454, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 455, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 456, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 457, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 458, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 459, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 460, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 461, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 462, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 463, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 464, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 465, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 466, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 467, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 468, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 469, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 470, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 471, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 472, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 473, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 474, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 475, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 476, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 477, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 478, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 479, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 480, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 481, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 482, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 483, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 484, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 485, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 486, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 487, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 488, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 489, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 490, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 491, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 492, /* VAR_HIDE_TRUSTANCHOR */ + VAR_TRUST_ANCHOR_SIGNALING = 493, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 494, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 495, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 496, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 497, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 498, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 499, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 500, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 501, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 502, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 503, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 504, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 505, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 506, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 507, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 508, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 509, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 510, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 511, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 512, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 513, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 514, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 515, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 516, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 517, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 518, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 519, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 520, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 521, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 522, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 523, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 524, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 525, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 526, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 527, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 528, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 529, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 530, /* VAR_ZONEFILE */ + VAR_MASTER = 531, /* VAR_MASTER */ + VAR_URL = 532, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 533, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 534, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 535, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 536, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 537, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 538, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 539, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 540, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 541, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 542, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 543, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 544, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 545, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 546, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 547, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 548, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 549, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 550, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 551, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 552, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 553, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 554, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 555, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 556, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 557, /* VAR_RPZ */ + VAR_TAGS = 558, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 559, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 560, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 561, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 562, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 563, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 564, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 565, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 566, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 567, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 568, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_CHECK = 569, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 570 /* VAR_ZONEMD_REJECT_ABSENCE */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ +#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -488,203 +490,204 @@ extern int yydebug; #define VAR_PYTHON_SCRIPT 370 #define VAR_VAL_SIG_SKEW_MIN 371 #define VAR_VAL_SIG_SKEW_MAX 372 -#define VAR_CACHE_MIN_TTL 373 -#define VAR_VAL_LOG_LEVEL 374 -#define VAR_AUTO_TRUST_ANCHOR_FILE 375 -#define VAR_KEEP_MISSING 376 -#define VAR_ADD_HOLDDOWN 377 -#define VAR_DEL_HOLDDOWN 378 -#define VAR_SO_RCVBUF 379 -#define VAR_EDNS_BUFFER_SIZE 380 -#define VAR_PREFETCH 381 -#define VAR_PREFETCH_KEY 382 -#define VAR_SO_SNDBUF 383 -#define VAR_SO_REUSEPORT 384 -#define VAR_HARDEN_BELOW_NXDOMAIN 385 -#define VAR_IGNORE_CD_FLAG 386 -#define VAR_LOG_QUERIES 387 -#define VAR_LOG_REPLIES 388 -#define VAR_LOG_LOCAL_ACTIONS 389 -#define VAR_TCP_UPSTREAM 390 -#define VAR_SSL_UPSTREAM 391 -#define VAR_TCP_AUTH_QUERY_TIMEOUT 392 -#define VAR_SSL_SERVICE_KEY 393 -#define VAR_SSL_SERVICE_PEM 394 -#define VAR_SSL_PORT 395 -#define VAR_FORWARD_FIRST 396 -#define VAR_STUB_SSL_UPSTREAM 397 -#define VAR_FORWARD_SSL_UPSTREAM 398 -#define VAR_TLS_CERT_BUNDLE 399 -#define VAR_HTTPS_PORT 400 -#define VAR_HTTP_ENDPOINT 401 -#define VAR_HTTP_MAX_STREAMS 402 -#define VAR_HTTP_QUERY_BUFFER_SIZE 403 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 404 -#define VAR_HTTP_NODELAY 405 -#define VAR_HTTP_NOTLS_DOWNSTREAM 406 -#define VAR_STUB_FIRST 407 -#define VAR_MINIMAL_RESPONSES 408 -#define VAR_RRSET_ROUNDROBIN 409 -#define VAR_MAX_UDP_SIZE 410 -#define VAR_DELAY_CLOSE 411 -#define VAR_UDP_CONNECT 412 -#define VAR_UNBLOCK_LAN_ZONES 413 -#define VAR_INSECURE_LAN_ZONES 414 -#define VAR_INFRA_CACHE_MIN_RTT 415 -#define VAR_INFRA_KEEP_PROBING 416 -#define VAR_DNS64_PREFIX 417 -#define VAR_DNS64_SYNTHALL 418 -#define VAR_DNS64_IGNORE_AAAA 419 -#define VAR_DNSTAP 420 -#define VAR_DNSTAP_ENABLE 421 -#define VAR_DNSTAP_SOCKET_PATH 422 -#define VAR_DNSTAP_IP 423 -#define VAR_DNSTAP_TLS 424 -#define VAR_DNSTAP_TLS_SERVER_NAME 425 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 426 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 427 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 428 -#define VAR_DNSTAP_SEND_IDENTITY 429 -#define VAR_DNSTAP_SEND_VERSION 430 -#define VAR_DNSTAP_BIDIRECTIONAL 431 -#define VAR_DNSTAP_IDENTITY 432 -#define VAR_DNSTAP_VERSION 433 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 434 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 435 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 436 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 437 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 438 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 439 -#define VAR_RESPONSE_IP_TAG 440 -#define VAR_RESPONSE_IP 441 -#define VAR_RESPONSE_IP_DATA 442 -#define VAR_HARDEN_ALGO_DOWNGRADE 443 -#define VAR_IP_TRANSPARENT 444 -#define VAR_IP_DSCP 445 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 446 -#define VAR_IP_RATELIMIT 447 -#define VAR_IP_RATELIMIT_SLABS 448 -#define VAR_IP_RATELIMIT_SIZE 449 -#define VAR_RATELIMIT 450 -#define VAR_RATELIMIT_SLABS 451 -#define VAR_RATELIMIT_SIZE 452 -#define VAR_RATELIMIT_FOR_DOMAIN 453 -#define VAR_RATELIMIT_BELOW_DOMAIN 454 -#define VAR_IP_RATELIMIT_FACTOR 455 -#define VAR_RATELIMIT_FACTOR 456 -#define VAR_SEND_CLIENT_SUBNET 457 -#define VAR_CLIENT_SUBNET_ZONE 458 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 459 -#define VAR_CLIENT_SUBNET_OPCODE 460 -#define VAR_MAX_CLIENT_SUBNET_IPV4 461 -#define VAR_MAX_CLIENT_SUBNET_IPV6 462 -#define VAR_MIN_CLIENT_SUBNET_IPV4 463 -#define VAR_MIN_CLIENT_SUBNET_IPV6 464 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 465 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 466 -#define VAR_CAPS_WHITELIST 467 -#define VAR_CACHE_MAX_NEGATIVE_TTL 468 -#define VAR_PERMIT_SMALL_HOLDDOWN 469 -#define VAR_QNAME_MINIMISATION 470 -#define VAR_QNAME_MINIMISATION_STRICT 471 -#define VAR_IP_FREEBIND 472 -#define VAR_DEFINE_TAG 473 -#define VAR_LOCAL_ZONE_TAG 474 -#define VAR_ACCESS_CONTROL_TAG 475 -#define VAR_LOCAL_ZONE_OVERRIDE 476 -#define VAR_ACCESS_CONTROL_TAG_ACTION 477 -#define VAR_ACCESS_CONTROL_TAG_DATA 478 -#define VAR_VIEW 479 -#define VAR_ACCESS_CONTROL_VIEW 480 -#define VAR_VIEW_FIRST 481 -#define VAR_SERVE_EXPIRED 482 -#define VAR_SERVE_EXPIRED_TTL 483 -#define VAR_SERVE_EXPIRED_TTL_RESET 484 -#define VAR_SERVE_EXPIRED_REPLY_TTL 485 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 486 -#define VAR_SERVE_ORIGINAL_TTL 487 -#define VAR_FAKE_DSA 488 -#define VAR_FAKE_SHA1 489 -#define VAR_LOG_IDENTITY 490 -#define VAR_HIDE_TRUSTANCHOR 491 -#define VAR_TRUST_ANCHOR_SIGNALING 492 -#define VAR_AGGRESSIVE_NSEC 493 -#define VAR_USE_SYSTEMD 494 -#define VAR_SHM_ENABLE 495 -#define VAR_SHM_KEY 496 -#define VAR_ROOT_KEY_SENTINEL 497 -#define VAR_DNSCRYPT 498 -#define VAR_DNSCRYPT_ENABLE 499 -#define VAR_DNSCRYPT_PORT 500 -#define VAR_DNSCRYPT_PROVIDER 501 -#define VAR_DNSCRYPT_SECRET_KEY 502 -#define VAR_DNSCRYPT_PROVIDER_CERT 503 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 504 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 505 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 506 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 507 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 508 -#define VAR_PAD_RESPONSES 509 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 510 -#define VAR_PAD_QUERIES 511 -#define VAR_PAD_QUERIES_BLOCK_SIZE 512 -#define VAR_IPSECMOD_ENABLED 513 -#define VAR_IPSECMOD_HOOK 514 -#define VAR_IPSECMOD_IGNORE_BOGUS 515 -#define VAR_IPSECMOD_MAX_TTL 516 -#define VAR_IPSECMOD_WHITELIST 517 -#define VAR_IPSECMOD_STRICT 518 -#define VAR_CACHEDB 519 -#define VAR_CACHEDB_BACKEND 520 -#define VAR_CACHEDB_SECRETSEED 521 -#define VAR_CACHEDB_REDISHOST 522 -#define VAR_CACHEDB_REDISPORT 523 -#define VAR_CACHEDB_REDISTIMEOUT 524 -#define VAR_CACHEDB_REDISEXPIRERECORDS 525 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 526 -#define VAR_FOR_UPSTREAM 527 -#define VAR_AUTH_ZONE 528 -#define VAR_ZONEFILE 529 -#define VAR_MASTER 530 -#define VAR_URL 531 -#define VAR_FOR_DOWNSTREAM 532 -#define VAR_FALLBACK_ENABLED 533 -#define VAR_TLS_ADDITIONAL_PORT 534 -#define VAR_LOW_RTT 535 -#define VAR_LOW_RTT_PERMIL 536 -#define VAR_FAST_SERVER_PERMIL 537 -#define VAR_FAST_SERVER_NUM 538 -#define VAR_ALLOW_NOTIFY 539 -#define VAR_TLS_WIN_CERT 540 -#define VAR_TCP_CONNECTION_LIMIT 541 -#define VAR_FORWARD_NO_CACHE 542 -#define VAR_STUB_NO_CACHE 543 -#define VAR_LOG_SERVFAIL 544 -#define VAR_DENY_ANY 545 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 546 -#define VAR_LOG_TAG_QUERYREPLY 547 -#define VAR_STREAM_WAIT_SIZE 548 -#define VAR_TLS_CIPHERS 549 -#define VAR_TLS_CIPHERSUITES 550 -#define VAR_TLS_USE_SNI 551 -#define VAR_IPSET 552 -#define VAR_IPSET_NAME_V4 553 -#define VAR_IPSET_NAME_V6 554 -#define VAR_TLS_SESSION_TICKET_KEYS 555 -#define VAR_RPZ 556 -#define VAR_TAGS 557 -#define VAR_RPZ_ACTION_OVERRIDE 558 -#define VAR_RPZ_CNAME_OVERRIDE 559 -#define VAR_RPZ_LOG 560 -#define VAR_RPZ_LOG_NAME 561 -#define VAR_DYNLIB 562 -#define VAR_DYNLIB_FILE 563 -#define VAR_EDNS_CLIENT_STRING 564 -#define VAR_EDNS_CLIENT_STRING_OPCODE 565 -#define VAR_NSID 566 -#define VAR_ZONEMD_PERMISSIVE_MODE 567 -#define VAR_ZONEMD_CHECK 568 -#define VAR_ZONEMD_REJECT_ABSENCE 569 +#define VAR_VAL_MAX_RESTART 373 +#define VAR_CACHE_MIN_TTL 374 +#define VAR_VAL_LOG_LEVEL 375 +#define VAR_AUTO_TRUST_ANCHOR_FILE 376 +#define VAR_KEEP_MISSING 377 +#define VAR_ADD_HOLDDOWN 378 +#define VAR_DEL_HOLDDOWN 379 +#define VAR_SO_RCVBUF 380 +#define VAR_EDNS_BUFFER_SIZE 381 +#define VAR_PREFETCH 382 +#define VAR_PREFETCH_KEY 383 +#define VAR_SO_SNDBUF 384 +#define VAR_SO_REUSEPORT 385 +#define VAR_HARDEN_BELOW_NXDOMAIN 386 +#define VAR_IGNORE_CD_FLAG 387 +#define VAR_LOG_QUERIES 388 +#define VAR_LOG_REPLIES 389 +#define VAR_LOG_LOCAL_ACTIONS 390 +#define VAR_TCP_UPSTREAM 391 +#define VAR_SSL_UPSTREAM 392 +#define VAR_TCP_AUTH_QUERY_TIMEOUT 393 +#define VAR_SSL_SERVICE_KEY 394 +#define VAR_SSL_SERVICE_PEM 395 +#define VAR_SSL_PORT 396 +#define VAR_FORWARD_FIRST 397 +#define VAR_STUB_SSL_UPSTREAM 398 +#define VAR_FORWARD_SSL_UPSTREAM 399 +#define VAR_TLS_CERT_BUNDLE 400 +#define VAR_HTTPS_PORT 401 +#define VAR_HTTP_ENDPOINT 402 +#define VAR_HTTP_MAX_STREAMS 403 +#define VAR_HTTP_QUERY_BUFFER_SIZE 404 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 405 +#define VAR_HTTP_NODELAY 406 +#define VAR_HTTP_NOTLS_DOWNSTREAM 407 +#define VAR_STUB_FIRST 408 +#define VAR_MINIMAL_RESPONSES 409 +#define VAR_RRSET_ROUNDROBIN 410 +#define VAR_MAX_UDP_SIZE 411 +#define VAR_DELAY_CLOSE 412 +#define VAR_UDP_CONNECT 413 +#define VAR_UNBLOCK_LAN_ZONES 414 +#define VAR_INSECURE_LAN_ZONES 415 +#define VAR_INFRA_CACHE_MIN_RTT 416 +#define VAR_INFRA_KEEP_PROBING 417 +#define VAR_DNS64_PREFIX 418 +#define VAR_DNS64_SYNTHALL 419 +#define VAR_DNS64_IGNORE_AAAA 420 +#define VAR_DNSTAP 421 +#define VAR_DNSTAP_ENABLE 422 +#define VAR_DNSTAP_SOCKET_PATH 423 +#define VAR_DNSTAP_IP 424 +#define VAR_DNSTAP_TLS 425 +#define VAR_DNSTAP_TLS_SERVER_NAME 426 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 427 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 428 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 429 +#define VAR_DNSTAP_SEND_IDENTITY 430 +#define VAR_DNSTAP_SEND_VERSION 431 +#define VAR_DNSTAP_BIDIRECTIONAL 432 +#define VAR_DNSTAP_IDENTITY 433 +#define VAR_DNSTAP_VERSION 434 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 436 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 440 +#define VAR_RESPONSE_IP_TAG 441 +#define VAR_RESPONSE_IP 442 +#define VAR_RESPONSE_IP_DATA 443 +#define VAR_HARDEN_ALGO_DOWNGRADE 444 +#define VAR_IP_TRANSPARENT 445 +#define VAR_IP_DSCP 446 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 447 +#define VAR_IP_RATELIMIT 448 +#define VAR_IP_RATELIMIT_SLABS 449 +#define VAR_IP_RATELIMIT_SIZE 450 +#define VAR_RATELIMIT 451 +#define VAR_RATELIMIT_SLABS 452 +#define VAR_RATELIMIT_SIZE 453 +#define VAR_RATELIMIT_FOR_DOMAIN 454 +#define VAR_RATELIMIT_BELOW_DOMAIN 455 +#define VAR_IP_RATELIMIT_FACTOR 456 +#define VAR_RATELIMIT_FACTOR 457 +#define VAR_SEND_CLIENT_SUBNET 458 +#define VAR_CLIENT_SUBNET_ZONE 459 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 460 +#define VAR_CLIENT_SUBNET_OPCODE 461 +#define VAR_MAX_CLIENT_SUBNET_IPV4 462 +#define VAR_MAX_CLIENT_SUBNET_IPV6 463 +#define VAR_MIN_CLIENT_SUBNET_IPV4 464 +#define VAR_MIN_CLIENT_SUBNET_IPV6 465 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 466 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 467 +#define VAR_CAPS_WHITELIST 468 +#define VAR_CACHE_MAX_NEGATIVE_TTL 469 +#define VAR_PERMIT_SMALL_HOLDDOWN 470 +#define VAR_QNAME_MINIMISATION 471 +#define VAR_QNAME_MINIMISATION_STRICT 472 +#define VAR_IP_FREEBIND 473 +#define VAR_DEFINE_TAG 474 +#define VAR_LOCAL_ZONE_TAG 475 +#define VAR_ACCESS_CONTROL_TAG 476 +#define VAR_LOCAL_ZONE_OVERRIDE 477 +#define VAR_ACCESS_CONTROL_TAG_ACTION 478 +#define VAR_ACCESS_CONTROL_TAG_DATA 479 +#define VAR_VIEW 480 +#define VAR_ACCESS_CONTROL_VIEW 481 +#define VAR_VIEW_FIRST 482 +#define VAR_SERVE_EXPIRED 483 +#define VAR_SERVE_EXPIRED_TTL 484 +#define VAR_SERVE_EXPIRED_TTL_RESET 485 +#define VAR_SERVE_EXPIRED_REPLY_TTL 486 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 487 +#define VAR_SERVE_ORIGINAL_TTL 488 +#define VAR_FAKE_DSA 489 +#define VAR_FAKE_SHA1 490 +#define VAR_LOG_IDENTITY 491 +#define VAR_HIDE_TRUSTANCHOR 492 +#define VAR_TRUST_ANCHOR_SIGNALING 493 +#define VAR_AGGRESSIVE_NSEC 494 +#define VAR_USE_SYSTEMD 495 +#define VAR_SHM_ENABLE 496 +#define VAR_SHM_KEY 497 +#define VAR_ROOT_KEY_SENTINEL 498 +#define VAR_DNSCRYPT 499 +#define VAR_DNSCRYPT_ENABLE 500 +#define VAR_DNSCRYPT_PORT 501 +#define VAR_DNSCRYPT_PROVIDER 502 +#define VAR_DNSCRYPT_SECRET_KEY 503 +#define VAR_DNSCRYPT_PROVIDER_CERT 504 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 505 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 506 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 507 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 508 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 509 +#define VAR_PAD_RESPONSES 510 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 511 +#define VAR_PAD_QUERIES 512 +#define VAR_PAD_QUERIES_BLOCK_SIZE 513 +#define VAR_IPSECMOD_ENABLED 514 +#define VAR_IPSECMOD_HOOK 515 +#define VAR_IPSECMOD_IGNORE_BOGUS 516 +#define VAR_IPSECMOD_MAX_TTL 517 +#define VAR_IPSECMOD_WHITELIST 518 +#define VAR_IPSECMOD_STRICT 519 +#define VAR_CACHEDB 520 +#define VAR_CACHEDB_BACKEND 521 +#define VAR_CACHEDB_SECRETSEED 522 +#define VAR_CACHEDB_REDISHOST 523 +#define VAR_CACHEDB_REDISPORT 524 +#define VAR_CACHEDB_REDISTIMEOUT 525 +#define VAR_CACHEDB_REDISEXPIRERECORDS 526 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 527 +#define VAR_FOR_UPSTREAM 528 +#define VAR_AUTH_ZONE 529 +#define VAR_ZONEFILE 530 +#define VAR_MASTER 531 +#define VAR_URL 532 +#define VAR_FOR_DOWNSTREAM 533 +#define VAR_FALLBACK_ENABLED 534 +#define VAR_TLS_ADDITIONAL_PORT 535 +#define VAR_LOW_RTT 536 +#define VAR_LOW_RTT_PERMIL 537 +#define VAR_FAST_SERVER_PERMIL 538 +#define VAR_FAST_SERVER_NUM 539 +#define VAR_ALLOW_NOTIFY 540 +#define VAR_TLS_WIN_CERT 541 +#define VAR_TCP_CONNECTION_LIMIT 542 +#define VAR_FORWARD_NO_CACHE 543 +#define VAR_STUB_NO_CACHE 544 +#define VAR_LOG_SERVFAIL 545 +#define VAR_DENY_ANY 546 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 547 +#define VAR_LOG_TAG_QUERYREPLY 548 +#define VAR_STREAM_WAIT_SIZE 549 +#define VAR_TLS_CIPHERS 550 +#define VAR_TLS_CIPHERSUITES 551 +#define VAR_TLS_USE_SNI 552 +#define VAR_IPSET 553 +#define VAR_IPSET_NAME_V4 554 +#define VAR_IPSET_NAME_V6 555 +#define VAR_TLS_SESSION_TICKET_KEYS 556 +#define VAR_RPZ 557 +#define VAR_TAGS 558 +#define VAR_RPZ_ACTION_OVERRIDE 559 +#define VAR_RPZ_CNAME_OVERRIDE 560 +#define VAR_RPZ_LOG 561 +#define VAR_RPZ_LOG_NAME 562 +#define VAR_DYNLIB 563 +#define VAR_DYNLIB_FILE 564 +#define VAR_EDNS_CLIENT_STRING 565 +#define VAR_EDNS_CLIENT_STRING_OPCODE 566 +#define VAR_NSID 567 +#define VAR_ZONEMD_PERMISSIVE_MODE 568 +#define VAR_ZONEMD_CHECK 569 +#define VAR_ZONEMD_REJECT_ABSENCE 570 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -694,7 +697,7 @@ union YYSTYPE char* str; -#line 698 "util/configparser.h" +#line 701 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; From ad939e54d0cc00c32fe88f4c6c5859536874ff43 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Wed, 9 Jun 2021 15:52:56 +0200 Subject: [PATCH 049/156] - Fix #413 (based on patch by k-ronny): unbound: does not compile on macOS 11.1-x86_64 host. --- configure | 26 +++++++++++++++++++------- configure.ac | 24 ++++++++++++------------ doc/Changelog | 2 ++ 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/configure b/configure index d0050b1e6..274889824 100755 --- a/configure +++ b/configure @@ -811,6 +811,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -961,6 +962,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1213,6 +1215,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1350,7 +1361,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1503,6 +1514,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -19178,8 +19190,8 @@ fi case "$enable_tfo_client" in yes) - case `uname` in - Linux) ac_fn_c_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default + case "$host_os" in + linux*) ac_fn_c_check_decl "$LINENO" "MSG_FASTOPEN" "ac_cv_have_decl_MSG_FASTOPEN" "$ac_includes_default #include " @@ -19195,8 +19207,8 @@ cat >>confdefs.h <<_ACEOF #define USE_MSG_FASTOPEN 1 _ACEOF - ;; - Darwin) ac_fn_c_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default + ;; + darwin*) ac_fn_c_check_decl "$LINENO" "CONNECT_RESUME_ON_READ_WRITE" "ac_cv_have_decl_CONNECT_RESUME_ON_READ_WRITE" "$ac_includes_default #include " @@ -19212,9 +19224,9 @@ cat >>confdefs.h <<_ACEOF #define USE_OSX_MSG_FASTOPEN 1 _ACEOF - ;; + ;; esac - ;; + ;; no|*) ;; esac diff --git a/configure.ac b/configure.ac index 9abf2299f..f5e9d8168 100644 --- a/configure.ac +++ b/configure.ac @@ -1216,23 +1216,23 @@ esac AC_ARG_ENABLE(tfo-client, AS_HELP_STRING([--enable-tfo-client],[Enable TCP Fast Open for client mode])) case "$enable_tfo_client" in yes) - case `uname` in - Linux) AC_CHECK_DECL([MSG_FASTOPEN], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], - [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], - [AC_INCLUDES_DEFAULT + case "$host_os" in + linux*) AC_CHECK_DECL([MSG_FASTOPEN], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], + [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], + [AC_INCLUDES_DEFAULT #include ]) - AC_DEFINE_UNQUOTED([USE_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) - ;; - Darwin) AC_CHECK_DECL([CONNECT_RESUME_ON_READ_WRITE], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], - [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], - [AC_INCLUDES_DEFAULT + AC_DEFINE_UNQUOTED([USE_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) + ;; + darwin*) AC_CHECK_DECL([CONNECT_RESUME_ON_READ_WRITE], [AC_MSG_WARN([Check the platform specific TFO kernel parameters are correctly configured to support client mode TFO])], + [AC_MSG_ERROR([TCP Fast Open is not available for client mode: please rerun without --enable-tfo-client])], + [AC_INCLUDES_DEFAULT #include ]) - AC_DEFINE_UNQUOTED([USE_OSX_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) - ;; + AC_DEFINE_UNQUOTED([USE_OSX_MSG_FASTOPEN], [1], [Define this to enable client TCP Fast Open.]) + ;; esac - ;; + ;; no|*) ;; esac diff --git a/doc/Changelog b/doc/Changelog index 2f52a6b9f..91d8156f1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 9 June 2021: George - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. - Generated lexer and parser for #486; updated example.conf. + - Fix #413 (based on patch by k-ronny): unbound: does not compile + on macOS 11.1-x86_64 host. 8 June 2021: George - Fix unused variable warning when compiling with --enable-dnstap. From fcde5c8d548a75818245c6ef1cf1c38f96890c16 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Wed, 9 Jun 2021 16:36:19 +0200 Subject: [PATCH 050/156] - Use host_os instead of target_os in configure for Darwin8 build. --- configure | 2 +- configure.ac | 2 +- doc/Changelog | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 274889824..0a03ab5de 100755 --- a/configure +++ b/configure @@ -20441,7 +20441,7 @@ done # check if setreuid en setregid fail, on MacOSX10.4(darwin8). -if echo $target_os | grep darwin8 > /dev/null; then +if echo $host_os | grep darwin8 > /dev/null; then $as_echo "#define DARWIN_BROKEN_SETREUID 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index f5e9d8168..746966f06 100644 --- a/configure.ac +++ b/configure.ac @@ -1593,7 +1593,7 @@ AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])]) AC_CHECK_FUNCS([setresgid],,[AC_CHECK_FUNCS([setregid])]) # check if setreuid en setregid fail, on MacOSX10.4(darwin8). -if echo $target_os | grep darwin8 > /dev/null; then +if echo $host_os | grep darwin8 > /dev/null; then AC_DEFINE(DARWIN_BROKEN_SETREUID, 1, [Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work]) fi AC_CHECK_DECLS([inet_pton,inet_ntop], [], [], [ diff --git a/doc/Changelog b/doc/Changelog index 91d8156f1..c52c84103 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,7 @@ - Generated lexer and parser for #486; updated example.conf. - Fix #413 (based on patch by k-ronny): unbound: does not compile on macOS 11.1-x86_64 host. + - Use host_os instead of target_os in configure for Darwin8 build. 8 June 2021: George - Fix unused variable warning when compiling with --enable-dnstap. From fd7caaf579a78f4f08ce2223ad6a8c79414c8478 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 10 Jun 2021 09:24:48 +0200 Subject: [PATCH 051/156] - Fix #500: SPEC file in version 1.13.1 references version 1.4; unable to build RPM from source. --- contrib/unbound.spec | 17 +++++++++++------ doc/Changelog | 4 ++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/contrib/unbound.spec b/contrib/unbound.spec index 6ddc5f18d..0441b6b32 100644 --- a/contrib/unbound.spec +++ b/contrib/unbound.spec @@ -1,15 +1,14 @@ Summary: Validating, recursive, and caching DNS resolver Name: unbound -Version: 1.4.18 +Version: 1.13.1 Release: 1%{?dist} License: BSD Url: http://www.nlnetlabs.nl/unbound/ Source: http://www.unbound.net/downloads/%{name}-%{version}.tar.gz #Source1: unbound.init Group: System Environment/Daemons -Requires: ldns BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: flex, openssl-devel, expat-devel, ldns-devel +BuildRequires: flex, openssl-devel, expat-devel %description Unbound is a validating, recursive, and caching DNS resolver. @@ -42,7 +41,7 @@ install -d 0700 %{buildroot}%{_localstatedir}/%{name} install -d 0755 %{buildroot}%{_initrddir} install -m 0755 contrib/unbound.init %{buildroot}%{_initrddir}/unbound # add symbolic link from /etc/unbound.conf -> /var/unbound/unbound.conf -ln -s %{_localstatedir}/unbound/unbound.conf %{buildroot}%{_sysconfdir}/unbound.conf +ln -s ../%{_localstatedir}/unbound/unbound.conf %{buildroot}%{_sysconfdir}/unbound.conf # remove static library from install (fedora packaging guidelines) rm -f %{buildroot}%{_libdir}/libunbound.a %{buildroot}%{_libdir}/libunbound.la @@ -55,11 +54,12 @@ rm -rf ${RPM_BUILD_ROOT} %attr(0755,root,root) %{_initrddir}/%{name} %attr(0700,%{name},%{name}) %dir %{_localstatedir}/%{name} %attr(0644,%{name},%{name}) %config(noreplace) %{_localstatedir}/%{name}/unbound.conf -%attr(0644,%{name},%{name}) %config(noreplace) %{_sysconfdir}/unbound.conf +%config(noreplace) %{_sysconfdir}/unbound.conf %{_sbindir}/* %{_mandir}/*/* %{_includedir}/* %{_libdir}/libunbound* +%{_libdir}/pkgconfig/libunbound* %pre getent group unbound >/dev/null || groupadd -r unbound @@ -89,7 +89,12 @@ if [ "$1" -ge "1" ]; then fi %changelog -* Thu Jul 13 2011 Wouter Wijngaards - 1.4.8 +* Thu Jun 10 2021 Wouter Wijngaards - 1.13.1 +- ldns and ldns-devel no longer required. Fixed date. Version to 1.13.1. +- Removed symlink %attr mode, made unbound.conf symlink relative. +- Added pkgconfig/libunbound.pc to the packaged files. + +* Wed Jul 13 2011 Wouter Wijngaards - 1.4.8 - ldns required and ldns-devel required for build, no more ldns-builtin. * Thu Mar 17 2011 Wouter Wijngaards - 1.4.8 diff --git a/doc/Changelog b/doc/Changelog index c52c84103..b75c8cf75 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +10 June 2021: Wouter + - Fix #500: SPEC file in version 1.13.1 references version 1.4; + unable to build RPM from source. + 9 June 2021: George - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. - Generated lexer and parser for #486; updated example.conf. From 960d199b6fb0e981bdcc70490fa77a88d1e3db3f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 10 Jun 2021 13:35:27 +0200 Subject: [PATCH 052/156] - Fix contrib/unbound.spec, fixed url and comment. --- contrib/unbound.spec | 5 +++-- doc/Changelog | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/contrib/unbound.spec b/contrib/unbound.spec index 0441b6b32..17be4ccd0 100644 --- a/contrib/unbound.spec +++ b/contrib/unbound.spec @@ -4,7 +4,7 @@ Version: 1.13.1 Release: 1%{?dist} License: BSD Url: http://www.nlnetlabs.nl/unbound/ -Source: http://www.unbound.net/downloads/%{name}-%{version}.tar.gz +Source: http://www.nlnetlabs.nl/downloads/unbound/%{name}-%{version}.tar.gz #Source1: unbound.init Group: System Environment/Daemons BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -91,8 +91,9 @@ fi %changelog * Thu Jun 10 2021 Wouter Wijngaards - 1.13.1 - ldns and ldns-devel no longer required. Fixed date. Version to 1.13.1. -- Removed symlink %attr mode, made unbound.conf symlink relative. +- Removed symlink attr mode, made unbound.conf symlink relative. - Added pkgconfig/libunbound.pc to the packaged files. +- fixed download url to nlnetlabs.nl download. * Wed Jul 13 2011 Wouter Wijngaards - 1.4.8 - ldns required and ldns-devel required for build, no more ldns-builtin. diff --git a/doc/Changelog b/doc/Changelog index b75c8cf75..9081f2cd1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 10 June 2021: Wouter - Fix #500: SPEC file in version 1.13.1 references version 1.4; unable to build RPM from source. + - Fix contrib/unbound.spec, fixed url and comment. 9 June 2021: George - Merge #486 by fobster: Make VAL_MAX_RESTART_COUNT configurable. From 70a9bfda84b6b5bcc2e24806aa0d57affa588435 Mon Sep 17 00:00:00 2001 From: "Kim B. Heino" Date: Sat, 12 Jun 2021 22:37:33 +0300 Subject: [PATCH 053/156] contrib/unbound_munin_: minor cleanup to remove two leftovers --- contrib/unbound_munin_ | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contrib/unbound_munin_ b/contrib/unbound_munin_ index 82e6d1522..503752758 100755 --- a/contrib/unbound_munin_ +++ b/contrib/unbound_munin_ @@ -95,7 +95,6 @@ BSD =cut -. ${MUNIN_LIBDIR}/plugins/plugin.sh state="${MUNIN_PLUGSTATE}/unbound.state" seentags="${MUNIN_PLUGSTATE}/unbound-seentags.state" conf=${unbound_conf:-/usr/local/etc/unbound/unbound.conf} @@ -491,7 +490,7 @@ by_opcode) ;; by_rcode) for nm in `grep "^num.answer.rcode" $seentags`; do - print_value $nm $x + print_value $nm done print_value "num.answer.secure" print_value "num.answer.bogus" From a887194d6b2aadcef6b3b4aaca808cac1b6fc005 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 14 Jun 2021 16:15:21 +0200 Subject: [PATCH 054/156] - Fix configure nonblocking test and onmingw test to use host. --- acx_nlnetlabs.m4 | 5 +++-- configure | 16 ++-------------- configure.ac | 2 +- doc/Changelog | 3 +++ 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4 index ad8fb5007..7ce790708 100644 --- a/acx_nlnetlabs.m4 +++ b/acx_nlnetlabs.m4 @@ -2,7 +2,8 @@ # Copyright 2009, Wouter Wijngaards, NLnet Labs. # BSD licensed. # -# Version 39 +# Version 40 +# 2021-06-14 fix nonblocking test to use host instead of target for mingw test. # 2021-05-17 fix nonblocking socket test from grep on mingw32 to mingw for # 64bit compatibility. # 2021-03-24 fix ACX_FUNC_DEPRECATED to use CPPFLAGS and CFLAGS. @@ -917,7 +918,7 @@ dnl a nonblocking socket do not work, a new call to select is necessary. AC_DEFUN([ACX_CHECK_NONBLOCKING_BROKEN], [ AC_MSG_CHECKING([if nonblocking sockets work]) -if echo $target | grep mingw >/dev/null; then +if echo $host | grep mingw >/dev/null; then AC_MSG_RESULT([no (windows)]) AC_DEFINE([NONBLOCKING_IS_BROKEN], 1, [Define if the network stack does not fully support nonblocking io (causes lower performance).]) else diff --git a/configure b/configure index 0a03ab5de..170386901 100755 --- a/configure +++ b/configure @@ -811,7 +811,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -962,7 +961,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1215,15 +1213,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1361,7 +1350,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1514,7 +1503,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -15939,7 +15927,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5 $as_echo_n "checking if nonblocking sockets work... " >&6; } -if echo $target | grep mingw >/dev/null; then +if echo $host | grep mingw >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5 $as_echo "no (windows)" >&6; } diff --git a/configure.ac b/configure.ac index 746966f06..d0e55194b 100644 --- a/configure.ac +++ b/configure.ac @@ -149,7 +149,7 @@ esac # are we on MinGW? if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw >/dev/null; then on_mingw="yes" + if echo $host | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi diff --git a/doc/Changelog b/doc/Changelog index 9081f2cd1..25f91cb76 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +14 June 2021: Wouter + - Fix configure nonblocking test and onmingw test to use host. + 10 June 2021: Wouter - Fix #500: SPEC file in version 1.13.1 references version 1.4; unable to build RPM from source. From 02b1a6ae0a07845be4d934e094cfd78457b70546 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 15 Jun 2021 17:50:25 +0200 Subject: [PATCH 055/156] - Changelog entry for #440: Various fixes to contrib/unbound_munin_ file. --- doc/Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 25f91cb76..3e12c6433 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +15 June 2021: George + - Merge #440 by kimheino: Various fixes to contrib/unbound_munin_ file. + 14 June 2021: Wouter - Fix configure nonblocking test and onmingw test to use host. From 79209823ac7431dcbebecb0ba564f0f54461269d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 18 Jun 2021 18:12:26 +0200 Subject: [PATCH 056/156] - Fix a number of warnings reported by the gcc analyzer. --- doc/Changelog | 3 +++ iterator/iter_utils.c | 2 ++ pythonmod/interface.i | 41 ++++++++++++++++++++++++++++------------ pythonmod/pythonmod.c | 10 ++++++++++ services/authzone.c | 3 +++ services/cache/infra.c | 3 +++ util/data/msgreply.c | 12 ++++++++++-- util/shm_side/shm_main.c | 6 ++++++ validator/val_nsec.c | 1 + 9 files changed, 67 insertions(+), 14 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 3e12c6433..e350b8b3f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +18 June 2021: Wouter + - Fix a number of warnings reported by the gcc analyzer. + 15 June 2021: George - Merge #440 by kimheino: Various fixes to contrib/unbound_munin_ file. diff --git a/iterator/iter_utils.c b/iterator/iter_utils.c index adc611f73..668f898eb 100644 --- a/iterator/iter_utils.c +++ b/iterator/iter_utils.c @@ -440,6 +440,7 @@ iter_filter_order(struct iter_env* iter_env, struct module_env* env, prev = NULL; a = dp->result_list; for(i = 0; i < got_num; i++) { + if(!a) break; /* robustness */ swap_to_front = 0; if(a->addr.ss_family != AF_INET6 && attempt == -1) { /* if we only have ip4 at low attempt count, @@ -497,6 +498,7 @@ iter_filter_order(struct iter_env* iter_env, struct module_env* env, prev = NULL; a = dp->result_list; for(i = 0; i < got_num; i++) { + if(!a) break; /* robustness */ swap_to_front = 0; if(a->addr.ss_family != AF_INET && attempt == -1) { /* if we only have ip6 at low attempt count, diff --git a/pythonmod/interface.i b/pythonmod/interface.i index 5dae04aa4..ce7dcde71 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -1546,7 +1546,7 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, { PyObject *func, *py_edns, *py_qstate, *py_opt_list_out, *py_qinfo; PyObject *py_rep, *py_repinfo, *py_region; - PyObject *py_args, *py_kwargs, *result; + PyObject *py_args = NULL, *py_kwargs = NULL, *result = NULL; int res = 0; double py_start_time = ((double)start_time->tv_sec) + ((double)start_time->tv_usec) / 1.0e6; @@ -1561,11 +1561,20 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, py_rep = SWIG_NewPointerObj((void*) rep, SWIGTYPE_p_reply_info, 0); py_repinfo = SWIG_NewPointerObj((void*) repinfo, SWIGTYPE_p_comm_reply, 0); py_region = SWIG_NewPointerObj((void*) region, SWIGTYPE_p_regional, 0); - py_args = Py_BuildValue("(OOOiOOO)", py_qinfo, py_qstate, py_rep, - rcode, py_edns, py_opt_list_out, py_region); - py_kwargs = Py_BuildValue("{s:O,s:d}", "repinfo", py_repinfo, "start_time", - py_start_time); - result = PyObject_Call(func, py_args, py_kwargs); + if(py_qinfo && py_qstate && py_rep && py_edns && py_opt_list_out + && py_region && py_repinfo) { + py_args = Py_BuildValue("(OOOiOOO)", py_qinfo, py_qstate, py_rep, + rcode, py_edns, py_opt_list_out, py_region); + py_kwargs = Py_BuildValue("{s:O,s:d}", "repinfo", py_repinfo, "start_time", + py_start_time); + if(py_args && py_kwargs) { + result = PyObject_Call(func, py_args, py_kwargs); + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_reply_generic"); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_reply_generic"); + } Py_XDECREF(py_edns); Py_XDECREF(py_qstate); Py_XDECREF(py_opt_list_out); @@ -1624,6 +1633,7 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, { int res = 0; PyObject *func = python_callback; + PyObject *py_args = NULL, *py_kwargs = NULL, *result = NULL; PyGILState_STATE gstate = PyGILState_Ensure(); @@ -1632,12 +1642,19 @@ int edns_opt_list_append(struct edns_option** list, uint16_t code, size_t len, PyObject *py_addr = SWIG_NewPointerObj((void *) addr, SWIGTYPE_p_sockaddr_storage, 0); PyObject *py_zone = PyBytes_FromStringAndSize((const char *)zone, zonelen); PyObject *py_region = SWIG_NewPointerObj((void*) region, SWIGTYPE_p_regional, 0); - - PyObject *py_args = Py_BuildValue("(OiOOOO)", py_qinfo, flags, py_qstate, py_addr, py_zone, py_region); - PyObject *py_kwargs = Py_BuildValue("{}"); - PyObject *result = PyObject_Call(func, py_args, py_kwargs); - if (result) { - res = PyInt_AsLong(result); + if(py_qinfo && py_qstate && py_addr && py_zone && py_region) { + py_args = Py_BuildValue("(OiOOOO)", py_qinfo, flags, py_qstate, py_addr, py_zone, py_region); + py_kwargs = Py_BuildValue("{}"); + if(py_args && py_kwargs) { + result = PyObject_Call(func, py_args, py_kwargs); + if (result) { + res = PyInt_AsLong(result); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_query_generic"); + } + } else { + log_err("pythonmod: malloc failure in python_inplace_cb_query_generic"); } Py_XDECREF(py_qinfo); diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 6e60d02fe..0bbdeeb6b 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -561,9 +561,19 @@ void pythonmod_operate(struct module_qstate* qstate, enum module_ev event, { /* create qstate */ pq = qstate->minfo[id] = malloc(sizeof(struct pythonmod_qstate)); + if(!pq) { + log_err("pythonmod_operate: malloc failure for qstate"); + PyGILState_Release(gil); + return; + } /* Initialize per query data */ pq->data = PyDict_New(); + if(!pq->data) { + log_err("pythonmod_operate: malloc failure for query data dict"); + PyGILState_Release(gil); + return; + } } /* Call operate */ diff --git a/services/authzone.c b/services/authzone.c index 9ebd79ed3..0f9879ce7 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -7168,12 +7168,14 @@ xfer_set_masters(struct auth_master** list, struct config_auth* c, if(with_http) for(p = c->urls; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->http = 1; if(!parse_url(p->str, &m->host, &m->file, &m->port, &m->ssl)) return 0; } for(p = c->masters; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->ixfr = 1; /* this flag is not configurable */ m->host = strdup(p->str); if(!m->host) { @@ -7183,6 +7185,7 @@ xfer_set_masters(struct auth_master** list, struct config_auth* c, } for(p = c->allow_notify; p; p = p->next) { m = auth_master_new(&list); + if(!m) return 0; m->allow_notify = 1; m->host = strdup(p->str); if(!m->host) { diff --git a/services/cache/infra.c b/services/cache/infra.c index 2d16bcd6e..518e69622 100644 --- a/services/cache/infra.c +++ b/services/cache/infra.c @@ -236,6 +236,9 @@ infra_create(struct config_file* cfg) sizeof(struct infra_cache)); size_t maxmem = cfg->infra_cache_numhosts * (sizeof(struct infra_key)+ sizeof(struct infra_data)+INFRA_BYTES_NAME); + if(!infra) { + return NULL; + } infra->hosts = slabhash_create(cfg->infra_cache_slabs, INFRA_HOST_STARTSIZE, maxmem, &infra_sizefunc, &infra_compfunc, &infra_delkeyfunc, &infra_deldatafunc, NULL); diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 48550cbe4..00272fd1c 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -329,7 +329,10 @@ parse_create_rrset(sldns_buffer* pkt, struct rrset_parse* pset, return 0; /* copy & decompress */ if(!parse_rr_copy(pkt, pset, *data)) { - if(!region) free(*data); + if(!region) { + free(*data); + *data = NULL; + } return 0; } return 1; @@ -394,8 +397,13 @@ parse_copy_decompress_rrset(sldns_buffer* pkt, struct msg_parse* msg, pk->rk.type = htons(pset->type); pk->rk.rrset_class = pset->rrset_class; /** read data part. */ - if(!parse_create_rrset(pkt, pset, &data, region)) + if(!parse_create_rrset(pkt, pset, &data, region)) { + if(!region) { + free(pk->rk.dname); + pk->rk.dname = NULL; + } return 0; + } pk->entry.data = (void*)data; pk->entry.key = (void*)pk; pk->entry.hash = pset->hash; diff --git a/util/shm_side/shm_main.c b/util/shm_side/shm_main.c index af8c5bcf3..51039abf3 100644 --- a/util/shm_side/shm_main.c +++ b/util/shm_side/shm_main.c @@ -130,6 +130,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -143,6 +144,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -156,6 +158,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -170,6 +173,7 @@ int shm_main_init(struct daemon* daemon) /* Just release memory unused */ free(daemon->shm_info); + daemon->shm_info = NULL; return 0; } @@ -210,6 +214,8 @@ void shm_main_shutdown(struct daemon* daemon) if (daemon->shm_info->ptr_arr) shmdt(daemon->shm_info->ptr_arr); + free(daemon->shm_info); + daemon->shm_info = NULL; #else (void)daemon; #endif /* HAVE_SHMGET */ diff --git a/validator/val_nsec.c b/validator/val_nsec.c index 032d2ae03..a4e5b3137 100644 --- a/validator/val_nsec.c +++ b/validator/val_nsec.c @@ -180,6 +180,7 @@ nsec_verify_rrset(struct module_env* env, struct val_env* ve, { struct packed_rrset_data* d = (struct packed_rrset_data*) nsec->entry.data; + if(!d) return 0; if(d->security == sec_status_secure) return 1; rrset_check_sec_status(env->rrset_cache, nsec, *env->now); From 896357a5b3802e67e665343aa760a423a3b2ebca Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Mon, 21 Jun 2021 12:54:23 +0200 Subject: [PATCH 057/156] - Fix #495: Documentation or implementation of "verbosity" option. --- doc/Changelog | 3 +++ doc/unbound.conf.5.in | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index e350b8b3f..645667296 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +21 June 2021: George + - Fix #495: Documentation or implementation of "verbosity" option. + 18 June 2021: Wouter - Fix a number of warnings reported by the gcc analyzer. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 8d13a0a0f..7fe0994e4 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -89,11 +89,11 @@ These options are part of the clause. .TP .B verbosity: \fI -The verbosity number, level 0 means no verbosity, only errors. Level 1 -gives operational information. Level 2 gives detailed operational -information. Level 3 gives query level information, output per query. -Level 4 gives algorithm level information. Level 5 logs client -identification for cache misses. Default is level 1. +The verbosity number, level 0 means no verbosity, only errors. Level 1 +gives operational information. Level 2 gives detailed operational +information including short information per query. Level 3 gives query level +information, output per query. Level 4 gives algorithm level information. +Level 5 logs client identification for cache misses. Default is level 1. The verbosity can also be increased from the commandline, see \fIunbound\fR(8). .TP .B statistics\-interval: \fI From 4de4a0ffb677a0ef873b47af0ac3407bf7f83594 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Wed, 23 Jun 2021 10:23:23 +0200 Subject: [PATCH 058/156] Create ci.yml --- .github/workflows/ci.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..73d68fbf3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,21 @@ +name: ci + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: configure + run: ./configure --enable-debug + - name: make + run: make + - name: make test + run: make test From 9d681b627fd874588afe60335b46c53ad3aebf67 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 23 Jun 2021 14:05:59 +0200 Subject: [PATCH 059/156] - Fix #503: DNS over HTTPS response truncated. --- doc/Changelog | 3 +++ services/listen_dnsport.c | 51 ++++++++++++++++++++++++++++++--------- sldns/parseutil.c | 15 ++++++++++++ sldns/parseutil.h | 1 + 4 files changed, 58 insertions(+), 12 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 645667296..9ac461e5a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +23 June 2021: Wouter + - Fix #503: DNS over HTTPS response truncated. + 21 June 2021: George - Fix #495: Documentation or implementation of "verbosity" option. diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index ca40fac5c..52b0a2ee9 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -2678,18 +2678,45 @@ static int http2_buffer_uri_query(struct http2_session* h2_session, return 0; } - if(!(b64len = sldns_b64url_pton( - (char const *)start, length, - sldns_buffer_current(h2_stream->qbuffer), - expectb64len)) || b64len < 0) { - lock_basic_lock(&http2_query_buffer_count_lock); - http2_query_buffer_count -= expectb64len; - lock_basic_unlock(&http2_query_buffer_count_lock); - sldns_buffer_free(h2_stream->qbuffer); - h2_stream->qbuffer = NULL; - /* return without error, method can be an - * unknown POST */ - return 1; + if(sldns_b64_contains_nonurl((char const*)start, length)) { + char buf[65536+4]; + verbose(VERB_ALGO, "HTTP2 stream contains wrong b64 encoding"); + /* copy to the scratch buffer temporarily to terminate the + * string with a zero */ + if(length+1 > sizeof(buf)) { + /* too long */ + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + return 1; + } + memmove(buf, start, length); + buf[length] = 0; + if(!(b64len = sldns_b64_pton(buf, sldns_buffer_current( + h2_stream->qbuffer), expectb64len)) || b64len < 0) { + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + return 1; + } + } else { + if(!(b64len = sldns_b64url_pton( + (char const *)start, length, + sldns_buffer_current(h2_stream->qbuffer), + expectb64len)) || b64len < 0) { + lock_basic_lock(&http2_query_buffer_count_lock); + http2_query_buffer_count -= expectb64len; + lock_basic_unlock(&http2_query_buffer_count_lock); + sldns_buffer_free(h2_stream->qbuffer); + h2_stream->qbuffer = NULL; + /* return without error, method can be an + * unknown POST */ + return 1; + } } sldns_buffer_skip(h2_stream->qbuffer, (size_t)b64len); return 1; diff --git a/sldns/parseutil.c b/sldns/parseutil.c index 9f289d359..ba71df55d 100644 --- a/sldns/parseutil.c +++ b/sldns/parseutil.c @@ -790,3 +790,18 @@ int sldns_b64url_pton(char const *src, size_t srcsize, uint8_t *target, } return sldns_b64_pton_base(src, srcsize, target, targsize, 1); } + +int sldns_b64_contains_nonurl(char const *src, size_t srcsize) +{ + const char* s = src; + while(*s && srcsize) { + char d = *s++; + srcsize--; + /* the '+' and the '/' and padding '=' is not allowed in b64 + * url encoding */ + if(d == '+' || d == '/' || d == '=') { + return 1; + } + } + return 0; +} diff --git a/sldns/parseutil.h b/sldns/parseutil.h index 7eb23317f..74d7c7275 100644 --- a/sldns/parseutil.h +++ b/sldns/parseutil.h @@ -102,6 +102,7 @@ size_t sldns_b64_pton_calculate_size(size_t srcsize); int sldns_b64_pton(char const *src, uint8_t *target, size_t targsize); int sldns_b64url_pton(char const *src, size_t srcsize, uint8_t *target, size_t targsize); +int sldns_b64_contains_nonurl(char const *src, size_t srcsize); /** * calculates the size needed to store the result of b32_ntop From d3b2bc501dae558d186e7cd6aebb9bc4a7d1f75d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 23 Jun 2021 18:02:02 +0200 Subject: [PATCH 060/156] - Fix warnings reported by the gcc analyzer. --- dnstap/unbound-dnstap-socket.c | 9 +++++++-- doc/Changelog | 1 + libunbound/libworker.c | 30 ++++++++++++++++++++++++++---- libunbound/python/libunbound.i | 2 ++ testcode/delayer.c | 5 ++++- testcode/dohclient.c | 1 + testcode/fake_event.c | 6 ++++++ testcode/streamtcp.c | 8 ++++++-- 8 files changed, 53 insertions(+), 9 deletions(-) diff --git a/dnstap/unbound-dnstap-socket.c b/dnstap/unbound-dnstap-socket.c index 9eaf01243..17c29e971 100644 --- a/dnstap/unbound-dnstap-socket.c +++ b/dnstap/unbound-dnstap-socket.c @@ -1012,6 +1012,7 @@ void dtio_tap_callback(int fd, short ATTR_UNUSED(bits), void* arg) if(verbosity) log_info("bidirectional stream"); if(!reply_with_accept(data)) { tap_data_free(data); + return; } } else if(data->len >= 4 && sldns_read_uint32(data->frame) == FSTRM_CONTROL_FRAME_STOP && data->is_bidirectional) { @@ -1166,8 +1167,12 @@ int sig_quit = 0; /** signal handler for user quit */ static RETSIGTYPE main_sigh(int sig) { - if(!sig_quit) - fprintf(stderr, "exit on signal %d\n", sig); + if(!sig_quit) { + char str[] = "exit on signal \n"; + str[15] = '0' + (sig/10)%10; + str[16] = '0' + sig%10; + write(STDERR_FILENO, str, strlen(str)); + } if(sig_base) { ub_event_base_loopexit(sig_base); sig_base = NULL; diff --git a/doc/Changelog b/doc/Changelog index 9ac461e5a..84b85a4e9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 23 June 2021: Wouter - Fix #503: DNS over HTTPS response truncated. + - Fix warnings reported by the gcc analyzer. 21 June 2021: George - Fix #495: Documentation or implementation of "verbosity" option. diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 4733eb464..8a9ca9419 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -456,8 +456,15 @@ fill_res(struct ub_result* res, struct ub_packed_rrset_key* answer, if(rep->rrset_count != 0) res->ttl = (int)rep->ttl; res->data = (char**)calloc(1, sizeof(char*)); + if(!res->data) + return 0; /* out of memory */ res->len = (int*)calloc(1, sizeof(int)); - return (res->data && res->len); + if(!res->len) { + free(res->data); + res->data = NULL; + return 0; /* out of memory */ + } + return 1; } data = (struct packed_rrset_data*)answer->entry.data; if(query_dname_compare(rq->qname, answer->rk.dname) != 0) { @@ -465,15 +472,30 @@ fill_res(struct ub_result* res, struct ub_packed_rrset_key* answer, return 0; /* out of memory */ } else res->canonname = NULL; res->data = (char**)calloc(data->count+1, sizeof(char*)); - res->len = (int*)calloc(data->count+1, sizeof(int)); - if(!res->data || !res->len) + if(!res->data) return 0; /* out of memory */ + res->len = (int*)calloc(data->count+1, sizeof(int)); + if(!res->len) { + free(res->data); + res->data = NULL; + return 0; /* out of memory */ + } for(i=0; icount; i++) { /* remove rdlength from rdata */ res->len[i] = (int)(data->rr_len[i] - 2); res->data[i] = memdup(data->rr_data[i]+2, (size_t)res->len[i]); - if(!res->data[i]) + if(!res->data[i]) { + size_t j; + for(j=0; jdata[j]); + res->data[j] = NULL; + } + free(res->data); + res->data = NULL; + free(res->len); + res->len = NULL; return 0; /* out of memory */ + } } /* ttl for positive answers, from CNAME and answer RRs */ if(data->count != 0) { diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i index ab244a6fb..763879e80 100644 --- a/libunbound/python/libunbound.i +++ b/libunbound/python/libunbound.i @@ -936,6 +936,8 @@ int _ub_resolve_async(struct ub_ctx* ctx, char* name, int rrtype, int rrclass, v int r; struct cb_data* id; id = (struct cb_data*) malloc(sizeof(struct cb_data)); + if(!id) + return -2; /* UB_NOMEM */ id->data = mydata; id->func = pyfunc; diff --git a/testcode/delayer.c b/testcode/delayer.c index 54175dbe3..0c8f2a45d 100644 --- a/testcode/delayer.c +++ b/testcode/delayer.c @@ -347,7 +347,10 @@ static volatile int do_quit = 0; /** signal handler for user quit */ static RETSIGTYPE delayer_sigh(int sig) { - printf("exit on signal %d\n", sig); + char str[] = "exit on signal \n"; + str[15] = '0' + (sig/10)%10; + str[16] = '0' + sig%10; + write(STDOUT_FILENO, str, strlen(str)); do_quit = 1; } diff --git a/testcode/dohclient.c b/testcode/dohclient.c index 0dc039f26..93d84a835 100644 --- a/testcode/dohclient.c +++ b/testcode/dohclient.c @@ -423,6 +423,7 @@ http2_session_create() if(nghttp2_session_callbacks_new(&callbacks) == NGHTTP2_ERR_NOMEM) { log_err("failed to initialize nghttp2 callback"); + free(h2_session); return NULL; } nghttp2_session_callbacks_set_recv_callback(callbacks, http2_recv_cb); diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 125355f05..901880ce6 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -451,6 +451,8 @@ fake_front_query(struct replay_runtime* runtime, struct replay_moment *todo) struct comm_reply repinfo; memset(&repinfo, 0, sizeof(repinfo)); repinfo.c = (struct comm_point*)calloc(1, sizeof(struct comm_point)); + if(!repinfo.c) + fatal_exit("out of memory in fake_front_query"); repinfo.addrlen = (socklen_t)sizeof(struct sockaddr_in); if(todo->addrlen != 0) { repinfo.addrlen = todo->addrlen; @@ -909,6 +911,8 @@ comm_base_create(int ATTR_UNUSED(sigs)) /* we return the runtime structure instead. */ struct replay_runtime* runtime = (struct replay_runtime*) calloc(1, sizeof(struct replay_runtime)); + if(!runtime) + fatal_exit("out of memory in fake_event.c:comm_base_create"); runtime->scenario = saved_scenario; runtime->vars = macro_store_create(); if(!runtime->vars) fatal_exit("out of memory"); @@ -1534,6 +1538,8 @@ struct comm_timer* comm_timer_create(struct comm_base* base, { struct replay_runtime* runtime = (struct replay_runtime*)base; struct fake_timer* t = (struct fake_timer*)calloc(1, sizeof(*t)); + if(!t) + fatal_exit("out of memory in fake_event.c:comm_timer_create"); t->cb = cb; t->cb_arg = cb_arg; fptr_ok(fptr_whitelist_comm_timer(t->cb)); /* check in advance */ diff --git a/testcode/streamtcp.c b/testcode/streamtcp.c index ffdddbe9d..3fbb792e5 100644 --- a/testcode/streamtcp.c +++ b/testcode/streamtcp.c @@ -397,11 +397,15 @@ send_em(const char* svr, int udp, int usessl, int noanswer, int onarrival, /** SIGPIPE handler */ static RETSIGTYPE sigh(int sig) { + char str[] = "Got unhandled signal \n"; if(sig == SIGPIPE) { - printf("got SIGPIPE, remote connection gone\n"); + char* strpipe = "got SIGPIPE, remote connection gone\n"; + write(STDOUT_FILENO, strpipe, strlen(strpipe)); exit(1); } - printf("Got unhandled signal %d\n", sig); + str[21] = '0' + (sig/10)%10; + str[22] = '0' + sig%10; + write(STDOUT_FILENO, str, strlen(str)); exit(1); } #endif /* SIGPIPE */ From 999eddd27fc5ae21232ebbc46e8eaba56ee4465d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 09:27:46 +0200 Subject: [PATCH 061/156] Add analyzer and port compile github workflow. --- .github/workflows/analysis_ports.yml | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/analysis_ports.yml diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml new file mode 100644 index 000000000..7a24e2b6f --- /dev/null +++ b/.github/workflows/analysis_ports.yml @@ -0,0 +1,44 @@ +name: Analysis and Ports + +on: + workflow_dispatch: + inputs: + start: + description: 'Start analysis and port workflow' + default: 'yes' + required: true + +jobs: + build: + strategy: + matrix: + include: + - runs-on: ubuntu-latest + name: GCC on Linux + env: + - CONFIG_OPTS: "--enable-debug --disable-flto" + - MAKE_TEST: "yes" + - runs-on: ubuntu-latest + name: Clang on Linux, clang-analysis + - CONFIG_OPTS: "CC=clang --enable-debug --disable-flto" + - MAKE_TEST: "yes" + - TEST_ANALYZER: "yes" + + steps: + - uses: actions/checkout@v2 + with: + submodules: false + - name: configure + run: ./configure $CONFIG_OPTS + - name: make + run: make + - name: make test + run: | + if [ "$MAKE_TEST" = "yes" ]; then + make test + fi + - name: analyzer + run: | + if [ "$TEST_ANALYZER" = "yes" ]; then + (cd testdata/clang-analysis.tdir; bash clang-analysis.test) + fi From 15bf9fe5815cfc35dd9d9507b5c19b56ab03b4b1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 09:29:29 +0200 Subject: [PATCH 062/156] Fix syntax of analysis workflow. --- .github/workflows/analysis_ports.yml | 1 + doc/Changelog | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 7a24e2b6f..4a44809ed 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -20,6 +20,7 @@ jobs: - MAKE_TEST: "yes" - runs-on: ubuntu-latest name: Clang on Linux, clang-analysis + env: - CONFIG_OPTS: "CC=clang --enable-debug --disable-flto" - MAKE_TEST: "yes" - TEST_ANALYZER: "yes" diff --git a/doc/Changelog b/doc/Changelog index 84b85a4e9..bbb2c0ed4 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +24 June 2021: Wouter + - Add analyzer and port compile github workflow. + 23 June 2021: Wouter - Fix #503: DNS over HTTPS response truncated. - Fix warnings reported by the gcc analyzer. From 521ca6a783cd8264ebcb4747ac454f5e78db8bdc Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 09:42:32 +0200 Subject: [PATCH 063/156] workflow sets runs-on. --- .github/workflows/analysis_ports.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 4a44809ed..fd14a91a2 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -10,15 +10,16 @@ on: jobs: build: + runs-on: ${{ matrix.os }} strategy: matrix: include: - - runs-on: ubuntu-latest + - os: ubuntu-latest name: GCC on Linux env: - CONFIG_OPTS: "--enable-debug --disable-flto" - MAKE_TEST: "yes" - - runs-on: ubuntu-latest + - os: ubuntu-latest name: Clang on Linux, clang-analysis env: - CONFIG_OPTS: "CC=clang --enable-debug --disable-flto" From b99b17f3d7f5b7d9015780690c9476f41962796f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 09:49:20 +0200 Subject: [PATCH 064/156] Check env contents. --- .github/workflows/analysis_ports.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index fd14a91a2..0b880d6e3 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -30,6 +30,11 @@ jobs: - uses: actions/checkout@v2 with: submodules: false + - name: checks + run: | + echo $CONFIG_OPTS + echo $MAKE_TEST + echo $TEST_ANALYZER - name: configure run: ./configure $CONFIG_OPTS - name: make From db7a7c0239798f3a363cbfb87f1ca685ccf2f02c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 09:58:43 +0200 Subject: [PATCH 065/156] workflow yml uses single quoted strings. --- .github/workflows/analysis_ports.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 0b880d6e3..1c4f46abc 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -17,14 +17,14 @@ jobs: - os: ubuntu-latest name: GCC on Linux env: - - CONFIG_OPTS: "--enable-debug --disable-flto" - - MAKE_TEST: "yes" + - CONFIG_OPTS: '--enable-debug --disable-flto' + - MAKE_TEST: 'yes' - os: ubuntu-latest name: Clang on Linux, clang-analysis env: - - CONFIG_OPTS: "CC=clang --enable-debug --disable-flto" - - MAKE_TEST: "yes" - - TEST_ANALYZER: "yes" + - CONFIG_OPTS: 'CC=clang --enable-debug --disable-flto' + - MAKE_TEST: 'yes' + - TEST_ANALYZER: 'yes' steps: - uses: actions/checkout@v2 From 173efaf74340915aa3425ebf5ee72fd3de57b5ce Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:05:27 +0200 Subject: [PATCH 066/156] Analysis workflow, use matrix parameters. --- .github/workflows/analysis_ports.yml | 42 ++++++++++++---------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 1c4f46abc..a30b5febb 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -14,17 +14,15 @@ jobs: strategy: matrix: include: - - os: ubuntu-latest - name: GCC on Linux - env: - - CONFIG_OPTS: '--enable-debug --disable-flto' - - MAKE_TEST: 'yes' - - os: ubuntu-latest - name: Clang on Linux, clang-analysis - env: - - CONFIG_OPTS: 'CC=clang --enable-debug --disable-flto' - - MAKE_TEST: 'yes' - - TEST_ANALYZER: 'yes' + - name: GCC on Linux + os: ubuntu-latest + config: --enable-debug --disable-flto + make_test: yes + - name: Clang on Linux, clang-analysis + os: ubuntu-latest + config: "CC=clang --enable-debug --disable-flto" + make_test: "yes" + clang_analysis: "yes" steps: - uses: actions/checkout@v2 @@ -32,20 +30,16 @@ jobs: submodules: false - name: checks run: | - echo $CONFIG_OPTS - echo $MAKE_TEST - echo $TEST_ANALYZER + echo ${{ matrix.config }} + echo ${{ matrix.make_test }} + echo ${{ matrix.clang_analysis }} - name: configure - run: ./configure $CONFIG_OPTS + run: ./configure ${{ matrix.config }} - name: make run: make - name: make test - run: | - if [ "$MAKE_TEST" = "yes" ]; then - make test - fi - - name: analyzer - run: | - if [ "$TEST_ANALYZER" = "yes" ]; then - (cd testdata/clang-analysis.tdir; bash clang-analysis.test) - fi + if: ${{ matrix.make_test == 'yes' }} + run: make test + - name: clang-analysis + if: ${{ matrix.clang_analysis == 'yes' }} + run: (cd testdata/clang-analysis.tdir; bash clang-analysis.test) From 4650207afda0b3ecc459c11f653d57a6cb45a6de Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:18:29 +0200 Subject: [PATCH 067/156] analysis workflow, add macos. --- .github/workflows/analysis_ports.yml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index a30b5febb..757d2c258 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -14,15 +14,20 @@ jobs: strategy: matrix: include: - - name: GCC on Linux - os: ubuntu-latest - config: --enable-debug --disable-flto - make_test: yes - - name: Clang on Linux, clang-analysis - os: ubuntu-latest - config: "CC=clang --enable-debug --disable-flto" +# temporarily commented out to speed up build. +# - name: GCC on Linux +# os: ubuntu-latest +# config: "--enable-debug --disable-flto" +# make_test: "yes" +# - name: Clang on Linux, clang-analysis +# os: ubuntu-latest +# config: "CC=clang --enable-debug --disable-flto" +# make_test: "yes" +# clang_analysis: "yes" + - name: macos + os: macos-latest + config: "--enable-debug --disable-flto" make_test: "yes" - clang_analysis: "yes" steps: - uses: actions/checkout@v2 From 61f8b687ef73ceb43bdf8b0ace2e1df872965d48 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:25:17 +0200 Subject: [PATCH 068/156] analysis workflow, macos openssl install location. --- .github/workflows/analysis_ports.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 757d2c258..a14c22d31 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -26,18 +26,13 @@ jobs: # clang_analysis: "yes" - name: macos os: macos-latest - config: "--enable-debug --disable-flto" + config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl" make_test: "yes" steps: - uses: actions/checkout@v2 with: submodules: false - - name: checks - run: | - echo ${{ matrix.config }} - echo ${{ matrix.make_test }} - echo ${{ matrix.clang_analysis }} - name: configure run: ./configure ${{ matrix.config }} - name: make From 48a22bfb26b1e064ad2ed9a1fb21714ac4c3269e Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:32:31 +0200 Subject: [PATCH 069/156] analysis workflow, install expat. --- .github/workflows/analysis_ports.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index a14c22d31..3ca71219c 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -24,15 +24,19 @@ jobs: # config: "CC=clang --enable-debug --disable-flto" # make_test: "yes" # clang_analysis: "yes" - - name: macos + - name: GCC on OS X os: macos-latest - config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl" + install_expat: "yes" + config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" make_test: "yes" steps: - uses: actions/checkout@v2 with: submodules: false + - name: install expat + if: ${{ matrix.install_expat == 'yes' }} + run: brew install expat - name: configure run: ./configure ${{ matrix.config }} - name: make From bb0a1821251adaf88ea15a0defe2332d1b89ca6f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:44:38 +0200 Subject: [PATCH 070/156] analysis workflow, add libevent test, clang macos test. --- .github/workflows/analysis_ports.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 3ca71219c..65c872aa7 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -24,11 +24,22 @@ jobs: # config: "CC=clang --enable-debug --disable-flto" # make_test: "yes" # clang_analysis: "yes" - - name: GCC on OS X + - name: Clang on Linux, libevent, clang-analysis + os: ubuntu-latest + config: "CC=clang --enable-debug --disable-flto --with-libevent" + make_test: "yes" + clang_analysis: "yes" +# - name: GCC on OS X +# os: macos-latest +# install_expat: "yes" +# config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" +# make_test: "yes" + - name: Clang on OS X os: macos-latest install_expat: "yes" - config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" + config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" make_test: "yes" + clang_analysis: "yes" steps: - uses: actions/checkout@v2 From 8ce44a4006802e172c9d8cf2d470f05fa794ab5e Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:51:06 +0200 Subject: [PATCH 071/156] analysis workflow, install libevent for test. --- .github/workflows/analysis_ports.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 65c872aa7..21582d8c6 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -26,6 +26,7 @@ jobs: # clang_analysis: "yes" - name: Clang on Linux, libevent, clang-analysis os: ubuntu-latest + install_libevent: "yes" config: "CC=clang --enable-debug --disable-flto --with-libevent" make_test: "yes" clang_analysis: "yes" @@ -45,6 +46,9 @@ jobs: - uses: actions/checkout@v2 with: submodules: false + - name: install libevent + if: ${{ matrix.install_libevent == 'yes' }} + run: apt-get install libevent-dev - name: install expat if: ${{ matrix.install_expat == 'yes' }} run: brew install expat From a807135373b74724e8334971ee3148f93438b365 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 10:53:25 +0200 Subject: [PATCH 072/156] analysis workflow, fix. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 21582d8c6..22f441756 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -48,7 +48,7 @@ jobs: submodules: false - name: install libevent if: ${{ matrix.install_libevent == 'yes' }} - run: apt-get install libevent-dev + run: sudo apt-get install libevent-dev - name: install expat if: ${{ matrix.install_expat == 'yes' }} run: brew install expat From a40bc40d0c80206a22100f2c6d14fc89f63d0ab0 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 11:11:16 +0200 Subject: [PATCH 073/156] analysis workflow, add undefined behaviour sanitizer test. --- .github/workflows/analysis_ports.yml | 30 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 22f441756..414bae656 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -19,28 +19,32 @@ jobs: # os: ubuntu-latest # config: "--enable-debug --disable-flto" # make_test: "yes" -# - name: Clang on Linux, clang-analysis +# - name: Clang-analyzer # os: ubuntu-latest # config: "CC=clang --enable-debug --disable-flto" # make_test: "yes" # clang_analysis: "yes" - - name: Clang on Linux, libevent, clang-analysis - os: ubuntu-latest - install_libevent: "yes" - config: "CC=clang --enable-debug --disable-flto --with-libevent" - make_test: "yes" - clang_analysis: "yes" -# - name: GCC on OS X +# - name: libevent +# os: ubuntu-latest +# install_libevent: "yes" +# config: "CC=clang --enable-debug --disable-flto --with-libevent" +# make_test: "yes" +# clang_analysis: "yes" +# - name: OS X # os: macos-latest # install_expat: "yes" # config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" # make_test: "yes" - - name: Clang on OS X - os: macos-latest - install_expat: "yes" - config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" +# - name: Clang on OS X +# os: macos-latest +# install_expat: "yes" +# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" +# make_test: "yes" +# clang_analysis: "yes" + - name: ubsan (gcc undefined behaviour sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto' make_test: "yes" - clang_analysis: "yes" steps: - uses: actions/checkout@v2 From 8990fcbd6a9464ead636f2efecca92c353eaf794 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 11:17:57 +0200 Subject: [PATCH 074/156] analysis workflow, Add address sanitizer test, disable static for build speedup. --- .github/workflows/analysis_ports.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 414bae656..51e04815c 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -21,13 +21,13 @@ jobs: # make_test: "yes" # - name: Clang-analyzer # os: ubuntu-latest -# config: "CC=clang --enable-debug --disable-flto" +# config: "CC=clang --enable-debug --disable-flto --disable-static" # make_test: "yes" # clang_analysis: "yes" # - name: libevent # os: ubuntu-latest # install_libevent: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-libevent" +# config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" # make_test: "yes" # clang_analysis: "yes" # - name: OS X @@ -38,12 +38,16 @@ jobs: # - name: Clang on OS X # os: macos-latest # install_expat: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" +# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" # make_test: "yes" # clang_analysis: "yes" - - name: ubsan (gcc undefined behaviour sanitizer) +# - name: ubsan (gcc undefined behaviour sanitizer) +# os: ubuntu-latest +# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' +# make_test: "yes" + - name: asan (gcc address sanitizer) os: ubuntu-latest - config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto' + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' make_test: "yes" steps: From 6e025e303f5249edf8fe42aa19639b0aa5da26cf Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 11:43:02 +0200 Subject: [PATCH 075/156] analysis workflow, add iphone on armv7 test. --- .github/workflows/analysis_ports.yml | 39 +++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 51e04815c..e800f3e46 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -45,15 +45,42 @@ jobs: # os: ubuntu-latest # config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' # make_test: "yes" - - name: asan (gcc address sanitizer) - os: ubuntu-latest - config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' - make_test: "yes" +# - name: asan (gcc address sanitizer) +# os: ubuntu-latest +# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' +# make_test: "yes" + - name: Apple iPhone on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: iPhoneOS + IOS_CPU: armv7s + test_ios: "yes" + config: 'no' + make_install: "yes" steps: - uses: actions/checkout@v2 with: submodules: false + - name: install ios tools + if: ${{ matrix.test_ios == 'yes' }} + env: + AUTOTOOLS_HOST: ${{ matrix.AUTOTOOLS_HOST }} + OPENSSL_HOST: ${{ matrix.OPENSSL_HOST }} + IOS_SDK: ${{ matrix.IOS_SDK }} + IOS_CPU: ${{ matrix.IOS_CPU }} + run: | + #(already installed) ./contrib/ios/install_tools.sh + export AUTOTOOLS_BUILD="$(./config.guess)" + export IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU" + export PKG_CONFIG_PATH="$IOS_PREFIX/lib/pkgconfig" + source ./contrib/ios/setenv_ios.sh + ./contrib/ios/install_openssl.sh + ./contrib/ios/install_expat.sh + export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$IOS_PREFIX --with-ssl=$IOS_PREFIX --disable-gost --with-libexpat=$IOS_PREFIX" + echo CONFIG_OPTS ${CONFIG_OPTS} + ./configure ${CONFIG_OPTS} - name: install libevent if: ${{ matrix.install_libevent == 'yes' }} run: sudo apt-get install libevent-dev @@ -61,12 +88,16 @@ jobs: if: ${{ matrix.install_expat == 'yes' }} run: brew install expat - name: configure + if: ${{ matrix.config != 'no' }} run: ./configure ${{ matrix.config }} - name: make run: make - name: make test if: ${{ matrix.make_test == 'yes' }} run: make test + - name: make install + if: ${{ matrix.make_install == 'yes' }} + run: make install - name: clang-analysis if: ${{ matrix.clang_analysis == 'yes' }} run: (cd testdata/clang-analysis.tdir; bash clang-analysis.test) From 06af83c2cfc9bc0e3c9073356b25af3695dc5ebb Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 11:53:44 +0200 Subject: [PATCH 076/156] analysis workflow, fixup ios test. --- .github/workflows/analysis_ports.yml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index e800f3e46..4ee010c0d 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -56,14 +56,14 @@ jobs: IOS_SDK: iPhoneOS IOS_CPU: armv7s test_ios: "yes" - config: 'no' - make_install: "yes" + config: "no" + make: "no" steps: - uses: actions/checkout@v2 with: submodules: false - - name: install ios tools + - name: test ios if: ${{ matrix.test_ios == 'yes' }} env: AUTOTOOLS_HOST: ${{ matrix.AUTOTOOLS_HOST }} @@ -73,14 +73,20 @@ jobs: run: | #(already installed) ./contrib/ios/install_tools.sh export AUTOTOOLS_BUILD="$(./config.guess)" + echo AUTOTOOLS_BUILD=${AUTOTOOLS_BUILD} export IOS_PREFIX="$HOME/$IOS_SDK-$IOS_CPU" + echo IOS_PREFIX=${IOS_PREFIX} export PKG_CONFIG_PATH="$IOS_PREFIX/lib/pkgconfig" + echo PKG_CONFIG_PATH=${PKG_CONFIG_PATH} + export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$IOS_PREFIX --with-ssl=$IOS_PREFIX --disable-gost --with-libexpat=$IOS_PREFIX" + echo CONFIG_OPTS=${CONFIG_OPTS} source ./contrib/ios/setenv_ios.sh ./contrib/ios/install_openssl.sh ./contrib/ios/install_expat.sh - export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$IOS_PREFIX --with-ssl=$IOS_PREFIX --disable-gost --with-libexpat=$IOS_PREFIX" - echo CONFIG_OPTS ${CONFIG_OPTS} ./configure ${CONFIG_OPTS} + # make is here to preserve environment variables + make + make install - name: install libevent if: ${{ matrix.install_libevent == 'yes' }} run: sudo apt-get install libevent-dev @@ -91,13 +97,11 @@ jobs: if: ${{ matrix.config != 'no' }} run: ./configure ${{ matrix.config }} - name: make + if: ${{ matrix.make != 'no' }} run: make - name: make test if: ${{ matrix.make_test == 'yes' }} run: make test - - name: make install - if: ${{ matrix.make_install == 'yes' }} - run: make install - name: clang-analysis if: ${{ matrix.clang_analysis == 'yes' }} run: (cd testdata/clang-analysis.tdir; bash clang-analysis.test) From bb208d48fbae87306263c270f5d523282a15ed46 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 12:07:22 +0200 Subject: [PATCH 077/156] analysis workflow, use log line groups. --- .github/workflows/analysis_ports.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 4ee010c0d..9ce48186e 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -80,13 +80,29 @@ jobs: echo PKG_CONFIG_PATH=${PKG_CONFIG_PATH} export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$IOS_PREFIX --with-ssl=$IOS_PREFIX --disable-gost --with-libexpat=$IOS_PREFIX" echo CONFIG_OPTS=${CONFIG_OPTS} + echo "::group::setenv_ios.sh" + echo "./contrib/ios/setenv_ios.sh" source ./contrib/ios/setenv_ios.sh + echo "::endgroup::" + echo "::group::install_openssl" + echo "./contrib/ios/install_openssl.sh" ./contrib/ios/install_openssl.sh + echo "::endgroup::" + echo "::group::install_expat" + echo "./contrib/ios/install_expat.sh" ./contrib/ios/install_expat.sh + echo "::endgroup::" + echo "::group::configure" + echo "./configure ${CONFIG_OPTS}" ./configure ${CONFIG_OPTS} + echo "::endgroup::" + echo "::group::make" # make is here to preserve environment variables make + echo "::endgroup::" + echo "::group::make install" make install + echo "::endgroup::" - name: install libevent if: ${{ matrix.install_libevent == 'yes' }} run: sudo apt-get install libevent-dev From c744db29356a90510a9bc4a3c3b3a50fb5ad4e7c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 13:28:52 +0200 Subject: [PATCH 078/156] analysis workflow, add arm64 iOS test. --- .github/workflows/analysis_ports.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 9ce48186e..5d4f36d47 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -49,12 +49,21 @@ jobs: # os: ubuntu-latest # config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' # make_test: "yes" - - name: Apple iPhone on iOS, armv7 +# - name: Apple iPhone on iOS, armv7 +# os: macos-latest +# AUTOTOOLS_HOST: armv7-apple-ios +# OPENSSL_HOST: ios-cross +# IOS_SDK: iPhoneOS +# IOS_CPU: armv7s +# test_ios: "yes" +# config: "no" +# make: "no" + - name: Apple iPhone on iOS, arm64 os: macos-latest - AUTOTOOLS_HOST: armv7-apple-ios - OPENSSL_HOST: ios-cross + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross IOS_SDK: iPhoneOS - IOS_CPU: armv7s + IOS_CPU: arm64 test_ios: "yes" config: "no" make: "no" From 46032bb67051f99e13373d379984629b94c1b5ef Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 13:38:45 +0200 Subject: [PATCH 079/156] analysis workflow, add iPhoneOS, AppleTVOS and WatchOS tests. --- .github/workflows/analysis_ports.yml | 58 +++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5d4f36d47..613b10212 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -58,15 +58,69 @@ jobs: # test_ios: "yes" # config: "no" # make: "no" - - name: Apple iPhone on iOS, arm64 +# - name: Apple iPhone on iOS, arm64 +# os: macos-latest +# AUTOTOOLS_HOST: aarch64-apple-ios +# OPENSSL_HOST: ios64-cross +# IOS_SDK: iPhoneOS +# IOS_CPU: arm64 +# test_ios: "yes" +# config: "no" +# make: "no" + - name: Apple TV on iOS, arm64 os: macos-latest AUTOTOOLS_HOST: aarch64-apple-ios OPENSSL_HOST: ios64-cross - IOS_SDK: iPhoneOS + IOS_SDK: AppleTVOS IOS_CPU: arm64 test_ios: "yes" config: "no" make: "no" + - name: Apple Watch on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: WatchOS + IOS_CPU: armv7k + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: i386 + IOS_CPU: iPhoneSimulator + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: x86_64 + IOS_CPU: iPhoneSimulator + test_ios: "yes" + config: "no" + make: "no" + - name: AppleTVSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: x86_64 + IOS_CPU: AppleTVSimulator + test_ios: "yes" + config: "no" + make: "no" + - name: WatchSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: i386 + IOS_CPU: WatchSimulator + test_ios: "yes" + config: "no" + make: "no" steps: - uses: actions/checkout@v2 From 5198523a92e7b1f27be25a9baae60529710b3fd1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 13:47:33 +0200 Subject: [PATCH 080/156] analysis workflow, fixup SDK and CPU definitions. --- .github/workflows/analysis_ports.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 613b10212..ac1d430e9 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -89,8 +89,8 @@ jobs: os: macos-latest AUTOTOOLS_HOST: i386-apple-ios OPENSSL_HOST: iphoneos-cross - IOS_SDK: i386 - IOS_CPU: iPhoneSimulator + IOS_SDK: iPhoneSimulator + IOS_CPU: i386 test_ios: "yes" config: "no" make: "no" @@ -98,8 +98,8 @@ jobs: os: macos-latest AUTOTOOLS_HOST: x86_64-apple-ios OPENSSL_HOST: iphoneos-cross - IOS_SDK: x86_64 - IOS_CPU: iPhoneSimulator + IOS_SDK: iPhoneSimulator + IOS_CPU: x86_64 test_ios: "yes" config: "no" make: "no" @@ -107,8 +107,8 @@ jobs: os: macos-latest AUTOTOOLS_HOST: x86_64-apple-ios OPENSSL_HOST: iphoneos-cross - IOS_SDK: x86_64 - IOS_CPU: AppleTVSimulator + IOS_SDK: AppleTVSimulator + IOS_CPU: x86_64 test_ios: "yes" config: "no" make: "no" @@ -116,8 +116,8 @@ jobs: os: macos-latest AUTOTOOLS_HOST: i386-apple-ios OPENSSL_HOST: iphoneos-cross - IOS_SDK: i386 - IOS_CPU: WatchSimulator + IOS_SDK: WatchSimulator + IOS_CPU: i386 test_ios: "yes" config: "no" make: "no" From 709ca6ff7e1afbcec15069541c4139290a9da181 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 14:15:56 +0200 Subject: [PATCH 081/156] Analysis workflow, add android armv7a test. --- .github/workflows/analysis_ports.yml | 161 ++++++++++++++++++--------- 1 file changed, 109 insertions(+), 52 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index ac1d430e9..432ae3470 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -67,58 +67,67 @@ jobs: # test_ios: "yes" # config: "no" # make: "no" - - name: Apple TV on iOS, arm64 - os: macos-latest - AUTOTOOLS_HOST: aarch64-apple-ios - OPENSSL_HOST: ios64-cross - IOS_SDK: AppleTVOS - IOS_CPU: arm64 - test_ios: "yes" - config: "no" - make: "no" - - name: Apple Watch on iOS, armv7 - os: macos-latest - AUTOTOOLS_HOST: armv7-apple-ios - OPENSSL_HOST: ios-cross - IOS_SDK: WatchOS - IOS_CPU: armv7k - test_ios: "yes" - config: "no" - make: "no" - - name: iPhoneSimulator on OS X, i386 - os: macos-latest - AUTOTOOLS_HOST: i386-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: iPhoneSimulator - IOS_CPU: i386 - test_ios: "yes" - config: "no" - make: "no" - - name: iPhoneSimulator on OS X, x86_64 - os: macos-latest - AUTOTOOLS_HOST: x86_64-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: iPhoneSimulator - IOS_CPU: x86_64 - test_ios: "yes" - config: "no" - make: "no" - - name: AppleTVSimulator on OS X, x86_64 - os: macos-latest - AUTOTOOLS_HOST: x86_64-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: AppleTVSimulator - IOS_CPU: x86_64 - test_ios: "yes" - config: "no" - make: "no" - - name: WatchSimulator on OS X, i386 - os: macos-latest - AUTOTOOLS_HOST: i386-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: WatchSimulator - IOS_CPU: i386 - test_ios: "yes" +# - name: Apple TV on iOS, arm64 +# os: macos-latest +# AUTOTOOLS_HOST: aarch64-apple-ios +# OPENSSL_HOST: ios64-cross +# IOS_SDK: AppleTVOS +# IOS_CPU: arm64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: Apple Watch on iOS, armv7 +# os: macos-latest +# AUTOTOOLS_HOST: armv7-apple-ios +# OPENSSL_HOST: ios-cross +# IOS_SDK: WatchOS +# IOS_CPU: armv7k +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: iPhoneSimulator on OS X, i386 +# os: macos-latest +# AUTOTOOLS_HOST: i386-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: iPhoneSimulator +# IOS_CPU: i386 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: iPhoneSimulator on OS X, x86_64 +# os: macos-latest +# AUTOTOOLS_HOST: x86_64-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: iPhoneSimulator +# IOS_CPU: x86_64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: AppleTVSimulator on OS X, x86_64 +# os: macos-latest +# AUTOTOOLS_HOST: x86_64-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: AppleTVSimulator +# IOS_CPU: x86_64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: WatchSimulator on OS X, i386 +# os: macos-latest +# AUTOTOOLS_HOST: i386-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: WatchSimulator +# IOS_CPU: i386 +# test_ios: "yes" +# config: "no" +# make: "no" + - name: Android armv7a + os: ubuntu-latest + AUTOTOOLS_HOST: armv7a-linux-androidabi + OPENSSL_HOST: android-arm + ANDROID_CPU: armv7a + ANDROID_API: 23 + test_android: "yes" config: "no" make: "no" @@ -126,6 +135,54 @@ jobs: - uses: actions/checkout@v2 with: submodules: false + - name: test_android + if: ${{ matrix.test_android == 'yes' }} + env: + AUTOTOOLS_HOST: ${{ matrix.AUTOTOOLS_HOST }} + OPENSSL_HOST: ${{ matrix.OPENSSL_HOST }} + ANDROID_API: ${{ matrix.ANDROID_API }} + ANDROID_CPU: ${{ matrix.ANDROID_CPU }} + run: | + #(already installed) ./contrib/android/install_tools.sh + export ANDROID_PREFIX="$HOME/android$ANDROID_API-$ANDROID_CPU" + echo ANDROID_PREFIX=${ANDROID_PREFIX} + export ANDROID_SDK_ROOT="$HOME/android-sdk" + echo ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT} + export ANDROID_NDK_ROOT="$HOME/android-ndk" + echo ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT} + export AUTOTOOLS_BUILD="$(./config.guess)" + echo AUTOTOOLS_BUILD=${AUTOTOOLS_BUILD} + export PKG_CONFIG_PATH="$ANDROID_PREFIX/lib/pkgconfig" + echo PKG_CONFIG_PATH=${PKG_CONFIG_PATH} + export CONFIG_OPTS="--build=$AUTOTOOLS_BUILD --host=$AUTOTOOLS_HOST --prefix=$ANDROID_PREFIX --with-ssl=$ANDROID_PREFIX --disable-gost --with-libexpat=$ANDROID_PREFIX" + echo CONFIG_OPTS=${CONFIG_OPTS} + echo "::group::install_ndk" + echo "./contrib/android/install_ndk.sh" + ./contrib/android/install_ndk.sh + echo "::endgroup::" + echo "::group::setenv_android.sh" + echo "./contrib/android/setenv_android.sh" + source ./contrib/android/setenv_android.sh + echo "::endgroup::" + echo "::group::install_openssl" + echo "./contrib/android/install_openssl.sh" + ./contrib/android/install_openssl.sh + echo "::endgroup::" + echo "::group::install_expat" + echo "./contrib/android/install_expat.sh" + ./contrib/android/install_expat.sh + echo "::endgroup::" + echo "::group::configure" + echo "./configure ${CONFIG_OPTS}" + ./configure ${CONFIG_OPTS} + echo "::endgroup::" + echo "::group::make" + # make is here to preserve environment variables + make + echo "::endgroup::" + echo "::group::make install" + make install + echo "::endgroup::" - name: test ios if: ${{ matrix.test_ios == 'yes' }} env: From aba8623c44cdf899b49dfa09ab2d2f9cd8b48244 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 14:24:39 +0200 Subject: [PATCH 082/156] Analysis workflow, add Android x86, arm64 and x86_64 tests. --- .github/workflows/analysis_ports.yml | 35 ++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 432ae3470..ba28f3cdf 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -121,11 +121,38 @@ jobs: # test_ios: "yes" # config: "no" # make: "no" - - name: Android armv7a +# - name: Android armv7a +# os: ubuntu-latest +# AUTOTOOLS_HOST: armv7a-linux-androidabi +# OPENSSL_HOST: android-arm +# ANDROID_CPU: armv7a +# ANDROID_API: 23 +# test_android: "yes" +# config: "no" +# make: "no" + - name: Android aarch64 os: ubuntu-latest - AUTOTOOLS_HOST: armv7a-linux-androidabi - OPENSSL_HOST: android-arm - ANDROID_CPU: armv7a + AUTOTOOLS_HOST: aarch64-linux-android + OPENSSL_HOST: android-arm64 + ANDROID_CPU: aarch64 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86 + os: ubuntu-latest + AUTOTOOLS_HOST: i686-linux-android + OPENSSL_HOST: android-x86 + ANDROID_CPU: x86 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86_64 + os: ubuntu-latest + AUTOTOOLS_HOST: x86_64-linux-android + OPENSSL_HOST: android-x86_64 + ANDROID_CPU: x86_64 ANDROID_API: 23 test_android: "yes" config: "no" From c017e00279974025b9b5678d84c8c7e4f1ad1319 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 14:51:11 +0200 Subject: [PATCH 083/156] Analysis workflow, enable all the tests. --- .github/workflows/analysis_ports.yml | 231 +++++++++++++-------------- 1 file changed, 115 insertions(+), 116 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index ba28f3cdf..3df38a571 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -14,122 +14,121 @@ jobs: strategy: matrix: include: -# temporarily commented out to speed up build. -# - name: GCC on Linux -# os: ubuntu-latest -# config: "--enable-debug --disable-flto" -# make_test: "yes" -# - name: Clang-analyzer -# os: ubuntu-latest -# config: "CC=clang --enable-debug --disable-flto --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: libevent -# os: ubuntu-latest -# install_libevent: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: OS X -# os: macos-latest -# install_expat: "yes" -# config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" -# make_test: "yes" -# - name: Clang on OS X -# os: macos-latest -# install_expat: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: ubsan (gcc undefined behaviour sanitizer) -# os: ubuntu-latest -# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' -# make_test: "yes" -# - name: asan (gcc address sanitizer) -# os: ubuntu-latest -# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' -# make_test: "yes" -# - name: Apple iPhone on iOS, armv7 -# os: macos-latest -# AUTOTOOLS_HOST: armv7-apple-ios -# OPENSSL_HOST: ios-cross -# IOS_SDK: iPhoneOS -# IOS_CPU: armv7s -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple iPhone on iOS, arm64 -# os: macos-latest -# AUTOTOOLS_HOST: aarch64-apple-ios -# OPENSSL_HOST: ios64-cross -# IOS_SDK: iPhoneOS -# IOS_CPU: arm64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple TV on iOS, arm64 -# os: macos-latest -# AUTOTOOLS_HOST: aarch64-apple-ios -# OPENSSL_HOST: ios64-cross -# IOS_SDK: AppleTVOS -# IOS_CPU: arm64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple Watch on iOS, armv7 -# os: macos-latest -# AUTOTOOLS_HOST: armv7-apple-ios -# OPENSSL_HOST: ios-cross -# IOS_SDK: WatchOS -# IOS_CPU: armv7k -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: iPhoneSimulator on OS X, i386 -# os: macos-latest -# AUTOTOOLS_HOST: i386-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: iPhoneSimulator -# IOS_CPU: i386 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: iPhoneSimulator on OS X, x86_64 -# os: macos-latest -# AUTOTOOLS_HOST: x86_64-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: iPhoneSimulator -# IOS_CPU: x86_64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: AppleTVSimulator on OS X, x86_64 -# os: macos-latest -# AUTOTOOLS_HOST: x86_64-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: AppleTVSimulator -# IOS_CPU: x86_64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: WatchSimulator on OS X, i386 -# os: macos-latest -# AUTOTOOLS_HOST: i386-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: WatchSimulator -# IOS_CPU: i386 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Android armv7a -# os: ubuntu-latest -# AUTOTOOLS_HOST: armv7a-linux-androidabi -# OPENSSL_HOST: android-arm -# ANDROID_CPU: armv7a -# ANDROID_API: 23 -# test_android: "yes" -# config: "no" -# make: "no" + - name: GCC on Linux + os: ubuntu-latest + config: "--enable-debug --disable-flto" + make_test: "yes" + - name: Clang-analyzer + os: ubuntu-latest + config: "CC=clang --enable-debug --disable-flto --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: libevent + os: ubuntu-latest + install_libevent: "yes" + config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: OS X + os: macos-latest + install_expat: "yes" + config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" + make_test: "yes" + - name: Clang on OS X + os: macos-latest + install_expat: "yes" + config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: ubsan (gcc undefined behaviour sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' + make_test: "yes" + - name: asan (gcc address sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' + make_test: "yes" + - name: Apple iPhone on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: iPhoneOS + IOS_CPU: armv7s + test_ios: "yes" + config: "no" + make: "no" + - name: Apple iPhone on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: iPhoneOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple TV on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: AppleTVOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple Watch on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: WatchOS + IOS_CPU: armv7k + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: AppleTVSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: AppleTVSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: WatchSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: WatchSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: Android armv7a + os: ubuntu-latest + AUTOTOOLS_HOST: armv7a-linux-androidabi + OPENSSL_HOST: android-arm + ANDROID_CPU: armv7a + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" - name: Android aarch64 os: ubuntu-latest AUTOTOOLS_HOST: aarch64-linux-android From ad9a287f82eab8c9177125a3cbdba7c5fa60597f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 15:18:54 +0200 Subject: [PATCH 084/156] Analysis workflow, add win test. --- .github/workflows/analysis_ports.yml | 292 ++++++++++++++------------- 1 file changed, 152 insertions(+), 140 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 3df38a571..a6fd25f9b 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -14,146 +14,151 @@ jobs: strategy: matrix: include: - - name: GCC on Linux - os: ubuntu-latest - config: "--enable-debug --disable-flto" - make_test: "yes" - - name: Clang-analyzer - os: ubuntu-latest - config: "CC=clang --enable-debug --disable-flto --disable-static" - make_test: "yes" - clang_analysis: "yes" - - name: libevent - os: ubuntu-latest - install_libevent: "yes" - config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" - make_test: "yes" - clang_analysis: "yes" - - name: OS X - os: macos-latest - install_expat: "yes" - config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" - make_test: "yes" - - name: Clang on OS X - os: macos-latest - install_expat: "yes" - config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" - make_test: "yes" - clang_analysis: "yes" - - name: ubsan (gcc undefined behaviour sanitizer) - os: ubuntu-latest - config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' - make_test: "yes" - - name: asan (gcc address sanitizer) - os: ubuntu-latest - config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' - make_test: "yes" - - name: Apple iPhone on iOS, armv7 - os: macos-latest - AUTOTOOLS_HOST: armv7-apple-ios - OPENSSL_HOST: ios-cross - IOS_SDK: iPhoneOS - IOS_CPU: armv7s - test_ios: "yes" - config: "no" - make: "no" - - name: Apple iPhone on iOS, arm64 - os: macos-latest - AUTOTOOLS_HOST: aarch64-apple-ios - OPENSSL_HOST: ios64-cross - IOS_SDK: iPhoneOS - IOS_CPU: arm64 - test_ios: "yes" - config: "no" - make: "no" - - name: Apple TV on iOS, arm64 - os: macos-latest - AUTOTOOLS_HOST: aarch64-apple-ios - OPENSSL_HOST: ios64-cross - IOS_SDK: AppleTVOS - IOS_CPU: arm64 - test_ios: "yes" - config: "no" - make: "no" - - name: Apple Watch on iOS, armv7 - os: macos-latest - AUTOTOOLS_HOST: armv7-apple-ios - OPENSSL_HOST: ios-cross - IOS_SDK: WatchOS - IOS_CPU: armv7k - test_ios: "yes" - config: "no" - make: "no" - - name: iPhoneSimulator on OS X, i386 - os: macos-latest - AUTOTOOLS_HOST: i386-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: iPhoneSimulator - IOS_CPU: i386 - test_ios: "yes" - config: "no" - make: "no" - - name: iPhoneSimulator on OS X, x86_64 - os: macos-latest - AUTOTOOLS_HOST: x86_64-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: iPhoneSimulator - IOS_CPU: x86_64 - test_ios: "yes" - config: "no" - make: "no" - - name: AppleTVSimulator on OS X, x86_64 - os: macos-latest - AUTOTOOLS_HOST: x86_64-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: AppleTVSimulator - IOS_CPU: x86_64 - test_ios: "yes" - config: "no" - make: "no" - - name: WatchSimulator on OS X, i386 - os: macos-latest - AUTOTOOLS_HOST: i386-apple-ios - OPENSSL_HOST: iphoneos-cross - IOS_SDK: WatchSimulator - IOS_CPU: i386 - test_ios: "yes" - config: "no" - make: "no" - - name: Android armv7a - os: ubuntu-latest - AUTOTOOLS_HOST: armv7a-linux-androidabi - OPENSSL_HOST: android-arm - ANDROID_CPU: armv7a - ANDROID_API: 23 - test_android: "yes" - config: "no" - make: "no" - - name: Android aarch64 - os: ubuntu-latest - AUTOTOOLS_HOST: aarch64-linux-android - OPENSSL_HOST: android-arm64 - ANDROID_CPU: aarch64 - ANDROID_API: 23 - test_android: "yes" - config: "no" - make: "no" - - name: Android x86 - os: ubuntu-latest - AUTOTOOLS_HOST: i686-linux-android - OPENSSL_HOST: android-x86 - ANDROID_CPU: x86 - ANDROID_API: 23 - test_android: "yes" - config: "no" - make: "no" - - name: Android x86_64 - os: ubuntu-latest - AUTOTOOLS_HOST: x86_64-linux-android - OPENSSL_HOST: android-x86_64 - ANDROID_CPU: x86_64 - ANDROID_API: 23 - test_android: "yes" +# - name: GCC on Linux +# os: ubuntu-latest +# config: "--enable-debug --disable-flto" +# make_test: "yes" +# - name: Clang-analyzer +# os: ubuntu-latest +# config: "CC=clang --enable-debug --disable-flto --disable-static" +# make_test: "yes" +# clang_analysis: "yes" +# - name: libevent +# os: ubuntu-latest +# install_libevent: "yes" +# config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" +# make_test: "yes" +# clang_analysis: "yes" +# - name: OS X +# os: macos-latest +# install_expat: "yes" +# config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" +# make_test: "yes" +# - name: Clang on OS X +# os: macos-latest +# install_expat: "yes" +# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" +# make_test: "yes" +# clang_analysis: "yes" +# - name: ubsan (gcc undefined behaviour sanitizer) +# os: ubuntu-latest +# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' +# make_test: "yes" +# - name: asan (gcc address sanitizer) +# os: ubuntu-latest +# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' +# make_test: "yes" +# - name: Apple iPhone on iOS, armv7 +# os: macos-latest +# AUTOTOOLS_HOST: armv7-apple-ios +# OPENSSL_HOST: ios-cross +# IOS_SDK: iPhoneOS +# IOS_CPU: armv7s +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: Apple iPhone on iOS, arm64 +# os: macos-latest +# AUTOTOOLS_HOST: aarch64-apple-ios +# OPENSSL_HOST: ios64-cross +# IOS_SDK: iPhoneOS +# IOS_CPU: arm64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: Apple TV on iOS, arm64 +# os: macos-latest +# AUTOTOOLS_HOST: aarch64-apple-ios +# OPENSSL_HOST: ios64-cross +# IOS_SDK: AppleTVOS +# IOS_CPU: arm64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: Apple Watch on iOS, armv7 +# os: macos-latest +# AUTOTOOLS_HOST: armv7-apple-ios +# OPENSSL_HOST: ios-cross +# IOS_SDK: WatchOS +# IOS_CPU: armv7k +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: iPhoneSimulator on OS X, i386 +# os: macos-latest +# AUTOTOOLS_HOST: i386-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: iPhoneSimulator +# IOS_CPU: i386 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: iPhoneSimulator on OS X, x86_64 +# os: macos-latest +# AUTOTOOLS_HOST: x86_64-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: iPhoneSimulator +# IOS_CPU: x86_64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: AppleTVSimulator on OS X, x86_64 +# os: macos-latest +# AUTOTOOLS_HOST: x86_64-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: AppleTVSimulator +# IOS_CPU: x86_64 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: WatchSimulator on OS X, i386 +# os: macos-latest +# AUTOTOOLS_HOST: i386-apple-ios +# OPENSSL_HOST: iphoneos-cross +# IOS_SDK: WatchSimulator +# IOS_CPU: i386 +# test_ios: "yes" +# config: "no" +# make: "no" +# - name: Android armv7a +# os: ubuntu-latest +# AUTOTOOLS_HOST: armv7a-linux-androidabi +# OPENSSL_HOST: android-arm +# ANDROID_CPU: armv7a +# ANDROID_API: 23 +# test_android: "yes" +# config: "no" +# make: "no" +# - name: Android aarch64 +# os: ubuntu-latest +# AUTOTOOLS_HOST: aarch64-linux-android +# OPENSSL_HOST: android-arm64 +# ANDROID_CPU: aarch64 +# ANDROID_API: 23 +# test_android: "yes" +# config: "no" +# make: "no" +# - name: Android x86 +# os: ubuntu-latest +# AUTOTOOLS_HOST: i686-linux-android +# OPENSSL_HOST: android-x86 +# ANDROID_CPU: x86 +# ANDROID_API: 23 +# test_android: "yes" +# config: "no" +# make: "no" +# - name: Android x86_64 +# os: ubuntu-latest +# AUTOTOOLS_HOST: x86_64-linux-android +# OPENSSL_HOST: android-x86_64 +# ANDROID_CPU: x86_64 +# ANDROID_API: 23 +# test_android: "yes" +# config: "no" +# make: "no" + - name: Windows + os: windows-latest + test_windows: "yes" config: "no" make: "no" @@ -161,6 +166,13 @@ jobs: - uses: actions/checkout@v2 with: submodules: false + - name: test_windows + if: ${{ matrix.test_windows == 'yes' }} + run: | + mingw64-configure --enable-debug --enable-static-exe --disable-flto + make + make test + shell: bash - name: test_android if: ${{ matrix.test_android == 'yes' }} env: From 137ff8b856153a1847b39ef23bb25f6753c20852 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 15:21:26 +0200 Subject: [PATCH 085/156] Analysis workflow, fix indentation of shell keyword. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index a6fd25f9b..76bcdb803 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -168,11 +168,11 @@ jobs: submodules: false - name: test_windows if: ${{ matrix.test_windows == 'yes' }} + shell: bash run: | mingw64-configure --enable-debug --enable-static-exe --disable-flto make make test - shell: bash - name: test_android if: ${{ matrix.test_android == 'yes' }} env: From 5d70fbc6fa52a1d325c83ecfe931a7bc8b9b0255 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 15:25:37 +0200 Subject: [PATCH 086/156] Analysis workflow, find mingw. --- .github/workflows/analysis_ports.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 76bcdb803..b6eed4eac 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,7 +170,10 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | - mingw64-configure --enable-debug --enable-static-exe --disable-flto + ls -l c:\ + ls -l c:\tools + ls -l c:\tools\mingw + mingw32-configure --enable-debug --enable-static-exe --disable-flto make make test - name: test_android From 0f5847f2762f6a4669d204e0789eb5792d97f58f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 15:28:09 +0200 Subject: [PATCH 087/156] Analysis workflow, find mingw. --- .github/workflows/analysis_ports.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index b6eed4eac..6f7adff5d 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,9 +170,9 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | - ls -l c:\ - ls -l c:\tools - ls -l c:\tools\mingw + ls -l 'c:\' || echo nevermind + ls -l 'c:\tools' || echo nevermind + ls -l 'c:\tools\mingw' || echo nevermind mingw32-configure --enable-debug --enable-static-exe --disable-flto make make test From 3db0c7717cbc7388070628d457001f9914731ad3 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:05:02 +0200 Subject: [PATCH 088/156] Analysis workflow, find mingw. --- .github/workflows/analysis_ports.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 6f7adff5d..d8a0c4908 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,9 +170,14 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | + echo 'c:' ls -l 'c:\' || echo nevermind - ls -l 'c:\tools' || echo nevermind - ls -l 'c:\tools\mingw' || echo nevermind + echo 'Program Files' + ls -l 'c:\Program Files' || echo nevermind + echo 'Program Files (x86)' + ls -l 'c:\Program Files (x86)' || echo nevermind + echo PATH="$PATH" + find / -name mingw32-make.exe mingw32-configure --enable-debug --enable-static-exe --disable-flto make make test From 085ac3c0da1e22a6cab7409bf86de0ec54d992d1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:13:21 +0200 Subject: [PATCH 089/156] Analysis workflow, find mingw. --- .github/workflows/analysis_ports.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index d8a0c4908..0b5612539 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -176,9 +176,18 @@ jobs: ls -l 'c:\Program Files' || echo nevermind echo 'Program Files (x86)' ls -l 'c:\Program Files (x86)' || echo nevermind + echo '/c/Program Files/OpenSSL' + ls -l '/c/Program Files/OpenSSL' || echo nevermind + echo '/' + ls -l '/' || echo nevermind + echo '/mingw64' + ls -l '/mingw64' || echo nevermind + echo '/mingw64/bin' + ls -l '/mingw64/bin' || echo nevermind + echo '/Users' + ls -l '/Users' || echo nevermind echo PATH="$PATH" - find / -name mingw32-make.exe - mingw32-configure --enable-debug --enable-static-exe --disable-flto + ./configure --enable-debug --enable-static-exe --disable-flto make make test - name: test_android From b9b46367975b46135e81757d49ec969ee90a870f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:20:55 +0200 Subject: [PATCH 090/156] Analysis workflow, find openssl. --- .github/workflows/analysis_ports.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 0b5612539..7f1492e03 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -184,8 +184,18 @@ jobs: ls -l '/mingw64' || echo nevermind echo '/mingw64/bin' ls -l '/mingw64/bin' || echo nevermind - echo '/Users' - ls -l '/Users' || echo nevermind + echo '/c/Users' + ls -l '/c/Users' || echo nevermind + echo '/mingw64/ssl' + ls -l '/mingw64/ssl' || echo nevermind + echo '/c/ProgramData/Chocolatey' + ls -l '/c/ProgramData/Chocolatey' || echo nevermind + echo '/c/ProgramData/Chocolatey/include' + ls -l '/c/ProgramData/Chocolatey/include' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib' + ls -l '/c/ProgramData/Chocolatey/lib' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw' + ls -l '/c/ProgramData/Chocolatey/lib/mingw' || echo nevermind echo PATH="$PATH" ./configure --enable-debug --enable-static-exe --disable-flto make From bc51922888d186d99daee562a1fdd7eee1525d80 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:27:02 +0200 Subject: [PATCH 091/156] Analysis workflow, find openssl. --- .github/workflows/analysis_ports.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 7f1492e03..f034be22c 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -190,12 +190,20 @@ jobs: ls -l '/mingw64/ssl' || echo nevermind echo '/c/ProgramData/Chocolatey' ls -l '/c/ProgramData/Chocolatey' || echo nevermind - echo '/c/ProgramData/Chocolatey/include' - ls -l '/c/ProgramData/Chocolatey/include' || echo nevermind + echo '/c/ProgramData/Chocolatey/tools' + ls -l '/c/ProgramData/Chocolatey/tools' || echo nevermind echo '/c/ProgramData/Chocolatey/lib' ls -l '/c/ProgramData/Chocolatey/lib' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' + ls -l '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/mingw' ls -l '/c/ProgramData/Chocolatey/lib/mingw' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw/tools' + ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install' + ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' + ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' || echo nevermind echo PATH="$PATH" ./configure --enable-debug --enable-static-exe --disable-flto make From 36a9b5da0d9d15ef489f264c594a38c17d3ccb93 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:31:51 +0200 Subject: [PATCH 092/156] Analysis workflow, find openssl. --- .github/workflows/analysis_ports.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index f034be22c..060623f96 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -196,6 +196,8 @@ jobs: ls -l '/c/ProgramData/Chocolatey/lib' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' ls -l '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/OpenSSL.Light/tools' + ls -l '/c/ProgramData/Chocolatey/lib/OpenSSL.Light/tools' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/mingw' ls -l '/c/ProgramData/Chocolatey/lib/mingw' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/mingw/tools' @@ -204,6 +206,14 @@ jobs: ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/bin' + ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/bin' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/include' + ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/include' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/rtools' + ls -l '/c/ProgramData/Chocolatey/lib/rtools' || echo nevermind + echo '/c/ProgramData/Chocolatey/lib/rtools/tools' + ls -l '/c/ProgramData/Chocolatey/lib/rtools/tools' || echo nevermind echo PATH="$PATH" ./configure --enable-debug --enable-static-exe --disable-flto make From d994a246bb1a539ae6400cd92cb67980bd0657d0 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:41:40 +0200 Subject: [PATCH 093/156] Analysis workflow, build openssl. --- .github/workflows/analysis_ports.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 060623f96..82c26a26b 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -214,8 +214,24 @@ jobs: ls -l '/c/ProgramData/Chocolatey/lib/rtools' || echo nevermind echo '/c/ProgramData/Chocolatey/lib/rtools/tools' ls -l '/c/ProgramData/Chocolatey/lib/rtools/tools' || echo nevermind + echo '/c/Users/Default' + ls -l '/c/Users/Default' || echo nevermind echo PATH="$PATH" - ./configure --enable-debug --enable-static-exe --disable-flto + echo pwd + pwd + cd .. + echo 'ls ..' + ls + mkdir openssl + curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz + tar xzf openssl-1.1.1j.tar.gz + cd openssl-1.1.1j + ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/c/Users/Default/openssl" + make + make install_sw + cd .. + cd unbound + ./configure --enable-debug --enable-static-exe --disable-flto --with-ssl=/c/Users/Default/openssl make make test - name: test_android From 563b047273c690c54fbb001205bb6efe55344414 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:49:33 +0200 Subject: [PATCH 094/156] Analysis workflow, build openssl. --- .github/workflows/analysis_ports.yml | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 82c26a26b..fb7faa5ae 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -216,22 +216,36 @@ jobs: ls -l '/c/ProgramData/Chocolatey/lib/rtools/tools' || echo nevermind echo '/c/Users/Default' ls -l '/c/Users/Default' || echo nevermind + echo '/usr' + ls -l '/usr' || echo nevermind + echo '/usr/lib' + ls -l '/usr/lib' || echo nevermind + echo '/usr/share' + ls -l '/usr/share' || echo nevermind + echo '/c/Strawberry/perl' + ls -l '/c/Strawberry/perl' || echo nevermind + echo '/c/Strawberry/perl/lib' + ls -l '/c/Strawberry/perl/lib' || echo nevermind + echo '/c/Strawberry/perl/site' + ls -l '/c/Strawberry/perl/site' || echo nevermind + echo '/c/Strawberry/perl/share' + ls -l '/c/Strawberry/perl/share' || echo nevermind echo PATH="$PATH" - echo pwd - pwd + export unboundpath=`pwd` + echo unboundpath=${unboundpath} cd .. - echo 'ls ..' - ls + export prepath=`pwd` + echo prepath=${prepath} mkdir openssl curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j - ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/c/Users/Default/openssl" + ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw cd .. cd unbound - ./configure --enable-debug --enable-static-exe --disable-flto --with-ssl=/c/Users/Default/openssl + ./configure --enable-debug --enable-static-exe --disable-flto --with-ssl=/$prepath/openssl make make test - name: test_android From bc271a2b14e229de0e4c86b2a76f0150558dfe55 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:55:52 +0200 Subject: [PATCH 095/156] Analysis workflow, fixup perl for openssl. --- .github/workflows/analysis_ports.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index fb7faa5ae..5de0178cc 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -228,8 +228,12 @@ jobs: ls -l '/c/Strawberry/perl/lib' || echo nevermind echo '/c/Strawberry/perl/site' ls -l '/c/Strawberry/perl/site' || echo nevermind - echo '/c/Strawberry/perl/share' - ls -l '/c/Strawberry/perl/share' || echo nevermind + echo '/c/Strawberry/perl/site/lib' + ls -l '/c/Strawberry/perl/site/lib' || echo nevermind + echo '/c/Strawberry/perl/vendor' + ls -l '/c/Strawberry/perl/vendor' || echo nevermind + echo PERLLIB="$PERLLIB" + echo PERL5LIB="$PERL5LIB" echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} From 1c05aa22432af0bcac94d3d838584ff3ab38b433 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 16:59:24 +0200 Subject: [PATCH 096/156] Analysis workflow, fixup perl for openssl Configure. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5de0178cc..e2402e103 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -232,8 +232,6 @@ jobs: ls -l '/c/Strawberry/perl/site/lib' || echo nevermind echo '/c/Strawberry/perl/vendor' ls -l '/c/Strawberry/perl/vendor' || echo nevermind - echo PERLLIB="$PERLLIB" - echo PERL5LIB="$PERL5LIB" echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} @@ -244,6 +242,8 @@ jobs: curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j + export PERL5LIB="/c/Strawberry/perl/lib" + echo PERL5LIB="$PERL5LIB" ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw From 0b2dc96d317ceb8f877b1153759aa19c78af5b64 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:04:07 +0200 Subject: [PATCH 097/156] Analysis workflow, find perl. --- .github/workflows/analysis_ports.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index e2402e103..ec3ce781a 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -231,7 +231,12 @@ jobs: echo '/c/Strawberry/perl/site/lib' ls -l '/c/Strawberry/perl/site/lib' || echo nevermind echo '/c/Strawberry/perl/vendor' - ls -l '/c/Strawberry/perl/vendor' || echo nevermind + ls -l '/usr/lib/perl5' || echo nevermind + ls -l '/usr/lib/perl5' || echo nevermind + ls -l '/usr/share/perl5' || echo nevermind + ls -l '/usr/share/perl5' || echo nevermind + echo which perl + which perl echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} @@ -242,7 +247,8 @@ jobs: curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j - export PERL5LIB="/c/Strawberry/perl/lib" + #export PERL5LIB="/c/Strawberry/perl/lib" + export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" echo PERL5LIB="$PERL5LIB" ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make From 4a099bb25ad27b90482019c21b06ffd80cb7dc42 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:08:13 +0200 Subject: [PATCH 098/156] Analysis workflow, use different perl --- .github/workflows/analysis_ports.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index ec3ce781a..07c2f9e70 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -224,6 +224,8 @@ jobs: ls -l '/usr/share' || echo nevermind echo '/c/Strawberry/perl' ls -l '/c/Strawberry/perl' || echo nevermind + echo '/c/Strawberry/perl/bin' + ls -l '/c/Strawberry/perl/bin' || echo nevermind echo '/c/Strawberry/perl/lib' ls -l '/c/Strawberry/perl/lib' || echo nevermind echo '/c/Strawberry/perl/site' @@ -248,8 +250,10 @@ jobs: tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j #export PERL5LIB="/c/Strawberry/perl/lib" - export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" - echo PERL5LIB="$PERL5LIB" + #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" + #echo PERL5LIB="$PERL5LIB" + export PATH="/c/Strawberry/perl/bin:$PATH" + which perl ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw From 6822a48308b455d4a1dde5090c1989099033de71 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:12:34 +0200 Subject: [PATCH 099/156] Analysis workflow, find perl module. --- .github/workflows/analysis_ports.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 07c2f9e70..ebac658c5 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -232,11 +232,14 @@ jobs: ls -l '/c/Strawberry/perl/site' || echo nevermind echo '/c/Strawberry/perl/site/lib' ls -l '/c/Strawberry/perl/site/lib' || echo nevermind - echo '/c/Strawberry/perl/vendor' - ls -l '/usr/lib/perl5' || echo nevermind + echo '/usr/lib/perl5' ls -l '/usr/lib/perl5' || echo nevermind + echo '/usr/share/perl5' ls -l '/usr/share/perl5' || echo nevermind - ls -l '/usr/share/perl5' || echo nevermind + echo '/usr/share/perl5/vendor_perl' + ls -l '/usr/share/perl5/vendor_perl' || echo nevermind + echo '/usr/share/perl5/vendor_perl/Pod' + ls -l '/usr/share/perl5/vendor_perl/Pod' || echo nevermind echo which perl which perl echo PATH="$PATH" @@ -252,8 +255,6 @@ jobs: #export PERL5LIB="/c/Strawberry/perl/lib" #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" #echo PERL5LIB="$PERL5LIB" - export PATH="/c/Strawberry/perl/bin:$PATH" - which perl ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw From 385d87b543f2de8e0505ca5c4df497cf97195a11 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:23:51 +0200 Subject: [PATCH 100/156] Analysis workflow, install missing module. --- .github/workflows/analysis_ports.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index ebac658c5..352163b24 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -255,6 +255,10 @@ jobs: #export PERL5LIB="/c/Strawberry/perl/lib" #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" #echo PERL5LIB="$PERL5LIB" + echo "cpan" + cpan POD::Usage + echo "perl MCPAN" + perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw From 5d862e4b3aee2c737e7abae1838e52420a565389 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:26:10 +0200 Subject: [PATCH 101/156] Analysis workflow, perl to call cpan for it. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 352163b24..fa7369604 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -255,8 +255,8 @@ jobs: #export PERL5LIB="/c/Strawberry/perl/lib" #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" #echo PERL5LIB="$PERL5LIB" - echo "cpan" - cpan POD::Usage + #echo "cpan" + #cpan POD::Usage echo "perl MCPAN" perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" From 320e6ad462beda928ea25b24ec375d893d282bfd Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:36:48 +0200 Subject: [PATCH 102/156] Analysis workflow, use cpan to install perl module. --- .github/workflows/analysis_ports.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index fa7369604..26dc0d6d7 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -248,7 +248,11 @@ jobs: cd .. export prepath=`pwd` echo prepath=${prepath} + echo "curl cpanm" + curl -L https://cpanmin.us/ -o cpanm + perl cpanm POD::Usage mkdir openssl + echo "curl openssl" curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j @@ -257,8 +261,8 @@ jobs: #echo PERL5LIB="$PERL5LIB" #echo "cpan" #cpan POD::Usage - echo "perl MCPAN" - perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" + #echo "perl MCPAN" + #perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw From db917945a3fb2624bded0b994e49df68dd60b815 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:39:53 +0200 Subject: [PATCH 103/156] Analysis workflow, fix spelling for Pod. --- .github/workflows/analysis_ports.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 26dc0d6d7..524b983d7 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -249,8 +249,9 @@ jobs: export prepath=`pwd` echo prepath=${prepath} echo "curl cpanm" - curl -L https://cpanmin.us/ -o cpanm - perl cpanm POD::Usage + curl -L -k -s -S -o cpanm https://cpanmin.us/ + echo "perl cpanm Pod::Usage" + perl cpanm Pod::Usage mkdir openssl echo "curl openssl" curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz From 98e36cd158da9e10e5a2e460dc9c968fbcbcc749 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:42:25 +0200 Subject: [PATCH 104/156] Analysis workflow, install perl module. --- .github/workflows/analysis_ports.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 524b983d7..d34e8c26a 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -250,6 +250,8 @@ jobs: echo prepath=${prepath} echo "curl cpanm" curl -L -k -s -S -o cpanm https://cpanmin.us/ + echo "perl cpanm ExtUtils::Manifest" + perl cpanm ExtUtils::Manifest echo "perl cpanm Pod::Usage" perl cpanm Pod::Usage mkdir openssl From 877db8ca36f823475bdde3e8ef52eb93d17f2102 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:50:58 +0200 Subject: [PATCH 105/156] Analysis workflow, run from other shell. --- .github/workflows/analysis_ports.yml | 46 ++++++++++++++++++---------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index d34e8c26a..75aaa57e5 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -166,6 +166,20 @@ jobs: - uses: actions/checkout@v2 with: submodules: false + - name: pwsh_windows + if: ${{ matrix.test_windows == 'yes' }} + run: | + pwd + cd .. + mkdir openssl + echo "curl openssl" + curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz + tar xzf openssl-1.1.1j.tar.gz + cd openssl-1.1.1j + ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/d/a/unbound/openssl" + make + make install_sw + cd .. - name: test_windows if: ${{ matrix.test_windows == 'yes' }} shell: bash @@ -240,25 +254,23 @@ jobs: ls -l '/usr/share/perl5/vendor_perl' || echo nevermind echo '/usr/share/perl5/vendor_perl/Pod' ls -l '/usr/share/perl5/vendor_perl/Pod' || echo nevermind - echo which perl - which perl echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} cd .. export prepath=`pwd` echo prepath=${prepath} - echo "curl cpanm" - curl -L -k -s -S -o cpanm https://cpanmin.us/ - echo "perl cpanm ExtUtils::Manifest" - perl cpanm ExtUtils::Manifest - echo "perl cpanm Pod::Usage" - perl cpanm Pod::Usage - mkdir openssl - echo "curl openssl" - curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz - tar xzf openssl-1.1.1j.tar.gz - cd openssl-1.1.1j + #echo "curl cpanm" + #curl -L -k -s -S -o cpanm https://cpanmin.us/ + #echo "perl cpanm ExtUtils::Manifest" + #perl cpanm ExtUtils::Manifest + #echo "perl cpanm Pod::Usage" + #perl cpanm Pod::Usage + #mkdir openssl + #echo "curl openssl" + #curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz + #tar xzf openssl-1.1.1j.tar.gz + #cd openssl-1.1.1j #export PERL5LIB="/c/Strawberry/perl/lib" #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" #echo PERL5LIB="$PERL5LIB" @@ -266,10 +278,10 @@ jobs: #cpan POD::Usage #echo "perl MCPAN" #perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" - ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" - make - make install_sw - cd .. + #./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" + #make + #make install_sw + #cd .. cd unbound ./configure --enable-debug --enable-static-exe --disable-flto --with-ssl=/$prepath/openssl make From 02516845d833bce79df8431f223769ee8a2136e7 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 17:53:51 +0200 Subject: [PATCH 106/156] Analysis workflow, use perl for Configure. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 75aaa57e5..b760e38b1 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -176,7 +176,7 @@ jobs: curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j - ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/d/a/unbound/openssl" + perl Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/d/a/unbound/openssl" make make install_sw cd .. From 533e1db30a72956803317fc9b90c612783d4471e Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:02:22 +0200 Subject: [PATCH 107/156] Analysis workflow, use installed openssl --- .github/workflows/analysis_ports.yml | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index b760e38b1..7858897a8 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -166,20 +166,6 @@ jobs: - uses: actions/checkout@v2 with: submodules: false - - name: pwsh_windows - if: ${{ matrix.test_windows == 'yes' }} - run: | - pwd - cd .. - mkdir openssl - echo "curl openssl" - curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz - tar xzf openssl-1.1.1j.tar.gz - cd openssl-1.1.1j - perl Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/d/a/unbound/openssl" - make - make install_sw - cd .. - name: test_windows if: ${{ matrix.test_windows == 'yes' }} shell: bash @@ -254,6 +240,10 @@ jobs: ls -l '/usr/share/perl5/vendor_perl' || echo nevermind echo '/usr/share/perl5/vendor_perl/Pod' ls -l '/usr/share/perl5/vendor_perl/Pod' || echo nevermind + echo '/c/Program Files/Common Files' + ls -l '/c/Program Files/Common Files' || echo nevermind + echo '/c/Program Files/Common Files/SSL' + ls -l '/c/Program Files/Common Files/SSL' || echo nevermind echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} @@ -283,7 +273,7 @@ jobs: #make install_sw #cd .. cd unbound - ./configure --enable-debug --enable-static-exe --disable-flto --with-ssl=/$prepath/openssl + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/c/Program Files/Common Files/SSL" make make test - name: test_android From 0b1221ef3c258cd7423f72a096668489d73577d4 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:14:35 +0200 Subject: [PATCH 108/156] Analysis workflow, use yum install. --- .github/workflows/analysis_ports.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 7858897a8..e437f996a 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -250,6 +250,12 @@ jobs: cd .. export prepath=`pwd` echo prepath=${prepath} + echo "yum -y install perl-CPAN" + yum -y install perl-CPAN + echo "yum -y install Pod::Usage" + yum -y install Pod::Usage + echo "cpan Pod::Usage" + cpan Pod::Usage #echo "curl cpanm" #curl -L -k -s -S -o cpanm https://cpanmin.us/ #echo "perl cpanm ExtUtils::Manifest" @@ -257,10 +263,10 @@ jobs: #echo "perl cpanm Pod::Usage" #perl cpanm Pod::Usage #mkdir openssl - #echo "curl openssl" - #curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz - #tar xzf openssl-1.1.1j.tar.gz - #cd openssl-1.1.1j + echo "curl openssl" + curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz + tar xzf openssl-1.1.1j.tar.gz + cd openssl-1.1.1j #export PERL5LIB="/c/Strawberry/perl/lib" #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" #echo PERL5LIB="$PERL5LIB" @@ -268,10 +274,10 @@ jobs: #cpan POD::Usage #echo "perl MCPAN" #perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" - #./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" - #make - #make install_sw - #cd .. + ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" + make + make install_sw + cd .. cd unbound ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/c/Program Files/Common Files/SSL" make From 341198b5d70c242b26efebd60da6d3971dcea418 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:17:51 +0200 Subject: [PATCH 109/156] Analysis workflow, set up Configure. --- .github/workflows/analysis_ports.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index e437f996a..98e1af7a3 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -250,19 +250,11 @@ jobs: cd .. export prepath=`pwd` echo prepath=${prepath} - echo "yum -y install perl-CPAN" - yum -y install perl-CPAN - echo "yum -y install Pod::Usage" - yum -y install Pod::Usage - echo "cpan Pod::Usage" - cpan Pod::Usage - #echo "curl cpanm" - #curl -L -k -s -S -o cpanm https://cpanmin.us/ - #echo "perl cpanm ExtUtils::Manifest" - #perl cpanm ExtUtils::Manifest - #echo "perl cpanm Pod::Usage" - #perl cpanm Pod::Usage - #mkdir openssl + echo "curl cpanm" + curl -L -k -s -S -o cpanm https://cpanmin.us/ + echo "perl cpanm Pod::Usage" + perl cpanm Pod::Usage || echo whatever + mkdir openssl echo "curl openssl" curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz From 086e86b7aa17066a9aea118fd710cfd14afab428 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:25:45 +0200 Subject: [PATCH 110/156] Analysis workflow, remove usage from Configure. --- .github/workflows/analysis_ports.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 98e1af7a3..46f4bc506 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -250,10 +250,10 @@ jobs: cd .. export prepath=`pwd` echo prepath=${prepath} - echo "curl cpanm" - curl -L -k -s -S -o cpanm https://cpanmin.us/ - echo "perl cpanm Pod::Usage" - perl cpanm Pod::Usage || echo whatever + #echo "curl cpanm" + #curl -L -k -s -S -o cpanm https://cpanmin.us/ + #echo "perl cpanm Pod::Usage" + #perl cpanm Pod::Usage || echo whatever mkdir openssl echo "curl openssl" curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz @@ -266,7 +266,10 @@ jobs: #cpan POD::Usage #echo "perl MCPAN" #perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" - ./Configure no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" + # remove pod::Usage because we do not need -help or -man output + # from the Configure script + sed -e 's/use Pod::Usage//' < Configure > Configure.fix + ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make make install_sw cd .. From a409f82f58876ac621fe13308529b7048a0d7c3d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:40:14 +0200 Subject: [PATCH 111/156] Analysis workflow, show topdir from Makefile. --- .github/workflows/analysis_ports.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 46f4bc506..9f4f814a7 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -271,10 +271,13 @@ jobs: sed -e 's/use Pod::Usage//' < Configure > Configure.fix ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" make + grep INSTALLTOP= Makefile + grep DESTDIR= Makefile + grep '\d\a' Makefile make install_sw cd .. cd unbound - ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/c/Program Files/Common Files/SSL" + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/$prepath/openssl" make make test - name: test_android From 57055d2d89338311e56bf2eb23b162e5456fa2b8 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:45:42 +0200 Subject: [PATCH 112/156] Analysis workflow, build libs only. --- .github/workflows/analysis_ports.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 9f4f814a7..c409245a4 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -270,11 +270,15 @@ jobs: # from the Configure script sed -e 's/use Pod::Usage//' < Configure > Configure.fix ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" - make + # make the libs only, build faster + #make + make build_libs grep INSTALLTOP= Makefile grep DESTDIR= Makefile grep '\d\a' Makefile - make install_sw + # install the includes and libs only, build faster + #make install_sw + make install_dev cd .. cd unbound ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/$prepath/openssl" From 3bc29af6492a905ead4f313cc3d9dd229ae6ab1b Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 18:59:14 +0200 Subject: [PATCH 113/156] Analysis workflow, fixup installtop. --- .github/workflows/analysis_ports.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index c409245a4..6a75959fe 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -269,13 +269,13 @@ jobs: # remove pod::Usage because we do not need -help or -man output # from the Configure script sed -e 's/use Pod::Usage//' < Configure > Configure.fix - ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="/$prepath/openssl" + ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="$prepath/openssl" # make the libs only, build faster #make make build_libs - grep INSTALLTOP= Makefile - grep DESTDIR= Makefile - grep '\d\a' Makefile + mv Makefile Makefile.orig + # fixup \\ in the installtop to /. + sed -e 's?^INSTALLTOP=.*$?INSTALLTOP='"$prepath"'/openssl?' < Makefile.orig > Makefile # install the includes and libs only, build faster #make install_sw make install_dev From 82e7f6f056ac5bc60abdf56438ab16309b83c8b3 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 19:35:12 +0200 Subject: [PATCH 114/156] Analysis workflow, Fixup spelling --- .github/workflows/analysis_ports.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 6a75959fe..e5ea5d875 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -269,19 +269,25 @@ jobs: # remove pod::Usage because we do not need -help or -man output # from the Configure script sed -e 's/use Pod::Usage//' < Configure > Configure.fix + echo "./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix=\""$prepath/openssl\""" ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="$prepath/openssl" # make the libs only, build faster + echo "make build_libs" #make make build_libs mv Makefile Makefile.orig # fixup \\ in the installtop to /. + echo "fixup INSTALLTOP" sed -e 's?^INSTALLTOP=.*$?INSTALLTOP='"$prepath"'/openssl?' < Makefile.orig > Makefile # install the includes and libs only, build faster + echo "make install_dev" #make install_sw make install_dev cd .. + echo "unbound" cd unbound - ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=/$prepath/openssl" + echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\"" + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" || (cat config.log; exit 0) make make test - name: test_android From 994c095ed2746bb241e9a46b236b919f4c677de5 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 19:50:17 +0200 Subject: [PATCH 115/156] Analysis workflow, build libexpat. --- .github/workflows/analysis_ports.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index e5ea5d875..30cb2dc5f 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -284,10 +284,22 @@ jobs: #make install_sw make install_dev cd .. + make expat + echo "curl expat" + curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz + tar xzf expat-2.2.10.tar.gz + cd expat-2.2.10 + echo "./configure --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "make" + make + echo "make install" + make install + cd .. echo "unbound" cd unbound - echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\"" - ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" || (cat config.log; exit 0) + echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make make test - name: test_android From d94b3f9b78e4d33aaa375257031faf5366066473 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 19:57:29 +0200 Subject: [PATCH 116/156] Analysis workflow, fix mkdir. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 30cb2dc5f..5f9191b3b 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -284,7 +284,7 @@ jobs: #make install_sw make install_dev cd .. - make expat + mkdir expat echo "curl expat" curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz From 201011057fd174e1caced62d596b67e1d7a4c637 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:13:33 +0200 Subject: [PATCH 117/156] Analysis workflow, provide SHELL. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5f9191b3b..990d8594b 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,8 +289,8 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "./configure SHELL=/usr/bin/sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure SHELL=/usr/bin/sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" echo "make" make echo "make install" From 6b84e303babe739e06382db1ead83960bf0b9360 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:25:12 +0200 Subject: [PATCH 118/156] Analysis workflow, fixup shell. --- .github/workflows/analysis_ports.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 990d8594b..feb017ed6 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -274,7 +274,7 @@ jobs: # make the libs only, build faster echo "make build_libs" #make - make build_libs + ###make build_libs mv Makefile Makefile.orig # fixup \\ in the installtop to /. echo "fixup INSTALLTOP" @@ -282,15 +282,15 @@ jobs: # install the includes and libs only, build faster echo "make install_dev" #make install_sw - make install_dev + ###make install_dev cd .. mkdir expat echo "curl expat" curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure SHELL=/usr/bin/sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure SHELL=/usr/bin/sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "./configure SHELL=/usr/bin/sh.exe --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure SHELL=/usr/bin/sh.exe --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" echo "make" make echo "make install" From 547083ddbdd93831f8dbc9b208895551e5cba6cc Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:31:02 +0200 Subject: [PATCH 119/156] Analysis workflow, add shell. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index feb017ed6..1d81a7dfc 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,8 +289,8 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure SHELL=/usr/bin/sh.exe --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure SHELL=/usr/bin/sh.exe --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "./configure SHELL=sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure SHELL=sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" echo "make" make echo "make install" From 80a3f416de4f6f0d29e20335eef9354fdb98056c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:38:12 +0200 Subject: [PATCH 120/156] Analysis workflow, provide CONFIG_SHELL variable. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 1d81a7dfc..843c80538 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,8 +289,8 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure SHELL=sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure SHELL=sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "./configure CONFIG_SHELL=/usr/bin/sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure CONFIG_SHELL=/usr/bin/sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" echo "make" make echo "make install" From e249ca39eddfe7187adb537a8dc9b4be17497531 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:42:32 +0200 Subject: [PATCH 121/156] Analysis workflow, fix env variable. --- .github/workflows/analysis_ports.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 843c80538..4e109d58c 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,8 +289,15 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure CONFIG_SHELL=/usr/bin/sh --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure CONFIG_SHELL=/usr/bin/sh --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "SHELL=${SHELL}" + ls /bin/sh || echo whatever + ls /usr/bin/sh || echo whatever + export CONFIG_SHELL=/usr/bin/sh + echo "CONFIG_SHELL=${CONFIG_SHELL}" + export SHELL=/usr/bin/sh + echo "SHELL=${SHELL}" + echo "./configure --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" echo "make" make echo "make install" From 57f4047bb5ae98e0ba32c281bfcd61ff98327ab3 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:51:45 +0200 Subject: [PATCH 122/156] Analysis workflow, fixup shell. --- .github/workflows/analysis_ports.yml | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 4e109d58c..9dc4cc47d 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,15 +289,11 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "SHELL=${SHELL}" - ls /bin/sh || echo whatever - ls /usr/bin/sh || echo whatever - export CONFIG_SHELL=/usr/bin/sh - echo "CONFIG_SHELL=${CONFIG_SHELL}" - export SHELL=/usr/bin/sh - echo "SHELL=${SHELL}" - echo "./configure --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" - ./configure --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" + mv Makefile Makefile.orig + # fixup shell from space in pathname + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < Makefile.orig > Makefile echo "make" make echo "make install" From 536e0e2125f5eef3f09037c9989831fd13689229 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 20:55:50 +0200 Subject: [PATCH 123/156] Analysis workflow, also fix other makefiles. --- .github/workflows/analysis_ports.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 9dc4cc47d..f5f3d8baf 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -291,9 +291,19 @@ jobs: cd expat-2.2.10 echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" - mv Makefile Makefile.orig # fixup shell from space in pathname + mv Makefile Makefile.orig sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < Makefile.orig > Makefile + mv lib/Makefile lib/Makefile.orig + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < lib/Makefile.orig > lib/Makefile + mv doc/Makefile doc/Makefile.orig + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < doc/Makefile.orig > doc/Makefile + mv examples/Makefile examples/Makefile.orig + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < examples/Makefile.orig > examples/Makefile + mv tests/Makefile tests/Makefile.orig + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < tests/Makefile.orig > tests/Makefile + mv xmlwf/Makefile xmlwf/Makefile.orig + sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < xmlwf/Makefile.orig > xmlwf/Makefile echo "make" make echo "make install" From 4fdb6d85ebd14c55ab21230c4ae804553eace9bf Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:00:52 +0200 Subject: [PATCH 124/156] Analysis workflow, fix shell substitution. --- .github/workflows/analysis_ports.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index f5f3d8baf..f89dc13cb 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -293,17 +293,17 @@ jobs: ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup shell from space in pathname mv Makefile Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < Makefile.orig > Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < lib/Makefile.orig > lib/Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < lib/Makefile.orig > lib/Makefile mv doc/Makefile doc/Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < doc/Makefile.orig > doc/Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < doc/Makefile.orig > doc/Makefile mv examples/Makefile examples/Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < examples/Makefile.orig > examples/Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < examples/Makefile.orig > examples/Makefile mv tests/Makefile tests/Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < tests/Makefile.orig > tests/Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < tests/Makefile.orig > tests/Makefile mv xmlwf/Makefile xmlwf/Makefile.orig - sed -e 's?^SHELL=.*$?SHELL=/usr/bin/sh?' < xmlwf/Makefile.orig > xmlwf/Makefile + sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < xmlwf/Makefile.orig > xmlwf/Makefile echo "make" make echo "make install" From 43f542945856051855d34f2f15fca1d36734931f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:09:25 +0200 Subject: [PATCH 125/156] Analysis workflow, remove program files dir. --- .github/workflows/analysis_ports.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index f89dc13cb..39c187cd2 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -293,17 +293,17 @@ jobs: ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup shell from space in pathname mv Makefile Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < Makefile.orig > Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < lib/Makefile.orig > lib/Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < lib/Makefile.orig > lib/Makefile mv doc/Makefile doc/Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < doc/Makefile.orig > doc/Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < doc/Makefile.orig > doc/Makefile mv examples/Makefile examples/Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < examples/Makefile.orig > examples/Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < examples/Makefile.orig > examples/Makefile mv tests/Makefile tests/Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < tests/Makefile.orig > tests/Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < tests/Makefile.orig > tests/Makefile mv xmlwf/Makefile xmlwf/Makefile.orig - sed -e 's?^SHELL =.*$?SHELL=/usr/bin/sh?' < xmlwf/Makefile.orig > xmlwf/Makefile + sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < xmlwf/Makefile.orig > xmlwf/Makefile echo "make" make echo "make install" From f963fc51d44d886e31c3a2763aea6d351160770f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:16:20 +0200 Subject: [PATCH 126/156] Analysis workflow, remove SHELL setting because make mangles it. --- .github/workflows/analysis_ports.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 39c187cd2..a32344089 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -293,17 +293,17 @@ jobs: ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup shell from space in pathname mv Makefile Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < Makefile.orig > Makefile + sed -e 's?^SHELL =.*$??' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < lib/Makefile.orig > lib/Makefile + sed -e 's?^SHELL =.*$??' < lib/Makefile.orig > lib/Makefile mv doc/Makefile doc/Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < doc/Makefile.orig > doc/Makefile + sed -e 's?^SHELL =.*$??' < doc/Makefile.orig > doc/Makefile mv examples/Makefile examples/Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < examples/Makefile.orig > examples/Makefile + sed -e 's?^SHELL =.*$??' < examples/Makefile.orig > examples/Makefile mv tests/Makefile tests/Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < tests/Makefile.orig > tests/Makefile + sed -e 's?^SHELL =.*$??' < tests/Makefile.orig > tests/Makefile mv xmlwf/Makefile xmlwf/Makefile.orig - sed -e 's?C:/Program Files/Git/usr/bin/sh.exe?/usr/bin/sh?g' < xmlwf/Makefile.orig > xmlwf/Makefile + sed -e 's?^SHELL =.*$??' < xmlwf/Makefile.orig > xmlwf/Makefile echo "make" make echo "make install" From b4c0988cb9a7bb3056c9ce87a6f7fd3b63e09e5b Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:23:12 +0200 Subject: [PATCH 127/156] Analysis workflow, set MAKESHELL. --- .github/workflows/analysis_ports.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index a32344089..68e09ffef 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -304,6 +304,7 @@ jobs: sed -e 's?^SHELL =.*$??' < tests/Makefile.orig > tests/Makefile mv xmlwf/Makefile xmlwf/Makefile.orig sed -e 's?^SHELL =.*$??' < xmlwf/Makefile.orig > xmlwf/Makefile + export MAKESHELL="/bin/sh" echo "make" make echo "make install" From abc82f5d876b8f5eec803a2a0cfb88336d4f9b51 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:26:16 +0200 Subject: [PATCH 128/156] Analysis workflow, echo wrong directories. --- .github/workflows/analysis_ports.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 68e09ffef..4e2c6c4d1 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -292,6 +292,10 @@ jobs: echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup shell from space in pathname + grep 'SHELL =' Makefile | cat + grep 'Files' Makefile | cat + grep 'SHELL =' lib/Makefile | cat + grep 'Files' lib/Makefile | cat mv Makefile Makefile.orig sed -e 's?^SHELL =.*$??' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig From a383416f80a91f87adcfba4f01d112dc078b05e5 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:29:41 +0200 Subject: [PATCH 129/156] Analysis workflow, fixup with type. --- .github/workflows/analysis_ports.yml | 31 +++++++++++++--------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 4e2c6c4d1..5ef512c0d 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,26 +289,23 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + echo "./configure SHELL=/usr/bin/bash.exe CONFIG_SHELL=/usr/bin/bash.exe --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup shell from space in pathname grep 'SHELL =' Makefile | cat - grep 'Files' Makefile | cat - grep 'SHELL =' lib/Makefile | cat - grep 'Files' lib/Makefile | cat - mv Makefile Makefile.orig - sed -e 's?^SHELL =.*$??' < Makefile.orig > Makefile - mv lib/Makefile lib/Makefile.orig - sed -e 's?^SHELL =.*$??' < lib/Makefile.orig > lib/Makefile - mv doc/Makefile doc/Makefile.orig - sed -e 's?^SHELL =.*$??' < doc/Makefile.orig > doc/Makefile - mv examples/Makefile examples/Makefile.orig - sed -e 's?^SHELL =.*$??' < examples/Makefile.orig > examples/Makefile - mv tests/Makefile tests/Makefile.orig - sed -e 's?^SHELL =.*$??' < tests/Makefile.orig > tests/Makefile - mv xmlwf/Makefile xmlwf/Makefile.orig - sed -e 's?^SHELL =.*$??' < xmlwf/Makefile.orig > xmlwf/Makefile - export MAKESHELL="/bin/sh" + #mv Makefile Makefile.orig + #sed -e 's?^SHELL =.*$??' < Makefile.orig > Makefile + #mv lib/Makefile lib/Makefile.orig + #sed -e 's?^SHELL =.*$??' < lib/Makefile.orig > lib/Makefile + #mv doc/Makefile doc/Makefile.orig + #sed -e 's?^SHELL =.*$??' < doc/Makefile.orig > doc/Makefile + #mv examples/Makefile examples/Makefile.orig + #sed -e 's?^SHELL =.*$??' < examples/Makefile.orig > examples/Makefile + #mv tests/Makefile tests/Makefile.orig + #sed -e 's?^SHELL =.*$??' < tests/Makefile.orig > tests/Makefile + #mv xmlwf/Makefile xmlwf/Makefile.orig + #sed -e 's?^SHELL =.*$??' < xmlwf/Makefile.orig > xmlwf/Makefile + #export MAKESHELL="/bin/sh" echo "make" make echo "make install" From b468f708cf6363ec3327a92c7aab583c45f48298 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:33:39 +0200 Subject: [PATCH 130/156] Analysis workflow, fixup shell. --- .github/workflows/analysis_ports.yml | 29 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5ef512c0d..307187b16 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -289,23 +289,22 @@ jobs: curl -L -k -s -S -o expat-2.2.10.tar.gz https://github.com/libexpat/libexpat/releases/download/R_2_2_10/expat-2.2.10.tar.gz tar xzf expat-2.2.10.tar.gz cd expat-2.2.10 - echo "./configure SHELL=/usr/bin/bash.exe CONFIG_SHELL=/usr/bin/bash.exe --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" + echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" - # fixup shell from space in pathname + # fixup SHELL is treated specially, but SHELZZ is not by make. grep 'SHELL =' Makefile | cat - #mv Makefile Makefile.orig - #sed -e 's?^SHELL =.*$??' < Makefile.orig > Makefile - #mv lib/Makefile lib/Makefile.orig - #sed -e 's?^SHELL =.*$??' < lib/Makefile.orig > lib/Makefile - #mv doc/Makefile doc/Makefile.orig - #sed -e 's?^SHELL =.*$??' < doc/Makefile.orig > doc/Makefile - #mv examples/Makefile examples/Makefile.orig - #sed -e 's?^SHELL =.*$??' < examples/Makefile.orig > examples/Makefile - #mv tests/Makefile tests/Makefile.orig - #sed -e 's?^SHELL =.*$??' < tests/Makefile.orig > tests/Makefile - #mv xmlwf/Makefile xmlwf/Makefile.orig - #sed -e 's?^SHELL =.*$??' < xmlwf/Makefile.orig > xmlwf/Makefile - #export MAKESHELL="/bin/sh" + mv Makefile Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < Makefile.orig > Makefile + mv lib/Makefile lib/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < lib/Makefile.orig > lib/Makefile + mv doc/Makefile doc/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < doc/Makefile.orig > doc/Makefile + mv examples/Makefile examples/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < examples/Makefile.orig > examples/Makefile + mv tests/Makefile tests/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < tests/Makefile.orig > tests/Makefile + mv xmlwf/Makefile xmlwf/Makefile.orig + sed -e 's/SHELL/SHELLZZ/g' < xmlwf/Makefile.orig > xmlwf/Makefile echo "make" make echo "make install" From 26cdcc899a597b168388087c9767d9fbaeb81a5f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:37:33 +0200 Subject: [PATCH 131/156] Analysis workflow, enable ssl compile. --- .github/workflows/analysis_ports.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 307187b16..caf6cf63f 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -274,7 +274,7 @@ jobs: # make the libs only, build faster echo "make build_libs" #make - ###make build_libs + make build_libs mv Makefile Makefile.orig # fixup \\ in the installtop to /. echo "fixup INSTALLTOP" @@ -282,7 +282,7 @@ jobs: # install the includes and libs only, build faster echo "make install_dev" #make install_sw - ###make install_dev + make install_dev cd .. mkdir expat echo "curl expat" @@ -292,7 +292,6 @@ jobs: echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup SHELL is treated specially, but SHELZZ is not by make. - grep 'SHELL =' Makefile | cat mv Makefile Makefile.orig sed -e 's/SHELL/SHELLZZ/g' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig From db5bb6270b3a49605c79210c2295193b945af347 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 21:55:46 +0200 Subject: [PATCH 132/156] Fixup unit auth test for windows port. --- testcode/unitauth.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/testcode/unitauth.c b/testcode/unitauth.c index 184573ab6..d193526b8 100644 --- a/testcode/unitauth.c +++ b/testcode/unitauth.c @@ -468,8 +468,13 @@ tmpfilecleanup(void) int i; char buf[256]; for(i=0; i Date: Thu, 24 Jun 2021 22:11:42 +0200 Subject: [PATCH 133/156] Fixup ctime test. --- testcode/replay.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testcode/replay.c b/testcode/replay.c index 84ce50441..cbd22f9c7 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -1000,6 +1000,7 @@ void testbound_selftest(void) tb_assert( v && strcmp(v, "1ww2ww3") == 0); free(v); +#ifndef USE_WINSOCK v = macro_process(store, NULL, "it is ${ctime 123456}"); tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); @@ -1013,6 +1014,7 @@ void testbound_selftest(void) v = macro_process(store, NULL, "it is ${ctime $t1}"); tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); +#endif /* WINSOCK */ r = macro_assign(store, "x", "1"); tb_assert(r); From 56733f1ba0c21dc451a4047bfe75927ee4ff8d69 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 22:28:07 +0200 Subject: [PATCH 134/156] Analysis workflow, output testbound results. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index caf6cf63f..5dafcfb7d 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -314,7 +314,7 @@ jobs: echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make - make test + make test || ./testbound.exe -p testdata/acl.rpl -o -vvvv - name: test_android if: ${{ matrix.test_android == 'yes' }} env: From e24c78efd64fbcbbd362756a0d54b0d610327c02 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 24 Jun 2021 22:57:12 +0200 Subject: [PATCH 135/156] Analysis workflow, remove debug output, strip more whitespace off ADDRESS lines in testbound range. --- .github/workflows/analysis_ports.yml | 84 +--------------------------- testcode/replay.c | 3 +- 2 files changed, 2 insertions(+), 85 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5dafcfb7d..01169c90a 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,81 +170,6 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | - echo 'c:' - ls -l 'c:\' || echo nevermind - echo 'Program Files' - ls -l 'c:\Program Files' || echo nevermind - echo 'Program Files (x86)' - ls -l 'c:\Program Files (x86)' || echo nevermind - echo '/c/Program Files/OpenSSL' - ls -l '/c/Program Files/OpenSSL' || echo nevermind - echo '/' - ls -l '/' || echo nevermind - echo '/mingw64' - ls -l '/mingw64' || echo nevermind - echo '/mingw64/bin' - ls -l '/mingw64/bin' || echo nevermind - echo '/c/Users' - ls -l '/c/Users' || echo nevermind - echo '/mingw64/ssl' - ls -l '/mingw64/ssl' || echo nevermind - echo '/c/ProgramData/Chocolatey' - ls -l '/c/ProgramData/Chocolatey' || echo nevermind - echo '/c/ProgramData/Chocolatey/tools' - ls -l '/c/ProgramData/Chocolatey/tools' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib' - ls -l '/c/ProgramData/Chocolatey/lib' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' - ls -l '/c/ProgramData/Chocolatey/lib/OpenSSL.Light' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/OpenSSL.Light/tools' - ls -l '/c/ProgramData/Chocolatey/lib/OpenSSL.Light/tools' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw' - ls -l '/c/ProgramData/Chocolatey/lib/mingw' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw/tools' - ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install' - ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' - ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/bin' - ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/bin' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/include' - ls -l '/c/ProgramData/Chocolatey/lib/mingw/tools/install/mingw64/include' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/rtools' - ls -l '/c/ProgramData/Chocolatey/lib/rtools' || echo nevermind - echo '/c/ProgramData/Chocolatey/lib/rtools/tools' - ls -l '/c/ProgramData/Chocolatey/lib/rtools/tools' || echo nevermind - echo '/c/Users/Default' - ls -l '/c/Users/Default' || echo nevermind - echo '/usr' - ls -l '/usr' || echo nevermind - echo '/usr/lib' - ls -l '/usr/lib' || echo nevermind - echo '/usr/share' - ls -l '/usr/share' || echo nevermind - echo '/c/Strawberry/perl' - ls -l '/c/Strawberry/perl' || echo nevermind - echo '/c/Strawberry/perl/bin' - ls -l '/c/Strawberry/perl/bin' || echo nevermind - echo '/c/Strawberry/perl/lib' - ls -l '/c/Strawberry/perl/lib' || echo nevermind - echo '/c/Strawberry/perl/site' - ls -l '/c/Strawberry/perl/site' || echo nevermind - echo '/c/Strawberry/perl/site/lib' - ls -l '/c/Strawberry/perl/site/lib' || echo nevermind - echo '/usr/lib/perl5' - ls -l '/usr/lib/perl5' || echo nevermind - echo '/usr/share/perl5' - ls -l '/usr/share/perl5' || echo nevermind - echo '/usr/share/perl5/vendor_perl' - ls -l '/usr/share/perl5/vendor_perl' || echo nevermind - echo '/usr/share/perl5/vendor_perl/Pod' - ls -l '/usr/share/perl5/vendor_perl/Pod' || echo nevermind - echo '/c/Program Files/Common Files' - ls -l '/c/Program Files/Common Files' || echo nevermind - echo '/c/Program Files/Common Files/SSL' - ls -l '/c/Program Files/Common Files/SSL' || echo nevermind - echo PATH="$PATH" export unboundpath=`pwd` echo unboundpath=${unboundpath} cd .. @@ -253,19 +178,12 @@ jobs: #echo "curl cpanm" #curl -L -k -s -S -o cpanm https://cpanmin.us/ #echo "perl cpanm Pod::Usage" - #perl cpanm Pod::Usage || echo whatever + #perl cpanm Pod::Usage mkdir openssl echo "curl openssl" curl -L -k -s -S -o openssl-1.1.1j.tar.gz https://www.openssl.org/source/openssl-1.1.1j.tar.gz tar xzf openssl-1.1.1j.tar.gz cd openssl-1.1.1j - #export PERL5LIB="/c/Strawberry/perl/lib" - #export PERL5LIB="/usr/share/perl5/lib:/usr/share/perl5/vendor:/usr/share/perl5/site" - #echo PERL5LIB="$PERL5LIB" - #echo "cpan" - #cpan POD::Usage - #echo "perl MCPAN" - #perl -MCPAN -e "CPAN::Shell->force(qw(install POD::Usage));" # remove pod::Usage because we do not need -help or -man output # from the Configure script sed -e 's/use Pod::Usage//' < Configure > Configure.fix diff --git a/testcode/replay.c b/testcode/replay.c index cbd22f9c7..18df4b7e7 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -375,8 +375,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, if(parse_keyword(&remain, "ADDRESS")) { while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain) > 0) /* remove \n */ - remain[strlen(remain)-1] = 0; + strip_end_white(remain); if(!extstrtoaddr(remain, &mom->addr, &mom->addrlen)) { log_err("line %d: could not parse ADDRESS: %s", pstate->lineno, remain); From 658db66c3f9d3384298285c49878e021511d0762 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 08:45:03 +0200 Subject: [PATCH 136/156] - Fix up permissions on rpl data file in tests. --- doc/Changelog | 3 +++ testdata/root_key_sentinel.rpl | 0 2 files changed, 3 insertions(+) mode change 100755 => 100644 testdata/root_key_sentinel.rpl diff --git a/doc/Changelog b/doc/Changelog index bbb2c0ed4..ba8402b2e 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +25 June 2021: Wouter + - Fix up permissions on rpl data file in tests. + 24 June 2021: Wouter - Add analyzer and port compile github workflow. diff --git a/testdata/root_key_sentinel.rpl b/testdata/root_key_sentinel.rpl old mode 100755 new mode 100644 From 7d16b2c26899467cc3a832cd8031d93314379254 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 08:49:30 +0200 Subject: [PATCH 137/156] Analysis workflow, output failure cases. --- .github/workflows/analysis_ports.yml | 6 +++++- testcode/replay.c | 22 +++++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 01169c90a..9cb8c9284 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -232,7 +232,11 @@ jobs: echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make - make test || ./testbound.exe -p testdata/acl.rpl -o -vvvv + # specific test output + make testbound; ./testbound -s + # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv + make testbound; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv + make test - name: test_android if: ${{ matrix.test_android == 'yes' }} env: diff --git a/testcode/replay.c b/testcode/replay.c index 18df4b7e7..1cdb9d3f6 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -999,21 +999,33 @@ void testbound_selftest(void) tb_assert( v && strcmp(v, "1ww2ww3") == 0); free(v); -#ifndef USE_WINSOCK +//#ifndef USE_WINSOCK + printf("start of ctime tests\n"); v = macro_process(store, NULL, "it is ${ctime 123456}"); - tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + printf("test for ctime 123456\n"); + printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); + printf("got '%s'\n", v); + //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); r = macro_assign(store, "t1", "123456"); tb_assert(r); v = macro_process(store, NULL, "it is ${ctime ${$t1}}"); - tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + printf("test2 for ctime 123456\n"); + printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); + printf("got '%s'\n", v); + //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); v = macro_process(store, NULL, "it is ${ctime $t1}"); - tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + printf("test3 for ctime 123456\n"); + printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); + printf("got '%s'\n", v); + //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); -#endif /* WINSOCK */ + printf("end of ctime tests\n"); +//#endif +/* WINSOCK */ r = macro_assign(store, "x", "1"); tb_assert(r); From 1b66c5f6e43f7c679b5f82f77f9ed4ffde09cf07 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 09:16:13 +0200 Subject: [PATCH 138/156] Analysis workflow, fix make target. --- .github/workflows/analysis_ports.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 9cb8c9284..1a66b200f 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -233,9 +233,9 @@ jobs: ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make # specific test output - make testbound; ./testbound -s + make testbound.exe; ./testbound.exe -s # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv - make testbound; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv + make testbound.exe; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv make test - name: test_android if: ${{ matrix.test_android == 'yes' }} From 358bc0d8bd8a417b74b6bb52815a2391b98e232e Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 09:43:02 +0200 Subject: [PATCH 139/156] Analysis workflow, make debug output. --- .github/workflows/analysis_ports.yml | 1 + compat/ctime_r.c | 4 +++- testcode/replay.c | 9 +++------ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 1a66b200f..5b39c7c28 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -233,6 +233,7 @@ jobs: ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make # specific test output + if echo "i686-mingw64" | grep -i -e linux -e dragonfly >/dev/null; then echo yes; else echo no; fi make testbound.exe; ./testbound.exe -s # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv make testbound.exe; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv diff --git a/compat/ctime_r.c b/compat/ctime_r.c index 87c2609a8..b6bc12208 100644 --- a/compat/ctime_r.c +++ b/compat/ctime_r.c @@ -33,10 +33,12 @@ char *ctime_r(const time_t *timep, char *buf) lock_basic_lock(&ctime_lock); result = ctime(timep); if(buf && result) { + printf("ctime_r called result '%s'\n", result); if(strlen(result) > 10 && result[7]==' ' && result[8]=='0') result[8]=' '; /* fix error in windows ctime */ strcpy(buf, result); + printf("ctime_r called fixresult '%s'\n", buf); } lock_basic_unlock(&ctime_lock); - return result; + return buf; } diff --git a/testcode/replay.c b/testcode/replay.c index 1cdb9d3f6..1077a6d08 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -318,8 +318,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, mom->evt_type = repevt_autotrust_check; while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain)>0 && remain[strlen(remain)-1]=='\n') - remain[strlen(remain)-1] = 0; + strip_end_white(remain); mom->autotrust_id = strdup(remain); if(!mom->autotrust_id) fatal_exit("out of memory"); read_file_content(in, &pstate->lineno, mom); @@ -327,8 +326,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, mom->evt_type = repevt_tempfile_check; while(isspace((unsigned char)*remain)) remain++; - if(strlen(remain)>0 && remain[strlen(remain)-1]=='\n') - remain[strlen(remain)-1] = 0; + strip_end_white(remain); mom->autotrust_id = strdup(remain); if(!mom->autotrust_id) fatal_exit("out of memory"); read_file_content(in, &pstate->lineno, mom); @@ -359,8 +357,7 @@ replay_moment_read(char* remain, FILE* in, const char* name, m++; if(!extstrtoaddr(s, &mom->addr, &mom->addrlen)) fatal_exit("bad infra_rtt address %s", s); - if(strlen(m)>0 && m[strlen(m)-1]=='\n') - m[strlen(m)-1] = 0; + strip_end_white(m); mom->variable = strdup(remain); mom->string = strdup(m); if(!mom->string) fatal_exit("out of memory"); From 6ed49bf45f5f16b0baeb9a3005d9cb8af9e51497 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 10:12:40 +0200 Subject: [PATCH 140/156] Analysis workflow, debug output. --- .github/workflows/analysis_ports.yml | 2 ++ compat/ctime_r.c | 1 + testcode/fake_event.c | 8 ++++---- testcode/replay.c | 9 ++++----- testcode/replay.h | 3 +++ testcode/testbound.c | 8 ++++---- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 5b39c7c28..0cd8bd412 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -234,6 +234,8 @@ jobs: make # specific test output if echo "i686-mingw64" | grep -i -e linux -e dragonfly >/dev/null; then echo yes; else echo no; fi + if echo "i686-mingw64" | grep -i -e linux >/dev/null; then echo yeslinux; else echo nolinux; fi + if echo "i686-mingw64" | grep -i -e dragonfly >/dev/null; then echo yesdragonfly; else echo nodragonfly; fi make testbound.exe; ./testbound.exe -s # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv make testbound.exe; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv diff --git a/compat/ctime_r.c b/compat/ctime_r.c index b6bc12208..d6133cb02 100644 --- a/compat/ctime_r.c +++ b/compat/ctime_r.c @@ -23,6 +23,7 @@ ctime_r_cleanup(void) char *ctime_r(const time_t *timep, char *buf) { char* result; + printf("unbound_ctime_r called\n"); if(!ctime_r_init) { /* still small race where this init can be done twice, * which is mostly harmless */ diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 901880ce6..a19a1ec0d 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -599,7 +599,7 @@ autotrust_check(struct replay_runtime* runtime, struct replay_moment* mom) log_err("should be: %s", p->str); fatal_exit("autotrust_check failed"); } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); expanded = macro_process(runtime->vars, runtime, p->str); if(!expanded) fatal_exit("could not expand macro line %d", lineno); @@ -652,7 +652,7 @@ tempfile_check(struct replay_runtime* runtime, struct replay_moment* mom) log_err("should be: %s", p->str); fatal_exit("tempfile_check failed"); } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); expanded = macro_process(runtime->vars, runtime, p->str); if(!expanded) fatal_exit("could not expand macro line %d", lineno); @@ -1717,7 +1717,7 @@ struct comm_point* outnet_comm_point_for_tcp(struct outside_network* outnet, addr_to_str((struct sockaddr_storage*)to_addr, to_addrlen, addrbuf, sizeof(addrbuf)); if(verbosity >= VERB_ALGO) { - if(buf[0] != 0) buf[strlen(buf)-1] = 0; /* del newline*/ + strip_end_white(buf); log_info("tcp to %s: %s", addrbuf, buf); } log_assert(sldns_buffer_limit(query)-LDNS_HEADER_SIZE >= 2); @@ -1807,7 +1807,7 @@ int comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, addr_to_str((struct sockaddr_storage*)addr, addrlen, addrbuf, sizeof(addrbuf)); if(verbosity >= VERB_ALGO) { - if(buf[0] != 0) buf[strlen(buf)-1] = 0; /* del newline*/ + strip_end_white(buf); log_info("udp to %s: %s", addrbuf, buf); } log_assert(sldns_buffer_limit(packet)-LDNS_HEADER_SIZE >= 2); diff --git a/testcode/replay.c b/testcode/replay.c index 1077a6d08..69f1544db 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -124,8 +124,7 @@ replay_range_delete(struct replay_range* rng) free(rng); } -/** strip whitespace from end of string */ -static void +void strip_end_white(char* p) { size_t i; @@ -227,7 +226,7 @@ read_file_content(FILE* in, int* lineno, struct replay_moment* mom) if(strncmp(line, "FILE_END", 8) == 0) { return; } - if(line[0]) line[strlen(line)-1] = 0; /* remove newline */ + strip_end_white(line); if(!cfg_strlist_insert(last, strdup(line))) fatal_exit("malloc failure"); last = &( (*last)->next ); @@ -249,7 +248,7 @@ read_assign_step(char* remain, struct replay_moment* mom) if(eq != '=') fatal_exit("no '=' in assign: %s", remain); remain += skip; - if(remain[0]) remain[strlen(remain)-1]=0; /* remove newline */ + strip_end_white(remain); mom->string = strdup(remain); if(!mom->variable || !mom->string) fatal_exit("out of memory"); @@ -689,7 +688,7 @@ do_macro_ctime(char* arg) return NULL; } ctime_r(&tt, buf); - if(buf[0]) buf[strlen(buf)-1]=0; /* remove trailing newline */ + strip_end_white(buf); return strdup(buf); } diff --git a/testcode/replay.h b/testcode/replay.h index 5132cdacb..0271dff03 100644 --- a/testcode/replay.h +++ b/testcode/replay.h @@ -425,6 +425,9 @@ int replay_var_compare(const void* a, const void* b); /** get oldest enabled fake timer */ struct fake_timer* replay_get_oldest_timer(struct replay_runtime* runtime); +/** strip whitespace from end of string */ +void strip_end_white(char* p); + /** * Create variable storage * @return new or NULL on failure. diff --git a/testcode/testbound.c b/testcode/testbound.c index a7cf27a73..c92900142 100644 --- a/testcode/testbound.c +++ b/testcode/testbound.c @@ -168,7 +168,7 @@ spool_temp_file_name(int* lineno, FILE* cfg, char* id) id++; if(*id == '\0') fatal_exit("TEMPFILE_NAME must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_temp_", id, line, sizeof(line)); fprintf(cfg, "\"%s\"\n", line); } @@ -185,7 +185,7 @@ spool_temp_file(FILE* in, int* lineno, char* id) id++; if(*id == '\0') fatal_exit("TEMPFILE_CONTENTS must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_temp_", id, line, sizeof(line)); /* open file and spool to it */ spool = fopen(line, "w"); @@ -205,7 +205,7 @@ spool_temp_file(FILE* in, int* lineno, char* id) char* tid = parse+17; while(isspace((unsigned char)*tid)) tid++; - tid[strlen(tid)-1]=0; /* remove newline */ + strip_end_white(tid); fake_temp_file("_temp_", tid, l2, sizeof(l2)); snprintf(line, sizeof(line), "$INCLUDE %s\n", l2); } @@ -230,7 +230,7 @@ spool_auto_file(FILE* in, int* lineno, FILE* cfg, char* id) id++; if(*id == '\0') fatal_exit("AUTROTRUST_FILE must have id, line %d", *lineno); - id[strlen(id)-1]=0; /* remove newline */ + strip_end_white(id); fake_temp_file("_auto_", id, line, sizeof(line)); /* add option for the file */ fprintf(cfg, "server: auto-trust-anchor-file: \"%s\"\n", line); From 57e3d5da611ab99bcb9736226ed4aa8233b04936 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 10:37:47 +0200 Subject: [PATCH 141/156] - Fix configure grep for reuseport default for failure. --- configure | 7 +++++-- configure.ac | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 170386901..2f75ef782 100755 --- a/configure +++ b/configure @@ -4206,7 +4206,7 @@ esac # are we on MinGW? if uname -s 2>&1 | grep MINGW >/dev/null; then on_mingw="yes" else - if echo $host $target | grep mingw >/dev/null; then on_mingw="yes" + if echo $host | grep mingw >/dev/null; then on_mingw="yes" else on_mingw="no"; fi fi @@ -16195,7 +16195,10 @@ done # check if we can use SO_REUSEPORT -if echo "$host" | $GREP -i -e linux -e dragonfly >/dev/null; then +reuseport_default=0 +if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi +if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi +if test "$reuseport_default" = 1; then $as_echo "#define REUSEPORT_DEFAULT 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index d0e55194b..8bf9b6b15 100644 --- a/configure.ac +++ b/configure.ac @@ -490,7 +490,10 @@ ACX_MKDIR_ONE_ARG AC_CHECK_FUNCS([strptime],[AC_CHECK_STRPTIME_WORKS],[AC_LIBOBJ([strptime])]) # check if we can use SO_REUSEPORT -if echo "$host" | $GREP -i -e linux -e dragonfly >/dev/null; then +reuseport_default=0 +if echo "$host" | $GREP -i -e linux >/dev/null; then reuseport_default=1; fi +if echo "$host" | $GREP -i -e dragonfly >/dev/null; then reuseport_default=1; fi +if test "$reuseport_default" = 1; then AC_DEFINE(REUSEPORT_DEFAULT, 1, [if REUSEPORT is enabled by default]) else AC_DEFINE(REUSEPORT_DEFAULT, 0, [if REUSEPORT is enabled by default]) From 62ba44102421df82df392bd7c9e21995b1423493 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 10:38:09 +0200 Subject: [PATCH 142/156] Analysis workflow, output debug. --- .github/workflows/analysis_ports.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 0cd8bd412..039a387f2 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -238,7 +238,7 @@ jobs: if echo "i686-mingw64" | grep -i -e dragonfly >/dev/null; then echo yesdragonfly; else echo nodragonfly; fi make testbound.exe; ./testbound.exe -s # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv - make testbound.exe; ./testbound.exe -p testdata/auth_nsec3_ent.rpl -o -vvvv + make testbound.exe; ./testbound.exe -p testdata/auth_xfr.rpl -o -vvvv make test - name: test_android if: ${{ matrix.test_android == 'yes' }} From ba846a925a9c268a5eb32828d08611a3261dd3d4 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 11:05:57 +0200 Subject: [PATCH 143/156] - Fix configure does not require pkg-config if not needed. --- configure | 3 +++ configure.ac | 3 +++ doc/Changelog | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/configure b/configure index 2f75ef782..3ed5dadda 100755 --- a/configure +++ b/configure @@ -14616,6 +14616,8 @@ CC=$lt_save_CC +# pkg-config is only needed for these options, do not require it otherwise +if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then @@ -14736,6 +14738,7 @@ $as_echo "no" >&6; } PKG_CONFIG="" fi fi +fi # Checks for header files. for ac_header in stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h diff --git a/configure.ac b/configure.ac index 8bf9b6b15..5ffbe6834 100644 --- a/configure.ac +++ b/configure.ac @@ -385,7 +385,10 @@ AC_CHECK_PROG(doxygen, doxygen, doxygen) AC_CHECK_TOOL(STRIP, strip) ACX_LIBTOOL_C_ONLY +# pkg-config is only needed for these options, do not require it otherwise +if test "$enable_systemd" = "yes" -o "$with_pyunbound" = "yes" -o "$with_pythonmod" = "yes"; then PKG_PROG_PKG_CONFIG +fi # Checks for header files. AC_CHECK_HEADERS([stdarg.h stdbool.h netinet/in.h netinet/tcp.h sys/param.h sys/select.h sys/socket.h sys/un.h sys/uio.h sys/resource.h arpa/inet.h syslog.h netdb.h sys/wait.h pwd.h glob.h grp.h login_cap.h winsock2.h ws2tcpip.h endian.h sys/endian.h libkern/OSByteOrder.h sys/ipc.h sys/shm.h ifaddrs.h],,, [AC_INCLUDES_DEFAULT]) diff --git a/doc/Changelog b/doc/Changelog index ba8402b2e..5f14d9683 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,9 @@ 25 June 2021: Wouter - Fix up permissions on rpl data file in tests. + - Fix testbound newline treatment in moment_read and tempfile write. + - Fix configure grep for reuseport default for failure. + - Fix compat ctime_r return value + - Fix configure does not require pkg-config if not needed. 24 June 2021: Wouter - Add analyzer and port compile github workflow. From 7a5e869548219e184cb77d6e63c5501fb16b8f54 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 11:18:12 +0200 Subject: [PATCH 144/156] Analysis workflow, remove debug output. --- .github/workflows/analysis_ports.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 039a387f2..0fa84cf01 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -233,9 +233,6 @@ jobs: ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" make # specific test output - if echo "i686-mingw64" | grep -i -e linux -e dragonfly >/dev/null; then echo yes; else echo no; fi - if echo "i686-mingw64" | grep -i -e linux >/dev/null; then echo yeslinux; else echo nolinux; fi - if echo "i686-mingw64" | grep -i -e dragonfly >/dev/null; then echo yesdragonfly; else echo nodragonfly; fi make testbound.exe; ./testbound.exe -s # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv make testbound.exe; ./testbound.exe -p testdata/auth_xfr.rpl -o -vvvv From cef1c56e883ac44442ad2a7fb6000450de641b8b Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 13:12:22 +0200 Subject: [PATCH 145/156] Analysis workflow, debug output for ctime. --- .github/workflows/analysis_ports.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 0fa84cf01..f4400a9ee 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -231,6 +231,9 @@ jobs: cd unbound echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" + grep -A 60 "checking for ctime_r" config.log | cat + grep CTIME config.h | cat + grep LIBOBJS Makefile | cat make # specific test output make testbound.exe; ./testbound.exe -s From 66e9317edc01d38a77701a5e4852c50d43a1cf14 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 13:37:26 +0200 Subject: [PATCH 146/156] Analysis workflow, test ctime replacement. --- testcode/replay.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testcode/replay.c b/testcode/replay.c index 69f1544db..1dda3d81a 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -687,7 +687,11 @@ do_macro_ctime(char* arg) log_err("macro ctime: expected number, not: %s", arg); return NULL; } +#ifndef HAVE_CTIME_R + unbound_ctime_r(&tt, buf); +#else ctime_r(&tt, buf); +#endif strip_end_white(buf); return strdup(buf); } From e45e73768f3e8b8bb5a0e17ebd39fc988318ccda Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 14:07:11 +0200 Subject: [PATCH 147/156] Analysis workflow, see if defines are causing ctime changes. --- testcode/replay.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/testcode/replay.c b/testcode/replay.c index 1dda3d81a..b5235d7a6 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -51,6 +51,9 @@ #include "testcode/testpkts.h" #include "testcode/fake_event.h" #include "sldns/str2wire.h" +#ifdef ctime_r +#undef ctime_r +#endif /** max length of lines in file */ #define MAX_LINE_LEN 10240 From 770a54600cd6e683abb23c0aaef8f6e5dd13e336 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 14:37:53 +0200 Subject: [PATCH 148/156] Analysis workflow, check for ctime define. --- config.h.in | 3 +++ configure | 1 + configure.ac | 4 ++++ testcode/replay.c | 7 ------- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/config.h.in b/config.h.in index cb27afa4f..385ea3cde 100644 --- a/config.h.in +++ b/config.h.in @@ -1263,6 +1263,9 @@ int memcmp(const void *x, const void *y, size_t n); #ifndef HAVE_CTIME_R +#ifdef ctime_r +#undef ctime_r +#endif #define ctime_r unbound_ctime_r char *ctime_r(const time_t *timep, char *buf); #endif diff --git a/configure b/configure index 3ed5dadda..c86635be4 100755 --- a/configure +++ b/configure @@ -21048,6 +21048,7 @@ esac fi +#LIBOBJS="$LIBOBJS ctime_r.$ac_objext" ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep" if test "x$ac_cv_func_strsep" = xyes; then : $as_echo "#define HAVE_STRSEP 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index 5ffbe6834..1d22e3633 100644 --- a/configure.ac +++ b/configure.ac @@ -1717,6 +1717,7 @@ fi LIBOBJ_WITHOUT_CTIME="$LIBOBJS" AC_SUBST(LIBOBJ_WITHOUT_CTIME) AC_REPLACE_FUNCS(ctime_r) +#LIBOBJS="$LIBOBJS ctime_r.$ac_objext" AC_REPLACE_FUNCS(strsep) AC_ARG_ENABLE(allsymbols, AS_HELP_STRING([--enable-allsymbols],[export all symbols from libunbound and link binaries to it, smaller install size but libunbound export table is polluted by internal symbols])) @@ -2044,6 +2045,9 @@ AHX_MEMCMP_BROKEN(unbound) [ #ifndef HAVE_CTIME_R +#ifdef ctime_r +#undef ctime_r +#endif #define ctime_r unbound_ctime_r char *ctime_r(const time_t *timep, char *buf); #endif diff --git a/testcode/replay.c b/testcode/replay.c index b5235d7a6..69f1544db 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -51,9 +51,6 @@ #include "testcode/testpkts.h" #include "testcode/fake_event.h" #include "sldns/str2wire.h" -#ifdef ctime_r -#undef ctime_r -#endif /** max length of lines in file */ #define MAX_LINE_LEN 10240 @@ -690,11 +687,7 @@ do_macro_ctime(char* arg) log_err("macro ctime: expected number, not: %s", arg); return NULL; } -#ifndef HAVE_CTIME_R - unbound_ctime_r(&tt, buf); -#else ctime_r(&tt, buf); -#endif strip_end_white(buf); return strdup(buf); } From e4e0eaa63ee44446f060935d5e4b915f4dc43ea6 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 15:11:10 +0200 Subject: [PATCH 149/156] Analysis workflow, fix ctime formatting for autotrust and testbound. --- compat/ctime_r.c | 3 --- config.h.in | 3 --- configure | 1 - configure.ac | 4 ---- testcode/replay.c | 4 ++++ validator/autotrust.c | 27 +++++++++++++++++++-------- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/compat/ctime_r.c b/compat/ctime_r.c index d6133cb02..9f2bf15bc 100644 --- a/compat/ctime_r.c +++ b/compat/ctime_r.c @@ -23,7 +23,6 @@ ctime_r_cleanup(void) char *ctime_r(const time_t *timep, char *buf) { char* result; - printf("unbound_ctime_r called\n"); if(!ctime_r_init) { /* still small race where this init can be done twice, * which is mostly harmless */ @@ -34,11 +33,9 @@ char *ctime_r(const time_t *timep, char *buf) lock_basic_lock(&ctime_lock); result = ctime(timep); if(buf && result) { - printf("ctime_r called result '%s'\n", result); if(strlen(result) > 10 && result[7]==' ' && result[8]=='0') result[8]=' '; /* fix error in windows ctime */ strcpy(buf, result); - printf("ctime_r called fixresult '%s'\n", buf); } lock_basic_unlock(&ctime_lock); return buf; diff --git a/config.h.in b/config.h.in index 385ea3cde..cb27afa4f 100644 --- a/config.h.in +++ b/config.h.in @@ -1263,9 +1263,6 @@ int memcmp(const void *x, const void *y, size_t n); #ifndef HAVE_CTIME_R -#ifdef ctime_r -#undef ctime_r -#endif #define ctime_r unbound_ctime_r char *ctime_r(const time_t *timep, char *buf); #endif diff --git a/configure b/configure index c86635be4..3ed5dadda 100755 --- a/configure +++ b/configure @@ -21048,7 +21048,6 @@ esac fi -#LIBOBJS="$LIBOBJS ctime_r.$ac_objext" ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep" if test "x$ac_cv_func_strsep" = xyes; then : $as_echo "#define HAVE_STRSEP 1" >>confdefs.h diff --git a/configure.ac b/configure.ac index 1d22e3633..5ffbe6834 100644 --- a/configure.ac +++ b/configure.ac @@ -1717,7 +1717,6 @@ fi LIBOBJ_WITHOUT_CTIME="$LIBOBJS" AC_SUBST(LIBOBJ_WITHOUT_CTIME) AC_REPLACE_FUNCS(ctime_r) -#LIBOBJS="$LIBOBJS ctime_r.$ac_objext" AC_REPLACE_FUNCS(strsep) AC_ARG_ENABLE(allsymbols, AS_HELP_STRING([--enable-allsymbols],[export all symbols from libunbound and link binaries to it, smaller install size but libunbound export table is polluted by internal symbols])) @@ -2045,9 +2044,6 @@ AHX_MEMCMP_BROKEN(unbound) [ #ifndef HAVE_CTIME_R -#ifdef ctime_r -#undef ctime_r -#endif #define ctime_r unbound_ctime_r char *ctime_r(const time_t *timep, char *buf); #endif diff --git a/testcode/replay.c b/testcode/replay.c index 69f1544db..37221eda3 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -688,6 +688,10 @@ do_macro_ctime(char* arg) return NULL; } ctime_r(&tt, buf); +#ifdef USE_WINSOCK + if(strlen(buf) > 10 && buf[7]==' ' && buf[8]=='0') + buf[8]=' '; /* fix error in windows ctime */ +#endif strip_end_white(buf); return strdup(buf); } diff --git a/validator/autotrust.c b/validator/autotrust.c index adf836754..fe17df2d5 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -1077,6 +1077,17 @@ trustanchor_state2str(autr_state_type s) return " UNKNOWN "; } +/** ctime r for autotrust */ +static char* autr_ctime_r(time_t* t, char* s) +{ + ctime_r(t, s); +#ifdef USE_WINSOCK + if(strlen(s) > 10 && s[7]==' ' && s[8]=='0') + s[8]=' '; /* fix error in windows ctime */ +#endif + return s; +} + /** print ID to file */ static int print_id(FILE* out, char* fname, uint8_t* nm, size_t nmlen, uint16_t dclass) @@ -1123,13 +1134,13 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp) } if(fprintf(out, ";;last_queried: %u ;;%s", (unsigned int)tp->autr->last_queried, - ctime_r(&(tp->autr->last_queried), tmi)) < 0 || + autr_ctime_r(&(tp->autr->last_queried), tmi)) < 0 || fprintf(out, ";;last_success: %u ;;%s", (unsigned int)tp->autr->last_success, - ctime_r(&(tp->autr->last_success), tmi)) < 0 || + autr_ctime_r(&(tp->autr->last_success), tmi)) < 0 || fprintf(out, ";;next_probe_time: %u ;;%s", (unsigned int)tp->autr->next_probe_time, - ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 || + autr_ctime_r(&(tp->autr->next_probe_time), tmi)) < 0 || fprintf(out, ";;query_failed: %d\n", (int)tp->autr->query_failed)<0 || fprintf(out, ";;query_interval: %d\n", (int)tp->autr->query_interval) < 0 || @@ -1160,7 +1171,7 @@ autr_write_contents(FILE* out, char* fn, struct trust_anchor* tp) ";;lastchange=%u ;;%s", str, (int)ta->s, trustanchor_state2str(ta->s), (int)ta->pending_count, (unsigned int)ta->last_change, - ctime_r(&(ta->last_change), tmi)) < 0) { + autr_ctime_r(&(ta->last_change), tmi)) < 0) { log_err("could not write to %s: %s", fn, strerror(errno)); free(str); return 0; @@ -2264,7 +2275,7 @@ autr_debug_print_ta(struct autr_ta* ta) return; } if(str[0]) str[strlen(str)-1]=0; /* remove newline */ - ctime_r(&ta->last_change, buf); + autr_ctime_r(&ta->last_change, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("[%s] %s ;;state:%d ;;pending_count:%d%s%s last:%s", trustanchor_state2str(ta->s), str, ta->s, ta->pending_count, @@ -2291,13 +2302,13 @@ autr_debug_print_tp(struct trust_anchor* tp) log_packed_rrset(NO_VERBOSE, "DNSKEY:", tp->dnskey_rrset); } log_info("file %s", tp->autr->file); - ctime_r(&tp->autr->last_queried, buf); + autr_ctime_r(&tp->autr->last_queried, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("last_queried: %u %s", (unsigned)tp->autr->last_queried, buf); - ctime_r(&tp->autr->last_success, buf); + autr_ctime_r(&tp->autr->last_success, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("last_success: %u %s", (unsigned)tp->autr->last_success, buf); - ctime_r(&tp->autr->next_probe_time, buf); + autr_ctime_r(&tp->autr->next_probe_time, buf); if(buf[0]) buf[strlen(buf)-1]=0; /* remove newline */ log_info("next_probe_time: %u %s", (unsigned)tp->autr->next_probe_time, buf); From 5e81763e530bf42f9c24499ca39670a13e7cb71c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 15:27:51 +0200 Subject: [PATCH 150/156] Analysis workflow, fixup ctime tests. --- testcode/replay.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/testcode/replay.c b/testcode/replay.c index 37221eda3..2487c146f 100644 --- a/testcode/replay.c +++ b/testcode/replay.c @@ -999,33 +999,19 @@ void testbound_selftest(void) tb_assert( v && strcmp(v, "1ww2ww3") == 0); free(v); -//#ifndef USE_WINSOCK - printf("start of ctime tests\n"); v = macro_process(store, NULL, "it is ${ctime 123456}"); - printf("test for ctime 123456\n"); - printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); - printf("got '%s'\n", v); - //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); r = macro_assign(store, "t1", "123456"); tb_assert(r); v = macro_process(store, NULL, "it is ${ctime ${$t1}}"); - printf("test2 for ctime 123456\n"); - printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); - printf("got '%s'\n", v); - //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); v = macro_process(store, NULL, "it is ${ctime $t1}"); - printf("test3 for ctime 123456\n"); - printf("should be 'it is Fri Jan 2 10:17:36 1970'\n"); - printf("got '%s'\n", v); - //tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); + tb_assert( v && strcmp(v, "it is Fri Jan 2 10:17:36 1970") == 0); free(v); - printf("end of ctime tests\n"); -//#endif -/* WINSOCK */ r = macro_assign(store, "x", "1"); tb_assert(r); From 8e5c3f51a2880b8a93219f4a5d605bf9ecc56622 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 15:31:33 +0200 Subject: [PATCH 151/156] - Fix auth zone download on windows to unlink before rename. --- doc/Changelog | 2 ++ services/authzone.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 5f14d9683..f4b1295b2 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,8 @@ - Fix configure grep for reuseport default for failure. - Fix compat ctime_r return value - Fix configure does not require pkg-config if not needed. + - Fix unit test in the ctime_r calls for autotrust and in testbound. + - Fix auth zone download on windows to unlink before rename. 24 June 2021: Wouter - Add analyzer and port compile github workflow. diff --git a/services/authzone.c b/services/authzone.c index 0f9879ce7..c1567aecb 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -5152,6 +5152,9 @@ xfr_write_after_update(struct auth_xfer* xfr, struct module_env* env) lock_rw_unlock(&z->lock); return; } +#ifdef UB_ON_WINDOWS + (void)unlink(zfilename); /* windows does not replace file with rename() */ +#endif if(rename(tmpfile, zfilename) < 0) { log_err("could not rename(%s, %s): %s", tmpfile, zfilename, strerror(errno)); From 9a90254d2f15528a46dc7f4fa833221d2bf53e28 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 16:06:05 +0200 Subject: [PATCH 152/156] Analysis workflow, remove debug output. --- .github/workflows/analysis_ports.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index f4400a9ee..0fa84cf01 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -231,9 +231,6 @@ jobs: cd unbound echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" - grep -A 60 "checking for ctime_r" config.log | cat - grep CTIME config.h | cat - grep LIBOBJS Makefile | cat make # specific test output make testbound.exe; ./testbound.exe -s From 6ac9253c2a45febc2a39034122e20f1923abe578 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 16:34:43 +0200 Subject: [PATCH 153/156] Analysis workflow, remove debug, add desciption echo, remove dll. --- .github/workflows/analysis_ports.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 0fa84cf01..d97bdf70a 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,6 +170,8 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | + #echo commands as we make them. + set -x export unboundpath=`pwd` echo unboundpath=${unboundpath} cd .. @@ -186,6 +188,7 @@ jobs: cd openssl-1.1.1j # remove pod::Usage because we do not need -help or -man output # from the Configure script + echo "Fixup ./Configure by removing use Pod::Usage require" sed -e 's/use Pod::Usage//' < Configure > Configure.fix echo "./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix=\""$prepath/openssl\""" ./Configure.fix no-shared no-asm -DOPENSSL_NO_CAPIENG mingw64 --prefix="$prepath/openssl" @@ -210,6 +213,7 @@ jobs: echo "./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix=\"$prepath/expat\" --exec-prefix=\"$prepath/expat\" --bindir=\"$prepath/expat/bin\" --includedir=\"$prepath/expat/include\" --mandir=\"$prepath/expat/man\" --libdir=\"$prepath/expat/lib\"" ./configure SHELL=/usr/bin/bash CONFIG_SHELL=/usr/bin/bash --prefix="$prepath/expat" --exec-prefix="$prepath/expat" --bindir="$prepath/expat/bin" --includedir="$prepath/expat/include" --mandir="$prepath/expat/man" --libdir="$prepath/expat/lib" # fixup SHELL is treated specially, but SHELZZ is not by make. + echo "Fixup Makefiles by renaming SHELL to SHELLZZ" mv Makefile Makefile.orig sed -e 's/SHELL/SHELLZZ/g' < Makefile.orig > Makefile mv lib/Makefile lib/Makefile.orig @@ -229,13 +233,12 @@ jobs: cd .. echo "unbound" cd unbound - echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\"" - ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" + echo "./configure --enable-debug --enable-static-exe --disable-flto \"--with-ssl=$prepath/openssl\" --with-libexpat=\"$prepath/expat\" --disable-shared" + ./configure --enable-debug --enable-static-exe --disable-flto "--with-ssl=$prepath/openssl" --with-libexpat="$prepath/expat" --disable-shared make # specific test output - make testbound.exe; ./testbound.exe -s - # make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv - make testbound.exe; ./testbound.exe -p testdata/auth_xfr.rpl -o -vvvv + #make testbound.exe; ./testbound.exe -s + #make testbound; ./testbound.exe -p testdata/acl.rpl -o -vvvv make test - name: test_android if: ${{ matrix.test_android == 'yes' }} From 57022af9a41dc15a46fa4b545dcbd5fa40193bb1 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 16:50:21 +0200 Subject: [PATCH 154/156] Analysis workflow, disable -x for bash the output is reordered with respect to the command output. --- .github/workflows/analysis_ports.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index d97bdf70a..15ca5d1de 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -170,8 +170,6 @@ jobs: if: ${{ matrix.test_windows == 'yes' }} shell: bash run: | - #echo commands as we make them. - set -x export unboundpath=`pwd` echo unboundpath=${unboundpath} cd .. From 04e9adc6109a62f527974c7d95310e713db5adac Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 25 Jun 2021 16:54:23 +0200 Subject: [PATCH 155/156] Analysis workflow, enable the matrix of tests, on demand. --- .github/workflows/analysis_ports.yml | 284 +++++++++++++-------------- 1 file changed, 142 insertions(+), 142 deletions(-) diff --git a/.github/workflows/analysis_ports.yml b/.github/workflows/analysis_ports.yml index 15ca5d1de..fbbdd8018 100644 --- a/.github/workflows/analysis_ports.yml +++ b/.github/workflows/analysis_ports.yml @@ -14,148 +14,148 @@ jobs: strategy: matrix: include: -# - name: GCC on Linux -# os: ubuntu-latest -# config: "--enable-debug --disable-flto" -# make_test: "yes" -# - name: Clang-analyzer -# os: ubuntu-latest -# config: "CC=clang --enable-debug --disable-flto --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: libevent -# os: ubuntu-latest -# install_libevent: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: OS X -# os: macos-latest -# install_expat: "yes" -# config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" -# make_test: "yes" -# - name: Clang on OS X -# os: macos-latest -# install_expat: "yes" -# config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" -# make_test: "yes" -# clang_analysis: "yes" -# - name: ubsan (gcc undefined behaviour sanitizer) -# os: ubuntu-latest -# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' -# make_test: "yes" -# - name: asan (gcc address sanitizer) -# os: ubuntu-latest -# config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' -# make_test: "yes" -# - name: Apple iPhone on iOS, armv7 -# os: macos-latest -# AUTOTOOLS_HOST: armv7-apple-ios -# OPENSSL_HOST: ios-cross -# IOS_SDK: iPhoneOS -# IOS_CPU: armv7s -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple iPhone on iOS, arm64 -# os: macos-latest -# AUTOTOOLS_HOST: aarch64-apple-ios -# OPENSSL_HOST: ios64-cross -# IOS_SDK: iPhoneOS -# IOS_CPU: arm64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple TV on iOS, arm64 -# os: macos-latest -# AUTOTOOLS_HOST: aarch64-apple-ios -# OPENSSL_HOST: ios64-cross -# IOS_SDK: AppleTVOS -# IOS_CPU: arm64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Apple Watch on iOS, armv7 -# os: macos-latest -# AUTOTOOLS_HOST: armv7-apple-ios -# OPENSSL_HOST: ios-cross -# IOS_SDK: WatchOS -# IOS_CPU: armv7k -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: iPhoneSimulator on OS X, i386 -# os: macos-latest -# AUTOTOOLS_HOST: i386-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: iPhoneSimulator -# IOS_CPU: i386 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: iPhoneSimulator on OS X, x86_64 -# os: macos-latest -# AUTOTOOLS_HOST: x86_64-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: iPhoneSimulator -# IOS_CPU: x86_64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: AppleTVSimulator on OS X, x86_64 -# os: macos-latest -# AUTOTOOLS_HOST: x86_64-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: AppleTVSimulator -# IOS_CPU: x86_64 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: WatchSimulator on OS X, i386 -# os: macos-latest -# AUTOTOOLS_HOST: i386-apple-ios -# OPENSSL_HOST: iphoneos-cross -# IOS_SDK: WatchSimulator -# IOS_CPU: i386 -# test_ios: "yes" -# config: "no" -# make: "no" -# - name: Android armv7a -# os: ubuntu-latest -# AUTOTOOLS_HOST: armv7a-linux-androidabi -# OPENSSL_HOST: android-arm -# ANDROID_CPU: armv7a -# ANDROID_API: 23 -# test_android: "yes" -# config: "no" -# make: "no" -# - name: Android aarch64 -# os: ubuntu-latest -# AUTOTOOLS_HOST: aarch64-linux-android -# OPENSSL_HOST: android-arm64 -# ANDROID_CPU: aarch64 -# ANDROID_API: 23 -# test_android: "yes" -# config: "no" -# make: "no" -# - name: Android x86 -# os: ubuntu-latest -# AUTOTOOLS_HOST: i686-linux-android -# OPENSSL_HOST: android-x86 -# ANDROID_CPU: x86 -# ANDROID_API: 23 -# test_android: "yes" -# config: "no" -# make: "no" -# - name: Android x86_64 -# os: ubuntu-latest -# AUTOTOOLS_HOST: x86_64-linux-android -# OPENSSL_HOST: android-x86_64 -# ANDROID_CPU: x86_64 -# ANDROID_API: 23 -# test_android: "yes" -# config: "no" -# make: "no" + - name: GCC on Linux + os: ubuntu-latest + config: "--enable-debug --disable-flto" + make_test: "yes" + - name: Clang-analyzer + os: ubuntu-latest + config: "CC=clang --enable-debug --disable-flto --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: libevent + os: ubuntu-latest + install_libevent: "yes" + config: "CC=clang --enable-debug --disable-flto --with-libevent --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: OS X + os: macos-latest + install_expat: "yes" + config: "--enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat" + make_test: "yes" + - name: Clang on OS X + os: macos-latest + install_expat: "yes" + config: "CC=clang --enable-debug --disable-flto --with-ssl=/usr/local/opt/openssl --with-libexpat=/usr/local/opt/expat --disable-static" + make_test: "yes" + clang_analysis: "yes" + - name: ubsan (gcc undefined behaviour sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=undefined -fno-sanitize-recover=all" --disable-flto --disable-static' + make_test: "yes" + - name: asan (gcc address sanitizer) + os: ubuntu-latest + config: 'CFLAGS="-DNDEBUG -g2 -O3 -fsanitize=address" --disable-flto --disable-static' + make_test: "yes" + - name: Apple iPhone on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: iPhoneOS + IOS_CPU: armv7s + test_ios: "yes" + config: "no" + make: "no" + - name: Apple iPhone on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: iPhoneOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple TV on iOS, arm64 + os: macos-latest + AUTOTOOLS_HOST: aarch64-apple-ios + OPENSSL_HOST: ios64-cross + IOS_SDK: AppleTVOS + IOS_CPU: arm64 + test_ios: "yes" + config: "no" + make: "no" + - name: Apple Watch on iOS, armv7 + os: macos-latest + AUTOTOOLS_HOST: armv7-apple-ios + OPENSSL_HOST: ios-cross + IOS_SDK: WatchOS + IOS_CPU: armv7k + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: iPhoneSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: iPhoneSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: AppleTVSimulator on OS X, x86_64 + os: macos-latest + AUTOTOOLS_HOST: x86_64-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: AppleTVSimulator + IOS_CPU: x86_64 + test_ios: "yes" + config: "no" + make: "no" + - name: WatchSimulator on OS X, i386 + os: macos-latest + AUTOTOOLS_HOST: i386-apple-ios + OPENSSL_HOST: iphoneos-cross + IOS_SDK: WatchSimulator + IOS_CPU: i386 + test_ios: "yes" + config: "no" + make: "no" + - name: Android armv7a + os: ubuntu-latest + AUTOTOOLS_HOST: armv7a-linux-androidabi + OPENSSL_HOST: android-arm + ANDROID_CPU: armv7a + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android aarch64 + os: ubuntu-latest + AUTOTOOLS_HOST: aarch64-linux-android + OPENSSL_HOST: android-arm64 + ANDROID_CPU: aarch64 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86 + os: ubuntu-latest + AUTOTOOLS_HOST: i686-linux-android + OPENSSL_HOST: android-x86 + ANDROID_CPU: x86 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" + - name: Android x86_64 + os: ubuntu-latest + AUTOTOOLS_HOST: x86_64-linux-android + OPENSSL_HOST: android-x86_64 + ANDROID_CPU: x86_64 + ANDROID_API: 23 + test_android: "yes" + config: "no" + make: "no" - name: Windows os: windows-latest test_windows: "yes" From f62994f6ea59ba9ba41dfaefaabf62fe42e53d8b Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 2 Jul 2021 09:42:31 +0200 Subject: [PATCH 156/156] - Fix #506: Python Module Seems to Leak Memory if it Experiences an Unhandled Exception. --- doc/Changelog | 4 ++++ pythonmod/pythonmod.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index f4b1295b2..221b6c69b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +2 July 2021: Wouter + - Fix #506: Python Module Seems to Leak Memory if it Experiences an + Unhandled Exception. + 25 June 2021: Wouter - Fix up permissions on rpl data file in tests. - Fix testbound newline treatment in moment_read and tempfile write. diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 0bbdeeb6b..4bea54e6a 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -245,6 +245,11 @@ cleanup: /* clear the exception, by not restoring it */ /* Restore the exception state */ /* PyErr_Restore(exc_typ, exc_val, exc_tb); */ + /* when using PyErr_Restore there is no need to Py_XDECREF for + * these 3 pointers. */ + Py_XDECREF(exc_typ); + Py_XDECREF(exc_val); + Py_XDECREF(exc_tb); } int pythonmod_init(struct module_env* env, int id)