From 3e310a17becddf87483643ae21a8d66943ca53a6 Mon Sep 17 00:00:00 2001 From: Tomasz Ziolkowski Date: Tue, 27 Jul 2021 12:03:51 +0200 Subject: [PATCH 01/27] Docker environment for run tests + enhancement for ssl_handshake --- .gitignore | 1 + Dockerfile | 11 +++++++++++ Makefile.in | 2 ++ configure | 6 ++++++ doc/README.tests | 8 ++++++++ testcode/petal.c | 10 ++++++++-- testdata/fwd_zero.tdir/fwd_zero.test | 2 +- util/iana_ports.inc | 1 + util/netevent.c | 7 +++++++ 9 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/.gitignore b/.gitignore index d0c69f81d..ddd734967 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ /testdata/.perfstats.txt /doc/html /doc/xml +.idea diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..417daccb2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM gcc:latest +WORKDIR /usr/src/unbound +RUN apt-get update +# install semantic parser & lexical analyzer +RUN apt-get install -y bison flex +# install packages used in tests +RUN apt-get install -y ldnsutils dnsutils xxd splint doxygen netcat +# accept short rsa keys, which are used in tests +RUN sed -i 's/SECLEVEL=2/SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf + +CMD ["/bin/bash"] diff --git a/Makefile.in b/Makefile.in index 476545ea9..3f2e9312b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -85,6 +85,8 @@ LINTFLAGS+=@NETBSD_LINTFLAGS@ LINTFLAGS+="-Dsigset_t=long" # FreeBSD LINTFLAGS+="-D__uint16_t=uint16_t" "-DEVP_PKEY_ASN1_METHOD=int" "-D_RuneLocale=int" "-D__va_list=va_list" "-D__uint32_t=uint32_t" "-D_Alignof(x)=x" "-D__aligned(x)=" "-D__requires_exclusive(x)=" "-D__requires_unlocked(x)=" "-D__locks_exclusive(x)=" "-D__trylocks_exclusive(x)=" "-D__unlocks(x)=" "-D__locks_shared(x)=" "-D__trylocks_shared(x)=" +# GCC Docker +LINTFLAGS+=@GCC_DOCKER_LINTFLAGS@ INSTALL=$(SHELL) $(srcdir)/install-sh diff --git a/configure b/configure index 7e722b59e..57f8094a3 100755 --- a/configure +++ b/configure @@ -683,6 +683,7 @@ HAVE_SSL PC_CRYPTO_DEPENDENCY CONFIG_DATE NETBSD_LINTFLAGS +GCC_DOCKER_LINTFLAGS PYUNBOUND_UNINSTALL PYUNBOUND_INSTALL PYUNBOUND_TARGET @@ -17888,6 +17889,11 @@ if test "`uname`" = "NetBSD"; then NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_' fi + +if test "`uname -o`" = "GNU/Linux"; then + # splint cannot parse modern c99 header files + GCC_DOCKER_LINTFLAGS='-syntax' +fi CONFIG_DATE=`date +%Y%m%d` diff --git a/doc/README.tests b/doc/README.tests index 5385e2b22..122bf02f3 100644 --- a/doc/README.tests +++ b/doc/README.tests @@ -15,6 +15,14 @@ You need to have the following programs installed and in your PATH. * xxd and nc (optional) - for (malformed) packet transmission. The optional programs are detected and can be omitted. +You can also use prepared Dockerfile to run tests inside docker based on latest gcc image: +* build container: docker build -t unbound-tester . +* run container: docker run -it --mount type=bind,source="$(pwd)",target=/usr/src/unbound --rm unbound-tester +* configure environment: ./configure +* run test: make test +* run long tests: make longtest +It is worth to mention that you need to enable [ipv6 in your docker daemon configuration](https://docs.docker.com/config/daemon/ipv6/) because some tests need ipv6 network stack. + testdata/ contains the data for tests. testcode/ contains scripts and c code for the tests. diff --git a/testcode/petal.c b/testcode/petal.c index 123684aab..78f1ca2f5 100644 --- a/testcode/petal.c +++ b/testcode/petal.c @@ -220,8 +220,11 @@ read_http_headers(SSL* ssl, char* file, size_t flen, char* host, size_t hlen, host[0] = 0; while(read_ssl_line(ssl, buf, sizeof(buf))) { if(verb>=2) printf("read: %s\n", buf); - if(buf[0] == 0) + if(buf[0] == 0) { + int e = ERR_peek_error(); + printf("error string: %s\n", ERR_reason_error_string(e)); return 1; + } if(!process_one_header(buf, file, flen, host, hlen, vs)) return 0; } @@ -238,8 +241,11 @@ setup_ctx(char* key, char* cert) (void)SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2); #endif (void)SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv3); - if(!SSL_CTX_use_certificate_chain_file(ctx, cert)) + if(!SSL_CTX_use_certificate_chain_file(ctx, cert)) { + int e = ERR_peek_error(); + printf("error string: %s\n", ERR_reason_error_string(e)); print_exit("cannot read cert"); + } if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) print_exit("cannot read key"); if(!SSL_CTX_check_private_key(ctx)) diff --git a/testdata/fwd_zero.tdir/fwd_zero.test b/testdata/fwd_zero.tdir/fwd_zero.test index 87a2dec9c..2e0806d6f 100644 --- a/testdata/fwd_zero.tdir/fwd_zero.test +++ b/testdata/fwd_zero.tdir/fwd_zero.test @@ -7,7 +7,7 @@ PRE="../.." OPT="-i" -if nc -h 2>&1 | grep -- "-w secs" >/dev/null; then +if nc -h 2>&1 | grep -E -- "-w (timeout|secs)" >/dev/null; then OPT="-w" fi diff --git a/util/iana_ports.inc b/util/iana_ports.inc index f928d0669..b93af015d 100644 --- a/util/iana_ports.inc +++ b/util/iana_ports.inc @@ -4244,6 +4244,7 @@ 5504, 5505, 5506, +5540, 5553, 5554, 5555, diff --git a/util/netevent.c b/util/netevent.c index 01e44c9b6..b1cc995c0 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -1232,6 +1232,13 @@ ssl_handshake(struct comm_point* c) if(want == SSL_ERROR_WANT_READ) { if(c->ssl_shake_state == comm_ssl_shake_read) return 1; + /* According to https://www.openssl.org/docs/man1.1.1/man3/SSL_do_handshake.html + * we should repeat handshake - for non blocking BIO + */ + if(c->ssl_shake_state == comm_ssl_shake_write) { + comm_point_listen_for_rw(c, 0, 1); + return 1; + } c->ssl_shake_state = comm_ssl_shake_read; comm_point_listen_for_rw(c, 1, 0); return 1; From 1900ea3bb38e31df874579bc58d39945d22d75ff Mon Sep 17 00:00:00 2001 From: Tomasz Ziolkowski Date: Wed, 4 Aug 2021 12:57:55 +0200 Subject: [PATCH 02/27] Revert changes in files managed by maintainers, move docker do contrib dir --- .gitignore | 1 - configure | 5 ----- configure.ac | 6 ++++++ Dockerfile => contrib/Dockerfile.tests | 0 doc/README.tests | 2 +- util/netevent.c | 7 ------- 6 files changed, 7 insertions(+), 14 deletions(-) rename Dockerfile => contrib/Dockerfile.tests (100%) diff --git a/.gitignore b/.gitignore index ddd734967..d0c69f81d 100644 --- a/.gitignore +++ b/.gitignore @@ -56,4 +56,3 @@ /testdata/.perfstats.txt /doc/html /doc/xml -.idea diff --git a/configure b/configure index d27ded8a5..457efb480 100755 --- a/configure +++ b/configure @@ -683,7 +683,6 @@ HAVE_SSL PC_CRYPTO_DEPENDENCY CONFIG_DATE NETBSD_LINTFLAGS -GCC_DOCKER_LINTFLAGS PYUNBOUND_UNINSTALL PYUNBOUND_INSTALL PYUNBOUND_TARGET @@ -17889,10 +17888,6 @@ if test "`uname`" = "NetBSD"; then fi -if test "`uname -o`" = "GNU/Linux"; then - # splint cannot parse modern c99 header files - GCC_DOCKER_LINTFLAGS='-syntax' -fi CONFIG_DATE=`date +%Y%m%d` diff --git a/configure.ac b/configure.ac index fe911723c..128232b1c 100644 --- a/configure.ac +++ b/configure.ac @@ -776,6 +776,12 @@ if test "`uname`" = "NetBSD"; then NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_' AC_SUBST(NETBSD_LINTFLAGS) fi + +if test "`uname -o`" = "GNU/Linux"; then + # splint cannot parse modern c99 header files + GCC_DOCKER_LINTFLAGS='-syntax' + AC_SUBST(GCC_DOCKER_LINTFLAGS) +fi CONFIG_DATE=`date +%Y%m%d` AC_SUBST(CONFIG_DATE) diff --git a/Dockerfile b/contrib/Dockerfile.tests similarity index 100% rename from Dockerfile rename to contrib/Dockerfile.tests diff --git a/doc/README.tests b/doc/README.tests index 122bf02f3..376f01717 100644 --- a/doc/README.tests +++ b/doc/README.tests @@ -16,7 +16,7 @@ You need to have the following programs installed and in your PATH. The optional programs are detected and can be omitted. You can also use prepared Dockerfile to run tests inside docker based on latest gcc image: -* build container: docker build -t unbound-tester . +* build container: docker build -t unbound-tester -f contrib/Dockerfile.tests . * run container: docker run -it --mount type=bind,source="$(pwd)",target=/usr/src/unbound --rm unbound-tester * configure environment: ./configure * run test: make test diff --git a/util/netevent.c b/util/netevent.c index b3df164e6..11c642a2b 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -1232,13 +1232,6 @@ ssl_handshake(struct comm_point* c) if(want == SSL_ERROR_WANT_READ) { if(c->ssl_shake_state == comm_ssl_shake_read) return 1; - /* According to https://www.openssl.org/docs/man1.1.1/man3/SSL_do_handshake.html - * we should repeat handshake - for non blocking BIO - */ - if(c->ssl_shake_state == comm_ssl_shake_write) { - comm_point_listen_for_rw(c, 0, 1); - return 1; - } c->ssl_shake_state = comm_ssl_shake_read; comm_point_listen_for_rw(c, 1, 0); return 1; From 59552a7a762f265c9a7436cecab51cea7e76530a Mon Sep 17 00:00:00 2001 From: Tomasz Ziolkowski Date: Wed, 4 Aug 2021 13:05:21 +0200 Subject: [PATCH 03/27] reformat --- configure | 1 - testcode/petal.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure b/configure index 457efb480..346fd5e5b 100755 --- a/configure +++ b/configure @@ -17887,7 +17887,6 @@ if test "`uname`" = "NetBSD"; then NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_' fi - CONFIG_DATE=`date +%Y%m%d` diff --git a/testcode/petal.c b/testcode/petal.c index fbe5ac61b..6ea3c34cd 100644 --- a/testcode/petal.c +++ b/testcode/petal.c @@ -245,8 +245,8 @@ setup_ctx(char* key, char* cert) SSL_CTX_set_security_level(ctx, 0); /* for keys in tests */ #endif if(!SSL_CTX_use_certificate_chain_file(ctx, cert)) { - int e = ERR_peek_error(); - printf("error string: %s\n", ERR_reason_error_string(e)); + int e = ERR_peek_error(); + printf("error string: %s\n", ERR_reason_error_string(e)); print_exit("cannot read cert"); } if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) From ae45f46b9e086f477a10c22d4fca494a31328129 Mon Sep 17 00:00:00 2001 From: Tomasz Ziolkowski Date: Thu, 5 Aug 2021 08:44:18 +0200 Subject: [PATCH 04/27] Add (stub|forward)-tcp-upstream options which enable using tcp transport only for specified stub/forward zones --- daemon/worker.c | 8 ++-- doc/unbound.conf.5.in | 12 ++++- iterator/iter_delegpt.c | 1 + iterator/iter_delegpt.h | 2 + iterator/iter_fwd.c | 2 + iterator/iter_hints.c | 2 + iterator/iterator.c | 1 + libunbound/libworker.c | 6 +-- libunbound/worker.h | 4 +- smallapp/worker_cb.c | 4 +- .../fwd_udp_with_tcp_upstream.conf | 20 ++++++++ .../fwd_udp_with_tcp_upstream.dsc | 16 +++++++ .../fwd_udp_with_tcp_upstream.post | 10 ++++ .../fwd_udp_with_tcp_upstream.pre | 31 ++++++++++++ .../fwd_udp_with_tcp_upstream.test | 35 ++++++++++++++ .../fwd_udp_with_tcp_upstream.testns | 25 ++++++++++ .../stub_udp_with_tcp_upstream.conf | 19 ++++++++ .../stub_udp_with_tcp_upstream.dsc | 16 +++++++ .../stub_udp_with_tcp_upstream.post | 10 ++++ .../stub_udp_with_tcp_upstream.pre | 35 ++++++++++++++ .../stub_udp_with_tcp_upstream.test | 37 ++++++++++++++ .../stub_udp_with_tcp_upstream.testns | 48 +++++++++++++++++++ util/config_file.h | 2 + util/configlexer.lex | 2 + util/configparser.y | 25 +++++++++- util/fptr_wlist.c | 2 +- util/fptr_wlist.h | 2 +- util/module.h | 3 +- 28 files changed, 363 insertions(+), 17 deletions(-) create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.conf create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.dsc create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.post create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.pre create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test create mode 100644 testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.testns create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.conf create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.dsc create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.post create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.pre create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.test create mode 100644 testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.testns diff --git a/daemon/worker.c b/daemon/worker.c index e9e163a04..b994645b4 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1988,8 +1988,8 @@ worker_delete(struct worker* worker) struct outbound_entry* worker_send_query(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, - socklen_t addrlen, uint8_t* zone, size_t zonelen, int ssl_upstream, - char* tls_auth_name, struct module_qstate* q) + socklen_t addrlen, uint8_t* zone, size_t zonelen, int tcp_upstream, + int ssl_upstream, char* tls_auth_name, struct module_qstate* q) { struct worker* worker = q->env->worker; struct outbound_entry* e = (struct outbound_entry*)regional_alloc( @@ -1998,7 +1998,7 @@ worker_send_query(struct query_info* qinfo, uint16_t flags, int dnssec, return NULL; e->qstate = q; e->qsent = outnet_serviced_query(worker->back, qinfo, flags, dnssec, - want_dnssec, nocaps, q->env->cfg->tcp_upstream, + want_dnssec, nocaps, tcp_upstream, ssl_upstream, tls_auth_name, addr, addrlen, zone, zonelen, q, worker_handle_service_reply, e, worker->back->udp_buff, q->env); if(!e->qsent) { @@ -2045,7 +2045,7 @@ struct outbound_entry* libworker_send_query( uint16_t ATTR_UNUSED(flags), int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), - uint8_t* ATTR_UNUSED(zone), size_t ATTR_UNUSED(zonelen), + uint8_t* ATTR_UNUSED(zone), size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) { diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index d5315d53b..1f7e191ed 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -485,7 +485,9 @@ advertised timeout. .TP .B tcp\-upstream: \fI Enable or disable whether the upstream queries use TCP only for transport. -Default is no. Useful in tunneling scenarios. +Default is no. Useful in tunneling scenarios. If set to no you can specify +TCP transport only for selected forward or stub zones using forward-tcp-upstream +or stub-tcp-upstream respectively. .TP .B udp\-upstream\-without\-downstream: \fI Enable udp upstream even if do-udp is no. Default is no, and this does not @@ -1853,6 +1855,10 @@ Default is no. .B stub\-ssl\-upstream: \fI Alternate syntax for \fBstub\-tls\-upstream\fR. .TP +.B stub\-tcp\-upstream: \fI +If it is set to "yes" then upstream queries use TCP only for transport regardless of global flag tcp-upstream. +Default is no. +.TP .B stub\-no\-cache: \fI Default is no. If enabled, data inside the stub is not cached. This is useful when you want immediate changes to be visible. @@ -1905,6 +1911,10 @@ load CA certs, otherwise the connections cannot be authenticated. .B forward\-ssl\-upstream: \fI Alternate syntax for \fBforward\-tls\-upstream\fR. .TP +.B forward\-tcp\-upstream: \fI +If it is set to "yes" then upstream queries use TCP only for transport regardless of global flag tcp-upstream. +Default is no. +.TP .B forward\-no\-cache: \fI Default is no. If enabled, data inside the forward is not cached. This is useful when you want immediate changes to be visible. diff --git a/iterator/iter_delegpt.c b/iterator/iter_delegpt.c index 9a672b0af..bdac42b0d 100644 --- a/iterator/iter_delegpt.c +++ b/iterator/iter_delegpt.c @@ -73,6 +73,7 @@ struct delegpt* delegpt_copy(struct delegpt* dp, struct regional* region) copy->bogus = dp->bogus; copy->has_parent_side_NS = dp->has_parent_side_NS; copy->ssl_upstream = dp->ssl_upstream; + copy->tcp_upstream = dp->tcp_upstream; for(ns = dp->nslist; ns; ns = ns->next) { if(!delegpt_add_ns(copy, region, ns->name, ns->lame)) return NULL; diff --git a/iterator/iter_delegpt.h b/iterator/iter_delegpt.h index 138eb6e1b..9c8cfb281 100644 --- a/iterator/iter_delegpt.h +++ b/iterator/iter_delegpt.h @@ -83,6 +83,8 @@ struct delegpt { uint8_t dp_type_mlc; /** use SSL for upstream query */ uint8_t ssl_upstream; + /** use TCP for upstream query */ + uint8_t tcp_upstream; /** delegpt from authoritative zone that is locally hosted */ uint8_t auth_dp; /*** no cache */ diff --git a/iterator/iter_fwd.c b/iterator/iter_fwd.c index ea3d70e07..128007a04 100644 --- a/iterator/iter_fwd.c +++ b/iterator/iter_fwd.c @@ -276,6 +276,8 @@ read_forwards(struct iter_forwards* fwd, struct config_file* cfg) dp->no_cache = s->no_cache; /* use SSL for queries to this forwarder */ dp->ssl_upstream = (uint8_t)s->ssl_upstream; + /* use TCP for queries to this forwarder */ + dp->tcp_upstream = (uint8_t)s->tcp_upstream; verbose(VERB_QUERY, "Forward zone server list:"); delegpt_log(VERB_QUERY, dp); if(!forwards_insert(fwd, LDNS_RR_CLASS_IN, dp)) diff --git a/iterator/iter_hints.c b/iterator/iter_hints.c index 60e518122..2af443d8c 100644 --- a/iterator/iter_hints.c +++ b/iterator/iter_hints.c @@ -287,6 +287,8 @@ read_stubs(struct iter_hints* hints, struct config_file* cfg) dp->no_cache = s->no_cache; /* ssl_upstream */ dp->ssl_upstream = (uint8_t)s->ssl_upstream; + /* tcp_upstream */ + dp->tcp_upstream = (uint8_t)s->tcp_upstream; delegpt_log(VERB_QUERY, dp); if(!hints_insert(hints, LDNS_RR_CLASS_IN, dp, !s->isprime)) return 0; diff --git a/iterator/iterator.c b/iterator/iterator.c index f0105ad4b..efc94c37b 100644 --- a/iterator/iterator.c +++ b/iterator/iterator.c @@ -2666,6 +2666,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq, iq->dnssec_expected, iq->caps_fallback || is_caps_whitelisted( ie, iq), &target->addr, target->addrlen, iq->dp->name, iq->dp->namelen, + (iq->dp->tcp_upstream || qstate->env->cfg->tcp_upstream), (iq->dp->ssl_upstream || qstate->env->cfg->ssl_upstream), target->tls_auth_name, qstate); if(!outq) { diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 8a9ca9419..151f50cf5 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -881,7 +881,7 @@ void libworker_alloc_cleanup(void* arg) struct outbound_entry* libworker_send_query(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, int ssl_upstream, char* tls_auth_name, + size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q) { struct libworker* w = (struct libworker*)q->env->worker; @@ -891,7 +891,7 @@ struct outbound_entry* libworker_send_query(struct query_info* qinfo, return NULL; e->qstate = q; e->qsent = outnet_serviced_query(w->back, qinfo, flags, dnssec, - want_dnssec, nocaps, q->env->cfg->tcp_upstream, ssl_upstream, + want_dnssec, nocaps, tcp_upstream, ssl_upstream, tls_auth_name, addr, addrlen, zone, zonelen, q, libworker_handle_service_reply, e, w->back->udp_buff, q->env); if(!e->qsent) { @@ -975,7 +975,7 @@ struct outbound_entry* worker_send_query(struct query_info* ATTR_UNUSED(qinfo), uint16_t ATTR_UNUSED(flags), int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), - uint8_t* ATTR_UNUSED(zone), size_t ATTR_UNUSED(zonelen), + uint8_t* ATTR_UNUSED(zone), size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) { diff --git a/libunbound/worker.h b/libunbound/worker.h index bf7473861..c1fc8e784 100644 --- a/libunbound/worker.h +++ b/libunbound/worker.h @@ -72,7 +72,7 @@ struct query_info; struct outbound_entry* libworker_send_query(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, int ssl_upstream, char* tls_auth_name, + size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q); /** process incoming serviced query replies from the network */ @@ -123,7 +123,7 @@ void worker_sighandler(int sig, void* arg); struct outbound_entry* worker_send_query(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone, - size_t zonelen, int ssl_upstream, char* tls_auth_name, + size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q); /** diff --git a/smallapp/worker_cb.c b/smallapp/worker_cb.c index 473e32a60..78e773938 100644 --- a/smallapp/worker_cb.c +++ b/smallapp/worker_cb.c @@ -99,7 +99,7 @@ struct outbound_entry* worker_send_query( int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(ssl_upstream), + size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); @@ -131,7 +131,7 @@ struct outbound_entry* libworker_send_query( int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(ssl_upstream), + size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.conf b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.conf new file mode 100644 index 000000000..6daf2eeec --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.conf @@ -0,0 +1,20 @@ +server: + verbosity: 5 + # num-threads: 1 + interface: 127.0.0.1 + port: @PORT@ + use-syslog: no + directory: "" + pidfile: "unbound.pid" + chroot: "" + username: "" + do-not-query-localhost: no +forward-zone: + name: "tcp.example.com" + forward-addr: "127.0.0.1@@TOPORT@" + forward-tcp-upstream: "yes" +forward-zone: + name: "udp.example.com" + forward-addr: "127.0.0.1@@TOPORT@" + forward-tcp-upstream: "no" + diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.dsc b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.dsc new file mode 100644 index 000000000..5b1f0d3d1 --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.dsc @@ -0,0 +1,16 @@ +BaseName: fwd_udp_with_tcp_upstream +Version: 1.0 +Description: Forward an UDP packet to upstream via TCP and return reply. +CreationDate: Thu Aug 5 07:44:41 CEST 2021 +Maintainer: ziollek +Category: +Component: +CmdDepends: +Depends: +Help: +Pre: fwd_udp_with_tcp_upstream.pre +Post: fwd_udp_with_tcp_upstream.post +Test: fwd_udp_with_tcp_upstream.test +AuxFiles: +Passed: +Failure: diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.post b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.post new file mode 100644 index 000000000..0013eca71 --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.post @@ -0,0 +1,10 @@ +# #-- fwd_udp_with_tcp_upstream.post --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# source the test var file when it's there +[ -f .tpkg.var.test ] && source .tpkg.var.test +# +# do your teardown here +. ../common.sh +kill_pid $FWD_PID +kill_pid $UNBOUND_PID diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.pre b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.pre new file mode 100644 index 000000000..546787a5f --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.pre @@ -0,0 +1,31 @@ +# #-- fwd_udp_with_tcp_upstream.pre--# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +. ../common.sh +get_random_port 2 +UNBOUND_PORT=$RND_PORT +FWD_PORT=$(($RND_PORT + 1)) +echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test +echo "FWD_PORT=$FWD_PORT" >> .tpkg.var.test + +# start forwarder +get_ldns_testns +$LDNS_TESTNS -p $FWD_PORT fwd_udp_with_tcp_upstream.testns >fwd.log 2>&1 & +FWD_PID=$! +echo "FWD_PID=$FWD_PID" >> .tpkg.var.test + +# make config file +sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$FWD_PORT'/' < fwd_udp_with_tcp_upstream.conf > ub.conf +# start unbound in the background +PRE="../.." +$PRE/unbound -d -c ub.conf >unbound.log 2>&1 & +UNBOUND_PID=$! +echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test + +cat .tpkg.var.test +wait_ldns_testns_up fwd.log +wait_unbound_up unbound.log + diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test new file mode 100644 index 000000000..fad6497be --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.test @@ -0,0 +1,35 @@ +# #-- fwd_udp_with_tcp_upstream.test --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." +# do the test +echo "> dig tcp.example.com." +dig @localhost -p $UNBOUND_PORT tcp.example.com. | tee outfile +echo "> cat logfiles" +cat fwd.log +cat unbound.log +echo "> check answer" +if grep "10.20.30.40" outfile; then + echo "OK" +else + echo "Not OK" + exit 1 +fi + +echo "> dig udp.example.com." +dig @localhost -p $UNBOUND_PORT udp.example.com. | tee outfile +echo "> cat logfiles" +cat fwd.log +cat unbound.log +echo "> check answer" +if grep "10.20.30.80" outfile; then + echo "OK" +else + echo "Not OK" + exit 1 +fi + +exit 0 diff --git a/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.testns b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.testns new file mode 100644 index 000000000..04089af0e --- /dev/null +++ b/testdata/fwd_udp_with_tcp_upstream.tdir/fwd_udp_with_tcp_upstream.testns @@ -0,0 +1,25 @@ +; nameserver test file +$ORIGIN example.com. +$TTL 3600 + +ENTRY_BEGIN +MATCH opcode qtype qname +MATCH TCP +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +tcp IN A +SECTION ANSWER +tcp IN A 10.20.30.40 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +MATCH UDP +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +udp IN A +SECTION ANSWER +udp IN A 10.20.30.80 +ENTRY_END diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.conf b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.conf new file mode 100644 index 000000000..d57c787b1 --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.conf @@ -0,0 +1,19 @@ +server: + verbosity: 2 + # num-threads: 1 + interface: 127.0.0.1 + port: @PORT@ + use-syslog: no + directory: "" + pidfile: "unbound.pid" + chroot: "" + username: "" + do-not-query-localhost: no +stub-zone: + name: "tcp.example.com" + stub-addr: "127.0.0.1@@TOPORT@" + stub-tcp-upstream: "yes" +stub-zone: + name: "udp.example.com" + stub-addr: "127.0.0.1@@TOPORT@" + stub-tcp-upstream: "no" \ No newline at end of file diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.dsc b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.dsc new file mode 100644 index 000000000..526ff67f9 --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.dsc @@ -0,0 +1,16 @@ +BaseName: stub_udp_with_tcp_upstream +Version: 1.0 +Description: Stub server contacted via UDP with tcp upstream. +CreationDate: Thu Aug 5 07:44:41 CEST 2021 +Maintainer: ziollek +Category: +Component: +CmdDepends: +Depends: +Help: +Pre: stub_udp_with_tcp_upstream.pre +Post: stub_udp_with_tcp_upstream.post +Test: stub_udp_with_tcp_upstream.test +AuxFiles: +Passed: +Failure: diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.post b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.post new file mode 100644 index 000000000..c804b6c46 --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.post @@ -0,0 +1,10 @@ +# #-- stub_udp_with_tcp_upstream.post --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# source the test var file when it's there +[ -f .tpkg.var.test ] && source .tpkg.var.test +# +# do your teardown here +. ../common.sh +kill_pid $FWD_PID +kill_pid $UNBOUND_PID diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.pre b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.pre new file mode 100644 index 000000000..2bca63b9d --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.pre @@ -0,0 +1,35 @@ +# #-- stub_udp_with_tcp_upstream.pre--# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test +. ../common.sh + +get_random_port 2 +UNBOUND_PORT=$RND_PORT +FWD_PORT=$(($RND_PORT + 1)) +echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test +echo "FWD_PORT=$FWD_PORT" >> .tpkg.var.test + +# start forwarder +get_ldns_testns +$LDNS_TESTNS -p $FWD_PORT stub_udp_with_tcp_upstream.testns >fwd.log 2>&1 & +FWD_PID=$! +echo "FWD_PID=$FWD_PID" >> .tpkg.var.test + +# make config file +sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$FWD_PORT'/' < stub_udp_with_tcp_upstream.conf > ub.conf +# start unbound in the background +PRE="../.." +$PRE/unbound -d -c ub.conf >unbound.log 2>&1 & +UNBOUND_PID=$! +echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test + +cat .tpkg.var.test + +# wait for forwarder to come up +wait_ldns_testns_up fwd.log + +# wait for unbound to come up +wait_unbound_up unbound.log + diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.test b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.test new file mode 100644 index 000000000..43591ac16 --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.test @@ -0,0 +1,37 @@ +# #-- stub_udp_with_tcp_upstream.test --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." +# do the test +echo "> dig tcp.example.com." +dig @127.0.0.1 -p $UNBOUND_PORT tcp.example.com. | tee outfile +echo "> cat logfiles" +cat fwd.log +cat unbound.log +echo "> check answer" +if grep "10.20.30.40" outfile; then + echo "OK" +else + echo "Not OK" + exit 1 +fi + + +# check if second stub is requested via udp +echo "> dig udp.example.com." +dig @127.0.0.1 -p $UNBOUND_PORT udp.example.com. | tee outfile +echo "> cat logfiles" +cat fwd.log +cat unbound.log +echo "> check answer" +if grep "10.20.30.80" outfile; then + echo "OK" +else + echo "Not OK" + exit 1 +fi + +exit 0 diff --git a/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.testns b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.testns new file mode 100644 index 000000000..f2155414e --- /dev/null +++ b/testdata/stub_udp_with_tcp_upstream.tdir/stub_udp_with_tcp_upstream.testns @@ -0,0 +1,48 @@ +; nameserver test file +$ORIGIN example.com. +$TTL 3600 + +ENTRY_BEGIN +MATCH opcode qtype qname +MATCH TCP +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +tcp IN A +SECTION ANSWER +tcp IN A 10.20.30.40 +SECTION AUTHORITY +@ IN NS ns.example.com. +SECTION ADDITIONAL +ns IN A 127.0.0.1 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +MATCH UDP +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +udp IN A +SECTION ANSWER +udp IN A 10.20.30.80 +SECTION AUTHORITY +@ IN NS ns.example.com. +SECTION ADDITIONAL +ns IN A 127.0.0.1 +ENTRY_END + +; root prime +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +. IN NS +SECTION ANSWER +. IN NS root.server. +SECTION AUTHORITY +SECTION ADDITIONAL +root.server. IN A 127.0.0.1 +ENTRY_END + diff --git a/util/config_file.h b/util/config_file.h index aed6812da..b868d9cc8 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -697,6 +697,8 @@ struct config_stub { int isprime; /** if forward-first is set (failover to without if fails) */ int isfirst; + /** use tcp for queries to this stub */ + int tcp_upstream; /** use SSL for queries to this stub */ int ssl_upstream; /*** no cache */ diff --git a/util/configlexer.lex b/util/configlexer.lex index dbfc17d49..b1dd3c1ed 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -331,6 +331,7 @@ stub-first{COLON} { YDVAR(1, VAR_STUB_FIRST) } stub-no-cache{COLON} { YDVAR(1, VAR_STUB_NO_CACHE) } stub-ssl-upstream{COLON} { YDVAR(1, VAR_STUB_SSL_UPSTREAM) } stub-tls-upstream{COLON} { YDVAR(1, VAR_STUB_SSL_UPSTREAM) } +stub-tcp-upstream{COLON} { YDVAR(1, VAR_STUB_TCP_UPSTREAM) } forward-zone{COLON} { YDVAR(0, VAR_FORWARD_ZONE) } forward-addr{COLON} { YDVAR(1, VAR_FORWARD_ADDR) } forward-host{COLON} { YDVAR(1, VAR_FORWARD_HOST) } @@ -338,6 +339,7 @@ forward-first{COLON} { YDVAR(1, VAR_FORWARD_FIRST) } forward-no-cache{COLON} { YDVAR(1, VAR_FORWARD_NO_CACHE) } forward-ssl-upstream{COLON} { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } forward-tls-upstream{COLON} { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +forward-tcp-upstream{COLON} { YDVAR(1, VAR_FORWARD_TCP_UPSTREAM) } auth-zone{COLON} { YDVAR(0, VAR_AUTH_ZONE) } rpz{COLON} { YDVAR(0, VAR_RPZ) } tags{COLON} { YDVAR(1, VAR_TAGS) } diff --git a/util/configparser.y b/util/configparser.y index e22d48d41..be8fe2dac 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -113,6 +113,7 @@ extern struct config_parser_state* cfg_parser; %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_STUB_TCP_UPSTREAM VAR_FORWARD_TCP_UPSTREAM %token VAR_HTTPS_PORT VAR_HTTP_ENDPOINT VAR_HTTP_MAX_STREAMS %token VAR_HTTP_QUERY_BUFFER_SIZE VAR_HTTP_RESPONSE_BUFFER_SIZE %token VAR_HTTP_NODELAY VAR_HTTP_NOTLS_DOWNSTREAM @@ -324,7 +325,7 @@ stubstart: VAR_STUB_ZONE contents_stub: contents_stub content_stub | ; content_stub: stub_name | stub_host | stub_addr | stub_prime | stub_first | - stub_no_cache | stub_ssl_upstream + stub_no_cache | stub_ssl_upstream | stub_tcp_upstream ; forwardstart: VAR_FORWARD_ZONE { @@ -341,7 +342,7 @@ forwardstart: VAR_FORWARD_ZONE contents_forward: contents_forward content_forward | ; content_forward: forward_name | forward_host | forward_addr | forward_first | - forward_no_cache | forward_ssl_upstream + forward_no_cache | forward_ssl_upstream | forward_tcp_upstream ; viewstart: VAR_VIEW { @@ -2721,6 +2722,16 @@ stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG free($2); } ; +stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG + { + OUTYY(("P(stub-tcp-upstream:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->stubs->tcp_upstream = + (strcmp($2, "yes")==0); + free($2); + } + ; stub_prime: VAR_STUB_PRIME STRING_ARG { OUTYY(("P(stub-prime:%s)\n", $2)); @@ -2783,6 +2794,16 @@ forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG free($2); } ; +forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG + { + OUTYY(("P(forward-tcp-upstream:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->forwards->tcp_upstream = + (strcmp($2, "yes")==0); + free($2); + } + ; auth_name: VAR_NAME STRING_ARG { OUTYY(("P(name:%s)\n", $2)); diff --git a/util/fptr_wlist.c b/util/fptr_wlist.c index de6dbd02a..f8dac65c5 100644 --- a/util/fptr_wlist.c +++ b/util/fptr_wlist.c @@ -335,7 +335,7 @@ int fptr_whitelist_modenv_send_query(struct outbound_entry* (*fptr)( struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int ssl_upstream, char* tls_auth_name, + uint8_t* zone, size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q)) { if(fptr == &worker_send_query) return 1; diff --git a/util/fptr_wlist.h b/util/fptr_wlist.h index cd331febb..a54709925 100644 --- a/util/fptr_wlist.h +++ b/util/fptr_wlist.h @@ -212,7 +212,7 @@ int fptr_whitelist_hash_markdelfunc(lruhash_markdelfunc_type fptr); int fptr_whitelist_modenv_send_query(struct outbound_entry* (*fptr)( struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int ssl_upstream, char* tls_auth_name, + uint8_t* zone, size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q)); /** diff --git a/util/module.h b/util/module.h index 81a31a9cc..a46373687 100644 --- a/util/module.h +++ b/util/module.h @@ -354,6 +354,7 @@ struct module_env { * @param addrlen: length of addr. * @param zone: delegation point name. * @param zonelen: length of zone name. + * @param tcp_upstream: use TCP for upstream queries. * @param ssl_upstream: use SSL for upstream queries. * @param tls_auth_name: if ssl_upstream, use this name with TLS * authentication. @@ -366,7 +367,7 @@ struct module_env { struct outbound_entry* (*send_query)(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int ssl_upstream, + uint8_t* zone, size_t zonelen, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct module_qstate* q); /** From 8e538dcaa8df2d0fab8ff3dcf94ac1f972450b66 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 5 Aug 2021 17:10:56 +0200 Subject: [PATCH 05/27] - Fix #520: Unbound 1.13.2rc1 fails to build python module. --- Makefile.in | 2 +- doc/Changelog | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 3ac3b1681..ff5dc8fae 100644 --- a/Makefile.in +++ b/Makefile.in @@ -476,7 +476,7 @@ libunbound/python/libunbound_wrap.c: $(srcdir)/libunbound/python/libunbound.i un # Pyunbound python unbound wrapper _unbound.la: libunbound_wrap.lo libunbound.la - $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) libunbound.la $(LIBS) + $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -avoid-version -no-undefined -shared -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) -L. -L.libs libunbound.la $(LIBS) util/config_file.c: util/configparser.h util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h diff --git a/doc/Changelog b/doc/Changelog index 7927da389..91abd0da0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 5 August 2021: Wouter - Tag for 1.13.2rc1 release. + - Fix #520: Unbound 1.13.2rc1 fails to build python module. 4 August 2021: George - Merge PR #415 from sibeream: Use From edbf9c21ee5c32f4ef52c2e3a16868fccc2d82e6 Mon Sep 17 00:00:00 2001 From: liheng562653799 <47775671+liheng562653799@users.noreply.github.com> Date: Fri, 6 Aug 2021 12:00:56 +0800 Subject: [PATCH 06/27] Update mini_event.c When in heavy load, unbound opens many outside_network sockets for out going queries to delegation servers, which may result in a big fd(maxfd) value(for thread A 65500, for thread B 65501, for thread C ...). There are situations when thread A has a max fd num 65500 where maxfd is of course 65500, thread B has max fd num 20 for now but maxfd is still 65501. Though linux kernel checks whether maxfd+1 passed by select syscall is really the process' maxfd+1. Linux kernel can not tell maxfd+1 passed by thread B select syscall is much bigger(65501+1 or 65500+1 after trimed by kerne) than it should be (20+1). In this situation, when kernel do_select() for thread B, much work is wasted. --- util/mini_event.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/util/mini_event.c b/util/mini_event.c index 661d88d2e..c05dc668c 100644 --- a/util/mini_event.c +++ b/util/mini_event.c @@ -337,6 +337,15 @@ int event_del(struct event* ev) FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->writes); FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->ready); FD_CLR(FD_SET_T ev->ev_fd, &ev->ev_base->content); + if(ev->ev_fd == ev->ev_base->maxfd) { + int i = ev->ev_base->maxfd - 1; + for (; i > 3; i--) { + if (NULL != ev->ev_base->fds[i]) { + break; + } + } + ev->ev_base->maxfd = i; + } } ev->added = 0; return 0; From e20b2c1aafead40567188584190c668b3e2fed06 Mon Sep 17 00:00:00 2001 From: Shchelkunov Artem Date: Wed, 11 Aug 2021 15:14:43 +0500 Subject: [PATCH 07/27] fix: free() call more than once with the same pointer --- util/data/msgreply.c | 1 - 1 file changed, 1 deletion(-) diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 00272fd1c..6c875674d 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -495,7 +495,6 @@ int reply_info_parse(sldns_buffer* pkt, struct alloc_cache* alloc, /* this also performs dname decompression */ if(!parse_create_msg(pkt, msg, alloc, qinf, rep, NULL)) { query_info_clear(qinf); - reply_info_parsedelete(*rep, alloc); *rep = NULL; return LDNS_RCODE_SERVFAIL; } From c5ceee22a9454d5f7f0fbc87537f46d5d6d7b908 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 10:04:20 +0200 Subject: [PATCH 08/27] - And 1.13.2rc1 became the 1.13.2 with the fix for the python module build. The current code repository continues with version 1.13.3. --- configure | 25 +++++++++++++------------ configure.ac | 5 +++-- doc/Changelog | 4 ++++ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/configure b/configure index 346fd5e5b..4d01e3421 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for unbound 1.13.2. +# Generated by GNU Autoconf 2.69 for unbound 1.13.3. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='unbound' PACKAGE_TARNAME='unbound' -PACKAGE_VERSION='1.13.2' -PACKAGE_STRING='unbound 1.13.2' +PACKAGE_VERSION='1.13.3' +PACKAGE_STRING='unbound 1.13.3' PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues' PACKAGE_URL='' @@ -1464,7 +1464,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures unbound 1.13.2 to adapt to many kinds of systems. +\`configure' configures unbound 1.13.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1529,7 +1529,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of unbound 1.13.2:";; + short | recursive ) echo "Configuration of unbound 1.13.3:";; esac cat <<\_ACEOF @@ -1771,7 +1771,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -unbound configure 1.13.2 +unbound configure 1.13.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2480,7 +2480,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by unbound $as_me 1.13.2, which was +It was created by unbound $as_me 1.13.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2832,11 +2832,11 @@ UNBOUND_VERSION_MAJOR=1 UNBOUND_VERSION_MINOR=13 -UNBOUND_VERSION_MICRO=2 +UNBOUND_VERSION_MICRO=3 LIBUNBOUND_CURRENT=9 -LIBUNBOUND_REVISION=13 +LIBUNBOUND_REVISION=14 LIBUNBOUND_AGE=1 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -2917,6 +2917,7 @@ LIBUNBOUND_AGE=1 # 1.13.0 had 9:11:1 # 1.13.1 had 9:12:1 # 1.13.2 had 9:13:1 +# 1.13.3 had 9:14:1 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary @@ -21816,7 +21817,7 @@ _ACEOF -version=1.13.2 +version=1.13.3 date=`date +'%b %e, %Y'` @@ -22335,7 +22336,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by unbound $as_me 1.13.2, which was +This file was extended by unbound $as_me 1.13.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22401,7 +22402,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -unbound config.status 1.13.2 +unbound config.status 1.13.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index fe911723c..bbe8d683a 100644 --- a/configure.ac +++ b/configure.ac @@ -11,14 +11,14 @@ sinclude(dnscrypt/dnscrypt.m4) # must be numbers. ac_defun because of later processing m4_define([VERSION_MAJOR],[1]) m4_define([VERSION_MINOR],[13]) -m4_define([VERSION_MICRO],[2]) +m4_define([VERSION_MICRO],[3]) AC_INIT([unbound],m4_defn([VERSION_MAJOR]).m4_defn([VERSION_MINOR]).m4_defn([VERSION_MICRO]),[unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues],[unbound]) AC_SUBST(UNBOUND_VERSION_MAJOR, [VERSION_MAJOR]) AC_SUBST(UNBOUND_VERSION_MINOR, [VERSION_MINOR]) AC_SUBST(UNBOUND_VERSION_MICRO, [VERSION_MICRO]) LIBUNBOUND_CURRENT=9 -LIBUNBOUND_REVISION=13 +LIBUNBOUND_REVISION=14 LIBUNBOUND_AGE=1 # 1.0.0 had 0:12:0 # 1.0.1 had 0:13:0 @@ -99,6 +99,7 @@ LIBUNBOUND_AGE=1 # 1.13.0 had 9:11:1 # 1.13.1 had 9:12:1 # 1.13.2 had 9:13:1 +# 1.13.3 had 9:14:1 # Current -- the number of the binary API that we're implementing # Revision -- which iteration of the implementation of the binary diff --git a/doc/Changelog b/doc/Changelog index 91abd0da0..a801ea4d7 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +12 August 2021: Wouter + - And 1.13.2rc1 became the 1.13.2 with the fix for the python module + build. The current code repository continues with version 1.13.3. + 5 August 2021: Wouter - Tag for 1.13.2rc1 release. - Fix #520: Unbound 1.13.2rc1 fails to build python module. From f8ddcc15b8bcd52e5d5f1e1d1b799dbe7c583c23 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 13:17:29 +0200 Subject: [PATCH 09/27] - Add test tool readzone to .gitignore. --- .gitignore | 1 + doc/Changelog | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index d0c69f81d..6c3cfb91d 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ /perf /petal /pktview +/readzone /streamtcp /unbound-dnstap-socket /testbound diff --git a/doc/Changelog b/doc/Changelog index a801ea4d7..72c83d0b5 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 12 August 2021: Wouter - And 1.13.2rc1 became the 1.13.2 with the fix for the python module build. The current code repository continues with version 1.13.3. + - Add test tool readzone to .gitignore. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. From 20febc2179723ed67b84b7f3ffc7fd1b656b2699 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 13:24:15 +0200 Subject: [PATCH 10/27] Changelog note for #521 - Merge #521: Update mini_event.c. --- doc/Changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/Changelog b/doc/Changelog index 72c83d0b5..a225c3181 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,7 @@ - And 1.13.2rc1 became the 1.13.2 with the fix for the python module build. The current code repository continues with version 1.13.3. - Add test tool readzone to .gitignore. + - Merge #521: Update mini_event.c. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. From 07f70d0745876d7e256c7f8756626a3a60e33e82 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 13:45:18 +0200 Subject: [PATCH 11/27] Changelog note for #523 - Merge #523: fix: free() call more than once with the same pointer. --- doc/Changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/Changelog b/doc/Changelog index a225c3181..8a420d770 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,7 @@ build. The current code repository continues with version 1.13.3. - Add test tool readzone to .gitignore. - Merge #521: Update mini_event.c. + - Merge #523: fix: free() call more than once with the same pointer. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. From 6bee3e77fca77d42e18e3b6e44e4b03027d79c1c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 15:05:51 +0200 Subject: [PATCH 12/27] Changelog note for #519 and example.conf edit - Merge #519: Support for selective enabling tcp-upstream for stub/forward zones. - For #519: note stub-tcp-upstream and forward-tcp-upstream in the example configuration file. --- doc/Changelog | 4 ++++ doc/example.conf.in | 2 ++ 2 files changed, 6 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 8a420d770..15b0db32c 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,10 @@ - Add test tool readzone to .gitignore. - Merge #521: Update mini_event.c. - Merge #523: fix: free() call more than once with the same pointer. + - Merge #519: Support for selective enabling tcp-upstream for + stub/forward zones. + - For #519: note stub-tcp-upstream and forward-tcp-upstream in + the example configuration file. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. diff --git a/doc/example.conf.in b/doc/example.conf.in index e13c3ad24..a7287ec5e 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -987,6 +987,7 @@ remote-control: # stub-addr: 192.0.2.68 # stub-prime: no # stub-first: no +# stub-tcp-upstream: no # stub-tls-upstream: no # stub-no-cache: no # stub-zone: @@ -1004,6 +1005,7 @@ remote-control: # forward-addr: 192.0.2.68 # forward-addr: 192.0.2.73@5355 # forward to port 5355. # forward-first: no +# forward-tcp-upstream: no # forward-tls-upstream: no # forward-no-cache: no # forward-zone: From 2f828ec7207b23c1f52d8f473e2b94faf286496c Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 15:12:55 +0200 Subject: [PATCH 13/27] - For #519: yacc and lex. And fix python bindings, and test program unbound-dnstap-socket. --- dnstap/unbound-dnstap-socket.c | 10 +- doc/Changelog | 2 + pythonmod/interface.i | 4 +- util/configlexer.c | 4781 ++++++++++++++++---------------- util/configparser.c | 4740 +++++++++++++++++-------------- util/configparser.h | 697 ++--- 6 files changed, 5498 insertions(+), 4736 deletions(-) diff --git a/dnstap/unbound-dnstap-socket.c b/dnstap/unbound-dnstap-socket.c index 3de8ab3f0..0fc74015e 100644 --- a/dnstap/unbound-dnstap-socket.c +++ b/dnstap/unbound-dnstap-socket.c @@ -1415,8 +1415,9 @@ struct outbound_entry* worker_send_query( int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(ssl_upstream), - char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), + int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; @@ -1447,8 +1448,9 @@ struct outbound_entry* libworker_send_query( int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), - size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(ssl_upstream), - char* ATTR_UNUSED(tls_auth_name), struct module_qstate* ATTR_UNUSED(q)) + size_t ATTR_UNUSED(zonelen), int ATTR_UNUSED(tcp_upstream), + int ATTR_UNUSED(ssl_upstream), char* ATTR_UNUSED(tls_auth_name), + struct module_qstate* ATTR_UNUSED(q)) { log_assert(0); return 0; diff --git a/doc/Changelog b/doc/Changelog index 15b0db32c..6e42c649b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -8,6 +8,8 @@ stub/forward zones. - For #519: note stub-tcp-upstream and forward-tcp-upstream in the example configuration file. + - For #519: yacc and lex. And fix python bindings, and test program + unbound-dnstap-socket. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. diff --git a/pythonmod/interface.i b/pythonmod/interface.i index ce7dcde71..5825409b1 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -710,8 +710,8 @@ struct module_env { struct outbound_entry* (*send_query)(struct query_info* qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int ssl_upstream, char* tls_auth_name, - struct module_qstate* q); + uint8_t* zone, size_t zonelen, int tcp_upstream, int ssl_upstream, + char* tls_auth_name, struct module_qstate* q); void (*detach_subs)(struct module_qstate* qstate); int (*attach_sub)(struct module_qstate* qstate, struct query_info* qinfo, uint16_t qflags, int prime, diff --git a/util/configlexer.c b/util/configlexer.c index af30f0643..6ead5bf93 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 352 -#define YY_END_OF_BUFFER 353 +#define YY_NUM_RULES 354 +#define YY_END_OF_BUFFER 355 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,391 +363,394 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3484] = +static const flex_int16_t yy_accept[3508] = { 0, - 1, 1, 326, 326, 330, 330, 334, 334, 338, 338, - 1, 1, 342, 342, 346, 346, 353, 350, 1, 324, - 324, 351, 2, 351, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 326, 327, 327, 328, - 351, 330, 331, 331, 332, 351, 337, 334, 335, 335, - 336, 351, 338, 339, 339, 340, 351, 349, 325, 2, - 329, 351, 349, 345, 342, 343, 343, 344, 351, 346, - 347, 347, 348, 351, 350, 0, 1, 2, 2, 2, - 2, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 1, 1, 328, 328, 332, 332, 336, 336, 340, 340, + 1, 1, 344, 344, 348, 348, 355, 352, 1, 326, + 326, 353, 2, 353, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 328, 329, 329, 330, + 353, 332, 333, 333, 334, 353, 339, 336, 337, 337, + 338, 353, 340, 341, 341, 342, 353, 351, 327, 2, + 331, 353, 351, 347, 344, 345, 345, 346, 353, 348, + 349, 349, 350, 353, 352, 0, 1, 2, 2, 2, + 2, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 326, - 0, 330, 0, 337, 0, 334, 338, 0, 349, 0, - 2, 2, 349, 345, 0, 342, 346, 0, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 328, + 0, 332, 0, 339, 0, 336, 340, 0, 351, 0, + 2, 2, 351, 347, 0, 344, 348, 0, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 349, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 351, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 128, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 137, - 350, 350, 350, 350, 350, 350, 350, 349, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 130, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 139, + 352, 352, 352, 352, 352, 352, 352, 351, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 112, 350, 323, - 350, 350, 350, 350, 350, 350, 350, 8, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 112, 352, 325, + 352, 352, 352, 352, 352, 352, 352, 8, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 129, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 142, 350, 350, 349, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 131, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 144, 352, 352, 351, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 316, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 318, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 349, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 67, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 248, 350, 14, 15, 350, 19, 18, 350, - 350, 232, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 351, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 67, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 250, 352, 14, 15, 352, 19, 18, 352, + 352, 234, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 135, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 230, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 3, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 137, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 232, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 3, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 349, - 350, 350, 350, 350, 350, 350, 350, 310, 350, 350, - 309, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 333, 350, 350, 350, 350, 350, 350, 350, 350, 66, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 351, 352, 352, 352, 352, 352, 352, 352, 312, 352, + 352, 311, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 335, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 70, 350, 279, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 317, 318, - 350, 350, 350, 350, 350, 350, 350, 71, 350, 350, - 136, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 132, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 219, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 21, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 66, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 70, 352, 281, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 319, + 320, 352, 352, 352, 352, 352, 352, 352, 71, 352, + 352, 138, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 134, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 221, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 21, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 162, - 350, 350, 350, 350, 350, 349, 333, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 110, 350, - 350, 350, 350, 350, 350, 350, 287, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 188, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 164, 352, 352, 352, 352, 352, 351, 335, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 110, 352, 352, 352, 352, 352, 352, 352, 289, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 190, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 161, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 109, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 35, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 163, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 109, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 35, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 36, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 68, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 134, 350, 350, 350, 349, 350, 350, 350, 350, 350, - 127, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 69, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 252, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 189, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 36, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 68, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 136, 352, 352, 352, 351, 352, 352, + 352, 352, 352, 129, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 69, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 254, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 191, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 57, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 270, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 61, 350, 62, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 57, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 272, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 113, 350, 114, 350, 350, - 350, 350, 111, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 7, 350, 350, 350, 350, - 349, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 241, - 350, 350, 350, 350, 165, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 253, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 61, 352, 62, 352, 352, 352, 352, 352, 113, + 352, 114, 352, 352, 352, 352, 352, 111, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 7, 352, 352, 352, 352, 351, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 243, 352, 352, 352, 352, 167, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 255, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 48, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 58, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 211, 350, 210, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 16, 17, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 48, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 58, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 213, 352, 212, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 16, 17, 352, 352, 352, 352, 352, - 350, 350, 72, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 218, 350, 350, 350, 350, - 350, 350, 116, 350, 115, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 202, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 143, - 350, 350, 350, 349, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 104, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 92, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 72, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 220, 352, 352, 352, 352, 352, 352, 116, 352, + 115, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 204, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 145, 352, 352, 352, + 351, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 104, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 92, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 231, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 97, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 65, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 205, 206, 350, 350, 350, 281, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 6, 350, 350, 350, 350, 350, 350, 300, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 233, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 97, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 65, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 207, 208, 352, 352, 352, 283, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 6, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 285, 350, 350, 350, - 350, 350, 350, 311, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 45, 350, 350, - 350, 350, 47, 350, 350, 350, 93, 350, 350, 350, - 350, 350, 55, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 349, 350, 198, 350, 350, 350, - 138, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 223, 350, 199, 350, 350, 350, 238, 350, 350, + 352, 352, 352, 352, 352, 352, 302, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 287, 352, 352, 352, 352, 352, + 352, 313, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 45, 352, 352, 352, + 352, 47, 352, 352, 352, 93, 352, 352, 352, 352, + 352, 55, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 351, 352, 200, 352, 352, 352, 140, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 56, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 140, - 121, 350, 122, 350, 350, 350, 120, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 158, 350, 350, 53, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 269, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 200, 350, 350, - 350, 350, 350, 203, 350, 209, 350, 350, 350, 350, - 350, 350, 237, 350, 350, 350, 350, 350, 350, 350, + 225, 352, 201, 352, 352, 352, 240, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 56, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 142, 122, + 352, 123, 352, 352, 352, 352, 121, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 160, 352, 352, 53, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 271, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 202, 352, 352, + 352, 352, 352, 205, 352, 211, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 108, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 133, 350, - 350, 350, 350, 350, 350, 350, 63, 350, 350, 350, - 29, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 20, 350, 350, 350, 350, 350, 350, 30, - 39, 350, 170, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 196, 350, 350, - 349, 350, 350, 350, 350, 350, 350, 80, 82, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 239, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 108, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 135, 352, + 352, 352, 352, 352, 352, 352, 63, 352, 352, 352, + 29, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 20, 352, 352, 352, 352, 352, 352, + 30, 39, 352, 172, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 198, 352, + 352, 351, 352, 352, 352, 352, 352, 352, 80, 82, - 350, 350, 289, 350, 350, 350, 350, 249, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 123, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 157, 350, 49, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 304, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 164, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 298, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 291, 352, 352, 352, 352, 251, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 124, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 159, 352, 49, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 306, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 166, 352, - 350, 350, 350, 229, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 314, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 182, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 117, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 177, 350, 190, - 350, 350, 350, 350, 350, 350, 350, 349, 350, 146, - 350, 350, 350, 350, 350, 103, 350, 350, 350, 350, - 221, 350, 350, 350, 350, 350, 350, 239, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 300, 352, 352, 352, 231, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 316, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 184, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 117, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 179, 352, 192, 352, 352, 352, 352, 352, 352, 352, + 351, 352, 148, 352, 352, 352, 352, 352, 103, 352, + 352, 352, 352, 223, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 261, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 139, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 181, 350, 350, 350, 350, 350, 350, 83, - 350, 84, 350, 350, 350, 350, 350, 64, 307, 350, - 350, 350, 350, 350, 91, 191, 350, 212, 350, 242, - 350, 350, 204, 282, 350, 350, 350, 350, 350, 350, - 76, 350, 193, 350, 350, 350, 350, 350, 9, 350, - 350, 350, 350, 350, 107, 350, 350, 350, 350, 274, - 350, 350, 350, 350, 220, 350, 350, 350, 350, 350, + 241, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 263, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 141, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 183, 352, 352, 352, + 352, 352, 352, 83, 352, 84, 352, 352, 352, 352, + 352, 64, 309, 352, 352, 352, 352, 352, 91, 193, + 352, 214, 352, 244, 352, 352, 206, 284, 352, 352, + 352, 352, 352, 352, 76, 352, 195, 352, 352, 352, + 352, 352, 9, 352, 352, 352, 352, 352, 107, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 349, 350, 350, 350, - 350, 180, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 166, 350, 288, 350, 350, 350, 350, 350, - 260, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 233, 350, 350, 350, 350, 350, 280, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 276, 352, 352, 352, 352, 222, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 351, 352, 352, 352, 352, 182, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 168, 352, 290, + 352, 352, 352, 352, 352, 262, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 235, 352, 352, - 350, 350, 350, 350, 350, 163, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 308, 350, 192, 350, 350, 350, 350, 350, 350, - 350, 350, 75, 77, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 106, 350, 350, 350, 350, 272, 350, - 350, 350, 350, 284, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 225, 37, 31, 33, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 38, 350, 32, 34, 350, 350, 350, 350, 350, - 350, 350, 350, 102, 350, 176, 350, 350, 350, 350, + 352, 352, 352, 282, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 165, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 310, 352, 194, + 352, 352, 352, 352, 352, 352, 352, 352, 75, 77, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 106, + 352, 352, 352, 352, 274, 352, 352, 352, 352, 286, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 227, 37, 31, 33, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 38, 352, - 350, 350, 350, 349, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 227, 224, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 74, 350, 350, 350, 141, - 350, 124, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 159, 50, 350, 350, 350, 341, 13, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 302, 350, - 305, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 12, 350, 350, 22, 350, 350, 350, 350, - 350, 278, 350, 350, 350, 350, 286, 350, 350, 350, + 32, 34, 352, 352, 352, 352, 352, 352, 352, 352, + 102, 352, 178, 352, 352, 352, 352, 352, 352, 352, + 351, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 229, 226, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 74, 352, 352, 352, 143, 352, 125, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 161, + 50, 352, 352, 352, 343, 13, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 304, 352, 307, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 78, 350, 235, 350, 350, 350, 350, 350, 226, 350, - 350, 73, 350, 350, 350, 350, 350, 23, 350, 350, - 46, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 175, 174, 350, 350, 341, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 228, 222, 350, - 240, 350, 350, 290, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 85, 350, 350, - 350, 350, 273, 350, 350, 350, 350, 208, 350, 350, + 12, 352, 352, 22, 352, 352, 352, 352, 352, 280, + 352, 352, 352, 352, 288, 352, 352, 352, 78, 352, + 237, 352, 352, 352, 352, 352, 228, 352, 352, 73, + 352, 352, 352, 352, 352, 352, 23, 352, 352, 46, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 177, 176, 352, 352, 343, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 230, 224, 352, 242, + 352, 352, 292, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, - 350, 350, 350, 234, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 312, 313, 172, 350, 350, - 79, 350, 350, 350, 350, 183, 350, 350, 350, 118, - 119, 350, 350, 350, 25, 350, 350, 167, 350, 169, - 350, 213, 350, 350, 350, 350, 173, 350, 350, 350, - 350, 243, 350, 350, 350, 350, 350, 350, 350, 148, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 251, 350, 350, 350, 350, 350, 350, 350, - 321, 350, 27, 350, 283, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 85, 352, 352, + 352, 352, 275, 352, 352, 352, 352, 210, 352, 352, + 352, 352, 352, 236, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 314, 315, 174, 352, 352, + 79, 352, 352, 352, 352, 185, 352, 352, 352, 118, + 120, 119, 352, 352, 352, 25, 352, 352, 169, 352, + 171, 352, 215, 352, 352, 352, 352, 175, 352, 352, + 352, 352, 245, 352, 352, 352, 352, 352, 352, 352, + 150, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 253, 352, 352, 352, 352, 352, 352, - 89, 214, 350, 350, 271, 350, 306, 350, 207, 350, - 350, 350, 350, 350, 59, 350, 350, 350, 350, 350, - 350, 4, 350, 350, 350, 350, 131, 147, 350, 350, - 350, 187, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 246, 40, 41, 350, 350, 350, 350, 350, 350, 350, - 291, 350, 350, 350, 350, 350, 350, 350, 259, 350, - 350, 350, 350, 350, 350, 350, 350, 217, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 88, 350, 60, 277, 350, 247, 350, 350, 350, + 352, 323, 352, 27, 352, 285, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 89, 216, 352, 352, 273, 352, 308, 352, + 209, 352, 352, 352, 352, 352, 59, 352, 352, 352, + 352, 352, 352, 4, 352, 352, 352, 352, 133, 149, + 352, 352, 352, 189, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 248, 40, 41, 352, 352, 352, 352, 352, + 352, 352, 293, 352, 352, 352, 352, 352, 352, 352, + 261, 352, 352, 352, 352, 352, 352, 352, 352, 219, - 350, 350, 11, 350, 350, 350, 350, 350, 350, 350, - 350, 130, 350, 350, 350, 350, 215, 94, 350, 350, - 43, 350, 350, 350, 350, 350, 350, 350, 350, 179, - 350, 350, 350, 350, 350, 350, 350, 150, 350, 350, - 350, 350, 250, 350, 350, 350, 350, 350, 258, 350, - 350, 350, 350, 144, 350, 350, 350, 125, 126, 350, - 350, 350, 96, 100, 95, 160, 350, 350, 350, 350, - 86, 350, 350, 350, 350, 350, 350, 10, 350, 350, - 350, 350, 350, 275, 315, 350, 350, 350, 350, 350, - 320, 42, 350, 350, 350, 350, 350, 178, 350, 350, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 88, 352, 60, 279, 352, 249, + 352, 352, 352, 352, 352, 11, 352, 352, 352, 352, + 352, 352, 352, 352, 132, 352, 352, 352, 352, 217, + 94, 352, 352, 43, 352, 352, 352, 352, 352, 352, + 352, 352, 181, 352, 352, 352, 352, 352, 352, 352, + 152, 352, 352, 352, 352, 252, 352, 352, 352, 352, + 352, 260, 352, 352, 352, 352, 146, 352, 352, 352, + 126, 128, 127, 352, 352, 352, 96, 100, 95, 162, + 352, 352, 352, 352, 86, 352, 352, 352, 352, 352, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 101, 99, 350, 54, 350, 350, 87, - 303, 350, 350, 350, 350, 24, 350, 350, 350, 350, - 350, 201, 350, 350, 350, 350, 350, 216, 350, 350, - 350, 350, 350, 350, 350, 350, 197, 350, 350, 168, - 81, 350, 350, 350, 350, 350, 292, 350, 350, 350, - 350, 350, 350, 350, 255, 350, 350, 254, 145, 350, - 350, 98, 51, 350, 151, 152, 155, 156, 153, 154, - 90, 301, 350, 350, 276, 350, 350, 350, 26, 350, + 352, 10, 352, 352, 352, 352, 352, 277, 317, 352, + 352, 352, 352, 352, 322, 42, 352, 352, 352, 352, + 352, 180, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 101, 99, 352, + 54, 352, 352, 87, 305, 352, 352, 352, 352, 24, + 352, 352, 352, 352, 352, 203, 352, 352, 352, 352, + 352, 218, 352, 352, 352, 352, 352, 352, 352, 352, + 199, 352, 352, 170, 81, 352, 352, 352, 352, 352, + 294, 352, 352, 352, 352, 352, 352, 352, 257, 352, - 171, 350, 350, 350, 350, 195, 350, 245, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 185, 184, - 44, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 299, 350, 350, 350, 350, 105, 350, - 244, 350, 268, 296, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 322, 350, 52, 5, 350, - 350, 236, 350, 350, 297, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 256, 28, 350, 350, 350, 350, + 352, 256, 147, 352, 352, 98, 51, 352, 153, 154, + 157, 158, 155, 156, 90, 303, 352, 352, 278, 352, + 352, 352, 26, 352, 173, 352, 352, 352, 352, 197, + 352, 247, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 187, 186, 44, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 301, 352, 352, + 352, 352, 105, 352, 246, 352, 270, 298, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 324, - 350, 350, 350, 350, 350, 350, 350, 350, 257, 350, - 350, 350, 149, 350, 350, 350, 350, 350, 350, 350, - 350, 186, 350, 194, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 293, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 319, 350, 350, 264, 350, 350, 350, 350, 350, - 294, 350, 350, 350, 350, 350, 350, 295, 350, 350, - 350, 262, 350, 265, 266, 350, 350, 350, 350, 350, - 263, 267, 0 + 352, 52, 5, 352, 352, 238, 352, 352, 299, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 258, 28, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 259, 352, 352, 352, 151, 352, 352, 352, + 352, 352, 352, 352, 352, 188, 352, 196, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 295, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 321, 352, 352, 266, 352, + 352, 352, 352, 352, 296, 352, 352, 352, 352, 352, + 352, 297, 352, 352, 352, 264, 352, 267, 268, 352, + + 352, 352, 352, 352, 265, 269, 0 } ; static const YY_CHAR yy_ec[256] = @@ -790,17 +793,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[3502] = +static const flex_int16_t yy_base[3526] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 5204, 5022, 81, 6793, - 6793, 6793, 129, 52, 130, 63, 131, 152, 70, 140, + 90, 112, 96, 118, 124, 136, 3772, 3465, 81, 6844, + 6844, 6844, 129, 52, 130, 63, 131, 152, 70, 140, 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, - 185, 199, 208, 213, 178, 123, 4580, 6793, 6793, 6793, - 107, 3835, 6793, 6793, 6793, 154, 3459, 3338, 6793, 6793, - 6793, 245, 3159, 6793, 6793, 6793, 163, 2930, 6793, 249, - 6793, 253, 148, 2502, 2483, 6793, 6793, 6793, 257, 2236, - 6793, 6793, 6793, 233, 1695, 263, 201, 0, 267, 0, + 185, 199, 208, 213, 178, 123, 3351, 6844, 6844, 6844, + 107, 3099, 6844, 6844, 6844, 154, 2963, 2900, 6844, 6844, + 6844, 245, 2522, 6844, 6844, 6844, 163, 2482, 6844, 249, + 6844, 253, 148, 2216, 1825, 6844, 6844, 6844, 257, 1688, + 6844, 6844, 6844, 233, 1531, 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, @@ -830,9 +833,9 @@ static const flex_int16_t yy_base[3502] = 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, 6793, 831, + 818, 819, 823, 807, 825, 827, 834, 829, 6844, 831, 838, 846, 839, 847, 850, 848, 854, 856, 836, 866, - 864, 867, 876, 898, 849, 871, 868, 878, 881, 6793, + 864, 867, 876, 898, 849, 871, 868, 878, 881, 6844, 884, 882, 922, 890, 891, 908, 910, 859, 909, 911, 904, 912, 933, 906, 920, 915, 945, 942, 930, 943, @@ -842,16 +845,16 @@ static const flex_int16_t yy_base[3502] = 1002, 1000, 1016, 1017, 1024, 1023, 1025, 1028, 1030, 1029, 1037, 1041, 1038, 1046, 1047, 1048, 1049, 1059, 1054, 1055, 1056, 1060, 1062, 1063, 1066, 1068, 1069, 1071, 1073, 1074, - 1080, 1081, 1085, 1089, 1075, 1090, 1082, 6793, 1097, 6793, - 1092, 1095, 1099, 1100, 1101, 1102, 1105, 6793, 1107, 1110, + 1080, 1081, 1085, 1089, 1075, 1090, 1082, 6844, 1097, 6844, + 1092, 1095, 1099, 1100, 1101, 1102, 1105, 6844, 1107, 1110, 1109, 1112, 1120, 1115, 1136, 1111, 1118, 1123, 1135, 1119, 1137, 1145, 1140, 1141, 1148, 1143, 1146, 1147, 1149, 1150, - 1153, 1156, 1159, 1161, 1155, 1162, 1178, 6793, 1163, 1167, + 1153, 1156, 1159, 1161, 1155, 1162, 1178, 6844, 1163, 1167, 1165, 1168, 1176, 1182, 1173, 1181, 1191, 1190, 1201, 1193, 1199, 1213, 1202, 1203, 1211, 1210, 1215, 1220, 1216, 1222, 1224, 1225, 1227, 1228, 1226, 1230, 1231, 1234, 1232, 1238, - 1240, 6793, 1247, 1244, 1250, 1255, 1257, 1258, 1259, 1260, + 1240, 6844, 1247, 1244, 1250, 1255, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1266, 517, 1271, 1282, 1289, 1272, 1291, 1275, 1290, 1286, 1288, 1265, 1292, 1296, 1294, 1307, 1298, 1309, 1314, 1322, 1318, 1320, 1327, 1329, 1304, 1324, @@ -859,718 +862,722 @@ static const flex_int16_t yy_base[3502] = 1344, 1346, 1345, 1347, 1351, 1353, 1355, 1356, 1357, 1359, 1366, 1361, 1373, 1369, 1371, 1372, 1368, 1387, 1376, 1379, - 1391, 1392, 1389, 1390, 6793, 1399, 1398, 1401, 1402, 1408, + 1391, 1392, 1389, 1390, 6844, 1399, 1398, 1401, 1402, 1408, 1409, 1410, 1400, 1411, 1414, 1417, 1418, 1419, 1425, 1422, 1426, 1420, 1427, 1433, 1432, 1440, 1446, 1435, 1450, 1451, 1453, 1437, 1449, 1456, 1457, 1465, 1462, 1466, 1468, 1464, 1469, 1478, 1470, 1473, 1475, 1485, 1481, 1482, 1487, 1484, 1496, 1498, 1490, 1507, 1499, 1509, 1516, 1502, 1488, 1517, 1506, 1518, 1512, 1521, 1522, 1523, 1526, 1533, 1528, 1529, - 1534, 1535, 1536, 1537, 1531, 1544, 1547, 1545, 1548, 1551, - 1552, 1553, 1557, 1560, 1555, 1561, 1566, 1567, 1568, 1570, + 1534, 1535, 1536, 1537, 1541, 1543, 1551, 1547, 1548, 1552, + 1555, 1557, 1560, 1559, 1565, 1561, 1566, 1568, 1569, 1570, - 1558, 1578, 1588, 1569, 1580, 1582, 1581, 1589, 1590, 1591, - 1596, 1597, 1598, 1600, 1601, 1608, 1611, 1602, 1605, 1614, - 1615, 1617, 1618, 1627, 1619, 1628, 1632, 1633, 1634, 1622, - 1635, 1638, 1640, 1641, 1645, 1646, 1648, 6793, 1652, 1660, - 1653, 1658, 1655, 1656, 1661, 1669, 1664, 1668, 1665, 1666, - 1670, 1692, 6793, 1674, 6793, 6793, 1676, 6793, 6793, 1677, - 1678, 6793, 1682, 1687, 1699, 1698, 1705, 1707, 1709, 1685, - 1710, 1680, 1719, 1725, 1716, 1717, 1718, 1723, 1730, 1721, - 1731, 1728, 1738, 1742, 1740, 1746, 1749, 1754, 1756, 1758, - 1750, 1761, 1767, 1764, 1770, 1772, 1775, 1760, 1776, 1778, + 1571, 1572, 1576, 1581, 1582, 1589, 1590, 1591, 1592, 1593, + 1594, 1598, 1597, 1599, 1603, 1609, 1610, 1611, 1613, 1616, + 1617, 1619, 1618, 1632, 1633, 1621, 1635, 1622, 1634, 1637, + 1640, 1623, 1642, 1646, 1649, 1645, 1651, 6844, 1653, 1662, + 1657, 1659, 1658, 1661, 1664, 1671, 1666, 1668, 1667, 1669, + 1673, 1695, 6844, 1676, 6844, 6844, 1679, 6844, 6844, 1678, + 1683, 6844, 1684, 1692, 1702, 1699, 1680, 1705, 1698, 1708, + 1710, 1711, 1719, 1732, 1720, 1716, 1722, 1712, 1723, 1725, + 1737, 1742, 1729, 1753, 1745, 1738, 1752, 1762, 1728, 1764, + 1754, 1766, 1767, 1770, 1773, 1772, 1779, 1780, 1774, 1781, - 1779, 1780, 1782, 1781, 1784, 1787, 1790, 1791, 1793, 1786, - 1794, 1805, 1803, 1796, 1813, 6793, 1809, 1821, 1806, 1823, - 1819, 1826, 1827, 1822, 1810, 1832, 1834, 1829, 1835, 1836, - 1838, 1839, 1840, 1842, 1844, 1846, 1850, 1848, 1860, 1849, - 6793, 1862, 1863, 1851, 1859, 1865, 1866, 1873, 1867, 1852, - 1870, 1876, 1886, 1882, 1884, 1887, 1888, 1890, 1891, 1892, - 6793, 1894, 1901, 1898, 1902, 1904, 1893, 1908, 1905, 1910, - 1911, 1912, 1917, 1915, 1918, 1922, 1923, 1924, 1926, 1929, - 1934, 1931, 1938, 1941, 1948, 1942, 1944, 1949, 1950, 1951, - 1953, 1954, 1955, 1957, 1962, 1966, 1965, 1969, 1967, 1968, + 1783, 1784, 1788, 1785, 1789, 1791, 1794, 1795, 1792, 1797, + 1798, 1805, 1811, 1802, 1818, 6844, 1814, 1821, 1803, 1829, + 1825, 1832, 1824, 1828, 1831, 1836, 1838, 1833, 1840, 1842, + 1843, 1844, 1845, 1846, 1849, 1851, 1855, 1853, 1870, 1854, + 6844, 1857, 1859, 1856, 1867, 1869, 1871, 1876, 1875, 1877, + 1879, 1746, 1891, 1882, 1884, 1886, 1887, 1892, 1893, 1895, + 6844, 1901, 1908, 1894, 1904, 1897, 1900, 1910, 1912, 1913, + 1914, 1917, 1921, 1919, 1922, 1932, 1927, 1931, 1928, 1929, + 1924, 1939, 1942, 1935, 1946, 1953, 1947, 1954, 1955, 1956, + 1957, 1958, 1959, 1960, 1962, 1967, 1969, 1970, 1977, 1972, - 1978, 1986, 1971, 1982, 1983, 1984, 1985, 1990, 1993, 1998, - 1994, 1996, 1999, 2008, 2000, 2005, 2007, 2010, 2013, 2023, - 2009, 2026, 2018, 2011, 2021, 2027, 2028, 6793, 2034, 2035, - 6793, 2037, 2036, 2038, 2060, 2039, 2042, 2051, 2044, 2045, - 2048, 2053, 2061, 2057, 2064, 2073, 2074, 2077, 2080, 2079, - 2082, 2086, 2085, 2088, 2089, 2092, 2095, 2093, 2100, 2107, - 2109, 2055, 2113, 2117, 2112, 2114, 2118, 2137, 2115, 2116, - 2125, 2119, 2122, 2124, 2120, 2126, 2130, 2135, 2140, 2132, - 2147, 2150, 2146, 2149, 2152, 2153, 2160, 2162, 2165, 2164, - 6793, 2172, 2170, 2174, 2175, 2176, 2183, 2181, 2179, 6793, + 1968, 1989, 1991, 1990, 1973, 1975, 1993, 1980, 1996, 2005, + 2006, 2004, 2002, 2003, 2014, 2009, 2011, 2012, 2013, 2019, + 2027, 2017, 2024, 2033, 2023, 2031, 2036, 2025, 6844, 2015, + 2038, 6844, 2040, 2042, 2043, 2065, 2046, 2050, 2048, 2056, + 2057, 2067, 2058, 2061, 2072, 2066, 2084, 2060, 2079, 2085, + 2087, 2090, 2088, 2091, 2092, 2094, 2097, 2098, 2103, 2099, + 2114, 2116, 2113, 2122, 2124, 2119, 2120, 2125, 2144, 2121, + 2123, 2126, 2130, 2131, 2129, 2127, 2137, 2146, 2136, 2138, + 2149, 2154, 2151, 2147, 2161, 2162, 2166, 2167, 2169, 2171, + 2172, 6844, 2180, 2173, 2177, 2181, 2182, 2189, 2188, 2187, - 2182, 2185, 2187, 2196, 2188, 2192, 2195, 2199, 2201, 2202, - 2204, 2205, 2208, 2206, 2207, 2226, 6793, 2209, 6793, 2213, - 2210, 2218, 2221, 2228, 2229, 2231, 2232, 2233, 6793, 6793, - 2234, 2235, 2248, 2251, 2241, 2243, 2252, 6793, 2253, 2260, - 6793, 2262, 2261, 2256, 2255, 2257, 2267, 2268, 2271, 2278, - 2274, 2282, 2277, 2279, 2283, 6793, 2287, 2280, 2288, 2291, - 2289, 2295, 2298, 2302, 2299, 6793, 2300, 2308, 2309, 2316, - 2313, 2314, 2317, 2318, 2319, 2322, 2325, 2326, 2327, 2328, - 2337, 2338, 2329, 2342, 2339, 2343, 2351, 6793, 2349, 2350, - 2336, 2358, 2355, 2362, 2357, 2363, 2353, 2359, 2364, 2370, + 6844, 2190, 2191, 2194, 2203, 2198, 2201, 2204, 2202, 2205, + 2208, 2211, 2212, 2215, 2225, 2213, 2232, 6844, 2217, 6844, + 2227, 2214, 2235, 2218, 2229, 2236, 2238, 2239, 2242, 6844, + 6844, 2245, 2246, 2248, 2257, 2252, 2256, 2259, 6844, 2258, + 2266, 6844, 2263, 2270, 2262, 2268, 2269, 2275, 2277, 2279, + 2284, 2280, 2287, 2282, 2286, 2289, 6844, 2292, 2283, 2296, + 2302, 2298, 2299, 2305, 2306, 2309, 6844, 2312, 2313, 2316, + 2323, 2320, 2315, 2325, 2327, 2331, 2326, 2328, 2333, 2334, + 2335, 2342, 2345, 2346, 2349, 2350, 2357, 2356, 2358, 6844, + 2359, 2360, 2362, 2369, 2365, 2367, 2368, 2371, 2372, 2373, - 2365, 2369, 2375, 2377, 2379, 2386, 2387, 2382, 2383, 2385, - 2390, 2391, 2392, 2394, 2399, 2396, 2401, 2400, 2402, 6793, - 2403, 2407, 2408, 2413, 2415, 2411, 171, 2421, 2417, 2424, - 2423, 2425, 2430, 2426, 2439, 2443, 2438, 2440, 2442, 2447, - 2441, 2448, 2451, 2449, 2450, 2453, 2457, 2458, 6793, 2466, - 2459, 2461, 2463, 2468, 2467, 2470, 6793, 2476, 2481, 2483, - 2491, 2485, 2493, 2494, 2495, 2498, 2496, 2499, 2500, 2501, - 2503, 2506, 2510, 2509, 6793, 2512, 2517, 2518, 2515, 2524, - 2526, 2525, 2527, 2531, 2532, 2533, 2537, 2536, 2538, 2539, - 2540, 2541, 2547, 2548, 2555, 2544, 2554, 2556, 2557, 2560, + 2338, 2376, 2374, 2381, 2375, 2383, 2384, 2394, 2397, 2387, + 2396, 2399, 2389, 2400, 2404, 2405, 2410, 2407, 2409, 2411, + 2412, 6844, 2413, 2420, 2421, 2417, 2426, 2415, 171, 2424, + 2427, 2428, 2434, 2436, 2444, 2433, 2447, 2452, 2448, 2449, + 2455, 2451, 2458, 2459, 2460, 2461, 2450, 2463, 2462, 2466, + 6844, 2468, 2474, 2471, 2475, 2478, 2479, 2481, 6844, 2483, + 2491, 2493, 2502, 2496, 2480, 2504, 2505, 2508, 2506, 2509, + 2510, 2511, 2512, 2513, 2519, 2516, 6844, 2521, 2528, 2531, + 2518, 2532, 2539, 2525, 2540, 2541, 2542, 2545, 2544, 2546, + 2550, 2547, 2549, 2551, 2552, 2560, 2571, 2554, 2563, 2564, - 2566, 2562, 2567, 2568, 2575, 2570, 6793, 2577, 2573, 2580, - 2576, 2582, 2585, 2586, 2587, 2604, 2589, 2593, 2596, 2605, - 2610, 2600, 2612, 2620, 2616, 2622, 2625, 2630, 2626, 2632, - 2635, 2628, 2638, 2640, 2641, 2642, 2650, 2646, 2647, 2648, - 2651, 2652, 2662, 2663, 2654, 2664, 2666, 2669, 2658, 2676, - 2681, 2683, 6793, 2685, 2673, 2687, 2690, 2697, 2692, 2671, - 2695, 2698, 2702, 2703, 2704, 2706, 2713, 2708, 2710, 2714, - 2716, 2715, 2717, 2724, 2719, 2725, 2727, 2734, 2730, 2736, - 2595, 6793, 2738, 2739, 2740, 2742, 2747, 2743, 2749, 2752, - 2755, 2754, 2756, 2758, 2761, 2762, 2764, 2765, 2772, 2768, + 2567, 2568, 2572, 2576, 2577, 2578, 2585, 2580, 6844, 2592, + 2581, 2589, 2590, 2588, 2591, 2594, 2597, 2611, 2601, 2604, + 2606, 2612, 2621, 2614, 2615, 2623, 2631, 2628, 2616, 2641, + 2637, 2638, 2645, 2636, 2647, 2649, 2639, 2650, 2661, 2651, + 2653, 2658, 2656, 2662, 2671, 2672, 2664, 2674, 2667, 2677, + 2675, 2690, 2695, 2686, 6844, 2684, 2679, 2696, 2698, 2705, + 2700, 2701, 2703, 2702, 2706, 2710, 2711, 2712, 2719, 2717, + 2720, 2721, 2722, 2724, 2725, 2732, 2731, 2733, 2736, 2743, + 2737, 2745, 2746, 6844, 2747, 2751, 2740, 2753, 2755, 2757, + 2761, 2763, 2765, 2766, 2767, 2768, 2772, 2773, 2769, 2775, - 2769, 2774, 2770, 6793, 2780, 2771, 2782, 2784, 2789, 2791, - 2790, 2793, 2792, 2800, 2802, 2803, 2804, 2805, 2806, 6793, - 2814, 2815, 2811, 2813, 2823, 2820, 2822, 2824, 2826, 2827, - 6793, 2828, 2830, 2832, 2831, 2834, 2836, 2843, 2844, 2839, - 6793, 2855, 2850, 2840, 2851, 2853, 2852, 2856, 2857, 2861, - 2862, 2867, 2863, 2873, 2869, 2875, 6793, 2876, 2883, 2878, - 2879, 2886, 2884, 2889, 2890, 2901, 2891, 2897, 2893, 6793, - 2916, 2911, 2902, 2918, 2903, 2914, 2919, 2920, 2921, 2923, - 2924, 2927, 2928, 6793, 2929, 2931, 2933, 2934, 2938, 2936, - 2939, 2952, 2945, 2947, 2950, 2953, 2955, 2956, 2960, 2962, + 2774, 2782, 2779, 2781, 2783, 2780, 6844, 2792, 2791, 2796, + 2797, 2799, 2800, 2802, 2809, 2805, 2813, 2815, 2803, 2816, + 2817, 2818, 6844, 2825, 2829, 2827, 2828, 2836, 2826, 2834, + 2837, 2839, 2840, 6844, 2841, 2843, 2049, 2842, 2844, 2845, + 2855, 2856, 2852, 6844, 2865, 2862, 2847, 2851, 2854, 2863, + 2869, 2872, 2870, 2874, 2875, 2878, 2880, 2881, 2884, 6844, + 2886, 2897, 2885, 2892, 2894, 2895, 2898, 2900, 2906, 2907, + 2908, 2912, 6844, 2923, 2920, 2919, 2928, 2921, 2925, 2929, + 2931, 2932, 2934, 2933, 2938, 2935, 6844, 2942, 2939, 2941, + 2944, 2946, 2948, 2949, 2960, 2958, 2961, 2962, 2964, 2965, - 2967, 2959, 2961, 2971, 2973, 2963, 2976, 2979, 2983, 2987, - 2992, 2988, 2989, 2994, 2991, 2995, 2996, 2998, 3006, 3007, - 3010, 3008, 3012, 6793, 3015, 3016, 3018, 3005, 3019, 3021, - 3022, 3025, 3028, 3024, 3026, 3033, 3036, 3030, 3046, 3048, - 3039, 3051, 3041, 3043, 3054, 3053, 3055, 3056, 3057, 3067, - 3064, 3065, 3066, 3077, 3068, 3072, 3079, 3070, 3080, 3081, - 3082, 3083, 3084, 3088, 3090, 3093, 3094, 3095, 3086, 3107, - 3109, 3110, 3112, 3104, 3102, 3118, 3119, 6793, 3122, 3123, - 3120, 3124, 3126, 3130, 3127, 3139, 3134, 3137, 3136, 3143, - 3148, 3145, 3146, 3151, 3153, 3161, 3157, 6793, 3154, 6793, + 2967, 2969, 2971, 2972, 2984, 2973, 2974, 2983, 2985, 2975, + 2987, 2993, 2997, 3000, 3005, 3001, 3002, 3007, 3004, 3008, + 3009, 3011, 3018, 3020, 3023, 3021, 3025, 6844, 3028, 3029, + 3031, 3019, 3032, 3034, 3035, 3036, 3038, 3041, 3045, 3042, + 3046, 3049, 3057, 3064, 3052, 3054, 3059, 3062, 3065, 3066, + 3067, 3069, 3070, 3079, 3075, 3076, 3077, 3090, 3082, 3085, + 3093, 3083, 3092, 3094, 3095, 3098, 3097, 3100, 3104, 3106, + 3107, 3108, 3110, 3117, 3120, 3123, 3121, 3124, 3129, 3130, + 3133, 6844, 3131, 3136, 3132, 3134, 3140, 3145, 3146, 3148, + 3150, 3153, 3155, 3157, 3158, 3159, 3163, 3164, 3167, 3174, - 3158, 3162, 3168, 3176, 3163, 6793, 3175, 6793, 3177, 3182, - 3171, 3178, 6793, 3185, 3184, 3166, 3189, 3190, 3191, 3193, - 3195, 3196, 3197, 3199, 3200, 3203, 3204, 3206, 3207, 3209, - 3217, 3211, 3219, 3223, 3220, 3227, 3230, 3224, 3238, 3214, - 3231, 3240, 3241, 3233, 3242, 6793, 3249, 3243, 3253, 3254, - 3255, 3256, 3258, 3257, 3261, 3260, 3262, 3264, 3267, 3268, - 3279, 3273, 3265, 3280, 3281, 3284, 3292, 3290, 3297, 6793, - 3293, 3295, 3296, 3298, 6793, 3301, 3299, 3302, 3308, 3305, - 3311, 3312, 3313, 3317, 3314, 3321, 3320, 3325, 3330, 3334, - 3335, 6793, 3336, 3337, 3322, 3341, 3349, 3352, 3356, 3353, + 3170, 6844, 3171, 6844, 3172, 3175, 3176, 3184, 3182, 6844, + 3186, 6844, 3188, 3195, 3183, 3190, 3192, 6844, 3197, 3196, + 3198, 3201, 3203, 3204, 3207, 3209, 3212, 3211, 3213, 3214, + 3219, 3220, 3221, 3224, 3225, 3232, 3226, 3229, 3234, 3235, + 3242, 3244, 3237, 3251, 3243, 3253, 3255, 3254, 3256, 3259, + 6844, 3261, 3267, 3263, 3268, 3246, 3269, 3271, 3274, 3277, + 3278, 3279, 3281, 3282, 3284, 3289, 3283, 3290, 3296, 3297, + 3300, 3307, 3298, 3312, 6844, 3308, 3310, 3311, 3313, 6844, + 3315, 3314, 3323, 3325, 3317, 3321, 3327, 3329, 3333, 3328, + 3335, 3336, 3337, 3350, 3348, 3349, 6844, 3345, 3357, 3341, - 3359, 3361, 3357, 3363, 3364, 3355, 3365, 3366, 3367, 3375, - 3378, 3371, 3380, 3379, 3382, 3389, 3385, 3381, 3383, 3391, - 3392, 3393, 3394, 3395, 3396, 3397, 3400, 3411, 3398, 3416, - 6793, 3406, 3415, 3419, 3426, 3401, 3424, 3405, 3428, 3429, - 6793, 3431, 3433, 3434, 3435, 3436, 3441, 3438, 3443, 3444, - 3445, 3446, 3448, 3451, 3449, 6793, 3457, 6793, 3458, 3466, - 3471, 3474, 3464, 3468, 3475, 3480, 3481, 3482, 3484, 3485, - 3487, 3490, 3491, 3493, 3495, 3496, 3497, 3504, 3500, 3503, - 3511, 3510, 3512, 3513, 3521, 3517, 3518, 6793, 6793, 3516, - 3519, 3531, 3527, 3525, 3533, 3535, 3539, 3540, 3542, 3544, + 3358, 3360, 3369, 3370, 3367, 3373, 3375, 3371, 3377, 3378, + 3379, 3380, 3381, 3383, 3390, 3393, 3394, 3395, 3398, 3385, + 3402, 3404, 3405, 3396, 3389, 3406, 3411, 3412, 3413, 3415, + 3416, 3417, 3418, 3419, 3420, 3423, 6844, 3424, 3428, 3432, + 3441, 3433, 3438, 3437, 3444, 3443, 6844, 3447, 3448, 3450, + 3449, 3451, 3456, 3459, 3460, 3462, 3463, 3466, 3467, 3470, + 3469, 6844, 3475, 6844, 3476, 3483, 3478, 3488, 3491, 3489, + 3493, 3498, 3492, 3494, 3499, 3506, 3510, 3500, 3502, 3508, + 3511, 3512, 3514, 3522, 3526, 3520, 3528, 3527, 3529, 3531, + 3538, 3534, 3536, 6844, 6844, 3533, 3535, 3549, 3544, 3542, - 3546, 3553, 6793, 3549, 3554, 3555, 3556, 3568, 3557, 3559, - 3572, 3571, 3567, 3579, 3574, 6793, 3570, 3578, 3588, 3583, - 3584, 3591, 6793, 3586, 6793, 3589, 3595, 3597, 3598, 3600, - 3599, 3601, 3602, 3604, 3606, 3617, 3613, 3625, 3611, 3622, - 3623, 3626, 3627, 3629, 3632, 3636, 3631, 3633, 3634, 6793, - 3640, 3635, 3637, 3642, 3648, 3651, 3654, 3657, 3650, 6793, - 3658, 3661, 3660, 3662, 3664, 3672, 3665, 3675, 3667, 3677, - 3678, 3681, 3682, 3683, 6793, 3680, 3685, 3696, 3689, 3691, - 3697, 3707, 3708, 3713, 6793, 3693, 3710, 3720, 3716, 3717, - 3700, 3718, 3704, 3722, 3723, 3725, 3726, 3727, 3728, 3730, + 3552, 3554, 3556, 3559, 3561, 3546, 3562, 3572, 6844, 3563, + 3570, 3573, 3576, 3584, 3574, 3583, 3593, 3586, 3575, 3594, + 3590, 6844, 3597, 3598, 3605, 3600, 3601, 3608, 6844, 3603, + 6844, 3606, 3607, 3609, 3614, 3615, 3618, 3616, 3621, 3619, + 3623, 3624, 3634, 3641, 3642, 3631, 3640, 3643, 3646, 3647, + 3649, 3645, 3656, 3651, 3652, 3653, 6844, 3660, 3654, 3657, + 3662, 3665, 3670, 3672, 3669, 3676, 6844, 3679, 3680, 3681, + 3682, 3683, 3687, 3688, 3691, 3692, 3696, 3700, 3697, 3693, + 3701, 6844, 3702, 3706, 3715, 3708, 3710, 3712, 3717, 3719, + 3724, 6844, 3725, 3727, 3735, 3732, 3733, 3737, 3738, 3734, - 3733, 3734, 3736, 3735, 3747, 3746, 3738, 3750, 3760, 3740, - 6793, 3756, 3757, 3762, 3763, 3764, 3765, 3767, 3770, 3772, - 3773, 3785, 3786, 3774, 3777, 3789, 3790, 3797, 3796, 6793, - 3806, 3792, 3807, 3803, 3780, 3809, 3814, 3782, 3811, 3818, - 3804, 3815, 3820, 3821, 3822, 3824, 3833, 3828, 3830, 3831, - 3832, 3843, 3834, 6793, 3845, 3846, 3838, 3855, 3848, 3851, - 3862, 3858, 3861, 3863, 3865, 3868, 3869, 3871, 3873, 3874, - 3877, 3872, 6793, 6793, 3879, 3880, 3887, 6793, 3888, 3882, - 3889, 3885, 3899, 3886, 3893, 3902, 3904, 3890, 3910, 3900, - 3906, 6793, 3912, 3920, 3915, 3918, 3927, 3928, 6793, 3919, + 3740, 3742, 3743, 3744, 3746, 3747, 3752, 3748, 3750, 3757, + 3753, 3765, 3767, 3759, 3769, 3781, 3771, 6844, 3776, 3778, + 3780, 3782, 3783, 3784, 3786, 3789, 3791, 3793, 3804, 3805, + 3794, 3799, 3801, 3808, 3810, 3817, 3809, 6844, 3824, 3816, + 3825, 3821, 3823, 3827, 3829, 3831, 3832, 3836, 3838, 3833, + 3839, 3840, 3841, 3847, 3849, 3846, 3850, 3855, 3856, 3863, + 3861, 6844, 3868, 3864, 3869, 3872, 3866, 3871, 3885, 3880, + 3875, 3882, 3888, 3883, 3890, 3892, 3893, 3896, 3899, 3894, + 6844, 6844, 3901, 3902, 3904, 6844, 3907, 3905, 3917, 3906, + 3919, 3908, 3910, 3921, 3923, 3920, 3930, 3924, 3933, 6844, - 3929, 3932, 3934, 3924, 3936, 3940, 3937, 3941, 3942, 3943, - 3945, 3953, 3954, 3950, 3951, 3957, 6793, 3952, 3958, 3962, - 3964, 3955, 3968, 6793, 3965, 3971, 3978, 3976, 3981, 3986, - 3987, 3988, 3993, 3973, 3989, 3995, 3996, 3997, 3998, 4006, - 4002, 4007, 4005, 4008, 4012, 4015, 4009, 6793, 4019, 4023, - 4024, 4026, 6793, 4030, 4033, 4037, 6793, 4041, 4036, 4038, - 4040, 4048, 6793, 4045, 4046, 4047, 4053, 4049, 4061, 4051, - 4064, 4066, 4056, 4060, 4063, 4067, 6793, 4069, 4070, 4071, - 6793, 4082, 4077, 4084, 4087, 4072, 4094, 4090, 4093, 4091, - 4095, 6793, 4100, 6793, 4099, 4101, 4106, 6793, 4103, 4108, + 3934, 3941, 3936, 3937, 3948, 3938, 6844, 3943, 3951, 3953, + 3954, 3955, 3947, 3957, 3958, 3960, 3961, 3965, 3968, 3972, + 3977, 3973, 3974, 3978, 6844, 3975, 3980, 3981, 3984, 3985, + 3988, 6844, 3987, 3990, 3996, 3999, 3992, 4008, 4009, 4000, + 4015, 4010, 4012, 4017, 4018, 4019, 4020, 4021, 4028, 4024, + 4029, 4025, 4032, 4034, 4037, 4043, 6844, 4046, 4048, 4049, + 4051, 6844, 4053, 4062, 4060, 6844, 4063, 4058, 4065, 4066, + 4073, 6844, 4068, 4071, 4074, 4076, 4072, 4085, 4081, 4088, + 4090, 4083, 4087, 4091, 4092, 6844, 4093, 4094, 4095, 6844, + 4098, 4108, 4111, 4115, 4099, 4112, 4116, 4118, 4120, 4121, - 4109, 4111, 4112, 4117, 4118, 4116, 4125, 4126, 4127, 4129, - 4130, 4128, 4133, 4137, 4134, 4135, 4139, 4140, 6793, 4141, - 4143, 4150, 4145, 4155, 4151, 4158, 4148, 4162, 4163, 6793, - 6793, 4172, 6793, 4174, 4164, 4166, 6793, 4168, 4173, 4181, - 4178, 4184, 4186, 4179, 4190, 4191, 6793, 4193, 4200, 6793, - 4194, 4196, 4204, 4205, 4203, 4206, 4207, 4208, 4211, 4212, - 4213, 4214, 4215, 4222, 4216, 4221, 4218, 6793, 4223, 4229, - 4232, 4239, 4231, 4235, 4245, 4241, 4240, 6793, 4251, 4257, - 4247, 4253, 4254, 6793, 4262, 6793, 4250, 4263, 4264, 4267, - 4266, 4279, 6793, 4275, 4270, 4281, 4274, 4278, 4286, 4282, + 6844, 4124, 6844, 4125, 4127, 4131, 6844, 4133, 4134, 4135, + 4137, 4138, 4143, 4144, 4150, 4142, 4151, 4152, 4154, 4155, + 4156, 4157, 4164, 4159, 4166, 4163, 4165, 6844, 4168, 4167, + 4173, 4170, 4183, 4178, 4176, 4186, 4189, 4191, 6844, 6844, + 4193, 6844, 4195, 4196, 4197, 4199, 6844, 4201, 4200, 4208, + 4203, 4205, 4209, 4210, 4218, 4027, 6844, 4222, 4223, 6844, + 4219, 4225, 4232, 4227, 4229, 4230, 4233, 4234, 4237, 4238, + 4239, 4243, 4245, 4244, 4240, 4247, 4248, 6844, 4249, 4250, + 4258, 4264, 4257, 4261, 4265, 4271, 4272, 6844, 4274, 4278, + 4277, 4282, 4283, 6844, 4284, 6844, 4285, 4288, 4286, 4289, - 4289, 4290, 4291, 4298, 4296, 4293, 4295, 4303, 4304, 6793, - 4299, 4305, 4310, 4313, 4315, 4316, 4323, 4320, 4322, 4321, - 4326, 4328, 4329, 4331, 4337, 4335, 4340, 4333, 6793, 4343, - 4346, 4347, 4359, 4349, 4354, 4350, 6793, 4357, 4360, 4366, - 6793, 4364, 4356, 4370, 4373, 4367, 4374, 4375, 4378, 4380, - 4381, 4382, 6793, 4383, 4386, 4384, 4388, 4397, 4390, 6793, - 6793, 4400, 6793, 4401, 4389, 4405, 4408, 4409, 4413, 4411, - 4414, 4416, 4417, 4418, 4421, 4424, 4427, 6793, 4428, 4436, - 4431, 4439, 4448, 4449, 4441, 4446, 4432, 6793, 6793, 4451, - 4455, 4457, 4459, 4460, 4462, 4445, 4471, 4464, 4467, 4473, + 4294, 4302, 6844, 4299, 4300, 4305, 4306, 4307, 4308, 4311, + 4315, 4309, 4317, 4324, 4321, 4322, 4319, 4329, 4325, 6844, + 4330, 4334, 4339, 4340, 4336, 4342, 4350, 4347, 4343, 4346, + 4353, 4355, 4356, 4357, 4359, 4363, 4365, 4366, 6844, 4367, + 4371, 4374, 4381, 4377, 4378, 4382, 6844, 4385, 4383, 4386, + 6844, 4390, 4392, 4393, 4399, 4396, 4400, 4401, 4404, 4405, + 4407, 4408, 4406, 6844, 4410, 4413, 4409, 4426, 4427, 4415, + 6844, 6844, 4428, 6844, 4433, 4417, 4435, 4436, 4416, 4437, + 4443, 4444, 4449, 4438, 4445, 4451, 4452, 4458, 6844, 4459, + 4466, 4461, 4468, 4469, 4476, 4472, 4465, 4474, 6844, 6844, - 4475, 4482, 6793, 4479, 4477, 4484, 4478, 6793, 4485, 4486, - 4489, 4487, 4490, 4493, 4492, 4494, 4496, 4499, 4504, 4505, - 4500, 4513, 4506, 4507, 4516, 4517, 4519, 4520, 4522, 4527, - 6793, 4523, 4529, 4530, 4534, 4535, 4537, 4539, 4538, 4541, - 4551, 6793, 4543, 6793, 4542, 4547, 4546, 4563, 4544, 4554, - 4566, 4567, 4568, 4569, 4572, 4573, 4576, 4577, 4587, 4578, - 4582, 4588, 4590, 4592, 4597, 4598, 6793, 4600, 4584, 4594, - 4601, 4607, 4609, 4610, 4612, 4615, 4617, 4619, 4618, 4621, - 4625, 4622, 4626, 4627, 4628, 4630, 6793, 4632, 4639, 4631, - 4641, 4643, 4645, 4652, 4646, 4654, 4648, 4656, 4657, 6793, + 4480, 4481, 4477, 4485, 4487, 4489, 4490, 4497, 4493, 4499, + 4503, 4504, 4511, 6844, 4506, 4492, 4513, 4495, 6844, 4514, + 4516, 4518, 4519, 4520, 4522, 4526, 4523, 4524, 4527, 4531, + 4528, 4533, 4545, 4535, 4536, 4544, 4538, 4546, 4547, 4537, + 4553, 6844, 4558, 4559, 4562, 4563, 4564, 4565, 4567, 4569, + 4568, 4570, 4577, 6844, 4573, 6844, 4572, 4579, 4592, 4574, + 4575, 4584, 4594, 4597, 4596, 4601, 4603, 4604, 4607, 4608, + 4612, 4602, 4613, 4618, 4620, 4622, 4624, 4625, 6844, 4628, + 4614, 4627, 4631, 4636, 4638, 4639, 4641, 4642, 4645, 4646, + 4648, 4650, 4652, 4654, 4655, 4656, 4657, 4659, 6844, 4662, - 4658, 4660, 4664, 6793, 4665, 4666, 4668, 4670, 4676, 4669, - 4672, 4678, 4680, 6793, 4682, 4684, 4687, 4686, 4690, 4691, - 4692, 4696, 4698, 4699, 4702, 6793, 4712, 4703, 4711, 4714, - 4710, 4713, 4717, 4723, 4721, 6793, 4724, 4725, 4727, 4737, - 4739, 4732, 4734, 4746, 4736, 4743, 4744, 4745, 4751, 4750, - 4752, 4755, 4756, 4757, 4766, 4768, 4763, 6793, 4770, 6793, - 4772, 4773, 4774, 4783, 4778, 4776, 4780, 4784, 4786, 6793, - 4788, 4791, 4794, 4795, 4796, 6793, 4797, 4798, 4800, 4799, - 6793, 4813, 4812, 4801, 4818, 4803, 4819, 6793, 4823, 4824, - 4826, 4834, 4835, 4832, 4837, 4825, 4842, 4833, 4838, 4840, + 4666, 4663, 4670, 4672, 4674, 4676, 4683, 4686, 4675, 4677, + 4687, 6844, 4681, 4688, 4698, 6844, 4691, 4693, 4695, 4700, + 4702, 4703, 4708, 4705, 4706, 6844, 4715, 4709, 4712, 4717, + 4718, 4723, 4724, 4725, 4728, 4730, 4735, 6844, 4733, 4734, + 4739, 4740, 4742, 4743, 4747, 4749, 4748, 6844, 4752, 4758, + 4759, 4751, 4771, 4775, 4760, 4761, 4778, 4777, 4779, 4762, + 4770, 4785, 4780, 4786, 4790, 4791, 4792, 4802, 4803, 4794, + 6844, 4773, 6844, 4801, 4804, 4807, 4811, 4809, 4814, 4815, + 4812, 4819, 6844, 4820, 4822, 4825, 4827, 4826, 6844, 4828, + 4829, 4831, 4832, 6844, 4830, 4843, 4834, 4837, 4851, 4852, - 4846, 4850, 4848, 4849, 6793, 4851, 4853, 4858, 4860, 4861, - 4863, 4864, 4867, 4869, 4866, 6793, 4873, 4874, 4875, 4876, - 4877, 4880, 4882, 4889, 4885, 4892, 4886, 4888, 4896, 4897, - 4898, 4906, 6793, 4899, 4901, 4903, 4916, 4912, 4921, 6793, - 4909, 6793, 4913, 4924, 4926, 4914, 4930, 6793, 6793, 4928, - 4939, 4922, 4936, 4937, 6793, 6793, 4942, 6793, 4938, 6793, - 4943, 4944, 6793, 6793, 4945, 4947, 4948, 4949, 4953, 4952, - 6793, 4962, 6793, 4965, 4963, 4955, 4966, 4967, 6793, 4968, - 4974, 4970, 4978, 4976, 6793, 4980, 4985, 4981, 4983, 6793, - 4992, 4993, 4984, 4986, 6793, 4994, 5001, 4997, 5005, 5006, + 6844, 4856, 4857, 4858, 4865, 4867, 4862, 4869, 4864, 4872, + 4870, 4866, 4874, 4875, 4883, 4881, 4879, 6844, 4885, 4887, + 4892, 4894, 4888, 4896, 4886, 4898, 4901, 4903, 6844, 4904, + 4907, 4908, 4910, 4911, 4913, 4912, 4914, 4921, 4918, 4922, + 4920, 4926, 4929, 4931, 4933, 4935, 6844, 4937, 4939, 4941, + 4950, 4943, 4940, 6844, 4947, 6844, 4952, 4957, 4959, 4953, + 4960, 6844, 6844, 4963, 4970, 4965, 4969, 4971, 6844, 6844, + 4973, 6844, 4974, 6844, 4975, 4978, 6844, 6844, 4976, 4982, + 4983, 4985, 4986, 4988, 6844, 4996, 6844, 4999, 4997, 4984, + 5001, 5002, 6844, 5003, 5006, 5005, 5012, 5011, 6844, 5016, - 5007, 5008, 5011, 5013, 5009, 5014, 5016, 5017, 5024, 5031, - 5033, 5035, 5039, 5028, 5026, 5041, 5042, 5047, 5045, 5049, - 5050, 5051, 5052, 5054, 5056, 5053, 5059, 5061, 5063, 5064, - 5068, 5065, 5066, 5078, 5067, 5079, 5081, 5082, 5085, 5088, - 5089, 5090, 5092, 5093, 5095, 5018, 5094, 5096, 5101, 5098, - 5100, 6793, 5102, 5104, 5105, 5108, 5118, 5119, 5122, 5130, - 5134, 5135, 6793, 5137, 6793, 5139, 5123, 5131, 5125, 5143, - 6793, 5145, 5146, 5147, 5148, 5112, 5150, 5149, 5152, 5153, - 5155, 5156, 6793, 5160, 5161, 5154, 5174, 5163, 6793, 5177, - 5167, 5178, 5179, 5180, 5184, 5182, 5185, 5188, 5189, 5191, + 5019, 5014, 5015, 6844, 5021, 5026, 5018, 5027, 6844, 5033, + 5036, 5038, 5028, 5031, 5039, 5047, 5041, 5042, 5048, 5052, + 5050, 5051, 5053, 5062, 5064, 5066, 5068, 5069, 5054, 5073, + 5074, 5076, 5079, 5082, 5083, 5084, 5085, 5086, 5088, 5090, + 5087, 5092, 5098, 5099, 5100, 5095, 5101, 5108, 5109, 5111, + 5115, 5117, 5118, 5120, 5121, 5122, 5123, 5124, 5125, 5129, + 5130, 5126, 5133, 5137, 5140, 5141, 6844, 5143, 5144, 5145, + 5149, 5150, 5153, 5154, 5163, 5170, 5171, 6844, 5173, 6844, + 5175, 5160, 5177, 5165, 5167, 6844, 5179, 5180, 5181, 5185, + 5183, 5186, 5187, 5190, 5191, 5193, 5194, 6844, 5197, 5200, - 5193, 5195, 5181, 5202, 5205, 6793, 5207, 5210, 5218, 5213, - 5214, 5215, 5216, 5217, 5219, 5221, 5223, 5224, 5233, 5225, - 5236, 6793, 5237, 6793, 5238, 5240, 5242, 5243, 5244, 5245, - 5246, 5248, 6793, 6793, 5251, 5252, 5258, 5253, 5260, 5262, - 5264, 5265, 5269, 6793, 5270, 5272, 5282, 5274, 6793, 5277, - 5279, 5283, 5289, 6793, 5284, 5286, 5290, 5298, 5291, 5301, - 5302, 5304, 5293, 5305, 5306, 5312, 6793, 6793, 6793, 6793, - 5314, 5308, 5319, 5316, 5320, 5322, 5323, 5325, 5328, 5321, - 5324, 6793, 5336, 6793, 6793, 5337, 5338, 5340, 5344, 5345, - 5346, 5347, 5350, 6793, 5348, 6793, 5352, 5355, 5351, 5362, + 5201, 5204, 5208, 6844, 5212, 5216, 5202, 5217, 5218, 5219, + 5222, 5224, 5225, 5228, 5227, 5231, 5230, 5233, 5234, 5239, + 5241, 6844, 5249, 5251, 5258, 5245, 5240, 5253, 5256, 5259, + 5260, 5261, 5262, 5266, 5274, 5269, 5276, 6844, 5265, 6844, + 5277, 5278, 5279, 5282, 5283, 5285, 5287, 5289, 6844, 6844, + 5292, 5293, 5295, 5298, 5299, 5301, 5303, 5304, 5305, 6844, + 5306, 5311, 5323, 5316, 6844, 5310, 5318, 5320, 5327, 6844, + 5324, 5328, 5330, 5332, 5333, 5342, 5339, 5345, 5335, 5343, + 5346, 5348, 6844, 6844, 6844, 6844, 5349, 5353, 5357, 5358, + 5359, 5360, 5361, 5365, 5367, 5363, 5364, 5368, 6844, 5378, - 5368, 5359, 5369, 5371, 5372, 5373, 5374, 5375, 5382, 5380, - 5383, 5381, 5386, 5390, 5395, 6793, 6793, 5387, 5398, 5399, - 5407, 5403, 5404, 5405, 5416, 5411, 5412, 5413, 5414, 5418, - 5420, 5427, 5430, 5423, 5425, 6793, 5431, 5434, 5432, 6793, - 5433, 6793, 5442, 5443, 5436, 5440, 5446, 5449, 5450, 5452, - 5457, 6793, 6793, 5456, 5465, 5460, 6793, 6793, 5444, 5464, - 5467, 5469, 5470, 5471, 5472, 5473, 5476, 5478, 6793, 5479, - 6793, 5480, 5483, 5492, 5482, 5495, 5499, 5485, 5502, 5505, - 5498, 5508, 6793, 5501, 5509, 6793, 5517, 5512, 5514, 5516, - 5519, 6793, 5520, 5523, 5525, 5527, 6793, 5529, 5531, 5532, + 6844, 6844, 5380, 5381, 5379, 5382, 5388, 5389, 5390, 5392, + 6844, 5391, 6844, 5397, 5398, 5394, 5405, 5411, 5407, 5395, + 5416, 5413, 5417, 5401, 5418, 5427, 5423, 5424, 5426, 5429, + 5431, 5433, 6844, 6844, 5435, 5438, 5439, 5446, 5444, 5447, + 5443, 5456, 5451, 5453, 5454, 5459, 5460, 5461, 5470, 5471, + 5462, 5466, 6844, 5469, 5472, 5480, 6844, 5473, 6844, 5479, + 5481, 5487, 5475, 5488, 5489, 5490, 5494, 5491, 5497, 6844, + 6844, 5496, 5509, 5504, 6844, 6844, 5505, 5506, 5508, 5512, + 5513, 5515, 5507, 5517, 5519, 5521, 6844, 5522, 6844, 5523, + 5525, 5531, 5528, 5539, 5541, 5536, 5544, 5546, 5542, 5547, - 6793, 5539, 6793, 5533, 5540, 5536, 5550, 5542, 6793, 5543, - 5546, 6793, 5552, 5556, 5557, 5558, 5559, 6793, 5562, 5564, - 6793, 5565, 5567, 5568, 5574, 5575, 5577, 5570, 5578, 5579, - 5586, 5588, 5591, 6793, 6793, 5598, 5584, 135, 5600, 5581, - 5597, 5601, 5602, 5609, 5605, 5606, 5612, 6793, 6793, 5613, - 6793, 5607, 5616, 6793, 5614, 5620, 5624, 5626, 5622, 5628, - 5629, 5631, 5633, 5634, 5647, 5637, 5635, 5652, 5642, 5662, - 5638, 5664, 5665, 5667, 5669, 5671, 5659, 5673, 5674, 5653, - 5676, 5677, 5680, 5681, 5683, 5684, 5685, 6793, 5688, 5696, - 5697, 5689, 6793, 5702, 5691, 5709, 5706, 6793, 5713, 5710, + 6844, 5548, 5549, 6844, 5561, 5556, 5560, 5551, 5558, 6844, + 5566, 5563, 5569, 5571, 6844, 5575, 5572, 5577, 6844, 5579, + 6844, 5580, 5583, 5584, 5591, 5586, 6844, 5587, 5592, 6844, + 5595, 5602, 5604, 5605, 5597, 5599, 6844, 5614, 5606, 6844, + 5589, 5616, 5617, 5620, 5611, 5622, 5623, 5625, 5627, 5634, + 5630, 5631, 6844, 6844, 5638, 5637, 135, 5645, 5633, 5640, + 5646, 5647, 5654, 5649, 5651, 5658, 6844, 6844, 5659, 6844, + 5661, 5662, 6844, 5650, 5667, 5671, 5663, 5668, 5676, 5677, + 5678, 5683, 5679, 5684, 5685, 5686, 5688, 5704, 5707, 5689, + 5691, 5709, 5711, 5713, 5715, 5717, 5719, 5720, 5702, 5700, - 5714, 5715, 5716, 6793, 5703, 5718, 5722, 5720, 5727, 5728, - 5640, 5736, 5731, 5732, 5733, 6793, 6793, 6793, 5738, 5748, - 6793, 5750, 5740, 5734, 5742, 6793, 5752, 5753, 5745, 6793, - 6793, 5755, 5756, 5758, 6793, 5763, 5770, 6793, 5765, 6793, - 5766, 6793, 5768, 5769, 5771, 5775, 6793, 5776, 5778, 5779, - 5785, 6793, 5795, 5797, 5799, 5792, 5782, 5788, 5800, 6793, - 5809, 5806, 5808, 5815, 5804, 5812, 5810, 5816, 5817, 5825, - 5818, 5827, 6793, 5828, 5829, 5833, 5836, 5820, 5830, 5840, - 6793, 5841, 6793, 5847, 6793, 5844, 5849, 5848, 5842, 5850, - 5853, 5856, 5854, 5858, 5867, 5860, 5863, 5865, 5871, 5873, + 5723, 5724, 5721, 5727, 5730, 5728, 5731, 6844, 5734, 5742, + 5743, 5736, 6844, 5745, 5749, 5753, 5750, 6844, 5758, 5738, + 5759, 5760, 5761, 6844, 5762, 5764, 5767, 5765, 5766, 5772, + 5773, 5782, 5777, 5775, 5787, 6844, 6844, 6844, 5789, 5779, + 6844, 5793, 5786, 5795, 5796, 6844, 5798, 5799, 5801, 6844, + 6844, 6844, 5802, 5804, 5803, 6844, 5805, 5816, 6844, 5806, + 6844, 5807, 6844, 5817, 5819, 5829, 5823, 6844, 5821, 5831, + 5833, 5834, 6844, 5837, 5840, 5842, 5843, 5845, 5848, 5846, + 6844, 5855, 5853, 5854, 5857, 5850, 5860, 5861, 5864, 5862, + 5876, 5863, 5874, 6844, 5811, 5866, 5878, 5884, 5875, 5877, - 6793, 6793, 5875, 5877, 6793, 5879, 6793, 5883, 6793, 5880, - 5885, 5884, 5886, 5888, 6793, 5895, 5887, 5890, 5903, 5898, - 5904, 6793, 5905, 5908, 5909, 5911, 6793, 6793, 5912, 5919, - 5915, 6793, 5914, 5917, 5925, 5918, 5926, 5930, 5927, 5931, - 5934, 5941, 5937, 5939, 5942, 5944, 5945, 5947, 5952, 5957, - 6793, 6793, 6793, 5953, 5948, 5967, 5964, 5966, 5976, 5959, - 6793, 5973, 5972, 5974, 5975, 5986, 5981, 5983, 6793, 5984, - 5985, 5987, 5988, 5990, 5991, 5992, 5993, 6793, 6005, 6007, - 5995, 5997, 6009, 6016, 6018, 6020, 6022, 6013, 6023, 6030, - 6027, 6793, 6029, 6793, 6793, 6025, 6793, 6031, 6033, 6035, + 5881, 6844, 5879, 6844, 5887, 6844, 5889, 5890, 5891, 5893, + 5898, 5895, 5900, 5901, 5905, 5906, 5912, 5908, 5914, 5915, + 5921, 5916, 6844, 6844, 5923, 5925, 6844, 5918, 6844, 5928, + 6844, 5929, 5930, 5931, 5933, 5937, 6844, 5944, 5934, 5938, + 5956, 5940, 5948, 6844, 5951, 5955, 5953, 5958, 6844, 6844, + 5959, 5966, 5965, 6844, 5961, 5974, 5976, 5962, 5964, 5981, + 5971, 5978, 5968, 5991, 5986, 5989, 5990, 5993, 5994, 5995, + 5996, 6002, 6844, 6844, 6844, 6004, 5997, 6012, 6008, 6011, + 6019, 6015, 6844, 6018, 6021, 6022, 6024, 6031, 6028, 6030, + 6844, 6026, 6032, 6034, 6035, 6037, 6039, 6040, 6042, 6844, - 6034, 6036, 6793, 6039, 6040, 6041, 6043, 6042, 6050, 6046, - 6048, 6793, 6058, 6051, 6061, 6063, 6793, 6793, 6064, 6070, - 6793, 6073, 6074, 6067, 6082, 6065, 6075, 6087, 6084, 6793, - 6088, 6090, 6078, 6091, 6094, 6093, 6096, 6793, 6100, 6097, - 6101, 6103, 6793, 6104, 6109, 6110, 6112, 6113, 6793, 6114, - 6106, 6130, 6115, 6793, 6117, 6129, 6131, 6793, 6793, 6135, - 6139, 6136, 6793, 6793, 6793, 6793, 6142, 6143, 6145, 6147, - 6793, 6150, 6154, 6158, 6160, 6165, 6153, 6793, 6161, 6167, - 6169, 6170, 6171, 6793, 6793, 6172, 6173, 6174, 6178, 6175, - 6793, 6793, 6180, 6182, 6183, 6181, 6184, 6793, 6186, 6191, + 6053, 6055, 6061, 6044, 6057, 6062, 6064, 6066, 6069, 6073, + 6070, 6074, 6047, 6075, 6844, 6077, 6844, 6844, 6078, 6844, + 6079, 6081, 6085, 6084, 6086, 6844, 6089, 6082, 6090, 6091, + 6092, 6093, 6095, 6099, 6844, 6113, 6096, 6110, 6114, 6844, + 6844, 6111, 6118, 6844, 6121, 6122, 6123, 6130, 6126, 6125, + 6135, 6131, 6844, 6139, 6140, 6128, 6141, 6142, 6144, 6146, + 6844, 6149, 6150, 6151, 6153, 6844, 6154, 6158, 6159, 6160, + 6162, 6844, 6163, 6155, 6170, 6178, 6844, 6165, 6179, 6180, + 6844, 6844, 6844, 6187, 6189, 6190, 6844, 6844, 6844, 6844, + 6192, 6195, 6184, 6197, 6844, 6199, 6204, 6208, 6210, 6214, - 6198, 6194, 6200, 6207, 6209, 6202, 6210, 6211, 6219, 6222, - 6212, 6214, 6221, 6225, 6226, 6224, 6228, 6238, 6233, 6235, - 6241, 6236, 6244, 6793, 6793, 6246, 6793, 6248, 6250, 6793, - 6793, 6253, 6255, 6257, 6261, 6793, 6263, 6265, 6267, 6269, - 6258, 6793, 6270, 6272, 6273, 6274, 6275, 6793, 6277, 6278, - 6281, 6283, 6287, 6289, 6290, 6293, 6793, 6288, 6305, 6793, - 6793, 6294, 6296, 6285, 6306, 6302, 6793, 6310, 6314, 6309, - 6316, 6315, 6317, 6322, 6793, 6318, 6319, 6793, 6793, 6325, - 6326, 6793, 6793, 6327, 6793, 6793, 6793, 6793, 6793, 6793, - 6793, 6793, 6331, 6330, 6793, 6332, 6340, 6343, 6793, 6347, + 6213, 6844, 6215, 6207, 6219, 6221, 6222, 6844, 6844, 6223, + 6224, 6225, 6227, 6228, 6844, 6844, 6229, 6231, 6233, 6232, + 6234, 6844, 6235, 6240, 6247, 6242, 6255, 6258, 6260, 6250, + 6261, 6262, 6269, 6270, 6252, 6267, 6272, 6273, 6275, 6276, + 6284, 6285, 6281, 6289, 6291, 6286, 6292, 6844, 6844, 6299, + 6844, 6303, 6296, 6844, 6844, 6307, 6309, 6311, 6313, 6844, + 6315, 6317, 6319, 6321, 6300, 6844, 6322, 6324, 6325, 6327, + 6328, 6844, 6330, 6332, 6336, 6337, 6333, 6338, 6340, 6343, + 6844, 6344, 6354, 6844, 6844, 6345, 6355, 6347, 6356, 6349, + 6844, 6361, 6366, 6362, 6365, 6368, 6371, 6369, 6844, 6372, - 6793, 6337, 6348, 6350, 6344, 6793, 6349, 6793, 6351, 6355, - 6356, 6365, 6358, 6368, 6359, 6352, 6362, 6370, 6375, 6376, - 6378, 6377, 6379, 6381, 6383, 6393, 6385, 6390, 6793, 6793, - 6793, 6382, 6394, 6398, 6399, 6404, 6406, 6410, 6412, 6401, - 6413, 6415, 6416, 6417, 6419, 6423, 6430, 6425, 6428, 6426, - 6435, 6427, 6437, 6793, 6442, 6443, 6429, 6446, 6793, 6449, - 6793, 6432, 6793, 6793, 6452, 6453, 6455, 6456, 6465, 6466, - 6457, 6461, 6462, 6467, 6469, 6793, 6477, 6793, 6793, 6470, - 6473, 6793, 6478, 6479, 6793, 6480, 6482, 6484, 6485, 6486, - 6488, 6489, 6490, 6497, 6793, 6793, 6501, 6502, 6504, 6506, + 6374, 6844, 6844, 6375, 6377, 6844, 6844, 6380, 6844, 6844, + 6844, 6844, 6844, 6844, 6844, 6844, 6381, 6388, 6844, 6382, + 6394, 6397, 6844, 6399, 6844, 6384, 6400, 6401, 6390, 6844, + 6402, 6844, 6403, 6404, 6408, 6412, 6417, 6418, 6411, 6420, + 6422, 6421, 6423, 6427, 6425, 6429, 6428, 6430, 6431, 6444, + 6435, 6445, 6844, 6844, 6844, 6438, 6446, 6454, 6447, 6458, + 6459, 6462, 6464, 6449, 6465, 6467, 6469, 6471, 6472, 6473, + 6481, 6477, 6478, 6479, 6483, 6480, 6487, 6844, 6493, 6489, + 6494, 6496, 6844, 6499, 6844, 6498, 6844, 6844, 6502, 6505, + 6503, 6507, 6515, 6518, 6508, 6510, 6517, 6519, 6521, 6844, - 6508, 6515, 6510, 6512, 6514, 6522, 6516, 6524, 6793, 6526, - 6528, 6530, 6793, 6532, 6531, 6534, 6537, 6538, 6545, 6540, - 6542, 6793, 6543, 6793, 6547, 6549, 6548, 6551, 6552, 6554, - 6562, 6560, 6564, 6793, 6566, 6568, 6572, 6573, 6575, 6578, - 6579, 6580, 6582, 6584, 6585, 6594, 6588, 6590, 6596, 6598, - 6600, 6793, 6602, 6604, 6793, 6605, 6606, 6607, 6608, 6612, - 6793, 6617, 6609, 6614, 6620, 6625, 6622, 6793, 6631, 6635, - 6632, 6793, 6636, 6793, 6793, 6637, 6638, 6640, 6644, 6646, - 6793, 6793, 6793, 6673, 6680, 6687, 6694, 6701, 6708, 6715, - 88, 6722, 6729, 6736, 6743, 6750, 6757, 6764, 6771, 6778, + 6528, 6844, 6844, 6525, 6529, 6844, 6530, 6531, 6844, 6532, + 6533, 6534, 6537, 6541, 6539, 6540, 6542, 6556, 6844, 6844, + 6543, 6548, 6551, 6560, 6557, 6567, 6564, 6568, 6569, 6571, + 6572, 6581, 6844, 6578, 6579, 6583, 6844, 6585, 6580, 6586, + 6587, 6588, 6596, 6592, 6595, 6844, 6597, 6844, 6601, 6603, + 6604, 6594, 6602, 6605, 6616, 6614, 6610, 6844, 6620, 6624, + 6622, 6626, 6628, 6630, 6631, 6632, 6634, 6637, 6643, 6640, + 6647, 6648, 6644, 6652, 6649, 6844, 6659, 6650, 6844, 6656, + 6660, 6653, 6662, 6666, 6844, 6671, 6664, 6673, 6674, 6677, + 6678, 6844, 6680, 6687, 6682, 6844, 6688, 6844, 6844, 6690, - 6785 + 6684, 6691, 6697, 6699, 6844, 6844, 6844, 6724, 6731, 6738, + 6745, 6752, 6759, 6766, 88, 6773, 6780, 6787, 6794, 6801, + 6808, 6815, 6822, 6829, 6836 } ; -static const flex_int16_t yy_def[3502] = +static const flex_int16_t yy_def[3526] = { 0, - 3483, 1, 3484, 3484, 3485, 3485, 3486, 3486, 3487, 3487, - 3488, 3488, 3489, 3489, 3490, 3490, 3483, 3491, 3483, 3483, - 3483, 3483, 3492, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3493, 3483, 3483, 3483, - 3493, 3494, 3483, 3483, 3483, 3494, 3495, 3483, 3483, 3483, - 3483, 3495, 3496, 3483, 3483, 3483, 3496, 3497, 3483, 3498, - 3483, 3497, 3497, 3499, 3483, 3483, 3483, 3483, 3499, 3500, - 3483, 3483, 3483, 3500, 3491, 3491, 3483, 3501, 3492, 3501, - 3492, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3507, 1, 3508, 3508, 3509, 3509, 3510, 3510, 3511, 3511, + 3512, 3512, 3513, 3513, 3514, 3514, 3507, 3515, 3507, 3507, + 3507, 3507, 3516, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3517, 3507, 3507, 3507, + 3517, 3518, 3507, 3507, 3507, 3518, 3519, 3507, 3507, 3507, + 3507, 3519, 3520, 3507, 3507, 3507, 3520, 3521, 3507, 3522, + 3507, 3521, 3521, 3523, 3507, 3507, 3507, 3507, 3523, 3524, + 3507, 3507, 3507, 3524, 3515, 3515, 3507, 3525, 3516, 3525, + 3516, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3493, - 3493, 3494, 3494, 3495, 3495, 3483, 3496, 3496, 3497, 3497, - 3498, 3498, 3497, 3499, 3499, 3483, 3500, 3500, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3517, + 3517, 3518, 3518, 3519, 3519, 3507, 3520, 3520, 3521, 3521, + 3522, 3522, 3521, 3523, 3523, 3507, 3524, 3524, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3521, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3521, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3483, 3483, 3491, 3483, 3483, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3521, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3507, 3507, 3515, 3507, 3507, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3497, 3497, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3521, 3521, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3521, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3521, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3497, 3491, 3483, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3521, 3515, 3507, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3483, 3491, 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3507, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, + 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3497, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3521, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, - 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3483, 3491, 3483, - 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3507, + 3515, 3507, 3515, 3507, 3515, 3515, 3507, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3497, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3521, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3483, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3507, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3491, 3491, 3491, 3497, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3483, 3491, 3491, 3491, 3483, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, + 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3521, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, + 3507, 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3497, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3491, - 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3507, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3515, 3515, 3521, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, 3507, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3483, 3483, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, - 3483, 3491, 3491, 3491, 3483, 3491, 3491, 3483, 3491, 3483, - 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3507, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3507, + 3507, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3507, 3515, + 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, - 3483, 3483, 3491, 3491, 3483, 3491, 3483, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3483, 3491, 3483, 3491, 3491, 3491, + 3515, 3507, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3515, 3515, 3507, 3515, 3507, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3507, + 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3483, 3491, - 3491, 3491, 3483, 3483, 3483, 3483, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, - 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3507, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3507, + 3507, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3507, 3507, 3507, 3515, 3515, 3515, 3507, 3507, 3507, 3507, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3483, 3491, 3483, 3491, 3491, 3483, - 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, - 3483, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3491, 3491, 3483, 3483, 3491, - 3491, 3483, 3483, 3491, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3483, 3491, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, + 3515, 3515, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, 3515, + 3507, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3507, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3507, 3507, 3515, 3515, 3515, 3515, 3515, + 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, - 3483, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3483, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3483, 3491, - 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3483, 3483, 3491, - 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3483, 3483, 3491, 3491, 3491, 3491, + 3515, 3507, 3507, 3515, 3515, 3507, 3507, 3515, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3515, 3515, 3507, 3515, + 3515, 3515, 3507, 3515, 3507, 3515, 3515, 3515, 3515, 3507, + 3515, 3507, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3507, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3507, 3515, 3507, 3515, 3507, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, - 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491, - 3491, 3483, 3491, 3491, 3483, 3491, 3491, 3491, 3491, 3491, - 3483, 3491, 3491, 3491, 3491, 3491, 3491, 3483, 3491, 3491, - 3491, 3483, 3491, 3483, 3483, 3491, 3491, 3491, 3491, 3491, - 3483, 3483, 0, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3515, 3507, 3507, 3515, 3515, 3507, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3507, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, + 3515, 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3507, 3515, + 3515, 3515, 3515, 3515, 3507, 3515, 3515, 3515, 3515, 3515, + 3515, 3507, 3515, 3515, 3515, 3507, 3515, 3507, 3507, 3515, - 3483 + 3515, 3515, 3515, 3515, 3507, 3507, 0, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507 } ; -static const flex_int16_t yy_nxt[6834] = +static const flex_int16_t yy_nxt[6885] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1742,591 +1749,596 @@ static const flex_int16_t yy_nxt[6834] = 86, 855, 86, 860, 857, 86, 863, 858, 861, 86, 86, 86, 864, 866, 86, 86, 86, 859, 865, 86, 872, 86, 86, 867, 86, 873, 86, 86, 86, 86, - 86, 874, 868, 869, 881, 870, 879, 86, 86, 871, - 86, 86, 875, 876, 86, 86, 86, 877, 86, 878, - 86, 86, 880, 86, 86, 883, 884, 888, 882, 86, - 86, 86, 86, 86, 885, 896, 889, 886, 895, 887, - 890, 86, 897, 86, 86, 86, 899, 891, 892, 893, + 86, 874, 868, 869, 86, 870, 86, 879, 882, 871, + 86, 86, 875, 876, 86, 86, 880, 877, 86, 878, + 86, 881, 86, 86, 86, 884, 889, 885, 86, 86, + 883, 86, 86, 86, 86, 86, 898, 886, 896, 86, + 891, 887, 888, 899, 86, 86, 890, 892, 897, 893, - 894, 86, 86, 86, 86, 898, 901, 903, 902, 86, - 86, 86, 900, 86, 86, 86, 908, 907, 86, 904, - 909, 86, 906, 905, 86, 914, 911, 86, 86, 912, - 86, 86, 170, 913, 919, 86, 915, 920, 910, 917, - 86, 86, 916, 918, 921, 86, 86, 86, 86, 922, - 925, 86, 928, 86, 86, 929, 924, 931, 86, 86, - 923, 86, 926, 930, 932, 86, 86, 935, 86, 86, - 933, 86, 927, 86, 86, 937, 941, 86, 86, 86, - 938, 86, 86, 86, 934, 942, 936, 86, 943, 86, - 86, 86, 940, 86, 939, 86, 944, 957, 86, 956, + 894, 895, 86, 86, 86, 86, 86, 86, 900, 904, + 86, 86, 86, 902, 901, 909, 86, 903, 908, 910, + 907, 905, 86, 86, 86, 906, 86, 912, 913, 86, + 86, 86, 86, 915, 86, 86, 86, 922, 916, 920, + 911, 918, 914, 919, 917, 86, 170, 86, 86, 924, + 86, 921, 923, 86, 929, 86, 925, 928, 86, 86, + 930, 932, 86, 933, 86, 926, 86, 927, 931, 936, + 86, 86, 86, 934, 86, 86, 938, 86, 942, 86, + 86, 86, 86, 939, 86, 935, 86, 943, 944, 86, + 937, 86, 86, 86, 963, 941, 86, 86, 945, 940, - 86, 958, 954, 946, 945, 86, 955, 947, 86, 959, - 948, 86, 86, 967, 949, 961, 965, 950, 86, 962, - 86, 963, 86, 86, 951, 952, 968, 953, 960, 86, - 86, 86, 86, 964, 86, 977, 86, 966, 86, 969, - 970, 86, 971, 86, 86, 972, 984, 980, 982, 976, - 973, 86, 978, 86, 979, 86, 974, 975, 981, 86, - 986, 990, 86, 86, 983, 989, 991, 86, 987, 86, - 985, 86, 993, 86, 86, 1001, 992, 86, 994, 995, - 86, 996, 997, 86, 988, 86, 998, 1000, 86, 86, - 999, 86, 86, 86, 86, 86, 1004, 86, 1008, 86, + 957, 178, 958, 959, 955, 86, 947, 946, 86, 956, + 948, 86, 86, 949, 960, 86, 962, 950, 86, 964, + 951, 86, 965, 86, 86, 86, 969, 952, 953, 86, + 954, 961, 86, 86, 978, 86, 86, 967, 86, 966, + 981, 86, 86, 980, 968, 86, 970, 971, 993, 972, + 86, 86, 973, 977, 983, 86, 979, 974, 86, 86, + 985, 986, 982, 975, 976, 86, 86, 86, 990, 991, + 984, 987, 1055, 988, 992, 86, 989, 86, 994, 86, + 86, 997, 995, 86, 996, 86, 86, 86, 998, 999, + 1000, 1001, 86, 86, 86, 1002, 86, 86, 86, 1003, - 86, 1002, 1007, 86, 86, 1011, 86, 86, 1017, 86, - 1003, 1013, 1015, 1005, 1006, 1009, 86, 1010, 86, 86, - 1018, 1016, 86, 86, 1012, 1019, 86, 1020, 1021, 1014, - 1023, 1028, 86, 1025, 86, 86, 86, 1024, 1022, 86, - 86, 1027, 86, 1026, 1029, 86, 1030, 86, 86, 86, - 1031, 86, 86, 86, 1033, 86, 1038, 86, 1034, 86, - 1041, 86, 86, 86, 86, 86, 1032, 1042, 1039, 1036, - 1035, 1040, 86, 86, 1037, 86, 86, 1047, 86, 86, - 86, 1043, 1049, 86, 1044, 1045, 86, 1048, 1046, 86, - 1052, 1050, 1053, 1055, 1051, 86, 1057, 86, 1056, 86, + 1005, 86, 86, 1009, 86, 86, 1008, 86, 86, 1012, + 86, 86, 1016, 1004, 1018, 86, 86, 1006, 86, 1010, + 1007, 1011, 1014, 1013, 86, 1019, 176, 86, 1022, 1017, + 1020, 86, 1021, 1015, 86, 1023, 1024, 86, 86, 1026, + 1027, 86, 86, 1025, 86, 86, 86, 1028, 1030, 86, + 1031, 86, 1029, 86, 1032, 86, 86, 86, 86, 86, + 1034, 1039, 86, 1035, 86, 1042, 86, 86, 86, 86, + 86, 1033, 86, 1040, 1037, 1036, 1041, 1043, 1038, 1045, + 86, 1046, 86, 86, 86, 1048, 1044, 1050, 86, 86, + 86, 1049, 86, 1047, 1051, 86, 1058, 86, 1056, 86, - 86, 86, 1054, 86, 86, 86, 86, 86, 1063, 1065, - 1060, 86, 1058, 1066, 86, 86, 1064, 86, 86, 1059, - 1068, 86, 1062, 86, 86, 86, 1070, 1061, 86, 1079, - 86, 86, 1067, 1074, 1076, 86, 86, 86, 1069, 86, - 1072, 1071, 86, 1073, 86, 1080, 1077, 86, 1075, 1081, - 1078, 86, 1085, 1084, 86, 86, 1083, 86, 1082, 1087, - 1088, 86, 86, 86, 86, 1086, 86, 86, 86, 1098, - 86, 1091, 1093, 1099, 1089, 86, 1101, 1090, 86, 86, - 86, 86, 86, 1092, 86, 1104, 1094, 1096, 1106, 1095, - 1097, 86, 1100, 1105, 1102, 86, 86, 86, 86, 86, + 86, 1054, 1052, 1057, 86, 86, 86, 86, 86, 1061, + 86, 1064, 1059, 86, 86, 1053, 1066, 86, 1060, 1065, + 1067, 86, 1069, 86, 1063, 86, 86, 86, 1068, 1062, + 86, 1070, 86, 1071, 86, 86, 1075, 86, 1077, 1080, + 86, 86, 86, 1072, 86, 86, 1074, 1073, 86, 1081, + 1078, 1085, 86, 1076, 1079, 86, 1082, 1083, 1086, 86, + 86, 1084, 1088, 1087, 1089, 1090, 86, 86, 86, 86, + 86, 86, 86, 86, 1100, 86, 1101, 1093, 1095, 1091, + 86, 86, 86, 86, 1103, 86, 86, 1092, 86, 1094, + 86, 1096, 1098, 86, 1097, 1099, 1106, 1102, 1107, 1104, - 1113, 1103, 1110, 86, 1112, 1114, 86, 86, 1108, 86, - 1115, 86, 86, 86, 1107, 1118, 1109, 1120, 86, 1111, - 86, 86, 86, 86, 86, 1117, 86, 1116, 1122, 1123, - 1126, 86, 1130, 1119, 86, 1127, 170, 1128, 1121, 86, - 86, 86, 1124, 1129, 1125, 1133, 1131, 86, 86, 86, - 86, 86, 86, 1146, 1132, 86, 1149, 86, 86, 1147, - 1134, 86, 1136, 1137, 86, 1151, 86, 1175, 86, 1138, - 86, 1135, 1139, 86, 86, 1154, 1140, 86, 1141, 1148, - 1156, 1152, 1142, 1150, 1143, 1157, 86, 86, 1153, 1144, - 86, 1155, 86, 86, 1145, 86, 1158, 1160, 86, 86, + 1110, 1105, 86, 86, 86, 1109, 86, 1108, 1111, 86, + 1114, 1112, 1115, 1116, 1113, 86, 86, 86, 86, 86, + 1117, 1120, 86, 1122, 86, 86, 86, 86, 86, 1119, + 86, 1124, 86, 1118, 1128, 1125, 86, 86, 86, 1129, + 170, 1131, 1121, 1123, 86, 1130, 86, 1132, 1126, 86, + 1127, 86, 1137, 86, 1135, 86, 86, 1136, 1133, 86, + 1148, 86, 86, 86, 1134, 1138, 1139, 1149, 1151, 86, + 86, 86, 1555, 86, 86, 1140, 1150, 1141, 86, 86, + 86, 1142, 1160, 1143, 1153, 86, 1154, 1144, 1155, 1145, + 1156, 1158, 86, 1157, 1146, 1152, 1159, 86, 86, 1147, - 1163, 86, 86, 1166, 1159, 86, 86, 1162, 86, 1161, - 1164, 1165, 1171, 86, 1173, 1167, 1174, 1170, 1172, 1169, - 86, 1176, 86, 1168, 1177, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 1189, 86, 1192, 86, 86, 86, - 1188, 1194, 1193, 86, 1191, 86, 1179, 1178, 86, 1180, - 86, 1181, 1190, 86, 1200, 1195, 1182, 1196, 1183, 86, - 86, 1199, 86, 86, 1184, 86, 86, 1197, 1201, 1185, - 1186, 1202, 1198, 86, 1207, 86, 1187, 86, 86, 1210, - 1203, 1204, 1208, 86, 1205, 86, 1211, 86, 86, 86, - 1215, 1206, 86, 1213, 86, 86, 86, 1209, 86, 1216, + 86, 86, 1162, 86, 86, 86, 1161, 86, 1165, 1168, + 86, 86, 86, 1167, 1163, 1164, 86, 1174, 1166, 1169, + 1172, 1175, 1173, 1176, 1171, 1177, 86, 86, 1170, 86, + 1178, 1179, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 1191, 86, 86, 86, 1194, 1190, 1195, 1196, 86, + 86, 86, 1181, 1192, 1180, 1193, 1182, 86, 1183, 86, + 86, 1202, 86, 1184, 86, 1185, 1197, 86, 1199, 1203, + 1200, 1186, 1204, 1198, 86, 86, 1187, 1188, 1201, 86, + 86, 1209, 86, 1189, 86, 86, 86, 1212, 1210, 1213, + 86, 1206, 1205, 86, 86, 86, 1217, 1207, 1208, 1215, - 86, 86, 1214, 1221, 1218, 86, 1212, 1219, 86, 86, - 1222, 1217, 86, 1224, 86, 86, 1220, 86, 86, 86, - 86, 86, 86, 86, 1223, 1231, 86, 1229, 1226, 1228, - 1230, 86, 1225, 1233, 86, 1227, 1237, 1232, 1234, 86, - 1235, 86, 86, 1236, 86, 86, 86, 86, 86, 178, - 1242, 1243, 1244, 1238, 86, 1239, 86, 1245, 1247, 1241, - 1240, 86, 1246, 1248, 86, 86, 86, 1252, 86, 86, - 86, 1249, 1253, 86, 86, 86, 1254, 1256, 1250, 1255, - 86, 86, 1251, 1257, 86, 1263, 1259, 86, 1258, 1265, - 86, 86, 86, 86, 1261, 86, 86, 1267, 1260, 1262, + 86, 86, 86, 86, 86, 1211, 1218, 86, 1216, 1214, + 1223, 86, 1220, 1221, 86, 86, 86, 86, 86, 1219, + 1224, 86, 1226, 1222, 86, 86, 86, 86, 86, 175, + 86, 86, 1228, 1225, 1231, 1227, 1230, 1232, 86, 1235, + 86, 1229, 86, 1234, 1233, 86, 1236, 1238, 86, 86, + 1240, 86, 86, 1239, 1237, 86, 1241, 1244, 86, 86, + 1245, 86, 1248, 1246, 1249, 86, 1243, 1242, 1247, 86, + 86, 86, 86, 1254, 1250, 86, 86, 1256, 1255, 86, + 1257, 86, 86, 86, 1251, 1252, 1258, 1253, 86, 1259, + 86, 1265, 86, 86, 1267, 86, 86, 86, 1261, 86, - 86, 86, 86, 1269, 86, 1266, 1271, 1264, 86, 1272, - 1268, 86, 86, 86, 1270, 86, 1275, 1274, 1273, 1278, - 1276, 86, 86, 1281, 1277, 1282, 86, 86, 1280, 86, - 86, 86, 86, 1286, 1285, 86, 1283, 1279, 86, 86, - 86, 86, 86, 1290, 1292, 1293, 1296, 1294, 1284, 86, - 86, 86, 86, 1287, 1291, 86, 86, 1288, 1298, 1289, - 1295, 1297, 86, 86, 86, 1302, 86, 1299, 86, 1301, - 86, 86, 86, 1303, 1304, 86, 86, 86, 86, 1305, - 1309, 1300, 86, 86, 1307, 1306, 1310, 1312, 86, 1311, - 86, 1308, 86, 1316, 1317, 86, 86, 1320, 86, 86, + 86, 1260, 86, 1263, 1269, 86, 1262, 1264, 1271, 86, + 1268, 86, 86, 1266, 1273, 86, 1270, 1272, 86, 86, + 1274, 1276, 86, 1277, 1278, 86, 86, 1275, 86, 86, + 1283, 1280, 1284, 86, 1279, 1282, 86, 1285, 86, 86, + 86, 86, 1281, 1287, 86, 1288, 86, 86, 86, 1294, + 1292, 86, 1295, 1296, 1312, 86, 1286, 1289, 86, 86, + 1290, 1293, 86, 86, 1299, 1301, 1291, 1297, 1298, 86, + 86, 86, 86, 86, 1300, 86, 1305, 1302, 86, 1307, + 86, 86, 86, 1306, 86, 86, 86, 86, 86, 86, + 1308, 1303, 1313, 1309, 86, 1304, 86, 86, 1314, 1315, - 86, 1319, 1314, 86, 86, 86, 1313, 86, 1325, 86, - 1318, 1315, 86, 86, 86, 86, 86, 1323, 1322, 1331, - 86, 86, 1321, 1327, 170, 1324, 86, 1326, 86, 1332, - 86, 1333, 1328, 1334, 86, 1330, 86, 86, 86, 86, - 1329, 1339, 1341, 86, 1335, 1337, 1343, 1340, 1336, 1338, - 1344, 86, 86, 86, 86, 86, 86, 1347, 1346, 1342, - 86, 86, 86, 86, 86, 1348, 86, 1345, 1349, 1351, - 86, 86, 86, 1354, 86, 1350, 86, 1352, 1357, 86, - 86, 86, 1353, 86, 176, 1355, 1358, 1361, 1363, 86, - 1356, 1360, 1359, 1367, 86, 1368, 86, 1364, 86, 1365, + 86, 1319, 86, 1310, 1320, 1311, 1316, 86, 1317, 86, + 86, 1323, 86, 86, 1322, 1321, 1318, 86, 86, 1328, + 86, 1324, 86, 86, 86, 86, 86, 1325, 170, 1326, + 86, 1330, 1334, 86, 86, 1336, 1327, 86, 1329, 86, + 86, 86, 1335, 1331, 1337, 1333, 86, 86, 1338, 86, + 1332, 1339, 1342, 1341, 1346, 1340, 1344, 86, 1343, 1347, + 86, 86, 86, 86, 86, 86, 1345, 1349, 86, 1351, + 1350, 86, 86, 86, 86, 86, 86, 1348, 1354, 86, + 1360, 86, 1356, 1357, 86, 1352, 1353, 86, 86, 1355, + 1358, 86, 86, 86, 86, 170, 86, 1364, 1359, 1366, - 1362, 1369, 1366, 1370, 86, 1371, 86, 86, 86, 86, - 1373, 86, 86, 86, 86, 175, 86, 1377, 1376, 86, - 1372, 1380, 86, 86, 1384, 86, 1379, 1374, 86, 1375, - 86, 86, 1378, 1381, 1382, 1385, 1386, 86, 86, 86, - 86, 1383, 1388, 1389, 86, 86, 86, 1390, 1387, 86, - 86, 86, 86, 86, 86, 1391, 1396, 86, 1394, 1392, - 86, 86, 1403, 1397, 1393, 1395, 1401, 86, 86, 86, - 86, 1398, 1400, 86, 1399, 86, 1402, 1404, 1406, 86, - 86, 86, 1413, 86, 1415, 1407, 86, 1405, 86, 86, - 86, 1409, 1408, 86, 1410, 86, 1412, 1418, 86, 86, + 1370, 1361, 1362, 1363, 86, 1371, 86, 1375, 1367, 86, + 1368, 1372, 1365, 1369, 1373, 86, 1374, 86, 86, 86, + 1376, 86, 86, 86, 86, 86, 86, 1380, 1379, 86, + 1383, 86, 86, 1387, 86, 168, 1382, 1377, 86, 1378, + 1384, 86, 1381, 1385, 86, 86, 1388, 1393, 1386, 1389, + 1391, 1390, 86, 86, 86, 86, 1392, 86, 86, 86, + 86, 1397, 86, 86, 86, 86, 1400, 86, 1394, 1395, + 1398, 1405, 1399, 86, 1396, 1401, 86, 86, 1407, 1402, + 86, 86, 1404, 1403, 86, 86, 1410, 1408, 1406, 86, + 86, 86, 1417, 86, 86, 1411, 1409, 1413, 86, 1419, - 86, 1416, 86, 1414, 1421, 1411, 86, 1417, 86, 86, - 1501, 1423, 1422, 86, 1420, 1419, 1424, 86, 86, 1428, - 1426, 1425, 1427, 86, 1429, 86, 1436, 1438, 1430, 86, - 1439, 1431, 1432, 86, 1437, 86, 1433, 1442, 86, 86, - 1440, 86, 1434, 86, 1443, 86, 1435, 1441, 86, 1445, - 1444, 86, 1447, 86, 86, 86, 1448, 1452, 1449, 86, - 86, 86, 1446, 86, 86, 86, 1455, 86, 1453, 1458, - 1459, 86, 1460, 1451, 1450, 86, 86, 86, 1456, 86, - 1454, 1461, 86, 1457, 86, 1468, 86, 1467, 1462, 86, - 1469, 1470, 1471, 1463, 86, 1464, 86, 1465, 86, 1466, + 1412, 86, 86, 86, 86, 86, 1416, 86, 1414, 1420, + 86, 1422, 1425, 1418, 86, 1415, 1421, 86, 1427, 86, + 1424, 1423, 1426, 1428, 86, 86, 1432, 86, 86, 86, + 1442, 1430, 1431, 1429, 86, 1433, 86, 1441, 1445, 1434, + 1440, 86, 1435, 1436, 86, 1443, 1444, 1437, 1446, 86, + 86, 86, 86, 1438, 86, 1447, 1448, 1439, 86, 1449, + 86, 1451, 86, 86, 86, 1452, 86, 1453, 1456, 86, + 1450, 86, 1454, 1457, 86, 86, 1459, 86, 1462, 1463, + 86, 1455, 1464, 1460, 86, 86, 1458, 86, 86, 1466, + 86, 1465, 86, 1461, 1467, 1471, 1468, 86, 1469, 86, - 86, 1474, 1473, 86, 1477, 86, 1480, 1472, 86, 1478, - 86, 86, 1476, 1481, 1479, 86, 86, 86, 1475, 86, - 1487, 86, 1488, 86, 1483, 1482, 86, 86, 86, 86, - 86, 1489, 86, 1486, 1491, 1484, 1485, 86, 86, 1493, - 86, 1490, 1492, 86, 1494, 1497, 1498, 86, 1500, 86, - 1495, 86, 86, 86, 1502, 86, 86, 1503, 1499, 1506, - 86, 1508, 86, 1496, 1505, 86, 1509, 86, 86, 86, - 1513, 86, 1504, 1510, 86, 86, 1507, 86, 86, 1518, - 1516, 86, 86, 86, 86, 86, 1519, 86, 1511, 1521, - 1512, 1520, 1515, 86, 1514, 86, 1523, 86, 1517, 1524, + 1470, 1477, 1472, 86, 1473, 1474, 1475, 1478, 86, 86, + 1476, 86, 1481, 86, 86, 86, 86, 1482, 86, 86, + 1480, 1485, 1483, 86, 86, 86, 1491, 1479, 1487, 1486, + 86, 1492, 86, 86, 86, 86, 1484, 86, 86, 1490, + 1495, 1493, 1488, 1489, 86, 86, 86, 1497, 1494, 86, + 86, 1496, 1498, 86, 1501, 1502, 86, 1504, 86, 86, + 86, 1505, 1499, 1506, 86, 1503, 86, 1510, 86, 1507, + 86, 1500, 1508, 1512, 86, 1509, 86, 1513, 86, 86, + 86, 86, 86, 1514, 1518, 86, 86, 86, 86, 1523, + 1511, 1521, 86, 86, 86, 86, 86, 1524, 1526, 1520, - 1525, 1522, 86, 86, 86, 86, 86, 1527, 1529, 1530, - 1531, 1526, 1528, 86, 1532, 86, 86, 86, 86, 86, - 1533, 1538, 1539, 1535, 86, 1536, 86, 86, 86, 1540, - 1542, 1541, 1537, 86, 1534, 86, 86, 86, 1546, 86, - 86, 86, 1543, 86, 170, 86, 1548, 86, 1545, 86, - 1554, 1555, 86, 86, 1544, 1550, 86, 86, 1556, 1551, - 1547, 1549, 1557, 86, 86, 86, 86, 1552, 86, 86, - 86, 1565, 1553, 1560, 86, 86, 86, 1558, 1562, 1563, - 86, 1569, 86, 1559, 1561, 1570, 86, 1564, 86, 86, - 1574, 86, 86, 1572, 1566, 1575, 86, 86, 1568, 86, + 1515, 1516, 1517, 1525, 86, 86, 1519, 1522, 1528, 86, + 86, 1527, 86, 86, 1530, 86, 86, 1532, 86, 1529, + 1534, 1533, 86, 1536, 1531, 1535, 86, 1537, 86, 86, + 86, 86, 1543, 1538, 1539, 1540, 1544, 1541, 86, 86, + 86, 86, 86, 1547, 1542, 1545, 1546, 86, 1548, 86, + 86, 1551, 86, 86, 86, 170, 86, 86, 86, 1553, + 86, 1550, 1559, 1560, 86, 86, 1549, 86, 86, 86, + 1556, 1561, 1562, 1552, 1554, 86, 86, 1557, 86, 1567, + 1565, 1558, 86, 86, 1566, 86, 1570, 86, 86, 1563, + 1568, 86, 1575, 86, 86, 1564, 1574, 86, 86, 86, - 1567, 1577, 86, 86, 86, 1571, 86, 1578, 1573, 1576, - 86, 1579, 1586, 1585, 86, 86, 86, 1580, 1581, 1583, - 1587, 1582, 1584, 1588, 86, 1591, 1590, 86, 1589, 86, - 1592, 86, 86, 86, 86, 1593, 86, 86, 1596, 1597, - 86, 86, 86, 170, 86, 1600, 86, 86, 1605, 86, - 1595, 86, 86, 1594, 1598, 1606, 1602, 1599, 86, 1609, - 86, 1601, 1603, 86, 1604, 86, 86, 1607, 86, 86, - 1610, 1608, 86, 86, 86, 86, 86, 1612, 1616, 1611, - 86, 1613, 1617, 1614, 86, 1618, 86, 1622, 1615, 86, - 1619, 1623, 86, 1621, 1627, 1620, 86, 1626, 1624, 1628, + 1569, 166, 1577, 1571, 1579, 86, 1573, 86, 86, 1580, + 86, 86, 1572, 86, 1582, 1583, 1581, 1576, 1578, 86, + 86, 86, 1584, 1591, 1588, 86, 1585, 1589, 1586, 1590, + 1593, 1587, 86, 86, 86, 1596, 86, 1594, 86, 1592, + 1597, 86, 86, 1595, 86, 86, 86, 86, 86, 1601, + 1602, 86, 86, 1598, 86, 86, 1605, 86, 1610, 86, + 1600, 86, 86, 1611, 1599, 1603, 1604, 1614, 1606, 1607, + 1608, 86, 1609, 86, 86, 86, 165, 86, 86, 1612, + 86, 1613, 86, 1615, 86, 86, 86, 86, 86, 1622, + 1616, 1618, 1623, 1619, 1617, 1620, 86, 86, 86, 1628, - 86, 86, 86, 1630, 86, 86, 1631, 86, 86, 86, - 1632, 86, 1625, 1636, 1637, 1629, 1635, 1638, 86, 86, - 86, 86, 1639, 86, 1633, 86, 1640, 1641, 86, 86, - 1634, 86, 86, 1642, 86, 86, 1644, 86, 86, 86, - 1643, 86, 1649, 86, 1645, 1648, 86, 1651, 1646, 86, - 1647, 1652, 86, 1655, 86, 1657, 86, 1650, 1656, 86, - 1658, 86, 1654, 1653, 86, 1660, 86, 86, 86, 86, - 86, 1664, 1659, 1661, 1668, 1662, 1663, 86, 86, 86, - 86, 86, 1669, 86, 1672, 86, 1675, 1665, 1667, 1666, - 86, 1674, 86, 86, 86, 86, 86, 86, 1670, 86, + 86, 1621, 1624, 1629, 1625, 1627, 86, 1633, 1626, 1630, + 86, 1632, 1634, 86, 86, 86, 1636, 86, 86, 1637, + 86, 86, 86, 1638, 86, 1642, 1631, 1643, 1635, 1641, + 1644, 86, 86, 86, 86, 1645, 86, 1639, 86, 1646, + 1647, 86, 86, 1640, 86, 86, 1648, 86, 86, 86, + 1650, 86, 1655, 1649, 86, 86, 1654, 1651, 86, 86, + 1658, 1652, 86, 1653, 1661, 86, 1657, 86, 1666, 1662, + 86, 1663, 86, 1659, 1656, 86, 1664, 86, 86, 86, + 86, 1660, 86, 86, 1670, 1665, 1674, 1669, 86, 86, + 86, 1667, 86, 1675, 1668, 86, 86, 1678, 86, 1671, - 1673, 86, 1676, 86, 1683, 1671, 86, 86, 86, 1684, - 1680, 1687, 1677, 1678, 1679, 86, 1682, 86, 1681, 1688, - 86, 1689, 86, 86, 1693, 86, 1685, 1686, 1690, 1691, - 1692, 86, 86, 86, 1695, 86, 86, 86, 1696, 86, - 86, 1699, 1703, 86, 1694, 1704, 1705, 86, 1700, 86, - 86, 1697, 86, 1698, 1708, 1702, 86, 1701, 86, 86, - 1709, 86, 1706, 1707, 86, 1710, 86, 86, 1715, 1716, - 86, 86, 168, 1713, 86, 86, 86, 1712, 1711, 86, - 1719, 86, 1720, 1721, 86, 1717, 1714, 1723, 86, 86, - 86, 86, 1718, 1724, 1725, 86, 1722, 86, 86, 1730, + 1681, 1673, 1672, 86, 1680, 86, 86, 86, 86, 1676, + 86, 86, 163, 86, 1679, 1682, 1677, 86, 1689, 86, + 86, 86, 1690, 86, 1683, 1686, 1684, 1685, 1688, 1694, + 86, 1687, 1695, 86, 86, 1693, 86, 86, 1697, 1691, + 1692, 1696, 86, 86, 86, 86, 86, 86, 1701, 86, + 1698, 1699, 1702, 86, 1705, 1711, 1700, 1709, 86, 86, + 1706, 86, 1704, 86, 1710, 1703, 86, 1707, 86, 1708, + 86, 86, 86, 1714, 1715, 1716, 86, 86, 1712, 1713, + 86, 1721, 1722, 86, 86, 86, 1719, 86, 86, 86, + 1726, 1727, 1717, 1725, 1718, 86, 86, 86, 1729, 86, - 1726, 1728, 86, 86, 86, 1733, 86, 1727, 86, 86, - 86, 1731, 86, 86, 1739, 1737, 86, 86, 1729, 86, - 86, 1734, 86, 1732, 86, 1740, 1738, 86, 1736, 1735, - 86, 1745, 86, 86, 1742, 1741, 86, 86, 1746, 1750, - 86, 1748, 1744, 86, 86, 1743, 86, 1751, 1749, 1754, - 1747, 86, 1753, 86, 86, 86, 86, 1752, 1757, 1761, - 1759, 1760, 86, 1755, 1756, 1758, 86, 86, 170, 86, - 86, 86, 1763, 86, 86, 86, 1771, 86, 86, 1762, - 86, 86, 1772, 1777, 1764, 1766, 86, 1765, 1769, 1767, - 1768, 1775, 86, 86, 86, 1776, 1779, 86, 1770, 1781, + 1720, 86, 1723, 86, 1730, 86, 1724, 1731, 86, 86, + 86, 86, 1732, 1735, 86, 1728, 86, 86, 1740, 1733, + 86, 1734, 86, 1738, 86, 86, 86, 86, 1746, 1744, + 1736, 1737, 86, 86, 86, 1741, 1739, 86, 86, 86, + 1745, 1747, 86, 1742, 1743, 86, 1752, 86, 86, 1749, + 86, 1748, 1755, 1753, 1757, 86, 86, 86, 1751, 170, + 1754, 1758, 1750, 1756, 86, 1760, 86, 86, 86, 86, + 1759, 1764, 86, 1767, 86, 1771, 86, 1766, 1761, 1763, + 86, 86, 86, 1768, 86, 1762, 1770, 86, 1765, 1769, + 86, 86, 86, 1778, 86, 86, 86, 86, 1773, 1779, - 1773, 1774, 1780, 86, 1783, 86, 86, 1785, 86, 86, - 86, 86, 86, 1778, 86, 86, 1790, 1787, 86, 1788, - 1784, 86, 1791, 1782, 86, 86, 86, 86, 1786, 1795, - 86, 1796, 1792, 86, 86, 86, 1789, 1803, 86, 166, - 1794, 1800, 1793, 86, 1801, 1797, 1798, 86, 86, 86, - 86, 1805, 1804, 1799, 86, 1808, 1802, 1810, 1807, 1812, - 1809, 1811, 86, 1813, 1817, 86, 86, 1806, 86, 86, - 86, 1814, 86, 1815, 86, 1816, 86, 86, 86, 86, - 86, 1818, 1824, 1823, 86, 1825, 1820, 1827, 86, 1826, - 1819, 86, 86, 86, 86, 86, 86, 1821, 86, 1822, + 1772, 1782, 86, 86, 1776, 1783, 1774, 1775, 1784, 86, + 86, 86, 1786, 86, 1788, 1780, 1777, 1781, 1787, 1790, + 86, 86, 1792, 86, 86, 86, 86, 86, 86, 1785, + 86, 1789, 1794, 1795, 86, 1791, 86, 1797, 86, 1798, + 86, 86, 86, 1793, 1799, 1802, 86, 1803, 86, 86, + 86, 1796, 1800, 1807, 86, 1801, 1808, 1810, 86, 1804, + 1805, 86, 86, 86, 161, 1812, 1811, 1814, 1809, 1806, + 86, 86, 1818, 86, 1817, 1815, 1819, 1820, 1824, 1816, + 86, 1813, 86, 86, 86, 1821, 86, 1822, 86, 1823, + 86, 86, 86, 86, 86, 1825, 86, 1831, 86, 1830, - 1829, 1830, 86, 1831, 86, 86, 86, 86, 86, 86, - 86, 86, 1832, 86, 86, 1828, 1833, 1841, 86, 86, - 1836, 1837, 1838, 1834, 86, 1835, 1842, 1839, 86, 86, - 1843, 1845, 86, 1848, 1849, 1840, 1844, 86, 1851, 86, - 1846, 86, 86, 1854, 86, 1847, 86, 86, 86, 86, - 1858, 86, 1856, 1850, 86, 1852, 86, 86, 86, 86, - 1857, 86, 86, 1853, 86, 1860, 1855, 1863, 1865, 1859, - 86, 86, 165, 1866, 1864, 1862, 1867, 86, 1868, 86, - 1861, 86, 1872, 1873, 86, 1869, 1874, 86, 86, 1875, - 1870, 1877, 1878, 86, 86, 86, 1871, 86, 86, 1876, + 1832, 1833, 86, 86, 1826, 1835, 86, 86, 86, 86, + 1827, 86, 1828, 1834, 1829, 86, 1838, 86, 86, 86, + 1837, 1836, 1841, 1839, 86, 86, 86, 1840, 86, 86, + 86, 86, 86, 86, 1850, 1849, 86, 86, 1842, 1844, + 1845, 86, 1846, 1852, 1843, 86, 86, 1847, 1856, 1853, + 86, 86, 1851, 1854, 86, 1848, 86, 86, 1855, 1862, + 86, 86, 86, 86, 86, 1866, 1857, 1858, 1864, 86, + 1859, 1860, 86, 86, 1865, 86, 86, 1861, 86, 86, + 86, 1863, 86, 86, 1867, 1871, 1868, 1873, 86, 86, + 1881, 86, 1874, 1870, 1872, 1875, 86, 1869, 1876, 1880, - 86, 1882, 1881, 86, 86, 1883, 86, 1879, 86, 86, - 86, 1891, 1892, 86, 1880, 1886, 86, 86, 1888, 1890, - 1885, 1889, 1884, 86, 86, 86, 86, 1887, 1898, 86, - 86, 86, 86, 1899, 86, 1900, 1893, 1894, 86, 1896, - 86, 1895, 1897, 1901, 86, 1904, 86, 1906, 86, 1908, - 1903, 1907, 86, 86, 1902, 86, 1905, 86, 1912, 86, - 1916, 1910, 86, 1909, 1911, 1917, 86, 86, 86, 86, - 86, 1924, 86, 1913, 1921, 1922, 1918, 1915, 1914, 1925, - 86, 86, 1919, 86, 86, 86, 1928, 86, 1923, 1926, - 1920, 86, 86, 1929, 1927, 1932, 86, 86, 1936, 86, + 1882, 86, 86, 1877, 86, 86, 86, 86, 1878, 1885, + 1886, 86, 86, 86, 1879, 86, 1883, 1889, 1887, 86, + 1884, 86, 1890, 86, 86, 86, 1888, 86, 1891, 1899, + 1894, 1893, 1892, 86, 1896, 86, 1898, 1897, 1900, 86, + 86, 86, 86, 1895, 86, 1906, 86, 86, 86, 86, + 1907, 86, 1908, 1901, 1902, 86, 1904, 86, 1903, 86, + 1905, 1909, 86, 1912, 1914, 86, 1911, 86, 1916, 86, + 1915, 1910, 86, 1913, 86, 86, 86, 1920, 1918, 1924, + 1922, 1919, 1917, 86, 1925, 86, 86, 86, 86, 86, + 1926, 1930, 1921, 1923, 1929, 1932, 86, 86, 1927, 86, - 1934, 86, 86, 1930, 86, 1931, 1935, 1937, 86, 1933, - 86, 86, 86, 86, 86, 86, 1941, 86, 1940, 86, - 1950, 1938, 1942, 1944, 86, 1943, 86, 1939, 1945, 1948, - 86, 1946, 1951, 1947, 1953, 86, 86, 1952, 86, 86, - 86, 1957, 86, 1959, 86, 86, 86, 86, 86, 86, - 86, 1949, 1963, 86, 1965, 86, 1954, 1955, 1958, 1956, - 1966, 86, 1961, 86, 86, 1962, 1960, 86, 1964, 1968, - 86, 86, 1969, 86, 86, 170, 1974, 86, 86, 1970, - 86, 1967, 1972, 1973, 1977, 86, 1971, 1975, 86, 1981, - 86, 86, 1976, 86, 86, 86, 86, 1978, 86, 1980, + 1933, 1936, 1935, 86, 1934, 1931, 86, 86, 1928, 1937, + 86, 86, 1940, 86, 86, 1944, 86, 1942, 86, 86, + 86, 86, 86, 1943, 1945, 1939, 1941, 86, 86, 86, + 1938, 86, 86, 1950, 86, 1949, 86, 86, 1946, 1947, + 1951, 1948, 1952, 1953, 86, 1954, 1957, 86, 1959, 1960, + 1955, 1956, 1962, 86, 86, 86, 86, 1961, 86, 86, + 86, 1966, 86, 1968, 86, 86, 86, 86, 1958, 86, + 86, 1967, 1972, 86, 1974, 86, 1963, 1964, 86, 1965, + 1975, 1970, 86, 86, 1971, 86, 1969, 1973, 1977, 86, + 1978, 1979, 86, 86, 86, 170, 86, 1983, 1976, 1986, - 1979, 1983, 86, 1988, 86, 1982, 86, 1984, 1985, 86, - 86, 1995, 1986, 86, 1989, 2000, 1991, 86, 1987, 1992, - 86, 86, 1990, 86, 1993, 1994, 86, 1997, 1998, 86, - 86, 86, 1996, 86, 2001, 86, 86, 2002, 86, 86, - 86, 86, 1999, 86, 2006, 2007, 86, 86, 86, 86, - 2008, 86, 2011, 86, 2004, 2009, 2005, 2003, 2012, 86, - 86, 2010, 2019, 86, 2017, 2015, 2018, 2020, 2014, 86, - 86, 2013, 2016, 86, 2021, 86, 86, 86, 86, 2026, - 86, 2029, 2030, 86, 2031, 86, 86, 86, 2022, 2023, - 86, 2024, 2027, 86, 2028, 86, 2025, 2033, 86, 86, + 86, 86, 1982, 1981, 86, 86, 86, 1984, 1990, 86, + 86, 1985, 1980, 86, 86, 86, 1988, 1992, 1993, 86, + 1987, 86, 1997, 86, 1989, 86, 1994, 1991, 86, 2001, + 86, 2000, 86, 1998, 1995, 2002, 2003, 86, 86, 1996, + 86, 1999, 2006, 2004, 2007, 86, 86, 86, 86, 2005, + 86, 86, 2009, 86, 2010, 86, 86, 86, 2008, 86, + 86, 86, 2015, 86, 2016, 86, 86, 2011, 2020, 2017, + 86, 3507, 86, 2013, 2014, 2012, 2019, 2018, 86, 2021, + 86, 2028, 86, 2024, 86, 2026, 2023, 2027, 2029, 86, + 2025, 86, 2022, 86, 86, 86, 86, 86, 2035, 86, - 2034, 2037, 86, 86, 2039, 86, 2032, 2038, 2035, 86, - 86, 2036, 2040, 2041, 2043, 2048, 86, 86, 2045, 86, - 86, 2044, 86, 2042, 86, 2046, 2047, 86, 86, 2049, - 2050, 86, 2051, 86, 86, 86, 2055, 86, 2053, 2054, - 2057, 86, 2056, 86, 86, 86, 86, 86, 163, 2052, - 2065, 86, 2067, 2058, 2059, 2060, 86, 2068, 86, 86, - 2061, 86, 2063, 2062, 86, 2064, 2070, 2066, 86, 2074, - 2071, 86, 2072, 2069, 86, 86, 86, 2078, 86, 2073, - 2075, 86, 86, 2080, 86, 86, 86, 86, 2083, 2084, - 86, 2086, 86, 86, 2076, 86, 2091, 2077, 86, 86, + 2038, 2039, 86, 2040, 86, 2030, 86, 86, 2031, 2033, + 2032, 2036, 86, 2037, 86, 2034, 2042, 86, 86, 2043, + 2047, 86, 86, 86, 2049, 2050, 2041, 2048, 2044, 86, + 86, 2051, 2053, 2045, 86, 2046, 86, 86, 86, 2054, + 86, 2057, 86, 2056, 86, 86, 86, 2052, 2060, 86, + 2059, 86, 86, 86, 86, 2065, 2067, 2063, 2064, 86, + 86, 2055, 86, 86, 2058, 2066, 2061, 2062, 86, 86, + 2075, 2068, 2069, 2070, 86, 2077, 86, 86, 2071, 86, + 2078, 86, 86, 2072, 86, 86, 2073, 2081, 86, 2074, + 2082, 2079, 2084, 86, 2076, 86, 86, 2080, 86, 2083, - 86, 86, 86, 86, 2081, 2085, 86, 2079, 2082, 2088, - 2089, 2093, 86, 86, 2092, 86, 2090, 86, 2087, 86, - 2094, 2095, 2096, 86, 2099, 86, 2097, 2103, 86, 2098, - 2102, 86, 86, 86, 2106, 2101, 2109, 86, 2105, 2100, - 86, 86, 86, 2107, 2110, 86, 2112, 86, 2104, 86, - 86, 2108, 2111, 86, 86, 86, 86, 2116, 86, 2119, - 2120, 2121, 2115, 86, 86, 86, 86, 86, 86, 2113, - 86, 86, 2114, 2117, 2124, 86, 2129, 86, 86, 2123, - 2128, 86, 2118, 2122, 86, 2126, 86, 2130, 2133, 86, - 2125, 86, 2134, 2127, 86, 2135, 2131, 2132, 2137, 86, + 2088, 86, 2085, 86, 2090, 86, 86, 86, 2086, 86, + 2093, 2094, 86, 2096, 86, 86, 2087, 86, 86, 86, + 86, 86, 2089, 86, 2101, 2091, 2098, 2095, 2092, 2099, + 86, 2103, 86, 86, 86, 2102, 86, 86, 2105, 2100, + 2097, 2106, 2104, 86, 2109, 2107, 86, 86, 2113, 86, + 86, 86, 2112, 2117, 86, 2116, 86, 2115, 2119, 2108, + 86, 86, 2111, 2110, 86, 2120, 86, 86, 86, 2114, + 86, 86, 2121, 86, 86, 2118, 2126, 2122, 86, 2130, + 2123, 86, 2129, 2125, 2131, 86, 86, 86, 86, 2124, + 86, 86, 2127, 86, 86, 2134, 2139, 86, 86, 2138, - 86, 86, 86, 2136, 2138, 2141, 86, 2142, 86, 86, - 86, 86, 2139, 2148, 2145, 86, 2143, 2140, 86, 86, - 86, 86, 86, 2151, 2153, 86, 2155, 2144, 86, 2154, - 2146, 2147, 86, 2149, 2152, 2150, 86, 86, 2160, 86, - 2162, 2156, 2161, 86, 2164, 2163, 86, 2157, 2165, 86, - 86, 86, 2158, 86, 86, 2169, 2167, 2159, 86, 86, - 86, 86, 86, 2171, 86, 2168, 86, 2173, 2175, 86, - 2170, 2177, 2172, 86, 86, 2166, 170, 86, 2178, 86, - 86, 2181, 86, 86, 86, 86, 2176, 2174, 2179, 2185, - 86, 2187, 2182, 2180, 2183, 86, 2188, 86, 2186, 2189, + 86, 86, 2133, 86, 2128, 86, 2132, 2143, 2136, 86, + 2144, 2135, 86, 86, 2146, 2137, 2141, 2140, 2145, 2142, + 2147, 86, 86, 86, 2149, 86, 2148, 2151, 86, 2150, + 86, 86, 86, 86, 86, 2159, 2155, 86, 86, 2153, + 86, 86, 86, 2162, 2152, 86, 2164, 86, 2255, 2154, + 86, 2165, 2156, 2157, 2158, 2160, 86, 2161, 2163, 86, + 2166, 86, 86, 2171, 86, 2172, 86, 2175, 2167, 2173, + 2176, 86, 2168, 86, 2174, 86, 86, 2169, 86, 86, + 2180, 86, 2170, 2178, 86, 86, 86, 86, 2182, 86, + 2184, 2179, 2186, 2181, 86, 2188, 86, 2177, 86, 2183, - 86, 2191, 2184, 86, 86, 2190, 86, 86, 86, 2192, - 2194, 2193, 86, 86, 86, 2197, 86, 2195, 2196, 86, - 2199, 86, 86, 2203, 86, 86, 2198, 2202, 2200, 86, - 86, 86, 2207, 2201, 2204, 2205, 2206, 2208, 86, 86, - 86, 86, 86, 86, 2215, 2213, 86, 86, 86, 2210, - 86, 2214, 86, 86, 86, 2220, 86, 2217, 86, 2209, - 2211, 86, 2212, 86, 86, 2216, 2221, 2219, 86, 2225, - 2218, 86, 2223, 2226, 2222, 86, 86, 86, 2224, 86, - 2229, 86, 2228, 2227, 2231, 86, 86, 86, 2237, 2230, - 2232, 86, 86, 2233, 86, 2234, 2235, 86, 2239, 86, + 86, 86, 2189, 86, 170, 86, 86, 86, 86, 2192, + 2185, 86, 86, 2196, 2197, 2190, 2187, 2193, 2194, 2202, + 2191, 86, 2198, 2199, 86, 86, 2195, 2200, 86, 86, + 3507, 86, 2201, 86, 86, 2203, 2204, 86, 86, 2205, + 86, 2208, 2207, 2206, 86, 2210, 86, 86, 86, 2214, + 86, 86, 2209, 2213, 2219, 86, 86, 86, 2211, 2212, + 2215, 2216, 2217, 86, 86, 86, 2218, 86, 86, 86, + 86, 2226, 86, 2224, 2221, 2225, 86, 86, 86, 86, + 86, 86, 2231, 86, 2220, 2222, 86, 2223, 2228, 86, + 2227, 86, 2230, 2232, 2229, 2234, 86, 2236, 2233, 86, - 2236, 2240, 2242, 86, 86, 2244, 86, 86, 2238, 86, - 2241, 2248, 2243, 86, 2245, 2247, 86, 86, 86, 86, - 86, 86, 2253, 2250, 86, 86, 86, 86, 86, 86, - 2246, 86, 2249, 2254, 86, 86, 86, 2262, 2256, 2257, - 2252, 2251, 86, 2258, 86, 86, 2255, 2259, 86, 2261, - 2263, 2267, 86, 86, 86, 2260, 2264, 2266, 86, 2271, - 86, 2270, 2268, 86, 86, 2265, 86, 86, 2269, 2273, - 86, 2276, 2274, 2272, 2277, 86, 86, 86, 2275, 86, - 86, 2279, 2282, 86, 2278, 2280, 2284, 86, 86, 2281, - 2285, 86, 86, 2287, 86, 86, 2289, 2286, 2283, 86, + 2237, 2238, 86, 2235, 86, 2242, 86, 2240, 86, 86, + 86, 2243, 86, 86, 86, 2249, 86, 2241, 86, 2251, + 2239, 86, 86, 86, 2252, 2244, 2245, 2248, 2246, 2247, + 2254, 86, 86, 2250, 2256, 86, 86, 2257, 86, 2260, + 86, 2253, 86, 86, 2259, 86, 86, 86, 2265, 2262, + 86, 86, 86, 86, 2261, 2258, 86, 86, 86, 2266, + 86, 86, 86, 86, 2268, 2263, 2264, 2274, 2269, 2271, + 86, 86, 2267, 2270, 86, 2273, 2279, 86, 86, 2272, + 2275, 2282, 2276, 2278, 86, 86, 2277, 86, 2280, 2283, + 86, 86, 2285, 2286, 2281, 86, 86, 86, 86, 86, - 2291, 2290, 86, 86, 86, 2295, 86, 2292, 86, 86, - 2299, 86, 86, 2288, 2296, 2300, 86, 86, 86, 2297, - 2298, 2293, 2304, 86, 2294, 2301, 86, 2305, 86, 86, - 2308, 2302, 2303, 86, 86, 86, 86, 2310, 2309, 86, - 2314, 86, 86, 2306, 86, 2316, 86, 2312, 86, 2307, - 86, 2317, 2311, 86, 2315, 2313, 86, 2318, 2319, 86, - 86, 2323, 86, 86, 2320, 2321, 2325, 86, 2322, 86, - 86, 2326, 86, 86, 2327, 2329, 2328, 86, 2331, 86, - 86, 2324, 2330, 86, 2332, 2336, 86, 86, 86, 2334, - 2333, 86, 2335, 86, 86, 86, 86, 86, 2337, 86, + 2288, 86, 86, 2289, 2294, 2284, 2290, 86, 2287, 2296, + 2292, 2293, 86, 86, 2297, 86, 2291, 2299, 86, 86, + 86, 86, 86, 2302, 86, 2301, 2295, 2298, 86, 2303, + 86, 2307, 86, 2304, 86, 86, 2311, 86, 86, 2308, + 2305, 2312, 86, 86, 2310, 2300, 2313, 86, 2309, 86, + 2306, 2316, 86, 86, 2317, 86, 86, 2320, 2322, 86, + 86, 2315, 2314, 86, 2318, 2321, 86, 2326, 86, 86, + 86, 2328, 86, 2329, 2324, 2319, 86, 2323, 86, 86, + 86, 2327, 2325, 2331, 86, 2330, 2335, 86, 2337, 2333, + 86, 86, 2334, 2338, 86, 86, 86, 2332, 86, 86, - 2343, 86, 86, 86, 2339, 2338, 2347, 2341, 2344, 2342, - 86, 2345, 2349, 86, 86, 2348, 2340, 2346, 86, 2350, - 2352, 86, 86, 2358, 86, 2353, 86, 86, 2360, 86, - 86, 86, 2351, 2354, 86, 2357, 2359, 86, 2363, 2355, - 86, 86, 2364, 2367, 170, 86, 2369, 2356, 2361, 86, - 2362, 2370, 86, 2365, 86, 2371, 2372, 2373, 86, 86, - 2366, 86, 86, 2376, 86, 2375, 2368, 2374, 86, 2377, - 86, 2381, 86, 86, 2382, 86, 2384, 86, 2385, 2380, - 86, 2387, 2386, 2378, 86, 2388, 86, 2383, 86, 2390, - 86, 86, 86, 2389, 2379, 86, 2391, 86, 86, 86, + 2340, 2343, 2339, 86, 2344, 86, 86, 2341, 2336, 86, + 2342, 2348, 86, 86, 86, 2347, 2345, 86, 86, 86, + 86, 86, 86, 86, 2356, 2346, 86, 2349, 86, 86, + 86, 2350, 2351, 2352, 2354, 2357, 2355, 2362, 2358, 86, + 86, 86, 2359, 2353, 2360, 2361, 86, 2363, 86, 86, + 86, 86, 2365, 2366, 2369, 2371, 86, 86, 86, 2370, + 2364, 2373, 86, 2367, 86, 86, 2372, 2368, 2376, 2374, + 2377, 86, 86, 2380, 170, 2382, 2384, 2375, 86, 86, + 2383, 86, 86, 2385, 2378, 86, 2387, 86, 2386, 86, + 86, 2379, 2389, 86, 86, 2390, 2381, 2394, 86, 2393, - 86, 2393, 86, 86, 2396, 86, 86, 86, 2399, 86, - 2392, 2394, 86, 86, 2403, 2398, 2405, 86, 86, 86, - 86, 2401, 2406, 2395, 2400, 2397, 86, 2402, 2407, 86, - 86, 2408, 86, 86, 2404, 86, 86, 2413, 2410, 2416, - 86, 2411, 86, 86, 2417, 2409, 2414, 86, 86, 2412, - 86, 86, 86, 2415, 86, 86, 86, 86, 2426, 86, - 86, 2418, 2419, 2424, 86, 2430, 2433, 86, 2428, 2422, - 2420, 2427, 2421, 2423, 2429, 2425, 86, 2432, 2431, 86, - 86, 86, 86, 2435, 2434, 86, 86, 2439, 2440, 86, - 86, 86, 2441, 161, 2436, 86, 2437, 86, 2438, 2442, + 86, 2395, 86, 86, 2398, 86, 86, 2388, 86, 2391, + 86, 2399, 86, 2400, 2396, 2401, 86, 86, 2403, 86, + 2392, 2397, 2402, 2404, 86, 2405, 86, 86, 2407, 86, + 2406, 86, 86, 86, 2409, 86, 86, 86, 2412, 86, + 86, 86, 2416, 2418, 86, 2419, 86, 2411, 86, 86, + 86, 86, 2408, 2413, 2410, 2414, 2415, 86, 86, 86, + 86, 2420, 2417, 2421, 2426, 2429, 86, 2423, 2428, 2424, + 2425, 86, 86, 2427, 2422, 86, 86, 86, 86, 2430, + 86, 86, 86, 86, 2440, 86, 86, 86, 86, 2445, + 86, 2431, 86, 2438, 2432, 2433, 2447, 86, 2442, 2436, - 86, 86, 2445, 86, 2448, 86, 2443, 86, 2444, 2449, - 86, 86, 2446, 86, 86, 2447, 2450, 2452, 2451, 2455, - 86, 2456, 86, 86, 2458, 86, 2454, 2453, 86, 2460, - 86, 86, 86, 2463, 86, 86, 2462, 2464, 86, 86, - 86, 86, 2457, 86, 86, 86, 2459, 2461, 2466, 2465, - 2470, 2471, 86, 2473, 86, 2468, 86, 2467, 86, 86, - 2477, 86, 2469, 2472, 2475, 86, 2479, 86, 2476, 86, - 86, 86, 2482, 86, 2474, 2478, 2485, 86, 86, 86, - 2480, 86, 86, 86, 2481, 86, 2483, 2489, 2490, 86, - 2492, 86, 2484, 86, 2495, 86, 2488, 86, 2486, 86, + 2434, 2441, 2435, 2437, 2439, 86, 2443, 86, 2446, 86, + 86, 2444, 2448, 2449, 86, 86, 86, 86, 2453, 2454, + 86, 86, 2450, 2455, 2456, 86, 86, 86, 2451, 2452, + 2457, 86, 2459, 86, 2462, 86, 2463, 86, 86, 2458, + 86, 86, 2460, 2464, 86, 2461, 2465, 2466, 2469, 86, + 2470, 86, 86, 2472, 86, 86, 2468, 2474, 86, 86, + 2467, 86, 2477, 86, 2478, 86, 2476, 86, 86, 86, + 86, 2471, 86, 2473, 2475, 86, 86, 2480, 2485, 86, + 2484, 2479, 2487, 86, 2482, 86, 2481, 86, 86, 86, + 86, 2483, 2490, 2489, 86, 2486, 86, 2491, 2493, 86, - 86, 2491, 2487, 86, 86, 86, 2493, 2497, 2494, 86, - 2502, 86, 86, 2498, 2504, 86, 86, 2496, 2505, 2508, - 2503, 2499, 2500, 86, 86, 86, 86, 86, 2509, 2510, - 86, 2501, 2511, 2506, 86, 2507, 86, 86, 86, 2513, - 86, 2515, 2517, 2518, 2520, 86, 2521, 86, 2512, 86, - 86, 2514, 86, 2524, 2525, 2519, 86, 86, 86, 86, - 2516, 2526, 2523, 86, 86, 86, 2522, 2529, 86, 86, - 86, 2528, 2530, 2535, 2531, 2536, 86, 2532, 2533, 86, - 2537, 86, 2527, 86, 2534, 86, 86, 86, 2541, 86, - 2542, 86, 2543, 86, 2546, 2540, 86, 170, 2545, 86, + 86, 86, 2496, 2488, 86, 2495, 86, 2494, 86, 2497, + 2499, 86, 2492, 86, 2504, 86, 86, 2503, 86, 86, + 2498, 86, 86, 2502, 2500, 86, 2506, 2509, 86, 2501, + 86, 86, 2511, 2507, 2508, 2505, 86, 86, 86, 2516, + 2522, 86, 2510, 86, 2512, 2518, 86, 86, 86, 2513, + 2517, 2519, 86, 86, 2514, 86, 86, 2524, 2525, 2523, + 86, 86, 86, 2515, 86, 86, 2520, 2529, 2521, 2527, + 2531, 86, 86, 86, 86, 86, 2532, 2533, 2535, 2534, + 2526, 2528, 2536, 86, 86, 2539, 86, 2530, 86, 2538, + 86, 86, 86, 86, 2537, 2540, 2543, 2541, 86, 86, - 2544, 86, 2547, 2538, 86, 2539, 2552, 86, 86, 86, - 86, 86, 86, 86, 86, 2563, 86, 2550, 2554, 2548, - 2551, 2549, 2555, 2553, 2558, 86, 86, 2556, 2557, 2559, - 2560, 86, 86, 2564, 2561, 2565, 86, 86, 86, 86, - 2566, 2568, 2569, 2562, 2567, 86, 86, 86, 86, 2571, - 86, 86, 2572, 86, 2570, 86, 2573, 2578, 2574, 86, - 2577, 86, 86, 86, 86, 2575, 86, 2580, 2581, 2582, - 2583, 86, 2576, 86, 86, 2579, 86, 86, 2584, 86, - 86, 2589, 86, 2585, 2588, 2586, 86, 86, 86, 86, - 86, 2591, 2590, 86, 2595, 86, 2598, 2587, 86, 86, + 2542, 2544, 2545, 86, 86, 86, 2553, 86, 2546, 2550, + 2551, 2552, 2547, 2548, 86, 86, 86, 86, 2557, 2549, + 86, 2556, 86, 2558, 86, 170, 2555, 86, 86, 2561, + 2562, 2559, 86, 86, 2554, 86, 2560, 2567, 86, 86, + 86, 86, 86, 86, 86, 86, 2574, 86, 2569, 2565, + 86, 2566, 2563, 2570, 2564, 2568, 86, 2573, 2571, 2572, + 3507, 2575, 2577, 2578, 86, 86, 2579, 2576, 2580, 86, + 86, 86, 2583, 2581, 2584, 86, 2582, 86, 86, 86, + 86, 2586, 86, 86, 2585, 86, 2588, 86, 86, 2592, + 2593, 2587, 86, 2590, 86, 2589, 86, 2595, 86, 86, - 2597, 86, 86, 2594, 2599, 86, 2600, 2592, 2593, 86, - 86, 86, 86, 2596, 86, 2604, 86, 2601, 2606, 86, - 2602, 2609, 86, 2610, 2607, 86, 86, 86, 2603, 86, - 2608, 2613, 2605, 2611, 86, 86, 2612, 86, 2615, 86, - 2614, 86, 2616, 86, 2618, 2619, 2620, 2621, 2622, 86, - 86, 86, 86, 2617, 2624, 86, 86, 86, 86, 2623, - 86, 86, 86, 2628, 2633, 86, 86, 2631, 86, 2625, - 2626, 2632, 2635, 2627, 2634, 86, 86, 2636, 86, 86, - 86, 86, 2630, 86, 2637, 2639, 2629, 86, 2644, 86, - 2641, 86, 2646, 86, 86, 2642, 86, 86, 86, 86, + 86, 86, 2596, 2597, 2598, 86, 2591, 86, 2594, 86, + 2600, 86, 2599, 2604, 86, 2603, 86, 86, 2601, 2602, + 86, 86, 2606, 86, 86, 86, 86, 86, 2614, 2605, + 2611, 86, 2613, 86, 86, 86, 2616, 2615, 2610, 86, + 2607, 2608, 86, 2609, 86, 2612, 86, 2622, 86, 2620, + 86, 2617, 86, 86, 86, 2628, 86, 2626, 2618, 2625, + 86, 2619, 2623, 86, 2627, 86, 86, 2621, 2624, 2629, + 86, 2631, 86, 86, 2634, 2632, 86, 2636, 86, 2630, + 2635, 2638, 86, 86, 86, 2640, 86, 86, 86, 86, + 2637, 86, 2633, 2639, 2644, 86, 86, 86, 86, 86, - 2640, 2638, 2645, 2643, 2649, 86, 86, 86, 2653, 2650, - 86, 2648, 2647, 2654, 86, 2655, 2651, 2652, 86, 86, - 86, 86, 86, 2659, 86, 2658, 86, 86, 2657, 86, - 86, 86, 2663, 2703, 2662, 86, 2656, 86, 2660, 86, - 2661, 86, 2666, 2667, 86, 2668, 86, 2669, 86, 2664, - 2665, 2670, 86, 2671, 86, 86, 2674, 2672, 86, 2673, - 86, 2675, 86, 86, 86, 86, 86, 86, 2682, 86, - 2676, 2684, 86, 2685, 86, 2678, 86, 86, 86, 86, - 86, 86, 2677, 2681, 2679, 2683, 2680, 2686, 2688, 2687, - 2689, 86, 86, 2694, 86, 86, 2691, 2696, 86, 2690, + 2649, 86, 2642, 2647, 2648, 2641, 2651, 2643, 2650, 86, + 86, 2652, 86, 2653, 86, 86, 86, 2646, 86, 86, + 2655, 2645, 2657, 2660, 86, 86, 2662, 86, 86, 86, + 2658, 86, 86, 2665, 86, 2656, 2654, 2659, 2661, 86, + 86, 86, 2666, 2664, 86, 2663, 86, 2669, 2670, 86, + 2667, 86, 86, 2673, 86, 86, 2671, 2674, 2668, 2672, + 86, 86, 2675, 86, 86, 86, 86, 86, 2676, 2677, + 2679, 2682, 3507, 2678, 2683, 86, 2684, 86, 2685, 86, + 2686, 86, 86, 2680, 2681, 2688, 86, 86, 2690, 86, + 2691, 2689, 86, 2692, 2687, 86, 86, 86, 86, 86, - 2692, 86, 86, 86, 2695, 86, 86, 170, 86, 86, - 2705, 86, 2693, 86, 86, 86, 2699, 86, 86, 2704, - 2701, 86, 2698, 2706, 2712, 86, 2707, 2697, 2708, 2700, - 2702, 86, 86, 2709, 2729, 86, 86, 2714, 86, 2710, - 2715, 2711, 2716, 86, 86, 2713, 2717, 86, 86, 2718, - 86, 2719, 86, 2720, 2721, 2722, 86, 2723, 86, 86, - 86, 86, 86, 86, 2731, 86, 86, 86, 86, 86, - 2735, 2724, 2736, 86, 86, 2740, 86, 2726, 2725, 2742, - 86, 2728, 2727, 2730, 2733, 2732, 2734, 86, 2737, 2738, - 86, 86, 86, 86, 86, 86, 2739, 86, 86, 2741, + 86, 86, 2699, 86, 2701, 86, 3507, 2693, 86, 2695, + 2702, 86, 86, 86, 86, 2705, 2694, 2698, 2696, 2700, + 2697, 86, 86, 2703, 86, 2704, 2706, 2708, 86, 2711, + 86, 86, 2713, 86, 86, 86, 86, 86, 86, 170, + 2712, 2707, 86, 86, 2709, 2720, 86, 2722, 2710, 2716, + 86, 2721, 2718, 86, 86, 2715, 86, 86, 86, 2723, + 2714, 2717, 86, 86, 2719, 2729, 86, 86, 2724, 2725, + 3507, 2731, 2732, 86, 2726, 2733, 86, 2730, 86, 2727, + 86, 2728, 2734, 86, 86, 2735, 86, 2736, 86, 2737, + 86, 2738, 86, 86, 86, 2741, 86, 2740, 86, 86, - 2745, 86, 86, 3483, 86, 2752, 86, 2753, 86, 2743, - 2744, 2751, 2746, 2747, 2754, 86, 2748, 2749, 86, 2757, - 86, 2750, 2758, 86, 2756, 2759, 86, 86, 86, 86, - 86, 86, 86, 2755, 86, 2764, 86, 86, 86, 2768, - 2770, 2767, 2761, 2763, 2760, 2769, 86, 2762, 2771, 86, - 86, 86, 2765, 86, 2766, 86, 86, 86, 86, 86, - 2773, 86, 2777, 2778, 86, 86, 86, 2775, 2782, 2772, - 2783, 86, 2774, 86, 2786, 86, 2776, 86, 86, 2779, - 2780, 2784, 86, 86, 2781, 86, 2789, 86, 2787, 2791, - 86, 2785, 86, 2788, 2792, 86, 86, 86, 2790, 86, + 86, 2739, 2748, 86, 86, 2746, 86, 86, 2752, 2753, + 86, 2743, 2742, 86, 86, 86, 2744, 86, 2745, 2747, + 2757, 86, 2750, 2749, 2751, 86, 2756, 2754, 2759, 86, + 86, 86, 86, 2760, 2758, 86, 2755, 86, 86, 2763, + 86, 86, 2770, 86, 86, 2771, 86, 86, 2761, 2762, + 2764, 2769, 86, 86, 86, 2765, 2766, 2767, 86, 2768, + 2774, 2775, 86, 2776, 86, 2777, 86, 2772, 2779, 86, + 2773, 86, 86, 86, 86, 86, 2778, 2782, 86, 86, + 2785, 2786, 86, 2781, 2788, 2780, 2787, 86, 2789, 86, + 86, 86, 86, 2783, 2784, 86, 86, 2790, 86, 2791, - 2793, 2797, 86, 86, 86, 2794, 86, 2800, 2799, 2798, - 2801, 86, 2795, 2803, 86, 86, 2796, 86, 86, 86, - 2804, 86, 2806, 2802, 2809, 86, 2805, 86, 2810, 86, - 2807, 2812, 86, 86, 86, 86, 86, 86, 86, 2808, - 2818, 86, 2813, 2811, 2815, 2816, 2814, 2817, 2821, 86, - 86, 86, 2820, 86, 2819, 2822, 2823, 86, 86, 86, - 86, 86, 2825, 86, 86, 86, 2826, 2824, 86, 2828, - 2831, 2829, 86, 2832, 2834, 86, 2830, 2836, 2827, 2833, - 2835, 86, 86, 2838, 170, 86, 86, 86, 86, 2843, - 3483, 2840, 2839, 86, 86, 86, 86, 2845, 2844, 86, + 86, 2795, 86, 2796, 2793, 86, 86, 2801, 86, 2800, + 2792, 86, 86, 2804, 86, 2794, 86, 86, 86, 86, + 2797, 2798, 2807, 86, 86, 2799, 2802, 2805, 2809, 86, + 2803, 86, 2806, 86, 2808, 2810, 86, 86, 2812, 2815, + 86, 86, 2811, 86, 2819, 86, 86, 2818, 86, 2816, + 2817, 2813, 86, 2814, 2821, 86, 86, 2822, 86, 86, + 2827, 86, 86, 2828, 2824, 2820, 86, 2823, 2825, 2830, + 86, 86, 86, 86, 86, 2837, 86, 86, 86, 2826, + 86, 86, 3507, 2834, 2831, 2832, 2833, 2835, 2829, 2836, + 2840, 86, 86, 86, 86, 86, 2839, 2838, 2841, 2842, - 86, 2837, 2848, 86, 2847, 2841, 2842, 2849, 86, 2846, - 2851, 86, 86, 2850, 2853, 2852, 86, 86, 86, 2854, - 86, 2855, 2856, 2858, 86, 86, 86, 86, 2859, 86, - 2860, 86, 2857, 86, 2865, 2861, 86, 2866, 86, 2863, - 86, 2867, 2862, 86, 86, 86, 86, 86, 2871, 86, - 2868, 2869, 2870, 86, 2864, 86, 86, 86, 2872, 86, - 2873, 2874, 86, 86, 2879, 86, 2876, 2875, 2877, 86, - 86, 2878, 2883, 86, 2880, 2881, 2885, 86, 86, 2884, - 86, 2888, 86, 86, 86, 86, 86, 2882, 2893, 86, - 2889, 86, 86, 86, 2891, 86, 86, 2886, 86, 2887, + 2844, 86, 86, 86, 86, 86, 2843, 86, 86, 2845, + 86, 86, 2847, 2848, 86, 2850, 2851, 2853, 86, 2849, + 86, 2846, 2852, 2854, 86, 2855, 86, 2856, 2857, 170, + 86, 86, 2860, 2858, 2862, 2859, 86, 86, 2864, 86, + 86, 2863, 86, 2867, 86, 2868, 86, 2866, 86, 2861, + 2870, 86, 86, 2872, 2865, 2871, 86, 86, 2873, 86, + 86, 2869, 2874, 2877, 86, 2875, 86, 86, 2878, 86, + 2876, 2879, 86, 86, 86, 86, 2880, 2884, 2885, 86, + 2886, 2882, 86, 86, 86, 86, 86, 2881, 86, 2888, + 2889, 2887, 86, 86, 86, 2883, 2890, 2892, 2891, 2893, - 2897, 2892, 2900, 2890, 2898, 86, 2901, 2895, 86, 2903, - 2894, 86, 86, 2896, 86, 86, 2902, 2904, 86, 2905, - 2899, 86, 86, 2907, 2909, 86, 2906, 86, 2910, 86, - 86, 2911, 86, 86, 2914, 2908, 86, 2916, 86, 2917, - 86, 2918, 86, 2912, 86, 86, 86, 2913, 2919, 86, - 2920, 2921, 86, 86, 2915, 86, 86, 2925, 2923, 86, - 2929, 2924, 2926, 86, 2930, 86, 2922, 2927, 2931, 86, - 86, 86, 86, 2932, 2935, 86, 2928, 86, 86, 2938, - 86, 86, 2939, 86, 2933, 2934, 2940, 86, 86, 2942, - 86, 86, 86, 2946, 86, 2936, 2943, 86, 2937, 86, + 86, 86, 86, 86, 86, 2894, 2895, 86, 2899, 86, + 86, 2897, 2898, 2900, 2896, 2901, 2903, 86, 86, 86, + 86, 86, 86, 2904, 2908, 86, 86, 2902, 86, 2911, + 86, 2913, 86, 2909, 86, 86, 86, 2905, 86, 2906, + 2907, 86, 2917, 2918, 86, 2912, 2920, 2910, 2921, 86, + 2915, 2923, 86, 2914, 86, 86, 2916, 86, 2924, 86, + 86, 86, 86, 2925, 86, 2926, 2919, 2922, 2929, 86, + 2927, 86, 2930, 86, 86, 2928, 86, 2931, 2932, 86, + 2934, 2936, 86, 2937, 86, 86, 2933, 2938, 86, 2939, + 86, 2941, 86, 86, 2935, 2940, 86, 86, 2945, 86, - 2947, 86, 2950, 2941, 86, 2949, 2945, 2951, 2948, 2944, - 86, 86, 2952, 86, 86, 86, 2957, 2953, 86, 86, - 86, 2956, 86, 2959, 2960, 86, 86, 86, 2962, 86, - 2954, 2961, 2963, 86, 2955, 86, 2965, 86, 2966, 86, - 2969, 86, 86, 2958, 86, 2973, 86, 86, 86, 2980, - 86, 86, 2964, 86, 2981, 86, 2967, 2968, 2972, 2970, - 86, 2974, 2971, 2975, 2977, 86, 86, 2978, 3020, 2982, - 2984, 2976, 86, 2979, 2983, 86, 2985, 86, 86, 2986, - 86, 2987, 86, 2988, 86, 2989, 86, 86, 2990, 86, - 86, 2991, 2993, 86, 86, 2995, 86, 86, 86, 2997, + 86, 2943, 86, 2946, 86, 86, 2949, 2950, 86, 2944, + 86, 2947, 86, 2942, 2951, 86, 2952, 86, 86, 86, + 2948, 2953, 2958, 2954, 86, 2955, 2956, 86, 2959, 86, + 86, 2960, 2961, 86, 2963, 86, 86, 2957, 86, 2962, + 86, 2967, 2968, 86, 86, 2970, 86, 86, 2969, 2964, + 86, 86, 2972, 86, 2966, 2971, 2965, 2973, 86, 86, + 86, 2978, 86, 86, 86, 3507, 2977, 86, 2980, 2974, + 2981, 86, 86, 2975, 86, 86, 86, 2982, 2984, 2976, + 86, 86, 2983, 2986, 86, 2987, 2990, 2979, 2985, 86, + 86, 86, 86, 2988, 2989, 2994, 86, 86, 86, 86, - 3001, 86, 86, 2994, 86, 2998, 3483, 2992, 3002, 86, - 86, 3006, 2996, 3003, 3005, 86, 86, 2999, 3000, 86, - 3004, 3007, 86, 86, 3008, 3009, 86, 86, 86, 86, - 3015, 86, 3010, 86, 3014, 86, 3011, 3012, 3013, 3016, - 86, 86, 3017, 3021, 86, 86, 86, 86, 3022, 86, - 3025, 86, 3019, 86, 3024, 86, 3026, 3023, 86, 3018, - 3027, 86, 3028, 86, 3032, 86, 86, 3029, 86, 86, - 3034, 86, 3030, 3031, 3036, 3033, 86, 3039, 86, 86, - 3037, 86, 86, 86, 86, 3044, 3042, 3043, 86, 86, - 3040, 86, 86, 3035, 3046, 86, 3038, 3045, 86, 3049, + 2996, 86, 86, 3006, 86, 2993, 2995, 2991, 2997, 3000, + 2992, 3001, 2998, 86, 3003, 86, 3002, 86, 2999, 3004, + 86, 3005, 86, 3007, 86, 3008, 86, 3009, 86, 3010, + 86, 3011, 86, 86, 86, 3014, 86, 86, 3013, 3015, + 86, 86, 3017, 86, 86, 3019, 3023, 86, 3012, 86, + 3016, 86, 3020, 3018, 3024, 86, 86, 3027, 86, 3025, + 3032, 3021, 86, 86, 3022, 3029, 86, 3026, 3030, 3028, + 3031, 86, 86, 86, 86, 86, 3037, 86, 86, 86, + 86, 3033, 3034, 3035, 3038, 86, 86, 3039, 86, 3043, + 86, 3049, 86, 3036, 3044, 86, 3041, 3046, 3040, 86, - 3041, 86, 3050, 3483, 3047, 86, 3048, 3051, 86, 3052, - 86, 3053, 86, 86, 3054, 3055, 3058, 86, 3057, 86, - 3056, 86, 86, 86, 3059, 86, 3060, 3061, 86, 86, - 86, 86, 3067, 86, 3065, 3062, 3483, 3063, 86, 3069, - 86, 86, 86, 86, 3064, 3070, 86, 3071, 3066, 86, - 3073, 3072, 3074, 86, 86, 86, 3068, 86, 3075, 3078, - 86, 86, 86, 86, 3082, 3081, 86, 86, 3076, 86, - 3079, 86, 3086, 86, 3077, 3080, 86, 3085, 86, 3083, - 86, 3088, 3089, 3092, 86, 3084, 86, 3094, 86, 3095, - 86, 3087, 86, 86, 3090, 3097, 86, 86, 86, 86, + 86, 3042, 86, 3045, 3047, 3050, 86, 3048, 86, 86, + 3054, 86, 86, 3051, 86, 86, 86, 86, 86, 86, + 86, 3055, 3058, 3061, 86, 3059, 3056, 3053, 3092, 86, + 86, 3062, 86, 3052, 86, 3064, 86, 3065, 3060, 3068, + 3057, 3063, 86, 3066, 86, 3067, 86, 86, 3071, 3073, + 86, 3072, 3074, 86, 3075, 86, 86, 3069, 86, 86, + 3070, 86, 3080, 86, 3079, 3076, 86, 86, 86, 3083, + 86, 3081, 3082, 86, 86, 86, 86, 86, 3077, 86, + 3078, 3084, 3087, 3089, 3093, 3085, 3091, 86, 86, 86, + 86, 86, 86, 3088, 86, 3086, 3094, 86, 3095, 3100, - 86, 86, 3100, 86, 3091, 3093, 3102, 3103, 86, 3098, - 3106, 86, 3105, 3096, 3099, 3101, 86, 86, 86, 3109, - 3104, 86, 86, 3112, 86, 86, 3114, 86, 86, 3117, - 86, 86, 86, 3115, 3107, 3110, 3108, 3118, 86, 86, - 86, 3111, 3121, 86, 86, 3113, 3119, 86, 3126, 3116, - 86, 3123, 86, 3124, 86, 86, 3130, 86, 86, 3120, - 86, 86, 3122, 3132, 3128, 86, 86, 3125, 3133, 3127, - 86, 3134, 86, 3131, 3137, 3129, 3138, 86, 3135, 86, - 86, 3136, 3139, 3140, 3143, 86, 86, 86, 86, 86, - 3141, 3142, 3144, 3146, 86, 3149, 86, 86, 86, 86, + 86, 3090, 86, 86, 86, 3097, 86, 3096, 86, 3098, + 3104, 86, 3099, 86, 86, 3101, 3102, 3103, 86, 86, + 3105, 86, 3108, 3109, 3106, 86, 3111, 86, 86, 86, + 3112, 86, 3107, 3115, 86, 3117, 86, 3118, 86, 3110, + 3120, 86, 86, 86, 86, 3113, 86, 86, 3116, 3123, + 86, 86, 3119, 86, 3114, 3125, 3126, 86, 3121, 3122, + 3128, 86, 3124, 3129, 86, 3132, 86, 3127, 86, 86, + 3135, 86, 86, 3137, 86, 86, 3130, 86, 86, 86, + 3131, 86, 3133, 3138, 86, 3134, 3140, 86, 3141, 86, + 3142, 86, 3136, 3144, 86, 3146, 3139, 3143, 3149, 86, - 86, 86, 3154, 86, 86, 86, 86, 3145, 86, 3150, - 86, 3147, 3148, 3160, 3153, 3157, 3151, 3158, 86, 3159, - 86, 3156, 86, 3155, 3161, 3152, 86, 3162, 3163, 86, - 3164, 86, 3165, 86, 3166, 86, 86, 3169, 86, 3167, - 86, 3171, 86, 86, 86, 3170, 86, 86, 86, 86, - 3177, 3178, 86, 86, 86, 86, 86, 3172, 3184, 86, - 3185, 86, 3168, 86, 86, 3186, 3173, 3175, 3174, 3176, - 3181, 86, 3183, 3180, 86, 3182, 86, 86, 86, 3179, - 86, 3189, 3191, 86, 3187, 3192, 86, 86, 86, 3195, - 3196, 86, 3193, 3188, 3194, 86, 3197, 86, 3190, 3198, + 3147, 3148, 86, 86, 86, 3153, 86, 86, 86, 86, + 86, 3155, 3156, 3145, 3151, 86, 3157, 86, 3150, 3160, + 3161, 86, 3154, 3152, 86, 86, 3163, 3162, 86, 3158, + 3159, 86, 86, 3166, 86, 86, 3165, 86, 3169, 86, + 3167, 86, 3172, 86, 86, 86, 3164, 86, 86, 3177, + 86, 3173, 86, 86, 3193, 86, 3168, 86, 3170, 3171, + 86, 3176, 3184, 3174, 3180, 3181, 86, 3182, 86, 3179, + 86, 3178, 3175, 3183, 86, 86, 3187, 86, 3188, 86, + 3186, 3189, 86, 86, 3185, 3190, 86, 86, 86, 3195, + 86, 86, 86, 3194, 86, 86, 3191, 86, 86, 86, - 86, 86, 3199, 86, 86, 3200, 86, 86, 3201, 86, - 86, 3202, 3204, 86, 86, 3206, 86, 86, 3205, 86, - 3483, 3207, 86, 86, 3203, 86, 86, 86, 86, 3208, - 86, 3216, 3217, 3220, 3209, 3211, 3210, 3219, 3212, 3218, - 3213, 3214, 86, 86, 86, 3222, 3215, 3224, 86, 86, - 3221, 3225, 86, 3226, 3227, 86, 86, 3223, 86, 3230, - 86, 3228, 3231, 86, 3232, 3233, 86, 86, 3234, 3235, - 3239, 86, 3236, 86, 86, 3237, 3238, 3229, 86, 3240, - 86, 3242, 86, 86, 86, 86, 86, 86, 86, 3241, - 3248, 86, 3247, 86, 86, 86, 86, 86, 3244, 86, + 3201, 3202, 86, 86, 86, 86, 86, 3208, 86, 86, + 3196, 3209, 86, 3192, 3197, 3207, 3198, 3199, 3205, 3200, + 3210, 3203, 3204, 86, 86, 3206, 86, 86, 3507, 3211, + 3215, 86, 3213, 3216, 86, 86, 86, 3219, 86, 86, + 3217, 86, 3212, 86, 86, 3214, 3221, 3222, 86, 3223, + 3218, 3220, 86, 86, 86, 86, 3224, 86, 3225, 86, + 3228, 3226, 86, 86, 86, 3230, 86, 86, 86, 3229, + 3231, 86, 86, 86, 3227, 86, 86, 3243, 86, 3507, + 3240, 3241, 3232, 86, 3233, 3235, 3234, 3236, 3242, 3237, + 3238, 86, 86, 86, 3239, 3246, 3244, 86, 3245, 3248, - 3252, 3243, 3251, 3253, 86, 3245, 3246, 86, 3249, 3256, - 3257, 86, 3254, 86, 3259, 86, 3258, 3255, 3250, 3260, - 86, 3261, 86, 86, 86, 86, 3266, 86, 3263, 3268, - 3262, 3267, 86, 3264, 86, 86, 3265, 86, 86, 86, - 3275, 86, 3270, 3272, 3273, 3276, 86, 3278, 86, 86, - 3269, 86, 3277, 3279, 86, 3271, 3274, 86, 3282, 86, - 3283, 86, 3281, 86, 3280, 3285, 86, 3286, 86, 3287, - 86, 86, 3284, 3288, 86, 3289, 86, 3290, 86, 3291, - 86, 3292, 86, 86, 3295, 86, 86, 86, 86, 3299, - 86, 86, 3294, 3301, 86, 3296, 86, 3293, 86, 3297, + 86, 3249, 86, 86, 3251, 86, 3247, 3250, 86, 3254, + 86, 3255, 86, 3252, 3256, 3257, 3253, 86, 3258, 3259, + 86, 86, 3260, 86, 3261, 3262, 86, 86, 86, 3265, + 3263, 3266, 86, 3264, 86, 86, 86, 86, 86, 3272, + 86, 86, 86, 3271, 86, 86, 86, 86, 86, 3268, + 3276, 3275, 3267, 86, 3277, 86, 3269, 3270, 3280, 3281, + 86, 3273, 3278, 86, 3282, 86, 3279, 3274, 86, 3283, + 3284, 86, 3285, 86, 86, 86, 3290, 3292, 3286, 3287, + 86, 3291, 86, 86, 3288, 86, 86, 3289, 86, 86, + 3293, 3296, 3300, 3297, 86, 3294, 3299, 86, 86, 86, - 86, 86, 86, 86, 3305, 3306, 86, 86, 3298, 86, - 3300, 3302, 3310, 3303, 3304, 86, 3307, 3308, 86, 86, - 3312, 3315, 86, 86, 3311, 3309, 3314, 86, 86, 86, - 86, 86, 86, 3313, 3317, 86, 3316, 3321, 86, 86, - 86, 3322, 3323, 86, 86, 86, 3327, 3318, 3319, 3326, - 86, 3320, 3329, 86, 3324, 3330, 86, 86, 3328, 3331, - 86, 86, 86, 86, 86, 86, 3325, 3334, 86, 86, - 3333, 86, 86, 3332, 3339, 86, 3336, 3335, 86, 3338, - 3340, 86, 3342, 86, 3344, 3343, 3341, 3337, 86, 86, - 86, 86, 86, 3345, 86, 86, 86, 3351, 86, 3346, + 3301, 3302, 86, 3303, 86, 86, 3295, 3507, 3298, 86, + 3305, 3306, 86, 86, 3304, 3307, 86, 3507, 3308, 3309, + 86, 3310, 86, 3311, 86, 3312, 86, 3313, 86, 3314, + 86, 3315, 86, 3316, 86, 86, 3319, 86, 86, 3317, + 86, 86, 3323, 86, 3318, 86, 86, 3320, 3325, 86, + 86, 86, 3321, 86, 3329, 3330, 86, 86, 86, 3327, + 86, 3322, 86, 3328, 3324, 3326, 3332, 86, 86, 86, + 3336, 3334, 3331, 3339, 86, 86, 3333, 3338, 86, 86, + 3337, 86, 86, 3341, 86, 86, 3335, 86, 86, 3340, + 86, 3345, 3347, 86, 86, 86, 3346, 86, 3344, 3350, - 3349, 3353, 3350, 86, 3348, 3354, 86, 86, 3356, 3357, - 3359, 86, 86, 3347, 86, 3352, 3361, 86, 3355, 86, - 3362, 3360, 3363, 86, 3364, 86, 86, 3358, 86, 86, - 86, 3367, 86, 3365, 3368, 3369, 86, 3372, 86, 86, - 86, 86, 86, 86, 3375, 86, 3366, 3376, 86, 3378, - 86, 3371, 3373, 3374, 3379, 86, 86, 3370, 3382, 86, - 3377, 3381, 86, 3384, 3385, 86, 86, 3386, 86, 86, - 86, 3380, 3389, 3390, 86, 86, 3387, 3383, 86, 86, - 86, 3395, 86, 86, 3391, 3394, 86, 3392, 3388, 3396, - 86, 86, 86, 86, 3393, 86, 3400, 86, 86, 86, + 3342, 86, 3343, 86, 3351, 3348, 3353, 86, 3352, 3354, + 86, 3355, 86, 86, 86, 86, 86, 86, 3358, 3349, + 3356, 86, 3357, 3359, 86, 86, 3363, 3364, 3362, 3360, + 86, 86, 3366, 86, 86, 86, 86, 3367, 86, 3361, + 86, 86, 86, 86, 86, 3365, 3375, 3373, 86, 3377, + 3370, 86, 3368, 3369, 3374, 3372, 3378, 86, 86, 86, + 86, 3371, 86, 3380, 3376, 3381, 3383, 86, 3379, 3384, + 3385, 86, 86, 3386, 3387, 86, 3388, 86, 86, 3382, + 86, 3389, 86, 3391, 86, 86, 86, 3392, 3396, 3393, + 86, 86, 86, 86, 86, 3400, 86, 3399, 3390, 3402, - 3402, 86, 86, 86, 3397, 3399, 3398, 3407, 3408, 3409, - 86, 3404, 3405, 3401, 86, 86, 3403, 86, 3413, 86, - 3406, 86, 3415, 86, 3416, 86, 3414, 86, 86, 86, - 3417, 3421, 3418, 3411, 3410, 86, 3412, 86, 3422, 86, - 3419, 86, 3424, 86, 86, 86, 3423, 86, 3420, 3425, - 86, 86, 3430, 86, 3427, 86, 86, 3433, 86, 3434, - 86, 86, 86, 3426, 86, 86, 3437, 86, 3432, 3428, - 3429, 3435, 3431, 86, 3436, 86, 3441, 86, 3442, 86, - 3440, 86, 3445, 3438, 3439, 86, 86, 3447, 86, 3448, - 3443, 86, 86, 86, 3452, 86, 3449, 86, 86, 3450, + 86, 3395, 86, 3398, 3397, 3403, 86, 86, 3406, 86, + 3394, 86, 86, 3401, 3409, 86, 86, 3404, 86, 3410, + 86, 86, 3413, 86, 3411, 3414, 3405, 3407, 86, 3408, + 86, 86, 86, 3419, 86, 3415, 3416, 3418, 86, 3412, + 3420, 86, 86, 86, 86, 86, 86, 86, 3424, 3417, + 86, 3426, 86, 86, 86, 86, 86, 3423, 3431, 3421, + 3432, 86, 3422, 3428, 86, 3425, 3427, 3429, 3433, 86, + 86, 3430, 3437, 86, 3439, 3438, 3434, 86, 3440, 3435, + 86, 86, 86, 3436, 86, 86, 3441, 3442, 3445, 3443, + 3446, 86, 86, 86, 86, 3448, 86, 3447, 86, 86, - 3454, 86, 3453, 86, 3446, 3444, 3455, 86, 3456, 86, - 3457, 86, 3451, 86, 3461, 86, 3459, 86, 86, 86, - 86, 86, 86, 3463, 3464, 86, 3467, 86, 3458, 3468, - 86, 3483, 3460, 86, 3471, 86, 3462, 3472, 86, 3465, - 3466, 3469, 3473, 3474, 86, 86, 3470, 3475, 86, 86, - 86, 86, 3476, 86, 3477, 3478, 3481, 86, 3482, 86, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3479, 3483, 3480, 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, + 86, 86, 3449, 3454, 3444, 86, 3451, 86, 86, 86, + 86, 3457, 3450, 3458, 86, 86, 86, 86, 86, 3452, + 3453, 3456, 3461, 86, 3455, 3459, 3462, 86, 3460, 86, + 3465, 3464, 3466, 86, 3463, 86, 3467, 86, 3469, 86, + 3471, 86, 3472, 86, 86, 86, 3476, 86, 3473, 3507, + 86, 3474, 3479, 86, 3470, 3477, 86, 86, 3478, 3468, + 86, 86, 86, 86, 3475, 86, 86, 3480, 3481, 86, + 3483, 3485, 86, 86, 3487, 86, 3482, 86, 3488, 86, + 3491, 3484, 3486, 3492, 86, 3489, 86, 86, 3495, 3496, + 86, 86, 3498, 86, 3490, 86, 3493, 86, 3497, 3499, - 63, 68, 68, 68, 68, 68, 68, 68, 74, 74, - 74, 74, 74, 74, 74, 80, 80, 80, 80, 80, - 80, 80, 89, 89, 3483, 89, 89, 89, 89, 160, - 160, 3483, 3483, 3483, 160, 160, 162, 162, 3483, 3483, - 162, 3483, 162, 164, 3483, 3483, 3483, 3483, 3483, 164, - 167, 167, 3483, 3483, 3483, 167, 167, 169, 3483, 3483, - 3483, 3483, 3483, 169, 171, 171, 3483, 171, 171, 171, - 171, 174, 3483, 3483, 3483, 3483, 3483, 174, 177, 177, - 3483, 3483, 3483, 177, 177, 90, 90, 3483, 90, 90, - 90, 90, 17, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 86, 86, 3500, 86, 86, 3494, 3501, 3507, 3502, 3505, + 86, 3506, 86, 3507, 3507, 3507, 3503, 3507, 3507, 3507, + 3507, 3507, 3507, 3504, 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, 3507, 89, 89, 89, 89, + 160, 160, 3507, 3507, 3507, 160, 160, 162, 162, 3507, + 3507, 162, 3507, 162, 164, 3507, 3507, 3507, 3507, 3507, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483 + 164, 167, 167, 3507, 3507, 3507, 167, 167, 169, 3507, + 3507, 3507, 3507, 3507, 169, 171, 171, 3507, 171, 171, + 171, 171, 174, 3507, 3507, 3507, 3507, 3507, 174, 177, + 177, 3507, 3507, 3507, 177, 177, 90, 90, 3507, 90, + 90, 90, 90, 17, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507 } ; -static const flex_int16_t yy_chk[6834] = +static const flex_int16_t yy_chk[6885] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2336,18 +2348,18 @@ static const flex_int16_t yy_chk[6834] = 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, 3491, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3515, 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, 2838, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2857, 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, 1127, 32, 36, 36, 37, 37, + 28, 92, 31, 32, 1129, 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, @@ -2497,589 +2509,594 @@ static const flex_int16_t yy_chk[6834] = 661, 662, 665, 657, 664, 668, 668, 660, 662, 671, 664, 663, 666, 667, 665, 673, 669, 666, 667, 667, 670, 672, 670, 672, 674, 675, 676, 666, 671, 677, - 678, 679, 680, 673, 685, 679, 678, 681, 682, 683, - 684, 680, 674, 675, 687, 676, 685, 686, 688, 677, - 687, 689, 681, 682, 690, 691, 692, 683, 695, 684, - 693, 701, 686, 694, 696, 689, 690, 694, 688, 697, - 698, 699, 704, 700, 691, 701, 695, 692, 700, 693, - 696, 702, 702, 705, 707, 706, 704, 697, 698, 698, + 678, 679, 680, 673, 85, 679, 678, 681, 682, 683, + 684, 680, 674, 675, 685, 676, 686, 685, 687, 677, + 688, 689, 681, 682, 687, 690, 685, 683, 691, 684, + 692, 686, 694, 693, 696, 689, 694, 690, 695, 697, + 688, 698, 699, 700, 701, 702, 702, 691, 700, 703, + 696, 692, 693, 703, 704, 705, 695, 697, 701, 698, - 699, 703, 708, 709, 710, 703, 706, 708, 707, 711, - 712, 713, 705, 714, 715, 718, 713, 712, 719, 709, - 714, 716, 711, 710, 717, 719, 716, 720, 721, 717, - 722, 723, 725, 718, 724, 730, 720, 725, 715, 722, - 724, 726, 721, 723, 726, 727, 728, 729, 731, 727, - 730, 732, 733, 733, 734, 734, 729, 735, 735, 736, - 728, 737, 731, 734, 736, 739, 741, 740, 743, 744, - 737, 742, 732, 740, 745, 742, 746, 747, 749, 750, - 743, 748, 746, 751, 739, 747, 741, 754, 748, 757, - 760, 761, 745, 772, 744, 763, 749, 761, 770, 760, + 698, 699, 706, 707, 708, 709, 710, 711, 704, 708, + 713, 712, 714, 706, 705, 713, 715, 707, 712, 714, + 711, 709, 716, 717, 718, 710, 719, 716, 717, 720, + 721, 723, 722, 719, 726, 728, 732, 726, 720, 724, + 715, 722, 718, 723, 721, 724, 725, 729, 727, 728, + 730, 725, 727, 731, 733, 733, 729, 732, 736, 734, + 734, 735, 735, 736, 737, 730, 739, 731, 734, 740, + 741, 743, 742, 737, 744, 740, 742, 745, 746, 747, + 749, 748, 750, 743, 746, 739, 751, 747, 748, 754, + 741, 760, 757, 767, 767, 745, 761, 763, 749, 744, - 764, 763, 754, 751, 750, 752, 757, 752, 85, 764, - 752, 766, 765, 772, 752, 766, 770, 752, 767, 767, - 768, 768, 769, 771, 752, 752, 773, 752, 765, 775, - 776, 777, 773, 769, 780, 776, 778, 771, 774, 774, - 774, 782, 774, 779, 781, 774, 782, 779, 781, 775, - 774, 783, 777, 785, 778, 784, 774, 774, 780, 786, - 784, 788, 787, 791, 781, 787, 788, 788, 785, 789, - 783, 790, 790, 798, 792, 798, 789, 794, 791, 792, - 793, 793, 794, 795, 786, 796, 795, 797, 797, 799, - 796, 800, 801, 802, 804, 803, 801, 805, 805, 810, + 760, 80, 761, 763, 754, 764, 751, 750, 752, 757, + 752, 769, 766, 752, 764, 765, 766, 752, 768, 768, + 752, 770, 769, 771, 772, 778, 773, 752, 752, 776, + 752, 765, 773, 775, 776, 777, 779, 771, 780, 770, + 779, 789, 783, 778, 772, 774, 774, 774, 789, 774, + 781, 786, 774, 775, 781, 782, 777, 774, 785, 852, + 782, 783, 780, 774, 774, 787, 784, 791, 787, 788, + 781, 784, 852, 785, 788, 788, 786, 790, 790, 792, + 793, 793, 791, 794, 792, 796, 795, 799, 794, 795, + 796, 797, 797, 798, 800, 798, 801, 802, 804, 799, - 806, 799, 804, 807, 808, 808, 809, 811, 814, 814, - 800, 810, 812, 802, 803, 806, 813, 807, 812, 819, - 815, 813, 817, 825, 809, 815, 815, 817, 818, 811, - 820, 825, 821, 822, 818, 824, 820, 821, 819, 822, - 823, 824, 828, 823, 826, 826, 827, 827, 829, 830, - 828, 831, 832, 833, 830, 834, 835, 835, 831, 836, - 838, 838, 840, 837, 844, 850, 829, 839, 836, 833, - 832, 837, 845, 839, 834, 842, 843, 845, 846, 847, - 849, 840, 847, 851, 842, 843, 848, 846, 844, 852, - 850, 848, 851, 853, 849, 854, 854, 855, 853, 853, + 801, 803, 805, 805, 806, 809, 804, 807, 808, 808, + 810, 811, 812, 800, 814, 814, 819, 802, 812, 806, + 803, 807, 810, 809, 813, 815, 75, 817, 818, 813, + 815, 815, 817, 811, 818, 819, 820, 823, 821, 822, + 823, 824, 820, 821, 825, 822, 828, 824, 826, 826, + 827, 827, 825, 829, 828, 830, 831, 832, 833, 834, + 830, 835, 835, 831, 836, 838, 838, 840, 837, 844, + 842, 829, 843, 836, 833, 832, 837, 839, 834, 842, + 845, 843, 846, 839, 847, 845, 840, 847, 849, 848, + 850, 846, 851, 844, 848, 854, 854, 855, 853, 856, - 856, 857, 852, 858, 859, 860, 867, 862, 860, 862, - 857, 864, 855, 863, 863, 865, 860, 866, 869, 856, - 865, 868, 859, 870, 871, 872, 867, 858, 874, 876, - 873, 875, 864, 871, 873, 876, 877, 878, 866, 879, - 869, 868, 880, 870, 882, 877, 874, 881, 872, 878, - 875, 883, 882, 881, 884, 886, 880, 887, 879, 884, - 885, 885, 888, 889, 890, 883, 891, 892, 893, 895, - 894, 888, 890, 896, 886, 895, 898, 887, 897, 896, - 899, 900, 898, 889, 903, 901, 891, 893, 903, 892, - 894, 901, 897, 902, 899, 904, 905, 906, 907, 902, + 857, 851, 849, 853, 853, 858, 859, 864, 860, 857, + 866, 860, 855, 867, 862, 850, 862, 865, 856, 860, + 863, 863, 865, 868, 859, 869, 870, 871, 864, 858, + 872, 866, 874, 867, 873, 875, 871, 881, 873, 876, + 877, 879, 880, 868, 878, 876, 870, 869, 884, 877, + 874, 881, 882, 872, 875, 883, 878, 879, 882, 885, + 887, 880, 884, 883, 885, 886, 886, 888, 889, 890, + 891, 892, 893, 894, 896, 895, 897, 889, 891, 887, + 896, 901, 897, 898, 899, 900, 905, 888, 906, 890, + 899, 892, 894, 908, 893, 895, 902, 898, 903, 900, - 909, 900, 906, 908, 908, 910, 909, 911, 905, 912, - 911, 910, 913, 915, 904, 914, 905, 916, 916, 907, - 917, 914, 921, 918, 924, 913, 919, 912, 918, 919, - 920, 923, 923, 915, 925, 920, 920, 921, 917, 922, - 926, 927, 919, 922, 919, 926, 924, 929, 930, 933, - 932, 934, 936, 936, 925, 937, 939, 939, 940, 937, - 927, 941, 930, 932, 938, 941, 942, 962, 962, 933, - 944, 929, 934, 935, 943, 944, 935, 945, 935, 938, - 946, 942, 935, 940, 935, 946, 946, 947, 943, 935, - 948, 945, 950, 949, 935, 951, 947, 949, 953, 952, + 906, 901, 902, 904, 903, 905, 907, 904, 906, 909, + 909, 907, 910, 911, 908, 913, 914, 912, 910, 911, + 912, 915, 916, 917, 917, 918, 919, 915, 930, 914, + 922, 919, 920, 913, 921, 920, 925, 923, 928, 921, + 921, 923, 916, 918, 926, 922, 924, 924, 920, 927, + 920, 931, 930, 933, 927, 934, 935, 928, 925, 937, + 937, 939, 1337, 938, 926, 931, 933, 938, 940, 940, + 941, 943, 1337, 948, 944, 934, 939, 935, 936, 946, + 942, 936, 948, 936, 942, 945, 943, 936, 944, 936, + 945, 947, 949, 946, 936, 941, 947, 947, 950, 936, - 951, 954, 955, 953, 948, 956, 958, 950, 957, 949, - 951, 952, 958, 959, 960, 954, 961, 957, 959, 956, - 960, 963, 961, 955, 964, 965, 963, 966, 969, 970, - 964, 967, 972, 975, 970, 973, 973, 974, 971, 976, - 969, 975, 974, 977, 972, 980, 966, 965, 978, 967, - 968, 968, 971, 979, 981, 976, 968, 977, 968, 983, - 981, 980, 984, 982, 968, 985, 986, 978, 982, 968, - 968, 983, 979, 987, 988, 988, 968, 990, 989, 992, - 984, 985, 989, 993, 986, 992, 993, 994, 995, 996, - 997, 987, 999, 995, 998, 1001, 997, 990, 1002, 998, + 951, 953, 950, 952, 954, 955, 949, 956, 952, 954, + 957, 958, 960, 953, 950, 951, 959, 960, 952, 955, + 958, 961, 959, 962, 957, 963, 963, 961, 956, 962, + 964, 965, 966, 967, 970, 964, 971, 965, 968, 972, + 976, 971, 975, 973, 974, 974, 970, 975, 976, 979, + 977, 980, 967, 972, 966, 973, 968, 969, 969, 978, + 984, 982, 981, 969, 983, 969, 977, 982, 979, 983, + 980, 969, 984, 978, 985, 986, 969, 969, 981, 987, + 988, 989, 989, 969, 990, 991, 994, 993, 990, 994, + 995, 986, 985, 993, 996, 997, 998, 987, 988, 996, - 1003, 1005, 996, 1004, 1001, 1006, 994, 1002, 1007, 1004, - 1005, 999, 1008, 1007, 1009, 1010, 1003, 1011, 1012, 1014, - 1015, 1013, 1018, 1021, 1006, 1014, 1020, 1012, 1009, 1011, - 1013, 1022, 1008, 1016, 1023, 1010, 1022, 1015, 1018, 1016, - 1020, 1024, 1025, 1021, 1026, 1027, 1028, 1031, 1032, 80, - 1027, 1028, 1031, 1023, 1035, 1024, 1036, 1032, 1034, 1026, - 1025, 1033, 1033, 1035, 1034, 1037, 1039, 1040, 1045, 1044, - 1046, 1036, 1040, 1040, 1043, 1042, 1042, 1043, 1037, 1042, - 1047, 1048, 1039, 1044, 1049, 1050, 1046, 1051, 1045, 1052, - 1053, 1050, 1054, 1058, 1048, 1052, 1055, 1054, 1047, 1049, + 1000, 999, 998, 1002, 1003, 991, 999, 1004, 997, 995, + 1005, 1006, 1002, 1003, 1007, 1009, 1005, 1008, 1010, 1000, + 1006, 1011, 1008, 1004, 1012, 1013, 1016, 1022, 1014, 74, + 1019, 1024, 1010, 1007, 1013, 1009, 1012, 1014, 1015, 1017, + 1021, 1011, 1025, 1016, 1015, 1017, 1019, 1022, 1023, 1026, + 1024, 1027, 1028, 1023, 1021, 1029, 1025, 1028, 1032, 1033, + 1029, 1034, 1034, 1032, 1035, 1036, 1027, 1026, 1033, 1037, + 1035, 1040, 1038, 1041, 1036, 1045, 1043, 1043, 1041, 1041, + 1043, 1046, 1047, 1044, 1037, 1038, 1044, 1040, 1048, 1045, + 1049, 1051, 1050, 1052, 1053, 1054, 1059, 1051, 1047, 1055, - 1057, 1059, 1061, 1057, 1060, 1053, 1059, 1051, 1062, 1060, - 1055, 1063, 1065, 1067, 1058, 1064, 1063, 1062, 1061, 1067, - 1064, 1068, 1069, 1070, 1065, 1071, 1071, 1072, 1069, 1070, - 1073, 1074, 1075, 1075, 1074, 1076, 1072, 1068, 1077, 1078, - 1079, 1080, 1083, 1079, 1081, 1082, 1085, 1083, 1073, 1091, - 1081, 1082, 1085, 1076, 1080, 1084, 1086, 1077, 1087, 1078, - 1084, 1086, 1089, 1090, 1087, 1092, 1097, 1089, 1093, 1091, - 1095, 1092, 1098, 1093, 1094, 1094, 1096, 1099, 1101, 1095, - 1099, 1090, 1102, 1100, 1097, 1096, 1100, 1102, 1103, 1101, - 1104, 1098, 1105, 1106, 1107, 1108, 1109, 1110, 1110, 1106, + 1053, 1046, 1056, 1049, 1055, 1058, 1048, 1050, 1058, 1060, + 1054, 1062, 1063, 1052, 1060, 1061, 1056, 1059, 1064, 1065, + 1061, 1063, 1066, 1064, 1065, 1068, 1069, 1062, 1073, 1070, + 1071, 1068, 1072, 1072, 1066, 1070, 1071, 1073, 1074, 1077, + 1075, 1078, 1069, 1075, 1076, 1076, 1079, 1080, 1081, 1082, + 1080, 1101, 1083, 1084, 1101, 1082, 1074, 1077, 1083, 1084, + 1078, 1081, 1085, 1086, 1087, 1089, 1079, 1085, 1086, 1088, + 1087, 1089, 1091, 1092, 1088, 1093, 1094, 1091, 1095, 1096, + 1096, 1097, 1094, 1095, 1098, 1099, 1100, 1103, 1105, 1102, + 1097, 1092, 1102, 1098, 1104, 1093, 1106, 1107, 1103, 1104, - 1107, 1109, 1104, 1111, 1112, 1113, 1103, 1114, 1115, 1116, - 1108, 1105, 1115, 1118, 1117, 1119, 1121, 1113, 1112, 1122, - 1122, 1123, 1111, 1117, 1126, 1114, 1124, 1116, 1125, 1123, - 1129, 1124, 1118, 1125, 1128, 1121, 1131, 1130, 1132, 1134, - 1119, 1131, 1133, 1133, 1126, 1129, 1135, 1132, 1128, 1130, - 1136, 1137, 1135, 1138, 1141, 1139, 1136, 1139, 1138, 1134, - 1140, 1142, 1144, 1145, 1143, 1140, 1146, 1137, 1141, 1143, - 1147, 1148, 1151, 1146, 1152, 1142, 1153, 1144, 1150, 1150, - 1155, 1154, 1145, 1156, 75, 1147, 1151, 1154, 1156, 1158, - 1148, 1153, 1152, 1158, 1159, 1159, 1160, 1156, 1162, 1156, + 1110, 1108, 1113, 1099, 1109, 1100, 1105, 1108, 1106, 1111, + 1109, 1112, 1112, 1114, 1111, 1110, 1107, 1115, 1116, 1117, + 1118, 1113, 1119, 1117, 1120, 1121, 1123, 1114, 1128, 1115, + 1126, 1119, 1124, 1124, 1125, 1126, 1116, 1130, 1118, 1127, + 1131, 1132, 1125, 1120, 1127, 1123, 1136, 1133, 1128, 1134, + 1121, 1130, 1133, 1132, 1137, 1131, 1135, 1135, 1134, 1138, + 1137, 1139, 1140, 1147, 1142, 1138, 1136, 1140, 1141, 1142, + 1141, 1143, 1144, 1145, 1146, 1149, 1148, 1139, 1145, 1150, + 1152, 1152, 1147, 1148, 1154, 1143, 1144, 1153, 1155, 1146, + 1149, 1156, 1157, 1165, 1158, 68, 1160, 1156, 1150, 1158, - 1155, 1160, 1156, 1161, 1161, 1162, 1163, 1164, 1165, 1167, - 1164, 1166, 1168, 1169, 1170, 74, 1171, 1168, 1167, 1172, - 1163, 1171, 1174, 1173, 1176, 1176, 1170, 1165, 1179, 1166, - 1177, 1178, 1169, 1172, 1173, 1177, 1178, 1180, 1182, 1181, - 1183, 1174, 1180, 1181, 1184, 1185, 1186, 1182, 1179, 1188, - 1187, 1189, 1190, 1191, 1192, 1183, 1188, 1196, 1186, 1184, - 1193, 1194, 1195, 1189, 1185, 1187, 1193, 1197, 1195, 1198, - 1199, 1190, 1192, 1200, 1191, 1202, 1194, 1196, 1198, 1201, - 1203, 1204, 1205, 1206, 1208, 1199, 1209, 1197, 1205, 1211, - 1208, 1201, 1200, 1210, 1202, 1212, 1204, 1211, 1213, 1214, + 1160, 1153, 1154, 1155, 1161, 1161, 1162, 1165, 1158, 1164, + 1158, 1162, 1157, 1158, 1163, 1163, 1164, 1166, 1167, 1169, + 1166, 1168, 1170, 1171, 1172, 1173, 1174, 1170, 1169, 1176, + 1173, 1181, 1175, 1178, 1178, 63, 1172, 1167, 1184, 1168, + 1174, 1179, 1171, 1175, 1180, 1182, 1179, 1184, 1176, 1180, + 1182, 1181, 1183, 1185, 1186, 1187, 1183, 1189, 1188, 1190, + 1192, 1188, 1193, 1191, 1194, 1195, 1190, 1198, 1185, 1186, + 1188, 1195, 1189, 1196, 1187, 1191, 1199, 1200, 1197, 1192, + 1201, 1202, 1194, 1193, 1197, 1203, 1200, 1198, 1196, 1204, + 1205, 1206, 1207, 1208, 1211, 1201, 1199, 1203, 1207, 1210, - 1215, 1209, 1217, 1206, 1214, 1203, 1218, 1210, 1281, 1219, - 1281, 1216, 1215, 1222, 1213, 1212, 1216, 1216, 1220, 1220, - 1218, 1217, 1219, 1221, 1221, 1223, 1222, 1224, 1221, 1225, - 1225, 1221, 1221, 1224, 1223, 1226, 1221, 1228, 1227, 1229, - 1226, 1232, 1221, 1228, 1229, 1230, 1221, 1227, 1231, 1231, - 1230, 1233, 1233, 1234, 1235, 1236, 1234, 1237, 1234, 1238, - 1239, 1240, 1232, 1237, 1241, 1242, 1240, 1245, 1238, 1243, - 1244, 1249, 1245, 1236, 1235, 1243, 1244, 1246, 1241, 1247, - 1239, 1246, 1248, 1242, 1260, 1249, 1255, 1248, 1247, 1250, - 1250, 1251, 1251, 1247, 1251, 1247, 1252, 1247, 1254, 1247, + 1202, 1214, 1212, 1213, 1215, 1210, 1206, 1216, 1204, 1211, + 1217, 1213, 1216, 1208, 1219, 1205, 1212, 1220, 1218, 1221, + 1215, 1214, 1217, 1218, 1218, 1222, 1222, 1224, 1225, 1229, + 1226, 1220, 1221, 1219, 1223, 1223, 1226, 1225, 1229, 1223, + 1224, 1228, 1223, 1223, 1227, 1227, 1228, 1223, 1230, 1234, + 1231, 1232, 1237, 1223, 1230, 1231, 1232, 1223, 1233, 1233, + 1235, 1235, 1236, 1238, 1240, 1236, 1241, 1236, 1239, 1243, + 1234, 1242, 1237, 1240, 1239, 1244, 1242, 1247, 1245, 1246, + 1249, 1238, 1247, 1243, 1245, 1246, 1241, 1248, 1251, 1249, + 1250, 1248, 1257, 1244, 1249, 1250, 1249, 1256, 1249, 1254, - 1256, 1255, 1254, 1257, 1258, 1259, 1260, 1252, 1261, 1258, - 1258, 1262, 1257, 1261, 1259, 1263, 1264, 1265, 1256, 1266, - 1267, 1268, 1268, 1269, 1263, 1262, 1267, 1270, 1272, 1271, - 1273, 1269, 1275, 1266, 1271, 1264, 1265, 1274, 1276, 1273, - 1277, 1270, 1272, 1279, 1274, 1277, 1278, 1278, 1280, 1280, - 1275, 1283, 1284, 1285, 1283, 1286, 1288, 1284, 1279, 1287, - 1287, 1289, 1289, 1276, 1286, 1290, 1290, 1292, 1291, 1293, - 1294, 1294, 1285, 1291, 1295, 1296, 1288, 1297, 1298, 1299, - 1297, 1300, 1301, 1303, 1306, 1299, 1300, 1302, 1292, 1302, - 1293, 1301, 1296, 1305, 1295, 1307, 1305, 1308, 1298, 1306, + 1249, 1256, 1251, 1252, 1252, 1253, 1253, 1257, 1253, 1258, + 1254, 1259, 1260, 1261, 1262, 1264, 1263, 1260, 1260, 1265, + 1259, 1263, 1261, 1266, 1267, 1268, 1269, 1258, 1265, 1264, + 1270, 1270, 1269, 1271, 1272, 1273, 1262, 1274, 1275, 1268, + 1273, 1271, 1266, 1267, 1277, 1276, 1278, 1275, 1272, 1279, + 1281, 1274, 1276, 1287, 1279, 1280, 1280, 1282, 1282, 1283, + 1285, 1283, 1277, 1285, 1286, 1281, 1288, 1289, 1289, 1286, + 1290, 1278, 1287, 1291, 1291, 1288, 1292, 1292, 1293, 1294, + 1295, 1296, 1299, 1293, 1297, 1297, 1298, 1301, 1300, 1302, + 1290, 1300, 1303, 1306, 1304, 1302, 1305, 1303, 1305, 1299, - 1307, 1303, 1309, 1311, 1310, 1313, 1312, 1309, 1311, 1312, - 1313, 1308, 1310, 1314, 1314, 1315, 1316, 1317, 1318, 1319, - 1315, 1321, 1322, 1317, 1323, 1318, 1324, 1321, 1322, 1323, - 1325, 1324, 1319, 1326, 1316, 1327, 1325, 1328, 1329, 1329, - 1330, 1332, 1326, 1333, 1335, 1334, 1332, 1336, 1328, 1337, - 1338, 1339, 1340, 1344, 1327, 1334, 1338, 1339, 1340, 1335, - 1330, 1333, 1342, 1343, 1345, 1347, 1346, 1336, 1342, 1348, - 1349, 1349, 1337, 1344, 1350, 1351, 1353, 1343, 1346, 1347, - 1352, 1353, 1355, 1343, 1345, 1354, 1354, 1348, 1356, 1358, - 1359, 1360, 1361, 1356, 1350, 1359, 1359, 1363, 1352, 1362, + 1294, 1295, 1296, 1304, 1309, 1308, 1298, 1301, 1308, 1310, + 1311, 1306, 1312, 1313, 1310, 1314, 1319, 1312, 1316, 1309, + 1314, 1313, 1315, 1316, 1311, 1315, 1317, 1317, 1318, 1320, + 1321, 1322, 1324, 1318, 1319, 1320, 1325, 1321, 1324, 1329, + 1326, 1327, 1325, 1328, 1322, 1326, 1327, 1330, 1329, 1328, + 1331, 1332, 1332, 1333, 1335, 1338, 1336, 1339, 1340, 1335, + 1347, 1331, 1341, 1342, 1348, 1343, 1330, 1349, 1341, 1342, + 1338, 1343, 1345, 1333, 1336, 1346, 1350, 1339, 1345, 1349, + 1347, 1340, 1351, 1353, 1348, 1352, 1352, 1354, 1355, 1346, + 1350, 1356, 1357, 1357, 1358, 1346, 1356, 1359, 1363, 1361, - 1351, 1361, 1364, 1365, 1367, 1355, 1369, 1362, 1358, 1360, - 1368, 1363, 1368, 1367, 1366, 1373, 1375, 1364, 1365, 1366, - 1369, 1365, 1366, 1371, 1372, 1374, 1373, 1376, 1372, 1371, - 1374, 1374, 1377, 1378, 1379, 1375, 1380, 1381, 1378, 1379, - 1382, 1383, 1385, 68, 1386, 1382, 1387, 1388, 1388, 1390, - 1377, 1389, 1391, 1376, 1380, 1389, 1385, 1381, 1393, 1392, - 1394, 1383, 1386, 1395, 1387, 1392, 1396, 1390, 1397, 1398, - 1393, 1391, 1402, 1399, 1403, 1400, 1406, 1395, 1399, 1394, - 1401, 1396, 1400, 1397, 1404, 1401, 1405, 1405, 1398, 1407, - 1402, 1406, 1408, 1404, 1410, 1403, 1409, 1409, 1407, 1411, + 1351, 58, 1359, 1353, 1362, 1364, 1355, 1365, 1366, 1362, + 1362, 1367, 1354, 1368, 1364, 1365, 1363, 1358, 1361, 1369, + 1370, 1371, 1366, 1371, 1369, 1372, 1367, 1369, 1368, 1370, + 1374, 1368, 1376, 1375, 1378, 1377, 1374, 1375, 1379, 1372, + 1377, 1377, 1380, 1376, 1381, 1382, 1384, 1383, 1386, 1381, + 1382, 1385, 1389, 1378, 1390, 1388, 1385, 1391, 1391, 1392, + 1380, 1393, 1394, 1392, 1379, 1383, 1384, 1395, 1386, 1388, + 1389, 1396, 1390, 1395, 1397, 1398, 57, 1399, 1400, 1393, + 1401, 1394, 1402, 1396, 1403, 1404, 1406, 1407, 1410, 1403, + 1397, 1399, 1404, 1400, 1398, 1401, 1408, 1405, 1409, 1409, - 1410, 1412, 1413, 1413, 1415, 1411, 1414, 1414, 1416, 1417, - 1415, 1418, 1408, 1419, 1420, 1412, 1418, 1421, 1428, 1419, - 1420, 1422, 1422, 1421, 1416, 1423, 1423, 1425, 1425, 1426, - 1417, 1427, 1429, 1426, 1430, 1431, 1428, 1434, 1432, 1435, - 1427, 1433, 1433, 1438, 1429, 1432, 1436, 1435, 1430, 1437, - 1431, 1436, 1441, 1439, 1443, 1440, 1444, 1434, 1439, 1439, - 1440, 1440, 1438, 1437, 1442, 1442, 1446, 1445, 1447, 1448, - 1449, 1446, 1441, 1443, 1450, 1444, 1445, 1451, 1452, 1453, - 1450, 1455, 1451, 1458, 1454, 1456, 1457, 1447, 1449, 1448, - 1454, 1456, 1457, 1459, 1460, 1461, 1462, 1463, 1452, 1469, + 1411, 1402, 1405, 1410, 1406, 1408, 1412, 1414, 1407, 1411, + 1413, 1413, 1415, 1414, 1416, 1417, 1417, 1419, 1415, 1418, + 1418, 1420, 1421, 1419, 1422, 1423, 1412, 1424, 1416, 1422, + 1425, 1423, 1432, 1424, 1426, 1426, 1425, 1420, 1427, 1427, + 1429, 1429, 1430, 1421, 1431, 1433, 1430, 1434, 1435, 1436, + 1432, 1437, 1437, 1431, 1438, 1440, 1436, 1433, 1439, 1441, + 1440, 1434, 1442, 1435, 1443, 1445, 1439, 1446, 1446, 1443, + 1443, 1444, 1447, 1441, 1438, 1448, 1444, 1444, 1449, 1450, + 1451, 1442, 1452, 1453, 1450, 1445, 1454, 1449, 1455, 1456, + 1457, 1447, 1454, 1455, 1448, 1459, 1462, 1458, 1460, 1451, - 1455, 1464, 1458, 1465, 1465, 1453, 1466, 1467, 1468, 1466, - 1462, 1469, 1459, 1460, 1461, 1475, 1464, 1474, 1463, 1470, - 1470, 1471, 1471, 1472, 1475, 1473, 1467, 1468, 1472, 1473, - 1474, 1476, 1477, 1481, 1477, 1479, 1480, 1482, 1477, 1483, - 1485, 1480, 1484, 1484, 1476, 1485, 1486, 1487, 1481, 1489, - 1488, 1477, 1486, 1479, 1489, 1483, 1490, 1482, 1492, 1493, - 1490, 1491, 1487, 1488, 1494, 1491, 1495, 1499, 1496, 1497, - 1497, 1501, 63, 1494, 1496, 1502, 1505, 1493, 1492, 1516, - 1502, 1503, 1503, 1504, 1511, 1499, 1495, 1507, 1507, 1504, - 1509, 1512, 1501, 1509, 1510, 1510, 1505, 1515, 1514, 1516, + 1461, 1453, 1452, 1458, 1460, 1463, 1461, 1464, 1465, 1456, + 1467, 1466, 52, 1468, 1459, 1462, 1457, 1469, 1469, 1470, + 1471, 1472, 1470, 1473, 1463, 1466, 1464, 1465, 1468, 1474, + 1474, 1467, 1475, 1475, 1477, 1473, 1476, 1478, 1477, 1471, + 1472, 1476, 1479, 1480, 1483, 1485, 1481, 1486, 1481, 1484, + 1478, 1479, 1481, 1487, 1484, 1490, 1480, 1488, 1488, 1489, + 1485, 1490, 1483, 1491, 1489, 1481, 1492, 1486, 1493, 1487, + 1494, 1495, 1496, 1493, 1494, 1495, 1497, 1498, 1491, 1492, + 1499, 1500, 1501, 1501, 1503, 1505, 1498, 1500, 1506, 1507, + 1507, 1508, 1496, 1506, 1497, 1509, 1515, 1508, 1511, 1511, - 1511, 1514, 1517, 1518, 1519, 1519, 1520, 1512, 1521, 1522, - 1523, 1517, 1524, 1525, 1525, 1523, 1526, 1527, 1515, 1528, - 1529, 1520, 1530, 1518, 1532, 1526, 1524, 1540, 1522, 1521, - 1531, 1531, 1533, 1535, 1528, 1527, 1534, 1538, 1532, 1536, - 1536, 1534, 1530, 1537, 1541, 1529, 1544, 1537, 1535, 1540, - 1533, 1539, 1539, 1542, 1543, 1545, 1548, 1538, 1543, 1548, - 1545, 1547, 1547, 1541, 1542, 1544, 1549, 1550, 1551, 1552, - 1554, 1553, 1550, 1556, 1555, 1557, 1557, 1558, 1563, 1549, - 1559, 1560, 1558, 1563, 1551, 1553, 1562, 1552, 1555, 1554, - 1554, 1561, 1561, 1564, 1565, 1562, 1565, 1566, 1556, 1567, + 1499, 1513, 1503, 1516, 1513, 1517, 1505, 1514, 1514, 1520, + 1519, 1521, 1515, 1519, 1522, 1509, 1523, 1524, 1524, 1516, + 1525, 1517, 1526, 1522, 1528, 1527, 1529, 1530, 1530, 1528, + 1520, 1521, 1531, 1532, 1533, 1525, 1523, 1534, 1535, 1537, + 1529, 1531, 1538, 1526, 1527, 1536, 1536, 1539, 1540, 1533, + 1543, 1532, 1539, 1537, 1541, 1541, 1545, 1542, 1535, 1556, + 1538, 1542, 1534, 1540, 1544, 1544, 1546, 1548, 1547, 1549, + 1543, 1548, 1550, 1552, 1552, 1556, 1554, 1550, 1545, 1547, + 1553, 1555, 1557, 1553, 1558, 1546, 1555, 1559, 1549, 1554, + 1560, 1561, 1562, 1562, 1563, 1564, 1567, 1565, 1558, 1563, - 1559, 1560, 1566, 1568, 1569, 1567, 1571, 1572, 1572, 1573, - 1569, 1574, 1577, 1564, 1576, 1578, 1578, 1574, 1580, 1576, - 1571, 1579, 1579, 1568, 1581, 1582, 1583, 1585, 1573, 1583, - 1584, 1584, 1580, 1587, 1586, 1595, 1577, 1589, 1588, 58, - 1582, 1588, 1581, 1589, 1588, 1585, 1586, 1590, 1591, 1593, - 1594, 1591, 1590, 1587, 1596, 1594, 1588, 1596, 1593, 1598, - 1595, 1597, 1597, 1599, 1603, 1598, 1600, 1591, 1606, 1599, - 1603, 1600, 1601, 1601, 1602, 1602, 1604, 1605, 1607, 1608, - 1609, 1604, 1610, 1609, 1612, 1611, 1606, 1613, 1610, 1612, - 1605, 1611, 1614, 1613, 1618, 1615, 1619, 1607, 1617, 1608, + 1557, 1566, 1566, 1568, 1560, 1567, 1559, 1559, 1568, 1569, + 1570, 1573, 1570, 1571, 1572, 1564, 1561, 1565, 1571, 1574, + 1572, 1576, 1577, 1577, 1578, 1574, 1579, 1582, 1581, 1569, + 1585, 1573, 1579, 1581, 1586, 1576, 1583, 1583, 1584, 1584, + 1587, 1590, 1588, 1578, 1585, 1588, 1589, 1589, 1591, 1592, + 1593, 1582, 1586, 1593, 1600, 1587, 1593, 1594, 1598, 1590, + 1591, 1595, 1596, 1594, 47, 1596, 1595, 1598, 1593, 1592, + 1599, 1601, 1602, 1602, 1601, 1599, 1603, 1604, 1608, 1600, + 1605, 1596, 1603, 1604, 1608, 1605, 1606, 1606, 1607, 1607, + 1609, 1610, 1611, 1612, 1613, 1609, 1614, 1615, 1620, 1614, - 1615, 1616, 1616, 1617, 1620, 1621, 1622, 1623, 1624, 1625, - 1626, 1629, 1618, 1627, 1636, 1614, 1619, 1627, 1638, 1632, - 1622, 1623, 1624, 1620, 1628, 1621, 1628, 1625, 1633, 1630, - 1629, 1632, 1634, 1635, 1636, 1626, 1630, 1637, 1638, 1635, - 1633, 1639, 1640, 1642, 1642, 1634, 1643, 1644, 1645, 1646, - 1646, 1648, 1644, 1637, 1647, 1639, 1649, 1650, 1651, 1652, - 1645, 1653, 1655, 1640, 1654, 1648, 1643, 1651, 1653, 1647, - 1657, 1659, 57, 1654, 1652, 1650, 1654, 1663, 1655, 1660, - 1649, 1664, 1660, 1661, 1661, 1657, 1662, 1662, 1665, 1663, - 1657, 1665, 1666, 1666, 1667, 1668, 1659, 1669, 1670, 1664, + 1616, 1617, 1625, 1615, 1610, 1619, 1616, 1617, 1618, 1624, + 1611, 1619, 1612, 1618, 1613, 1621, 1622, 1622, 1623, 1626, + 1621, 1620, 1625, 1623, 1627, 1628, 1629, 1624, 1630, 1631, + 1632, 1633, 1634, 1635, 1634, 1633, 1636, 1638, 1626, 1628, + 1629, 1639, 1630, 1636, 1627, 1640, 1642, 1631, 1641, 1638, + 1644, 1643, 1635, 1639, 1641, 1632, 1646, 1645, 1640, 1648, + 1648, 1649, 1651, 1650, 1652, 1652, 1642, 1643, 1650, 1653, + 1644, 1645, 1654, 1655, 1651, 1656, 1657, 1646, 18, 1658, + 1659, 1649, 1661, 1660, 1653, 1657, 1654, 1659, 1663, 1665, + 1667, 1667, 1660, 1656, 1658, 1660, 1666, 1655, 1661, 1666, - 1671, 1670, 1669, 1672, 1673, 1671, 1674, 1667, 1675, 1676, - 1677, 1678, 1679, 1679, 1668, 1674, 1680, 1678, 1676, 1677, - 1673, 1676, 1672, 1682, 1681, 1683, 1684, 1675, 1685, 1690, - 1686, 1687, 1691, 1685, 1685, 1686, 1680, 1681, 1694, 1683, - 1693, 1682, 1684, 1687, 1692, 1692, 1695, 1694, 1696, 1696, - 1691, 1695, 1697, 1698, 1690, 1699, 1693, 1700, 1698, 1701, - 1702, 1697, 1704, 1696, 1697, 1702, 1702, 1705, 1706, 1707, - 1709, 1710, 1710, 1699, 1707, 1708, 1704, 1701, 1700, 1711, - 1713, 1708, 1705, 1717, 1712, 1711, 1714, 1715, 1709, 1712, - 1706, 1718, 1714, 1715, 1713, 1719, 1720, 1721, 1722, 1724, + 1668, 1668, 1670, 1663, 1669, 1673, 1671, 1674, 1663, 1671, + 1672, 1672, 1675, 1678, 1665, 1679, 1669, 1675, 1673, 1676, + 1670, 1680, 1676, 1677, 1681, 1682, 1674, 1683, 1677, 1684, + 1680, 1679, 1678, 1686, 1682, 1684, 1683, 1682, 1685, 1685, + 1688, 1687, 1689, 1681, 1690, 1691, 1696, 1692, 1697, 1693, + 1691, 1691, 1692, 1686, 1687, 1700, 1689, 1699, 1688, 1706, + 1690, 1693, 1698, 1698, 1700, 1701, 1697, 1702, 1702, 1703, + 1701, 1696, 1704, 1699, 1705, 1707, 1710, 1704, 1703, 1708, + 1706, 1703, 1702, 1711, 1708, 1708, 1712, 1715, 1719, 1713, + 1710, 1714, 1705, 1707, 1713, 1716, 1716, 1714, 1711, 1718, - 1721, 1719, 1726, 1717, 1722, 1718, 1721, 1724, 1727, 1720, - 1728, 1729, 1731, 1730, 1732, 1733, 1729, 1734, 1728, 1735, - 1737, 1726, 1730, 1732, 1739, 1731, 1737, 1727, 1733, 1736, - 1736, 1734, 1738, 1735, 1740, 1740, 1741, 1739, 1738, 1742, - 1743, 1744, 1744, 1746, 1747, 1745, 1748, 1749, 1752, 1746, - 1753, 1736, 1751, 1751, 1753, 1754, 1741, 1742, 1745, 1743, - 1754, 1755, 1748, 1759, 1756, 1749, 1747, 1757, 1752, 1756, - 1758, 1761, 1757, 1763, 1762, 1764, 1763, 1765, 1767, 1758, - 1769, 1755, 1761, 1762, 1766, 1766, 1759, 1764, 1768, 1770, - 1770, 1771, 1765, 1776, 1772, 1773, 1774, 1767, 1777, 1769, + 1717, 1720, 1719, 1721, 1718, 1715, 1717, 1720, 1712, 1721, + 1723, 1724, 1725, 1726, 1727, 1728, 1730, 1727, 1725, 1732, + 1733, 1728, 1734, 1727, 1730, 1724, 1726, 1735, 1736, 1738, + 1723, 1737, 1740, 1736, 1739, 1735, 1741, 1742, 1732, 1733, + 1737, 1734, 1738, 1739, 1746, 1740, 1743, 1743, 1744, 1745, + 1741, 1742, 1747, 1747, 1744, 1745, 1748, 1746, 1752, 1749, + 1750, 1751, 1751, 1753, 1754, 1755, 1756, 1759, 1743, 1753, + 1760, 1752, 1758, 1758, 1760, 1761, 1748, 1749, 1762, 1750, + 1761, 1755, 1765, 1763, 1756, 1764, 1754, 1759, 1763, 1766, + 1764, 1765, 1768, 1769, 1770, 1771, 1772, 1770, 1762, 1773, - 1768, 1772, 1779, 1778, 1780, 1771, 1786, 1773, 1774, 1778, - 1781, 1786, 1776, 1791, 1779, 1791, 1781, 1793, 1777, 1782, - 1782, 1783, 1780, 1787, 1783, 1784, 1784, 1788, 1789, 1789, - 1790, 1792, 1787, 1788, 1792, 1794, 1795, 1793, 1796, 1797, - 1798, 1799, 1790, 1800, 1797, 1798, 1801, 1802, 1804, 1803, - 1799, 1807, 1802, 1810, 1795, 1800, 1796, 1794, 1803, 1806, - 1805, 1801, 1808, 1808, 1806, 1805, 1807, 1809, 1804, 1812, - 1813, 1803, 1805, 1809, 1810, 1814, 1815, 1816, 1817, 1816, - 1818, 1818, 1819, 1819, 1820, 1820, 1821, 1824, 1812, 1813, - 1825, 1814, 1817, 1835, 1817, 1838, 1815, 1822, 1822, 1823, + 1773, 1774, 1769, 1768, 1775, 1776, 1780, 1771, 1777, 1777, + 1779, 1772, 1766, 1778, 1781, 1783, 1775, 1779, 1780, 1784, + 1774, 1786, 1785, 1787, 1776, 1788, 1781, 1778, 1785, 1789, + 1789, 1788, 1790, 1786, 1783, 1790, 1791, 1791, 1793, 1784, + 1794, 1787, 1795, 1793, 1796, 1796, 1797, 1800, 1795, 1794, + 1798, 1799, 1798, 1801, 1799, 1802, 1803, 1804, 1797, 1805, + 1806, 1808, 1804, 1809, 1805, 1807, 1811, 1800, 1809, 1806, + 1810, 17, 1814, 1802, 1803, 1801, 1808, 1807, 1812, 1810, + 1813, 1815, 1815, 1812, 1817, 1813, 1811, 1814, 1816, 1819, + 1812, 1820, 1810, 1821, 1816, 1822, 1823, 1824, 1823, 1825, - 1823, 1826, 1826, 1827, 1828, 1832, 1821, 1827, 1824, 1829, - 1828, 1825, 1829, 1831, 1833, 1838, 1834, 1841, 1835, 1831, - 1833, 1834, 1836, 1832, 1839, 1836, 1837, 1837, 1842, 1839, - 1840, 1840, 1841, 1843, 1844, 1845, 1845, 1846, 1843, 1844, - 1847, 1848, 1846, 1849, 1850, 1851, 1847, 1853, 52, 1842, - 1852, 1857, 1855, 1848, 1848, 1848, 1852, 1855, 1855, 1856, - 1848, 1859, 1850, 1849, 1860, 1851, 1857, 1853, 1858, 1861, - 1858, 1862, 1859, 1856, 1863, 1861, 1864, 1865, 1865, 1860, - 1862, 1866, 1867, 1867, 1868, 1872, 1869, 1870, 1870, 1871, - 1871, 1875, 1875, 1876, 1863, 1880, 1881, 1864, 1882, 1884, + 1825, 1826, 1826, 1827, 1827, 1817, 1828, 1831, 1819, 1821, + 1820, 1824, 1832, 1824, 1833, 1822, 1829, 1829, 1830, 1830, + 1834, 1834, 1837, 1835, 1836, 1837, 1828, 1835, 1831, 1840, + 1836, 1839, 1841, 1832, 1842, 1833, 1843, 1839, 1841, 1842, + 1844, 1845, 1845, 1844, 1846, 1847, 1850, 1840, 1848, 1848, + 1847, 1849, 1851, 1852, 1853, 1853, 1855, 1851, 1852, 1856, + 1854, 1843, 1855, 1857, 1846, 1854, 1849, 1850, 1858, 1859, + 1860, 1856, 1856, 1856, 1861, 1863, 1860, 1864, 1856, 1867, + 1863, 1863, 1865, 1857, 1868, 1866, 1858, 1866, 1871, 1859, + 1867, 1864, 1869, 1870, 1861, 1872, 1874, 1865, 1869, 1868, - 1877, 1879, 1881, 1888, 1868, 1872, 1885, 1866, 1869, 1877, - 1879, 1883, 1883, 1890, 1882, 1886, 1880, 1887, 1876, 1891, - 1884, 1885, 1886, 1889, 1889, 1893, 1887, 1894, 1895, 1888, - 1893, 1896, 1900, 1894, 1897, 1891, 1901, 1904, 1896, 1890, - 1897, 1898, 1901, 1898, 1902, 1902, 1904, 1903, 1895, 1905, - 1907, 1900, 1903, 1906, 1908, 1909, 1910, 1908, 1911, 1911, - 1912, 1913, 1907, 1914, 1915, 1918, 1912, 1913, 1922, 1905, - 1916, 1919, 1906, 1909, 1916, 1920, 1921, 1921, 1925, 1915, - 1920, 1923, 1910, 1914, 1926, 1918, 1934, 1922, 1926, 1928, - 1916, 1927, 1927, 1919, 1929, 1928, 1923, 1925, 1930, 1930, + 1873, 1873, 1870, 1875, 1875, 1876, 1877, 1880, 1871, 1878, + 1878, 1879, 1879, 1883, 1883, 1884, 1872, 1885, 1888, 1890, + 1887, 1892, 1874, 1893, 1889, 1876, 1885, 1880, 1877, 1887, + 1889, 1891, 1891, 1896, 1894, 1890, 1895, 1898, 1893, 1888, + 1884, 1894, 1892, 1897, 1897, 1895, 1899, 1901, 1902, 1903, + 1904, 1906, 1901, 1906, 1902, 1905, 1908, 1904, 1909, 1896, + 1913, 1905, 1899, 1898, 1909, 1910, 1910, 1911, 1912, 1903, + 1914, 1915, 1911, 1916, 1917, 1908, 1916, 1912, 1918, 1920, + 1913, 1919, 1919, 1915, 1921, 1920, 1922, 1923, 1926, 1914, + 1921, 1924, 1917, 1927, 1928, 1924, 1929, 1929, 1930, 1928, - 1931, 1932, 1935, 1929, 1931, 1933, 1933, 1934, 1936, 1937, - 1938, 1939, 1932, 1940, 1937, 1941, 1935, 1932, 1943, 1940, - 1942, 1944, 1947, 1943, 1945, 1945, 1947, 1936, 1946, 1946, - 1938, 1939, 1949, 1941, 1944, 1942, 1950, 1951, 1952, 1952, - 1955, 1949, 1954, 1954, 1956, 1955, 1955, 1950, 1958, 1959, - 1956, 1960, 1950, 1961, 1958, 1962, 1960, 1951, 1964, 1965, - 1966, 1962, 1968, 1965, 1970, 1961, 1967, 1967, 1969, 1973, - 1964, 1971, 1966, 1974, 1969, 1959, 1975, 1971, 1972, 1972, - 1976, 1975, 1978, 1979, 1980, 1986, 1970, 1968, 1973, 1980, - 1983, 1983, 1976, 1974, 1978, 1982, 1984, 1984, 1982, 1985, + 1933, 1931, 1923, 1934, 1918, 1937, 1922, 1934, 1926, 1935, + 1935, 1924, 1936, 1940, 1937, 1927, 1931, 1930, 1936, 1933, + 1938, 1938, 1939, 1942, 1940, 1943, 1939, 1941, 1941, 1940, + 1944, 1945, 1946, 1947, 1948, 1949, 1945, 1950, 1952, 1943, + 2056, 1949, 1951, 1952, 1942, 1953, 1954, 1954, 2056, 1944, + 1955, 1955, 1946, 1947, 1948, 1950, 1956, 1951, 1953, 1958, + 1956, 1959, 1960, 1961, 1961, 1963, 1963, 1965, 1958, 1964, + 1967, 1968, 1959, 1965, 1964, 1964, 1967, 1959, 1969, 1970, + 1971, 1973, 1960, 1969, 1974, 1977, 1971, 1975, 1974, 1976, + 1976, 1970, 1978, 1973, 1979, 1980, 1982, 1968, 1978, 1975, - 1985, 1987, 1979, 1988, 1990, 1986, 1989, 1987, 1991, 1988, - 1990, 1989, 1995, 1993, 1996, 1995, 1999, 1991, 1993, 1997, - 1997, 2000, 2001, 2002, 2002, 2003, 1996, 2001, 1999, 2006, - 2004, 2005, 2006, 2000, 2003, 2004, 2005, 2007, 2007, 2008, - 2009, 2012, 2010, 2011, 2014, 2012, 2013, 2015, 2016, 2009, - 2014, 2013, 2017, 2018, 2020, 2020, 2021, 2016, 2023, 2008, - 2010, 2027, 2011, 2022, 2025, 2015, 2020, 2018, 2024, 2024, - 2017, 2026, 2022, 2025, 2021, 2028, 2029, 2035, 2023, 2036, - 2028, 2038, 2027, 2026, 2032, 2032, 2039, 2034, 2040, 2029, - 2034, 2041, 2044, 2035, 2040, 2036, 2038, 2042, 2042, 2043, + 1983, 1980, 1981, 1981, 1984, 1985, 1987, 1988, 1989, 1984, + 1977, 1991, 1995, 1989, 1991, 1982, 1979, 1985, 1987, 1996, + 1983, 1992, 1992, 1993, 1993, 1996, 1988, 1994, 1994, 1997, + 0, 1998, 1995, 1999, 2000, 1997, 1998, 2002, 2004, 1999, + 2005, 2004, 2002, 2000, 2006, 2006, 2008, 2009, 2010, 2011, + 2011, 2012, 2005, 2010, 2016, 2016, 2013, 2014, 2008, 2009, + 2012, 2013, 2014, 2015, 2017, 2018, 2015, 2019, 2020, 2021, + 2022, 2023, 2024, 2021, 2018, 2022, 2026, 2023, 2027, 2025, + 2030, 2029, 2029, 2032, 2017, 2019, 2031, 2020, 2025, 2035, + 2024, 2034, 2027, 2029, 2026, 2031, 2033, 2033, 2030, 2036, - 2039, 2043, 2045, 2045, 2046, 2048, 2048, 2051, 2041, 2052, - 2044, 2053, 2046, 2049, 2049, 2052, 2055, 2053, 2054, 2056, - 2057, 2058, 2058, 2055, 2059, 2060, 2061, 2062, 2063, 2065, - 2051, 2067, 2054, 2059, 2066, 2064, 2069, 2067, 2061, 2062, - 2057, 2056, 2070, 2063, 2073, 2071, 2060, 2064, 2074, 2066, - 2067, 2072, 2072, 2077, 2076, 2065, 2069, 2071, 2075, 2076, - 2081, 2075, 2073, 2087, 2079, 2070, 2082, 2083, 2074, 2079, - 2080, 2082, 2080, 2077, 2083, 2085, 2088, 2089, 2081, 2091, - 2090, 2087, 2090, 2095, 2085, 2088, 2092, 2097, 2094, 2089, - 2094, 2098, 2092, 2096, 2096, 2100, 2098, 2095, 2091, 2099, + 2034, 2035, 2037, 2032, 2038, 2041, 2041, 2037, 2043, 2044, + 2045, 2043, 2046, 2049, 2048, 2050, 2051, 2038, 2052, 2052, + 2036, 2050, 2053, 2054, 2053, 2044, 2045, 2049, 2046, 2048, + 2055, 2055, 2061, 2051, 2058, 2058, 2059, 2059, 2062, 2063, + 2064, 2054, 2065, 2066, 2062, 2063, 2067, 2068, 2068, 2065, + 2069, 2070, 2071, 2075, 2064, 2061, 2072, 2074, 2073, 2069, + 2076, 2077, 2079, 2080, 2071, 2066, 2067, 2077, 2072, 2074, + 2083, 2081, 2070, 2073, 2084, 2076, 2082, 2082, 2085, 2075, + 2077, 2085, 2079, 2081, 2086, 2087, 2080, 2089, 2083, 2086, + 2091, 2090, 2089, 2090, 2084, 2092, 2093, 2095, 2097, 2099, - 2100, 2099, 2101, 2102, 2103, 2104, 2106, 2101, 2107, 2105, - 2108, 2104, 2111, 2097, 2105, 2108, 2108, 2109, 2112, 2106, - 2107, 2102, 2113, 2113, 2103, 2109, 2114, 2114, 2115, 2116, - 2117, 2111, 2112, 2118, 2120, 2119, 2117, 2119, 2118, 2121, - 2122, 2122, 2123, 2115, 2124, 2124, 2128, 2121, 2126, 2116, - 2125, 2125, 2120, 2127, 2123, 2121, 2130, 2126, 2127, 2131, - 2132, 2131, 2134, 2136, 2128, 2130, 2133, 2135, 2130, 2143, - 2138, 2133, 2133, 2139, 2134, 2136, 2135, 2142, 2139, 2140, - 2146, 2132, 2138, 2144, 2140, 2145, 2145, 2147, 2148, 2143, - 2142, 2149, 2144, 2150, 2151, 2152, 2154, 2156, 2146, 2155, + 2092, 2098, 2100, 2093, 2100, 2087, 2095, 2101, 2091, 2102, + 2098, 2099, 2104, 2105, 2104, 2102, 2097, 2106, 2106, 2107, + 2108, 2109, 2112, 2109, 2110, 2108, 2101, 2105, 2111, 2110, + 2113, 2114, 2117, 2111, 2115, 2116, 2118, 2114, 2119, 2115, + 2112, 2118, 2118, 2121, 2117, 2107, 2119, 2122, 2116, 2125, + 2113, 2123, 2123, 2124, 2124, 2126, 2129, 2127, 2129, 2130, + 2128, 2122, 2121, 2127, 2125, 2128, 2131, 2132, 2132, 2133, + 2134, 2134, 2135, 2135, 2131, 2126, 2136, 2130, 2137, 2138, + 2140, 2133, 2131, 2137, 2141, 2136, 2141, 2142, 2143, 2140, + 2144, 2145, 2140, 2143, 2143, 2146, 2149, 2138, 2148, 2150, - 2152, 2157, 2165, 2159, 2148, 2147, 2157, 2150, 2154, 2151, - 2158, 2155, 2159, 2162, 2164, 2158, 2149, 2156, 2166, 2162, - 2164, 2167, 2168, 2170, 2170, 2165, 2169, 2171, 2172, 2172, - 2173, 2174, 2162, 2166, 2175, 2169, 2171, 2176, 2175, 2167, - 2177, 2179, 2176, 2180, 2181, 2187, 2182, 2168, 2173, 2180, - 2174, 2182, 2182, 2177, 2185, 2183, 2184, 2185, 2196, 2186, - 2179, 2183, 2184, 2190, 2190, 2187, 2181, 2186, 2191, 2191, - 2192, 2193, 2193, 2194, 2194, 2195, 2196, 2198, 2197, 2192, - 2199, 2199, 2198, 2191, 2197, 2200, 2200, 2195, 2201, 2202, - 2205, 2207, 2204, 2201, 2191, 2202, 2204, 2206, 2209, 2210, + 2145, 2149, 2144, 2152, 2150, 2153, 2154, 2146, 2142, 2156, + 2148, 2155, 2155, 2157, 2158, 2154, 2152, 2159, 2160, 2163, + 2161, 2162, 2167, 2165, 2163, 2153, 2166, 2156, 2170, 2179, + 2176, 2157, 2158, 2159, 2161, 2165, 2162, 2170, 2166, 2168, + 2169, 2173, 2167, 2160, 2168, 2169, 2175, 2173, 2177, 2178, + 2180, 2184, 2175, 2176, 2179, 2181, 2181, 2182, 2185, 2180, + 2173, 2183, 2183, 2177, 2186, 2187, 2182, 2178, 2186, 2184, + 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2185, 2197, 2191, + 2193, 2193, 2194, 2195, 2188, 2196, 2197, 2198, 2196, 2195, + 2203, 2190, 2201, 2201, 2202, 2202, 2192, 2204, 2204, 2203, - 2212, 2206, 2211, 2213, 2210, 2215, 2214, 2216, 2213, 2217, - 2205, 2207, 2218, 2221, 2217, 2212, 2219, 2219, 2220, 2223, - 2224, 2215, 2220, 2209, 2214, 2211, 2222, 2216, 2221, 2225, - 2226, 2222, 2227, 2228, 2218, 2229, 2232, 2227, 2224, 2230, - 2230, 2225, 2233, 2234, 2232, 2223, 2228, 2235, 2236, 2226, - 2237, 2239, 2238, 2229, 2240, 2245, 2243, 2249, 2241, 2247, - 2246, 2233, 2234, 2239, 2241, 2247, 2250, 2250, 2245, 2237, - 2235, 2243, 2236, 2238, 2246, 2240, 2248, 2249, 2248, 2251, - 2252, 2253, 2254, 2252, 2251, 2255, 2256, 2256, 2257, 2257, - 2258, 2260, 2258, 47, 2253, 2261, 2254, 2269, 2255, 2259, + 2205, 2205, 2206, 2207, 2208, 2216, 2209, 2198, 2218, 2202, + 2208, 2209, 2210, 2210, 2206, 2211, 2211, 2212, 2213, 2215, + 2202, 2207, 2212, 2215, 2213, 2216, 2217, 2220, 2218, 2221, + 2217, 2222, 2223, 2224, 2221, 2225, 2227, 2228, 2224, 2226, + 2229, 2231, 2228, 2230, 2230, 2231, 2232, 2223, 2234, 2235, + 2240, 2237, 2220, 2225, 2222, 2226, 2227, 2236, 2233, 2238, + 2239, 2232, 2229, 2233, 2238, 2241, 2241, 2235, 2240, 2236, + 2237, 2243, 2244, 2239, 2234, 2245, 2246, 2247, 2248, 2243, + 2249, 2251, 2250, 2252, 2253, 2257, 2255, 2260, 2261, 2260, + 2253, 2244, 2258, 2251, 2245, 2246, 2262, 2262, 2257, 2249, - 2259, 2262, 2262, 2263, 2264, 2264, 2260, 2270, 2261, 2265, - 2265, 2266, 2263, 2268, 2271, 2263, 2266, 2269, 2268, 2272, - 2272, 2273, 2273, 2274, 2275, 2275, 2271, 2270, 2276, 2277, - 2277, 2279, 2278, 2280, 2280, 2282, 2279, 2281, 2281, 2283, - 2284, 2285, 2274, 2286, 2290, 2288, 2276, 2278, 2283, 2282, - 2288, 2289, 2289, 2291, 2291, 2285, 2292, 2284, 2293, 2295, - 2295, 2297, 2286, 2290, 2293, 2294, 2296, 2296, 2294, 2298, - 2299, 2301, 2299, 2302, 2292, 2295, 2303, 2303, 2305, 2306, - 2297, 2307, 2310, 2308, 2298, 2311, 2301, 2308, 2309, 2309, - 2311, 2312, 2302, 2313, 2315, 2315, 2307, 2316, 2305, 2318, + 2247, 2255, 2248, 2250, 2252, 2259, 2258, 2263, 2261, 2265, + 2264, 2259, 2263, 2264, 2266, 2272, 2267, 2268, 2268, 2269, + 2269, 2270, 2265, 2270, 2271, 2271, 2273, 2281, 2266, 2267, + 2272, 2274, 2274, 2275, 2276, 2276, 2277, 2277, 2278, 2273, + 2282, 2280, 2275, 2278, 2283, 2275, 2280, 2281, 2284, 2284, + 2285, 2285, 2286, 2287, 2287, 2288, 2283, 2289, 2289, 2290, + 2282, 2291, 2292, 2292, 2293, 2293, 2291, 2294, 2295, 2296, + 2297, 2286, 2298, 2288, 2290, 2300, 2302, 2295, 2301, 2301, + 2300, 2294, 2303, 2303, 2297, 2304, 2296, 2305, 2309, 2306, + 2310, 2298, 2306, 2305, 2313, 2302, 2307, 2307, 2308, 2308, - 2317, 2310, 2306, 2319, 2320, 2321, 2312, 2317, 2313, 2322, - 2322, 2323, 2324, 2318, 2324, 2325, 2328, 2316, 2325, 2327, - 2323, 2319, 2320, 2331, 2329, 2327, 2332, 2330, 2328, 2329, - 2333, 2321, 2330, 2325, 2335, 2325, 2334, 2337, 2338, 2332, - 2339, 2334, 2337, 2338, 2340, 2342, 2341, 2343, 2331, 2345, - 2340, 2333, 2341, 2344, 2345, 2339, 2346, 2347, 2348, 2344, - 2335, 2346, 2343, 2350, 2349, 2351, 2342, 2349, 2352, 2353, - 2354, 2348, 2350, 2355, 2351, 2356, 2357, 2352, 2353, 2355, - 2357, 2356, 2347, 2359, 2354, 2361, 2362, 2363, 2363, 2366, - 2364, 2365, 2365, 2367, 2367, 2362, 2364, 2368, 2366, 2369, + 2311, 2314, 2311, 2304, 2317, 2310, 2318, 2309, 2319, 2313, + 2315, 2315, 2307, 2320, 2321, 2321, 2322, 2320, 2324, 2325, + 2314, 2323, 2328, 2319, 2317, 2329, 2323, 2327, 2327, 2318, + 2330, 2331, 2329, 2324, 2325, 2322, 2332, 2333, 2334, 2334, + 2339, 2335, 2328, 2336, 2330, 2336, 2339, 2340, 2337, 2331, + 2335, 2337, 2341, 2342, 2332, 2343, 2344, 2341, 2342, 2340, + 2345, 2347, 2346, 2333, 2352, 2349, 2337, 2346, 2337, 2344, + 2349, 2350, 2351, 2355, 2356, 2360, 2350, 2351, 2353, 2352, + 2343, 2345, 2354, 2361, 2353, 2357, 2372, 2347, 2354, 2356, + 2358, 2357, 2359, 2363, 2355, 2358, 2361, 2359, 2362, 2364, - 2365, 2371, 2368, 2359, 2372, 2361, 2373, 2373, 2374, 2375, - 2377, 2378, 2380, 2379, 2384, 2386, 2386, 2371, 2375, 2369, - 2372, 2369, 2377, 2374, 2380, 2383, 2382, 2378, 2379, 2382, - 2383, 2385, 2387, 2387, 2384, 2389, 2389, 2390, 2396, 2391, - 2390, 2392, 2393, 2385, 2391, 2394, 2398, 2392, 2393, 2395, - 2395, 2399, 2396, 2400, 2394, 2397, 2397, 2402, 2398, 2401, - 2401, 2403, 2404, 2402, 2406, 2399, 2407, 2404, 2406, 2407, - 2408, 2408, 2400, 2409, 2410, 2403, 2411, 2412, 2409, 2415, - 2413, 2414, 2414, 2410, 2413, 2411, 2417, 2418, 2419, 2420, - 2421, 2417, 2415, 2422, 2421, 2423, 2424, 2412, 2425, 2427, + 2360, 2362, 2363, 2365, 2366, 2367, 2372, 2370, 2364, 2368, + 2369, 2370, 2365, 2366, 2374, 2368, 2369, 2375, 2377, 2367, + 2376, 2376, 2378, 2378, 2377, 2381, 2375, 2379, 2380, 2380, + 2381, 2378, 2382, 2384, 2374, 2385, 2379, 2386, 2386, 2388, + 2387, 2390, 2391, 2395, 2392, 2393, 2395, 2397, 2388, 2384, + 2398, 2385, 2382, 2390, 2382, 2387, 2396, 2393, 2391, 2392, + 0, 2396, 2398, 2399, 2399, 2400, 2400, 2397, 2402, 2402, + 2403, 2404, 2405, 2403, 2406, 2407, 2404, 2409, 2405, 2412, + 2406, 2408, 2408, 2411, 2407, 2410, 2410, 2413, 2414, 2414, + 2415, 2409, 2417, 2412, 2416, 2411, 2415, 2417, 2419, 2425, - 2423, 2428, 2424, 2420, 2425, 2426, 2426, 2418, 2419, 2429, - 2430, 2431, 2434, 2422, 2435, 2430, 2436, 2427, 2432, 2432, - 2428, 2436, 2441, 2437, 2434, 2438, 2443, 2446, 2429, 2437, - 2435, 2441, 2431, 2438, 2439, 2452, 2439, 2444, 2444, 2445, - 2443, 2450, 2445, 2447, 2447, 2450, 2451, 2452, 2453, 2453, - 2454, 2459, 2451, 2446, 2457, 2457, 2461, 2462, 2465, 2454, - 2466, 2467, 2468, 2465, 2470, 2470, 2469, 2468, 2476, 2459, - 2461, 2469, 2474, 2462, 2472, 2472, 2475, 2475, 2474, 2477, - 2478, 2480, 2467, 2482, 2476, 2478, 2466, 2481, 2484, 2484, - 2481, 2483, 2487, 2486, 2488, 2482, 2489, 2493, 2487, 2494, + 2420, 2423, 2419, 2420, 2421, 2421, 2413, 2422, 2416, 2424, + 2423, 2426, 2422, 2427, 2427, 2426, 2428, 2430, 2424, 2425, + 2431, 2432, 2430, 2433, 2434, 2436, 2435, 2437, 2438, 2428, + 2435, 2439, 2437, 2441, 2438, 2440, 2440, 2439, 2434, 2442, + 2431, 2432, 2443, 2433, 2444, 2436, 2445, 2446, 2446, 2444, + 2448, 2441, 2449, 2453, 2450, 2453, 2452, 2451, 2442, 2450, + 2455, 2443, 2448, 2451, 2452, 2457, 2460, 2445, 2449, 2455, + 2458, 2458, 2459, 2461, 2461, 2459, 2464, 2465, 2466, 2457, + 2464, 2467, 2467, 2465, 2468, 2471, 2471, 2473, 2475, 2479, + 2466, 2476, 2460, 2468, 2479, 2480, 2481, 2490, 2482, 2483, - 2480, 2477, 2486, 2483, 2491, 2491, 2492, 2496, 2496, 2492, - 2498, 2489, 2488, 2497, 2497, 2498, 2493, 2494, 2499, 2500, - 2501, 2502, 2505, 2502, 2503, 2501, 2504, 2506, 2500, 2507, - 2508, 2546, 2506, 2546, 2505, 18, 2499, 2509, 2503, 2515, - 2504, 2514, 2509, 2510, 2510, 2511, 2511, 2512, 2512, 2507, - 2508, 2513, 2513, 2514, 2516, 2517, 2517, 2515, 2519, 2516, - 2518, 2518, 2520, 2521, 2522, 2523, 2526, 2524, 2525, 2525, - 2519, 2527, 2527, 2528, 2528, 2521, 2529, 2530, 2532, 2533, - 2535, 2531, 2520, 2524, 2522, 2526, 2523, 2529, 2531, 2530, - 2532, 2534, 2536, 2537, 2537, 2538, 2534, 2539, 2539, 2533, + 2484, 2484, 2475, 2482, 2483, 2473, 2488, 2476, 2486, 2486, + 2489, 2489, 2488, 2490, 2491, 2492, 2494, 2481, 2496, 2495, + 2492, 2480, 2495, 2498, 2498, 2497, 2501, 2502, 2503, 2500, + 2496, 2507, 2501, 2505, 2505, 2494, 2491, 2497, 2500, 2506, + 2508, 2513, 2506, 2503, 2514, 2502, 2510, 2510, 2511, 2511, + 2507, 2512, 2515, 2514, 2517, 2518, 2512, 2515, 2508, 2513, + 2516, 2519, 2516, 2521, 2522, 2520, 2523, 2529, 2517, 2518, + 2520, 2523, 0, 2519, 2524, 2524, 2525, 2525, 2526, 2526, + 2527, 2527, 2528, 2521, 2522, 2529, 2530, 2531, 2531, 2532, + 2532, 2530, 2533, 2533, 2528, 2534, 2535, 2536, 2537, 2538, - 2535, 2540, 2541, 2542, 2538, 2543, 2544, 2547, 2545, 2548, - 2548, 2550, 2536, 2551, 2549, 2553, 2542, 2554, 2555, 2547, - 2544, 2556, 2541, 2549, 2556, 2576, 2550, 2540, 2551, 2543, - 2545, 2557, 2558, 2553, 2576, 2559, 2567, 2558, 2569, 2554, - 2559, 2555, 2560, 2560, 2568, 2557, 2561, 2561, 2562, 2562, - 2564, 2564, 2566, 2566, 2567, 2568, 2570, 2569, 2572, 2573, - 2574, 2575, 2578, 2577, 2578, 2579, 2580, 2586, 2581, 2582, - 2582, 2570, 2584, 2584, 2585, 2588, 2588, 2573, 2572, 2591, - 2591, 2575, 2574, 2577, 2580, 2579, 2581, 2587, 2585, 2586, - 2590, 2592, 2593, 2594, 2603, 2596, 2587, 2595, 2597, 2590, + 2541, 2539, 2540, 2540, 2542, 2542, 0, 2534, 2546, 2536, + 2543, 2543, 2544, 2545, 2547, 2546, 2535, 2539, 2537, 2541, + 2538, 2548, 2549, 2544, 2550, 2545, 2547, 2549, 2551, 2552, + 2552, 2553, 2554, 2554, 2555, 2556, 2557, 2558, 2559, 2562, + 2553, 2548, 2560, 2561, 2550, 2561, 2563, 2563, 2551, 2557, + 2564, 2562, 2559, 2565, 2566, 2556, 2568, 2569, 2570, 2564, + 2555, 2558, 2571, 2572, 2560, 2571, 2573, 2574, 2565, 2566, + 0, 2573, 2574, 2582, 2568, 2575, 2575, 2572, 2584, 2569, + 2585, 2570, 2576, 2576, 2577, 2577, 2579, 2579, 2581, 2581, + 2583, 2582, 2587, 2588, 2589, 2585, 2591, 2584, 2590, 2592, - 2594, 2598, 2599, 17, 2600, 2601, 2601, 2602, 2602, 2592, - 2593, 2600, 2595, 2596, 2603, 2604, 2597, 2598, 2605, 2607, - 2607, 2599, 2608, 2608, 2605, 2609, 2610, 2611, 2612, 2613, - 2614, 2609, 2615, 2604, 2616, 2614, 2617, 2618, 2620, 2618, - 2620, 2617, 2611, 2613, 2610, 2619, 2619, 2612, 2621, 2621, - 2623, 2625, 2615, 2626, 2616, 2627, 2628, 2629, 2630, 2631, - 2625, 2632, 2629, 2630, 2635, 2636, 2638, 2627, 2636, 2623, - 2637, 2637, 2626, 2639, 2640, 2640, 2628, 2641, 2642, 2631, - 2632, 2638, 2643, 2645, 2635, 2646, 2643, 2648, 2641, 2646, - 2650, 2639, 2651, 2642, 2647, 2647, 2652, 2655, 2645, 2656, + 2593, 2583, 2593, 2594, 2595, 2591, 2596, 2597, 2597, 2599, + 2599, 2588, 2587, 2600, 2601, 2607, 2589, 2602, 2590, 2592, + 2603, 2603, 2595, 2594, 2596, 2605, 2602, 2600, 2606, 2606, + 2608, 2609, 2610, 2607, 2605, 2611, 2601, 2612, 2613, 2610, + 2615, 2614, 2617, 2617, 2616, 2618, 2618, 2619, 2608, 2609, + 2611, 2616, 2620, 2627, 2621, 2612, 2613, 2614, 2626, 2615, + 2621, 2623, 2623, 2624, 2624, 2625, 2628, 2619, 2627, 2629, + 2620, 2625, 2630, 2631, 2632, 2633, 2626, 2630, 2639, 2634, + 2633, 2634, 2636, 2629, 2636, 2628, 2635, 2635, 2637, 2637, + 2641, 2642, 2643, 2631, 2632, 2644, 2645, 2639, 2646, 2641, - 2648, 2653, 2653, 2657, 2659, 2650, 2663, 2657, 2656, 2655, - 2658, 2658, 2651, 2660, 2660, 2661, 2652, 2662, 2664, 2665, - 2661, 2672, 2663, 2659, 2666, 2666, 2662, 2671, 2671, 2674, - 2664, 2673, 2673, 2675, 2680, 2676, 2677, 2681, 2678, 2665, - 2679, 2679, 2674, 2672, 2676, 2677, 2675, 2678, 2683, 2683, - 2686, 2687, 2681, 2688, 2680, 2686, 2687, 2689, 2690, 2691, - 2692, 2695, 2689, 2693, 2699, 2697, 2690, 2688, 2698, 2692, - 2697, 2693, 2702, 2698, 2700, 2700, 2695, 2702, 2691, 2699, - 2701, 2701, 2703, 2704, 2704, 2705, 2706, 2707, 2708, 2709, - 0, 2706, 2705, 2710, 2712, 2709, 2711, 2711, 2710, 2713, + 2647, 2645, 2648, 2646, 2643, 2651, 2652, 2653, 2653, 2652, + 2642, 2654, 2655, 2656, 2656, 2644, 2657, 2658, 2659, 2661, + 2647, 2648, 2659, 2666, 2662, 2651, 2654, 2657, 2662, 2664, + 2655, 2667, 2658, 2668, 2661, 2663, 2663, 2671, 2666, 2669, + 2669, 2672, 2664, 2673, 2674, 2674, 2675, 2673, 2679, 2671, + 2672, 2667, 2677, 2668, 2676, 2676, 2680, 2677, 2678, 2681, + 2682, 2682, 2687, 2687, 2679, 2675, 2688, 2678, 2680, 2689, + 2689, 2690, 2691, 2692, 2693, 2696, 2696, 2697, 2694, 2681, + 2695, 2698, 0, 2693, 2690, 2691, 2692, 2694, 2688, 2695, + 2700, 2700, 2705, 2703, 2704, 2706, 2698, 2697, 2703, 2704, - 2718, 2703, 2714, 2714, 2713, 2707, 2708, 2715, 2715, 2712, - 2719, 2719, 2720, 2718, 2721, 2720, 2722, 2723, 2724, 2721, - 2721, 2722, 2723, 2725, 2726, 2727, 2728, 2729, 2726, 2725, - 2727, 2730, 2724, 2731, 2732, 2728, 2734, 2733, 2735, 2730, - 2732, 2734, 2729, 2733, 2737, 2739, 2741, 2738, 2739, 2745, - 2735, 2737, 2738, 2746, 2731, 2743, 2744, 2759, 2741, 2747, - 2743, 2744, 2748, 2749, 2749, 2750, 2746, 2745, 2747, 2754, - 2751, 2748, 2755, 2756, 2750, 2751, 2759, 2760, 2755, 2756, - 2761, 2762, 2762, 2763, 2764, 2765, 2766, 2754, 2767, 2767, - 2763, 2768, 2770, 2772, 2765, 2775, 2773, 2760, 2778, 2761, + 2706, 2707, 2708, 2709, 2712, 2710, 2705, 2716, 2720, 2707, + 2714, 2715, 2709, 2710, 2724, 2714, 2715, 2717, 2717, 2712, + 2719, 2708, 2716, 2718, 2718, 2719, 2722, 2720, 2721, 2721, + 2723, 2725, 2724, 2722, 2726, 2723, 2727, 2728, 2728, 2729, + 2726, 2727, 2730, 2731, 2731, 2732, 2732, 2730, 2735, 2725, + 2736, 2736, 2737, 2738, 2729, 2737, 2741, 2739, 2738, 2738, + 2740, 2735, 2739, 2742, 2743, 2740, 2744, 2745, 2743, 2742, + 2741, 2744, 2746, 2747, 2748, 2751, 2745, 2749, 2750, 2752, + 2751, 2747, 2754, 2749, 2750, 2755, 2758, 2746, 2763, 2754, + 2755, 2752, 2760, 2756, 2761, 2748, 2756, 2760, 2758, 2761, - 2773, 2766, 2776, 2764, 2774, 2774, 2777, 2770, 2776, 2779, - 2768, 2781, 2777, 2772, 2784, 2779, 2778, 2780, 2780, 2781, - 2775, 2782, 2785, 2784, 2787, 2788, 2782, 2789, 2788, 2790, - 2787, 2789, 2791, 2793, 2793, 2785, 2794, 2795, 2795, 2796, - 2796, 2798, 2798, 2790, 2799, 2800, 2804, 2791, 2799, 2806, - 2800, 2802, 2802, 2805, 2794, 2808, 2810, 2807, 2805, 2811, - 2811, 2806, 2807, 2807, 2813, 2813, 2804, 2808, 2814, 2814, - 2815, 2816, 2817, 2815, 2819, 2819, 2810, 2820, 2822, 2823, - 2823, 2824, 2824, 2828, 2816, 2817, 2825, 2825, 2826, 2827, - 2827, 2829, 2830, 2831, 2840, 2820, 2828, 2837, 2822, 2831, + 2762, 2764, 2765, 2766, 2768, 2762, 2763, 2767, 2767, 2772, + 2769, 2765, 2766, 2768, 2764, 2769, 2773, 2774, 2777, 2778, + 2783, 2779, 2773, 2774, 2780, 2780, 2781, 2772, 2782, 2783, + 2784, 2785, 2785, 2781, 2786, 2788, 2790, 2777, 2791, 2778, + 2779, 2793, 2791, 2792, 2792, 2784, 2794, 2782, 2795, 2796, + 2788, 2797, 2794, 2786, 2795, 2799, 2790, 2797, 2798, 2798, + 2800, 2802, 2803, 2799, 2808, 2800, 2793, 2796, 2805, 2806, + 2802, 2809, 2806, 2807, 2805, 2803, 2812, 2807, 2808, 2811, + 2811, 2813, 2813, 2814, 2814, 2817, 2809, 2816, 2816, 2817, + 2818, 2820, 2820, 2822, 2812, 2818, 2823, 2824, 2825, 2826, - 2832, 2832, 2837, 2826, 2833, 2836, 2830, 2839, 2833, 2829, - 2841, 2836, 2839, 2839, 2842, 2843, 2844, 2840, 2845, 2846, - 2852, 2843, 2844, 2846, 2847, 2847, 2850, 2855, 2852, 2853, - 2841, 2850, 2853, 2856, 2842, 2859, 2856, 2857, 2857, 2858, - 2859, 2860, 2861, 2845, 2862, 2863, 2863, 2864, 2867, 2869, - 2866, 2871, 2855, 2911, 2869, 2869, 2858, 2858, 2862, 2860, - 2865, 2864, 2861, 2865, 2866, 2868, 2880, 2867, 2911, 2870, - 2871, 2865, 2877, 2868, 2870, 2870, 2872, 2872, 2873, 2873, - 2874, 2874, 2875, 2875, 2876, 2876, 2878, 2879, 2877, 2881, - 2882, 2878, 2880, 2883, 2884, 2882, 2885, 2886, 2887, 2884, + 2828, 2823, 2841, 2825, 2825, 2829, 2829, 2831, 2831, 2824, + 2835, 2826, 2836, 2822, 2832, 2832, 2833, 2833, 2834, 2839, + 2828, 2834, 2841, 2835, 2845, 2836, 2838, 2838, 2842, 2842, + 2843, 2843, 2844, 2844, 2846, 2846, 2847, 2839, 2848, 2845, + 2849, 2850, 2851, 2851, 2852, 2855, 2859, 2850, 2852, 2847, + 2856, 2855, 2858, 2860, 2849, 2856, 2848, 2858, 2858, 2861, + 2862, 2863, 2864, 2874, 2865, 0, 2862, 2863, 2865, 2859, + 2866, 2866, 2869, 2860, 2871, 2872, 2877, 2869, 2872, 2861, + 2875, 2878, 2871, 2875, 2876, 2876, 2878, 2864, 2874, 2879, + 2880, 2881, 2883, 2877, 2877, 2882, 2882, 2884, 2885, 2886, - 2889, 2889, 2892, 2881, 2895, 2885, 0, 2879, 2890, 2890, - 2891, 2895, 2883, 2891, 2894, 2894, 2905, 2886, 2887, 2897, - 2892, 2896, 2896, 2900, 2897, 2899, 2899, 2901, 2902, 2903, - 2906, 2906, 2900, 2908, 2905, 2907, 2901, 2902, 2903, 2907, - 2909, 2910, 2908, 2912, 2913, 2914, 2915, 2924, 2912, 2912, - 2915, 2919, 2910, 2923, 2914, 2925, 2919, 2913, 2929, 2909, - 2920, 2920, 2922, 2922, 2927, 2927, 2928, 2923, 2932, 2933, - 2929, 2934, 2924, 2925, 2933, 2928, 2936, 2937, 2939, 2941, - 2934, 2943, 2944, 2937, 2945, 2945, 2943, 2944, 2946, 2948, - 2939, 2949, 2950, 2932, 2948, 2957, 2936, 2946, 2951, 2951, + 2884, 2887, 2890, 2891, 2891, 2881, 2883, 2879, 2884, 2887, + 2880, 2888, 2885, 2900, 2889, 2899, 2888, 2888, 2886, 2889, + 2889, 2890, 2892, 2892, 2893, 2893, 2894, 2894, 2895, 2895, + 2896, 2896, 2897, 2898, 2903, 2899, 2901, 2902, 2898, 2900, + 2904, 2906, 2902, 2905, 2907, 2904, 2909, 2909, 2897, 2912, + 2901, 2920, 2905, 2903, 2910, 2910, 2911, 2914, 2914, 2911, + 2920, 2906, 2915, 2917, 2907, 2916, 2916, 2912, 2917, 2915, + 2919, 2919, 2921, 2922, 2923, 2925, 2926, 2926, 2928, 2929, + 2927, 2921, 2922, 2923, 2927, 2930, 2931, 2928, 2934, 2932, + 2933, 2940, 2940, 2925, 2932, 2932, 2930, 2934, 2929, 2943, - 2941, 2958, 2951, 0, 2949, 2956, 2950, 2953, 2953, 2954, - 2954, 2955, 2955, 2959, 2956, 2957, 2961, 2965, 2959, 2962, - 2958, 2963, 2961, 2967, 2962, 2966, 2963, 2964, 2964, 2968, - 2969, 2971, 2970, 2978, 2968, 2965, 0, 2966, 2970, 2972, - 2972, 2974, 2975, 2979, 2967, 2974, 2976, 2975, 2969, 2977, - 2977, 2976, 2978, 2980, 2982, 2989, 2971, 2986, 2979, 2984, - 2984, 2988, 2987, 2990, 2989, 2988, 2991, 2993, 2980, 2992, - 2986, 2994, 2993, 2996, 2982, 2987, 2997, 2992, 2998, 2990, - 2995, 2995, 2996, 2999, 2999, 2991, 3000, 3003, 3003, 3004, - 3004, 2994, 3006, 3010, 2997, 3008, 3008, 3012, 3011, 3013, + 2935, 2931, 2939, 2933, 2935, 2942, 2942, 2939, 2944, 2945, + 2947, 2947, 2948, 2943, 2949, 2953, 2955, 2954, 2957, 2960, + 2962, 2948, 2954, 2958, 2995, 2955, 2949, 2945, 2995, 2958, + 2964, 2960, 2965, 2944, 2969, 2964, 2967, 2965, 2957, 2969, + 2953, 2962, 2966, 2966, 2970, 2967, 2971, 2972, 2972, 2974, + 2974, 2972, 2975, 2975, 2976, 2976, 2977, 2970, 2978, 2980, + 2971, 2979, 2982, 2986, 2980, 2977, 2983, 2984, 2982, 2985, + 2985, 2983, 2984, 2987, 2988, 2990, 2992, 2989, 2978, 2996, + 2979, 2986, 2989, 2991, 2996, 2987, 2993, 2993, 2999, 2991, + 3000, 2997, 3003, 2990, 3001, 2988, 2997, 2998, 2998, 3005, - 3017, 3014, 3012, 3018, 2998, 3000, 3014, 3016, 3016, 3010, - 3019, 3020, 3018, 3006, 3011, 3013, 3019, 3021, 3023, 3023, - 3017, 3024, 3025, 3026, 3026, 3029, 3030, 3033, 3031, 3034, - 3034, 3036, 3030, 3031, 3020, 3024, 3021, 3035, 3035, 3037, - 3039, 3025, 3038, 3038, 3040, 3029, 3036, 3041, 3042, 3033, - 3043, 3039, 3044, 3040, 3042, 3045, 3046, 3046, 3047, 3037, - 3048, 3055, 3038, 3048, 3044, 3049, 3054, 3041, 3049, 3043, - 3050, 3050, 3060, 3047, 3056, 3045, 3057, 3057, 3054, 3058, - 3056, 3055, 3058, 3059, 3063, 3063, 3062, 3064, 3065, 3059, - 3060, 3062, 3064, 3066, 3067, 3068, 3068, 3070, 3071, 3066, + 3005, 2992, 3007, 3008, 3009, 3000, 3010, 2999, 3012, 3001, + 3010, 3011, 3003, 3013, 3014, 3007, 3008, 3009, 3015, 3016, + 3011, 3018, 3014, 3015, 3012, 3017, 3017, 3019, 3020, 3022, + 3018, 3028, 3013, 3021, 3021, 3025, 3025, 3026, 3026, 3016, + 3030, 3030, 3032, 3033, 3034, 3019, 3035, 3039, 3022, 3034, + 3036, 3040, 3028, 3042, 3020, 3036, 3038, 3038, 3032, 3033, + 3040, 3043, 3035, 3041, 3045, 3045, 3047, 3039, 3046, 3041, + 3048, 3048, 3051, 3052, 3055, 3058, 3042, 3059, 3053, 3052, + 3043, 3063, 3046, 3053, 3061, 3047, 3056, 3056, 3057, 3057, + 3058, 3062, 3051, 3060, 3060, 3061, 3055, 3059, 3064, 3065, - 3072, 3073, 3074, 3074, 3075, 3076, 3077, 3065, 3081, 3070, - 3082, 3067, 3067, 3081, 3073, 3077, 3071, 3079, 3079, 3080, - 3080, 3076, 3083, 3075, 3082, 3072, 3088, 3083, 3084, 3084, - 3085, 3085, 3086, 3086, 3087, 3087, 3089, 3090, 3096, 3088, - 3091, 3093, 3093, 3090, 3098, 3091, 3099, 3101, 3100, 3102, - 3102, 3104, 3104, 3105, 3106, 3108, 3107, 3096, 3110, 3110, - 3111, 3111, 3089, 3109, 3114, 3113, 3098, 3100, 3099, 3101, - 3107, 3113, 3109, 3106, 3115, 3108, 3116, 3119, 3126, 3105, - 3124, 3116, 3120, 3120, 3114, 3122, 3122, 3123, 3127, 3125, - 3126, 3133, 3123, 3115, 3124, 3125, 3127, 3129, 3119, 3128, + 3062, 3063, 3066, 3067, 3064, 3068, 3068, 3069, 3070, 3071, + 3077, 3070, 3071, 3060, 3066, 3072, 3072, 3076, 3065, 3078, + 3079, 3079, 3069, 3067, 3080, 3078, 3081, 3080, 3082, 3076, + 3077, 3084, 3081, 3085, 3085, 3086, 3084, 3087, 3088, 3092, + 3086, 3089, 3090, 3090, 3088, 3093, 3082, 3094, 3095, 3096, + 3096, 3092, 3097, 3098, 3113, 3099, 3087, 3104, 3089, 3089, + 3113, 3095, 3104, 3093, 3099, 3101, 3101, 3102, 3102, 3098, + 3105, 3097, 3094, 3103, 3103, 3106, 3107, 3107, 3108, 3108, + 3106, 3109, 3109, 3111, 3105, 3110, 3110, 3112, 3114, 3116, + 3116, 3119, 3121, 3114, 3122, 3128, 3111, 3124, 3123, 3125, - 3128, 3131, 3129, 3132, 3134, 3131, 3136, 3135, 3132, 3137, - 3140, 3133, 3135, 3139, 3141, 3137, 3142, 3144, 3136, 3151, - 0, 3139, 3145, 3146, 3134, 3147, 3148, 3150, 3153, 3140, - 3155, 3148, 3150, 3153, 3141, 3144, 3142, 3152, 3145, 3151, - 3146, 3146, 3156, 3152, 3157, 3156, 3147, 3160, 3160, 3162, - 3155, 3161, 3161, 3162, 3167, 3167, 3168, 3157, 3169, 3170, - 3170, 3168, 3172, 3172, 3173, 3173, 3177, 3173, 3174, 3174, - 3177, 3174, 3175, 3175, 3179, 3176, 3176, 3169, 3176, 3179, - 3180, 3181, 3181, 3182, 3183, 3186, 3187, 3188, 3190, 3180, - 3189, 3189, 3188, 3193, 3196, 3194, 3195, 3197, 3183, 3199, + 3125, 3127, 3127, 3129, 3130, 3131, 3132, 3133, 3133, 3137, + 3119, 3134, 3134, 3112, 3121, 3132, 3122, 3123, 3130, 3124, + 3136, 3128, 3129, 3138, 3142, 3131, 3136, 3139, 0, 3137, + 3143, 3143, 3139, 3145, 3145, 3146, 3147, 3148, 3150, 3149, + 3146, 3156, 3138, 3148, 3152, 3142, 3150, 3151, 3151, 3152, + 3147, 3149, 3154, 3155, 3157, 3158, 3154, 3159, 3155, 3160, + 3158, 3156, 3162, 3163, 3164, 3160, 3165, 3167, 3174, 3159, + 3162, 3168, 3169, 3170, 3157, 3171, 3173, 3175, 3178, 0, + 3171, 3173, 3163, 3175, 3164, 3167, 3165, 3168, 3174, 3169, + 3169, 3176, 3179, 3180, 3170, 3179, 3176, 3193, 3178, 3184, - 3195, 3182, 3194, 3196, 3200, 3186, 3187, 3202, 3190, 3200, - 3201, 3201, 3197, 3203, 3203, 3206, 3202, 3199, 3193, 3204, - 3204, 3205, 3205, 3207, 3208, 3211, 3209, 3212, 3207, 3210, - 3206, 3209, 3209, 3208, 3213, 3210, 3208, 3216, 3214, 3215, - 3217, 3217, 3212, 3214, 3215, 3218, 3219, 3220, 3220, 3222, - 3211, 3218, 3219, 3221, 3221, 3213, 3216, 3223, 3226, 3226, - 3228, 3228, 3223, 3229, 3222, 3232, 3232, 3233, 3233, 3234, - 3234, 3241, 3229, 3235, 3235, 3237, 3237, 3238, 3238, 3239, - 3239, 3240, 3240, 3243, 3244, 3244, 3245, 3246, 3247, 3249, - 3249, 3250, 3243, 3251, 3251, 3245, 3252, 3241, 3264, 3246, + 3184, 3185, 3185, 3186, 3191, 3191, 3180, 3186, 3192, 3194, + 3194, 3196, 3196, 3192, 3197, 3197, 3193, 3197, 3198, 3198, + 3204, 3198, 3199, 3199, 3200, 3200, 3201, 3200, 3203, 3204, + 3201, 3205, 3205, 3203, 3206, 3207, 3210, 3211, 3212, 3213, + 3213, 3214, 3217, 3212, 3218, 3220, 3219, 3221, 3223, 3207, + 3219, 3218, 3206, 3224, 3220, 3226, 3210, 3211, 3224, 3225, + 3225, 3214, 3221, 3230, 3226, 3235, 3223, 3217, 3227, 3227, + 3228, 3228, 3229, 3229, 3231, 3232, 3233, 3234, 3230, 3231, + 3236, 3233, 3233, 3234, 3232, 3237, 3238, 3232, 3239, 3240, + 3235, 3238, 3242, 3239, 3243, 3236, 3241, 3241, 3242, 3246, - 3253, 3258, 3254, 3255, 3255, 3256, 3256, 3262, 3247, 3263, - 3250, 3252, 3263, 3253, 3254, 3266, 3258, 3259, 3259, 3265, - 3265, 3269, 3270, 3268, 3264, 3262, 3268, 3269, 3272, 3271, - 3273, 3276, 3277, 3266, 3271, 3274, 3270, 3276, 3280, 3281, - 3284, 3277, 3280, 3294, 3293, 3296, 3294, 3272, 3273, 3293, - 3302, 3274, 3297, 3297, 3281, 3298, 3298, 3305, 3296, 3300, - 3300, 3303, 3307, 3304, 3309, 3316, 3284, 3304, 3310, 3311, - 3303, 3313, 3315, 3302, 3311, 3317, 3307, 3305, 3312, 3310, - 3312, 3314, 3314, 3318, 3316, 3315, 3313, 3309, 3319, 3320, - 3322, 3321, 3323, 3317, 3324, 3332, 3325, 3323, 3327, 3318, + 3243, 3244, 3244, 3245, 3245, 3247, 3237, 0, 3240, 3253, + 3247, 3250, 3250, 3265, 3246, 3252, 3252, 0, 3253, 3256, + 3256, 3257, 3257, 3258, 3258, 3259, 3259, 3261, 3261, 3262, + 3262, 3263, 3263, 3264, 3264, 3267, 3268, 3268, 3269, 3265, + 3270, 3271, 3273, 3273, 3267, 3274, 3277, 3269, 3275, 3275, + 3276, 3278, 3270, 3279, 3279, 3280, 3280, 3282, 3286, 3277, + 3288, 3271, 3290, 3278, 3274, 3276, 3283, 3283, 3287, 3289, + 3289, 3287, 3282, 3293, 3292, 3294, 3286, 3292, 3295, 3293, + 3290, 3296, 3298, 3295, 3297, 3300, 3288, 3301, 3304, 3294, + 3305, 3300, 3304, 3308, 3317, 3320, 3301, 3326, 3298, 3317, - 3321, 3325, 3322, 3328, 3320, 3326, 3326, 3333, 3328, 3332, - 3334, 3334, 3335, 3319, 3340, 3324, 3336, 3336, 3327, 3337, - 3337, 3335, 3338, 3338, 3339, 3339, 3341, 3333, 3342, 3343, - 3344, 3342, 3345, 3340, 3343, 3344, 3346, 3347, 3348, 3350, - 3352, 3349, 3357, 3347, 3350, 3362, 3341, 3351, 3351, 3353, - 3353, 3346, 3348, 3349, 3355, 3355, 3356, 3345, 3358, 3358, - 3352, 3357, 3360, 3362, 3365, 3365, 3366, 3366, 3367, 3368, - 3371, 3356, 3369, 3370, 3372, 3373, 3367, 3360, 3369, 3370, - 3374, 3375, 3375, 3380, 3371, 3374, 3381, 3372, 3368, 3377, - 3377, 3383, 3384, 3386, 3373, 3387, 3384, 3388, 3389, 3390, + 3296, 3318, 3297, 3329, 3318, 3305, 3321, 3321, 3320, 3322, + 3322, 3324, 3324, 3327, 3328, 3331, 3333, 3334, 3328, 3308, + 3326, 3335, 3327, 3329, 3339, 3336, 3335, 3336, 3334, 3331, + 3337, 3338, 3338, 3340, 3342, 3341, 3343, 3339, 3345, 3333, + 3344, 3347, 3346, 3348, 3349, 3337, 3347, 3345, 3351, 3349, + 3342, 3356, 3340, 3341, 3346, 3344, 3350, 3350, 3352, 3357, + 3359, 3343, 3364, 3352, 3348, 3356, 3358, 3358, 3351, 3359, + 3360, 3360, 3361, 3361, 3362, 3362, 3363, 3363, 3365, 3357, + 3366, 3364, 3367, 3366, 3368, 3369, 3370, 3367, 3371, 3368, + 3372, 3373, 3374, 3376, 3371, 3375, 3375, 3374, 3365, 3377, - 3387, 3391, 3392, 3393, 3380, 3383, 3381, 3392, 3393, 3394, - 3394, 3389, 3390, 3386, 3397, 3398, 3388, 3399, 3400, 3400, - 3391, 3401, 3402, 3403, 3403, 3404, 3401, 3405, 3402, 3407, - 3404, 3408, 3405, 3398, 3397, 3406, 3399, 3408, 3410, 3410, - 3406, 3411, 3412, 3412, 3415, 3414, 3411, 3416, 3407, 3414, - 3417, 3418, 3419, 3420, 3416, 3421, 3423, 3423, 3419, 3425, - 3425, 3427, 3426, 3415, 3428, 3429, 3427, 3430, 3421, 3417, - 3418, 3426, 3420, 3432, 3426, 3431, 3431, 3433, 3432, 3435, - 3430, 3436, 3436, 3428, 3429, 3437, 3438, 3438, 3439, 3439, - 3433, 3440, 3441, 3442, 3443, 3443, 3440, 3444, 3445, 3441, + 3377, 3370, 3380, 3373, 3372, 3379, 3379, 3381, 3382, 3382, + 3369, 3386, 3384, 3376, 3389, 3389, 3391, 3380, 3390, 3390, + 3392, 3395, 3393, 3396, 3391, 3394, 3381, 3384, 3393, 3386, + 3397, 3394, 3398, 3399, 3399, 3395, 3396, 3398, 3404, 3392, + 3401, 3401, 3405, 3407, 3408, 3410, 3411, 3412, 3408, 3397, + 3413, 3411, 3415, 3416, 3414, 3417, 3421, 3407, 3416, 3404, + 3417, 3422, 3405, 3413, 3423, 3410, 3412, 3414, 3418, 3418, + 3425, 3415, 3424, 3424, 3426, 3425, 3421, 3427, 3427, 3422, + 3426, 3428, 3429, 3423, 3430, 3431, 3428, 3429, 3432, 3430, + 3434, 3434, 3435, 3439, 3432, 3436, 3436, 3435, 3438, 3440, - 3445, 3447, 3444, 3448, 3437, 3435, 3446, 3446, 3447, 3449, - 3448, 3450, 3442, 3451, 3453, 3453, 3450, 3454, 3456, 3457, - 3458, 3459, 3463, 3456, 3457, 3460, 3460, 3464, 3449, 3462, - 3462, 0, 3451, 3465, 3465, 3467, 3454, 3466, 3466, 3458, - 3459, 3463, 3467, 3469, 3469, 3471, 3464, 3470, 3470, 3473, - 3476, 3477, 3471, 3478, 3473, 3476, 3479, 3479, 3480, 3480, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3477, 0, 3478, 3484, 3484, 3484, 3484, 3484, 3484, 3484, - 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486, 3486, - 3486, 3486, 3486, 3486, 3487, 3487, 3487, 3487, 3487, 3487, + 3441, 3442, 3438, 3443, 3431, 3444, 3440, 3452, 3445, 3443, + 3447, 3447, 3439, 3449, 3449, 3453, 3450, 3451, 3454, 3441, + 3442, 3445, 3451, 3457, 3444, 3450, 3452, 3456, 3450, 3455, + 3455, 3454, 3456, 3459, 3453, 3461, 3457, 3460, 3460, 3462, + 3462, 3463, 3463, 3464, 3465, 3466, 3467, 3467, 3464, 0, + 3468, 3465, 3470, 3470, 3461, 3468, 3469, 3473, 3469, 3459, + 3471, 3472, 3475, 3478, 3466, 3474, 3482, 3471, 3472, 3480, + 3474, 3477, 3477, 3481, 3480, 3483, 3473, 3487, 3481, 3484, + 3484, 3475, 3478, 3486, 3486, 3482, 3488, 3489, 3489, 3490, + 3490, 3491, 3493, 3493, 3483, 3495, 3487, 3501, 3491, 3494, - 3487, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489, - 3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, - 3490, 3490, 3492, 3492, 0, 3492, 3492, 3492, 3492, 3493, - 3493, 0, 0, 0, 3493, 3493, 3494, 3494, 0, 0, - 3494, 0, 3494, 3495, 0, 0, 0, 0, 0, 3495, - 3496, 3496, 0, 0, 0, 3496, 3496, 3497, 0, 0, - 0, 0, 0, 3497, 3498, 3498, 0, 3498, 3498, 3498, - 3498, 3499, 0, 0, 0, 0, 0, 3499, 3500, 3500, - 0, 0, 0, 3500, 3500, 3501, 3501, 0, 3501, 3501, - 3501, 3501, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, + 3494, 3497, 3495, 3500, 3502, 3488, 3497, 0, 3500, 3503, + 3503, 3504, 3504, 0, 0, 0, 3501, 0, 0, 0, + 0, 0, 0, 3502, 3508, 3508, 3508, 3508, 3508, 3508, + 3508, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, + 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511, 3511, + 3511, 3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3513, + 3513, 3513, 3513, 3513, 3513, 3513, 3514, 3514, 3514, 3514, + 3514, 3514, 3514, 3516, 3516, 0, 3516, 3516, 3516, 3516, + 3517, 3517, 0, 0, 0, 3517, 3517, 3518, 3518, 0, + 0, 3518, 0, 3518, 3519, 0, 0, 0, 0, 0, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, - 3483, 3483, 3483 + 3519, 3520, 3520, 0, 0, 0, 3520, 3520, 3521, 0, + 0, 0, 0, 0, 3521, 3522, 3522, 0, 3522, 3522, + 3522, 3522, 3523, 0, 0, 0, 0, 0, 3523, 3524, + 3524, 0, 0, 0, 3524, 3524, 3525, 3525, 0, 3525, + 3525, 3525, 3525, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, + 3507, 3507, 3507, 3507 } ; static yy_state_type yy_last_accepting_state; @@ -3285,7 +3302,7 @@ static void config_end_include(void) } #endif -#line 3286 "" +#line 3303 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3294,9 +3311,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3295 "" +#line 3312 "" -#line 3297 "" +#line 3314 "" #define INITIAL 0 #define quotedstring 1 @@ -3520,7 +3537,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3521 "" +#line 3538 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3553,13 +3570,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 >= 3484 ) + if ( yy_current_state >= 3508 ) 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] != 6793 ); + while ( yy_base[yy_current_state] != 6844 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4184,32 +4201,32 @@ YY_RULE_SETUP case 120: YY_RULE_SETUP #line 334 "./util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_TCP_UPSTREAM) } YY_BREAK case 121: YY_RULE_SETUP #line 335 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 122: YY_RULE_SETUP #line 336 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 123: YY_RULE_SETUP #line 337 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_FIRST) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 124: YY_RULE_SETUP #line 338 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_NO_CACHE) } +{ YDVAR(1, VAR_FORWARD_FIRST) } YY_BREAK case 125: YY_RULE_SETUP #line 339 "./util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } +{ YDVAR(1, VAR_FORWARD_NO_CACHE) } YY_BREAK case 126: YY_RULE_SETUP @@ -4219,791 +4236,791 @@ YY_RULE_SETUP case 127: YY_RULE_SETUP #line 341 "./util/configlexer.lex" -{ YDVAR(0, VAR_AUTH_ZONE) } +{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) } YY_BREAK case 128: YY_RULE_SETUP #line 342 "./util/configlexer.lex" -{ YDVAR(0, VAR_RPZ) } +{ YDVAR(1, VAR_FORWARD_TCP_UPSTREAM) } YY_BREAK case 129: YY_RULE_SETUP #line 343 "./util/configlexer.lex" -{ YDVAR(1, VAR_TAGS) } +{ YDVAR(0, VAR_AUTH_ZONE) } YY_BREAK case 130: YY_RULE_SETUP #line 344 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } +{ YDVAR(0, VAR_RPZ) } YY_BREAK case 131: YY_RULE_SETUP #line 345 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } +{ YDVAR(1, VAR_TAGS) } YY_BREAK case 132: YY_RULE_SETUP #line 346 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG) } +{ YDVAR(1, VAR_RPZ_ACTION_OVERRIDE) } YY_BREAK case 133: YY_RULE_SETUP #line 347 "./util/configlexer.lex" -{ YDVAR(1, VAR_RPZ_LOG_NAME) } +{ YDVAR(1, VAR_RPZ_CNAME_OVERRIDE) } YY_BREAK case 134: YY_RULE_SETUP #line 348 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEFILE) } +{ YDVAR(1, VAR_RPZ_LOG) } YY_BREAK case 135: YY_RULE_SETUP #line 349 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_RPZ_LOG_NAME) } YY_BREAK case 136: YY_RULE_SETUP #line 350 "./util/configlexer.lex" -{ YDVAR(1, VAR_MASTER) } +{ YDVAR(1, VAR_ZONEFILE) } YY_BREAK case 137: YY_RULE_SETUP #line 351 "./util/configlexer.lex" -{ YDVAR(1, VAR_URL) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 138: YY_RULE_SETUP #line 352 "./util/configlexer.lex" -{ YDVAR(1, VAR_ALLOW_NOTIFY) } +{ YDVAR(1, VAR_MASTER) } YY_BREAK case 139: YY_RULE_SETUP #line 353 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_DOWNSTREAM) } +{ YDVAR(1, VAR_URL) } YY_BREAK case 140: YY_RULE_SETUP #line 354 "./util/configlexer.lex" -{ YDVAR(1, VAR_FOR_UPSTREAM) } +{ YDVAR(1, VAR_ALLOW_NOTIFY) } YY_BREAK case 141: YY_RULE_SETUP #line 355 "./util/configlexer.lex" -{ YDVAR(1, VAR_FALLBACK_ENABLED) } +{ YDVAR(1, VAR_FOR_DOWNSTREAM) } YY_BREAK case 142: YY_RULE_SETUP #line 356 "./util/configlexer.lex" -{ YDVAR(0, VAR_VIEW) } +{ YDVAR(1, VAR_FOR_UPSTREAM) } YY_BREAK case 143: YY_RULE_SETUP #line 357 "./util/configlexer.lex" -{ YDVAR(1, VAR_VIEW_FIRST) } +{ YDVAR(1, VAR_FALLBACK_ENABLED) } YY_BREAK case 144: YY_RULE_SETUP #line 358 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(0, VAR_VIEW) } YY_BREAK case 145: YY_RULE_SETUP #line 359 "./util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_VIEW_FIRST) } YY_BREAK case 146: YY_RULE_SETUP #line 360 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 147: YY_RULE_SETUP #line 361 "./util/configlexer.lex" -{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 148: YY_RULE_SETUP #line 362 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 149: YY_RULE_SETUP #line 363 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } +{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) } YY_BREAK case 150: YY_RULE_SETUP #line 364 "./util/configlexer.lex" -{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) } YY_BREAK case 151: YY_RULE_SETUP #line 365 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) } YY_BREAK case 152: YY_RULE_SETUP #line 366 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) } YY_BREAK case 153: YY_RULE_SETUP #line 367 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) } YY_BREAK case 154: YY_RULE_SETUP #line 368 "./util/configlexer.lex" -{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } +{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) } YY_BREAK case 155: YY_RULE_SETUP #line 369 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV4) } YY_BREAK case 156: YY_RULE_SETUP #line 370 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } +{ YDVAR(1, VAR_MIN_CLIENT_SUBNET_IPV6) } YY_BREAK case 157: YY_RULE_SETUP #line 371 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV4) } YY_BREAK case 158: YY_RULE_SETUP #line 372 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_MAX_ECS_TREE_SIZE_IPV6) } YY_BREAK case 159: YY_RULE_SETUP #line 373 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 160: YY_RULE_SETUP #line 374 "./util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 161: YY_RULE_SETUP #line 375 "./util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) } YY_BREAK case 162: YY_RULE_SETUP #line 376 "./util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_HIDE_HTTP_USER_AGENT) } YY_BREAK case 163: YY_RULE_SETUP #line 377 "./util/configlexer.lex" -{ YDVAR(1, VAR_HTTP_USER_AGENT) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 164: YY_RULE_SETUP #line 378 "./util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 165: YY_RULE_SETUP #line 379 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_HTTP_USER_AGENT) } YY_BREAK case 166: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 167: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 168: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 169: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 170: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 171: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 172: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 173: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) } YY_BREAK case 174: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_ROOT_KEY_SENTINEL) } YY_BREAK case 175: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 176: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_MAX_RESTART) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 177: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 178: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_VAL_MAX_RESTART) } YY_BREAK case 179: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 180: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 181: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_IGNORE_CD_FLAG) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 182: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED) } +{ YDVAR(1, VAR_AGGRESSIVE_NSEC) } YY_BREAK case 183: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } +{ YDVAR(1, VAR_IGNORE_CD_FLAG) } YY_BREAK case 184: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } +{ YDVAR(1, VAR_SERVE_EXPIRED) } YY_BREAK case 185: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL) } YY_BREAK case 186: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } +{ YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) } YY_BREAK case 187: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } +{ YDVAR(1, VAR_SERVE_EXPIRED_REPLY_TTL) } YY_BREAK case 188: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_DSA) } +{ YDVAR(1, VAR_SERVE_EXPIRED_CLIENT_TIMEOUT) } YY_BREAK case 189: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAKE_SHA1) } +{ YDVAR(1, VAR_SERVE_ORIGINAL_TTL) } YY_BREAK case 190: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_FAKE_DSA) } YY_BREAK case 191: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_FAKE_SHA1) } YY_BREAK case 192: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 193: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 194: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 195: YY_RULE_SETUP -#line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } +#line 409 "./util/configlexer.lex" +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 196: YY_RULE_SETUP -#line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_CHECK) } +#line 410 "./util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 197: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } +{ YDVAR(1, VAR_ZONEMD_PERMISSIVE_MODE) } YY_BREAK case 198: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_CHECK) } YY_BREAK case 199: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ZONEMD_REJECT_ABSENCE) } YY_BREAK case 200: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 201: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 202: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 203: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_IDENTITY) } +{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) } YY_BREAK case 204: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 205: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_QUERIES) } +{ YDVAR(1, VAR_LOG_IDENTITY) } YY_BREAK case 206: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_REPLIES) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 207: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } +{ YDVAR(1, VAR_LOG_QUERIES) } YY_BREAK case 208: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_REPLIES) } YY_BREAK case 209: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 210: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 211: YY_RULE_SETUP #line 426 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 212: YY_RULE_SETUP #line 427 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 213: YY_RULE_SETUP #line 428 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 214: YY_RULE_SETUP #line 429 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 215: YY_RULE_SETUP #line 430 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 216: YY_RULE_SETUP #line 431 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 217: YY_RULE_SETUP #line 432 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 218: YY_RULE_SETUP #line 433 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 219: YY_RULE_SETUP #line 434 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 220: YY_RULE_SETUP #line 435 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 221: YY_RULE_SETUP #line 436 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 222: YY_RULE_SETUP #line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_DYNLIB_FILE) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(0, VAR_DYNLIB) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(1, VAR_DYNLIB_FILE) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(0, VAR_DYNLIB) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 236: YY_RULE_SETUP #line 451 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 237: YY_RULE_SETUP #line 452 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 249: YY_RULE_SETUP #line 464 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 250: YY_RULE_SETUP #line 465 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 251: YY_RULE_SETUP #line 466 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 252: YY_RULE_SETUP #line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IP) } +{ YDVAR(1, VAR_DNSTAP_BIDIRECTIONAL) } YY_BREAK case 253: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 254: YY_RULE_SETUP #line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } +{ YDVAR(1, VAR_DNSTAP_IP) } YY_BREAK case 255: YY_RULE_SETUP #line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } +{ YDVAR(1, VAR_DNSTAP_TLS) } YY_BREAK case 256: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } +{ YDVAR(1, VAR_DNSTAP_TLS_SERVER_NAME) } YY_BREAK case 257: YY_RULE_SETUP -#line 473 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } +#line 472 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_TLS_CERT_BUNDLE) } YY_BREAK case 258: YY_RULE_SETUP -#line 475 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +#line 473 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_KEY_FILE) } YY_BREAK case 259: YY_RULE_SETUP -#line 476 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +#line 475 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_TLS_CLIENT_CERT_FILE) } YY_BREAK case 260: YY_RULE_SETUP #line 477 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 261: YY_RULE_SETUP #line 478 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 262: YY_RULE_SETUP #line 479 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 263: YY_RULE_SETUP -#line 481 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } +#line 480 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 264: YY_RULE_SETUP -#line 483 "./util/configlexer.lex" +#line 481 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 265: YY_RULE_SETUP -#line 485 "./util/configlexer.lex" +#line 483 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 266: YY_RULE_SETUP -#line 487 "./util/configlexer.lex" +#line 485 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 267: YY_RULE_SETUP -#line 489 "./util/configlexer.lex" +#line 487 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 268: YY_RULE_SETUP -#line 491 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 489 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 269: YY_RULE_SETUP -#line 492 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +#line 491 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 270: YY_RULE_SETUP #line 493 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 271: YY_RULE_SETUP #line 494 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 272: YY_RULE_SETUP #line 495 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 273: YY_RULE_SETUP #line 496 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 274: YY_RULE_SETUP #line 497 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 275: YY_RULE_SETUP #line 498 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 276: YY_RULE_SETUP #line 499 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 277: YY_RULE_SETUP #line 500 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 278: YY_RULE_SETUP #line 501 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 279: YY_RULE_SETUP #line 502 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 280: YY_RULE_SETUP #line 503 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 281: YY_RULE_SETUP #line 504 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 282: YY_RULE_SETUP #line 505 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 283: YY_RULE_SETUP @@ -5013,240 +5030,250 @@ YY_RULE_SETUP case 284: YY_RULE_SETUP #line 507 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 285: YY_RULE_SETUP #line 508 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 286: YY_RULE_SETUP #line 509 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 287: YY_RULE_SETUP #line 510 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 288: YY_RULE_SETUP #line 511 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 289: YY_RULE_SETUP #line 512 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 290: YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 291: YY_RULE_SETUP #line 514 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 292: YY_RULE_SETUP #line 515 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 293: YY_RULE_SETUP #line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 294: YY_RULE_SETUP #line 517 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 295: YY_RULE_SETUP -#line 519 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } +#line 518 "./util/configlexer.lex" +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 296: YY_RULE_SETUP -#line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 519 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 297: YY_RULE_SETUP -#line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +#line 521 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 310: YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 311: YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 312: YY_RULE_SETUP #line 537 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 313: YY_RULE_SETUP #line 538 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 314: YY_RULE_SETUP #line 539 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 315: YY_RULE_SETUP #line 540 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 316: YY_RULE_SETUP #line 541 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 317: YY_RULE_SETUP #line 542 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 318: YY_RULE_SETUP #line 543 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 319: YY_RULE_SETUP #line 544 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 320: YY_RULE_SETUP #line 545 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 321: YY_RULE_SETUP #line 546 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 322: YY_RULE_SETUP #line 547 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } YY_BREAK case 323: YY_RULE_SETUP #line 548 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } YY_BREAK case 324: -/* rule 324 can match eol */ YY_RULE_SETUP #line 549 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 325: +YY_RULE_SETUP +#line 550 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 326: +/* rule 326 can match eol */ +YY_RULE_SETUP +#line 551 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 325: +case 327: YY_RULE_SETUP -#line 552 "./util/configlexer.lex" +#line 554 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 553 "./util/configlexer.lex" +#line 555 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 326: +case 328: YY_RULE_SETUP -#line 558 "./util/configlexer.lex" +#line 560 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 327: -/* rule 327 can match eol */ +case 329: +/* rule 329 can match eol */ YY_RULE_SETUP -#line 559 "./util/configlexer.lex" +#line 561 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 328: +case 330: YY_RULE_SETUP -#line 561 "./util/configlexer.lex" +#line 563 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5259,34 +5286,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 329: +case 331: YY_RULE_SETUP -#line 573 "./util/configlexer.lex" +#line 575 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 574 "./util/configlexer.lex" +#line 576 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 330: +case 332: YY_RULE_SETUP -#line 579 "./util/configlexer.lex" +#line 581 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 331: -/* rule 331 can match eol */ +case 333: +/* rule 333 can match eol */ YY_RULE_SETUP -#line 580 "./util/configlexer.lex" +#line 582 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 332: +case 334: YY_RULE_SETUP -#line 582 "./util/configlexer.lex" +#line 584 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5299,38 +5326,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 333: +case 335: YY_RULE_SETUP -#line 594 "./util/configlexer.lex" +#line 596 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 596 "./util/configlexer.lex" +#line 598 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 334: -YY_RULE_SETUP -#line 600 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK -case 335: -/* rule 335 can match eol */ -YY_RULE_SETUP -#line 601 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} - YY_BREAK case 336: YY_RULE_SETUP #line 602 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 337: +/* rule 337 can match eol */ YY_RULE_SETUP #line 603 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++;} + YY_BREAK +case 338: +YY_RULE_SETUP +#line 604 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 339: +YY_RULE_SETUP +#line 605 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5338,27 +5365,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 608 "./util/configlexer.lex" +#line 610 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 338: +case 340: YY_RULE_SETUP -#line 612 "./util/configlexer.lex" +#line 614 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 339: -/* rule 339 can match eol */ +case 341: +/* rule 341 can match eol */ YY_RULE_SETUP -#line 613 "./util/configlexer.lex" +#line 615 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 340: +case 342: YY_RULE_SETUP -#line 615 "./util/configlexer.lex" +#line 617 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5368,7 +5395,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 621 "./util/configlexer.lex" +#line 623 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5383,39 +5410,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 341: +case 343: YY_RULE_SETUP -#line 635 "./util/configlexer.lex" +#line 637 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 638 "./util/configlexer.lex" +#line 640 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 342: -YY_RULE_SETUP -#line 642 "./util/configlexer.lex" -{ LEXOUT(("ITSP ")); /* ignore */ } - YY_BREAK -case 343: -/* rule 343 can match eol */ -YY_RULE_SETUP -#line 643 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++; } - YY_BREAK case 344: YY_RULE_SETUP #line 644 "./util/configlexer.lex" -{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } +{ LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK case 345: +/* rule 345 can match eol */ YY_RULE_SETUP #line 645 "./util/configlexer.lex" +{ LEXOUT(("NL\n")); cfg_parser->line++; } + YY_BREAK +case 346: +YY_RULE_SETUP +#line 646 "./util/configlexer.lex" +{ LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } + YY_BREAK +case 347: +YY_RULE_SETUP +#line 647 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5424,29 +5451,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 651 "./util/configlexer.lex" +#line 653 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 346: +case 348: YY_RULE_SETUP -#line 655 "./util/configlexer.lex" +#line 657 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 347: -/* rule 347 can match eol */ +case 349: +/* rule 349 can match eol */ YY_RULE_SETUP -#line 656 "./util/configlexer.lex" +#line 658 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 348: +case 350: YY_RULE_SETUP -#line 660 "./util/configlexer.lex" +#line 662 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5455,33 +5482,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 349: +case 351: YY_RULE_SETUP -#line 668 "./util/configlexer.lex" +#line 670 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 350: +case 352: YY_RULE_SETUP -#line 672 "./util/configlexer.lex" +#line 674 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 351: +case 353: YY_RULE_SETUP -#line 676 "./util/configlexer.lex" +#line 678 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 352: +case 354: YY_RULE_SETUP -#line 680 "./util/configlexer.lex" +#line 682 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5482 "" +#line 5509 "" case YY_END_OF_BUFFER: { @@ -5776,7 +5803,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 >= 3484 ) + if ( yy_current_state >= 3508 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5804,11 +5831,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 >= 3484 ) + if ( yy_current_state >= 3508 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3483); + yy_is_jam = (yy_current_state == 3507); return yy_is_jam ? 0 : yy_current_state; } @@ -6447,6 +6474,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 680 "./util/configlexer.lex" +#line 682 "./util/configlexer.lex" diff --git a/util/configparser.c b/util/configparser.c index d2fceed4d..317bc2ad5 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.4. */ +/* A Bison parser, made by GNU Bison 3.6.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, and Bison version. */ -#define YYBISON 30704 +/* Identify Bison output. */ +#define YYBISON 1 -/* Bison version string. */ -#define YYBISON_VERSION "3.7.4" +/* Bison version. */ +#define YYBISON_VERSION "3.6.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -119,7 +119,691 @@ 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_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_STUB_TCP_UPSTREAM = 401, /* VAR_STUB_TCP_UPSTREAM */ + VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM */ + VAR_HTTPS_PORT = 403, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 404, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 405, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 408, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 410, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 411, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 412, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 413, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 414, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 415, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 416, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 417, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 419, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 420, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 421, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 422, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 423, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 424, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 425, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 426, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 427, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 435, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 436, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 443, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 444, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 445, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 447, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 448, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 450, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 451, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 452, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 453, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 456, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 457, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 458, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 459, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 460, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 461, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 462, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 463, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 464, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 466, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 468, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 470, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 471, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 472, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 473, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 474, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 475, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 476, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 477, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 478, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 479, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 480, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 481, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 482, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 483, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 484, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 485, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 486, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 487, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 488, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 489, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 490, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 491, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 492, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 493, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 494, /* VAR_HIDE_TRUSTANCHOR */ + VAR_HIDE_HTTP_USER_AGENT = 495, /* VAR_HIDE_HTTP_USER_AGENT */ + VAR_HTTP_USER_AGENT = 496, /* VAR_HTTP_USER_AGENT */ + VAR_TRUST_ANCHOR_SIGNALING = 497, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 498, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 499, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 500, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 501, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 502, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 503, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 504, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 505, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 506, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 507, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 508, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 509, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 510, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 512, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 514, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 515, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 516, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 517, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 518, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 519, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 520, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 521, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 522, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 523, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 524, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 525, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 526, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 527, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 528, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 529, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 530, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 531, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 532, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 533, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 534, /* VAR_ZONEFILE */ + VAR_MASTER = 535, /* VAR_MASTER */ + VAR_URL = 536, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 537, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 538, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 539, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 540, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 541, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 542, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 543, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 544, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 545, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 546, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 547, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 548, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 549, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 550, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 551, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 552, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 553, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 554, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 555, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 556, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 557, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 558, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 559, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 560, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 561, /* VAR_RPZ */ + VAR_TAGS = 562, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 563, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 564, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 565, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 566, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 567, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 568, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 569, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 570, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 571, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 572, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_CHECK = 573, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 574 /* 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_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_STUB_TCP_UPSTREAM 401 +#define VAR_FORWARD_TCP_UPSTREAM 402 +#define VAR_HTTPS_PORT 403 +#define VAR_HTTP_ENDPOINT 404 +#define VAR_HTTP_MAX_STREAMS 405 +#define VAR_HTTP_QUERY_BUFFER_SIZE 406 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 407 +#define VAR_HTTP_NODELAY 408 +#define VAR_HTTP_NOTLS_DOWNSTREAM 409 +#define VAR_STUB_FIRST 410 +#define VAR_MINIMAL_RESPONSES 411 +#define VAR_RRSET_ROUNDROBIN 412 +#define VAR_MAX_UDP_SIZE 413 +#define VAR_DELAY_CLOSE 414 +#define VAR_UDP_CONNECT 415 +#define VAR_UNBLOCK_LAN_ZONES 416 +#define VAR_INSECURE_LAN_ZONES 417 +#define VAR_INFRA_CACHE_MIN_RTT 418 +#define VAR_INFRA_KEEP_PROBING 419 +#define VAR_DNS64_PREFIX 420 +#define VAR_DNS64_SYNTHALL 421 +#define VAR_DNS64_IGNORE_AAAA 422 +#define VAR_DNSTAP 423 +#define VAR_DNSTAP_ENABLE 424 +#define VAR_DNSTAP_SOCKET_PATH 425 +#define VAR_DNSTAP_IP 426 +#define VAR_DNSTAP_TLS 427 +#define VAR_DNSTAP_TLS_SERVER_NAME 428 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 429 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 430 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 431 +#define VAR_DNSTAP_SEND_IDENTITY 432 +#define VAR_DNSTAP_SEND_VERSION 433 +#define VAR_DNSTAP_BIDIRECTIONAL 434 +#define VAR_DNSTAP_IDENTITY 435 +#define VAR_DNSTAP_VERSION 436 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 440 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 441 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 442 +#define VAR_RESPONSE_IP_TAG 443 +#define VAR_RESPONSE_IP 444 +#define VAR_RESPONSE_IP_DATA 445 +#define VAR_HARDEN_ALGO_DOWNGRADE 446 +#define VAR_IP_TRANSPARENT 447 +#define VAR_IP_DSCP 448 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 449 +#define VAR_IP_RATELIMIT 450 +#define VAR_IP_RATELIMIT_SLABS 451 +#define VAR_IP_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT 453 +#define VAR_RATELIMIT_SLABS 454 +#define VAR_RATELIMIT_SIZE 455 +#define VAR_RATELIMIT_FOR_DOMAIN 456 +#define VAR_RATELIMIT_BELOW_DOMAIN 457 +#define VAR_IP_RATELIMIT_FACTOR 458 +#define VAR_RATELIMIT_FACTOR 459 +#define VAR_SEND_CLIENT_SUBNET 460 +#define VAR_CLIENT_SUBNET_ZONE 461 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 462 +#define VAR_CLIENT_SUBNET_OPCODE 463 +#define VAR_MAX_CLIENT_SUBNET_IPV4 464 +#define VAR_MAX_CLIENT_SUBNET_IPV6 465 +#define VAR_MIN_CLIENT_SUBNET_IPV4 466 +#define VAR_MIN_CLIENT_SUBNET_IPV6 467 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 468 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 469 +#define VAR_CAPS_WHITELIST 470 +#define VAR_CACHE_MAX_NEGATIVE_TTL 471 +#define VAR_PERMIT_SMALL_HOLDDOWN 472 +#define VAR_QNAME_MINIMISATION 473 +#define VAR_QNAME_MINIMISATION_STRICT 474 +#define VAR_IP_FREEBIND 475 +#define VAR_DEFINE_TAG 476 +#define VAR_LOCAL_ZONE_TAG 477 +#define VAR_ACCESS_CONTROL_TAG 478 +#define VAR_LOCAL_ZONE_OVERRIDE 479 +#define VAR_ACCESS_CONTROL_TAG_ACTION 480 +#define VAR_ACCESS_CONTROL_TAG_DATA 481 +#define VAR_VIEW 482 +#define VAR_ACCESS_CONTROL_VIEW 483 +#define VAR_VIEW_FIRST 484 +#define VAR_SERVE_EXPIRED 485 +#define VAR_SERVE_EXPIRED_TTL 486 +#define VAR_SERVE_EXPIRED_TTL_RESET 487 +#define VAR_SERVE_EXPIRED_REPLY_TTL 488 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 489 +#define VAR_SERVE_ORIGINAL_TTL 490 +#define VAR_FAKE_DSA 491 +#define VAR_FAKE_SHA1 492 +#define VAR_LOG_IDENTITY 493 +#define VAR_HIDE_TRUSTANCHOR 494 +#define VAR_HIDE_HTTP_USER_AGENT 495 +#define VAR_HTTP_USER_AGENT 496 +#define VAR_TRUST_ANCHOR_SIGNALING 497 +#define VAR_AGGRESSIVE_NSEC 498 +#define VAR_USE_SYSTEMD 499 +#define VAR_SHM_ENABLE 500 +#define VAR_SHM_KEY 501 +#define VAR_ROOT_KEY_SENTINEL 502 +#define VAR_DNSCRYPT 503 +#define VAR_DNSCRYPT_ENABLE 504 +#define VAR_DNSCRYPT_PORT 505 +#define VAR_DNSCRYPT_PROVIDER 506 +#define VAR_DNSCRYPT_SECRET_KEY 507 +#define VAR_DNSCRYPT_PROVIDER_CERT 508 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 509 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 510 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 511 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 512 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 513 +#define VAR_PAD_RESPONSES 514 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 515 +#define VAR_PAD_QUERIES 516 +#define VAR_PAD_QUERIES_BLOCK_SIZE 517 +#define VAR_IPSECMOD_ENABLED 518 +#define VAR_IPSECMOD_HOOK 519 +#define VAR_IPSECMOD_IGNORE_BOGUS 520 +#define VAR_IPSECMOD_MAX_TTL 521 +#define VAR_IPSECMOD_WHITELIST 522 +#define VAR_IPSECMOD_STRICT 523 +#define VAR_CACHEDB 524 +#define VAR_CACHEDB_BACKEND 525 +#define VAR_CACHEDB_SECRETSEED 526 +#define VAR_CACHEDB_REDISHOST 527 +#define VAR_CACHEDB_REDISPORT 528 +#define VAR_CACHEDB_REDISTIMEOUT 529 +#define VAR_CACHEDB_REDISEXPIRERECORDS 530 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 531 +#define VAR_FOR_UPSTREAM 532 +#define VAR_AUTH_ZONE 533 +#define VAR_ZONEFILE 534 +#define VAR_MASTER 535 +#define VAR_URL 536 +#define VAR_FOR_DOWNSTREAM 537 +#define VAR_FALLBACK_ENABLED 538 +#define VAR_TLS_ADDITIONAL_PORT 539 +#define VAR_LOW_RTT 540 +#define VAR_LOW_RTT_PERMIL 541 +#define VAR_FAST_SERVER_PERMIL 542 +#define VAR_FAST_SERVER_NUM 543 +#define VAR_ALLOW_NOTIFY 544 +#define VAR_TLS_WIN_CERT 545 +#define VAR_TCP_CONNECTION_LIMIT 546 +#define VAR_FORWARD_NO_CACHE 547 +#define VAR_STUB_NO_CACHE 548 +#define VAR_LOG_SERVFAIL 549 +#define VAR_DENY_ANY 550 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 551 +#define VAR_LOG_TAG_QUERYREPLY 552 +#define VAR_STREAM_WAIT_SIZE 553 +#define VAR_TLS_CIPHERS 554 +#define VAR_TLS_CIPHERSUITES 555 +#define VAR_TLS_USE_SNI 556 +#define VAR_IPSET 557 +#define VAR_IPSET_NAME_V4 558 +#define VAR_IPSET_NAME_V6 559 +#define VAR_TLS_SESSION_TICKET_KEYS 560 +#define VAR_RPZ 561 +#define VAR_TAGS 562 +#define VAR_RPZ_ACTION_OVERRIDE 563 +#define VAR_RPZ_CNAME_OVERRIDE 564 +#define VAR_RPZ_LOG 565 +#define VAR_RPZ_LOG_NAME 566 +#define VAR_DYNLIB 567 +#define VAR_DYNLIB_FILE 568 +#define VAR_EDNS_CLIENT_STRING 569 +#define VAR_EDNS_CLIENT_STRING_OPCODE 570 +#define VAR_NSID 571 +#define VAR_ZONEMD_PERMISSIVE_MODE 572 +#define VAR_ZONEMD_CHECK 573 +#define VAR_ZONEMD_REJECT_ABSENCE 574 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +union YYSTYPE +{ +#line 66 "./util/configparser.y" + + char* str; + +#line 794 "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 { @@ -270,521 +954,525 @@ enum yysymbol_kind_t 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_HIDE_HTTP_USER_AGENT = 238, /* VAR_HIDE_HTTP_USER_AGENT */ - YYSYMBOL_VAR_HTTP_USER_AGENT = 239, /* VAR_HTTP_USER_AGENT */ - YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 240, /* VAR_TRUST_ANCHOR_SIGNALING */ - YYSYMBOL_VAR_AGGRESSIVE_NSEC = 241, /* VAR_AGGRESSIVE_NSEC */ - YYSYMBOL_VAR_USE_SYSTEMD = 242, /* VAR_USE_SYSTEMD */ - YYSYMBOL_VAR_SHM_ENABLE = 243, /* VAR_SHM_ENABLE */ - YYSYMBOL_VAR_SHM_KEY = 244, /* VAR_SHM_KEY */ - YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 245, /* VAR_ROOT_KEY_SENTINEL */ - YYSYMBOL_VAR_DNSCRYPT = 246, /* VAR_DNSCRYPT */ - YYSYMBOL_VAR_DNSCRYPT_ENABLE = 247, /* VAR_DNSCRYPT_ENABLE */ - YYSYMBOL_VAR_DNSCRYPT_PORT = 248, /* VAR_DNSCRYPT_PORT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 249, /* VAR_DNSCRYPT_PROVIDER */ - YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 250, /* VAR_DNSCRYPT_SECRET_KEY */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 251, /* VAR_DNSCRYPT_PROVIDER_CERT */ - YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 252, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 253, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 254, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 255, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 256, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_PAD_RESPONSES = 257, /* VAR_PAD_RESPONSES */ - YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 258, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - YYSYMBOL_VAR_PAD_QUERIES = 259, /* VAR_PAD_QUERIES */ - YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 260, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 261, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 262, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 263, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 264, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 265, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 266, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 267, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 268, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 269, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 270, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 271, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 272, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 273, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 274, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 275, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 276, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 277, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 278, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 279, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 280, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 281, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 282, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 283, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 284, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 285, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 286, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 287, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 288, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 289, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 290, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 291, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 292, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 293, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 294, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 295, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 296, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 297, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 298, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 299, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 300, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 301, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 302, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 303, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 304, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 305, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 306, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 307, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 308, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 309, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 310, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 311, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 312, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 313, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 314, /* VAR_NSID */ - YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 315, /* VAR_ZONEMD_PERMISSIVE_MODE */ - YYSYMBOL_VAR_ZONEMD_CHECK = 316, /* VAR_ZONEMD_CHECK */ - YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 317, /* VAR_ZONEMD_REJECT_ABSENCE */ - YYSYMBOL_YYACCEPT = 318, /* $accept */ - YYSYMBOL_toplevelvars = 319, /* toplevelvars */ - YYSYMBOL_toplevelvar = 320, /* toplevelvar */ - YYSYMBOL_force_toplevel = 321, /* force_toplevel */ - YYSYMBOL_serverstart = 322, /* serverstart */ - YYSYMBOL_contents_server = 323, /* contents_server */ - YYSYMBOL_content_server = 324, /* content_server */ - YYSYMBOL_stubstart = 325, /* stubstart */ - YYSYMBOL_contents_stub = 326, /* contents_stub */ - YYSYMBOL_content_stub = 327, /* content_stub */ - YYSYMBOL_forwardstart = 328, /* forwardstart */ - YYSYMBOL_contents_forward = 329, /* contents_forward */ - YYSYMBOL_content_forward = 330, /* content_forward */ - YYSYMBOL_viewstart = 331, /* viewstart */ - YYSYMBOL_contents_view = 332, /* contents_view */ - YYSYMBOL_content_view = 333, /* content_view */ - YYSYMBOL_authstart = 334, /* authstart */ - YYSYMBOL_contents_auth = 335, /* contents_auth */ - YYSYMBOL_content_auth = 336, /* content_auth */ - YYSYMBOL_rpz_tag = 337, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 338, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 339, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 340, /* rpz_log */ - YYSYMBOL_rpz_log_name = 341, /* rpz_log_name */ - YYSYMBOL_rpzstart = 342, /* rpzstart */ - YYSYMBOL_contents_rpz = 343, /* contents_rpz */ - YYSYMBOL_content_rpz = 344, /* content_rpz */ - YYSYMBOL_server_num_threads = 345, /* server_num_threads */ - YYSYMBOL_server_verbosity = 346, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 347, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 348, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 349, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 350, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 351, /* server_shm_key */ - YYSYMBOL_server_port = 352, /* server_port */ - YYSYMBOL_server_send_client_subnet = 353, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 354, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 355, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 356, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 357, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 358, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 359, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 360, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 361, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 362, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 363, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 364, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 365, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 366, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 367, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 368, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 369, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 370, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 371, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 372, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 373, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 374, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 375, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 376, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 377, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 378, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 379, /* server_tcp_idle_timeout */ - YYSYMBOL_server_max_reuse_tcp_queries = 380, /* server_max_reuse_tcp_queries */ - YYSYMBOL_server_tcp_reuse_timeout = 381, /* server_tcp_reuse_timeout */ - YYSYMBOL_server_tcp_auth_query_timeout = 382, /* server_tcp_auth_query_timeout */ - YYSYMBOL_server_tcp_keepalive = 383, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 384, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 385, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 386, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 387, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 388, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 389, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 390, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 391, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 392, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 393, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 394, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 395, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 396, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 397, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 398, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 399, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 400, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 401, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 402, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 403, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 404, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 405, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 406, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 407, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 408, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 409, /* server_log_queries */ - YYSYMBOL_server_log_replies = 410, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 411, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 412, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 413, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 414, /* server_chroot */ - YYSYMBOL_server_username = 415, /* server_username */ - YYSYMBOL_server_directory = 416, /* server_directory */ - YYSYMBOL_server_logfile = 417, /* server_logfile */ - YYSYMBOL_server_pidfile = 418, /* server_pidfile */ - YYSYMBOL_server_root_hints = 419, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 420, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 421, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 422, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 423, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 424, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 425, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 426, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 427, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 428, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 429, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 430, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 431, /* server_hide_trustanchor */ - YYSYMBOL_server_hide_http_user_agent = 432, /* server_hide_http_user_agent */ - YYSYMBOL_server_identity = 433, /* server_identity */ - YYSYMBOL_server_version = 434, /* server_version */ - YYSYMBOL_server_http_user_agent = 435, /* server_http_user_agent */ - YYSYMBOL_server_nsid = 436, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 437, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 438, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 439, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 440, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 441, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 442, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 443, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 444, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 445, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 446, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 447, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 448, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 449, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 450, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 451, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 452, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 453, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 454, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 455, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 456, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 457, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 458, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 459, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 460, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 461, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 462, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 463, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 464, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 465, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 466, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 467, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 468, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 469, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 470, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 471, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 472, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 473, /* server_private_address */ - YYSYMBOL_server_private_domain = 474, /* server_private_domain */ - YYSYMBOL_server_prefetch = 475, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 476, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 477, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 478, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 479, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 480, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 481, /* server_access_control */ - YYSYMBOL_server_module_conf = 482, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 483, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 484, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 485, /* server_val_sig_skew_max */ - YYSYMBOL_server_val_max_restart = 486, /* server_val_max_restart */ - YYSYMBOL_server_cache_max_ttl = 487, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 488, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 489, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 490, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 491, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 492, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 493, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 494, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 495, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 496, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 497, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 498, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 499, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_serve_original_ttl = 500, /* server_serve_original_ttl */ - YYSYMBOL_server_fake_dsa = 501, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 502, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 503, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 504, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_zonemd_permissive_mode = 505, /* server_zonemd_permissive_mode */ - YYSYMBOL_server_add_holddown = 506, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 507, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 508, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 509, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 510, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 511, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 512, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 513, /* server_local_zone */ - YYSYMBOL_server_local_data = 514, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 515, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 516, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 517, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 518, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 519, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 520, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 521, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 522, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 523, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 524, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 525, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 526, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 527, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 528, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 529, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 530, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 531, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 532, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 533, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 534, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 535, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 536, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 537, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 538, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 539, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 540, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 541, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 542, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 543, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 544, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 545, /* server_qname_minimisation_strict */ - YYSYMBOL_server_pad_responses = 546, /* server_pad_responses */ - YYSYMBOL_server_pad_responses_block_size = 547, /* server_pad_responses_block_size */ - YYSYMBOL_server_pad_queries = 548, /* server_pad_queries */ - YYSYMBOL_server_pad_queries_block_size = 549, /* server_pad_queries_block_size */ - YYSYMBOL_server_ipsecmod_enabled = 550, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 551, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 552, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 553, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 554, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 555, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 556, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 557, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 558, /* stub_name */ - YYSYMBOL_stub_host = 559, /* stub_host */ - YYSYMBOL_stub_addr = 560, /* stub_addr */ - YYSYMBOL_stub_first = 561, /* stub_first */ - YYSYMBOL_stub_no_cache = 562, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 563, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 564, /* stub_prime */ - YYSYMBOL_forward_name = 565, /* forward_name */ - YYSYMBOL_forward_host = 566, /* forward_host */ - YYSYMBOL_forward_addr = 567, /* forward_addr */ - YYSYMBOL_forward_first = 568, /* forward_first */ - YYSYMBOL_forward_no_cache = 569, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 570, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 571, /* auth_name */ - YYSYMBOL_auth_zonefile = 572, /* auth_zonefile */ - YYSYMBOL_auth_master = 573, /* auth_master */ - YYSYMBOL_auth_url = 574, /* auth_url */ - YYSYMBOL_auth_allow_notify = 575, /* auth_allow_notify */ - YYSYMBOL_auth_zonemd_check = 576, /* auth_zonemd_check */ - YYSYMBOL_auth_zonemd_reject_absence = 577, /* auth_zonemd_reject_absence */ - YYSYMBOL_auth_for_downstream = 578, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 579, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 580, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 581, /* view_name */ - YYSYMBOL_view_local_zone = 582, /* view_local_zone */ - YYSYMBOL_view_response_ip = 583, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 584, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 585, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 586, /* view_local_data_ptr */ - YYSYMBOL_view_first = 587, /* view_first */ - YYSYMBOL_rcstart = 588, /* rcstart */ - YYSYMBOL_contents_rc = 589, /* contents_rc */ - YYSYMBOL_content_rc = 590, /* content_rc */ - YYSYMBOL_rc_control_enable = 591, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 592, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 593, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 594, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 595, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 596, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 597, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 598, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 599, /* dtstart */ - YYSYMBOL_contents_dt = 600, /* contents_dt */ - YYSYMBOL_content_dt = 601, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 602, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 603, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 604, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 605, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 606, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 607, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 608, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 609, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 610, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 611, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 612, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 613, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 614, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 615, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 616, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 617, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 618, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 619, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 620, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 621, /* pythonstart */ - YYSYMBOL_contents_py = 622, /* contents_py */ - YYSYMBOL_content_py = 623, /* content_py */ - YYSYMBOL_py_script = 624, /* py_script */ - YYSYMBOL_dynlibstart = 625, /* dynlibstart */ - YYSYMBOL_contents_dl = 626, /* contents_dl */ - YYSYMBOL_content_dl = 627, /* content_dl */ - YYSYMBOL_dl_file = 628, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 629, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 630, /* server_log_identity */ - YYSYMBOL_server_response_ip = 631, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 632, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 633, /* dnscstart */ - YYSYMBOL_contents_dnsc = 634, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 635, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 636, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 637, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 638, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 639, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 640, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 641, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 642, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 643, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 644, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 645, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 646, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 647, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 648, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 649, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 650, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 651, /* redis_server_host */ - YYSYMBOL_redis_server_port = 652, /* redis_server_port */ - YYSYMBOL_redis_timeout = 653, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 654, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 655, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 656, /* ipsetstart */ - YYSYMBOL_contents_ipset = 657, /* contents_ipset */ - YYSYMBOL_content_ipset = 658, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 659, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 660 /* ipset_name_v6 */ + YYSYMBOL_VAR_STUB_TCP_UPSTREAM = 146, /* VAR_STUB_TCP_UPSTREAM */ + YYSYMBOL_VAR_FORWARD_TCP_UPSTREAM = 147, /* VAR_FORWARD_TCP_UPSTREAM */ + YYSYMBOL_VAR_HTTPS_PORT = 148, /* VAR_HTTPS_PORT */ + YYSYMBOL_VAR_HTTP_ENDPOINT = 149, /* VAR_HTTP_ENDPOINT */ + YYSYMBOL_VAR_HTTP_MAX_STREAMS = 150, /* VAR_HTTP_MAX_STREAMS */ + YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 151, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 152, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + YYSYMBOL_VAR_HTTP_NODELAY = 153, /* VAR_HTTP_NODELAY */ + YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 154, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + YYSYMBOL_VAR_STUB_FIRST = 155, /* VAR_STUB_FIRST */ + YYSYMBOL_VAR_MINIMAL_RESPONSES = 156, /* VAR_MINIMAL_RESPONSES */ + YYSYMBOL_VAR_RRSET_ROUNDROBIN = 157, /* VAR_RRSET_ROUNDROBIN */ + YYSYMBOL_VAR_MAX_UDP_SIZE = 158, /* VAR_MAX_UDP_SIZE */ + YYSYMBOL_VAR_DELAY_CLOSE = 159, /* VAR_DELAY_CLOSE */ + YYSYMBOL_VAR_UDP_CONNECT = 160, /* VAR_UDP_CONNECT */ + YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 161, /* VAR_UNBLOCK_LAN_ZONES */ + YYSYMBOL_VAR_INSECURE_LAN_ZONES = 162, /* VAR_INSECURE_LAN_ZONES */ + YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 163, /* VAR_INFRA_CACHE_MIN_RTT */ + YYSYMBOL_VAR_INFRA_KEEP_PROBING = 164, /* VAR_INFRA_KEEP_PROBING */ + YYSYMBOL_VAR_DNS64_PREFIX = 165, /* VAR_DNS64_PREFIX */ + YYSYMBOL_VAR_DNS64_SYNTHALL = 166, /* VAR_DNS64_SYNTHALL */ + YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 167, /* VAR_DNS64_IGNORE_AAAA */ + YYSYMBOL_VAR_DNSTAP = 168, /* VAR_DNSTAP */ + YYSYMBOL_VAR_DNSTAP_ENABLE = 169, /* VAR_DNSTAP_ENABLE */ + YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 170, /* VAR_DNSTAP_SOCKET_PATH */ + YYSYMBOL_VAR_DNSTAP_IP = 171, /* VAR_DNSTAP_IP */ + YYSYMBOL_VAR_DNSTAP_TLS = 172, /* VAR_DNSTAP_TLS */ + YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 173, /* VAR_DNSTAP_TLS_SERVER_NAME */ + YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 174, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 175, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 176, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 177, /* VAR_DNSTAP_SEND_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 178, /* VAR_DNSTAP_SEND_VERSION */ + YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 179, /* VAR_DNSTAP_BIDIRECTIONAL */ + YYSYMBOL_VAR_DNSTAP_IDENTITY = 180, /* VAR_DNSTAP_IDENTITY */ + YYSYMBOL_VAR_DNSTAP_VERSION = 181, /* VAR_DNSTAP_VERSION */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 182, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 183, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 184, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 185, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 186, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 187, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + YYSYMBOL_VAR_RESPONSE_IP_TAG = 188, /* VAR_RESPONSE_IP_TAG */ + YYSYMBOL_VAR_RESPONSE_IP = 189, /* VAR_RESPONSE_IP */ + YYSYMBOL_VAR_RESPONSE_IP_DATA = 190, /* VAR_RESPONSE_IP_DATA */ + YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 191, /* VAR_HARDEN_ALGO_DOWNGRADE */ + YYSYMBOL_VAR_IP_TRANSPARENT = 192, /* VAR_IP_TRANSPARENT */ + YYSYMBOL_VAR_IP_DSCP = 193, /* VAR_IP_DSCP */ + YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 194, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + YYSYMBOL_VAR_IP_RATELIMIT = 195, /* VAR_IP_RATELIMIT */ + YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 196, /* VAR_IP_RATELIMIT_SLABS */ + YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 197, /* VAR_IP_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT = 198, /* VAR_RATELIMIT */ + YYSYMBOL_VAR_RATELIMIT_SLABS = 199, /* VAR_RATELIMIT_SLABS */ + YYSYMBOL_VAR_RATELIMIT_SIZE = 200, /* VAR_RATELIMIT_SIZE */ + YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 201, /* VAR_RATELIMIT_FOR_DOMAIN */ + YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 202, /* VAR_RATELIMIT_BELOW_DOMAIN */ + YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 203, /* VAR_IP_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_RATELIMIT_FACTOR = 204, /* VAR_RATELIMIT_FACTOR */ + YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 205, /* VAR_SEND_CLIENT_SUBNET */ + YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 206, /* VAR_CLIENT_SUBNET_ZONE */ + YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 207, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 208, /* VAR_CLIENT_SUBNET_OPCODE */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 209, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 210, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 211, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 212, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 213, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 214, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + YYSYMBOL_VAR_CAPS_WHITELIST = 215, /* VAR_CAPS_WHITELIST */ + YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 216, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 217, /* VAR_PERMIT_SMALL_HOLDDOWN */ + YYSYMBOL_VAR_QNAME_MINIMISATION = 218, /* VAR_QNAME_MINIMISATION */ + YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 219, /* VAR_QNAME_MINIMISATION_STRICT */ + YYSYMBOL_VAR_IP_FREEBIND = 220, /* VAR_IP_FREEBIND */ + YYSYMBOL_VAR_DEFINE_TAG = 221, /* VAR_DEFINE_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_TAG = 222, /* VAR_LOCAL_ZONE_TAG */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 223, /* VAR_ACCESS_CONTROL_TAG */ + YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 224, /* VAR_LOCAL_ZONE_OVERRIDE */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 225, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 226, /* VAR_ACCESS_CONTROL_TAG_DATA */ + YYSYMBOL_VAR_VIEW = 227, /* VAR_VIEW */ + YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 228, /* VAR_ACCESS_CONTROL_VIEW */ + YYSYMBOL_VAR_VIEW_FIRST = 229, /* VAR_VIEW_FIRST */ + YYSYMBOL_VAR_SERVE_EXPIRED = 230, /* VAR_SERVE_EXPIRED */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 231, /* VAR_SERVE_EXPIRED_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 232, /* VAR_SERVE_EXPIRED_TTL_RESET */ + YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 233, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 234, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 235, /* VAR_SERVE_ORIGINAL_TTL */ + YYSYMBOL_VAR_FAKE_DSA = 236, /* VAR_FAKE_DSA */ + YYSYMBOL_VAR_FAKE_SHA1 = 237, /* VAR_FAKE_SHA1 */ + YYSYMBOL_VAR_LOG_IDENTITY = 238, /* VAR_LOG_IDENTITY */ + YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 239, /* VAR_HIDE_TRUSTANCHOR */ + YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 240, /* VAR_HIDE_HTTP_USER_AGENT */ + YYSYMBOL_VAR_HTTP_USER_AGENT = 241, /* VAR_HTTP_USER_AGENT */ + YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 242, /* VAR_TRUST_ANCHOR_SIGNALING */ + YYSYMBOL_VAR_AGGRESSIVE_NSEC = 243, /* VAR_AGGRESSIVE_NSEC */ + YYSYMBOL_VAR_USE_SYSTEMD = 244, /* VAR_USE_SYSTEMD */ + YYSYMBOL_VAR_SHM_ENABLE = 245, /* VAR_SHM_ENABLE */ + YYSYMBOL_VAR_SHM_KEY = 246, /* VAR_SHM_KEY */ + YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 247, /* VAR_ROOT_KEY_SENTINEL */ + YYSYMBOL_VAR_DNSCRYPT = 248, /* VAR_DNSCRYPT */ + YYSYMBOL_VAR_DNSCRYPT_ENABLE = 249, /* VAR_DNSCRYPT_ENABLE */ + YYSYMBOL_VAR_DNSCRYPT_PORT = 250, /* VAR_DNSCRYPT_PORT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 251, /* VAR_DNSCRYPT_PROVIDER */ + YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 252, /* VAR_DNSCRYPT_SECRET_KEY */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 253, /* VAR_DNSCRYPT_PROVIDER_CERT */ + YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 254, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 255, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 256, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 257, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 258, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + YYSYMBOL_VAR_PAD_RESPONSES = 259, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 260, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 261, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 262, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 263, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 264, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 265, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 266, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 267, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 268, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 269, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 270, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 271, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 272, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 273, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 274, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 275, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 276, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 277, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 278, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 279, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 280, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 281, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 282, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 283, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 284, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 285, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 286, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 287, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 288, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 289, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 290, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 291, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 292, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 293, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 294, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 295, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 296, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 297, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 298, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 299, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 300, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 301, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 302, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 303, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 304, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 305, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 306, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 307, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 308, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 309, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 310, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 311, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 312, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 313, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 314, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 315, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 316, /* VAR_NSID */ + YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 317, /* VAR_ZONEMD_PERMISSIVE_MODE */ + YYSYMBOL_VAR_ZONEMD_CHECK = 318, /* VAR_ZONEMD_CHECK */ + YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 319, /* VAR_ZONEMD_REJECT_ABSENCE */ + YYSYMBOL_YYACCEPT = 320, /* $accept */ + YYSYMBOL_toplevelvars = 321, /* toplevelvars */ + YYSYMBOL_toplevelvar = 322, /* toplevelvar */ + YYSYMBOL_force_toplevel = 323, /* force_toplevel */ + YYSYMBOL_serverstart = 324, /* serverstart */ + YYSYMBOL_contents_server = 325, /* contents_server */ + YYSYMBOL_content_server = 326, /* content_server */ + YYSYMBOL_stubstart = 327, /* stubstart */ + YYSYMBOL_contents_stub = 328, /* contents_stub */ + YYSYMBOL_content_stub = 329, /* content_stub */ + YYSYMBOL_forwardstart = 330, /* forwardstart */ + YYSYMBOL_contents_forward = 331, /* contents_forward */ + YYSYMBOL_content_forward = 332, /* content_forward */ + YYSYMBOL_viewstart = 333, /* viewstart */ + YYSYMBOL_contents_view = 334, /* contents_view */ + YYSYMBOL_content_view = 335, /* content_view */ + YYSYMBOL_authstart = 336, /* authstart */ + YYSYMBOL_contents_auth = 337, /* contents_auth */ + YYSYMBOL_content_auth = 338, /* content_auth */ + YYSYMBOL_rpz_tag = 339, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 340, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 341, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 342, /* rpz_log */ + YYSYMBOL_rpz_log_name = 343, /* rpz_log_name */ + YYSYMBOL_rpzstart = 344, /* rpzstart */ + YYSYMBOL_contents_rpz = 345, /* contents_rpz */ + YYSYMBOL_content_rpz = 346, /* content_rpz */ + YYSYMBOL_server_num_threads = 347, /* server_num_threads */ + YYSYMBOL_server_verbosity = 348, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 349, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 350, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 351, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 352, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 353, /* server_shm_key */ + YYSYMBOL_server_port = 354, /* server_port */ + YYSYMBOL_server_send_client_subnet = 355, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 356, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 357, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 358, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 359, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 360, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 361, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 362, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 363, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 364, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 365, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 366, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 367, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 368, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 369, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 370, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 371, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 372, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 373, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 374, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 375, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 376, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 377, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 378, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 379, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 380, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 381, /* server_tcp_idle_timeout */ + YYSYMBOL_server_max_reuse_tcp_queries = 382, /* server_max_reuse_tcp_queries */ + YYSYMBOL_server_tcp_reuse_timeout = 383, /* server_tcp_reuse_timeout */ + YYSYMBOL_server_tcp_auth_query_timeout = 384, /* server_tcp_auth_query_timeout */ + YYSYMBOL_server_tcp_keepalive = 385, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 386, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 387, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 388, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 389, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 390, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 391, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 392, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 393, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 394, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 395, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 396, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 397, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 398, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 399, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 400, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 401, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 402, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 403, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 404, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 405, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 406, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 407, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 408, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 409, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 410, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 411, /* server_log_queries */ + YYSYMBOL_server_log_replies = 412, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 413, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 414, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 415, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 416, /* server_chroot */ + YYSYMBOL_server_username = 417, /* server_username */ + YYSYMBOL_server_directory = 418, /* server_directory */ + YYSYMBOL_server_logfile = 419, /* server_logfile */ + YYSYMBOL_server_pidfile = 420, /* server_pidfile */ + YYSYMBOL_server_root_hints = 421, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 422, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 423, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 424, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 425, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 426, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 427, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 428, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 429, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 430, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 431, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 432, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 433, /* server_hide_trustanchor */ + YYSYMBOL_server_hide_http_user_agent = 434, /* server_hide_http_user_agent */ + YYSYMBOL_server_identity = 435, /* server_identity */ + YYSYMBOL_server_version = 436, /* server_version */ + YYSYMBOL_server_http_user_agent = 437, /* server_http_user_agent */ + YYSYMBOL_server_nsid = 438, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 439, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 440, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 441, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 442, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 443, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 444, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 445, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 446, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 447, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 448, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 449, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 450, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 451, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 452, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 453, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 454, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 455, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 456, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 457, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 458, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 459, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 460, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 461, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 462, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 463, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 464, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 465, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 466, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 467, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 468, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 469, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 470, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 471, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 472, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 473, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 474, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 475, /* server_private_address */ + YYSYMBOL_server_private_domain = 476, /* server_private_domain */ + YYSYMBOL_server_prefetch = 477, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 478, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 479, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 480, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 481, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 482, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 483, /* server_access_control */ + YYSYMBOL_server_module_conf = 484, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 485, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 486, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 487, /* server_val_sig_skew_max */ + YYSYMBOL_server_val_max_restart = 488, /* server_val_max_restart */ + YYSYMBOL_server_cache_max_ttl = 489, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 490, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 491, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 492, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 493, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 494, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 495, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 496, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 497, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 498, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 499, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 500, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 501, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_serve_original_ttl = 502, /* server_serve_original_ttl */ + YYSYMBOL_server_fake_dsa = 503, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 504, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 505, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 506, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_zonemd_permissive_mode = 507, /* server_zonemd_permissive_mode */ + YYSYMBOL_server_add_holddown = 508, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 509, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 510, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 511, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 512, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 513, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 514, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 515, /* server_local_zone */ + YYSYMBOL_server_local_data = 516, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 517, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 518, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 519, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 520, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 521, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 522, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 523, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 524, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 525, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 526, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 527, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 528, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 529, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 530, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 531, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 532, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 533, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 534, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 535, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 536, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 537, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 538, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 539, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 540, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 541, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 542, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 543, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 544, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 545, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 546, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 547, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 548, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 549, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 550, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 551, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 552, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 553, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 554, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 555, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 556, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 557, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 558, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 559, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 560, /* stub_name */ + YYSYMBOL_stub_host = 561, /* stub_host */ + YYSYMBOL_stub_addr = 562, /* stub_addr */ + YYSYMBOL_stub_first = 563, /* stub_first */ + YYSYMBOL_stub_no_cache = 564, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 565, /* stub_ssl_upstream */ + YYSYMBOL_stub_tcp_upstream = 566, /* stub_tcp_upstream */ + YYSYMBOL_stub_prime = 567, /* stub_prime */ + YYSYMBOL_forward_name = 568, /* forward_name */ + YYSYMBOL_forward_host = 569, /* forward_host */ + YYSYMBOL_forward_addr = 570, /* forward_addr */ + YYSYMBOL_forward_first = 571, /* forward_first */ + YYSYMBOL_forward_no_cache = 572, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 573, /* forward_ssl_upstream */ + YYSYMBOL_forward_tcp_upstream = 574, /* forward_tcp_upstream */ + YYSYMBOL_auth_name = 575, /* auth_name */ + YYSYMBOL_auth_zonefile = 576, /* auth_zonefile */ + YYSYMBOL_auth_master = 577, /* auth_master */ + YYSYMBOL_auth_url = 578, /* auth_url */ + YYSYMBOL_auth_allow_notify = 579, /* auth_allow_notify */ + YYSYMBOL_auth_zonemd_check = 580, /* auth_zonemd_check */ + YYSYMBOL_auth_zonemd_reject_absence = 581, /* auth_zonemd_reject_absence */ + YYSYMBOL_auth_for_downstream = 582, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 583, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 584, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 585, /* view_name */ + YYSYMBOL_view_local_zone = 586, /* view_local_zone */ + YYSYMBOL_view_response_ip = 587, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 588, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 589, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 590, /* view_local_data_ptr */ + YYSYMBOL_view_first = 591, /* view_first */ + YYSYMBOL_rcstart = 592, /* rcstart */ + YYSYMBOL_contents_rc = 593, /* contents_rc */ + YYSYMBOL_content_rc = 594, /* content_rc */ + YYSYMBOL_rc_control_enable = 595, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 596, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 597, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 598, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 599, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 600, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 601, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 602, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 603, /* dtstart */ + YYSYMBOL_contents_dt = 604, /* contents_dt */ + YYSYMBOL_content_dt = 605, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 606, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 607, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 608, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 609, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 610, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 611, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 612, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 613, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 614, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 615, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 616, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 617, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 618, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 619, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 620, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 621, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 622, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 623, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 624, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 625, /* pythonstart */ + YYSYMBOL_contents_py = 626, /* contents_py */ + YYSYMBOL_content_py = 627, /* content_py */ + YYSYMBOL_py_script = 628, /* py_script */ + YYSYMBOL_dynlibstart = 629, /* dynlibstart */ + YYSYMBOL_contents_dl = 630, /* contents_dl */ + YYSYMBOL_content_dl = 631, /* content_dl */ + YYSYMBOL_dl_file = 632, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 633, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 634, /* server_log_identity */ + YYSYMBOL_server_response_ip = 635, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 636, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 637, /* dnscstart */ + YYSYMBOL_contents_dnsc = 638, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 639, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 640, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 641, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 642, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 643, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 644, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 645, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 646, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 647, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 648, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 649, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 650, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 651, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 652, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 653, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 654, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 655, /* redis_server_host */ + YYSYMBOL_redis_server_port = 656, /* redis_server_port */ + YYSYMBOL_redis_timeout = 657, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 658, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 659, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 660, /* ipsetstart */ + YYSYMBOL_contents_ipset = 661, /* contents_ipset */ + YYSYMBOL_content_ipset = 662, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 663, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 664 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1094,19 +1782,18 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 672 +#define YYLAST 676 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 318 +#define YYNTOKENS 320 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 343 +#define YYNNTS 345 /* YYNRULES -- Number of rules. */ -#define YYNRULES 662 +#define YYNRULES 666 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 984 +#define YYNSTATES 990 -/* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 572 +#define YYMAXUTOK 574 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1177,80 +1864,80 @@ static const yytype_int16 yytranslate[] = 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 + 315, 316, 317, 318, 319 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 190, 190, 190, 191, 191, 192, 192, 193, 193, - 193, 194, 194, 195, 195, 196, 196, 197, 199, 205, - 210, 211, 212, 212, 212, 213, 213, 214, 214, 214, - 215, 215, 216, 216, 216, 217, 217, 218, 218, 218, - 219, 219, 219, 220, 220, 221, 221, 222, 222, 223, - 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, - 228, 228, 229, 229, 230, 230, 230, 231, 231, 231, - 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, - 236, 237, 237, 238, 238, 239, 239, 239, 240, 240, - 241, 241, 242, 242, 243, 243, 243, 244, 244, 245, - 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, - 250, 251, 251, 252, 252, 252, 253, 253, 253, 254, - 254, 254, 255, 255, 255, 255, 256, 257, 257, 257, - 258, 258, 258, 259, 259, 260, 260, 261, 261, 261, - 262, 262, 262, 263, 263, 264, 264, 264, 265, 265, - 266, 266, 266, 267, 267, 268, 268, 269, 269, 270, - 271, 271, 272, 272, 273, 273, 274, 275, 275, 276, - 276, 277, 277, 278, 278, 279, 279, 280, 280, 280, - 281, 281, 282, 282, 283, 283, 284, 285, 285, 286, - 286, 287, 288, 288, 289, 289, 290, 290, 291, 291, - 292, 292, 292, 293, 293, 293, 294, 294, 295, 296, - 296, 297, 297, 298, 298, 299, 299, 300, 300, 300, - 301, 301, 301, 302, 302, 302, 303, 303, 304, 304, - 305, 305, 306, 306, 307, 307, 308, 308, 309, 309, - 312, 324, 325, 326, 326, 326, 326, 326, 327, 327, - 329, 341, 342, 343, 343, 343, 343, 344, 344, 346, - 360, 361, 362, 362, 362, 362, 363, 363, 363, 365, - 384, 385, 386, 386, 386, 386, 387, 387, 387, 388, - 388, 388, 391, 410, 427, 435, 445, 453, 470, 471, - 472, 472, 472, 472, 472, 473, 473, 473, 474, 474, - 476, 485, 494, 505, 514, 523, 532, 543, 552, 564, - 578, 593, 604, 621, 638, 655, 672, 687, 702, 715, - 730, 739, 748, 757, 766, 775, 784, 793, 802, 811, - 820, 829, 838, 847, 856, 869, 880, 891, 902, 911, - 924, 933, 942, 951, 958, 965, 974, 981, 990, 998, - 1005, 1012, 1020, 1029, 1037, 1053, 1061, 1069, 1077, 1085, - 1093, 1102, 1111, 1125, 1134, 1143, 1152, 1161, 1170, 1179, - 1186, 1193, 1219, 1227, 1234, 1241, 1248, 1255, 1263, 1271, - 1279, 1286, 1297, 1308, 1315, 1324, 1333, 1342, 1351, 1358, - 1365, 1372, 1388, 1396, 1404, 1414, 1424, 1434, 1448, 1456, - 1469, 1480, 1488, 1501, 1510, 1519, 1528, 1537, 1547, 1557, - 1565, 1578, 1587, 1595, 1604, 1612, 1625, 1634, 1644, 1651, - 1661, 1671, 1681, 1691, 1701, 1711, 1721, 1731, 1738, 1745, - 1752, 1761, 1770, 1779, 1788, 1795, 1805, 1825, 1832, 1850, - 1863, 1876, 1889, 1898, 1907, 1916, 1925, 1935, 1945, 1956, - 1965, 1974, 1983, 1992, 2001, 2010, 2019, 2032, 2045, 2054, - 2061, 2070, 2079, 2088, 2097, 2106, 2114, 2127, 2135, 2180, - 2187, 2202, 2212, 2222, 2229, 2236, 2243, 2252, 2260, 2274, - 2295, 2316, 2328, 2340, 2352, 2361, 2382, 2392, 2401, 2409, - 2417, 2430, 2443, 2458, 2473, 2482, 2491, 2497, 2506, 2515, - 2525, 2535, 2545, 2554, 2564, 2573, 2586, 2599, 2611, 2625, - 2637, 2651, 2660, 2672, 2682, 2689, 2696, 2705, 2714, 2724, - 2734, 2744, 2751, 2758, 2767, 2776, 2786, 2796, 2803, 2810, - 2817, 2825, 2835, 2845, 2855, 2865, 2875, 2885, 2931, 2941, - 2949, 2957, 2972, 2981, 2986, 2987, 2988, 2988, 2988, 2989, - 2989, 2989, 2990, 2990, 2992, 3002, 3011, 3018, 3025, 3032, - 3039, 3046, 3053, 3058, 3059, 3060, 3060, 3060, 3061, 3061, - 3061, 3062, 3063, 3063, 3064, 3064, 3065, 3065, 3066, 3067, - 3068, 3069, 3070, 3071, 3073, 3082, 3092, 3099, 3106, 3115, - 3122, 3129, 3136, 3143, 3152, 3161, 3168, 3175, 3185, 3195, - 3205, 3215, 3225, 3235, 3240, 3241, 3242, 3244, 3250, 3255, - 3256, 3257, 3259, 3265, 3275, 3282, 3291, 3299, 3304, 3305, - 3307, 3307, 3307, 3308, 3308, 3309, 3310, 3311, 3312, 3313, - 3315, 3325, 3334, 3341, 3350, 3357, 3366, 3374, 3387, 3395, - 3408, 3413, 3414, 3415, 3415, 3416, 3416, 3416, 3417, 3419, - 3431, 3443, 3455, 3470, 3483, 3496, 3507, 3512, 3513, 3514, - 3514, 3516, 3531 + 0, 191, 191, 191, 192, 192, 193, 193, 194, 194, + 194, 195, 195, 196, 196, 197, 197, 198, 200, 206, + 211, 212, 213, 213, 213, 214, 214, 215, 215, 215, + 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, + 220, 220, 220, 221, 221, 222, 222, 223, 223, 224, + 224, 225, 225, 226, 226, 227, 227, 228, 228, 229, + 229, 229, 230, 230, 231, 231, 231, 232, 232, 232, + 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, + 237, 238, 238, 239, 239, 240, 240, 240, 241, 241, + 242, 242, 243, 243, 244, 244, 244, 245, 245, 246, + 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, + 251, 252, 252, 253, 253, 253, 254, 254, 254, 255, + 255, 255, 256, 256, 256, 256, 257, 258, 258, 258, + 259, 259, 259, 260, 260, 261, 261, 262, 262, 262, + 263, 263, 263, 264, 264, 265, 265, 265, 266, 266, + 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, + 272, 272, 273, 273, 274, 274, 275, 276, 276, 277, + 277, 278, 278, 279, 279, 280, 280, 281, 281, 281, + 282, 282, 283, 283, 284, 284, 285, 286, 286, 287, + 287, 288, 289, 289, 290, 290, 291, 291, 292, 292, + 293, 293, 293, 294, 294, 294, 295, 295, 296, 297, + 297, 298, 298, 299, 299, 300, 300, 301, 301, 301, + 302, 302, 302, 303, 303, 303, 304, 304, 305, 305, + 306, 306, 307, 307, 308, 308, 309, 309, 310, 310, + 313, 325, 326, 327, 327, 327, 327, 327, 328, 328, + 328, 330, 342, 343, 344, 344, 344, 344, 345, 345, + 345, 347, 361, 362, 363, 363, 363, 363, 364, 364, + 364, 366, 385, 386, 387, 387, 387, 387, 388, 388, + 388, 389, 389, 389, 392, 411, 428, 436, 446, 454, + 471, 472, 473, 473, 473, 473, 473, 474, 474, 474, + 475, 475, 477, 486, 495, 506, 515, 524, 533, 544, + 553, 565, 579, 594, 605, 622, 639, 656, 673, 688, + 703, 716, 731, 740, 749, 758, 767, 776, 785, 794, + 803, 812, 821, 830, 839, 848, 857, 870, 881, 892, + 903, 912, 925, 934, 943, 952, 959, 966, 975, 982, + 991, 999, 1006, 1013, 1021, 1030, 1038, 1054, 1062, 1070, + 1078, 1086, 1094, 1103, 1112, 1126, 1135, 1144, 1153, 1162, + 1171, 1180, 1187, 1194, 1220, 1228, 1235, 1242, 1249, 1256, + 1264, 1272, 1280, 1287, 1298, 1309, 1316, 1325, 1334, 1343, + 1352, 1359, 1366, 1373, 1389, 1397, 1405, 1415, 1425, 1435, + 1449, 1457, 1470, 1481, 1489, 1502, 1511, 1520, 1529, 1538, + 1548, 1558, 1566, 1579, 1588, 1596, 1605, 1613, 1626, 1635, + 1645, 1652, 1662, 1672, 1682, 1692, 1702, 1712, 1722, 1732, + 1739, 1746, 1753, 1762, 1771, 1780, 1789, 1796, 1806, 1826, + 1833, 1851, 1864, 1877, 1890, 1899, 1908, 1917, 1926, 1936, + 1946, 1957, 1966, 1975, 1984, 1993, 2002, 2011, 2020, 2033, + 2046, 2055, 2062, 2071, 2080, 2089, 2098, 2107, 2115, 2128, + 2136, 2181, 2188, 2203, 2213, 2223, 2230, 2237, 2244, 2253, + 2261, 2275, 2296, 2317, 2329, 2341, 2353, 2362, 2383, 2393, + 2402, 2410, 2418, 2431, 2444, 2459, 2474, 2483, 2492, 2498, + 2507, 2516, 2526, 2536, 2546, 2555, 2565, 2574, 2587, 2600, + 2612, 2626, 2638, 2652, 2661, 2673, 2683, 2690, 2697, 2706, + 2715, 2725, 2735, 2745, 2755, 2762, 2769, 2778, 2787, 2797, + 2807, 2817, 2824, 2831, 2838, 2846, 2856, 2866, 2876, 2886, + 2896, 2906, 2952, 2962, 2970, 2978, 2993, 3002, 3007, 3008, + 3009, 3009, 3009, 3010, 3010, 3010, 3011, 3011, 3013, 3023, + 3032, 3039, 3046, 3053, 3060, 3067, 3074, 3079, 3080, 3081, + 3081, 3081, 3082, 3082, 3082, 3083, 3084, 3084, 3085, 3085, + 3086, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3094, 3103, + 3113, 3120, 3127, 3136, 3143, 3150, 3157, 3164, 3173, 3182, + 3189, 3196, 3206, 3216, 3226, 3236, 3246, 3256, 3261, 3262, + 3263, 3265, 3271, 3276, 3277, 3278, 3280, 3286, 3296, 3303, + 3312, 3320, 3325, 3326, 3328, 3328, 3328, 3329, 3329, 3330, + 3331, 3332, 3333, 3334, 3336, 3346, 3355, 3362, 3371, 3378, + 3387, 3395, 3408, 3416, 3429, 3434, 3435, 3436, 3436, 3437, + 3437, 3437, 3438, 3440, 3452, 3464, 3476, 3491, 3504, 3517, + 3528, 3533, 3534, 3535, 3535, 3537, 3552 }; #endif @@ -1314,7 +2001,8 @@ static const char *const yytname[] = "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", + "VAR_TLS_CERT_BUNDLE", "VAR_STUB_TCP_UPSTREAM", + "VAR_FORWARD_TCP_UPSTREAM", "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", @@ -1487,8 +2175,9 @@ static const char *const yytname[] = "server_ipsecmod_strict", "server_edns_client_string", "server_edns_client_string_opcode", "stub_name", "stub_host", "stub_addr", "stub_first", "stub_no_cache", "stub_ssl_upstream", - "stub_prime", "forward_name", "forward_host", "forward_addr", - "forward_first", "forward_no_cache", "forward_ssl_upstream", "auth_name", + "stub_tcp_upstream", "stub_prime", "forward_name", "forward_host", + "forward_addr", "forward_first", "forward_no_cache", + "forward_ssl_upstream", "forward_tcp_upstream", "auth_name", "auth_zonefile", "auth_master", "auth_url", "auth_allow_notify", "auth_zonemd_check", "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream", "auth_fallback_enabled", "view_name", @@ -1568,11 +2257,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, 570, 571, 572 + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574 }; #endif -#define YYPACT_NINF (-302) +#define YYPACT_NINF (-304) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1586,105 +2275,105 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -302, 0, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, 298, -43, -38, -42, -44, -28, -29, -149, - -109, -301, -194, -192, -293, 3, 4, 27, 28, 31, + -304, 0, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, 300, -43, -38, -42, -44, -28, -29, -151, + -109, -303, -196, -194, -295, 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, 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, 134, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 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, 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, 214, 216, 217, 218, 219, 220, - 222, 228, 229, 230, 231, 232, 234, 235, 237, 243, - 244, 245, 246, 247, 248, 250, 251, 252, 253, 254, - 255, 256, 258, 259, 260, 261, 264, 265, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 291, 292, 293, 295, - 296, 297, 299, 333, 334, 335, 336, 340, 341, 342, - 384, 385, 386, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, 387, 388, 389, 390, 391, 392, 398, -302, - -302, -302, -302, -302, -302, -302, -302, 402, 403, 430, - 431, 432, 441, -302, -302, -302, -302, -302, -302, -302, - 454, 455, 456, 457, 458, 459, 460, -302, -302, -302, - -302, -302, -302, -302, -302, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, 471, 472, 473, 513, - 515, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, 534, 535, 536, 537, 538, 539, 540, 541, - -302, -302, -302, -302, -302, -302, -302, -302, -302, 542, - 543, 544, 555, 556, 557, 558, 559, 560, 561, 563, - 564, 565, 566, 567, 568, 569, 572, 575, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, 578, -302, - -302, 579, -302, -302, 588, 589, 590, 592, 593, 594, - 595, 596, 597, 598, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, 599, 604, 605, 606, 607, - 608, -302, -302, -302, -302, -302, -302, -302, 609, 610, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, 611, 612, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, 613, 614, 615, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, 616, 617, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, 618, 619, 620, - 621, 622, 623, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, 624, -302, -302, - -302, -302, -302, -302, -302, -302, -302, 625, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, 626, -302, -302, 627, 628, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, 629, 630, 631, -302, -302, -302, -302, -302, - -302, -302, -302, -302 + 92, 95, 97, 98, 100, 101, 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, 134, 135, 136, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 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, 214, 215, 216, 218, 219, 220, 221, 222, + 224, 230, 231, 232, 233, 234, 236, 237, 239, 245, + 246, 247, 248, 249, 250, 252, 253, 254, 255, 256, + 257, 258, 260, 261, 262, 263, 266, 267, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 293, 294, 295, 297, + 298, 299, 301, 335, 336, 337, 338, 342, 343, 344, + 386, 387, 388, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, 389, 390, 391, 392, 393, 394, 400, 404, + -304, -304, -304, -304, -304, -304, -304, -304, -304, 405, + 432, 433, 434, 436, 437, 445, -304, -304, -304, -304, + -304, -304, -304, -304, 458, 459, 460, 461, 462, 463, + 464, -304, -304, -304, -304, -304, -304, -304, -304, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + 475, 476, 477, 517, 519, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, 538, 539, 540, 541, + 542, 543, 544, 545, -304, -304, -304, -304, -304, -304, + -304, -304, -304, 546, 547, 548, 559, 560, 561, 562, + 563, 564, 565, 567, 568, 569, 570, 571, 572, 573, + 576, 579, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, 582, -304, -304, 583, -304, -304, 592, 593, + 594, 596, 597, 598, 599, 600, 601, 602, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, 603, + 608, 609, 610, 611, 612, -304, -304, -304, -304, -304, + -304, -304, 613, 614, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, 615, 616, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, 617, 618, 619, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + 620, 621, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, 622, 623, 624, 625, 626, 627, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, 628, -304, -304, -304, -304, -304, -304, -304, -304, + -304, 629, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, 630, -304, -304, 631, 632, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, 633, 634, + 635, -304, -304, -304, -304, -304, -304, -304, -304, -304 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1692,10 +2381,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 240, 250, 543, 603, 562, - 259, 617, 640, 269, 656, 287, 608, 3, 17, 21, - 242, 252, 261, 271, 289, 545, 564, 605, 610, 619, - 642, 658, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 240, 251, 547, 607, 566, + 261, 621, 644, 271, 660, 289, 612, 3, 17, 21, + 242, 253, 263, 273, 291, 549, 568, 609, 614, 623, + 646, 662, 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, @@ -1740,105 +2429,105 @@ static const yytype_int16 yydefact[] = 151, 152, 157, 158, 155, 156, 159, 160, 162, 161, 219, 221, 220, 176, 186, 187, 188, 189, 190, 209, 211, 210, 212, 213, 214, 233, 234, 180, 198, 201, - 202, 223, 0, 0, 0, 0, 0, 0, 0, 241, - 243, 244, 245, 247, 248, 249, 246, 0, 0, 0, - 0, 0, 0, 251, 253, 254, 255, 256, 257, 258, - 0, 0, 0, 0, 0, 0, 0, 260, 262, 263, - 266, 267, 264, 268, 265, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 270, 272, 273, 274, 275, - 279, 280, 281, 276, 277, 278, 0, 0, 0, 0, - 0, 292, 296, 297, 298, 299, 288, 290, 291, 293, - 294, 295, 0, 0, 0, 0, 0, 0, 0, 0, - 544, 546, 548, 547, 553, 549, 550, 551, 552, 0, + 202, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 241, 243, 244, 245, 247, 248, 249, 250, 246, 0, + 0, 0, 0, 0, 0, 0, 252, 254, 255, 256, + 257, 258, 259, 260, 0, 0, 0, 0, 0, 0, + 0, 262, 264, 265, 268, 269, 266, 270, 267, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 272, + 274, 275, 276, 277, 281, 282, 283, 278, 279, 280, + 0, 0, 0, 0, 0, 294, 298, 299, 300, 301, + 290, 292, 293, 295, 296, 297, 0, 0, 0, 0, + 0, 0, 0, 0, 548, 550, 552, 551, 557, 553, + 554, 555, 556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 563, 565, - 567, 566, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 604, - 606, 0, 609, 611, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 618, 620, 621, 622, 624, 625, - 623, 626, 627, 628, 629, 0, 0, 0, 0, 0, - 0, 641, 643, 644, 645, 646, 647, 648, 0, 0, - 657, 659, 660, 301, 300, 307, 320, 318, 330, 326, - 327, 331, 328, 329, 332, 333, 334, 338, 339, 369, - 370, 371, 372, 373, 401, 402, 403, 409, 410, 323, - 411, 412, 415, 413, 414, 418, 419, 420, 434, 384, - 385, 388, 389, 421, 437, 378, 380, 438, 445, 446, - 447, 324, 400, 465, 466, 379, 459, 362, 319, 374, - 435, 442, 422, 0, 0, 469, 325, 302, 361, 426, - 303, 321, 322, 375, 376, 467, 424, 428, 429, 336, - 335, 304, 470, 404, 433, 363, 383, 439, 440, 441, - 444, 458, 377, 463, 461, 462, 392, 399, 430, 431, - 393, 394, 423, 449, 364, 365, 368, 340, 342, 337, - 343, 344, 345, 346, 353, 354, 355, 356, 357, 358, - 359, 471, 472, 474, 405, 406, 407, 408, 416, 417, - 475, 476, 477, 0, 0, 0, 425, 395, 397, 613, - 486, 490, 488, 487, 491, 489, 0, 0, 494, 495, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 427, 443, 464, 499, 500, 396, 478, 0, 0, 0, - 0, 0, 0, 450, 451, 452, 453, 454, 455, 456, - 457, 614, 386, 387, 390, 381, 448, 360, 305, 306, - 382, 501, 502, 503, 504, 505, 507, 506, 508, 509, - 510, 341, 348, 496, 498, 497, 347, 0, 367, 432, - 473, 366, 398, 349, 350, 352, 351, 0, 512, 391, - 460, 513, 514, 515, 519, 518, 516, 517, 520, 521, - 522, 523, 525, 524, 536, 0, 540, 541, 0, 0, - 542, 526, 534, 527, 528, 529, 533, 535, 530, 531, - 532, 282, 283, 284, 285, 286, 554, 556, 555, 558, - 559, 560, 561, 557, 584, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 585, 595, 596, 597, 598, 599, - 600, 601, 602, 607, 612, 630, 631, 632, 635, 633, - 634, 636, 637, 638, 639, 649, 650, 651, 652, 653, - 654, 661, 662, 436, 468, 485, 615, 616, 492, 493, - 479, 480, 0, 0, 0, 484, 655, 511, 537, 538, - 539, 483, 481, 482 + 0, 0, 567, 569, 571, 570, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 0, 608, 610, 0, 613, 615, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 622, 624, + 625, 626, 628, 629, 627, 630, 631, 632, 633, 0, + 0, 0, 0, 0, 0, 645, 647, 648, 649, 650, + 651, 652, 0, 0, 661, 663, 664, 303, 302, 309, + 322, 320, 332, 328, 329, 333, 330, 331, 334, 335, + 336, 340, 341, 371, 372, 373, 374, 375, 403, 404, + 405, 411, 412, 325, 413, 414, 417, 415, 416, 420, + 421, 422, 436, 386, 387, 390, 391, 423, 439, 380, + 382, 440, 447, 448, 449, 326, 402, 467, 468, 381, + 461, 364, 321, 376, 437, 444, 424, 0, 0, 471, + 327, 304, 363, 428, 305, 323, 324, 377, 378, 469, + 426, 430, 431, 338, 337, 306, 472, 406, 435, 365, + 385, 441, 442, 443, 446, 460, 379, 465, 463, 464, + 394, 401, 432, 433, 395, 396, 425, 451, 366, 367, + 370, 342, 344, 339, 345, 346, 347, 348, 355, 356, + 357, 358, 359, 360, 361, 473, 474, 476, 407, 408, + 409, 410, 418, 419, 477, 478, 479, 0, 0, 0, + 427, 397, 399, 617, 488, 492, 490, 489, 493, 491, + 0, 0, 496, 497, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 429, 445, 466, 501, 502, 398, + 480, 0, 0, 0, 0, 0, 0, 452, 453, 454, + 455, 456, 457, 458, 459, 618, 388, 389, 392, 383, + 450, 362, 307, 308, 384, 503, 504, 505, 506, 507, + 509, 508, 510, 511, 512, 343, 350, 498, 500, 499, + 349, 0, 369, 434, 475, 368, 400, 351, 352, 354, + 353, 0, 514, 393, 462, 515, 516, 517, 522, 520, + 521, 518, 519, 523, 524, 525, 526, 528, 529, 527, + 540, 0, 544, 545, 0, 0, 546, 530, 538, 531, + 532, 533, 537, 539, 534, 535, 536, 284, 285, 286, + 287, 288, 558, 560, 559, 562, 563, 564, 565, 561, + 588, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 589, 599, 600, 601, 602, 603, 604, 605, 606, 611, + 616, 634, 635, 636, 639, 637, 638, 640, 641, 642, + 643, 653, 654, 655, 656, 657, 658, 665, 666, 438, + 470, 487, 619, 620, 494, 495, 481, 482, 0, 0, + 0, 486, 659, 513, 541, 542, 543, 485, 483, 484 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, 271, 632, 633, 634, 635, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, - -302, -302, -302 + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, 273, 636, 637, 638, 639, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, + -304, -304, -304, -304, -304 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 263, 20, 33, 489, - 21, 34, 503, 22, 35, 517, 23, 36, 535, 551, - 552, 553, 554, 555, 24, 37, 556, 264, 265, 266, + -1, 1, 17, 18, 19, 32, 263, 20, 33, 490, + 21, 34, 506, 22, 35, 521, 23, 36, 539, 555, + 556, 557, 558, 559, 24, 37, 560, 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, @@ -1860,17 +2549,17 @@ static const yytype_int16 yydefgoto[] = 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, - 490, 491, 492, 493, 494, 495, 496, 504, 505, 506, - 507, 508, 509, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 518, 519, 520, 521, 522, 523, 524, - 25, 38, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 26, 39, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 27, 40, 619, 620, 28, 41, 622, - 623, 477, 478, 479, 480, 29, 42, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 30, 43, - 651, 652, 653, 654, 655, 656, 657, 481, 31, 44, - 660, 661, 662 + 491, 492, 493, 494, 495, 496, 497, 498, 507, 508, + 509, 510, 511, 512, 513, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 522, 523, 524, 525, 526, + 527, 528, 25, 38, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 26, 39, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 27, 40, 623, 624, 28, + 41, 626, 627, 477, 478, 479, 480, 29, 42, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 30, 43, 655, 656, 657, 658, 659, 660, 661, 481, + 31, 44, 664, 665, 666 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1878,157 +2567,157 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 525, 482, 510, 483, 484, 618, 497, 658, 659, - 621, 3, 4, 663, 664, 498, 499, 525, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 665, 666, 511, - 512, 667, 668, 669, 670, 671, 5, 672, 673, 674, - 675, 676, 6, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 677, 678, 679, 513, 485, 562, 563, - 564, 565, 566, 567, 568, 569, 645, 646, 647, 648, - 649, 650, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 7, 694, 695, 696, - 486, 697, 698, 699, 500, 700, 501, 701, 702, 703, - 487, 704, 705, 706, 8, 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, 733, 734, 735, 736, 514, 515, 737, 738, 739, - 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 9, 756, 757, 758, - 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, - 769, 770, 771, 772, 773, 516, 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, 809, 810, 811, 812, 10, 813, 814, 815, 816, - 817, 526, 818, 527, 528, 529, 530, 531, 819, 820, - 821, 822, 823, 532, 824, 825, 11, 826, 488, 527, - 528, 529, 502, 827, 828, 829, 830, 831, 832, 532, - 833, 834, 835, 836, 837, 838, 839, 12, 840, 841, - 842, 843, 533, 534, 844, 845, 13, 546, 547, 548, - 549, 550, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, - 14, 864, 865, 866, 15, 867, 868, 869, 557, 870, - 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, 871, 872, 873, 874, 77, 78, 79, - 875, 876, 877, 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, 878, 879, 880, 881, 882, 883, - 884, 885, 886, 121, 122, 123, 124, 125, 887, 126, - 127, 128, 888, 889, 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, - 890, 891, 892, 155, 156, 157, 158, 159, 160, 161, - 162, 893, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 894, 895, 896, 897, 898, 899, - 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, - 910, 911, 912, 913, 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, 914, 214, 915, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 916, 917, 918, 919, 920, 921, - 922, 923, 924, 925, 926, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 927, 928, 929, 930, 931, - 932, 933, 243, 934, 935, 936, 937, 938, 939, 940, - 244, 245, 941, 246, 247, 942, 248, 249, 943, 944, - 250, 251, 252, 253, 254, 255, 256, 257, 945, 946, - 947, 258, 948, 949, 950, 951, 952, 953, 954, 955, - 259, 260, 261, 262, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 529, 482, 514, 483, 484, 622, 499, 662, 663, + 625, 3, 4, 667, 668, 500, 501, 529, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 669, 670, 515, + 516, 671, 672, 673, 674, 675, 5, 676, 677, 678, + 679, 680, 6, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 681, 682, 683, 517, 485, 566, 567, + 568, 569, 570, 571, 572, 573, 649, 650, 651, 652, + 653, 654, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 7, 698, 699, 700, + 486, 701, 702, 487, 502, 703, 503, 704, 705, 504, + 706, 707, 488, 708, 8, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 518, 519, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 9, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 774, 775, 776, 777, 520, 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, 809, + 810, 811, 812, 813, 814, 815, 816, 10, 817, 818, + 819, 820, 821, 530, 822, 531, 532, 533, 534, 535, + 823, 824, 825, 826, 827, 536, 828, 829, 11, 830, + 489, 531, 532, 533, 505, 831, 832, 833, 834, 835, + 836, 536, 837, 838, 839, 840, 841, 842, 843, 12, + 844, 845, 846, 847, 537, 538, 848, 849, 13, 550, + 551, 552, 553, 554, 850, 851, 852, 853, 854, 855, + 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 14, 868, 869, 870, 15, 871, 872, 873, + 561, 874, 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, 875, 876, 877, 878, 77, + 78, 79, 879, 880, 881, 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, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 121, 122, 123, 124, 125, + 891, 126, 127, 128, 892, 893, 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, 894, 895, 896, 155, 897, 898, 156, 157, + 158, 159, 160, 161, 162, 899, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 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, 920, 214, 921, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 922, 923, + 924, 925, 926, 927, 928, 929, 930, 931, 932, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 933, + 934, 935, 936, 937, 938, 939, 243, 940, 941, 942, + 943, 944, 945, 946, 244, 245, 947, 246, 247, 948, + 248, 249, 949, 950, 250, 251, 252, 253, 254, 255, + 256, 257, 951, 952, 953, 258, 954, 955, 956, 957, + 958, 959, 960, 961, 259, 260, 261, 262, 962, 963, + 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, + 984, 985, 986, 987, 988, 989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 559, 560, 561 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 562, 563, 564, 565 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 47, 48, 115, 45, 301, 302, - 311, 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, + 0, 45, 45, 45, 47, 48, 115, 45, 303, 304, + 313, 11, 12, 10, 10, 53, 54, 45, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 10, 10, 81, 82, 10, 10, 10, 10, 10, 46, 10, 10, 10, - 10, 10, 52, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 10, 10, 10, 108, 110, 97, 98, - 99, 100, 101, 102, 103, 104, 268, 269, 270, 271, - 272, 273, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 52, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 10, 10, 10, 108, 110, 97, 98, + 99, 100, 101, 102, 103, 104, 270, 271, 272, 273, + 274, 275, 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, + 143, 10, 10, 146, 142, 10, 144, 10, 10, 147, + 10, 10, 155, 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, 10, 187, 188, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 189, 190, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 166, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 168, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 227, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 229, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 225, 10, 10, 10, 10, - 10, 275, 10, 277, 278, 279, 280, 281, 10, 10, - 10, 10, 10, 287, 10, 10, 246, 10, 291, 277, - 278, 279, 290, 10, 10, 10, 10, 10, 10, 287, - 10, 10, 10, 10, 10, 10, 10, 267, 10, 10, - 10, 10, 316, 317, 10, 10, 276, 305, 306, 307, - 308, 309, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 227, 10, 10, + 10, 10, 10, 277, 10, 279, 280, 281, 282, 283, + 10, 10, 10, 10, 10, 289, 10, 10, 248, 10, + 293, 279, 280, 281, 292, 10, 10, 10, 10, 10, + 10, 289, 10, 10, 10, 10, 10, 10, 10, 269, + 10, 10, 10, 10, 318, 319, 10, 10, 278, 307, + 308, 309, 310, 311, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 300, 10, 10, 10, 304, 10, 10, 10, 37, 10, - 310, 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, 302, 10, 10, 10, 306, 10, 10, 10, + 37, 10, 312, 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, 10, 10, 148, 149, + 150, 151, 152, 153, 154, 10, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 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, 244, 245, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 10, 10, 10, 10, 10, - 10, 10, 274, 10, 10, 10, 10, 10, 10, 10, - 282, 283, 10, 285, 286, 10, 288, 289, 10, 10, - 292, 293, 294, 295, 296, 297, 298, 299, 10, 10, - 10, 303, 10, 10, 10, 10, 10, 10, 10, 10, - 312, 313, 314, 315, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 10, 228, 10, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 10, + 10, 10, 10, 10, 10, 10, 276, 10, 10, 10, + 10, 10, 10, 10, 284, 285, 10, 287, 288, 10, + 290, 291, 10, 10, 294, 295, 296, 297, 298, 299, + 300, 301, 10, 10, 10, 305, 10, 10, 10, 10, + 10, 10, 10, 10, 314, 315, 316, 317, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, -1, -1, -1, -1, -1, -1, -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, 37, - 37, 37, 37 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 319, 0, 11, 12, 46, 52, 96, 114, 166, - 225, 246, 267, 276, 300, 304, 310, 320, 321, 322, - 325, 328, 331, 334, 342, 588, 599, 621, 625, 633, - 646, 656, 323, 326, 329, 332, 335, 343, 589, 600, - 622, 626, 634, 647, 657, 13, 14, 15, 16, 17, + 0, 321, 0, 11, 12, 46, 52, 96, 114, 168, + 227, 248, 269, 278, 302, 306, 312, 322, 323, 324, + 327, 330, 333, 336, 344, 592, 603, 625, 629, 637, + 650, 660, 325, 328, 331, 334, 337, 345, 593, 604, + 626, 630, 638, 651, 661, 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, @@ -2039,58 +2728,58 @@ 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, 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, 224, 226, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 274, 282, 283, 285, 286, 288, 289, - 292, 293, 294, 295, 296, 297, 298, 299, 303, 312, - 313, 314, 315, 324, 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, 629, 630, 631, - 632, 655, 45, 47, 48, 110, 143, 153, 291, 327, - 558, 559, 560, 561, 562, 563, 564, 45, 53, 54, - 142, 144, 290, 330, 565, 566, 567, 568, 569, 570, - 45, 81, 82, 108, 187, 188, 227, 333, 581, 582, - 583, 584, 585, 586, 587, 45, 275, 277, 278, 279, - 280, 281, 287, 316, 317, 336, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 305, 306, 307, 308, - 309, 337, 338, 339, 340, 341, 344, 571, 572, 573, - 574, 575, 97, 98, 99, 100, 101, 102, 103, 104, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 115, 623, - 624, 311, 627, 628, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 268, 269, 270, 271, 272, - 273, 648, 649, 650, 651, 652, 653, 654, 301, 302, - 658, 659, 660, 10, 10, 10, 10, 10, 10, 10, + 137, 138, 139, 140, 141, 145, 148, 149, 150, 151, + 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 228, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 276, 284, 285, 287, 288, 290, 291, + 294, 295, 296, 297, 298, 299, 300, 301, 305, 314, + 315, 316, 317, 326, 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, 633, 634, 635, + 636, 659, 45, 47, 48, 110, 143, 146, 155, 293, + 329, 560, 561, 562, 563, 564, 565, 566, 567, 45, + 53, 54, 142, 144, 147, 292, 332, 568, 569, 570, + 571, 572, 573, 574, 45, 81, 82, 108, 189, 190, + 229, 335, 585, 586, 587, 588, 589, 590, 591, 45, + 277, 279, 280, 281, 282, 283, 289, 318, 319, 338, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 307, 308, 309, 310, 311, 339, 340, 341, 342, 343, + 346, 575, 576, 577, 578, 579, 97, 98, 99, 100, + 101, 102, 103, 104, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 115, 627, 628, 313, 631, 632, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 270, + 271, 272, 273, 274, 275, 652, 653, 654, 655, 656, + 657, 658, 303, 304, 662, 663, 664, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -2122,43 +2811,43 @@ static const yytype_int16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 318, 319, 319, 320, 320, 320, 320, 320, 320, - 320, 320, 320, 320, 320, 320, 320, 320, 321, 322, - 323, 323, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 325, 326, 326, 327, 327, 327, 327, 327, 327, 327, - 328, 329, 329, 330, 330, 330, 330, 330, 330, 331, - 332, 332, 333, 333, 333, 333, 333, 333, 333, 334, - 335, 335, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 337, 338, 339, 340, 341, 342, 343, 343, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 0, 320, 321, 321, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, + 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, + 327, 328, 328, 329, 329, 329, 329, 329, 329, 329, + 329, 330, 331, 331, 332, 332, 332, 332, 332, 332, + 332, 333, 334, 334, 335, 335, 335, 335, 335, 335, + 335, 336, 337, 337, 338, 338, 338, 338, 338, 338, + 338, 338, 338, 338, 339, 340, 341, 342, 343, 344, + 345, 345, 346, 346, 346, 346, 346, 346, 346, 346, + 346, 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, @@ -2182,19 +2871,19 @@ static const yytype_int16 yyr1[] = 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, 584, - 585, 586, 587, 588, 589, 589, 590, 590, 590, 590, - 590, 590, 590, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 600, 601, 601, 601, 601, 601, - 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, - 601, 601, 601, 601, 602, 603, 604, 605, 606, 607, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 593, + 594, 594, 594, 594, 594, 594, 594, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 604, 605, + 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, + 605, 605, 605, 605, 605, 605, 605, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 622, 623, 624, 625, 626, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 634, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 647, 648, 648, 648, 648, 648, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 657, 658, - 658, 659, 660 + 618, 619, 620, 621, 622, 623, 624, 625, 626, 626, + 627, 628, 629, 630, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 638, 639, 639, 639, 639, 639, 639, + 639, 639, 639, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 651, 652, 652, 652, + 652, 652, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 661, 662, 662, 663, 664 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2225,11 +2914,12 @@ 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, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 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, 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, - 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, + 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, @@ -2242,31 +2932,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, 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, 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, + 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, 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 + 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 }; @@ -2478,7 +3167,7 @@ yydestruct (const char *yymsg, } -/* Lookahead token kind. */ +/* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -2496,30 +3185,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. */ @@ -2533,6 +3226,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. */ @@ -2733,24 +3435,24 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ -#line 200 "./util/configparser.y" + case 18: +#line 201 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2742 "util/configparser.c" +#line 3444 "util/configparser.c" break; - case 19: /* serverstart: VAR_SERVER */ -#line 206 "./util/configparser.y" + case 19: +#line 207 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2750 "util/configparser.c" +#line 3452 "util/configparser.c" break; - case 240: /* stubstart: VAR_STUB_ZONE */ -#line 313 "./util/configparser.y" + case 240: +#line 314 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2761,11 +3463,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2765 "util/configparser.c" +#line 3467 "util/configparser.c" break; - case 250: /* forwardstart: VAR_FORWARD_ZONE */ -#line 330 "./util/configparser.y" + case 251: +#line 331 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2776,11 +3478,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2780 "util/configparser.c" +#line 3482 "util/configparser.c" break; - case 259: /* viewstart: VAR_VIEW */ -#line 347 "./util/configparser.y" + case 261: +#line 348 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2793,11 +3495,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2797 "util/configparser.c" +#line 3499 "util/configparser.c" break; - case 269: /* authstart: VAR_AUTH_ZONE */ -#line 366 "./util/configparser.y" + case 271: +#line 367 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2815,11 +3517,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2819 "util/configparser.c" +#line 3521 "util/configparser.c" break; - case 282: /* rpz_tag: VAR_TAGS STRING_ARG */ -#line 392 "./util/configparser.y" + case 284: +#line 393 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2836,11 +3538,11 @@ yyreduce: } } -#line 2840 "util/configparser.c" +#line 3542 "util/configparser.c" break; - case 283: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ -#line 411 "./util/configparser.y" + case 285: +#line 412 "./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 && @@ -2855,21 +3557,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2859 "util/configparser.c" +#line 3561 "util/configparser.c" break; - case 284: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ -#line 428 "./util/configparser.y" + case 286: +#line 429 "./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 2869 "util/configparser.c" +#line 3571 "util/configparser.c" break; - case 285: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ -#line 436 "./util/configparser.y" + case 287: +#line 437 "./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) @@ -2877,21 +3579,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2881 "util/configparser.c" +#line 3583 "util/configparser.c" break; - case 286: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ -#line 446 "./util/configparser.y" + case 288: +#line 447 "./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 2891 "util/configparser.c" +#line 3593 "util/configparser.c" break; - case 287: /* rpzstart: VAR_RPZ */ -#line 454 "./util/configparser.y" + case 289: +#line 455 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2907,11 +3609,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2911 "util/configparser.c" +#line 3613 "util/configparser.c" break; - case 300: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ -#line 477 "./util/configparser.y" + case 302: +#line 478 "./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) @@ -2919,11 +3621,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2923 "util/configparser.c" +#line 3625 "util/configparser.c" break; - case 301: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ -#line 486 "./util/configparser.y" + case 303: +#line 487 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2931,11 +3633,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2935 "util/configparser.c" +#line 3637 "util/configparser.c" break; - case 302: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ -#line 495 "./util/configparser.y" + case 304: +#line 496 "./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) @@ -2945,11 +3647,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2949 "util/configparser.c" +#line 3651 "util/configparser.c" break; - case 303: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ -#line 506 "./util/configparser.y" + case 305: +#line 507 "./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) @@ -2957,11 +3659,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2961 "util/configparser.c" +#line 3663 "util/configparser.c" break; - case 304: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ -#line 515 "./util/configparser.y" + case 306: +#line 516 "./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) @@ -2969,11 +3671,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2973 "util/configparser.c" +#line 3675 "util/configparser.c" break; - case 305: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ -#line 524 "./util/configparser.y" + case 307: +#line 525 "./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) @@ -2981,11 +3683,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2985 "util/configparser.c" +#line 3687 "util/configparser.c" break; - case 306: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ -#line 533 "./util/configparser.y" + case 308: +#line 534 "./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) @@ -2995,11 +3697,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2999 "util/configparser.c" +#line 3701 "util/configparser.c" break; - case 307: /* server_port: VAR_PORT STRING_ARG */ -#line 544 "./util/configparser.y" + case 309: +#line 545 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3007,11 +3709,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3011 "util/configparser.c" +#line 3713 "util/configparser.c" break; - case 308: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ -#line 553 "./util/configparser.y" + case 310: +#line 554 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3022,11 +3724,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3026 "util/configparser.c" +#line 3728 "util/configparser.c" break; - case 309: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ -#line 565 "./util/configparser.y" + case 311: +#line 566 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3038,11 +3740,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3042 "util/configparser.c" +#line 3744 "util/configparser.c" break; - case 310: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ -#line 579 "./util/configparser.y" + case 312: +#line 580 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3056,11 +3758,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3060 "util/configparser.c" +#line 3762 "util/configparser.c" break; - case 311: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ -#line 594 "./util/configparser.y" + case 313: +#line 595 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3070,11 +3772,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3074 "util/configparser.c" +#line 3776 "util/configparser.c" break; - case 312: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 605 "./util/configparser.y" + case 314: +#line 606 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3090,11 +3792,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3094 "util/configparser.c" +#line 3796 "util/configparser.c" break; - case 313: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 622 "./util/configparser.y" + case 315: +#line 623 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3110,11 +3812,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3114 "util/configparser.c" +#line 3816 "util/configparser.c" break; - case 314: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 639 "./util/configparser.y" + case 316: +#line 640 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3130,11 +3832,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3134 "util/configparser.c" +#line 3836 "util/configparser.c" break; - case 315: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 656 "./util/configparser.y" + case 317: +#line 657 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3150,11 +3852,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3154 "util/configparser.c" +#line 3856 "util/configparser.c" break; - case 316: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ -#line 673 "./util/configparser.y" + case 318: +#line 674 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3168,11 +3870,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3172 "util/configparser.c" +#line 3874 "util/configparser.c" break; - case 317: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ -#line 688 "./util/configparser.y" + case 319: +#line 689 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3186,11 +3888,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3190 "util/configparser.c" +#line 3892 "util/configparser.c" break; - case 318: /* server_interface: VAR_INTERFACE STRING_ARG */ -#line 703 "./util/configparser.y" + case 320: +#line 704 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3202,11 +3904,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3206 "util/configparser.c" +#line 3908 "util/configparser.c" break; - case 319: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ -#line 716 "./util/configparser.y" + case 321: +#line 717 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3220,11 +3922,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3224 "util/configparser.c" +#line 3926 "util/configparser.c" break; - case 320: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ -#line 731 "./util/configparser.y" + case 322: +#line 732 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3232,11 +3934,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3236 "util/configparser.c" +#line 3938 "util/configparser.c" break; - case 321: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ -#line 740 "./util/configparser.y" + case 323: +#line 741 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3244,11 +3946,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3248 "util/configparser.c" +#line 3950 "util/configparser.c" break; - case 322: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ -#line 749 "./util/configparser.y" + case 324: +#line 750 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3256,11 +3958,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3260 "util/configparser.c" +#line 3962 "util/configparser.c" break; - case 323: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ -#line 758 "./util/configparser.y" + case 325: +#line 759 "./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) @@ -3268,11 +3970,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3272 "util/configparser.c" +#line 3974 "util/configparser.c" break; - case 324: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ -#line 767 "./util/configparser.y" + case 326: +#line 768 "./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) @@ -3280,11 +3982,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3284 "util/configparser.c" +#line 3986 "util/configparser.c" break; - case 325: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ -#line 776 "./util/configparser.y" + case 327: +#line 777 "./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) @@ -3292,11 +3994,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3296 "util/configparser.c" +#line 3998 "util/configparser.c" break; - case 326: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ -#line 785 "./util/configparser.y" + case 328: +#line 786 "./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) @@ -3304,11 +4006,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3308 "util/configparser.c" +#line 4010 "util/configparser.c" break; - case 327: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ -#line 794 "./util/configparser.y" + case 329: +#line 795 "./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) @@ -3316,11 +4018,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3320 "util/configparser.c" +#line 4022 "util/configparser.c" break; - case 328: /* server_do_udp: VAR_DO_UDP STRING_ARG */ -#line 803 "./util/configparser.y" + case 330: +#line 804 "./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) @@ -3328,11 +4030,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3332 "util/configparser.c" +#line 4034 "util/configparser.c" break; - case 329: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ -#line 812 "./util/configparser.y" + case 331: +#line 813 "./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) @@ -3340,11 +4042,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3344 "util/configparser.c" +#line 4046 "util/configparser.c" break; - case 330: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ -#line 821 "./util/configparser.y" + case 332: +#line 822 "./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) @@ -3352,11 +4054,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3356 "util/configparser.c" +#line 4058 "util/configparser.c" break; - case 331: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ -#line 830 "./util/configparser.y" + case 333: +#line 831 "./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) @@ -3364,11 +4066,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3368 "util/configparser.c" +#line 4070 "util/configparser.c" break; - case 332: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ -#line 839 "./util/configparser.y" + case 334: +#line 840 "./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) @@ -3376,11 +4078,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3380 "util/configparser.c" +#line 4082 "util/configparser.c" break; - case 333: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ -#line 848 "./util/configparser.y" + case 335: +#line 849 "./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) @@ -3388,11 +4090,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3392 "util/configparser.c" +#line 4094 "util/configparser.c" break; - case 334: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ -#line 857 "./util/configparser.y" + case 336: +#line 858 "./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) @@ -3404,11 +4106,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3408 "util/configparser.c" +#line 4110 "util/configparser.c" break; - case 335: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ -#line 870 "./util/configparser.y" + case 337: +#line 871 "./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) @@ -3418,11 +4120,11 @@ yyreduce: else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3422 "util/configparser.c" +#line 4124 "util/configparser.c" break; - case 336: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ -#line 881 "./util/configparser.y" + case 338: +#line 882 "./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) @@ -3432,11 +4134,11 @@ yyreduce: else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3436 "util/configparser.c" +#line 4138 "util/configparser.c" break; - case 337: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */ -#line 892 "./util/configparser.y" + case 339: +#line 893 "./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) @@ -3446,11 +4148,11 @@ yyreduce: else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3450 "util/configparser.c" +#line 4152 "util/configparser.c" break; - case 338: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ -#line 903 "./util/configparser.y" + case 340: +#line 904 "./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) @@ -3458,11 +4160,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3462 "util/configparser.c" +#line 4164 "util/configparser.c" break; - case 339: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ -#line 912 "./util/configparser.y" + case 341: +#line 913 "./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) @@ -3474,11 +4176,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3478 "util/configparser.c" +#line 4180 "util/configparser.c" break; - case 340: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ -#line 925 "./util/configparser.y" + case 342: +#line 926 "./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) @@ -3486,11 +4188,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3490 "util/configparser.c" +#line 4192 "util/configparser.c" break; - case 341: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ -#line 934 "./util/configparser.y" + case 343: +#line 935 "./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) @@ -3498,11 +4200,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3502 "util/configparser.c" +#line 4204 "util/configparser.c" break; - case 342: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ -#line 943 "./util/configparser.y" + case 344: +#line 944 "./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) @@ -3510,31 +4212,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3514 "util/configparser.c" +#line 4216 "util/configparser.c" break; - case 343: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ -#line 952 "./util/configparser.y" + case 345: +#line 953 "./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 3524 "util/configparser.c" +#line 4226 "util/configparser.c" break; - case 344: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ -#line 959 "./util/configparser.y" + case 346: +#line 960 "./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 3534 "util/configparser.c" +#line 4236 "util/configparser.c" break; - case 345: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ -#line 966 "./util/configparser.y" + case 347: +#line 967 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3542,21 +4244,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3546 "util/configparser.c" +#line 4248 "util/configparser.c" break; - case 346: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ -#line 975 "./util/configparser.y" + case 348: +#line 976 "./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 3556 "util/configparser.c" +#line 4258 "util/configparser.c" break; - case 347: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ -#line 982 "./util/configparser.y" + case 349: +#line 983 "./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) @@ -3564,53 +4266,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3568 "util/configparser.c" +#line 4270 "util/configparser.c" break; - case 348: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ -#line 991 "./util/configparser.y" + case 350: +#line 992 "./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 3579 "util/configparser.c" +#line 4281 "util/configparser.c" break; - case 349: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ -#line 999 "./util/configparser.y" + case 351: +#line 1000 "./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 3589 "util/configparser.c" +#line 4291 "util/configparser.c" break; - case 350: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ -#line 1006 "./util/configparser.y" + case 352: +#line 1007 "./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 3599 "util/configparser.c" +#line 4301 "util/configparser.c" break; - case 351: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ -#line 1013 "./util/configparser.y" + case 353: +#line 1014 "./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 3610 "util/configparser.c" +#line 4312 "util/configparser.c" break; - case 352: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ -#line 1021 "./util/configparser.y" + case 354: +#line 1022 "./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) @@ -3618,11 +4320,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3622 "util/configparser.c" +#line 4324 "util/configparser.c" break; - case 353: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ -#line 1030 "./util/configparser.y" + case 355: +#line 1031 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3630,11 +4332,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3634 "util/configparser.c" +#line 4336 "util/configparser.c" break; - case 354: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ -#line 1038 "./util/configparser.y" + case 356: +#line 1039 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3650,11 +4352,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3654 "util/configparser.c" +#line 4356 "util/configparser.c" break; - case 355: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ -#line 1054 "./util/configparser.y" + case 357: +#line 1055 "./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) @@ -3662,11 +4364,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3666 "util/configparser.c" +#line 4368 "util/configparser.c" break; - case 356: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ -#line 1062 "./util/configparser.y" + case 358: +#line 1063 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3674,11 +4376,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3678 "util/configparser.c" +#line 4380 "util/configparser.c" break; - case 357: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ -#line 1070 "./util/configparser.y" + case 359: +#line 1071 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3686,11 +4388,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3690 "util/configparser.c" +#line 4392 "util/configparser.c" break; - case 358: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ -#line 1078 "./util/configparser.y" + case 360: +#line 1079 "./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) @@ -3698,11 +4400,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3702 "util/configparser.c" +#line 4404 "util/configparser.c" break; - case 359: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ -#line 1086 "./util/configparser.y" + case 361: +#line 1087 "./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) @@ -3710,11 +4412,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3714 "util/configparser.c" +#line 4416 "util/configparser.c" break; - case 360: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ -#line 1094 "./util/configparser.y" + case 362: +#line 1095 "./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) @@ -3722,11 +4424,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3726 "util/configparser.c" +#line 4428 "util/configparser.c" break; - case 361: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ -#line 1103 "./util/configparser.y" + case 363: +#line 1104 "./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) @@ -3734,11 +4436,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3738 "util/configparser.c" +#line 4440 "util/configparser.c" break; - case 362: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ -#line 1112 "./util/configparser.y" + case 364: +#line 1113 "./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) @@ -3751,11 +4453,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3755 "util/configparser.c" +#line 4457 "util/configparser.c" break; - case 363: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ -#line 1126 "./util/configparser.y" + case 365: +#line 1127 "./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) @@ -3763,11 +4465,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3767 "util/configparser.c" +#line 4469 "util/configparser.c" break; - case 364: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ -#line 1135 "./util/configparser.y" + case 366: +#line 1136 "./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) @@ -3775,11 +4477,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3779 "util/configparser.c" +#line 4481 "util/configparser.c" break; - case 365: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ -#line 1144 "./util/configparser.y" + case 367: +#line 1145 "./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) @@ -3787,11 +4489,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3791 "util/configparser.c" +#line 4493 "util/configparser.c" break; - case 366: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ -#line 1153 "./util/configparser.y" + case 368: +#line 1154 "./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) @@ -3799,11 +4501,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3803 "util/configparser.c" +#line 4505 "util/configparser.c" break; - case 367: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ -#line 1162 "./util/configparser.y" + case 369: +#line 1163 "./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) @@ -3811,11 +4513,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3815 "util/configparser.c" +#line 4517 "util/configparser.c" break; - case 368: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ -#line 1171 "./util/configparser.y" + case 370: +#line 1172 "./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) @@ -3823,31 +4525,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3827 "util/configparser.c" +#line 4529 "util/configparser.c" break; - case 369: /* server_chroot: VAR_CHROOT STRING_ARG */ -#line 1180 "./util/configparser.y" + case 371: +#line 1181 "./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 3837 "util/configparser.c" +#line 4539 "util/configparser.c" break; - case 370: /* server_username: VAR_USERNAME STRING_ARG */ -#line 1187 "./util/configparser.y" + case 372: +#line 1188 "./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 3847 "util/configparser.c" +#line 4549 "util/configparser.c" break; - case 371: /* server_directory: VAR_DIRECTORY STRING_ARG */ -#line 1194 "./util/configparser.y" + case 373: +#line 1195 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3872,105 +4574,105 @@ yyreduce: } } } -#line 3876 "util/configparser.c" +#line 4578 "util/configparser.c" break; - case 372: /* server_logfile: VAR_LOGFILE STRING_ARG */ -#line 1220 "./util/configparser.y" + case 374: +#line 1221 "./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 3887 "util/configparser.c" +#line 4589 "util/configparser.c" break; - case 373: /* server_pidfile: VAR_PIDFILE STRING_ARG */ -#line 1228 "./util/configparser.y" + case 375: +#line 1229 "./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 3897 "util/configparser.c" +#line 4599 "util/configparser.c" break; - case 374: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ -#line 1235 "./util/configparser.y" + case 376: +#line 1236 "./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 3907 "util/configparser.c" +#line 4609 "util/configparser.c" break; - case 375: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ -#line 1242 "./util/configparser.y" + case 377: +#line 1243 "./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 3917 "util/configparser.c" +#line 4619 "util/configparser.c" break; - case 376: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ -#line 1249 "./util/configparser.y" + case 378: +#line 1250 "./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 3927 "util/configparser.c" +#line 4629 "util/configparser.c" break; - case 377: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1256 "./util/configparser.y" + case 379: +#line 1257 "./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 3938 "util/configparser.c" +#line 4640 "util/configparser.c" break; - case 378: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1264 "./util/configparser.y" + case 380: +#line 1265 "./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 3949 "util/configparser.c" +#line 4651 "util/configparser.c" break; - case 379: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ -#line 1272 "./util/configparser.y" + case 381: +#line 1273 "./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 3960 "util/configparser.c" +#line 4662 "util/configparser.c" break; - case 380: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ -#line 1280 "./util/configparser.y" + case 382: +#line 1281 "./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 3970 "util/configparser.c" +#line 4672 "util/configparser.c" break; - case 381: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ -#line 1287 "./util/configparser.y" + case 383: +#line 1288 "./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) @@ -3980,11 +4682,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3984 "util/configparser.c" +#line 4686 "util/configparser.c" break; - case 382: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ -#line 1298 "./util/configparser.y" + case 384: +#line 1299 "./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) @@ -3994,21 +4696,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3998 "util/configparser.c" +#line 4700 "util/configparser.c" break; - case 383: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ -#line 1309 "./util/configparser.y" + case 385: +#line 1310 "./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 4008 "util/configparser.c" +#line 4710 "util/configparser.c" break; - case 384: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ -#line 1316 "./util/configparser.y" + case 386: +#line 1317 "./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) @@ -4016,11 +4718,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4020 "util/configparser.c" +#line 4722 "util/configparser.c" break; - case 385: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ -#line 1325 "./util/configparser.y" + case 387: +#line 1326 "./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) @@ -4028,11 +4730,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4032 "util/configparser.c" +#line 4734 "util/configparser.c" break; - case 386: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ -#line 1334 "./util/configparser.y" + case 388: +#line 1335 "./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) @@ -4040,11 +4742,11 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4044 "util/configparser.c" +#line 4746 "util/configparser.c" break; - case 387: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */ -#line 1343 "./util/configparser.y" + case 389: +#line 1344 "./util/configparser.y" { OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4052,41 +4754,41 @@ yyreduce: else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4056 "util/configparser.c" +#line 4758 "util/configparser.c" break; - case 388: /* server_identity: VAR_IDENTITY STRING_ARG */ -#line 1352 "./util/configparser.y" + case 390: +#line 1353 "./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 4066 "util/configparser.c" +#line 4768 "util/configparser.c" break; - case 389: /* server_version: VAR_VERSION STRING_ARG */ -#line 1359 "./util/configparser.y" + case 391: +#line 1360 "./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 4076 "util/configparser.c" +#line 4778 "util/configparser.c" break; - case 390: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */ -#line 1366 "./util/configparser.y" + case 392: +#line 1367 "./util/configparser.y" { OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_user_agent); cfg_parser->cfg->http_user_agent = (yyvsp[0].str); } -#line 4086 "util/configparser.c" +#line 4788 "util/configparser.c" break; - case 391: /* server_nsid: VAR_NSID STRING_ARG */ -#line 1373 "./util/configparser.y" + case 393: +#line 1374 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -4101,33 +4803,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4105 "util/configparser.c" +#line 4807 "util/configparser.c" break; - case 392: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ -#line 1389 "./util/configparser.y" + case 394: +#line 1390 "./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 4116 "util/configparser.c" +#line 4818 "util/configparser.c" break; - case 393: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ -#line 1397 "./util/configparser.y" + case 395: +#line 1398 "./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 4127 "util/configparser.c" +#line 4829 "util/configparser.c" break; - case 394: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ -#line 1405 "./util/configparser.y" + case 396: +#line 1406 "./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) @@ -4136,11 +4838,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4140 "util/configparser.c" +#line 4842 "util/configparser.c" break; - case 395: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ -#line 1415 "./util/configparser.y" + case 397: +#line 1416 "./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) @@ -4149,11 +4851,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4153 "util/configparser.c" +#line 4855 "util/configparser.c" break; - case 396: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ -#line 1425 "./util/configparser.y" + case 398: +#line 1426 "./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) @@ -4162,11 +4864,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4166 "util/configparser.c" +#line 4868 "util/configparser.c" break; - case 397: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ -#line 1435 "./util/configparser.y" + case 399: +#line 1436 "./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) @@ -4179,22 +4881,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4183 "util/configparser.c" +#line 4885 "util/configparser.c" break; - case 398: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ -#line 1449 "./util/configparser.y" + case 400: +#line 1450 "./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 4194 "util/configparser.c" +#line 4896 "util/configparser.c" break; - case 399: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ -#line 1457 "./util/configparser.y" + case 401: +#line 1458 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4206,11 +4908,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4210 "util/configparser.c" +#line 4912 "util/configparser.c" break; - case 400: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ -#line 1470 "./util/configparser.y" + case 402: +#line 1471 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4220,22 +4922,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4224 "util/configparser.c" +#line 4926 "util/configparser.c" break; - case 401: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ -#line 1481 "./util/configparser.y" + case 403: +#line 1482 "./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 4235 "util/configparser.c" +#line 4937 "util/configparser.c" break; - case 402: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ -#line 1489 "./util/configparser.y" + case 404: +#line 1490 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4247,11 +4949,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4251 "util/configparser.c" +#line 4953 "util/configparser.c" break; - case 403: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ -#line 1502 "./util/configparser.y" + case 405: +#line 1503 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4259,11 +4961,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4263 "util/configparser.c" +#line 4965 "util/configparser.c" break; - case 404: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ -#line 1511 "./util/configparser.y" + case 406: +#line 1512 "./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) @@ -4271,11 +4973,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4275 "util/configparser.c" +#line 4977 "util/configparser.c" break; - case 405: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ -#line 1520 "./util/configparser.y" + case 407: +#line 1521 "./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) @@ -4283,11 +4985,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4287 "util/configparser.c" +#line 4989 "util/configparser.c" break; - case 406: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ -#line 1529 "./util/configparser.y" + case 408: +#line 1530 "./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) @@ -4295,11 +4997,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4299 "util/configparser.c" +#line 5001 "util/configparser.c" break; - case 407: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ -#line 1538 "./util/configparser.y" + case 409: +#line 1539 "./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) @@ -4308,11 +5010,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4312 "util/configparser.c" +#line 5014 "util/configparser.c" break; - case 408: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ -#line 1548 "./util/configparser.y" + case 410: +#line 1549 "./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) @@ -4321,22 +5023,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4325 "util/configparser.c" +#line 5027 "util/configparser.c" break; - case 409: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ -#line 1558 "./util/configparser.y" + case 411: +#line 1559 "./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 4336 "util/configparser.c" +#line 5038 "util/configparser.c" break; - case 410: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ -#line 1566 "./util/configparser.y" + case 412: +#line 1567 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4348,11 +5050,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4352 "util/configparser.c" +#line 5054 "util/configparser.c" break; - case 411: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ -#line 1579 "./util/configparser.y" + case 413: +#line 1580 "./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) @@ -4360,22 +5062,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4364 "util/configparser.c" +#line 5066 "util/configparser.c" break; - case 412: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ -#line 1588 "./util/configparser.y" + case 414: +#line 1589 "./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 4375 "util/configparser.c" +#line 5077 "util/configparser.c" break; - case 413: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ -#line 1596 "./util/configparser.y" + case 415: +#line 1597 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4383,22 +5085,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4387 "util/configparser.c" +#line 5089 "util/configparser.c" break; - case 414: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ -#line 1605 "./util/configparser.y" + case 416: +#line 1606 "./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 4398 "util/configparser.c" +#line 5100 "util/configparser.c" break; - case 415: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ -#line 1613 "./util/configparser.y" + case 417: +#line 1614 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4410,11 +5112,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4414 "util/configparser.c" +#line 5116 "util/configparser.c" break; - case 416: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ -#line 1626 "./util/configparser.y" + case 418: +#line 1627 "./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) @@ -4422,11 +5124,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4426 "util/configparser.c" +#line 5128 "util/configparser.c" break; - case 417: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ -#line 1635 "./util/configparser.y" + case 419: +#line 1636 "./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) @@ -4435,21 +5137,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4439 "util/configparser.c" +#line 5141 "util/configparser.c" break; - case 418: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ -#line 1645 "./util/configparser.y" + case 420: +#line 1646 "./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 4449 "util/configparser.c" +#line 5151 "util/configparser.c" break; - case 419: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ -#line 1652 "./util/configparser.y" + case 421: +#line 1653 "./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) @@ -4458,11 +5160,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4462 "util/configparser.c" +#line 5164 "util/configparser.c" break; - case 420: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ -#line 1662 "./util/configparser.y" + case 422: +#line 1663 "./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) @@ -4471,11 +5173,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4475 "util/configparser.c" +#line 5177 "util/configparser.c" break; - case 421: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ -#line 1672 "./util/configparser.y" + case 423: +#line 1673 "./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) @@ -4484,11 +5186,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4488 "util/configparser.c" +#line 5190 "util/configparser.c" break; - case 422: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ -#line 1682 "./util/configparser.y" + case 424: +#line 1683 "./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) @@ -4497,11 +5199,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4501 "util/configparser.c" +#line 5203 "util/configparser.c" break; - case 423: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ -#line 1692 "./util/configparser.y" + case 425: +#line 1693 "./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) @@ -4510,11 +5212,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4514 "util/configparser.c" +#line 5216 "util/configparser.c" break; - case 424: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ -#line 1702 "./util/configparser.y" + case 426: +#line 1703 "./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) @@ -4523,11 +5225,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4527 "util/configparser.c" +#line 5229 "util/configparser.c" break; - case 425: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ -#line 1712 "./util/configparser.y" + case 427: +#line 1713 "./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) @@ -4536,11 +5238,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4540 "util/configparser.c" +#line 5242 "util/configparser.c" break; - case 426: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ -#line 1722 "./util/configparser.y" + case 428: +#line 1723 "./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) @@ -4549,41 +5251,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4553 "util/configparser.c" +#line 5255 "util/configparser.c" break; - case 427: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ -#line 1732 "./util/configparser.y" + case 429: +#line 1733 "./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 4563 "util/configparser.c" +#line 5265 "util/configparser.c" break; - case 428: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ -#line 1739 "./util/configparser.y" + case 430: +#line 1740 "./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 4573 "util/configparser.c" +#line 5275 "util/configparser.c" break; - case 429: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ -#line 1746 "./util/configparser.y" + case 431: +#line 1747 "./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 4583 "util/configparser.c" +#line 5285 "util/configparser.c" break; - case 430: /* server_prefetch: VAR_PREFETCH STRING_ARG */ -#line 1753 "./util/configparser.y" + case 432: +#line 1754 "./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) @@ -4591,11 +5293,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4595 "util/configparser.c" +#line 5297 "util/configparser.c" break; - case 431: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ -#line 1762 "./util/configparser.y" + case 433: +#line 1763 "./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) @@ -4603,11 +5305,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4607 "util/configparser.c" +#line 5309 "util/configparser.c" break; - case 432: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ -#line 1771 "./util/configparser.y" + case 434: +#line 1772 "./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) @@ -4615,11 +5317,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4619 "util/configparser.c" +#line 5321 "util/configparser.c" break; - case 433: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ -#line 1780 "./util/configparser.y" + case 435: +#line 1781 "./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) @@ -4627,21 +5329,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4631 "util/configparser.c" +#line 5333 "util/configparser.c" break; - case 434: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ -#line 1789 "./util/configparser.y" + case 436: +#line 1790 "./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 4641 "util/configparser.c" +#line 5343 "util/configparser.c" break; - case 435: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ -#line 1796 "./util/configparser.y" + case 437: +#line 1797 "./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) @@ -4650,11 +5352,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4654 "util/configparser.c" +#line 5356 "util/configparser.c" break; - case 436: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ -#line 1806 "./util/configparser.y" + case 438: +#line 1807 "./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 && @@ -4673,21 +5375,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4677 "util/configparser.c" +#line 5379 "util/configparser.c" break; - case 437: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ -#line 1826 "./util/configparser.y" + case 439: +#line 1827 "./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 4687 "util/configparser.c" +#line 5389 "util/configparser.c" break; - case 438: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ -#line 1833 "./util/configparser.y" + case 440: +#line 1834 "./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) { @@ -4704,11 +5406,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4708 "util/configparser.c" +#line 5410 "util/configparser.c" break; - case 439: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ -#line 1851 "./util/configparser.y" + case 441: +#line 1852 "./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) { @@ -4720,11 +5422,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4724 "util/configparser.c" +#line 5426 "util/configparser.c" break; - case 440: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ -#line 1864 "./util/configparser.y" + case 442: +#line 1865 "./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) { @@ -4736,11 +5438,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4740 "util/configparser.c" +#line 5442 "util/configparser.c" break; - case 441: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */ -#line 1877 "./util/configparser.y" + case 443: +#line 1878 "./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) { @@ -4752,11 +5454,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4756 "util/configparser.c" +#line 5458 "util/configparser.c" break; - case 442: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ -#line 1890 "./util/configparser.y" + case 444: +#line 1891 "./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) @@ -4764,11 +5466,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4768 "util/configparser.c" +#line 5470 "util/configparser.c" break; - case 443: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ -#line 1899 "./util/configparser.y" + case 445: +#line 1900 "./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) @@ -4776,11 +5478,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4780 "util/configparser.c" +#line 5482 "util/configparser.c" break; - case 444: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ -#line 1908 "./util/configparser.y" + case 446: +#line 1909 "./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) @@ -4788,11 +5490,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4792 "util/configparser.c" +#line 5494 "util/configparser.c" break; - case 445: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ -#line 1917 "./util/configparser.y" + case 447: +#line 1918 "./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) @@ -4800,11 +5502,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4804 "util/configparser.c" +#line 5506 "util/configparser.c" break; - case 446: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ -#line 1926 "./util/configparser.y" + case 448: +#line 1927 "./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) @@ -4813,11 +5515,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4817 "util/configparser.c" +#line 5519 "util/configparser.c" break; - case 447: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ -#line 1936 "./util/configparser.y" + case 449: +#line 1937 "./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) @@ -4826,11 +5528,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4830 "util/configparser.c" +#line 5532 "util/configparser.c" break; - case 448: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ -#line 1946 "./util/configparser.y" + case 450: +#line 1947 "./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) @@ -4840,11 +5542,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4844 "util/configparser.c" +#line 5546 "util/configparser.c" break; - case 449: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ -#line 1957 "./util/configparser.y" + case 451: +#line 1958 "./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) @@ -4852,11 +5554,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4856 "util/configparser.c" +#line 5558 "util/configparser.c" break; - case 450: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ -#line 1966 "./util/configparser.y" + case 452: +#line 1967 "./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) @@ -4864,11 +5566,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4868 "util/configparser.c" +#line 5570 "util/configparser.c" break; - case 451: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ -#line 1975 "./util/configparser.y" + case 453: +#line 1976 "./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) @@ -4876,11 +5578,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4880 "util/configparser.c" +#line 5582 "util/configparser.c" break; - case 452: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ -#line 1984 "./util/configparser.y" + case 454: +#line 1985 "./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) @@ -4888,11 +5590,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4892 "util/configparser.c" +#line 5594 "util/configparser.c" break; - case 453: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ -#line 1993 "./util/configparser.y" + case 455: +#line 1994 "./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) @@ -4900,11 +5602,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4904 "util/configparser.c" +#line 5606 "util/configparser.c" break; - case 454: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ -#line 2002 "./util/configparser.y" + case 456: +#line 2003 "./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) @@ -4912,11 +5614,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4916 "util/configparser.c" +#line 5618 "util/configparser.c" break; - case 455: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ -#line 2011 "./util/configparser.y" + case 457: +#line 2012 "./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) @@ -4924,11 +5626,11 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4928 "util/configparser.c" +#line 5630 "util/configparser.c" break; - case 456: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ -#line 2020 "./util/configparser.y" + case 458: +#line 2021 "./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) @@ -4940,11 +5642,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4944 "util/configparser.c" +#line 5646 "util/configparser.c" break; - case 457: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ -#line 2033 "./util/configparser.y" + case 459: +#line 2034 "./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) @@ -4956,11 +5658,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4960 "util/configparser.c" +#line 5662 "util/configparser.c" break; - case 458: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ -#line 2046 "./util/configparser.y" + case 460: +#line 2047 "./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) @@ -4968,21 +5670,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4972 "util/configparser.c" +#line 5674 "util/configparser.c" break; - case 459: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ -#line 2055 "./util/configparser.y" + case 461: +#line 2056 "./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 4982 "util/configparser.c" +#line 5684 "util/configparser.c" break; - case 460: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ -#line 2062 "./util/configparser.y" + case 462: +#line 2063 "./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) @@ -4990,11 +5692,11 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4994 "util/configparser.c" +#line 5696 "util/configparser.c" break; - case 461: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ -#line 2071 "./util/configparser.y" + case 463: +#line 2072 "./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) @@ -5002,11 +5704,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5006 "util/configparser.c" +#line 5708 "util/configparser.c" break; - case 462: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ -#line 2080 "./util/configparser.y" + case 464: +#line 2081 "./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) @@ -5014,11 +5716,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5018 "util/configparser.c" +#line 5720 "util/configparser.c" break; - case 463: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ -#line 2089 "./util/configparser.y" + case 465: +#line 2090 "./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) @@ -5026,11 +5728,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5030 "util/configparser.c" +#line 5732 "util/configparser.c" break; - case 464: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ -#line 2098 "./util/configparser.y" + case 466: +#line 2099 "./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) @@ -5039,22 +5741,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5043 "util/configparser.c" +#line 5745 "util/configparser.c" break; - case 465: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ -#line 2107 "./util/configparser.y" + case 467: +#line 2108 "./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 5054 "util/configparser.c" +#line 5756 "util/configparser.c" break; - case 466: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ -#line 2115 "./util/configparser.y" + case 468: +#line 2116 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5066,22 +5768,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5070 "util/configparser.c" +#line 5772 "util/configparser.c" break; - case 467: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ -#line 2128 "./util/configparser.y" + case 469: +#line 2129 "./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 5081 "util/configparser.c" +#line 5783 "util/configparser.c" break; - case 468: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2136 "./util/configparser.y" + case 470: +#line 2137 "./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 && @@ -5125,21 +5827,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5129 "util/configparser.c" +#line 5831 "util/configparser.c" break; - case 469: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2181 "./util/configparser.y" + case 471: +#line 2182 "./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 5139 "util/configparser.c" +#line 5841 "util/configparser.c" break; - case 470: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2188 "./util/configparser.y" + case 472: +#line 2189 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5153,11 +5855,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5157 "util/configparser.c" +#line 5859 "util/configparser.c" break; - case 471: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ -#line 2203 "./util/configparser.y" + case 473: +#line 2204 "./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) @@ -5166,11 +5868,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5170 "util/configparser.c" +#line 5872 "util/configparser.c" break; - case 472: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ -#line 2213 "./util/configparser.y" + case 474: +#line 2214 "./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) @@ -5179,41 +5881,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5183 "util/configparser.c" +#line 5885 "util/configparser.c" break; - case 473: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ -#line 2223 "./util/configparser.y" + case 475: +#line 2224 "./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 5193 "util/configparser.c" +#line 5895 "util/configparser.c" break; - case 474: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ -#line 2230 "./util/configparser.y" + case 476: +#line 2231 "./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 5203 "util/configparser.c" +#line 5905 "util/configparser.c" break; - case 475: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ -#line 2237 "./util/configparser.y" + case 477: +#line 2238 "./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 5213 "util/configparser.c" +#line 5915 "util/configparser.c" break; - case 476: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ -#line 2244 "./util/configparser.y" + case 478: +#line 2245 "./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) @@ -5221,22 +5923,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5225 "util/configparser.c" +#line 5927 "util/configparser.c" break; - case 477: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ -#line 2253 "./util/configparser.y" + case 479: +#line 2254 "./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 5236 "util/configparser.c" +#line 5938 "util/configparser.c" break; - case 478: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ -#line 2261 "./util/configparser.y" + case 480: +#line 2262 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5249,11 +5951,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5253 "util/configparser.c" +#line 5955 "util/configparser.c" break; - case 479: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ -#line 2275 "./util/configparser.y" + case 481: +#line 2276 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5273,11 +5975,11 @@ yyreduce: } } } -#line 5277 "util/configparser.c" +#line 5979 "util/configparser.c" break; - case 480: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ -#line 2296 "./util/configparser.y" + case 482: +#line 2297 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5297,11 +5999,11 @@ yyreduce: } } } -#line 5301 "util/configparser.c" +#line 6003 "util/configparser.c" break; - case 481: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ -#line 2317 "./util/configparser.y" + case 483: +#line 2318 "./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, @@ -5312,11 +6014,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5316 "util/configparser.c" +#line 6018 "util/configparser.c" break; - case 482: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ -#line 2329 "./util/configparser.y" + case 484: +#line 2330 "./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, @@ -5327,11 +6029,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5331 "util/configparser.c" +#line 6033 "util/configparser.c" break; - case 483: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ -#line 2341 "./util/configparser.y" + case 485: +#line 2342 "./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, @@ -5342,11 +6044,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5346 "util/configparser.c" +#line 6048 "util/configparser.c" break; - case 484: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ -#line 2353 "./util/configparser.y" + case 486: +#line 2354 "./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, @@ -5354,11 +6056,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5358 "util/configparser.c" +#line 6060 "util/configparser.c" break; - case 485: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ -#line 2362 "./util/configparser.y" + case 487: +#line 2363 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5378,11 +6080,11 @@ yyreduce: } } } -#line 5382 "util/configparser.c" +#line 6084 "util/configparser.c" break; - case 486: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ -#line 2383 "./util/configparser.y" + case 488: +#line 2384 "./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) @@ -5390,11 +6092,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5394 "util/configparser.c" +#line 6096 "util/configparser.c" break; - case 487: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ -#line 2393 "./util/configparser.y" + case 489: +#line 2394 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5402,33 +6104,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5406 "util/configparser.c" +#line 6108 "util/configparser.c" break; - case 488: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ -#line 2402 "./util/configparser.y" + case 490: +#line 2403 "./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 5417 "util/configparser.c" +#line 6119 "util/configparser.c" break; - case 489: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ -#line 2410 "./util/configparser.y" + case 491: +#line 2411 "./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 5428 "util/configparser.c" +#line 6130 "util/configparser.c" break; - case 490: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ -#line 2418 "./util/configparser.y" + case 492: +#line 2419 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5440,11 +6142,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5444 "util/configparser.c" +#line 6146 "util/configparser.c" break; - case 491: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ -#line 2431 "./util/configparser.y" + case 493: +#line 2432 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5456,11 +6158,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5460 "util/configparser.c" +#line 6162 "util/configparser.c" break; - case 492: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ -#line 2444 "./util/configparser.y" + case 494: +#line 2445 "./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) { @@ -5474,11 +6176,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5478 "util/configparser.c" +#line 6180 "util/configparser.c" break; - case 493: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ -#line 2459 "./util/configparser.y" + case 495: +#line 2460 "./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) { @@ -5492,11 +6194,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5496 "util/configparser.c" +#line 6198 "util/configparser.c" break; - case 494: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ -#line 2474 "./util/configparser.y" + case 496: +#line 2475 "./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) @@ -5504,11 +6206,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5508 "util/configparser.c" +#line 6210 "util/configparser.c" break; - case 495: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ -#line 2483 "./util/configparser.y" + case 497: +#line 2484 "./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) @@ -5516,20 +6218,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5520 "util/configparser.c" +#line 6222 "util/configparser.c" break; - case 496: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ -#line 2492 "./util/configparser.y" + case 498: +#line 2493 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5529 "util/configparser.c" +#line 6231 "util/configparser.c" break; - case 497: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ -#line 2498 "./util/configparser.y" + case 499: +#line 2499 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5537,11 +6239,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5541 "util/configparser.c" +#line 6243 "util/configparser.c" break; - case 498: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ -#line 2507 "./util/configparser.y" + case 500: +#line 2508 "./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) @@ -5549,11 +6251,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5553 "util/configparser.c" +#line 6255 "util/configparser.c" break; - case 499: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ -#line 2516 "./util/configparser.y" + case 501: +#line 2517 "./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) @@ -5562,11 +6264,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5566 "util/configparser.c" +#line 6268 "util/configparser.c" break; - case 500: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ -#line 2526 "./util/configparser.y" + case 502: +#line 2527 "./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) @@ -5575,11 +6277,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5579 "util/configparser.c" +#line 6281 "util/configparser.c" break; - case 501: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ -#line 2536 "./util/configparser.y" + case 503: +#line 2537 "./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) @@ -5588,11 +6290,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5592 "util/configparser.c" +#line 6294 "util/configparser.c" break; - case 502: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ -#line 2546 "./util/configparser.y" + case 504: +#line 2547 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5600,11 +6302,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5604 "util/configparser.c" +#line 6306 "util/configparser.c" break; - case 503: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ -#line 2555 "./util/configparser.y" + case 505: +#line 2556 "./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) @@ -5613,11 +6315,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5617 "util/configparser.c" +#line 6319 "util/configparser.c" break; - case 504: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ -#line 2565 "./util/configparser.y" + case 506: +#line 2566 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5625,11 +6327,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5629 "util/configparser.c" +#line 6331 "util/configparser.c" break; - case 505: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ -#line 2574 "./util/configparser.y" + case 507: +#line 2575 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5641,11 +6343,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5645 "util/configparser.c" +#line 6347 "util/configparser.c" break; - case 506: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ -#line 2587 "./util/configparser.y" + case 508: +#line 2588 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5657,11 +6359,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5661 "util/configparser.c" +#line 6363 "util/configparser.c" break; - case 507: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ -#line 2600 "./util/configparser.y" + case 509: +#line 2601 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5672,11 +6374,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5676 "util/configparser.c" +#line 6378 "util/configparser.c" break; - case 508: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ -#line 2612 "./util/configparser.y" + case 510: +#line 2613 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5689,11 +6391,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5693 "util/configparser.c" +#line 6395 "util/configparser.c" break; - case 509: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ -#line 2626 "./util/configparser.y" + case 511: +#line 2627 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5704,11 +6406,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5708 "util/configparser.c" +#line 6410 "util/configparser.c" break; - case 510: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ -#line 2638 "./util/configparser.y" + case 512: +#line 2639 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5721,11 +6423,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5725 "util/configparser.c" +#line 6427 "util/configparser.c" break; - case 511: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ -#line 2652 "./util/configparser.y" + case 513: +#line 2653 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -5733,11 +6435,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 5737 "util/configparser.c" +#line 6439 "util/configparser.c" break; - case 512: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ -#line 2661 "./util/configparser.y" + case 514: +#line 2662 "./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) @@ -5748,11 +6450,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 5752 "util/configparser.c" +#line 6454 "util/configparser.c" break; - case 513: /* stub_name: VAR_NAME STRING_ARG */ -#line 2673 "./util/configparser.y" + case 515: +#line 2674 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5761,31 +6463,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5765 "util/configparser.c" +#line 6467 "util/configparser.c" break; - case 514: /* stub_host: VAR_STUB_HOST STRING_ARG */ -#line 2683 "./util/configparser.y" + case 516: +#line 2684 "./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 5775 "util/configparser.c" +#line 6477 "util/configparser.c" break; - case 515: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ -#line 2690 "./util/configparser.y" + case 517: +#line 2691 "./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 5785 "util/configparser.c" +#line 6487 "util/configparser.c" break; - case 516: /* stub_first: VAR_STUB_FIRST STRING_ARG */ -#line 2697 "./util/configparser.y" + case 518: +#line 2698 "./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) @@ -5793,11 +6495,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5797 "util/configparser.c" +#line 6499 "util/configparser.c" break; - case 517: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ -#line 2706 "./util/configparser.y" + case 519: +#line 2707 "./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) @@ -5805,11 +6507,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5809 "util/configparser.c" +#line 6511 "util/configparser.c" break; - case 518: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ -#line 2715 "./util/configparser.y" + case 520: +#line 2716 "./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) @@ -5818,11 +6520,24 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5822 "util/configparser.c" +#line 6524 "util/configparser.c" break; - case 519: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ -#line 2725 "./util/configparser.y" + case 521: +#line 2726 "./util/configparser.y" + { + OUTYY(("P(stub-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->stubs->tcp_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 6537 "util/configparser.c" + break; + + case 522: +#line 2736 "./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) @@ -5831,11 +6546,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5835 "util/configparser.c" +#line 6550 "util/configparser.c" break; - case 520: /* forward_name: VAR_NAME STRING_ARG */ -#line 2735 "./util/configparser.y" + case 523: +#line 2746 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5844,31 +6559,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5848 "util/configparser.c" +#line 6563 "util/configparser.c" break; - case 521: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ -#line 2745 "./util/configparser.y" + case 524: +#line 2756 "./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 5858 "util/configparser.c" +#line 6573 "util/configparser.c" break; - case 522: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ -#line 2752 "./util/configparser.y" + case 525: +#line 2763 "./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 5868 "util/configparser.c" +#line 6583 "util/configparser.c" break; - case 523: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ -#line 2759 "./util/configparser.y" + case 526: +#line 2770 "./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) @@ -5876,11 +6591,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5880 "util/configparser.c" +#line 6595 "util/configparser.c" break; - case 524: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ -#line 2768 "./util/configparser.y" + case 527: +#line 2779 "./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) @@ -5888,11 +6603,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5892 "util/configparser.c" +#line 6607 "util/configparser.c" break; - case 525: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ -#line 2777 "./util/configparser.y" + case 528: +#line 2788 "./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) @@ -5901,11 +6616,24 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5905 "util/configparser.c" +#line 6620 "util/configparser.c" break; - case 526: /* auth_name: VAR_NAME STRING_ARG */ -#line 2787 "./util/configparser.y" + case 529: +#line 2798 "./util/configparser.y" + { + OUTYY(("P(forward-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->forwards->tcp_upstream = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 6633 "util/configparser.c" + break; + + case 530: +#line 2808 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5914,52 +6642,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5918 "util/configparser.c" +#line 6646 "util/configparser.c" break; - case 527: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ -#line 2797 "./util/configparser.y" + case 531: +#line 2818 "./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 5928 "util/configparser.c" +#line 6656 "util/configparser.c" break; - case 528: /* auth_master: VAR_MASTER STRING_ARG */ -#line 2804 "./util/configparser.y" + case 532: +#line 2825 "./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 5938 "util/configparser.c" +#line 6666 "util/configparser.c" break; - case 529: /* auth_url: VAR_URL STRING_ARG */ -#line 2811 "./util/configparser.y" + case 533: +#line 2832 "./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 5948 "util/configparser.c" +#line 6676 "util/configparser.c" break; - case 530: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ -#line 2818 "./util/configparser.y" + case 534: +#line 2839 "./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 5959 "util/configparser.c" +#line 6687 "util/configparser.c" break; - case 531: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */ -#line 2826 "./util/configparser.y" + case 535: +#line 2847 "./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) @@ -5968,11 +6696,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5972 "util/configparser.c" +#line 6700 "util/configparser.c" break; - case 532: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ -#line 2836 "./util/configparser.y" + case 536: +#line 2857 "./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) @@ -5981,11 +6709,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5985 "util/configparser.c" +#line 6713 "util/configparser.c" break; - case 533: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ -#line 2846 "./util/configparser.y" + case 537: +#line 2867 "./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) @@ -5994,11 +6722,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5998 "util/configparser.c" +#line 6726 "util/configparser.c" break; - case 534: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ -#line 2856 "./util/configparser.y" + case 538: +#line 2877 "./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) @@ -6007,11 +6735,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6011 "util/configparser.c" +#line 6739 "util/configparser.c" break; - case 535: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ -#line 2866 "./util/configparser.y" + case 539: +#line 2887 "./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) @@ -6020,11 +6748,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6024 "util/configparser.c" +#line 6752 "util/configparser.c" break; - case 536: /* view_name: VAR_NAME STRING_ARG */ -#line 2876 "./util/configparser.y" + case 540: +#line 2897 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6033,11 +6761,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6037 "util/configparser.c" +#line 6765 "util/configparser.c" break; - case 537: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2886 "./util/configparser.y" + case 541: +#line 2907 "./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 && @@ -6082,11 +6810,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6086 "util/configparser.c" +#line 6814 "util/configparser.c" break; - case 538: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 2932 "./util/configparser.y" + case 542: +#line 2953 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6095,33 +6823,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6099 "util/configparser.c" +#line 6827 "util/configparser.c" break; - case 539: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 2942 "./util/configparser.y" + case 543: +#line 2963 "./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 6110 "util/configparser.c" +#line 6838 "util/configparser.c" break; - case 540: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2950 "./util/configparser.y" + case 544: +#line 2971 "./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 6121 "util/configparser.c" +#line 6849 "util/configparser.c" break; - case 541: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2958 "./util/configparser.y" + case 545: +#line 2979 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6135,11 +6863,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6139 "util/configparser.c" +#line 6867 "util/configparser.c" break; - case 542: /* view_first: VAR_VIEW_FIRST STRING_ARG */ -#line 2973 "./util/configparser.y" + case 546: +#line 2994 "./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) @@ -6147,19 +6875,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6151 "util/configparser.c" +#line 6879 "util/configparser.c" break; - case 543: /* rcstart: VAR_REMOTE_CONTROL */ -#line 2982 "./util/configparser.y" + case 547: +#line 3003 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6159 "util/configparser.c" +#line 6887 "util/configparser.c" break; - case 554: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ -#line 2993 "./util/configparser.y" + case 558: +#line 3014 "./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) @@ -6168,11 +6896,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6172 "util/configparser.c" +#line 6900 "util/configparser.c" break; - case 555: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ -#line 3003 "./util/configparser.y" + case 559: +#line 3024 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6180,79 +6908,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6184 "util/configparser.c" +#line 6912 "util/configparser.c" break; - case 556: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ -#line 3012 "./util/configparser.y" + case 560: +#line 3033 "./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 6194 "util/configparser.c" +#line 6922 "util/configparser.c" break; - case 557: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ -#line 3019 "./util/configparser.y" + case 561: +#line 3040 "./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 6204 "util/configparser.c" +#line 6932 "util/configparser.c" break; - case 558: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ -#line 3026 "./util/configparser.y" + case 562: +#line 3047 "./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 6214 "util/configparser.c" +#line 6942 "util/configparser.c" break; - case 559: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ -#line 3033 "./util/configparser.y" + case 563: +#line 3054 "./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 6224 "util/configparser.c" +#line 6952 "util/configparser.c" break; - case 560: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ -#line 3040 "./util/configparser.y" + case 564: +#line 3061 "./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 6234 "util/configparser.c" +#line 6962 "util/configparser.c" break; - case 561: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ -#line 3047 "./util/configparser.y" + case 565: +#line 3068 "./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 6244 "util/configparser.c" +#line 6972 "util/configparser.c" break; - case 562: /* dtstart: VAR_DNSTAP */ -#line 3054 "./util/configparser.y" + case 566: +#line 3075 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6252 "util/configparser.c" +#line 6980 "util/configparser.c" break; - case 584: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ -#line 3074 "./util/configparser.y" + case 588: +#line 3095 "./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) @@ -6260,11 +6988,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6264 "util/configparser.c" +#line 6992 "util/configparser.c" break; - case 585: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ -#line 3083 "./util/configparser.y" + case 589: +#line 3104 "./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) @@ -6273,31 +7001,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6277 "util/configparser.c" +#line 7005 "util/configparser.c" break; - case 586: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ -#line 3093 "./util/configparser.y" + case 590: +#line 3114 "./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 6287 "util/configparser.c" +#line 7015 "util/configparser.c" break; - case 587: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ -#line 3100 "./util/configparser.y" + case 591: +#line 3121 "./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 6297 "util/configparser.c" +#line 7025 "util/configparser.c" break; - case 588: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ -#line 3107 "./util/configparser.y" + case 592: +#line 3128 "./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) @@ -6305,51 +7033,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6309 "util/configparser.c" +#line 7037 "util/configparser.c" break; - case 589: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ -#line 3116 "./util/configparser.y" + case 593: +#line 3137 "./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 6319 "util/configparser.c" +#line 7047 "util/configparser.c" break; - case 590: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ -#line 3123 "./util/configparser.y" + case 594: +#line 3144 "./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 6329 "util/configparser.c" +#line 7057 "util/configparser.c" break; - case 591: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ -#line 3130 "./util/configparser.y" + case 595: +#line 3151 "./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 6339 "util/configparser.c" +#line 7067 "util/configparser.c" break; - case 592: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ -#line 3137 "./util/configparser.y" + case 596: +#line 3158 "./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 6349 "util/configparser.c" +#line 7077 "util/configparser.c" break; - case 593: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ -#line 3144 "./util/configparser.y" + case 597: +#line 3165 "./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) @@ -6357,11 +7085,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6361 "util/configparser.c" +#line 7089 "util/configparser.c" break; - case 594: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ -#line 3153 "./util/configparser.y" + case 598: +#line 3174 "./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) @@ -6369,31 +7097,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6373 "util/configparser.c" +#line 7101 "util/configparser.c" break; - case 595: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ -#line 3162 "./util/configparser.y" + case 599: +#line 3183 "./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 6383 "util/configparser.c" +#line 7111 "util/configparser.c" break; - case 596: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ -#line 3169 "./util/configparser.y" + case 600: +#line 3190 "./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 6393 "util/configparser.c" +#line 7121 "util/configparser.c" break; - case 597: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ -#line 3176 "./util/configparser.y" + case 601: +#line 3197 "./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) @@ -6402,11 +7130,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6406 "util/configparser.c" +#line 7134 "util/configparser.c" break; - case 598: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ -#line 3186 "./util/configparser.y" + case 602: +#line 3207 "./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) @@ -6415,11 +7143,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6419 "util/configparser.c" +#line 7147 "util/configparser.c" break; - case 599: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ -#line 3196 "./util/configparser.y" + case 603: +#line 3217 "./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) @@ -6428,11 +7156,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6432 "util/configparser.c" +#line 7160 "util/configparser.c" break; - case 600: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ -#line 3206 "./util/configparser.y" + case 604: +#line 3227 "./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) @@ -6441,11 +7169,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6445 "util/configparser.c" +#line 7173 "util/configparser.c" break; - case 601: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ -#line 3216 "./util/configparser.y" + case 605: +#line 3237 "./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) @@ -6454,11 +7182,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6458 "util/configparser.c" +#line 7186 "util/configparser.c" break; - case 602: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ -#line 3226 "./util/configparser.y" + case 606: +#line 3247 "./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) @@ -6467,47 +7195,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6471 "util/configparser.c" +#line 7199 "util/configparser.c" break; - case 603: /* pythonstart: VAR_PYTHON */ -#line 3236 "./util/configparser.y" + case 607: +#line 3257 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6479 "util/configparser.c" +#line 7207 "util/configparser.c" break; - case 607: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ -#line 3245 "./util/configparser.y" + case 611: +#line 3266 "./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 6489 "util/configparser.c" +#line 7217 "util/configparser.c" break; - case 608: /* dynlibstart: VAR_DYNLIB */ -#line 3251 "./util/configparser.y" + case 612: +#line 3272 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6497 "util/configparser.c" +#line 7225 "util/configparser.c" break; - case 612: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ -#line 3260 "./util/configparser.y" + case 616: +#line 3281 "./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 6507 "util/configparser.c" +#line 7235 "util/configparser.c" break; - case 613: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ -#line 3266 "./util/configparser.y" + case 617: +#line 3287 "./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) @@ -6516,21 +7244,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6520 "util/configparser.c" +#line 7248 "util/configparser.c" break; - case 614: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ -#line 3276 "./util/configparser.y" + case 618: +#line 3297 "./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 6530 "util/configparser.c" +#line 7258 "util/configparser.c" break; - case 615: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 3283 "./util/configparser.y" + case 619: +#line 3304 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6538,30 +7266,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6542 "util/configparser.c" +#line 7270 "util/configparser.c" break; - case 616: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 3292 "./util/configparser.y" + case 620: +#line 3313 "./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 6553 "util/configparser.c" +#line 7281 "util/configparser.c" break; - case 617: /* dnscstart: VAR_DNSCRYPT */ -#line 3300 "./util/configparser.y" + case 621: +#line 3321 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6561 "util/configparser.c" +#line 7289 "util/configparser.c" break; - case 630: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ -#line 3316 "./util/configparser.y" + case 634: +#line 3337 "./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) @@ -6569,11 +7297,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6573 "util/configparser.c" +#line 7301 "util/configparser.c" break; - case 631: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ -#line 3326 "./util/configparser.y" + case 635: +#line 3347 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6581,21 +7309,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6585 "util/configparser.c" +#line 7313 "util/configparser.c" break; - case 632: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ -#line 3335 "./util/configparser.y" + case 636: +#line 3356 "./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 6595 "util/configparser.c" +#line 7323 "util/configparser.c" break; - case 633: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ -#line 3342 "./util/configparser.y" + case 637: +#line 3363 "./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))) @@ -6603,21 +7331,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 6607 "util/configparser.c" +#line 7335 "util/configparser.c" break; - case 634: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ -#line 3351 "./util/configparser.y" + case 638: +#line 3372 "./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 6617 "util/configparser.c" +#line 7345 "util/configparser.c" break; - case 635: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ -#line 3358 "./util/configparser.y" + case 639: +#line 3379 "./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))) @@ -6625,22 +7353,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 6629 "util/configparser.c" +#line 7357 "util/configparser.c" break; - case 636: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ -#line 3367 "./util/configparser.y" + case 640: +#line 3388 "./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 6640 "util/configparser.c" +#line 7368 "util/configparser.c" break; - case 637: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ -#line 3375 "./util/configparser.y" + case 641: +#line 3396 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6652,22 +7380,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6656 "util/configparser.c" +#line 7384 "util/configparser.c" break; - case 638: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ -#line 3388 "./util/configparser.y" + case 642: +#line 3409 "./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 6667 "util/configparser.c" +#line 7395 "util/configparser.c" break; - case 639: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ -#line 3396 "./util/configparser.y" + case 643: +#line 3417 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6679,19 +7407,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6683 "util/configparser.c" +#line 7411 "util/configparser.c" break; - case 640: /* cachedbstart: VAR_CACHEDB */ -#line 3409 "./util/configparser.y" + case 644: +#line 3430 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6691 "util/configparser.c" +#line 7419 "util/configparser.c" break; - case 649: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ -#line 3420 "./util/configparser.y" + case 653: +#line 3441 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6702,11 +7430,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6706 "util/configparser.c" +#line 7434 "util/configparser.c" break; - case 650: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ -#line 3432 "./util/configparser.y" + case 654: +#line 3453 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6717,11 +7445,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6721 "util/configparser.c" +#line 7449 "util/configparser.c" break; - case 651: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ -#line 3444 "./util/configparser.y" + case 655: +#line 3465 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6732,11 +7460,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6736 "util/configparser.c" +#line 7464 "util/configparser.c" break; - case 652: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ -#line 3456 "./util/configparser.y" + case 656: +#line 3477 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6750,11 +7478,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6754 "util/configparser.c" +#line 7482 "util/configparser.c" break; - case 653: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ -#line 3471 "./util/configparser.y" + case 657: +#line 3492 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6766,11 +7494,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6770 "util/configparser.c" +#line 7498 "util/configparser.c" break; - case 654: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ -#line 3484 "./util/configparser.y" + case 658: +#line 3505 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6782,11 +7510,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6786 "util/configparser.c" +#line 7514 "util/configparser.c" break; - case 655: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ -#line 3497 "./util/configparser.y" + case 659: +#line 3518 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6796,19 +7524,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6800 "util/configparser.c" +#line 7528 "util/configparser.c" break; - case 656: /* ipsetstart: VAR_IPSET */ -#line 3508 "./util/configparser.y" + case 660: +#line 3529 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6808 "util/configparser.c" +#line 7536 "util/configparser.c" break; - case 661: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ -#line 3517 "./util/configparser.y" + case 665: +#line 3538 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6822,11 +7550,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6826 "util/configparser.c" +#line 7554 "util/configparser.c" break; - case 662: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ -#line 3532 "./util/configparser.y" + case 666: +#line 3553 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6840,11 +7568,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6844 "util/configparser.c" +#line 7572 "util/configparser.c" break; -#line 6848 "util/configparser.c" +#line 7576 "util/configparser.c" default: break; } @@ -7004,13 +7732,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) { @@ -7038,7 +7766,7 @@ yyreturn: return yyresult; } -#line 3546 "./util/configparser.y" +#line 3567 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 721a02414..7ce93b1d8 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 3.7.4. */ +/* A Bison parser, made by GNU Bison 3.6.4. */ /* Bison interface for Yacc-like parsers in C @@ -197,183 +197,184 @@ extern int yydebug; 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_HIDE_HTTP_USER_AGENT = 493, /* VAR_HIDE_HTTP_USER_AGENT */ - VAR_HTTP_USER_AGENT = 494, /* VAR_HTTP_USER_AGENT */ - VAR_TRUST_ANCHOR_SIGNALING = 495, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 496, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 497, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 498, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 499, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 500, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 501, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 502, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 503, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 504, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 505, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 506, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 507, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 508, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 509, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 510, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 511, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 512, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 513, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 514, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 515, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 516, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 517, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 518, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 519, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 520, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 521, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 522, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 523, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 524, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 525, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 526, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 527, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 528, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 529, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 530, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 531, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 532, /* VAR_ZONEFILE */ - VAR_MASTER = 533, /* VAR_MASTER */ - VAR_URL = 534, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 535, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 536, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 537, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 538, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 539, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 540, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 541, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 542, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 543, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 544, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 545, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 546, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 547, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 548, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 549, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 550, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 551, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 552, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 553, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 554, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 555, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 556, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 557, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 558, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 559, /* VAR_RPZ */ - VAR_TAGS = 560, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 561, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 562, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 563, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 564, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 565, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 566, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 567, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 568, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 569, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 570, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 571, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 572 /* VAR_ZONEMD_REJECT_ABSENCE */ + VAR_STUB_TCP_UPSTREAM = 401, /* VAR_STUB_TCP_UPSTREAM */ + VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM */ + VAR_HTTPS_PORT = 403, /* VAR_HTTPS_PORT */ + VAR_HTTP_ENDPOINT = 404, /* VAR_HTTP_ENDPOINT */ + VAR_HTTP_MAX_STREAMS = 405, /* VAR_HTTP_MAX_STREAMS */ + VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE */ + VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ + VAR_HTTP_NODELAY = 408, /* VAR_HTTP_NODELAY */ + VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM */ + VAR_STUB_FIRST = 410, /* VAR_STUB_FIRST */ + VAR_MINIMAL_RESPONSES = 411, /* VAR_MINIMAL_RESPONSES */ + VAR_RRSET_ROUNDROBIN = 412, /* VAR_RRSET_ROUNDROBIN */ + VAR_MAX_UDP_SIZE = 413, /* VAR_MAX_UDP_SIZE */ + VAR_DELAY_CLOSE = 414, /* VAR_DELAY_CLOSE */ + VAR_UDP_CONNECT = 415, /* VAR_UDP_CONNECT */ + VAR_UNBLOCK_LAN_ZONES = 416, /* VAR_UNBLOCK_LAN_ZONES */ + VAR_INSECURE_LAN_ZONES = 417, /* VAR_INSECURE_LAN_ZONES */ + VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT */ + VAR_INFRA_KEEP_PROBING = 419, /* VAR_INFRA_KEEP_PROBING */ + VAR_DNS64_PREFIX = 420, /* VAR_DNS64_PREFIX */ + VAR_DNS64_SYNTHALL = 421, /* VAR_DNS64_SYNTHALL */ + VAR_DNS64_IGNORE_AAAA = 422, /* VAR_DNS64_IGNORE_AAAA */ + VAR_DNSTAP = 423, /* VAR_DNSTAP */ + VAR_DNSTAP_ENABLE = 424, /* VAR_DNSTAP_ENABLE */ + VAR_DNSTAP_SOCKET_PATH = 425, /* VAR_DNSTAP_SOCKET_PATH */ + VAR_DNSTAP_IP = 426, /* VAR_DNSTAP_IP */ + VAR_DNSTAP_TLS = 427, /* VAR_DNSTAP_TLS */ + VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME */ + VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ + VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY */ + VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION */ + VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL */ + VAR_DNSTAP_IDENTITY = 435, /* VAR_DNSTAP_IDENTITY */ + VAR_DNSTAP_VERSION = 436, /* VAR_DNSTAP_VERSION */ + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ + VAR_RESPONSE_IP_TAG = 443, /* VAR_RESPONSE_IP_TAG */ + VAR_RESPONSE_IP = 444, /* VAR_RESPONSE_IP */ + VAR_RESPONSE_IP_DATA = 445, /* VAR_RESPONSE_IP_DATA */ + VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE */ + VAR_IP_TRANSPARENT = 447, /* VAR_IP_TRANSPARENT */ + VAR_IP_DSCP = 448, /* VAR_IP_DSCP */ + VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ + VAR_IP_RATELIMIT = 450, /* VAR_IP_RATELIMIT */ + VAR_IP_RATELIMIT_SLABS = 451, /* VAR_IP_RATELIMIT_SLABS */ + VAR_IP_RATELIMIT_SIZE = 452, /* VAR_IP_RATELIMIT_SIZE */ + VAR_RATELIMIT = 453, /* VAR_RATELIMIT */ + VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */ + VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */ + VAR_RATELIMIT_FOR_DOMAIN = 456, /* VAR_RATELIMIT_FOR_DOMAIN */ + VAR_RATELIMIT_BELOW_DOMAIN = 457, /* VAR_RATELIMIT_BELOW_DOMAIN */ + VAR_IP_RATELIMIT_FACTOR = 458, /* VAR_IP_RATELIMIT_FACTOR */ + VAR_RATELIMIT_FACTOR = 459, /* VAR_RATELIMIT_FACTOR */ + VAR_SEND_CLIENT_SUBNET = 460, /* VAR_SEND_CLIENT_SUBNET */ + VAR_CLIENT_SUBNET_ZONE = 461, /* VAR_CLIENT_SUBNET_ZONE */ + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 462, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ + VAR_CLIENT_SUBNET_OPCODE = 463, /* VAR_CLIENT_SUBNET_OPCODE */ + VAR_MAX_CLIENT_SUBNET_IPV4 = 464, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ + VAR_MAX_CLIENT_SUBNET_IPV6 = 465, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ + VAR_MIN_CLIENT_SUBNET_IPV4 = 466, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ + VAR_MIN_CLIENT_SUBNET_IPV6 = 467, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ + VAR_MAX_ECS_TREE_SIZE_IPV4 = 468, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ + VAR_MAX_ECS_TREE_SIZE_IPV6 = 469, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ + VAR_CAPS_WHITELIST = 470, /* VAR_CAPS_WHITELIST */ + VAR_CACHE_MAX_NEGATIVE_TTL = 471, /* VAR_CACHE_MAX_NEGATIVE_TTL */ + VAR_PERMIT_SMALL_HOLDDOWN = 472, /* VAR_PERMIT_SMALL_HOLDDOWN */ + VAR_QNAME_MINIMISATION = 473, /* VAR_QNAME_MINIMISATION */ + VAR_QNAME_MINIMISATION_STRICT = 474, /* VAR_QNAME_MINIMISATION_STRICT */ + VAR_IP_FREEBIND = 475, /* VAR_IP_FREEBIND */ + VAR_DEFINE_TAG = 476, /* VAR_DEFINE_TAG */ + VAR_LOCAL_ZONE_TAG = 477, /* VAR_LOCAL_ZONE_TAG */ + VAR_ACCESS_CONTROL_TAG = 478, /* VAR_ACCESS_CONTROL_TAG */ + VAR_LOCAL_ZONE_OVERRIDE = 479, /* VAR_LOCAL_ZONE_OVERRIDE */ + VAR_ACCESS_CONTROL_TAG_ACTION = 480, /* VAR_ACCESS_CONTROL_TAG_ACTION */ + VAR_ACCESS_CONTROL_TAG_DATA = 481, /* VAR_ACCESS_CONTROL_TAG_DATA */ + VAR_VIEW = 482, /* VAR_VIEW */ + VAR_ACCESS_CONTROL_VIEW = 483, /* VAR_ACCESS_CONTROL_VIEW */ + VAR_VIEW_FIRST = 484, /* VAR_VIEW_FIRST */ + VAR_SERVE_EXPIRED = 485, /* VAR_SERVE_EXPIRED */ + VAR_SERVE_EXPIRED_TTL = 486, /* VAR_SERVE_EXPIRED_TTL */ + VAR_SERVE_EXPIRED_TTL_RESET = 487, /* VAR_SERVE_EXPIRED_TTL_RESET */ + VAR_SERVE_EXPIRED_REPLY_TTL = 488, /* VAR_SERVE_EXPIRED_REPLY_TTL */ + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 489, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ + VAR_SERVE_ORIGINAL_TTL = 490, /* VAR_SERVE_ORIGINAL_TTL */ + VAR_FAKE_DSA = 491, /* VAR_FAKE_DSA */ + VAR_FAKE_SHA1 = 492, /* VAR_FAKE_SHA1 */ + VAR_LOG_IDENTITY = 493, /* VAR_LOG_IDENTITY */ + VAR_HIDE_TRUSTANCHOR = 494, /* VAR_HIDE_TRUSTANCHOR */ + VAR_HIDE_HTTP_USER_AGENT = 495, /* VAR_HIDE_HTTP_USER_AGENT */ + VAR_HTTP_USER_AGENT = 496, /* VAR_HTTP_USER_AGENT */ + VAR_TRUST_ANCHOR_SIGNALING = 497, /* VAR_TRUST_ANCHOR_SIGNALING */ + VAR_AGGRESSIVE_NSEC = 498, /* VAR_AGGRESSIVE_NSEC */ + VAR_USE_SYSTEMD = 499, /* VAR_USE_SYSTEMD */ + VAR_SHM_ENABLE = 500, /* VAR_SHM_ENABLE */ + VAR_SHM_KEY = 501, /* VAR_SHM_KEY */ + VAR_ROOT_KEY_SENTINEL = 502, /* VAR_ROOT_KEY_SENTINEL */ + VAR_DNSCRYPT = 503, /* VAR_DNSCRYPT */ + VAR_DNSCRYPT_ENABLE = 504, /* VAR_DNSCRYPT_ENABLE */ + VAR_DNSCRYPT_PORT = 505, /* VAR_DNSCRYPT_PORT */ + VAR_DNSCRYPT_PROVIDER = 506, /* VAR_DNSCRYPT_PROVIDER */ + VAR_DNSCRYPT_SECRET_KEY = 507, /* VAR_DNSCRYPT_SECRET_KEY */ + VAR_DNSCRYPT_PROVIDER_CERT = 508, /* VAR_DNSCRYPT_PROVIDER_CERT */ + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 509, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 510, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 511, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 512, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 513, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ + VAR_PAD_RESPONSES = 514, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 515, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 516, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 517, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 518, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 519, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 520, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 521, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 522, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 523, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 524, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 525, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 526, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 527, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 528, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 529, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 530, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 531, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 532, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 533, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 534, /* VAR_ZONEFILE */ + VAR_MASTER = 535, /* VAR_MASTER */ + VAR_URL = 536, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 537, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 538, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 539, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 540, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 541, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 542, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 543, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 544, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 545, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 546, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 547, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 548, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 549, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 550, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 551, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 552, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 553, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 554, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 555, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 556, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 557, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 558, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 559, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 560, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 561, /* VAR_RPZ */ + VAR_TAGS = 562, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 563, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 564, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 565, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 566, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 567, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 568, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 569, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 570, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 571, /* VAR_NSID */ + VAR_ZONEMD_PERMISSIVE_MODE = 572, /* VAR_ZONEMD_PERMISSIVE_MODE */ + VAR_ZONEMD_CHECK = 573, /* VAR_ZONEMD_CHECK */ + VAR_ZONEMD_REJECT_ABSENCE = 574 /* 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 @@ -520,178 +521,180 @@ extern int yydebug; #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_HIDE_HTTP_USER_AGENT 493 -#define VAR_HTTP_USER_AGENT 494 -#define VAR_TRUST_ANCHOR_SIGNALING 495 -#define VAR_AGGRESSIVE_NSEC 496 -#define VAR_USE_SYSTEMD 497 -#define VAR_SHM_ENABLE 498 -#define VAR_SHM_KEY 499 -#define VAR_ROOT_KEY_SENTINEL 500 -#define VAR_DNSCRYPT 501 -#define VAR_DNSCRYPT_ENABLE 502 -#define VAR_DNSCRYPT_PORT 503 -#define VAR_DNSCRYPT_PROVIDER 504 -#define VAR_DNSCRYPT_SECRET_KEY 505 -#define VAR_DNSCRYPT_PROVIDER_CERT 506 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 507 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 508 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 509 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 510 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 511 -#define VAR_PAD_RESPONSES 512 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 513 -#define VAR_PAD_QUERIES 514 -#define VAR_PAD_QUERIES_BLOCK_SIZE 515 -#define VAR_IPSECMOD_ENABLED 516 -#define VAR_IPSECMOD_HOOK 517 -#define VAR_IPSECMOD_IGNORE_BOGUS 518 -#define VAR_IPSECMOD_MAX_TTL 519 -#define VAR_IPSECMOD_WHITELIST 520 -#define VAR_IPSECMOD_STRICT 521 -#define VAR_CACHEDB 522 -#define VAR_CACHEDB_BACKEND 523 -#define VAR_CACHEDB_SECRETSEED 524 -#define VAR_CACHEDB_REDISHOST 525 -#define VAR_CACHEDB_REDISPORT 526 -#define VAR_CACHEDB_REDISTIMEOUT 527 -#define VAR_CACHEDB_REDISEXPIRERECORDS 528 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 529 -#define VAR_FOR_UPSTREAM 530 -#define VAR_AUTH_ZONE 531 -#define VAR_ZONEFILE 532 -#define VAR_MASTER 533 -#define VAR_URL 534 -#define VAR_FOR_DOWNSTREAM 535 -#define VAR_FALLBACK_ENABLED 536 -#define VAR_TLS_ADDITIONAL_PORT 537 -#define VAR_LOW_RTT 538 -#define VAR_LOW_RTT_PERMIL 539 -#define VAR_FAST_SERVER_PERMIL 540 -#define VAR_FAST_SERVER_NUM 541 -#define VAR_ALLOW_NOTIFY 542 -#define VAR_TLS_WIN_CERT 543 -#define VAR_TCP_CONNECTION_LIMIT 544 -#define VAR_FORWARD_NO_CACHE 545 -#define VAR_STUB_NO_CACHE 546 -#define VAR_LOG_SERVFAIL 547 -#define VAR_DENY_ANY 548 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 549 -#define VAR_LOG_TAG_QUERYREPLY 550 -#define VAR_STREAM_WAIT_SIZE 551 -#define VAR_TLS_CIPHERS 552 -#define VAR_TLS_CIPHERSUITES 553 -#define VAR_TLS_USE_SNI 554 -#define VAR_IPSET 555 -#define VAR_IPSET_NAME_V4 556 -#define VAR_IPSET_NAME_V6 557 -#define VAR_TLS_SESSION_TICKET_KEYS 558 -#define VAR_RPZ 559 -#define VAR_TAGS 560 -#define VAR_RPZ_ACTION_OVERRIDE 561 -#define VAR_RPZ_CNAME_OVERRIDE 562 -#define VAR_RPZ_LOG 563 -#define VAR_RPZ_LOG_NAME 564 -#define VAR_DYNLIB 565 -#define VAR_DYNLIB_FILE 566 -#define VAR_EDNS_CLIENT_STRING 567 -#define VAR_EDNS_CLIENT_STRING_OPCODE 568 -#define VAR_NSID 569 -#define VAR_ZONEMD_PERMISSIVE_MODE 570 -#define VAR_ZONEMD_CHECK 571 -#define VAR_ZONEMD_REJECT_ABSENCE 572 +#define VAR_STUB_TCP_UPSTREAM 401 +#define VAR_FORWARD_TCP_UPSTREAM 402 +#define VAR_HTTPS_PORT 403 +#define VAR_HTTP_ENDPOINT 404 +#define VAR_HTTP_MAX_STREAMS 405 +#define VAR_HTTP_QUERY_BUFFER_SIZE 406 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 407 +#define VAR_HTTP_NODELAY 408 +#define VAR_HTTP_NOTLS_DOWNSTREAM 409 +#define VAR_STUB_FIRST 410 +#define VAR_MINIMAL_RESPONSES 411 +#define VAR_RRSET_ROUNDROBIN 412 +#define VAR_MAX_UDP_SIZE 413 +#define VAR_DELAY_CLOSE 414 +#define VAR_UDP_CONNECT 415 +#define VAR_UNBLOCK_LAN_ZONES 416 +#define VAR_INSECURE_LAN_ZONES 417 +#define VAR_INFRA_CACHE_MIN_RTT 418 +#define VAR_INFRA_KEEP_PROBING 419 +#define VAR_DNS64_PREFIX 420 +#define VAR_DNS64_SYNTHALL 421 +#define VAR_DNS64_IGNORE_AAAA 422 +#define VAR_DNSTAP 423 +#define VAR_DNSTAP_ENABLE 424 +#define VAR_DNSTAP_SOCKET_PATH 425 +#define VAR_DNSTAP_IP 426 +#define VAR_DNSTAP_TLS 427 +#define VAR_DNSTAP_TLS_SERVER_NAME 428 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 429 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 430 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 431 +#define VAR_DNSTAP_SEND_IDENTITY 432 +#define VAR_DNSTAP_SEND_VERSION 433 +#define VAR_DNSTAP_BIDIRECTIONAL 434 +#define VAR_DNSTAP_IDENTITY 435 +#define VAR_DNSTAP_VERSION 436 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 437 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 438 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 439 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 440 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 441 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 442 +#define VAR_RESPONSE_IP_TAG 443 +#define VAR_RESPONSE_IP 444 +#define VAR_RESPONSE_IP_DATA 445 +#define VAR_HARDEN_ALGO_DOWNGRADE 446 +#define VAR_IP_TRANSPARENT 447 +#define VAR_IP_DSCP 448 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 449 +#define VAR_IP_RATELIMIT 450 +#define VAR_IP_RATELIMIT_SLABS 451 +#define VAR_IP_RATELIMIT_SIZE 452 +#define VAR_RATELIMIT 453 +#define VAR_RATELIMIT_SLABS 454 +#define VAR_RATELIMIT_SIZE 455 +#define VAR_RATELIMIT_FOR_DOMAIN 456 +#define VAR_RATELIMIT_BELOW_DOMAIN 457 +#define VAR_IP_RATELIMIT_FACTOR 458 +#define VAR_RATELIMIT_FACTOR 459 +#define VAR_SEND_CLIENT_SUBNET 460 +#define VAR_CLIENT_SUBNET_ZONE 461 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 462 +#define VAR_CLIENT_SUBNET_OPCODE 463 +#define VAR_MAX_CLIENT_SUBNET_IPV4 464 +#define VAR_MAX_CLIENT_SUBNET_IPV6 465 +#define VAR_MIN_CLIENT_SUBNET_IPV4 466 +#define VAR_MIN_CLIENT_SUBNET_IPV6 467 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 468 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 469 +#define VAR_CAPS_WHITELIST 470 +#define VAR_CACHE_MAX_NEGATIVE_TTL 471 +#define VAR_PERMIT_SMALL_HOLDDOWN 472 +#define VAR_QNAME_MINIMISATION 473 +#define VAR_QNAME_MINIMISATION_STRICT 474 +#define VAR_IP_FREEBIND 475 +#define VAR_DEFINE_TAG 476 +#define VAR_LOCAL_ZONE_TAG 477 +#define VAR_ACCESS_CONTROL_TAG 478 +#define VAR_LOCAL_ZONE_OVERRIDE 479 +#define VAR_ACCESS_CONTROL_TAG_ACTION 480 +#define VAR_ACCESS_CONTROL_TAG_DATA 481 +#define VAR_VIEW 482 +#define VAR_ACCESS_CONTROL_VIEW 483 +#define VAR_VIEW_FIRST 484 +#define VAR_SERVE_EXPIRED 485 +#define VAR_SERVE_EXPIRED_TTL 486 +#define VAR_SERVE_EXPIRED_TTL_RESET 487 +#define VAR_SERVE_EXPIRED_REPLY_TTL 488 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 489 +#define VAR_SERVE_ORIGINAL_TTL 490 +#define VAR_FAKE_DSA 491 +#define VAR_FAKE_SHA1 492 +#define VAR_LOG_IDENTITY 493 +#define VAR_HIDE_TRUSTANCHOR 494 +#define VAR_HIDE_HTTP_USER_AGENT 495 +#define VAR_HTTP_USER_AGENT 496 +#define VAR_TRUST_ANCHOR_SIGNALING 497 +#define VAR_AGGRESSIVE_NSEC 498 +#define VAR_USE_SYSTEMD 499 +#define VAR_SHM_ENABLE 500 +#define VAR_SHM_KEY 501 +#define VAR_ROOT_KEY_SENTINEL 502 +#define VAR_DNSCRYPT 503 +#define VAR_DNSCRYPT_ENABLE 504 +#define VAR_DNSCRYPT_PORT 505 +#define VAR_DNSCRYPT_PROVIDER 506 +#define VAR_DNSCRYPT_SECRET_KEY 507 +#define VAR_DNSCRYPT_PROVIDER_CERT 508 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 509 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 510 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 511 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 512 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 513 +#define VAR_PAD_RESPONSES 514 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 515 +#define VAR_PAD_QUERIES 516 +#define VAR_PAD_QUERIES_BLOCK_SIZE 517 +#define VAR_IPSECMOD_ENABLED 518 +#define VAR_IPSECMOD_HOOK 519 +#define VAR_IPSECMOD_IGNORE_BOGUS 520 +#define VAR_IPSECMOD_MAX_TTL 521 +#define VAR_IPSECMOD_WHITELIST 522 +#define VAR_IPSECMOD_STRICT 523 +#define VAR_CACHEDB 524 +#define VAR_CACHEDB_BACKEND 525 +#define VAR_CACHEDB_SECRETSEED 526 +#define VAR_CACHEDB_REDISHOST 527 +#define VAR_CACHEDB_REDISPORT 528 +#define VAR_CACHEDB_REDISTIMEOUT 529 +#define VAR_CACHEDB_REDISEXPIRERECORDS 530 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 531 +#define VAR_FOR_UPSTREAM 532 +#define VAR_AUTH_ZONE 533 +#define VAR_ZONEFILE 534 +#define VAR_MASTER 535 +#define VAR_URL 536 +#define VAR_FOR_DOWNSTREAM 537 +#define VAR_FALLBACK_ENABLED 538 +#define VAR_TLS_ADDITIONAL_PORT 539 +#define VAR_LOW_RTT 540 +#define VAR_LOW_RTT_PERMIL 541 +#define VAR_FAST_SERVER_PERMIL 542 +#define VAR_FAST_SERVER_NUM 543 +#define VAR_ALLOW_NOTIFY 544 +#define VAR_TLS_WIN_CERT 545 +#define VAR_TCP_CONNECTION_LIMIT 546 +#define VAR_FORWARD_NO_CACHE 547 +#define VAR_STUB_NO_CACHE 548 +#define VAR_LOG_SERVFAIL 549 +#define VAR_DENY_ANY 550 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 551 +#define VAR_LOG_TAG_QUERYREPLY 552 +#define VAR_STREAM_WAIT_SIZE 553 +#define VAR_TLS_CIPHERS 554 +#define VAR_TLS_CIPHERSUITES 555 +#define VAR_TLS_USE_SNI 556 +#define VAR_IPSET 557 +#define VAR_IPSET_NAME_V4 558 +#define VAR_IPSET_NAME_V6 559 +#define VAR_TLS_SESSION_TICKET_KEYS 560 +#define VAR_RPZ 561 +#define VAR_TAGS 562 +#define VAR_RPZ_ACTION_OVERRIDE 563 +#define VAR_RPZ_CNAME_OVERRIDE 564 +#define VAR_RPZ_LOG 565 +#define VAR_RPZ_LOG_NAME 566 +#define VAR_DYNLIB 567 +#define VAR_DYNLIB_FILE 568 +#define VAR_EDNS_CLIENT_STRING 569 +#define VAR_EDNS_CLIENT_STRING_OPCODE 570 +#define VAR_NSID 571 +#define VAR_ZONEMD_PERMISSIVE_MODE 572 +#define VAR_ZONEMD_CHECK 573 +#define VAR_ZONEMD_REJECT_ABSENCE 574 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -701,7 +704,7 @@ union YYSTYPE char* str; -#line 705 "util/configparser.h" +#line 708 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; From b13bcab0898d090323ae13bc27b3afaf82930a51 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 15:14:22 +0200 Subject: [PATCH 14/27] - For #519: fix comments for doxygen. --- doc/Changelog | 1 + libunbound/worker.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 6e42c649b..879301387 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -10,6 +10,7 @@ the example configuration file. - For #519: yacc and lex. And fix python bindings, and test program unbound-dnstap-socket. + - For #519: fix comments for doxygen. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. diff --git a/libunbound/worker.h b/libunbound/worker.h index c1fc8e784..f50369f87 100644 --- a/libunbound/worker.h +++ b/libunbound/worker.h @@ -62,6 +62,7 @@ struct query_info; * @param addrlen: length of addr. * @param zone: delegation point name. * @param zonelen: length of zone name wireformat dname. + * @param tcp_upstream: use TCP for upstream queries. * @param ssl_upstream: use SSL for upstream queries. * @param tls_auth_name: if ssl_upstream, use this name with TLS * authentication. @@ -113,6 +114,7 @@ void worker_sighandler(int sig, void* arg); * @param addrlen: length of addr. * @param zone: wireformat dname of the zone. * @param zonelen: length of zone name. + * @param tcp_upstream: use TCP for upstream queries. * @param ssl_upstream: use SSL for upstream queries. * @param tls_auth_name: if ssl_upstream, use this name with TLS * authentication. From fdae4cdbbb132296b3b8654a0747d61ddb6b4a25 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Thu, 12 Aug 2021 16:06:02 +0200 Subject: [PATCH 15/27] - Fix to print error from unbound-anchor for writing to the key file, also when not verbose. --- doc/Changelog | 2 ++ smallapp/unbound-anchor.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 879301387..8deb1c73f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -11,6 +11,8 @@ - For #519: yacc and lex. And fix python bindings, and test program unbound-dnstap-socket. - For #519: fix comments for doxygen. + - Fix to print error from unbound-anchor for writing to the key + file, also when not verbose. 5 August 2021: Wouter - Tag for 1.13.2rc1 release. diff --git a/smallapp/unbound-anchor.c b/smallapp/unbound-anchor.c index 3e6fc6e6f..3bc25a10c 100644 --- a/smallapp/unbound-anchor.c +++ b/smallapp/unbound-anchor.c @@ -2044,13 +2044,13 @@ write_builtin_anchor(const char* file) const char* builtin_root_anchor = get_builtin_ds(); FILE* out = fopen(file, "w"); if(!out) { - if(verb) printf("%s: %s\n", file, strerror(errno)); - if(verb) printf(" could not write builtin anchor\n"); + printf("could not write builtin anchor, to file %s: %s\n", + file, strerror(errno)); return; } if(!fwrite(builtin_root_anchor, strlen(builtin_root_anchor), 1, out)) { - if(verb) printf("%s: %s\n", file, strerror(errno)); - if(verb) printf(" could not complete write builtin anchor\n"); + printf("could not complete write builtin anchor, to file %s: %s\n", + file, strerror(errno)); } fclose(out); } From 3b8b2e0dc721363a7c704d9de745c73737c0791b Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Thu, 12 Aug 2021 21:43:18 +0200 Subject: [PATCH 16/27] Changelog note for #514: - Merge PR #514, from ziollek: Docker environment for run tests. --- doc/Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 8deb1c73f..64621ef68 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +12 August 2021: George + - Merge PR #514, from ziollek: Docker environment for run tests. + 12 August 2021: Wouter - And 1.13.2rc1 became the 1.13.2 with the fix for the python module build. The current code repository continues with version 1.13.3. From a158f365b9b2d0b82960f8d7a89d016922be2fbf Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Thu, 12 Aug 2021 21:46:30 +0200 Subject: [PATCH 17/27] - For #514: generate configure. --- configure | 7 +++++++ doc/Changelog | 1 + 2 files changed, 8 insertions(+) diff --git a/configure b/configure index 4d01e3421..f5185fc5b 100755 --- a/configure +++ b/configure @@ -682,6 +682,7 @@ SSLLIB HAVE_SSL PC_CRYPTO_DEPENDENCY CONFIG_DATE +GCC_DOCKER_LINTFLAGS NETBSD_LINTFLAGS PYUNBOUND_UNINSTALL PYUNBOUND_INSTALL @@ -17887,6 +17888,12 @@ fi if test "`uname`" = "NetBSD"; then NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_' +fi + +if test "`uname -o`" = "GNU/Linux"; then + # splint cannot parse modern c99 header files + GCC_DOCKER_LINTFLAGS='-syntax' + fi CONFIG_DATE=`date +%Y%m%d` diff --git a/doc/Changelog b/doc/Changelog index 64621ef68..f518a972f 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,6 @@ 12 August 2021: George - Merge PR #514, from ziollek: Docker environment for run tests. + - For #514: generate configure. 12 August 2021: Wouter - And 1.13.2rc1 became the 1.13.2 with the fix for the python module From de31bcdf2ebe302d5befb866973f812f9ad87333 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 13 Aug 2021 09:21:47 +0200 Subject: [PATCH 18/27] - Support using system-wide crypto policies. --- doc/Changelog | 3 +++ util/net_help.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index f518a972f..62c747c85 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +13 August 2021: Wouter + - Support using system-wide crypto policies. + 12 August 2021: George - Merge PR #514, from ziollek: Docker environment for run tests. - For #514: generate configure. diff --git a/util/net_help.c b/util/net_help.c index 06bc1f5dd..b2d2061c9 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -945,9 +945,12 @@ listen_sslctx_setup(void* ctxt) } #endif #if defined(SHA256_DIGEST_LENGTH) && defined(USE_ECDSA) + /* if we detect system-wide crypto policies, use those */ + if (access( "/etc/crypto-policies/config", F_OK ) != 0 ) { /* if we have sha256, set the cipher list to have no known vulns */ - if(!SSL_CTX_set_cipher_list(ctx, "TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256")) - log_crypto_err("could not set cipher list with SSL_CTX_set_cipher_list"); + if(!SSL_CTX_set_cipher_list(ctx, "TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256")) + log_crypto_err("could not set cipher list with SSL_CTX_set_cipher_list"); + } #endif if((SSL_CTX_set_options(ctx, SSL_OP_CIPHER_SERVER_PREFERENCE) & From ad45e9b89ee18bbfeff0ed45da2c243ac17acfe6 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 13 Aug 2021 09:27:58 +0200 Subject: [PATCH 19/27] - Fix for #431: Squelch permission denied errors for udp connect, and udp send, they are visible at higher verbosity settings. --- doc/Changelog | 2 ++ services/outside_network.c | 1 + util/netevent.c | 1 + 3 files changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 62c747c85..1cd0f3bad 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 13 August 2021: Wouter - Support using system-wide crypto policies. + - Fix for #431: Squelch permission denied errors for udp connect, + and udp send, they are visible at higher verbosity settings. 12 August 2021: George - Merge PR #514, from ziollek: Docker environment for run tests. diff --git a/services/outside_network.c b/services/outside_network.c index a3f982e72..666e46f98 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -1962,6 +1962,7 @@ static int udp_connect_needs_log(int err) case ENETDOWN: # endif case EPERM: + case EACCES: if(verbosity >= VERB_ALGO) return 1; return 0; diff --git a/util/netevent.c b/util/netevent.c index 11c642a2b..e3eed838f 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -300,6 +300,7 @@ udp_send_errno_needs_log(struct sockaddr* addr, socklen_t addrlen) case ENETDOWN: # endif case EPERM: + case EACCES: if(verbosity < VERB_ALGO) return 0; default: From c8c2dfff222268ba0bc26f6b286239620746ef58 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 13 Aug 2021 14:43:11 +0200 Subject: [PATCH 20/27] - Fix zonemd verification of key that is not in DNS but in the zone and needs a chain of trust. --- doc/Changelog | 2 + services/authzone.c | 149 +++++++-- services/authzone.h | 2 + testdata/auth_zonemd_xfr_chain_keyinxfr.rpl | 315 ++++++++++++++++++++ 4 files changed, 442 insertions(+), 26 deletions(-) create mode 100644 testdata/auth_zonemd_xfr_chain_keyinxfr.rpl diff --git a/doc/Changelog b/doc/Changelog index 1cd0f3bad..c1548dd67 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,8 @@ - Support using system-wide crypto policies. - Fix for #431: Squelch permission denied errors for udp connect, and udp send, they are visible at higher verbosity settings. + - Fix zonemd verification of key that is not in DNS but in the zone + and needs a chain of trust. 12 August 2021: George - Merge PR #514, from ziollek: Docker environment for run tests. diff --git a/services/authzone.c b/services/authzone.c index e6e3a8cff..71b0331ca 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -8065,15 +8065,77 @@ zonemd_get_dnskey_from_anchor(struct auth_zone* z, struct module_env* env, return NULL; } +/** verify the DNSKEY from the zone with looked up DS record */ +static struct ub_packed_rrset_key* +auth_zone_verify_zonemd_key_with_ds(struct auth_zone* z, + struct module_env* env, struct module_stack* mods, + struct ub_packed_rrset_key* ds, int* is_insecure, char** why_bogus, + struct ub_packed_rrset_key* keystorage) +{ + struct auth_data* apex; + struct auth_rrset* dnskey_rrset; + enum sec_status sec; + struct val_env* ve; + int m; + + /* fetch DNSKEY from zone data */ + apex = az_find_name(z, z->name, z->namelen); + if(!apex) { + *why_bogus = "in verifywithDS, zone has no apex"; + return NULL; + } + dnskey_rrset = az_domain_rrset(apex, LDNS_RR_TYPE_DNSKEY); + if(!dnskey_rrset || dnskey_rrset->data->count==0) { + *why_bogus = "in verifywithDS, zone has no DNSKEY"; + return NULL; + } + + m = modstack_find(mods, "validator"); + if(m == -1) { + *why_bogus = "in verifywithDS, have no validator module"; + return NULL; + } + ve = (struct val_env*)env->modinfo[m]; + + memset(keystorage, 0, sizeof(*keystorage)); + keystorage->entry.key = keystorage; + keystorage->entry.data = dnskey_rrset->data; + keystorage->rk.dname = apex->name; + keystorage->rk.dname_len = apex->namelen; + keystorage->rk.type = htons(LDNS_RR_TYPE_DNSKEY); + keystorage->rk.rrset_class = htons(z->dclass); + auth_zone_log(z->name, VERB_QUERY, "zonemd: verify zone's DNSKEY with DS"); + sec = val_verify_DNSKEY_with_DS(env, ve, keystorage, ds, NULL, + why_bogus, NULL); + regional_free_all(env->scratch); + if(sec == sec_status_secure) { + /* success */ + return keystorage; + } else if(sec == sec_status_insecure) { + /* insecure */ + *is_insecure = 1; + } else { + /* bogus */ + *is_insecure = 0; + auth_zone_log(z->name, VERB_ALGO, + "zonemd: verify DNSKEY RRset with DS failed: %s", + *why_bogus); + if(*why_bogus == NULL) + *why_bogus = "verify failed"; + } + return NULL; +} + /** callback for ZONEMD lookup of DNSKEY */ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, enum sec_status sec, char* why_bogus, int ATTR_UNUSED(was_ratelimited)) { struct auth_zone* z = (struct auth_zone*)arg; struct module_env* env; - char* reason = NULL; - struct ub_packed_rrset_key* dnskey = NULL; + char* reason = NULL, *ds_bogus = NULL, *typestr="DNSKEY"; + struct ub_packed_rrset_key* dnskey = NULL, *ds = NULL; int is_insecure = 0; + struct ub_packed_rrset_key keystorage; lock_rw_wrlock(&z->lock); env = z->zonemd_callback_env; @@ -8084,16 +8146,21 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, lock_rw_unlock(&z->lock); return; /* stop on quit */ } + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DS) + typestr = "DS"; /* process result */ if(sec == sec_status_bogus) { reason = why_bogus; - if(!reason) - reason = "lookup of DNSKEY was bogus"; + if(!reason) { + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DNSKEY) + reason = "lookup of DNSKEY was bogus"; + else reason = "lookup of DS was bogus"; + } auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was bogus: %s", reason); + "zonemd lookup of %s was bogus: %s", typestr, reason); } else if(rcode == LDNS_RCODE_NOERROR) { - uint16_t wanted_qtype = LDNS_RR_TYPE_DNSKEY; + uint16_t wanted_qtype = z->zonemd_callback_qtype; struct regional* temp = env->scratch; struct query_info rq; struct reply_info* rep; @@ -8106,25 +8173,29 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, struct ub_packed_rrset_key* answer = reply_find_answer_rrset(&rq, rep); if(answer && sec == sec_status_secure) { - dnskey = answer; + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DNSKEY) + dnskey = answer; + else ds = answer; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was secure"); + "zonemd lookup of %s was secure", typestr); } else if(sec == sec_status_secure && !answer) { is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY has no content, but is secure, treat as insecure"); + "zonemd lookup of %s has no content, but is secure, treat as insecure", typestr); } else if(sec == sec_status_insecure) { is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was insecure"); + "zonemd lookup of %s was insecure", typestr); } else if(sec == sec_status_indeterminate) { is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was indeterminate, treat as insecure"); + "zonemd lookup of %s was indeterminate, treat as insecure", typestr); } else { auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY has nodata"); - reason = "lookup of DNSKEY has nodata"; + "zonemd lookup of %s has nodata", typestr); + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DNSKEY) + reason = "lookup of DNSKEY has nodata"; + else reason = "lookup of DS has nodata"; } } else if(rep && rq.qtype == wanted_qtype && query_dname_compare(z->name, rq.qname) == 0 && @@ -8137,34 +8208,46 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, * trust, as insecure. */ is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was secure NXDOMAIN, treat as insecure"); + "zonemd lookup of %s was secure NXDOMAIN, treat as insecure", typestr); } else if(rep && rq.qtype == wanted_qtype && query_dname_compare(z->name, rq.qname) == 0 && FLAGS_GET_RCODE(rep->flags) == LDNS_RCODE_NXDOMAIN && sec == sec_status_insecure) { is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was insecure NXDOMAIN, treat as insecure"); + "zonemd lookup of %s was insecure NXDOMAIN, treat as insecure", typestr); } else if(rep && rq.qtype == wanted_qtype && query_dname_compare(z->name, rq.qname) == 0 && FLAGS_GET_RCODE(rep->flags) == LDNS_RCODE_NXDOMAIN && sec == sec_status_indeterminate) { is_insecure = 1; auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY was indeterminate NXDOMAIN, treat as insecure"); + "zonemd lookup of %s was indeterminate NXDOMAIN, treat as insecure", typestr); } else { auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY has no answer"); - reason = "lookup of DNSKEY has no answer"; + "zonemd lookup of %s has no answer", typestr); + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DNSKEY) + reason = "lookup of DNSKEY has no answer"; + else reason = "lookup of DS has no answer"; } } else { auth_zone_log(z->name, VERB_ALGO, - "zonemd lookup of DNSKEY failed"); - reason = "lookup of DNSKEY failed"; + "zonemd lookup of %s failed", typestr); + if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DNSKEY) + reason = "lookup of DNSKEY failed"; + else reason = "lookup of DS failed"; + } + + if(!reason && !is_insecure && !dnskey && ds) { + dnskey = auth_zone_verify_zonemd_key_with_ds(z, env, + &env->mesh->mods, ds, &is_insecure, &ds_bogus, + &keystorage); + if(!dnskey && !is_insecure && !reason) + reason = "DNSKEY verify with DS failed"; } if(reason) { - auth_zone_zonemd_fail(z, env, reason, NULL, NULL); + auth_zone_zonemd_fail(z, env, reason, ds_bogus, NULL); lock_rw_unlock(&z->lock); return; } @@ -8183,14 +8266,21 @@ zonemd_lookup_dnskey(struct auth_zone* z, struct module_env* env) uint16_t qflags = BIT_RD; struct edns_data edns; sldns_buffer* buf = env->scratch_buffer; + int fetch_ds = 0; + if(!z->fallback_enabled) { + /* we cannot actually get the DNSKEY, because it is in the + * zone we have ourselves, and it is not served yet + * (possibly), so fetch type DS */ + fetch_ds = 1; + } if(z->zonemd_callback_env) { /* another worker is already working on the callback * for the DNSKEY lookup for ZONEMD verification. * We do not also have to do ZONEMD verification, let that * worker do it */ auth_zone_log(z->name, VERB_ALGO, - "zonemd needs lookup of DNSKEY and that already worked on by another worker"); + "zonemd needs lookup of %s and that already is worked on by another worker", (fetch_ds?"DS":"DNSKEY")); return 1; } @@ -8199,14 +8289,17 @@ zonemd_lookup_dnskey(struct auth_zone* z, struct module_env* env) qinfo.qname_len = z->namelen; qinfo.qname = z->name; qinfo.qclass = z->dclass; - qinfo.qtype = LDNS_RR_TYPE_DNSKEY; + if(fetch_ds) + qinfo.qtype = LDNS_RR_TYPE_DS; + else qinfo.qtype = LDNS_RR_TYPE_DNSKEY; qinfo.local_alias = NULL; if(verbosity >= VERB_ALGO) { char buf1[512]; char buf2[LDNS_MAX_DOMAINLEN+1]; dname_str(z->name, buf2); - snprintf(buf1, sizeof(buf1), "auth zone %s: lookup DNSKEY " - "for zonemd verification", buf2); + snprintf(buf1, sizeof(buf1), "auth zone %s: lookup %s " + "for zonemd verification", buf2, + (fetch_ds?"DS":"DNSKEY")); log_query_info(VERB_ALGO, buf1, &qinfo); } edns.edns_present = 1; @@ -8221,12 +8314,14 @@ zonemd_lookup_dnskey(struct auth_zone* z, struct module_env* env) /* store the worker-specific module env for the callback. * We can then reference this when the callback executes */ z->zonemd_callback_env = env; + z->zonemd_callback_qtype = qinfo.qtype; /* the callback can be called straight away */ lock_rw_unlock(&z->lock); if(!mesh_new_callback(env->mesh, &qinfo, qflags, &edns, buf, 0, &auth_zonemd_dnskey_lookup_callback, z)) { lock_rw_wrlock(&z->lock); - log_err("out of memory lookup up dnskey for zonemd"); + log_err("out of memory lookup of %s for zonemd", + (fetch_ds?"DS":"DNSKEY")); return 0; } lock_rw_wrlock(&z->lock); @@ -8245,6 +8340,8 @@ void auth_zone_verify_zonemd(struct auth_zone* z, struct module_env* env, * If not present check if absence is allowed by DNSSEC */ if(!z->zonemd_check) return; + if(z->data.count == 0) + return; /* no data */ /* if zone is under a trustanchor */ /* is it equal to trustanchor - get dnskey's verified */ diff --git a/services/authzone.h b/services/authzone.h index ffe234d59..1c6d5cf42 100644 --- a/services/authzone.h +++ b/services/authzone.h @@ -143,6 +143,8 @@ struct auth_zone { * worker has already picked up the zonemd verification task and * this worker does not have to do it as well. */ struct module_env* zonemd_callback_env; + /** for the zonemd callback, the type of data looked up */ + uint16_t zonemd_callback_qtype; /** zone has been deleted */ int zone_deleted; /** deletelist pointer, unused normally except during delete */ diff --git a/testdata/auth_zonemd_xfr_chain_keyinxfr.rpl b/testdata/auth_zonemd_xfr_chain_keyinxfr.rpl new file mode 100644 index 000000000..2feec88c0 --- /dev/null +++ b/testdata/auth_zonemd_xfr_chain_keyinxfr.rpl @@ -0,0 +1,315 @@ +; config options +server: + target-fetch-policy: "0 0 0 0 0" + trust-anchor: "com. DS 1444 8 2 0d72034e3e18a9ef383c164b68302433bbde957616e10cf44575fea2abae469c" + trust-anchor-signaling: no + val-override-date: 20201020135527 + +auth-zone: + name: "example.com." + ## zonefile (or none). + ## zonefile: "example.com.zone" + ## master by IP address or hostname + ## can list multiple masters, each on one line. + ## master: + master: 1.2.3.44 + ## url for http fetch + ## url: + ## queries from downstream clients get authoritative answers. + ## for-downstream: yes + + ## The for-downstream and fallback are disabled, the key cannot be + ## retrieved by DNS lookup, it is in the xfr itself. + ## only after the zone is loaded can it be looked up. + for-downstream: no + ## queries are used to fetch authoritative answers from this zone, + ## instead of unbound itself sending queries there. + ## for-upstream: yes + for-upstream: yes + ## on failures with for-upstream, fallback to sending queries to + ## the authority servers + ## fallback-enabled: no + fallback-enabled: no + zonemd-check: yes + + ## this line generates zonefile: \n"/tmp/xxx.example.com"\n + zonefile: +TEMPFILE_NAME example.com + ## this is the inline file /tmp/xxx.example.com + ## the tempfiles are deleted when the testrun is over. +TEMPFILE_CONTENTS example.com +TEMPFILE_END + +stub-zone: + name: "." + stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. +CONFIG_END + +SCENARIO_BEGIN Test authority zone with AXFR with ZONEMD with key in xfr + +; K.ROOT-SERVERS.NET. +RANGE_BEGIN 0 100 + ADDRESS 193.0.14.129 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +. IN NS +SECTION ANSWER +. IN NS K.ROOT-SERVERS.NET. +SECTION ADDITIONAL +K.ROOT-SERVERS.NET. IN A 193.0.14.129 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode subdomain +ADJUST copy_id copy_query +REPLY QR NOERROR +SECTION QUESTION +com. IN NS +SECTION AUTHORITY +com. IN NS a.gtld-servers.net. +SECTION ADDITIONAL +a.gtld-servers.net. IN A 192.5.6.30 +ENTRY_END +RANGE_END + +; a.gtld-servers.net. +RANGE_BEGIN 0 100 + ADDRESS 192.5.6.30 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +com. IN NS +SECTION ANSWER +com. IN NS a.gtld-servers.net. +SECTION ADDITIONAL +a.gtld-servers.net. IN A 192.5.6.30 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qname qtype +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example.com. IN DS +SECTION ANSWER +example.com. 3600 IN DS 55566 8 2 9c148338951ce1c3b5cd3da532f3d90dfcf92595148022f2c2fd98e5deee90af +example.com. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 com. BpV1M171SSkbdlGawwweJwQ0W+aNaCrgkt2QTsxCvbo1acR5i3AKm4REOUzo4I36lRx26mYkF9Topkeu0aFmov7P2uUhCxk4faFK7k87k97FAqZaDGp/K9b3YCfiwJBc5pJSUW0ndU/Ve5zAh/wL493RMSC7LwJr5JjV0NxydFk= +ENTRY_END + +ENTRY_BEGIN +MATCH opcode subdomain +ADJUST copy_id copy_query +REPLY QR NOERROR +SECTION QUESTION +example.com. IN NS +SECTION AUTHORITY +example.com. IN NS ns.example.com. +example.com. 3600 IN DS 55566 8 2 9c148338951ce1c3b5cd3da532f3d90dfcf92595148022f2c2fd98e5deee90af +example.com. 3600 IN RRSIG DS 8 2 3600 20201116135527 20201019135527 1444 com. BpV1M171SSkbdlGawwweJwQ0W+aNaCrgkt2QTsxCvbo1acR5i3AKm4REOUzo4I36lRx26mYkF9Topkeu0aFmov7P2uUhCxk4faFK7k87k97FAqZaDGp/K9b3YCfiwJBc5pJSUW0ndU/Ve5zAh/wL493RMSC7LwJr5JjV0NxydFk= +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.44 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +com. IN DNSKEY +SECTION ANSWER +com. 3600 IN DNSKEY 257 3 8 AwEAAbd9WqjzE2Pynz21OG5doSf9hFzMr5dhzz2waZ3vTa+0o5r7AjTAqmA1yH/B3+aAMihUm5ucZSfVqo7+kOaRE8yFj9aivOmA1n1+JLevJq/oyvQyjxQN2Qb89LyaNUT5oKZIiL+uyyhNW3KDR3SSbQ/GBwQNDHVcZi+JDR3RC0r7 ;{id = 1444 (ksk), size = 1024b} +com. 3600 IN RRSIG DNSKEY 8 1 3600 20201116135527 20201019135527 1444 com. BEOMfWvi6RgnHaHsst+Ed265hBuCkgMR7gDpu89J7ZrVL6DzMKnNVFdgjl/9xwLj/pkukc7qeLSHjAfLlN0E4THW7PVshscQnjvXCkktG2Ejx9fTyllAqeGDh9z9QDGlQZIGTMgb9413qZhNqe2Tda9PTJRpiZ8b4bdQp6V1kVo= +SECTION ADDITIONAL +ENTRY_END +RANGE_END + +; ns.example.net. +RANGE_BEGIN 0 100 + ADDRESS 1.2.3.44 +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +example.net. IN NS +SECTION ANSWER +example.net. IN NS ns.example.net. +SECTION ADDITIONAL +ns.example.net. IN A 1.2.3.44 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ns.example.net. IN A +SECTION ANSWER +ns.example.net. IN A 1.2.3.44 +SECTION AUTHORITY +example.net. IN NS ns.example.net. +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ns.example.net. IN AAAA +SECTION AUTHORITY +example.net. IN NS ns.example.net. +SECTION ADDITIONAL +www.example.net. IN A 1.2.3.44 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +example.com. IN NS +SECTION ANSWER +example.com. IN NS ns.example.net. +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +www.example.com. IN A +SECTION ANSWER +www.example.com. IN A 10.20.30.40 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +example.com. IN SOA +SECTION ANSWER +; serial, refresh, retry, expire, minimum +example.com. IN SOA ns.example.com. hostmaster.example.com. 1 3600 900 86400 3600 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example.com. IN AXFR +SECTION ANSWER +example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 200154054 28800 7200 604800 3600 +example.com. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 55566 example.com. gcFHT/Q4iDZ78CK6fyY2HZr8sRtgH2Rna9fEs06RW0gqMnfDntweoIaBamOZ7NlAP84aY2bZeanmEccmkHexByUpodCoKQ4NzVXctLr0TO4PVoFyfUfj62fjhM56SF8ioDxsoDQcPtYXcjNQjwfntWofMqHCMxrb9LzbgePzhOM= +example.com. 3600 IN NS ns.example.com. +example.com. 3600 IN RRSIG NS 8 2 3600 20201116135527 20201019135527 55566 example.com. X+V3XsbJbBi9OsHpjMkGCox8RLY/uXp/XX/O/flTrIre9fMDWm9ZGnewtuQFpLgGc6hUTi0eLsuRWRA5fZXEKUBhmoR2Ph01KgE1gvlL7v6zPWQwXVcBRUr3mOSbYdNNkHkXEjiDBGEhNkfqR216zNgw563eEGXOkLUFNIx5Zpg= +example.com. 3600 IN DNSKEY 256 3 8 AwEAAdug/L739i0mgN2nuK/bhxu3wFn5Ud9nK2+XUmZQlPUEZUC5YZvm1rfMmEWTGBn87fFxEu/kjFZHJ55JLzqsbbpVHLbmKCTT2gYR2FV2WDKROGKuYbVkJIXdKAjJ0ONuK507NinYvlWXIoxHn22KAWOd9wKgSTNHBlmGkX+ts3hh ;{id = 55566 (zsk), size = 1024b} +example.com. 3600 IN RRSIG DNSKEY 8 2 3600 20201116135527 20201019135527 55566 example.com. fsdnVg38PKQTH2mDOwkXL6Jre7JP7Gf8WI3CvIbmeYQUJtAlpcSbZkS3wInm3kKMxOuT55BWzndQzpfmpo91OqJjG27W0k9301NMLUwFprA6b9HK+iPAT0JpYPDPzcm1bQdarLzLS+eD/GPwmyVSX7Gze+08VfE8m8sOW2r7UjA= +example.com. 3600 IN TYPE63 \# 70 0bee1bc6010258f7620f93204bbb31b44f795b3409cc4abd9ef5601decc15675bd7751213152984eddce0626e6062e744b03b3e47711202fbb79e4a2eb8bc5cf46741b5cae6f +example.com. 3600 IN RRSIG TYPE63 8 2 3600 20201116135527 20201019135527 55566 example.com. orn8ZF/yqj9u4WrhiO6gtEcTaVsnZSWWZLfXhcIOiWSB8kKCxtZl5cG17dD3Du1NllUwMRqkp0KleLhIoUS9xeQ/0x05u+CYLrfQ62oAiD7q54ZQzpXJIH52aQzKV70ZnO03CZowhQBnetmIoKX6xLogKo8pt+BdQbo3oVHxV8Y= +example.com. 3600 IN NSEC bar.example.com. NS SOA RRSIG NSEC DNSKEY TYPE63 +example.com. 3600 IN RRSIG NSEC 8 2 3600 20201116135527 20201019135527 55566 example.com. ufLrlOQprAqjnH85Rt3T0Mxd3ZB0mBeeNIr84eFJ8Rk6WiWEPm0Y1R7GRufNI24Mj7iqLcL4nJM6KK6B7dJqjqu73jw1acuYNnbsoV2BNDRXRFP2FNWTpctVdi+955f3FzgsmEJXfGiSUG0YXAEcZmdCPCn5ii2jk8mk7r6KKYo= +bar.example.com. 3600 IN A 1.2.3.4 +bar.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. NYhmRicF4C9+YxpWeQrepy4ALM1CM0USoDuGi3W5Xtp4/+YpCJfSIdR9vlJaJ2WayYuZrz9Ai2ci7oWwE1Fn3oywGwCKvGo9m0c3mC2eEtphE19wrop6pWu6um4RiFhmzYS1voraA3PAdYzze9U4NHzlk0+sb5vNZW9dSZS30Ds= +bar.example.com. 3600 IN NSEC ding.example.com. A RRSIG NSEC +bar.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. VhsGuBx20DXQZNU8ITAMnasn6NVyEjN9xtB8msH5xJn80UCuaqvFBURzcPWN3aHnykEvGfdPF/9P3WvlON0cMikWkqSLy6Q9bpvgAq13HWYh+ZcDoqLtICaB7RkBQc+6aHAqZFyQbD8/m8Kxt5eVJtV6rEuf+yPX0+3aXHhsRg0= +ding.example.com. 3600 IN A 1.2.3.4 +ding.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. OERsruISkpd1s68ute8Xm8YXisBCTkkiDMt34K+0dVqvySOJq63d3qN18BeUxZxLyHDB1eR3nZZKqEdkTqrv2r98skhWhjnOECpFbu5gKjtN/KPexbbJ+rxC0QqciuWOC7M6YE0cvI17/RB9KhVRy5rqY2X4Gt2wk2CNeD1dAko= +ding.example.com. 3600 IN NSEC foo.example.com. A RRSIG NSEC +ding.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. nb1W2aaKrU5iAQiY8gMsoMOejID19JMTEwY2rRoe+KsvzMs0rE0ifEkqit4blXaU0tfy0foJ70uqdJFqBoGz1NcSwZ6GNk/iNfGvG3XpxZ/zqEe7kkIucqqei794G7z9psqV94yZ3WaT+IswPpWrSaWv1w41RtcWufPhe4fOAmU= +foo.example.com. 3600 IN A 1.2.3.4 +foo.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. ZcUngb2pUejwnsshbJN/Dfr+Bzu8fcZXyqLArQ+10Bw1IPHyfx7yyUJ43V5tTYVHPSEsJzTnaWj+olVrNhVZxq5e0pgzSYPfGln2FEItEvMIOn33j8yKTpPW2MLyuFF5ZkXhosG20EUwRMvMmRHRz9mIZfwWoMbSGPukmLh8zMA= +foo.example.com. 3600 IN NSEC ns.example.com. A RRSIG NSEC +foo.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. fUZEpkEULRWDntN5Z7Kr8M83Hjhf08ECMKRpo6IBoBc3ayenj+YMgWAvFXC825wjENPYYWNGag0d32U83zCZxqgv+8uXZd3B7QDpTbL41aWZdc++s5YWTkYjyOWwJ1XHOv4nL3qEnJBXVzo/E1gbSKhTFuG97i+7J1MFd9MsC5s= +ns.example.com. 3600 IN A 127.0.0.1 +ns.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. SiuxuPtN/ITd+Z20j8UNUHJWbLHirE8zQOWMv5fAZ1rPKpAidrZgUL8J417GdrTwkueU2ywAJ7EzFJSwNTa7o/wUnq7svmOR6Ze6UQsKuZFZGEfqPNDRp4YuF86LU5jChuo+f/IRpydHrxVwGxDPCR9KarDM+ewfW+yI5bZeZcg= +ns.example.com. 3600 IN NSEC www.example.com. A RRSIG NSEC +ns.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. 0upKNYjiow4NDJm3I1RbUddE9GGuFYEVKswww5BAc/6WHuukupncL30lskvcSKGpByDssP2Hi2CufyEtYeGWh6q1TxtOFRqFBX1p6Q5b3tBlCtvv4h31dQR9uqLvq+GkGS5MR+0LO5kWagIpZmnI8YY5plVdXEtNbp2Ar8zvz/A= +www.example.com. 3600 IN A 127.0.0.1 +www.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. AaIeICaPjV50TDrpbyOn94+hs8EYIMTmN4pYqj7e8GIGimqQIk5jgpwSx6SOoOF+uOqkf9GKHkQTn5YVGaeXwEQleg7mPTmMYKAOk06Y7MFUO1Vwt1Vt7Wo+Cpa3x2a1CmEkfFOi4WqP43VJnUtjjKmXoKRz3VUmqByyJYUAGbQ= +www.example.com. 3600 IN NSEC example.com. A RRSIG NSEC +www.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. meg/t6nIBqQZ0d5/dT7uu/3CuP4vE+HxqFQaj2fjUNceA/6C7QIQnqQ5Kyblg+XijDkQX0yvyFNHYdgF16UDgFT7tlNUCHk1SpF5BWzV4c4tBEhxASTz7UQo111O3Tyd6CldPzO/Se15Ud0/ZYltHEqWTfY5nJoXC/OJD9V2QOI= +example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 200154054 28800 7200 604800 3600 +ENTRY_END +RANGE_END + +STEP 1 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +www.example.com. IN A +ENTRY_END + +; recursion happens here. +STEP 20 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA SERVFAIL +SECTION QUESTION +www.example.com. IN A +SECTION ANSWER +ENTRY_END + +STEP 30 TIME_PASSES ELAPSE 10 +STEP 40 TRAFFIC + +STEP 50 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +www.example.com. IN A +ENTRY_END + +; recursion happens here. +STEP 60 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +www.example.com. IN A +SECTION ANSWER +www.example.com. IN A 127.0.0.1 +ENTRY_END + +; the zonefile was updated with new contents +STEP 70 CHECK_TEMPFILE example.com +FILE_BEGIN +example.com. 3600 IN SOA ns.example.com. hostmaster.example.com. 200154054 28800 7200 604800 3600 +example.com. 3600 IN RRSIG SOA 8 2 3600 20201116135527 20201019135527 55566 example.com. gcFHT/Q4iDZ78CK6fyY2HZr8sRtgH2Rna9fEs06RW0gqMnfDntweoIaBamOZ7NlAP84aY2bZeanmEccmkHexByUpodCoKQ4NzVXctLr0TO4PVoFyfUfj62fjhM56SF8ioDxsoDQcPtYXcjNQjwfntWofMqHCMxrb9LzbgePzhOM= +example.com. 3600 IN NS ns.example.com. +example.com. 3600 IN RRSIG NS 8 2 3600 20201116135527 20201019135527 55566 example.com. X+V3XsbJbBi9OsHpjMkGCox8RLY/uXp/XX/O/flTrIre9fMDWm9ZGnewtuQFpLgGc6hUTi0eLsuRWRA5fZXEKUBhmoR2Ph01KgE1gvlL7v6zPWQwXVcBRUr3mOSbYdNNkHkXEjiDBGEhNkfqR216zNgw563eEGXOkLUFNIx5Zpg= +example.com. 3600 IN NSEC bar.example.com. NS SOA RRSIG NSEC DNSKEY ZONEMD +example.com. 3600 IN RRSIG NSEC 8 2 3600 20201116135527 20201019135527 55566 example.com. ufLrlOQprAqjnH85Rt3T0Mxd3ZB0mBeeNIr84eFJ8Rk6WiWEPm0Y1R7GRufNI24Mj7iqLcL4nJM6KK6B7dJqjqu73jw1acuYNnbsoV2BNDRXRFP2FNWTpctVdi+955f3FzgsmEJXfGiSUG0YXAEcZmdCPCn5ii2jk8mk7r6KKYo= +example.com. 3600 IN DNSKEY 256 3 8 AwEAAdug/L739i0mgN2nuK/bhxu3wFn5Ud9nK2+XUmZQlPUEZUC5YZvm1rfMmEWTGBn87fFxEu/kjFZHJ55JLzqsbbpVHLbmKCTT2gYR2FV2WDKROGKuYbVkJIXdKAjJ0ONuK507NinYvlWXIoxHn22KAWOd9wKgSTNHBlmGkX+ts3hh ;{id = 55566} +example.com. 3600 IN RRSIG DNSKEY 8 2 3600 20201116135527 20201019135527 55566 example.com. fsdnVg38PKQTH2mDOwkXL6Jre7JP7Gf8WI3CvIbmeYQUJtAlpcSbZkS3wInm3kKMxOuT55BWzndQzpfmpo91OqJjG27W0k9301NMLUwFprA6b9HK+iPAT0JpYPDPzcm1bQdarLzLS+eD/GPwmyVSX7Gze+08VfE8m8sOW2r7UjA= +example.com. 3600 IN ZONEMD 200154054 1 2 58F7620F93204BBB31B44F795B3409CC4ABD9EF5601DECC15675BD7751213152984EDDCE0626E6062E744B03B3E47711202FBB79E4A2EB8BC5CF46741B5CAE6F +example.com. 3600 IN RRSIG ZONEMD 8 2 3600 20201116135527 20201019135527 55566 example.com. orn8ZF/yqj9u4WrhiO6gtEcTaVsnZSWWZLfXhcIOiWSB8kKCxtZl5cG17dD3Du1NllUwMRqkp0KleLhIoUS9xeQ/0x05u+CYLrfQ62oAiD7q54ZQzpXJIH52aQzKV70ZnO03CZowhQBnetmIoKX6xLogKo8pt+BdQbo3oVHxV8Y= +bar.example.com. 3600 IN A 1.2.3.4 +bar.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. NYhmRicF4C9+YxpWeQrepy4ALM1CM0USoDuGi3W5Xtp4/+YpCJfSIdR9vlJaJ2WayYuZrz9Ai2ci7oWwE1Fn3oywGwCKvGo9m0c3mC2eEtphE19wrop6pWu6um4RiFhmzYS1voraA3PAdYzze9U4NHzlk0+sb5vNZW9dSZS30Ds= +bar.example.com. 3600 IN NSEC ding.example.com. A RRSIG NSEC +bar.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. VhsGuBx20DXQZNU8ITAMnasn6NVyEjN9xtB8msH5xJn80UCuaqvFBURzcPWN3aHnykEvGfdPF/9P3WvlON0cMikWkqSLy6Q9bpvgAq13HWYh+ZcDoqLtICaB7RkBQc+6aHAqZFyQbD8/m8Kxt5eVJtV6rEuf+yPX0+3aXHhsRg0= +ding.example.com. 3600 IN A 1.2.3.4 +ding.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. OERsruISkpd1s68ute8Xm8YXisBCTkkiDMt34K+0dVqvySOJq63d3qN18BeUxZxLyHDB1eR3nZZKqEdkTqrv2r98skhWhjnOECpFbu5gKjtN/KPexbbJ+rxC0QqciuWOC7M6YE0cvI17/RB9KhVRy5rqY2X4Gt2wk2CNeD1dAko= +ding.example.com. 3600 IN NSEC foo.example.com. A RRSIG NSEC +ding.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. nb1W2aaKrU5iAQiY8gMsoMOejID19JMTEwY2rRoe+KsvzMs0rE0ifEkqit4blXaU0tfy0foJ70uqdJFqBoGz1NcSwZ6GNk/iNfGvG3XpxZ/zqEe7kkIucqqei794G7z9psqV94yZ3WaT+IswPpWrSaWv1w41RtcWufPhe4fOAmU= +foo.example.com. 3600 IN A 1.2.3.4 +foo.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. ZcUngb2pUejwnsshbJN/Dfr+Bzu8fcZXyqLArQ+10Bw1IPHyfx7yyUJ43V5tTYVHPSEsJzTnaWj+olVrNhVZxq5e0pgzSYPfGln2FEItEvMIOn33j8yKTpPW2MLyuFF5ZkXhosG20EUwRMvMmRHRz9mIZfwWoMbSGPukmLh8zMA= +foo.example.com. 3600 IN NSEC ns.example.com. A RRSIG NSEC +foo.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. fUZEpkEULRWDntN5Z7Kr8M83Hjhf08ECMKRpo6IBoBc3ayenj+YMgWAvFXC825wjENPYYWNGag0d32U83zCZxqgv+8uXZd3B7QDpTbL41aWZdc++s5YWTkYjyOWwJ1XHOv4nL3qEnJBXVzo/E1gbSKhTFuG97i+7J1MFd9MsC5s= +ns.example.com. 3600 IN A 127.0.0.1 +ns.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. SiuxuPtN/ITd+Z20j8UNUHJWbLHirE8zQOWMv5fAZ1rPKpAidrZgUL8J417GdrTwkueU2ywAJ7EzFJSwNTa7o/wUnq7svmOR6Ze6UQsKuZFZGEfqPNDRp4YuF86LU5jChuo+f/IRpydHrxVwGxDPCR9KarDM+ewfW+yI5bZeZcg= +ns.example.com. 3600 IN NSEC www.example.com. A RRSIG NSEC +ns.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. 0upKNYjiow4NDJm3I1RbUddE9GGuFYEVKswww5BAc/6WHuukupncL30lskvcSKGpByDssP2Hi2CufyEtYeGWh6q1TxtOFRqFBX1p6Q5b3tBlCtvv4h31dQR9uqLvq+GkGS5MR+0LO5kWagIpZmnI8YY5plVdXEtNbp2Ar8zvz/A= +www.example.com. 3600 IN A 127.0.0.1 +www.example.com. 3600 IN RRSIG A 8 3 3600 20201116135527 20201019135527 55566 example.com. AaIeICaPjV50TDrpbyOn94+hs8EYIMTmN4pYqj7e8GIGimqQIk5jgpwSx6SOoOF+uOqkf9GKHkQTn5YVGaeXwEQleg7mPTmMYKAOk06Y7MFUO1Vwt1Vt7Wo+Cpa3x2a1CmEkfFOi4WqP43VJnUtjjKmXoKRz3VUmqByyJYUAGbQ= +www.example.com. 3600 IN NSEC example.com. A RRSIG NSEC +www.example.com. 3600 IN RRSIG NSEC 8 3 3600 20201116135527 20201019135527 55566 example.com. meg/t6nIBqQZ0d5/dT7uu/3CuP4vE+HxqFQaj2fjUNceA/6C7QIQnqQ5Kyblg+XijDkQX0yvyFNHYdgF16UDgFT7tlNUCHk1SpF5BWzV4c4tBEhxASTz7UQo111O3Tyd6CldPzO/Se15Ud0/ZYltHEqWTfY5nJoXC/OJD9V2QOI= +FILE_END + +SCENARIO_END From 4034c009bb8fc78299996b0a23154653ede7c30a Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Fri, 13 Aug 2021 15:24:53 +0200 Subject: [PATCH 21/27] - zonemd, fix order of bogus printout string manipulation. --- doc/Changelog | 1 + services/authzone.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index c1548dd67..3ec77a522 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ and udp send, they are visible at higher verbosity settings. - Fix zonemd verification of key that is not in DNS but in the zone and needs a chain of trust. + - zonemd, fix order of bogus printout string manipulation. 12 August 2021: George - Merge PR #514, from ziollek: Docker environment for run tests. diff --git a/services/authzone.c b/services/authzone.c index 71b0331ca..d4a17f06e 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -8104,7 +8104,7 @@ auth_zone_verify_zonemd_key_with_ds(struct auth_zone* z, keystorage->rk.dname_len = apex->namelen; keystorage->rk.type = htons(LDNS_RR_TYPE_DNSKEY); keystorage->rk.rrset_class = htons(z->dclass); - auth_zone_log(z->name, VERB_QUERY, "zonemd: verify zone's DNSKEY with DS"); + auth_zone_log(z->name, VERB_QUERY, "zonemd: verify zone DNSKEY with DS"); sec = val_verify_DNSKEY_with_DS(env, ve, keystorage, ds, NULL, why_bogus, NULL); regional_free_all(env->scratch); @@ -8117,11 +8117,11 @@ auth_zone_verify_zonemd_key_with_ds(struct auth_zone* z, } else { /* bogus */ *is_insecure = 0; + if(*why_bogus == NULL) + *why_bogus = "verify failed"; auth_zone_log(z->name, VERB_ALGO, "zonemd: verify DNSKEY RRset with DS failed: %s", *why_bogus); - if(*why_bogus == NULL) - *why_bogus = "verify failed"; } return NULL; } From 25b7eb3c7cb0498b113fa3372a2f2b077bdf93af Mon Sep 17 00:00:00 2001 From: Florian Obser Date: Mon, 16 Aug 2021 11:27:40 +0200 Subject: [PATCH 22/27] Make sldns_str2wire_svcparam_buf() static. The function is only used in this translation unit and prevents a "no previous prototype" warning. --- sldns/str2wire.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sldns/str2wire.c b/sldns/str2wire.c index fbd615cbf..293abf79a 100644 --- a/sldns/str2wire.c +++ b/sldns/str2wire.c @@ -1565,7 +1565,7 @@ sldns_str2wire_svcparam_value(const char *key, size_t key_len, return LDNS_WIREPARSE_ERR_GENERAL; } -int sldns_str2wire_svcparam_buf(const char* str, uint8_t* rd, size_t* rd_len) +static int sldns_str2wire_svcparam_buf(const char* str, uint8_t* rd, size_t* rd_len) { const char* eq_pos; char unescaped_val[LDNS_MAX_RDFLEN]; From 2a72845576184166c655c898abcae43e4c2df6e7 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Mon, 16 Aug 2021 14:14:32 +0200 Subject: [PATCH 23/27] Changelog note for #528: - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() static. --- doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 3ec77a522..4e38d067d 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +16 August 2021: George + - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() + static. + 13 August 2021: Wouter - Support using system-wide crypto policies. - Fix for #431: Squelch permission denied errors for udp connect, From d0cc58be3d5c3ebc4b86913df5a87028a2fdab82 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Mon, 16 Aug 2021 16:14:32 +0200 Subject: [PATCH 24/27] - Fix to support harden-algo-downgrade for ZONEMD dnssec checks. --- doc/Changelog | 3 +++ services/authzone.c | 39 ++++++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 4e38d067d..dc4939417 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,9 @@ - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() static. +16 August 2021: Wouter + - Fix to support harden-algo-downgrade for ZONEMD dnssec checks. + 13 August 2021: Wouter - Support using system-wide crypto policies. - Fix for #431: Squelch permission denied errors for udp connect, diff --git a/services/authzone.c b/services/authzone.c index d4a17f06e..f9f5bba9e 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -7683,7 +7683,7 @@ static void auth_zone_log(uint8_t* name, enum verbosity_value level, static int zonemd_dnssec_verify_rrset(struct auth_zone* z, struct module_env* env, struct module_stack* mods, struct ub_packed_rrset_key* dnskey, struct auth_data* node, - struct auth_rrset* rrset, char** why_bogus) + struct auth_rrset* rrset, char** why_bogus, uint8_t* sigalg) { struct ub_packed_rrset_key pk; enum sec_status sec; @@ -7711,7 +7711,7 @@ static int zonemd_dnssec_verify_rrset(struct auth_zone* z, auth_zone_log(z->name, VERB_ALGO, "zonemd: verify %s RRset with DNSKEY", typestr); } - sec = dnskeyset_verify_rrset(env, ve, &pk, dnskey, NULL, why_bogus, + sec = dnskeyset_verify_rrset(env, ve, &pk, dnskey, sigalg, why_bogus, LDNS_SECTION_ANSWER, NULL); if(sec == sec_status_secure) { return 1; @@ -7755,7 +7755,7 @@ static int nsec3_of_param_has_type(struct auth_rrset* nsec3, int algo, static int zonemd_check_dnssec_absence(struct auth_zone* z, struct module_env* env, struct module_stack* mods, struct ub_packed_rrset_key* dnskey, struct auth_data* apex, - char** reason, char** why_bogus) + char** reason, char** why_bogus, uint8_t* sigalg) { struct auth_rrset* nsec = NULL; if(!apex) { @@ -7767,7 +7767,7 @@ static int zonemd_check_dnssec_absence(struct auth_zone* z, struct ub_packed_rrset_key pk; /* dnssec verify the NSEC */ if(!zonemd_dnssec_verify_rrset(z, env, mods, dnskey, apex, - nsec, why_bogus)) { + nsec, why_bogus, sigalg)) { *reason = "DNSSEC verify failed for NSEC RRset"; return 0; } @@ -7810,7 +7810,7 @@ static int zonemd_check_dnssec_absence(struct auth_zone* z, } /* dnssec verify the NSEC3 */ if(!zonemd_dnssec_verify_rrset(z, env, mods, dnskey, match, - nsec3, why_bogus)) { + nsec3, why_bogus, sigalg)) { *reason = "DNSSEC verify failed for NSEC3 RRset"; return 0; } @@ -7831,7 +7831,8 @@ static int zonemd_check_dnssec_absence(struct auth_zone* z, static int zonemd_check_dnssec_soazonemd(struct auth_zone* z, struct module_env* env, struct module_stack* mods, struct ub_packed_rrset_key* dnskey, struct auth_data* apex, - struct auth_rrset* zonemd_rrset, char** reason, char** why_bogus) + struct auth_rrset* zonemd_rrset, char** reason, char** why_bogus, + uint8_t* sigalg) { struct auth_rrset* soa; if(!apex) { @@ -7844,12 +7845,12 @@ static int zonemd_check_dnssec_soazonemd(struct auth_zone* z, return 0; } if(!zonemd_dnssec_verify_rrset(z, env, mods, dnskey, apex, soa, - why_bogus)) { + why_bogus, sigalg)) { *reason = "DNSSEC verify failed for SOA RRset"; return 0; } if(!zonemd_dnssec_verify_rrset(z, env, mods, dnskey, apex, - zonemd_rrset, why_bogus)) { + zonemd_rrset, why_bogus, sigalg)) { *reason = "DNSSEC verify failed for ZONEMD RRset"; return 0; } @@ -7908,12 +7909,14 @@ static void auth_zone_zonemd_fail(struct auth_zone* z, struct module_env* env, * @param is_insecure: if true, the dnskey is not used, the zone is insecure. * And dnssec is not used. It is DNSSEC secure insecure or not under * a trust anchor. + * @param sigalg: if nonNULL provide algorithm downgrade protection. + * Otherwise one algorithm is enough. Must have space of ALGO_NEEDS_MAX+1. * @param result: if not NULL result reason copied here. */ static void auth_zone_verify_zonemd_with_key(struct auth_zone* z, struct module_env* env, struct module_stack* mods, struct ub_packed_rrset_key* dnskey, - int is_insecure, char** result) + int is_insecure, char** result, uint8_t* sigalg) { char* reason = NULL, *why_bogus = NULL; struct auth_data* apex = NULL; @@ -7943,7 +7946,7 @@ auth_zone_verify_zonemd_with_key(struct auth_zone* z, struct module_env* env, } else if(!zonemd_rrset && dnskey && !is_insecure) { /* fetch, DNSSEC verify, and check NSEC/NSEC3 */ if(!zonemd_check_dnssec_absence(z, env, mods, dnskey, apex, - &reason, &why_bogus)) { + &reason, &why_bogus, sigalg)) { auth_zone_zonemd_fail(z, env, reason, why_bogus, result); return; } @@ -7951,7 +7954,7 @@ auth_zone_verify_zonemd_with_key(struct auth_zone* z, struct module_env* env, } else if(zonemd_rrset && dnskey && !is_insecure) { /* check DNSSEC verify of SOA and ZONEMD */ if(!zonemd_check_dnssec_soazonemd(z, env, mods, dnskey, apex, - zonemd_rrset, &reason, &why_bogus)) { + zonemd_rrset, &reason, &why_bogus, sigalg)) { auth_zone_zonemd_fail(z, env, reason, why_bogus, result); return; } @@ -8070,7 +8073,7 @@ static struct ub_packed_rrset_key* auth_zone_verify_zonemd_key_with_ds(struct auth_zone* z, struct module_env* env, struct module_stack* mods, struct ub_packed_rrset_key* ds, int* is_insecure, char** why_bogus, - struct ub_packed_rrset_key* keystorage) + struct ub_packed_rrset_key* keystorage, uint8_t* sigalg) { struct auth_data* apex; struct auth_rrset* dnskey_rrset; @@ -8105,7 +8108,7 @@ auth_zone_verify_zonemd_key_with_ds(struct auth_zone* z, keystorage->rk.type = htons(LDNS_RR_TYPE_DNSKEY); keystorage->rk.rrset_class = htons(z->dclass); auth_zone_log(z->name, VERB_QUERY, "zonemd: verify zone DNSKEY with DS"); - sec = val_verify_DNSKEY_with_DS(env, ve, keystorage, ds, NULL, + sec = val_verify_DNSKEY_with_DS(env, ve, keystorage, ds, sigalg, why_bogus, NULL); regional_free_all(env->scratch); if(sec == sec_status_secure) { @@ -8134,8 +8137,9 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, struct module_env* env; char* reason = NULL, *ds_bogus = NULL, *typestr="DNSKEY"; struct ub_packed_rrset_key* dnskey = NULL, *ds = NULL; - int is_insecure = 0; + int is_insecure = 0, downprot; struct ub_packed_rrset_key keystorage; + uint8_t sigalg[ALGO_NEEDS_MAX+1]; lock_rw_wrlock(&z->lock); env = z->zonemd_callback_env; @@ -8148,6 +8152,7 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, } if(z->zonemd_callback_qtype == LDNS_RR_TYPE_DS) typestr = "DS"; + downprot = env->cfg->harden_algo_downgrade; /* process result */ if(sec == sec_status_bogus) { @@ -8241,7 +8246,7 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, if(!reason && !is_insecure && !dnskey && ds) { dnskey = auth_zone_verify_zonemd_key_with_ds(z, env, &env->mesh->mods, ds, &is_insecure, &ds_bogus, - &keystorage); + &keystorage, downprot?sigalg:NULL); if(!dnskey && !is_insecure && !reason) reason = "DNSKEY verify with DS failed"; } @@ -8253,7 +8258,7 @@ void auth_zonemd_dnskey_lookup_callback(void* arg, int rcode, sldns_buffer* buf, } auth_zone_verify_zonemd_with_key(z, env, &env->mesh->mods, dnskey, - is_insecure, NULL); + is_insecure, NULL, downprot?sigalg:NULL); regional_free_all(env->scratch); lock_rw_unlock(&z->lock); } @@ -8395,7 +8400,7 @@ void auth_zone_verify_zonemd(struct auth_zone* z, struct module_env* env, } auth_zone_verify_zonemd_with_key(z, env, mods, dnskey, is_insecure, - result); + result, NULL); regional_free_all(env->scratch); } From cc6d428cb717039f9f2bfc2a8e74dfe97ebad342 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 17 Aug 2021 10:32:12 +0200 Subject: [PATCH 25/27] - Fix that --with-ssl can use "/usr/include/openssl11" to pass the location of a different openssl version. --- acx_nlnetlabs.m4 | 65 +++++++++++++++++++++++++++-------------- configure | 75 +++++++++++++++++++++++++++--------------------- configure.ac | 8 +++--- doc/Changelog | 4 +++ 4 files changed, 95 insertions(+), 57 deletions(-) diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4 index 39e92d875..ed3cdb067 100644 --- a/acx_nlnetlabs.m4 +++ b/acx_nlnetlabs.m4 @@ -2,7 +2,9 @@ # Copyright 2009, Wouter Wijngaards, NLnet Labs. # BSD licensed. # -# Version 41 +# Version 42 +# 2021-08-17 fix for openssl to detect split version, with ssldir_include +# and ssldir_lib output directories. # 2021-07-30 fix for openssl use of lib64 directory. # 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 @@ -647,6 +649,30 @@ AC_DEFUN([ACX_SSL_CHECKS], [ withval=$1 if test x_$withval != x_no; then AC_MSG_CHECKING(for SSL) + if test -n "$withval"; then + dnl look for openssl install with different version, eg. + dnl in /usr/include/openssl11/openssl/ssl.h + dnl and /usr/lib64/openssl11/libssl.so + dnl with the --with-ssl=/usr/include/openssl11 + if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then + ssldir="$withval" + found_ssl="yes" + withval="" + ssldir_include="$ssldir" + dnl find the libdir + ssldir_lib=`echo $ssldir | sed -e '/include/lib/'` + if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then + : # found here + else + ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'` + if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then + : # found here + else + AC_MSG_ERROR([Could not find openssl lib file, $ssldir_lib/libssl.[so,a], pass like "/usr/local" or "/usr/include/openssl11"]) + fi + fi + fi + fi if test x_$withval = x_ -o x_$withval = x_yes; then withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr" fi @@ -654,12 +680,12 @@ AC_DEFUN([ACX_SSL_CHECKS], [ ssldir="$dir" if test -f "$dir/include/openssl/ssl.h"; then found_ssl="yes" - AC_DEFINE_UNQUOTED([HAVE_SSL], [], [Define if you have the SSL libraries installed.]) - dnl assume /usr/include is already in the include-path. - if test "$ssldir" != "/usr"; then - CPPFLAGS="$CPPFLAGS -I$ssldir/include" - LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include" - fi + ssldir_include="$ssldir/include" + if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then + ssldir_lib="$ssldir/lib64" + else + ssldir_lib="$ssldir/lib" + fi break; fi done @@ -667,19 +693,16 @@ AC_DEFUN([ACX_SSL_CHECKS], [ AC_MSG_ERROR(Cannot find the SSL libraries in $withval) else AC_MSG_RESULT(found in $ssldir) + AC_DEFINE_UNQUOTED([HAVE_SSL], [], [Define if you have the SSL libraries installed.]) HAVE_SSL=yes - dnl assume /usr is already in the lib and dynlib paths. - if test "$ssldir" != "/usr" -a "$ssldir" != ""; then - if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then - LDFLAGS="$LDFLAGS -L$ssldir/lib64" - LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64" - ACX_RUNTIME_PATH_ADD([$ssldir/lib64]) - else - LDFLAGS="$LDFLAGS -L$ssldir/lib" - LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib" - ACX_RUNTIME_PATH_ADD([$ssldir/lib]) - fi - fi + dnl assume /usr is already in the include, lib and dynlib paths. + if test "$ssldir" != "/usr"; then + CPPFLAGS="$CPPFLAGS -I$ssldir_include" + LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir_include" + LDFLAGS="$LDFLAGS -L$ssldir_lib" + LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib" + ACX_RUNTIME_PATH_ADD([$ssldir_lib]) + fi AC_MSG_CHECKING([for EVP_sha256 in -lcrypto]) LIBS="$LIBS -lcrypto" @@ -758,7 +781,7 @@ dnl AC_DEFUN([ACX_WITH_SSL], [ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl - /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[ + /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr or specify like /usr/include/openssl11)]),[ ],[ withval="yes" ]) @@ -776,7 +799,7 @@ dnl AC_DEFUN([ACX_WITH_SSL_OPTIONAL], [ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl - /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[ + /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr or specify like /usr/include/openssl11)]),[ ],[ withval="yes" ]) diff --git a/configure b/configure index f5185fc5b..186a13bfa 100755 --- a/configure +++ b/configure @@ -1650,7 +1650,7 @@ Optional Packages: --with-nettle=path use libnettle as crypto library, installed at path. --with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw - /usr) + /usr or specify like /usr/include/openssl11) --with-libbsd Use portable libbsd functions --with-deprecate-rsa-1024 Deprecate RSA 1024 bit length, makes that an @@ -18001,6 +18001,25 @@ fi if test x_$withval != x_no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5 $as_echo_n "checking for SSL... " >&6; } + if test -n "$withval"; then + if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then + ssldir="$withval" + found_ssl="yes" + withval="" + ssldir_include="$ssldir" + ssldir_lib=`echo $ssldir | sed -e '/include/lib/'` + if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then + : # found here + else + ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'` + if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then + : # found here + else + as_fn_error $? "Could not find openssl lib file, $ssldir_lib/libssl.so,a, pass like \"/usr/local\" or \"/usr/include/openssl11\"" "$LINENO" 5 + fi + fi + fi + fi if test x_$withval = x_ -o x_$withval = x_yes; then withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr" fi @@ -18008,15 +18027,12 @@ $as_echo_n "checking for SSL... " >&6; } ssldir="$dir" if test -f "$dir/include/openssl/ssl.h"; then found_ssl="yes" - -cat >>confdefs.h <<_ACEOF -#define HAVE_SSL /**/ -_ACEOF - - if test "$ssldir" != "/usr"; then - CPPFLAGS="$CPPFLAGS -I$ssldir/include" - LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include" - fi + ssldir_include="$ssldir/include" + if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then + ssldir_lib="$ssldir/lib64" + else + ssldir_lib="$ssldir/lib" + fi break; fi done @@ -18025,30 +18041,25 @@ _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5 $as_echo "found in $ssldir" >&6; } + +cat >>confdefs.h <<_ACEOF +#define HAVE_SSL /**/ +_ACEOF + HAVE_SSL=yes - if test "$ssldir" != "/usr" -a "$ssldir" != ""; then - if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then - LDFLAGS="$LDFLAGS -L$ssldir/lib64" - LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64" + if test "$ssldir" != "/usr"; then + CPPFLAGS="$CPPFLAGS -I$ssldir_include" + LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir_include" + LDFLAGS="$LDFLAGS -L$ssldir_lib" + LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib" if test "x$enable_rpath" = xyes; then - if echo "$ssldir/lib64" | grep "^/" >/dev/null; then - RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib64" + if echo "$ssldir_lib" | grep "^/" >/dev/null; then + RUNTIME_PATH="$RUNTIME_PATH -R$ssldir_lib" fi fi - else - LDFLAGS="$LDFLAGS -L$ssldir/lib" - LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib" - - if test "x$enable_rpath" = xyes; then - if echo "$ssldir/lib" | grep "^/" >/dev/null; then - RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib" - fi - fi - - fi - fi + fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5 $as_echo_n "checking for EVP_sha256 in -lcrypto... " >&6; } @@ -18377,7 +18388,7 @@ rm -f core conftest.err conftest.$ac_objext \ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5 $as_echo_n "checking for LibreSSL... " >&6; } -if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then +if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } @@ -18799,7 +18810,7 @@ $as_echo_n "checking if GOST works... " >&6; } if test c${cross_compiling} = cno; then BAKCFLAGS="$CFLAGS" if test -n "$ssldir"; then - CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib" + CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib" fi if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 @@ -18982,8 +18993,8 @@ fi # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5 $as_echo_n "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; } - if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then - if grep OPENSSL_VERSION_NUMBER $ssldir/include/openssl/opensslv.h | grep 0x0 >/dev/null; then + if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then + if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } diff --git a/configure.ac b/configure.ac index 1ed55b0ef..b9b177584 100644 --- a/configure.ac +++ b/configure.ac @@ -857,7 +857,7 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ ]) AC_MSG_CHECKING([for LibreSSL]) -if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then +if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_LIBRESSL], [1], [Define if we have LibreSSL]) # libressl provides these compat functions, but they may also be @@ -987,7 +987,7 @@ AC_MSG_CHECKING([if GOST works]) if test c${cross_compiling} = cno; then BAKCFLAGS="$CFLAGS" if test -n "$ssldir"; then - CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib" + CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib" fi AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include @@ -1110,8 +1110,8 @@ case "$enable_ecdsa" in ]) # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency) AC_MSG_CHECKING([if openssl supports SHA2 and ECDSA with EVP]) - if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then - if grep OPENSSL_VERSION_NUMBER $ssldir/include/openssl/opensslv.h | grep 0x0 >/dev/null; then + if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then + if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then AC_MSG_RESULT([no]) AC_DEFINE_UNQUOTED([USE_ECDSA_EVP_WORKAROUND], [1], [Define this to enable an EVP workaround for older openssl]) else diff --git a/doc/Changelog b/doc/Changelog index dc4939417..26c66e65e 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +17 August 2021: Wouter + - Fix that --with-ssl can use "/usr/include/openssl11" to pass the + location of a different openssl version. + 16 August 2021: George - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() static. From d88f554503cbb31b924087f82ecd774145506a8f Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 17 Aug 2021 13:03:33 +0200 Subject: [PATCH 26/27] - Fix #527: not sending quad9 cert to syslog (and may be more). --- doc/Changelog | 1 + util/net_help.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index 26c66e65e..103fb37cb 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 17 August 2021: Wouter - Fix that --with-ssl can use "/usr/include/openssl11" to pass the location of a different openssl version. + - Fix #527: not sending quad9 cert to syslog (and may be more). 16 August 2021: George - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf() diff --git a/util/net_help.c b/util/net_help.c index b2d2061c9..3a671777c 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -881,6 +881,12 @@ log_cert(unsigned level, const char* str, void* cert) BIO_write(bio, &nul, (int)sizeof(nul)); len = BIO_get_mem_data(bio, &pp); if(len != 0 && pp) { + /* reduce size of cert printout */ + char* s; + while((s=strstr(pp, " "))!=NULL) + memmove(s, s+1, strlen(s+1)+1); + while((s=strstr(pp, "\t\t"))!=NULL) + memmove(s, s+1, strlen(s+1)+1); verbose(level, "%s: \n%s", str, pp); } BIO_free(bio); From 51f5b3ab44cb84815384e633a7a966c39050b65d Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Tue, 17 Aug 2021 13:15:20 +0200 Subject: [PATCH 27/27] - Fix sed script in ssldir split handling. --- acx_nlnetlabs.m4 | 7 ++++--- configure | 4 ++-- doc/Changelog | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/acx_nlnetlabs.m4 b/acx_nlnetlabs.m4 index ed3cdb067..1574f97bf 100644 --- a/acx_nlnetlabs.m4 +++ b/acx_nlnetlabs.m4 @@ -2,7 +2,8 @@ # Copyright 2009, Wouter Wijngaards, NLnet Labs. # BSD licensed. # -# Version 42 +# Version 43 +# 2021-08-17 fix sed script in ssldir split handling. # 2021-08-17 fix for openssl to detect split version, with ssldir_include # and ssldir_lib output directories. # 2021-07-30 fix for openssl use of lib64 directory. @@ -660,11 +661,11 @@ AC_DEFUN([ACX_SSL_CHECKS], [ withval="" ssldir_include="$ssldir" dnl find the libdir - ssldir_lib=`echo $ssldir | sed -e '/include/lib/'` + ssldir_lib=`echo $ssldir | sed -e 's/include/lib/'` if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then : # found here else - ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'` + ssldir_lib=`echo $ssldir | sed -e 's/include/lib64/'` if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then : # found here else diff --git a/configure b/configure index 186a13bfa..03e8fb5fd 100755 --- a/configure +++ b/configure @@ -18007,11 +18007,11 @@ $as_echo_n "checking for SSL... " >&6; } found_ssl="yes" withval="" ssldir_include="$ssldir" - ssldir_lib=`echo $ssldir | sed -e '/include/lib/'` + ssldir_lib=`echo $ssldir | sed -e 's/include/lib/'` if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then : # found here else - ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'` + ssldir_lib=`echo $ssldir | sed -e 's/include/lib64/'` if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then : # found here else diff --git a/doc/Changelog b/doc/Changelog index 103fb37cb..c02c5d319 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,7 @@ - Fix that --with-ssl can use "/usr/include/openssl11" to pass the location of a different openssl version. - Fix #527: not sending quad9 cert to syslog (and may be more). + - Fix sed script in ssldir split handling. 16 August 2021: George - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf()