diff --git a/daemon/worker.c b/daemon/worker.c index 37a8e1fe0..57d58a90d 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1289,6 +1289,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error, edns.udp_size = EDNS_ADVERTISED_SIZE; edns.bits &= EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; verbose(VERB_ALGO, "query with bad edns version."); log_addr(VERB_CLIENT,"from",&repinfo->addr, repinfo->addrlen); error_encode(c->buffer, EDNS_RCODE_BADVERS&0xf, &qinfo, diff --git a/doc/Changelog b/doc/Changelog index 5cb33ef2e..f77355945 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +22 January 2022: Willem + - Padding of queries and responses with DNS over TLS as specified in + RFC7830 and RFC8467. + 22 January 2021: George - Fix TTL of SOA record for negative answers (localzone and authzone data) to be the minimum of the SOA TTL and the SOA.MINIMUM. diff --git a/doc/example.conf.in b/doc/example.conf.in index 08d1620cf..b9b1c0525 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -758,6 +758,12 @@ server: # cipher setting for TLSv1.3 # tls-ciphersuites: "TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256" + # Pad responses to padded queries received over TLS + # pad-responses: yes + + # Padded responses will be padded to the closest multiple of this size. + # pad-responses-block-size: 468 + # Use the SNI extension for TLS connections. Default is yes. # Changing the value requires a reload. # tls-use-sni: yes @@ -780,6 +786,12 @@ server: # Add system certs to the cert bundle, from the Windows Cert Store # tls-win-cert: no + # Pad queries over TLS upstreams + # pad-queries: yes + + # Padded queries will be padded to the closest multiple of this size. + # pad-queries-block-size: 128 + # Also serve tls on these port numbers (eg. 443, ...), by listing # tls-additional-port: portno for each of the port numbers. diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index cfbe11c06..e60ab6993 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -564,6 +564,25 @@ and that is the default. Set the list of ciphersuites to allow when serving TLS. This is for newer TLS 1.3 connections. Use "" for defaults, and that is the default. .TP +.B pad\-responses: \fI +If enabled, TLS serviced queries that contained an EDNS Padding option will +cause responses padded to the closest multiple of the size specified in +\fBpad\-responses\-block\-size\fR. +Default is yes. +.TP +.B pad\-responses\-block\-size: \fI +The block size with which to pad responses serviced over TLS. Only responses +to padded queries will be padded. +Default is 468. +.TP +.B pad\-queries: \fI +If enabled, all queries sent over TLS upstreams will be padded to the closest +multiple of the size specified in \fBpad\-queries\-block\-size\fR. +Default is yes. +.TP +.B pad\-queries\-block\-size: \fI +The block size with which to pad queries sent over TLS upstreams. +Default is 128. .B tls\-use\-sni: \fI Enable or disable sending the SNI extension on TLS connections. Default is yes. diff --git a/libunbound/libworker.c b/libunbound/libworker.c index 03bbaf768..7f46df386 100644 --- a/libunbound/libworker.c +++ b/libunbound/libworker.c @@ -577,6 +577,7 @@ setup_qinfo_edns(struct libworker* w, struct ctx_query* q, edns->edns_version = 0; edns->bits = EDNS_DO; edns->opt_list = NULL; + edns->padding_block_size = 0; if(sldns_buffer_capacity(w->back->udp_buff) < 65535) edns->udp_size = (uint16_t)sldns_buffer_capacity( w->back->udp_buff); diff --git a/services/authzone.c b/services/authzone.c index 3d7f49388..2ef782c1f 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -5110,6 +5110,7 @@ xfr_transfer_lookup_host(struct auth_xfer* xfr, struct module_env* env) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535; @@ -6298,6 +6299,7 @@ xfr_probe_lookup_host(struct auth_xfer* xfr, struct module_env* env) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535; diff --git a/services/outside_network.c b/services/outside_network.c index d8f9874e6..11559ffac 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -2242,7 +2242,8 @@ static struct serviced_query* serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec, int want_dnssec, int nocaps, int tcp_upstream, int ssl_upstream, char* tls_auth_name, struct sockaddr_storage* addr, socklen_t addrlen, - uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list) + uint8_t* zone, size_t zonelen, int qtype, struct edns_option* opt_list, + size_t pad_queries_block_size) { struct serviced_query* sq = (struct serviced_query*)malloc(sizeof(*sq)); #ifdef UNBOUND_DEBUG @@ -2300,6 +2301,7 @@ serviced_create(struct outside_network* outnet, sldns_buffer* buff, int dnssec, sq->status = serviced_initial; sq->retry = 0; sq->to_be_deleted = 0; + sq->padding_block_size = pad_queries_block_size; #ifdef UNBOUND_DEBUG ins = #else @@ -2481,6 +2483,7 @@ serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns) if(with_edns) { /* add edns section */ struct edns_data edns; + struct edns_option padding_option; edns.edns_present = 1; edns.ext_rcode = 0; edns.edns_version = EDNS_ADVERTISED_VERSION; @@ -2503,6 +2506,14 @@ serviced_encode(struct serviced_query* sq, sldns_buffer* buff, int with_edns) edns.bits = EDNS_DO; if(sq->dnssec & BIT_CD) LDNS_CD_SET(sldns_buffer_begin(buff)); + if (sq->ssl_upstream && sq->padding_block_size) { + padding_option.opt_code = LDNS_EDNS_PADDING; + padding_option.opt_len = 0; + padding_option.opt_data = NULL; + padding_option.next = edns.opt_list; + edns.opt_list = &padding_option; + edns.padding_block_size = sq->padding_block_size; + } attach_edns_record(buff, &edns); } } @@ -3026,7 +3037,9 @@ outnet_serviced_query(struct outside_network* outnet, sq = serviced_create(outnet, buff, dnssec, want_dnssec, nocaps, tcp_upstream, ssl_upstream, tls_auth_name, addr, addrlen, zone, zonelen, (int)qinfo->qtype, - qstate->edns_opts_back_out); + qstate->edns_opts_back_out, + ( ssl_upstream && env->cfg->pad_queries + ? env->cfg->pad_queries_block_size : 0 )); if(!sq) { free(cb); return NULL; diff --git a/services/outside_network.h b/services/outside_network.h index 2fe97fa6c..fe287af4f 100644 --- a/services/outside_network.h +++ b/services/outside_network.h @@ -502,6 +502,8 @@ struct serviced_query { struct service_callback* cblist; /** the UDP or TCP query that is pending, see status which */ void* pending; + /** block size with which to pad encrypted queries (default: 128) */ + size_t padding_block_size; }; /** diff --git a/testcode/fake_event.c b/testcode/fake_event.c index 5164332c0..b8166c45c 100644 --- a/testcode/fake_event.c +++ b/testcode/fake_event.c @@ -1229,6 +1229,7 @@ struct serviced_query* outnet_serviced_query(struct outside_network* outnet, edns.bits = 0; if(dnssec) edns.bits = EDNS_DO; + edns.padding_block_size = 0; if((client_string_addr = edns_string_addr_lookup( &env->edns_strings->client_strings, addr, addrlen))) { diff --git a/testdata/padding.tdir/padding.conf b/testdata/padding.tdir/padding.conf new file mode 100644 index 000000000..c310d355d --- /dev/null +++ b/testdata/padding.tdir/padding.conf @@ -0,0 +1,27 @@ +server: + interface: 127.0.0.1 + port: @PORT@ + use-syslog: no + directory: . + pidfile: "unbound.pid" + chroot: "" + username: "" + do-not-query-localhost: no + + tls-cert-bundle: "unbound_server.pem" + tls-upstream: yes + +remote-control: + control-enable: yes + control-interface: 127.0.0.1 + control-port: @CONTROL_PORT@ + server-key-file: "unbound_server.key" + server-cert-file: "unbound_server.pem" + control-key-file: "unbound_control.key" + control-cert-file: "unbound_control.pem" + +forward-zone: + name: "." + forward-addr: "127.0.0.1@@TOPORT@#unbound" + + diff --git a/testdata/padding.tdir/padding.conf2 b/testdata/padding.tdir/padding.conf2 new file mode 100644 index 000000000..98be8fec7 --- /dev/null +++ b/testdata/padding.tdir/padding.conf2 @@ -0,0 +1,47 @@ +# this is the upstream server that has pipelining and responds to queries. +server: + verbosity: 1 + # num-threads: 1 + interface: 127.0.0.1@@PORT@ + port: @PORT@ + use-syslog: no + directory: . + pidfile: "unbound2.pid" + chroot: "" + username: "" + do-not-query-localhost: no + tls-port: @PORT@ + tls-service-key: "unbound_server.key" + tls-service-pem: "unbound_server.pem" + tcp-idle-timeout: 10000 + log-queries: yes + log-replies: yes + log-identity: "upstream" + +remote-control: + control-enable: yes + control-interface: 127.0.0.1 + # control-interface: ::1 + control-port: @CONTROL_PORT2@ + server-key-file: "unbound_server.key" + server-cert-file: "unbound_server.pem" + control-key-file: "unbound_control.key" + control-cert-file: "unbound_control.pem" + +forward-zone: + name: "." + forward-addr: "127.0.0.1@@TOPORT@" + +dnstap: + dnstap-enable: yes + dnstap-socket-path: "dnstap.socket" + dnstap-send-identity: yes + dnstap-send-version: yes + #dnstap-identity + #dnstap-version + dnstap-log-resolver-query-messages: no + dnstap-log-resolver-response-messages: no + dnstap-log-client-query-messages: yes + dnstap-log-client-response-messages: yes + dnstap-log-forwarder-query-messages: no + dnstap-log-forwarder-response-messages: no diff --git a/testdata/padding.tdir/padding.dsc b/testdata/padding.tdir/padding.dsc new file mode 100644 index 000000000..37aceb353 --- /dev/null +++ b/testdata/padding.tdir/padding.dsc @@ -0,0 +1,16 @@ +BaseName: padding +Version: 1.0 +Description: Test EDNS0 padding option (RFC7830 and RFC8467). +CreationDate: Sun Jan 24 16:41:42 CET 2021 +Maintainer: Willem Toorop +Category: +Component: +CmdDepends: +Depends: +Help: +Pre: padding.pre +Post: padding.post +Test: padding.test +AuxFiles: +Passed: +Failure: diff --git a/testdata/padding.tdir/padding.msgsizes b/testdata/padding.tdir/padding.msgsizes new file mode 100644 index 000000000..f0d4a496d --- /dev/null +++ b/testdata/padding.tdir/padding.msgsizes @@ -0,0 +1,20 @@ +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 468 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 936 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 60 +;; MSG SIZE rcvd: 128 +;; MSG SIZE rcvd: 502 +;; MSG SIZE rcvd: 44 +;; MSG SIZE rcvd: 60 +;; MSG SIZE rcvd: 44 +;; MSG SIZE rcvd: 502 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 64 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 +;; MSG SIZE rcvd: 48 +;; MSG SIZE rcvd: 512 diff --git a/testdata/padding.tdir/padding.post b/testdata/padding.tdir/padding.post new file mode 100644 index 000000000..826798a8f --- /dev/null +++ b/testdata/padding.tdir/padding.post @@ -0,0 +1,23 @@ +# #-- padding.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 +PRE="../.." +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi +kill_pid $DNSTAP_SOCKET_PID +kill_pid $FWD_PID +kill_pid `cat unbound2.pid` +if test -f unbound2.log; then + echo ">>> upstream log" + cat unbound2.log +fi +#kill_pid $UNBOUND_PID +kill_pid `cat unbound.pid` +if test -f unbound.log; then + echo ">>> unbound log" + cat unbound.log +fi diff --git a/testdata/padding.tdir/padding.pre b/testdata/padding.tdir/padding.pre new file mode 100644 index 000000000..4a13d0229 --- /dev/null +++ b/testdata/padding.tdir/padding.pre @@ -0,0 +1,69 @@ +# #-- padding.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 + +PRE="../.." +. ../common.sh +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi + +get_random_port 5 +UNBOUND_PORT=$RND_PORT +UPSTREAM_PORT=$(($RND_PORT + 1)) +FWD_PORT=$(($RND_PORT + 2)) +CONTROL_PORT=$(($RND_PORT + 3)) +CONTROL_PORT2=$(($RND_PORT + 4)) +echo "UNBOUND_PORT=$UNBOUND_PORT" >> .tpkg.var.test +echo "UPSTREAM_PORT=$UPSTREAM_PORT" >> .tpkg.var.test +echo "FWD_PORT=$FWD_PORT" >> .tpkg.var.test +echo "CONTROL_PORT=$CONTROL_PORT" >> .tpkg.var.test +echo "CONTROL_PORT2=$CONTROL_PORT2" >> .tpkg.var.test + +# start ldns-testnd +get_ldns_testns +$LDNS_TESTNS -p $FWD_PORT padding.testns >fwd.log 2>&1 & +FWD_PID=$! +echo "FWD_PID=$FWD_PID" >> .tpkg.var.test + +# start the dnstap log server +# the -vvvv flag prints protocol and connection information from the +# unbound-dnstap-socket server. +# the -l flag prints the DNS info in the DNSTAP packet in multiline output. +# stderr is the '-vvvv' server logs and errors. +# stdout is the one-line packet logs (or with -l, multiline). +$PRE/unbound-dnstap-socket -u dnstap.socket -l -vvvv 2>tap.errlog >tap.log & +if test $? -ne 0; then + echo "could not start unbound-dnstap-socket server" + exit 1 +fi +DNSTAP_SOCKET_PID=$! +echo "DNSTAP_SOCKET_PID=$DNSTAP_SOCKET_PID" >> .tpkg.var.test +# wait for the server to go up and make the dnstap.socket file +wait_server_up "tap.errlog" "creating unix socket" +if test ! -S dnstap.socket; then + echo "the dnstap.socket file does not exist!" +fi + +# make config file +sed -e 's/@PORT\@/'$UNBOUND_PORT'/' -e 's/@TOPORT\@/'$UPSTREAM_PORT'/' -e 's/@CONTROL_PORT\@/'$CONTROL_PORT'/' < padding.conf > ub.conf +# start unbound in the background +$PRE/unbound -d -c ub.conf >unbound.log 2>&1 & +#$PRE/unbound -d -c ub.conf 2>&1 | tee unbound.log & +UNBOUND_PID=$! +echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test + +# make upstream config file +sed -e 's/@PORT\@/'$UPSTREAM_PORT'/' -e 's/@TOPORT\@/'$FWD_PORT'/' -e 's/@CONTROL_PORT2\@/'$CONTROL_PORT2'/' < padding.conf2 > ub2.conf +# start upstream unbound in the background +$PRE/unbound -d -c ub2.conf >unbound2.log 2>&1 & +#$PRE/unbound -d -c ub2.conf 2>&1 | tee unbound2.log & +UPSTREAM_PID=$! +echo "UPSTREAM_PID=$UPSTREAM_PID" >> .tpkg.var.test + +wait_ldns_testns_up fwd.log +wait_unbound_up unbound.log +wait_unbound_up unbound2.log + +cat .tpkg.var.test + diff --git a/testdata/padding.tdir/padding.test b/testdata/padding.tdir/padding.test new file mode 100644 index 000000000..5111d8139 --- /dev/null +++ b/testdata/padding.tdir/padding.test @@ -0,0 +1,170 @@ +echo There we go... + +# #-- padding.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="../.." +. ../common.sh +if grep "define USE_DNSTAP 1" $PRE/config.h; then echo test enabled; else echo test skipped; exit 0; fi + +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile +echo "> check answer" +if grep "10.20.30.40" outfile; then + echo "OK" +else + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> wait for log to happen on timer" +sleep 3 +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "www.example.com" tap.log >/dev/null; then :; else sleep 10; fi +if grep "www.example.com" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> check answer" +if grep "Lorem ipsum" outfile; then + echo "OK" +else + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 1; fi +if grep "txt.example.com" tap.log >/dev/null; then :; else sleep 10; fi +if grep "txt.example.com" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> disable padding of responses." +$PRE/unbound-control -c ub2.conf set_option pad-responses: no +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> enable padding of responses." +$PRE/unbound-control -c ub2.conf set_option pad-responses: yes +echo "> set pad responses block size to 64" +$PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 64 +echo "> disable padding of queries." +$PRE/unbound-control -c ub.conf set_option pad-queries: no +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> enable padding of queries." +$PRE/unbound-control -c ub.conf set_option pad-queries: yes +echo "> set pad queries block size to 48" +$PRE/unbound-control -c ub.conf set_option pad-queries-block-size: 48 +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query txt.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT txt.example.com. TXT | tee outfile +echo "> flush cache entries." +$PRE/unbound-control -c ub.conf flush_type www.example.com A +$PRE/unbound-control -c ub.conf flush_type txt.example.com TXT +echo "> set pad responses block size to 512" +$PRE/unbound-control -c ub2.conf set_option pad-responses-block-size: 512 +echo "> query www.example.com. A" +dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. A | tee outfile +echo "> query fin.example.com. TXT" +dig @127.0.0.1 -p $UNBOUND_PORT fin.example.com. TXT | tee outfile +echo "> check tap.log for dnstap info" +# see if it logged the information in tap.log +# wait for a moment for filesystem to catch up. +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 1; fi +if grep "fini" tap.log >/dev/null; then :; else sleep 10; fi +if grep "fini" tap.log; then echo "yes it is in tap.log"; +else + echo "information not in tap.log" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi + +grep '^;; MSG SIZE rcvd: ' tap.log > message.sizes + +if diff message.sizes padding.msgsizes +then + echo "OK - Message sizes matched expected sizes" + exit 0 +else + echo "unexpected message sizes" + echo "failed" + echo "> cat logfiles" + cat tap.log + cat tap.errlog + cat fwd.log + cat unbound.log + echo "Not OK" + exit 1 +fi diff --git a/testdata/padding.tdir/padding.testns b/testdata/padding.tdir/padding.testns new file mode 100644 index 000000000..bd3718ff6 --- /dev/null +++ b/testdata/padding.tdir/padding.testns @@ -0,0 +1,34 @@ +; nameserver test file +$ORIGIN example.com. +$TTL 3600 + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +www IN A +SECTION ANSWER +www IN A 10.20.30.40 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +txt IN TXT +SECTION ANSWER +txt IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +REPLY QR AA NOERROR +ADJUST copy_id +SECTION QUESTION +fin IN TXT +SECTION ANSWER +fin IN TXT "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur." "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." "fini" +ENTRY_END + diff --git a/testdata/padding.tdir/unbound_control.key b/testdata/padding.tdir/unbound_control.key new file mode 100644 index 000000000..753a4ef61 --- /dev/null +++ b/testdata/padding.tdir/unbound_control.key @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4gIBAAKCAYEAstEp+Pyh8XGrtZ77A4FhYjvbeB3dMa7Q2rGWxobzlA9przhA +1aChAvUtCOAuM+rB6NTNB8YWfZJbQHawyMNpmC77cg6vXLYCGUQHZyAqidN049RJ +F5T7j4N8Vniv17LiRdr0S6swy4PRvEnIPPV43EQHZqC5jVvHsKkhIfmBF/Dj5TXR +ypeawWV/m5jeU6/4HRYMfytBZdO1mPXuWLh0lgbQ4SCbgrOUVD3rniMk1yZIbQOm +vlDHYqekjDb/vOW2KxUQLG04aZMJ1mWfdbwG0CKQkSjISEDZ1l76vhM6mTM0fwXb +IvyFZ9yPPCle1mF5aSlxS2cmGuGVSRQaw8XF9fe3a9ACJJTr33HdSpyaZkKRAUzL +cKqLCl323daKv3NwwAT03Tj4iQM416ASMoiyfFa/2GWTKQVjddu8Crar7tGaf5xr +lig4DBmrBvdYA3njy72/RD71hLwmlRoCGU7dRuDr9O6KASUm1Ri91ONZ/qdjMvov +15l2vj4GV+KXR00dAgMBAAECggGAHepIL1N0dEQkCdpy+/8lH54L9WhpnOo2HqAf +LU9eaKK7d4jdr9+TkD8cLaPzltPrZNxVALvu/0sA4SP6J1wpyj/x6P7z73qzly5+ +Xo5PD4fEwmi9YaiW/UduAblnEZrnp/AddptJKoL/D5T4XtpiQddPtael4zQ7kB57 +YIexRSQTvEDovA/o3/nvA0TrzOxfgd4ycQP3iOWGN/TMzyLsvjydrUwbOB567iz9 +whL3Etdgvnwh5Sz2blbFfH+nAR8ctvFFz+osPvuIVR21VMEI6wm7kTpSNnQ6sh/c +lrLb/bTADn4g7z/LpIZJ+MrLvyEcoqValrLYeFBhM9CV8woPxvkO2P3pU47HVGax +tC7GV6a/kt5RoKFd/TNdiA3OC7NGZtaeXv9VkPf4fVwBtSO9d5ZZXTGEynDD/rUQ +U4KFJe6OD23APjse08HiiKqTPhsOneOONU67iqoaTdIkT2R4EdlkVEDpXVtWb+G9 +Q+IqYzVljlzuyHrhWXLJw/FMa2aBAoHBAOnZbi4gGpH+P6886WDWVgIlTccuXoyc +Mg9QQYk9UDeXxL0AizR5bZy49Sduegz9vkHpAiZARQsUnizHjZ8YlRcrmn4t6tx3 +ahTIKAjdprnxJfYINM580j8CGbXvX5LhIlm3O267D0Op+co3+7Ujy+cjsIuFQrP+ +1MqMgXSeBjzC1APivmps7HeFE+4w0k2PfN5wSMDNCzLo99PZuUG5XZ93OVOS5dpN +b+WskdcD8NOoJy/X/5A08veEI/jYO/DyqQKBwQDDwUQCOWf41ecvJLtBHKmEnHDz +ftzHino9DRKG8a9XaN4rmetnoWEaM2vHGX3pf3mwH+dAe8vJdAQueDhBKYeEpm6C +TYNOpou1+Zs5s99BilCTNYo8fkMOAyqwRwmz9zgHS6QxXuPwsghKefLJGt6o6RFF +tfWVTfLlYJ+I3GQe3ySsk3wjVz4oUTKiyiq5+KzD+HhEkS7u+RQ7Z0ZI2xd2cF8Y +aN2hjKDpcOiFf3CDoqka5D1qMNLgIHO52AHww1UCgcA1h7o7AMpURRka6hyaODY0 +A4oMYEbwdQjYjIyT998W+rzkbu1us6UtzQEBZ760npkgyU/epbOoV63lnkCC/MOU +LD0PST+L/CHiY/cWIHb79YG1EifUZKpUFg0Aoq0EGFkepF0MefGCkbRGYA5UZr9U +R80wAu9D+L+JJiS0J0BSRF74DL196zUuHt5zFeXuLzxsRtPAnq9DliS08BACRYZy +7H3I7cWD9Vn5/0jbKWHFcaaWwyETR6uekTcSzZzbCRECgcBeoE3/xUA9SSk34Mmj +7/cB4522Ft0imA3+9RK/qJTZ7Bd5fC4PKjOGNtUiqW/0L2rjeIiQ40bfWvWqgPKw +jSK1PL6uvkl6+4cNsFsYyZpiVDoe7wKju2UuoNlB3RUTqa2r2STFuNj2wRjA57I1 +BIgdnox65jqQsd14g/yaa+75/WP9CE45xzKEyrtvdcqxm0Pod3OrsYK+gikFjiar +kT0GQ8u0QPzh2tjt/2ZnIfOBrl+QYERP0MofDZDjhUdq2wECgcB0Lu841+yP5cdR +qbJhXO4zJNh7oWNcJlOuQp3ZMNFrA1oHpe9pmLukiROOy01k9WxIMQDzU5GSqRv3 +VLkYOIcbhJ3kClKAcM3j95SkKbU2H5/RENb3Ck52xtl4pNU1x/3PnVFZfDVuuHO9 +MZ9YBcIeK98MyP2jr5JtFKnOyPE7xKq0IHIhXadpbc2wjje5FtZ1cUtMyEECCXNa +C1TpXebHGyXGpY9WdWXhjdE/1jPvfS+uO5WyuDpYPr339gsdq1g= +-----END RSA PRIVATE KEY----- diff --git a/testdata/padding.tdir/unbound_control.pem b/testdata/padding.tdir/unbound_control.pem new file mode 100644 index 000000000..a1edf7017 --- /dev/null +++ b/testdata/padding.tdir/unbound_control.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDszCCAhsCFGD5193whHQ2bVdzbaQfdf1gc4SkMA0GCSqGSIb3DQEBCwUAMBIx +EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjMwWhcNNDAwMzI1MTMzMjMw +WjAaMRgwFgYDVQQDDA91bmJvdW5kLWNvbnRyb2wwggGiMA0GCSqGSIb3DQEBAQUA +A4IBjwAwggGKAoIBgQCy0Sn4/KHxcau1nvsDgWFiO9t4Hd0xrtDasZbGhvOUD2mv +OEDVoKEC9S0I4C4z6sHo1M0HxhZ9kltAdrDIw2mYLvtyDq9ctgIZRAdnICqJ03Tj +1EkXlPuPg3xWeK/XsuJF2vRLqzDLg9G8Scg89XjcRAdmoLmNW8ewqSEh+YEX8OPl +NdHKl5rBZX+bmN5Tr/gdFgx/K0Fl07WY9e5YuHSWBtDhIJuCs5RUPeueIyTXJkht +A6a+UMdip6SMNv+85bYrFRAsbThpkwnWZZ91vAbQIpCRKMhIQNnWXvq+EzqZMzR/ +Bdsi/IVn3I88KV7WYXlpKXFLZyYa4ZVJFBrDxcX197dr0AIklOvfcd1KnJpmQpEB +TMtwqosKXfbd1oq/c3DABPTdOPiJAzjXoBIyiLJ8Vr/YZZMpBWN127wKtqvu0Zp/ +nGuWKDgMGasG91gDeePLvb9EPvWEvCaVGgIZTt1G4Ov07ooBJSbVGL3U41n+p2My ++i/XmXa+PgZX4pdHTR0CAwEAATANBgkqhkiG9w0BAQsFAAOCAYEAd++Wen6l8Ifj +4h3p/y16PhSsWJWuJ4wdNYy3/GM84S26wGjzlEEwiW76HpH6VJzPOiBAeWnFKE83 +hFyetEIxgJeIPbcs9ZP/Uoh8GZH9tRISBSN9Hgk2Slr9llo4t1H0g/XTgA5HqMQU +9YydlBh43G7Vw3FVwh09OM6poNOGQKNc/tq2/QdKeUMtyBbLWpRmjH5XcCT35fbn +ZiVOUldqSHD4kKrFO4nJYXZyipRbcXybsLiX9GP0GLemc3IgIvOXyJ2RPp06o/SJ +pzlMlkcAfLJaSuEW57xRakhuNK7m051TKKzJzIEX+NFYOVdafFHS8VwGrYsdrFvD +72tMfu+Fu55y3awdWWGc6YlaGogZiuMnJkvQphwgn+5qE/7CGEckoKEsH601rqIZ +muaIc85+nEcHJeijd/ZlBN9zeltjFoMuqTUENgmv8+tUAdVm/UMY9Vjme6b43ydP +uv6DS02+k9z8toxXworLiPr94BGaiGV1NxgwZKLZigYJt/Fi2Qte +-----END CERTIFICATE----- diff --git a/testdata/padding.tdir/unbound_server.key b/testdata/padding.tdir/unbound_server.key new file mode 100644 index 000000000..370a7bbb2 --- /dev/null +++ b/testdata/padding.tdir/unbound_server.key @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG5AIBAAKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI +0x41iG32a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+Nqq +GRS7XVQ24vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Z +uh9MDgotaBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8K +WaBe1ca4TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5 +FzUReSXZuTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xP +q6O9UPj4+nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XL +A5UoZgRzXgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP +7kFZSngxdy1+A/bNAgMBAAECggGBALpTOIqQwVg4CFBylL/a8K1IWJTI/I65sklf +XxYL7G7SB2HlEJ//z+E+F0+S4Vlao1vyLQ5QkgE82pAUB8FoMWvY1qF0Y8A5wtm6 +iZSGk4OLK488ZbT8Ii9i+AGKgPe2XbVxsJwj8N4k7Zooqec9hz73Up8ATEWJkRz7 +2u7oMGG4z91E0PULA64dOi3l/vOQe5w/Aa+CwVbAWtI05o7kMvQEBMDJn6C7CByo +MB5op9wueJMnz7PM7hns+U7Dy6oE4ljuolJUy51bDzFWwoM54cRoQqLFNHd8JVQj +WxldCkbfF43iyprlsEcUrTyUjtdA+ZeiG39vg/mtdmgNpGmdupHJZQvSuG8IcVlz +O+eMSeQS1QXPD6Ik8UK4SU0h+zOl8xIWtRrsxQuh4fnTN40udm/YUWl/6gOebsBI +IrVLlKGqJSfB3tMjpCRqdTzJ0dA9keVpkqm2ugZkxEf1+/efq/rFIQ2pUBLCqNTN +qpNqruK8y8FphP30I2uI4Ej2UIB8AQKBwQDd2Yptj2FyDyaXCycsyde0wYkNyzGU +dRnzdibfHnMZwjgTjwAwgIUBVIS8H0/z7ZJQKN7osJfddMrtjJtYYUk9g/dCpHXs +bNh2QSoWah3FdzNGuWd0iRf9+LFxhjAAMo/FS8zFJAJKrFsBdCGTfFUMdsLC0bjr +YjiWBuvV72uKf8XIZX5KIZruKdWBBcWukcb21R1UDyFYyXRBsly5XHaIYKZql3km +7pV7MKWO0IYgHbHIqGUqPQlzZ/lkunS1jKECgcEA23wHffD6Ou9/x3okPx2AWpTr +gh8rgqbyo6hQkBW5Y90Wz824cqaYebZDaBR/xlVx/YwjKkohv8Bde2lpH/ZxRZ1Z +5Sk2s6GJ/vU0L9RsJZgCgj4L6Coal1NMxuZtCXAlnOpiCdxSZgfqbshbTVz30KsG +ZJG361Cua1ScdAHxlZBxT52/1Sm0zRC2hnxL7h4qo7Idmtzs40LAJvYOKekR0pPN +oWeJfra7vgx/jVNvMFWoOoSLpidVO4g+ot4ery6tAoHAdW3rCic1C2zdnmH28Iw+ +s50l8Lk3mz+I5wgJd1zkzCO0DxZIoWPGA3g7cmCYr6N3KRsZMs4W9NAXgjpFGDkW +zYsG3K21BdpvkdjYcFjnPVjlOXB2RIc0vehf9Jl02wXoeCSxVUDEPcaRvWk9RJYx +ZpGOchUU7vNkxHURbIJ4yCzuAi9G8/Jp0dsu+kaV5tufF5SjG5WOrzKjaQsCbdN1 +oqaWMCHRrTvov/Z2C+xwsptFOdN5CSyZzg6hQiI4GMlBAoHAXyb6KINcOEi0YMp3 +BFXJ23tMTnEs78tozcKeipigcsbaqORK3omS+NEnj+uzKUzJyl4CsMbKstK2tFYS +mSTCHqgE3PBtIpsZtEqhgUraR8IK9GPpzZDTTl9ynZgwFTNlWw3RyuyVXF56J+T8 +kCGJ3hEHCHqT/ZRQyX85BKIDFhA0z4tYKxWVqIFiYBNq56R0X9tMMmMs36mEnF93 +7Ht6mowxTZQRa7nU0qOgeKh/P7ki4Zus3y+WJ+T9IqahLtlRAoHBAIhqMrcxSAB8 +RpB9jukJlAnidw2jCMPgrFE8tP0khhVvGrXMldxAUsMKntDIo8dGCnG1KTcWDI0O +jepvSPHSsxVLFugL79h0eVIS5z4huW48i9xgU8VlHdgAcgEPIAOFcOw2BCu/s0Vp +O+MM/EyUOdo3NsibB3qc/GJI6iNBYS7AljYEVo6rXo5V/MZvZUF4vClen6Obzsre +MTTb+4sJjfqleWuvr1XNMeu2mBfXBQkWGZP1byBK0MvD/aQ2PWq92A== +-----END RSA PRIVATE KEY----- diff --git a/testdata/padding.tdir/unbound_server.pem b/testdata/padding.tdir/unbound_server.pem new file mode 100644 index 000000000..986807310 --- /dev/null +++ b/testdata/padding.tdir/unbound_server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDqzCCAhMCFBHWXeQ6ZIa9QcQbXLFfC6tj+KA+MA0GCSqGSIb3DQEBCwUAMBIx +EDAOBgNVBAMMB3VuYm91bmQwHhcNMjAwNzA4MTMzMjI5WhcNNDAwMzI1MTMzMjI5 +WjASMRAwDgYDVQQDDAd1bmJvdW5kMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB +igKCAYEAvjSVSN2QMXudpzukdLCqgg/IOhCX8KYkD0FFFfWcQjgKq5wI0x41iG32 +a6wbGanre4IX7VxaSPu9kkHfnGgynCk5nwDRedE/FLFhAU78PoT0+NqqGRS7XVQ2 +4vLmIz9Hqc2Ozx1um1BXBTmIT0UfN2e22I0LWQ6a3seZlEDRj45gnk7Zuh9MDgot +aBdm+v1JAbupSf6Zis4VEH3JNdvVGE3O1DHEIeuuz/3BDhpf6WBDH+8KWaBe1ca4 +TZHr9ThL2gEMEfAQl0wXDwRWRoi3NjNMH+mw0L1rjwThI5GXqNIee7o5FzUReSXZ +uTdFMyGe3Owcx+XoYnwi6cplSNoGsDBu4B9bKKglR9YleJVw4L4Xi8xPq6O9UPj4 ++nypHk/DOoC7DIM3ufN0yxPBsFo5TVowxfhdjZXJbbftd2TZv7AH8+XLA5UoZgRz +XgzECelXSCTBFlMTnT48LfA9pMLydyjAz2UdPHs5Iv+TK5nnI+aJoeaP7kFZSngx +dy1+A/bNAgMBAAEwDQYJKoZIhvcNAQELBQADggGBABunf93MKaCUHiZgnoOTinsW +84/EgInrgtKzAyH+BhnKkJOhhR0kkIAx5d9BpDlaSiRTACFon9moWCgDIIsK/Ar7 +JE0Kln9cV//wiiNoFU0O4mnzyGUIMvlaEX6QHMJJQYvL05+w/3AAcf5XmMJtR5ca +fJ8FqvGC34b2WxX9lTQoyT52sRt+1KnQikiMEnEyAdKktMG+MwKsFDdOwDXyZhZg +XZhRrfX3/NVJolqB6EahjWIGXDeKuSSKZVtCyib6LskyeMzN5lcRfvubKDdlqFVF +qlD7rHBsKhQUWK/IO64mGf7y/de+CgHtED5vDvr/p2uj/9sABATfbrOQR3W/Of25 +sLBj4OEfrJ7lX8hQgFaxkMI3x6VFT3W8dTCp7xnQgb6bgROWB5fNEZ9jk/gjSRmD +yIU+r0UbKe5kBk/CmZVFXL2TyJ92V5NYEQh8V4DGy19qZ6u/XKYyNJL4ocs35GGe +CA8SBuyrmdhx38h1RHErR2Skzadi1S7MwGf1y431fQ== +-----END CERTIFICATE----- diff --git a/util/config_file.c b/util/config_file.c index df274f9d0..d6da7d167 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -338,6 +338,10 @@ config_create(void) cfg->dnscrypt_shared_secret_cache_slabs = 4; cfg->dnscrypt_nonce_cache_size = 4*1024*1024; cfg->dnscrypt_nonce_cache_slabs = 4; + cfg->pad_responses = 1; + cfg->pad_responses_block_size = 468; /* from RFC8467 */ + cfg->pad_queries = 1; + cfg->pad_queries_block_size = 128; /* from RFC8467 */ #ifdef USE_IPSECMOD cfg->ipsecmod_enabled = 1; cfg->ipsecmod_ignore_bogus = 0; @@ -737,6 +741,10 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_NUMBER_OR_ZERO("fast-server-permil:", fast_server_permil) else S_YNO("qname-minimisation:", qname_minimisation) else S_YNO("qname-minimisation-strict:", qname_minimisation_strict) + else S_YNO("pad-responses:", pad_responses) + else S_SIZET_NONZERO("pad-responses-block-size:", pad_responses_block_size) + else S_YNO("pad-queries:", pad_queries) + else S_SIZET_NONZERO("pad-queries-block-size:", pad_queries_block_size) #ifdef USE_IPSECMOD else S_YNO("ipsecmod-enabled:", ipsecmod_enabled) else S_YNO("ipsecmod-ignore-bogus:", ipsecmod_ignore_bogus) @@ -1177,6 +1185,10 @@ config_get_option(struct config_file* cfg, const char* opt, else O_LS3(opt, "access-control-tag-action", acl_tag_actions) else O_LS3(opt, "access-control-tag-data", acl_tag_datas) else O_LS2(opt, "access-control-view", acl_view) + else O_YNO(opt, "pad-responses", pad_responses) + else O_DEC(opt, "pad-responses-block-size", pad_responses_block_size) + else O_YNO(opt, "pad-queries", pad_queries) + else O_DEC(opt, "pad-queries-block-size", pad_queries_block_size) else O_LS2(opt, "edns-client-strings", edns_client_strings) #ifdef USE_IPSECMOD else O_YNO(opt, "ipsecmod-enabled", ipsecmod_enabled) diff --git a/util/config_file.h b/util/config_file.h index 05b12fbaa..8f9dfa75a 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -600,6 +600,17 @@ struct config_file { size_t dnscrypt_nonce_cache_size; /** number of slabs for dnscrypt nonces cache */ size_t dnscrypt_nonce_cache_slabs; + + /** EDNS padding according to RFC7830 and RFC8467 */ + /** true to enable padding of responses (default: on) */ + int pad_responses; + /** block size with which to pad encrypted responses (default: 468) */ + size_t pad_responses_block_size; + /** true to enable padding of queries (default: on) */ + int pad_queries; + /** block size with which to pad encrypted queries (default: 128) */ + size_t pad_queries_block_size; + /** IPsec module */ #ifdef USE_IPSECMOD /** false to bypass the IPsec module */ diff --git a/util/configlexer.c b/util/configlexer.c index 4235cd04a..f5e09d2dd 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 338 -#define YY_END_OF_BUFFER 339 +#define YY_NUM_RULES 342 +#define YY_END_OF_BUFFER 343 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -363,371 +363,375 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[3296] = +static const flex_int16_t yy_accept[3341] = { 0, - 1, 1, 312, 312, 316, 316, 320, 320, 324, 324, - 1, 1, 328, 328, 332, 332, 339, 336, 1, 310, - 310, 337, 2, 337, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 312, 313, 313, 314, - 337, 316, 317, 317, 318, 337, 323, 320, 321, 321, - 322, 337, 324, 325, 325, 326, 337, 335, 311, 2, - 315, 337, 335, 331, 328, 329, 329, 330, 337, 332, - 333, 333, 334, 337, 336, 0, 1, 2, 2, 2, - 2, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 1, 1, 316, 316, 320, 320, 324, 324, 328, 328, + 1, 1, 332, 332, 336, 336, 343, 340, 1, 314, + 314, 341, 2, 341, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 316, 317, 317, 318, + 341, 320, 321, 321, 322, 341, 327, 324, 325, 325, + 326, 341, 328, 329, 329, 330, 341, 339, 315, 2, + 319, 341, 339, 335, 332, 333, 333, 334, 341, 336, + 337, 337, 338, 341, 340, 0, 1, 2, 2, 2, + 2, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 312, 0, - 316, 0, 323, 0, 320, 324, 0, 335, 0, 2, - 2, 335, 331, 0, 328, 332, 0, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 316, + 0, 320, 0, 327, 0, 324, 328, 0, 339, 0, + 2, 2, 339, 335, 0, 332, 336, 0, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 335, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 339, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 125, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 134, 336, 336, 336, - 336, 336, 336, 336, 335, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 125, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 134, + 340, 340, 340, 340, 340, 340, 340, 339, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 109, 336, 309, 336, 336, 336, 336, - 336, 8, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 109, 340, 313, 340, + 340, 340, 340, 340, 340, 340, 8, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 126, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 139, 336, 335, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 126, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 139, 340, 339, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 302, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 306, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 335, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 64, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 238, 336, 14, 15, 336, 19, 18, - 336, 336, 222, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 132, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 339, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 64, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 238, 340, 14, 15, 340, 19, 18, 340, 340, 222, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 220, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 3, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 335, 336, 336, 336, 336, 336, 336, 336, 296, 336, + 340, 132, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 220, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 3, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 339, - 336, 295, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 319, - 336, 336, 336, 336, 336, 336, 336, 336, 63, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 67, 336, 269, 336, 336, - 336, 336, 336, 336, 336, 336, 303, 304, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 300, 340, 340, + 299, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 323, 340, + 340, 340, 340, 340, 340, 340, 340, 63, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 67, 340, 269, 340, 340, 340, - 336, 336, 336, 68, 336, 336, 133, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 129, 336, 336, 336, 336, 336, 336, 336, 336, - 209, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 21, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 158, 336, 336, 335, 319, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 307, 308, 340, 340, 340, + 340, 340, 340, 340, 68, 340, 340, 133, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 129, 340, 340, 340, 340, 340, 340, 340, + 340, 209, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 21, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 158, 340, 340, 339, 323, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 107, 336, 336, - 336, 336, 336, 336, 336, 277, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 181, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 157, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 107, 340, + 340, 340, 340, 340, 340, 340, 277, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 181, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 157, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 106, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 32, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 33, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 65, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 131, 335, 336, 336, 336, 336, 336, 124, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 106, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 32, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 33, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 65, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 131, 339, 340, 340, 340, 340, 340, - 336, 336, 336, 66, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 242, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 182, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 54, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 124, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 66, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 242, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 182, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 54, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 260, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 58, 336, - 59, 336, 336, 336, 336, 336, 110, 336, 111, 336, - 336, 336, 336, 108, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 7, 336, 335, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 260, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 58, 340, 59, 340, 340, 340, 340, + 340, 110, 340, 111, 340, 340, 340, 340, 108, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 7, 340, - 336, 336, 336, 336, 231, 336, 336, 336, 336, 160, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 243, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 45, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 55, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 201, 336, - 200, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 231, + 340, 340, 340, 340, 160, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 243, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 45, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 55, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 16, 17, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 69, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 208, 336, 336, 336, 336, 336, - 336, 113, 336, 112, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 192, 336, 336, 336, - 336, 336, 336, 336, 336, 140, 335, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 101, 336, 336, + 340, 340, 340, 201, 340, 200, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 16, 17, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 69, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 208, 340, 340, 340, 340, 340, 340, 113, 340, + 112, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 192, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 89, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 221, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 94, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 62, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 195, 196, 336, 336, 336, 271, 336, + 340, 340, 140, 339, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 101, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 89, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 221, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 94, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 62, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 6, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 275, 336, 336, 336, 336, 336, 336, - 297, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 42, 336, 336, 336, 336, 44, 336, 336, 336, - 90, 336, 336, 336, 336, 336, 52, 336, 336, 336, - 336, 336, 336, 336, 335, 336, 188, 336, 336, 336, - 135, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 195, 196, 340, 340, 340, 271, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 6, 340, + 340, 340, 340, 340, 340, 290, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 275, 340, 340, 340, 340, 340, 340, + 301, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 42, 340, 340, 340, 340, 44, 340, 340, 340, + 90, 340, 340, 340, 340, 340, 52, 340, 340, 340, - 336, 213, 336, 189, 336, 336, 336, 228, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 53, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 137, - 118, 336, 119, 336, 336, 336, 117, 336, 336, 336, - 336, 336, 336, 336, 336, 155, 336, 336, 50, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 259, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 190, 336, 336, 336, 336, - 336, 193, 336, 199, 336, 336, 336, 336, 336, 227, + 340, 340, 340, 340, 339, 340, 188, 340, 340, 340, + 135, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 213, 340, 189, 340, 340, 340, 228, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 53, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 137, + 118, 340, 119, 340, 340, 340, 117, 340, 340, 340, + 340, 340, 340, 340, 340, 155, 340, 340, 50, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 259, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 105, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 130, 336, 336, 336, 336, 336, 336, - 60, 336, 336, 336, 26, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 20, 336, 336, 336, 336, 336, - 336, 27, 36, 336, 165, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 335, 336, - 336, 336, 336, 336, 336, 77, 79, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 190, 340, 340, 340, 340, + 340, 193, 340, 199, 340, 340, 340, 340, 340, 227, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 105, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 130, 340, 340, 340, 340, + 340, 340, 60, 340, 340, 340, 26, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 20, 340, 340, 340, + 340, 340, 340, 27, 36, 340, 165, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 279, 336, 336, 336, 336, 239, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 120, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 154, 336, - 46, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 290, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 159, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 219, 336, 336, 336, 336, + 339, 340, 340, 340, 340, 340, 340, 77, 79, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 279, 340, 340, 340, 340, 239, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 120, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 154, 340, 46, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 294, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 300, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 176, 336, 336, - 336, 336, 336, 336, 336, 336, 114, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 171, 336, 183, 336, - 336, 336, 336, 335, 336, 143, 336, 336, 336, 336, - 336, 100, 336, 336, 336, 336, 211, 336, 336, 336, - 336, 336, 336, 229, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 251, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 159, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 288, 340, 340, 340, + 219, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 304, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 176, 340, 340, 340, 340, 340, 340, 340, + 340, 114, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 171, 340, 183, 340, 340, 340, 340, 339, 340, + 143, 340, 340, 340, 340, 340, 100, 340, 340, 340, + 340, 211, 340, 340, 340, 340, 340, 340, 229, 340, - 336, 136, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 175, 336, 336, 336, - 336, 336, 336, 80, 336, 81, 336, 336, 336, 336, - 336, 61, 293, 336, 336, 336, 336, 336, 88, 184, - 336, 202, 336, 232, 336, 336, 194, 272, 336, 336, - 336, 336, 336, 73, 336, 186, 336, 336, 336, 336, - 336, 9, 336, 336, 336, 104, 336, 336, 336, 336, - 264, 336, 336, 336, 336, 210, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 251, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 136, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 175, 340, 340, 340, 340, 340, 340, 80, 340, + 81, 340, 340, 340, 340, 340, 61, 297, 340, 340, + 340, 340, 340, 88, 184, 340, 202, 340, 232, 340, + 340, 194, 272, 340, 340, 340, 340, 340, 73, 340, + 186, 340, 340, 340, 340, 340, 9, 340, 340, 340, + 340, 340, 104, 340, 340, 340, 340, 264, 340, 340, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 335, 336, 336, 336, 336, 174, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 161, 336, 278, - 336, 336, 336, 336, 336, 250, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 223, 336, 336, - 336, 336, 336, 270, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 294, 336, 185, 336, 336, 336, + 340, 340, 210, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 339, 340, + 340, 340, 340, 174, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 161, 340, 278, 340, 340, 340, + 340, 340, 250, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 223, 340, 340, 340, 340, 340, + 270, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 72, 74, 336, 336, 336, 336, - 336, 336, 336, 103, 336, 336, 336, 336, 262, 336, - 336, 336, 336, 274, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 215, 34, 28, 30, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 35, 336, - 29, 31, 336, 336, 336, 336, 336, 336, 336, 336, - 99, 336, 336, 336, 336, 336, 336, 335, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 217, - 214, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 71, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 298, 340, 185, 340, 340, 340, 340, 340, 340, + 340, 72, 74, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 103, 340, 340, 340, 340, 262, 340, 340, + 340, 340, 274, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 215, 34, 28, 30, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 35, 340, 29, + 31, 340, 340, 340, 340, 340, 340, 340, 340, 99, + 340, 340, 340, 340, 340, 340, 339, 340, 340, 340, - 336, 336, 336, 138, 336, 121, 336, 336, 336, 336, - 336, 336, 336, 336, 156, 47, 336, 336, 336, 327, - 13, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 288, 336, 291, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 12, 336, 336, 22, 336, 336, - 336, 268, 336, 336, 336, 336, 276, 336, 336, 336, - 75, 336, 225, 336, 336, 336, 336, 216, 336, 336, - 70, 336, 336, 336, 336, 23, 336, 43, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 170, 169, 327, 336, 336, 336, 336, 336, 336, 336, + 340, 340, 340, 340, 340, 340, 340, 340, 217, 214, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 71, 340, + 340, 340, 138, 340, 121, 340, 340, 340, 340, 340, + 340, 340, 340, 156, 47, 340, 340, 340, 331, 13, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 292, 340, 295, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 12, 340, 340, 22, 340, 340, 340, + 340, 340, 268, 340, 340, 340, 340, 276, 340, 340, + 340, 75, 340, 225, 340, 340, 340, 340, 216, 340, - 336, 336, 218, 212, 336, 230, 336, 336, 280, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 82, 336, 336, 336, 336, 263, 336, 336, 336, - 336, 198, 336, 336, 336, 336, 224, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 298, 299, 167, 336, - 336, 76, 336, 336, 336, 336, 177, 336, 336, 115, - 116, 336, 336, 336, 336, 162, 336, 164, 336, 203, - 336, 336, 336, 336, 168, 336, 336, 233, 336, 336, + 340, 70, 340, 340, 340, 340, 23, 340, 43, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 170, 169, 331, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 218, 212, 340, 230, 340, 340, 280, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 82, 340, 340, 340, 340, 263, 340, 340, + 340, 340, 198, 340, 340, 340, 340, 224, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 302, - 336, 336, 336, 336, 336, 145, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 241, 336, - 336, 336, 336, 336, 336, 336, 307, 336, 24, 336, - 273, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 86, 204, 336, 336, 261, - 336, 292, 336, 197, 336, 336, 336, 336, 56, 336, - 336, 336, 336, 4, 336, 336, 336, 336, 128, 144, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 236, 37, - 38, 336, 336, 336, 336, 336, 336, 336, 281, 336, + 303, 167, 340, 340, 76, 340, 340, 340, 340, 177, + 340, 340, 115, 116, 340, 340, 340, 340, 162, 340, + 164, 340, 203, 340, 340, 340, 340, 168, 340, 340, + 233, 340, 340, 340, 340, 340, 340, 340, 145, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 241, 340, 340, 340, 340, 340, 340, 340, 311, + 340, 24, 340, 273, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 86, 204, + 340, 340, 261, 340, 296, 340, 197, 340, 340, 340, + 340, 56, 340, 340, 340, 340, 340, 340, 4, 340, - 336, 336, 336, 336, 336, 336, 249, 336, 336, 336, - 336, 336, 336, 336, 336, 207, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 85, 336, - 57, 267, 336, 237, 336, 336, 336, 336, 11, 336, - 336, 336, 336, 336, 336, 127, 336, 336, 336, 336, - 205, 91, 336, 40, 336, 336, 336, 336, 336, 336, - 336, 336, 173, 336, 336, 336, 336, 336, 147, 336, - 336, 336, 336, 240, 336, 336, 336, 336, 336, 248, - 336, 336, 336, 336, 141, 336, 336, 336, 122, 123, - 336, 336, 336, 93, 97, 92, 336, 336, 336, 336, + 340, 340, 340, 128, 144, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 236, 37, 38, 340, 340, 340, 340, + 340, 340, 340, 281, 340, 340, 340, 340, 340, 340, + 340, 249, 340, 340, 340, 340, 340, 340, 340, 340, + 207, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 85, 340, 57, 267, 340, 237, 340, + 340, 340, 340, 11, 340, 340, 340, 340, 340, 340, + 340, 340, 127, 340, 340, 340, 340, 205, 91, 340, + 40, 340, 340, 340, 340, 340, 340, 340, 340, 173, - 83, 336, 336, 336, 336, 336, 10, 336, 336, 336, - 265, 301, 336, 336, 336, 336, 306, 39, 336, 336, - 336, 336, 336, 172, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 98, 96, 336, - 51, 336, 336, 84, 289, 336, 336, 336, 336, 336, - 336, 336, 191, 336, 336, 336, 336, 336, 206, 336, - 336, 336, 336, 336, 336, 336, 336, 163, 78, 336, - 336, 336, 336, 336, 282, 336, 336, 336, 336, 336, - 336, 336, 245, 336, 336, 244, 142, 336, 336, 95, + 340, 340, 340, 340, 340, 147, 340, 340, 340, 340, + 240, 340, 340, 340, 340, 340, 248, 340, 340, 340, + 340, 141, 340, 340, 340, 122, 123, 340, 340, 340, + 93, 97, 92, 340, 340, 340, 340, 83, 340, 340, + 340, 340, 340, 10, 340, 340, 340, 340, 340, 265, + 305, 340, 340, 340, 340, 310, 39, 340, 340, 340, + 340, 340, 172, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 98, 96, 340, 51, + 340, 340, 84, 293, 340, 340, 340, 340, 340, 340, - 48, 336, 148, 149, 152, 153, 150, 151, 87, 336, - 266, 336, 336, 336, 336, 166, 336, 336, 336, 336, - 336, 235, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 179, 178, 41, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 102, 336, 234, 336, 258, 286, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 308, 336, 49, - 5, 336, 336, 226, 336, 336, 287, 336, 336, 336, + 340, 340, 340, 191, 340, 340, 340, 340, 340, 206, + 340, 340, 340, 340, 340, 340, 340, 340, 163, 78, + 340, 340, 340, 340, 340, 282, 340, 340, 340, 340, + 340, 340, 340, 245, 340, 340, 244, 142, 340, 340, + 95, 48, 340, 148, 149, 152, 153, 150, 151, 87, + 291, 340, 340, 266, 340, 340, 340, 340, 166, 340, + 340, 340, 340, 340, 235, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 179, 178, 41, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 336, 336, 336, 336, 336, 336, 246, 25, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 247, 336, 336, 336, 146, 336, 336, 336, 336, 336, - 336, 336, 336, 180, 336, 187, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 283, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 305, 336, 336, 254, 336, 336, 336, - 336, 336, 284, 336, 336, 336, 336, 336, 336, 285, - 336, 336, 336, 252, 336, 255, 256, 336, 336, 336, - 336, 336, 253, 257, 0 + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 289, 340, 340, 340, 340, 102, 340, 234, 340, 258, + 286, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 312, 340, 49, 5, 340, 340, 226, 340, + 340, 287, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 246, 25, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 247, 340, 340, 340, 146, + 340, 340, 340, 340, 340, 340, 340, 340, 180, 340, + 187, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 283, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 309, 340, + 340, 254, 340, 340, 340, 340, 340, 284, 340, 340, + 340, 340, 340, 340, 285, 340, 340, 340, 252, 340, + 255, 256, 340, 340, 340, 340, 340, 253, 257, 0 } ; static const YY_CHAR yy_ec[256] = @@ -770,745 +774,753 @@ static const YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[3314] = +static const flex_int16_t yy_base[3359] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 96, 118, 124, 136, 2992, 2881, 81, 6437, - 6437, 6437, 129, 52, 130, 63, 131, 152, 70, 140, - 149, 156, 57, 88, 76, 173, 175, 95, 184, 145, - 185, 205, 211, 217, 178, 123, 2560, 6437, 6437, 6437, - 107, 2496, 6437, 6437, 6437, 154, 2163, 1764, 6437, 6437, - 6437, 249, 1649, 6437, 6437, 6437, 163, 1451, 6437, 253, - 6437, 257, 148, 1354, 1226, 6437, 6437, 6437, 261, 1170, - 6437, 6437, 6437, 207, 1091, 267, 203, 0, 271, 0, - 0, 165, 204, 215, 206, 207, 216, 265, 92, 263, + 90, 112, 96, 118, 124, 136, 4574, 4073, 81, 6519, + 6519, 6519, 129, 52, 130, 63, 131, 152, 70, 140, + 149, 156, 57, 88, 76, 173, 175, 95, 197, 145, + 185, 199, 208, 213, 178, 123, 3610, 6519, 6519, 6519, + 107, 3567, 6519, 6519, 6519, 154, 3481, 3242, 6519, 6519, + 6519, 245, 3155, 6519, 6519, 6519, 163, 2778, 6519, 249, + 6519, 253, 148, 2533, 2411, 6519, 6519, 6519, 257, 2074, + 6519, 6519, 6519, 233, 2014, 263, 201, 0, 267, 0, + 0, 165, 191, 221, 252, 205, 181, 265, 92, 261, - 269, 273, 256, 267, 276, 284, 277, 280, 282, 288, - 286, 290, 226, 292, 228, 296, 303, 311, 298, 313, - 321, 301, 315, 234, 319, 314, 332, 331, 333, 316, - 334, 337, 335, 342, 343, 348, 345, 354, 355, 350, - 356, 366, 359, 368, 371, 360, 379, 374, 377, 364, - 382, 389, 387, 388, 392, 395, 401, 394, 962, 412, - 919, 417, 872, 426, 749, 518, 430, 357, 434, 438, - 0, 415, 293, 442, 244, 181, 446, 434, 446, 405, - 441, 442, 443, 444, 445, 447, 448, 449, 451, 465, - 458, 463, 470, 467, 474, 475, 480, 473, 478, 482, + 216, 263, 271, 272, 210, 279, 274, 282, 278, 291, + 283, 286, 276, 285, 295, 293, 306, 314, 297, 313, + 317, 311, 315, 319, 321, 331, 327, 332, 336, 322, + 339, 337, 346, 345, 347, 348, 353, 351, 357, 284, + 358, 359, 369, 360, 380, 365, 381, 379, 375, 366, + 367, 389, 390, 394, 393, 395, 396, 403, 404, 1925, + 419, 1172, 422, 924, 429, 854, 832, 433, 781, 437, + 441, 0, 433, 705, 447, 479, 287, 452, 411, 445, + 426, 446, 447, 448, 449, 450, 451, 453, 452, 456, + 470, 234, 463, 473, 481, 479, 476, 483, 486, 487, - 486, 476, 490, 498, 499, 500, 493, 501, 502, 504, - 506, 507, 508, 522, 520, 511, 514, 533, 534, 538, - 543, 529, 545, 547, 536, 552, 548, 560, 551, 564, - 559, 550, 561, 562, 565, 568, 569, 570, 573, 575, - 572, 576, 574, 586, 588, 579, 591, 589, 602, 598, - 605, 600, 601, 409, 603, 607, 610, 615, 608, 618, - 613, 619, 623, 629, 632, 636, 635, 621, 634, 631, - 638, 640, 641, 642, 645, 652, 655, 651, 653, 665, - 660, 662, 663, 664, 666, 667, 677, 669, 680, 683, - 673, 679, 685, 687, 689, 691, 690, 694, 695, 699, + 488, 489, 491, 492, 501, 500, 502, 505, 508, 510, + 511, 460, 509, 513, 527, 515, 516, 519, 538, 529, + 540, 543, 539, 548, 555, 400, 550, 551, 558, 553, + 560, 561, 569, 562, 565, 566, 567, 570, 572, 574, + 576, 579, 578, 582, 577, 590, 591, 585, 595, 594, + 606, 601, 608, 604, 605, 362, 607, 611, 615, 623, + 612, 627, 613, 614, 629, 633, 640, 641, 636, 622, + 637, 639, 643, 644, 646, 648, 647, 656, 660, 659, + 663, 667, 657, 665, 669, 671, 673, 649, 682, 675, + 684, 688, 680, 683, 690, 692, 694, 696, 695, 699, - 702, 700, 707, 709, 716, 713, 718, 715, 727, 728, - 703, 712, 724, 725, 731, 726, 733, 735, 736, 740, - 741, 743, 746, 744, 754, 750, 752, 767, 759, 757, - 760, 769, 770, 778, 771, 792, 799, 777, 763, 788, - 781, 797, 800, 802, 807, 803, 810, 813, 814, 815, - 816, 817, 818, 826, 822, 6437, 821, 824, 836, 838, - 839, 842, 832, 848, 831, 852, 855, 857, 854, 862, - 884, 858, 860, 861, 873, 866, 6437, 874, 868, 908, - 879, 886, 897, 892, 904, 870, 899, 906, 890, 918, - 902, 901, 916, 932, 929, 913, 917, 931, 935, 938, + 697, 700, 708, 704, 713, 712, 721, 716, 722, 719, + 731, 732, 727, 717, 728, 729, 733, 736, 730, 740, + 738, 741, 745, 743, 750, 752, 760, 755, 756, 771, + 763, 766, 762, 773, 774, 769, 775, 793, 798, 799, + 786, 800, 801, 804, 803, 805, 807, 808, 809, 818, + 811, 823, 815, 824, 825, 829, 836, 834, 6519, 831, + 833, 847, 848, 849, 852, 765, 856, 858, 839, 868, + 864, 861, 870, 892, 865, 878, 869, 871, 874, 6519, + 887, 880, 916, 882, 889, 902, 903, 900, 904, 905, + 917, 910, 933, 850, 914, 922, 943, 939, 925, 938, - 945, 941, 943, 944, 947, 954, 949, 950, 955, 967, - 951, 957, 959, 958, 968, 976, 977, 980, 982, 969, - 985, 986, 987, 989, 992, 993, 997, 995, 1008, 990, - 1009, 1021, 1016, 1017, 1020, 1019, 1025, 1026, 1027, 1029, - 1032, 1033, 1034, 1035, 1045, 1040, 1041, 1043, 1048, 1049, - 1050, 1055, 1052, 1057, 1058, 1060, 1061, 1062, 1068, 1066, - 1073, 1076, 1078, 6437, 1079, 6437, 1081, 1082, 1083, 1084, - 1085, 6437, 1087, 1088, 1089, 1096, 1099, 1086, 1114, 1098, - 1101, 1111, 1113, 1112, 1117, 1124, 1120, 1125, 1127, 1123, - 1129, 1130, 1133, 1131, 1136, 1138, 1139, 1142, 1143, 1146, + 940, 907, 941, 948, 949, 946, 951, 953, 960, 952, + 957, 959, 971, 961, 970, 972, 965, 974, 980, 985, + 987, 992, 975, 984, 995, 978, 990, 998, 1008, 1003, + 1001, 1009, 1012, 1015, 1023, 1019, 1027, 1028, 1002, 1029, + 1030, 1035, 1031, 1038, 1041, 1039, 1042, 1051, 1049, 1047, + 1048, 1054, 1055, 1056, 1058, 1061, 1064, 1063, 1068, 1072, + 1066, 1073, 1079, 1067, 1085, 1077, 6519, 1089, 6519, 1080, + 1083, 1087, 1092, 1093, 1094, 1095, 6519, 1097, 1100, 1102, + 1105, 1109, 1111, 1110, 1116, 1112, 1123, 1124, 1125, 1128, + 1135, 1130, 1133, 1138, 1137, 1140, 1141, 1144, 1142, 1147, - 1163, 6437, 1147, 1150, 1151, 1149, 1156, 1157, 1175, 1166, - 1173, 1174, 1176, 1192, 1187, 1188, 1191, 1195, 1196, 1198, - 1200, 1205, 1207, 1148, 1208, 1201, 1209, 1210, 1203, 1211, - 1213, 1221, 6437, 1217, 1229, 1238, 1224, 1219, 1235, 1237, - 1240, 1239, 1241, 1243, 1242, 1246, 1250, 1248, 1259, 1249, - 1266, 1252, 1262, 1263, 1267, 1268, 1269, 1271, 1275, 1284, - 1276, 1286, 1293, 1294, 1296, 1298, 1305, 1307, 1279, 1302, - 1308, 1304, 1303, 1310, 1312, 1316, 1313, 1319, 1320, 1323, - 1325, 1326, 1327, 1328, 1330, 1333, 1334, 1335, 1337, 1339, - 1347, 1345, 1343, 1358, 1346, 1351, 1349, 1356, 1360, 1363, + 1149, 1148, 1154, 1155, 1158, 1175, 6519, 1157, 1167, 1162, + 1159, 1168, 1169, 1187, 1185, 1188, 1186, 1190, 1203, 1198, + 1204, 1206, 1207, 1160, 1210, 1212, 1214, 1216, 1217, 1218, + 1219, 1221, 1222, 1223, 1225, 1224, 1228, 6519, 1226, 1236, + 1247, 1242, 1245, 1246, 1248, 1249, 1161, 1251, 1250, 1106, + 517, 1253, 1257, 1258, 1259, 1272, 1267, 1270, 1268, 1269, + 1275, 1274, 1276, 1278, 1287, 1283, 1289, 1291, 1299, 1298, + 1301, 1308, 1310, 1303, 1305, 1311, 1307, 1306, 1313, 1315, + 1322, 1316, 1319, 1326, 1329, 1328, 1331, 1335, 1320, 1336, + 1333, 1341, 1342, 1343, 1344, 1351, 1350, 1346, 1358, 1353, - 1362, 1371, 6437, 1379, 1374, 1375, 1377, 1380, 1384, 1388, - 1382, 1389, 782, 1391, 1390, 1392, 1397, 1399, 1394, 1400, - 1401, 1402, 1411, 1409, 1417, 1421, 1422, 1423, 1406, 1426, - 1433, 1429, 1436, 1432, 1431, 1437, 1444, 1439, 1441, 1445, - 1453, 1448, 1446, 1457, 1449, 1458, 1274, 1460, 1472, 1461, - 1470, 1477, 1479, 1468, 1481, 1482, 1484, 1474, 1485, 1487, - 1488, 1489, 1496, 1491, 1497, 1498, 1499, 1494, 1500, 1504, - 1502, 1521, 1508, 1511, 1510, 1518, 1520, 1525, 1526, 1527, - 1528, 1530, 1531, 1534, 1532, 1535, 1538, 1540, 1544, 1550, - 1551, 1541, 1553, 1554, 1558, 1561, 1562, 1563, 1570, 1560, + 1356, 1354, 1352, 1373, 1374, 1363, 1365, 6519, 1381, 1367, + 1382, 1383, 1384, 1388, 1390, 1386, 1392, 1393, 1394, 1396, + 1397, 1399, 1403, 1404, 1405, 1406, 1408, 1419, 1416, 1411, + 1427, 1426, 1428, 1418, 1430, 1432, 1431, 1440, 1438, 1441, + 1439, 1445, 1446, 1453, 1448, 1449, 1454, 1463, 1456, 1455, + 1460, 1458, 1466, 1469, 1468, 1483, 1472, 1480, 1488, 1489, + 1479, 1491, 1481, 1492, 1495, 1496, 1497, 1498, 1499, 1507, + 1502, 1503, 1505, 1508, 1509, 1510, 1516, 1511, 1524, 1521, + 1522, 1525, 1530, 1532, 1533, 1531, 1537, 1538, 1539, 1540, + 1546, 1541, 1548, 1550, 1543, 1554, 1553, 1561, 1559, 1563, - 1573, 1574, 1571, 1577, 1576, 1579, 1587, 1589, 1581, 1582, - 1592, 1594, 1596, 1598, 1600, 1603, 1599, 1605, 6437, 1606, - 1616, 1611, 1615, 1612, 1613, 1618, 1626, 1621, 1623, 1622, - 1627, 1628, 1653, 6437, 1632, 6437, 6437, 1633, 6437, 6437, - 1634, 1635, 6437, 1639, 1637, 1644, 1657, 1663, 1666, 1659, - 1651, 1642, 1654, 1677, 1678, 1676, 1668, 1683, 1684, 1686, - 1687, 1693, 1692, 1694, 1695, 1699, 1706, 1708, 1703, 1712, - 1713, 1716, 1714, 1721, 1723, 1726, 1729, 1722, 1730, 1732, - 1733, 1735, 1737, 1738, 1740, 1742, 1743, 1741, 1746, 1747, - 1757, 1760, 1762, 1772, 6437, 1763, 1770, 1773, 1774, 1781, + 1568, 1569, 1572, 1571, 1574, 1580, 1570, 1583, 1584, 1573, + 1586, 1589, 1591, 1594, 1598, 1592, 1599, 1600, 1603, 1604, + 1610, 1611, 1614, 1616, 1618, 6519, 1605, 1628, 1619, 1626, + 1623, 1607, 1629, 1637, 1633, 1636, 1634, 1638, 1640, 1664, + 6519, 1642, 6519, 6519, 1644, 6519, 6519, 1645, 1649, 6519, + 1650, 1653, 1651, 1668, 1658, 1670, 1674, 1675, 1665, 1677, + 1687, 1698, 1689, 1680, 1678, 1688, 1682, 1691, 1703, 1690, + 1704, 1707, 1712, 1724, 1713, 1721, 1714, 1725, 1726, 1728, + 1731, 1735, 1737, 1646, 1738, 1739, 1741, 1742, 1744, 1743, + 1746, 1749, 1752, 1753, 1755, 1748, 1756, 1765, 1767, 1769, - 1777, 1776, 1778, 1784, 1788, 1785, 1789, 1790, 1791, 1792, - 1797, 1794, 1800, 1802, 1805, 1804, 6437, 1806, 1809, 1810, - 1812, 1813, 1816, 1820, 1814, 1821, 1824, 1826, 1836, 1831, - 1827, 1829, 1838, 1837, 1840, 6437, 1748, 1845, 1841, 1849, - 1850, 1852, 1853, 1855, 1856, 1857, 1858, 1859, 1860, 1864, - 1874, 1870, 1875, 1865, 1880, 1882, 1885, 1886, 1890, 1892, - 1893, 1895, 1896, 1897, 1898, 1900, 1901, 1909, 1911, 1908, - 1913, 1910, 1906, 1929, 1931, 1914, 1916, 1927, 1928, 1930, - 1936, 1938, 1940, 1934, 1941, 1948, 1944, 1946, 1949, 1950, - 1959, 1956, 1957, 1962, 1960, 1965, 1968, 1969, 6437, 1966, + 1776, 6519, 1774, 1777, 1786, 1782, 1789, 1781, 1785, 1788, + 1793, 1795, 1790, 1797, 1799, 1800, 1801, 1802, 1803, 1806, + 1808, 1812, 1810, 1827, 1811, 6519, 1814, 1816, 1813, 1824, + 1826, 1828, 1833, 1832, 1834, 1836, 1839, 1848, 1840, 1843, + 1844, 1851, 1849, 1850, 6519, 1854, 1865, 1855, 1857, 1866, + 1868, 1869, 1870, 1871, 1872, 1867, 1757, 1875, 1877, 1880, + 1885, 1883, 1878, 1884, 1899, 1886, 1901, 1903, 1904, 1907, + 1908, 1909, 1910, 1911, 1912, 1914, 1919, 1921, 1918, 1926, + 1922, 1923, 1935, 1944, 1937, 1927, 1939, 1940, 1942, 1947, + 1955, 1879, 1950, 1952, 1960, 1953, 1957, 1958, 1961, 1970, - 1970, 6437, 1974, 1972, 1975, 1997, 1976, 1979, 1978, 1981, - 1986, 1991, 1989, 1998, 1994, 2001, 2020, 2007, 2003, 2005, - 2010, 2022, 2023, 2024, 2026, 2028, 2030, 2032, 2033, 2031, - 2048, 2051, 2047, 2043, 2056, 2052, 2034, 2054, 2075, 2055, - 2057, 2059, 2058, 2060, 2063, 2069, 2064, 2065, 2066, 2071, - 2086, 2088, 2079, 2082, 2090, 2092, 2097, 2098, 2099, 6437, - 2109, 2104, 2105, 2108, 2112, 2117, 2115, 2114, 6437, 2118, - 2121, 2116, 2128, 2126, 2123, 2129, 2131, 2136, 2137, 2140, - 2138, 2139, 2143, 2141, 2159, 6437, 2144, 6437, 2154, 2145, - 2155, 2156, 2146, 2161, 2162, 2166, 6437, 6437, 2172, 2169, + 1962, 1967, 1974, 1972, 1978, 1979, 1980, 6519, 1981, 1982, + 6519, 1987, 1983, 1985, 2007, 1988, 1986, 1993, 1992, 1995, + 1997, 2002, 2011, 2004, 2013, 2030, 2022, 2019, 2032, 2026, + 2034, 2035, 2037, 2038, 2040, 2043, 2044, 2015, 2045, 2060, + 2062, 2059, 2051, 2069, 2055, 2064, 2066, 2085, 2067, 2065, + 2068, 2075, 2071, 2073, 2080, 2076, 2081, 2089, 2094, 2098, + 2096, 2095, 2097, 2102, 2103, 2113, 2116, 2106, 6519, 2123, + 2119, 2109, 2124, 2114, 2131, 2130, 2132, 6519, 2133, 2134, + 2136, 2144, 2137, 2139, 2140, 2141, 2148, 2147, 2153, 2150, + 2154, 2149, 2156, 2166, 6519, 2164, 6519, 2157, 2168, 2170, - 2179, 2181, 2173, 6437, 2182, 2189, 6437, 2190, 2184, 2185, - 2192, 2193, 2195, 2197, 2196, 2206, 2201, 2208, 2203, 2214, - 2215, 6437, 2204, 2205, 2217, 2220, 2216, 2223, 2230, 2224, - 6437, 2227, 2231, 2234, 2243, 2239, 2241, 2242, 2245, 2251, - 2244, 2246, 2249, 2253, 2254, 2261, 2263, 2259, 2266, 2268, - 2276, 6437, 2272, 2258, 2280, 2277, 2284, 2279, 2285, 2275, - 2281, 2286, 2292, 2287, 2291, 2297, 2299, 2301, 2308, 2309, - 2304, 2305, 2307, 2312, 2313, 2314, 2321, 2316, 2323, 2318, - 2322, 6437, 2324, 2329, 2325, 171, 2330, 2333, 2338, 2335, - 2342, 2353, 2336, 2355, 2360, 2341, 2358, 1867, 2359, 2361, + 2169, 2172, 2176, 2174, 2177, 6519, 6519, 2181, 2175, 2192, + 2200, 2178, 2195, 2185, 6519, 2196, 2203, 6519, 2204, 2206, + 2199, 2201, 2207, 2211, 2214, 2215, 2222, 2217, 2224, 2219, + 2220, 2226, 6519, 2228, 2232, 2233, 2236, 2235, 2239, 2242, + 2243, 6519, 2246, 2245, 2248, 2256, 2258, 2259, 2249, 2260, + 2264, 2262, 2266, 2269, 2270, 2271, 2278, 2281, 2274, 2277, + 2283, 2292, 6519, 2276, 2287, 2296, 2293, 2300, 2295, 2297, + 2291, 2301, 2302, 2308, 2303, 2310, 2312, 2313, 2316, 2323, + 2324, 2319, 2321, 2328, 2322, 2329, 2332, 2337, 2331, 2336, + 2338, 2339, 6519, 2340, 2347, 2342, 171, 2351, 2348, 2354, - 2362, 2365, 2366, 2367, 2339, 2368, 2369, 6437, 2372, 2373, - 2374, 2378, 2379, 2377, 2384, 6437, 2390, 2395, 2399, 2402, - 2405, 2406, 2407, 2408, 2391, 2413, 2411, 2414, 2417, 2418, - 2421, 2415, 2419, 6437, 2425, 2431, 2432, 2428, 2434, 2440, - 2441, 2430, 2442, 2443, 2446, 2449, 2447, 2451, 2452, 2453, - 2455, 2459, 2460, 2456, 2461, 2468, 2467, 2466, 2472, 2469, - 2470, 2478, 2479, 6437, 2486, 2483, 2487, 2489, 2490, 2491, - 2500, 2492, 2509, 2494, 2502, 2506, 2511, 2520, 2514, 2515, - 2523, 2530, 2532, 2526, 2540, 2536, 2542, 2544, 2538, 2548, - 2550, 2546, 2551, 2552, 2554, 2557, 2556, 2558, 2571, 2573, + 2350, 2352, 2368, 2353, 2375, 2376, 2356, 2374, 2358, 2377, + 2371, 2378, 2381, 2380, 2383, 2384, 2388, 2387, 6519, 2390, + 2393, 2394, 2396, 2398, 2397, 2400, 6519, 2409, 2420, 2410, + 2423, 2401, 2418, 2424, 2425, 2428, 2426, 2429, 2430, 2431, + 2433, 2436, 2437, 2439, 6519, 2441, 2442, 2451, 2445, 2452, + 2455, 2453, 2454, 2460, 2461, 2464, 2463, 2466, 2467, 2468, + 2470, 2471, 2477, 2481, 2472, 2474, 2484, 2482, 2485, 2486, + 2488, 2490, 2495, 2499, 6519, 2506, 2501, 2503, 2505, 2502, + 2508, 2509, 2511, 2526, 2512, 2518, 2521, 2527, 2535, 2529, + 2530, 2547, 2537, 2545, 2546, 2557, 2556, 2559, 2552, 2549, - 2563, 2518, 2572, 2577, 2582, 2564, 6437, 2583, 2584, 2585, - 2589, 2597, 2593, 2594, 2595, 2601, 2604, 2605, 2606, 2607, - 2614, 2609, 2611, 2612, 2617, 2618, 2620, 2623, 2627, 2628, - 2631, 2634, 2636, 2380, 6437, 2637, 2638, 2639, 2642, 2645, - 2646, 2648, 2653, 2650, 2656, 2657, 2660, 2661, 2662, 2663, - 2664, 2667, 2668, 2671, 6437, 2672, 2673, 2674, 2680, 2682, - 2684, 2685, 2693, 2686, 2697, 2695, 2699, 2701, 2702, 2703, - 6437, 2710, 2711, 2708, 2712, 2714, 2715, 2718, 2720, 2721, - 6437, 2722, 2724, 2725, 2732, 2733, 2730, 6437, 2745, 2735, - 2731, 2738, 2728, 2742, 2743, 2746, 2750, 2752, 2753, 2754, + 2562, 2566, 2560, 2565, 2567, 2568, 2572, 2573, 2574, 2581, + 2584, 2585, 2582, 2589, 2591, 2579, 2594, 2602, 2597, 6519, + 2606, 2601, 2604, 2611, 2618, 2614, 2613, 2619, 2615, 2621, + 2625, 2626, 2627, 2634, 2631, 2638, 2633, 2637, 2636, 2639, + 2640, 2643, 2649, 2652, 2655, 2657, 2659, 6519, 2660, 2662, + 2653, 2664, 2666, 2669, 2675, 2676, 2678, 2671, 2679, 2681, + 2682, 2684, 2685, 2686, 2688, 2693, 2690, 6519, 2696, 2694, + 2698, 2701, 2706, 2704, 2713, 2707, 2714, 2716, 2720, 2721, + 2722, 2723, 2724, 6519, 2732, 2733, 2729, 2741, 2731, 2736, + 2738, 2743, 2744, 6519, 2745, 2746, 2747, 2754, 2756, 2751, - 2763, 2757, 2760, 6437, 2764, 2773, 2766, 2769, 2768, 2774, - 2775, 2779, 2781, 2782, 2785, 2792, 6437, 2799, 2796, 2798, - 2808, 2795, 2801, 2803, 2805, 2811, 2804, 2812, 2813, 2815, - 6437, 2817, 2819, 2820, 2823, 2825, 2826, 2828, 2836, 2833, - 2834, 2840, 2841, 2842, 2839, 2843, 2852, 2846, 2849, 2855, - 2860, 2850, 2862, 2863, 2868, 2872, 2876, 2873, 2875, 2878, - 2877, 2879, 2880, 2888, 2892, 2895, 2890, 2896, 6437, 2899, - 2901, 2894, 2902, 2904, 2907, 2908, 2906, 2909, 2911, 2914, - 2912, 2915, 2918, 2925, 2933, 2926, 2934, 2928, 2930, 2936, - 2938, 2939, 2940, 2941, 2948, 2950, 2944, 2957, 2952, 2956, + 6519, 2758, 2753, 2759, 2761, 2762, 2763, 2765, 2768, 2771, + 2772, 2775, 2780, 2787, 2776, 2784, 6519, 2782, 2796, 2788, + 2794, 2792, 2798, 2802, 2804, 2805, 2807, 2809, 2814, 6519, + 2821, 2820, 2818, 2831, 2808, 2823, 2826, 2832, 2833, 2834, + 2835, 2836, 2839, 6519, 2840, 2842, 2843, 2845, 2847, 2848, + 2850, 2862, 2853, 2857, 2858, 2863, 2864, 2867, 2868, 2870, + 2875, 2871, 2874, 2881, 2884, 2885, 2887, 2890, 2898, 2901, + 2888, 2897, 2900, 2893, 2903, 2905, 2914, 2917, 2918, 2915, + 2919, 6519, 2922, 2923, 2904, 2925, 2926, 2928, 2929, 2930, + 2931, 2933, 2939, 2935, 2934, 2936, 2951, 2958, 2941, 2959, - 2967, 2953, 2954, 2963, 2964, 2965, 2966, 2969, 2974, 2977, - 2976, 2986, 2990, 2991, 2993, 2968, 2992, 2994, 2998, 6437, - 2995, 3003, 2999, 3002, 3005, 3010, 3006, 3018, 3015, 3016, - 3019, 3023, 3028, 3020, 3025, 3026, 3037, 3034, 6437, 3035, - 6437, 3036, 3039, 3041, 3051, 3038, 6437, 3048, 6437, 3049, - 3055, 3050, 3056, 6437, 3059, 3060, 3061, 3063, 3067, 3065, - 3068, 3069, 3071, 3075, 3079, 3073, 3077, 3078, 3081, 3083, - 3090, 3089, 3093, 3094, 3096, 3102, 3097, 3099, 3105, 3108, - 3110, 3111, 3113, 6437, 3116, 3112, 3120, 3121, 3122, 3123, - 3124, 3125, 3129, 3131, 3132, 3140, 3136, 3143, 3133, 3144, + 2946, 2949, 2954, 2962, 2956, 2964, 2969, 2972, 2971, 2970, + 2979, 2974, 2977, 2986, 2978, 2981, 2982, 2985, 2988, 2989, + 2990, 2991, 2995, 2994, 2999, 3003, 3007, 3009, 3011, 3017, + 3012, 3014, 3019, 3020, 6519, 3024, 3028, 3029, 3027, 3030, + 3035, 3031, 3043, 3038, 3041, 3040, 3048, 3051, 3049, 3050, + 3056, 3063, 3059, 6519, 3060, 6519, 3061, 3062, 3064, 3072, + 3070, 6519, 3074, 6519, 3077, 3084, 3071, 3075, 6519, 3085, + 3079, 3086, 3092, 3081, 3089, 3094, 3097, 3098, 3100, 3105, + 3103, 3104, 3106, 3107, 3108, 3111, 3115, 3117, 3120, 3124, + 3126, 3116, 3128, 3118, 3132, 3134, 3137, 3139, 6519, 3142, - 3150, 3160, 3147, 3162, 6437, 3157, 3159, 3161, 3163, 6437, - 3165, 3164, 3172, 3174, 3168, 3166, 3176, 3178, 3185, 3177, - 3187, 3183, 3190, 3198, 3189, 3197, 6437, 3201, 3202, 3179, - 3206, 3212, 3219, 3220, 3217, 3223, 3225, 3221, 3227, 3205, - 3228, 3229, 3230, 3231, 3239, 3241, 3237, 3244, 3236, 3240, - 3252, 3249, 3243, 3247, 3253, 3255, 3256, 3257, 3258, 3260, - 3262, 3263, 3264, 6437, 3268, 3272, 3274, 3281, 3277, 3278, - 3279, 3282, 3286, 6437, 3289, 3290, 3293, 3291, 3300, 3302, - 3292, 3295, 3304, 3305, 3308, 3309, 3312, 3311, 6437, 3313, - 6437, 3315, 3326, 3331, 3335, 3320, 3318, 3338, 3343, 3337, + 3145, 3146, 3148, 3147, 3149, 3150, 3151, 3153, 3154, 3157, + 3160, 3169, 3165, 3168, 3171, 3176, 3185, 3172, 3186, 6519, + 3182, 3184, 3187, 3189, 6519, 3193, 3190, 3199, 3201, 3191, + 3194, 3203, 3204, 3208, 3197, 3210, 3211, 3217, 3219, 3216, + 3224, 6519, 3225, 3228, 3226, 3229, 3237, 3244, 3245, 3241, + 3247, 3249, 3258, 3254, 3240, 3242, 3255, 3256, 3261, 3263, + 3268, 3265, 3272, 3267, 3273, 3280, 3277, 3269, 3271, 3275, + 3283, 3284, 3285, 3286, 3281, 3288, 3294, 3289, 6519, 3293, + 3300, 3301, 3309, 3302, 3307, 3310, 3311, 3313, 6519, 3316, + 3317, 3319, 3320, 3326, 3318, 3321, 3328, 3329, 3331, 3336, - 3325, 3346, 3347, 3339, 3345, 3348, 3349, 3353, 3354, 3366, - 3356, 3359, 3364, 3367, 3369, 3370, 3372, 6437, 6437, 3371, - 3373, 3374, 3376, 3378, 3388, 3380, 3389, 3394, 3382, 3390, - 3397, 3408, 6437, 3403, 3404, 3405, 3409, 3412, 3410, 3421, - 3422, 3413, 3429, 3424, 6437, 3425, 3426, 3437, 3433, 3432, - 3442, 6437, 3439, 6437, 3434, 3438, 3443, 3449, 3448, 3450, - 3452, 3454, 3456, 3465, 3470, 3460, 3472, 3462, 3467, 3469, - 3475, 3476, 3484, 3479, 3480, 3481, 6437, 3487, 3483, 3490, - 3492, 3493, 3495, 3502, 3491, 6437, 3504, 3505, 3507, 3508, - 3509, 3510, 3513, 3517, 3515, 3518, 3523, 6437, 3519, 3524, + 3338, 3341, 3339, 6519, 3342, 6519, 3343, 3346, 3359, 3361, + 3344, 3348, 3364, 3370, 3363, 3354, 3372, 3374, 3365, 3371, + 3380, 3375, 3381, 3382, 3392, 3396, 3378, 3388, 3385, 3383, + 3399, 3406, 3402, 3404, 6519, 6519, 3408, 3409, 3410, 3412, + 3413, 3414, 3417, 3425, 3421, 3420, 3423, 3424, 3436, 6519, + 3429, 3431, 3439, 3440, 3447, 3448, 3450, 3457, 3453, 3460, + 3456, 6519, 3452, 3455, 3465, 3463, 3464, 3474, 6519, 3470, + 6519, 3471, 3475, 3477, 3479, 3480, 3482, 3483, 3484, 3487, + 3502, 3505, 3491, 3501, 3489, 3492, 3503, 3507, 3511, 3518, + 3513, 3514, 3515, 6519, 3517, 3519, 3521, 3523, 3526, 3527, - 3532, 3525, 3528, 3533, 3541, 3542, 3548, 6437, 3549, 3534, - 3556, 3552, 3553, 3555, 3558, 3559, 3560, 3562, 3563, 3564, - 3566, 3567, 3572, 3568, 3570, 3577, 3573, 3585, 3587, 3574, - 3595, 3602, 3588, 6437, 3591, 3598, 3600, 3601, 3603, 3604, - 3606, 3612, 3614, 3608, 3623, 3624, 3615, 3619, 3627, 3629, - 3637, 3632, 6437, 3644, 3630, 3645, 3634, 3643, 3642, 3647, - 3649, 3651, 3653, 3652, 3655, 3656, 3658, 3670, 3662, 3665, - 3661, 3666, 3677, 3669, 6437, 3684, 3680, 3672, 3688, 3682, - 3691, 3698, 3695, 3696, 3697, 3700, 3701, 3702, 3705, 3707, - 3708, 3711, 3712, 6437, 6437, 3714, 3715, 3717, 6437, 3719, + 3520, 3534, 6519, 3536, 3537, 3541, 3542, 3538, 3543, 3545, + 3546, 3547, 3551, 3553, 6519, 3549, 3555, 3564, 3559, 3556, + 3566, 3570, 3573, 3578, 6519, 3579, 3580, 3587, 3583, 3585, + 3586, 3590, 3591, 3592, 3594, 3595, 3596, 3598, 3599, 3604, + 3600, 3602, 3609, 3605, 3617, 3619, 3606, 3627, 3634, 3620, + 6519, 3623, 3630, 3632, 3633, 3635, 3636, 3638, 3644, 3646, + 3640, 3655, 3656, 3647, 3651, 3659, 3661, 3669, 3664, 6519, + 3676, 3662, 3677, 3666, 3675, 3674, 3679, 3681, 3683, 3685, + 3684, 3687, 3688, 3690, 3702, 3694, 3697, 3693, 3698, 3709, + 3701, 6519, 3716, 3712, 3704, 3720, 3714, 3723, 3730, 3727, - 3720, 3730, 3722, 3723, 3731, 3735, 3734, 3733, 3736, 3738, - 3739, 6437, 3745, 3753, 3748, 3749, 3757, 3758, 3761, 3762, - 3754, 3765, 3769, 3766, 3770, 3771, 3772, 3774, 3782, 3783, - 3779, 3780, 3786, 6437, 3781, 3787, 3791, 3793, 3784, 3797, - 6437, 3794, 3800, 3802, 3805, 3811, 3815, 3807, 3817, 3820, - 3821, 3824, 3822, 3825, 3826, 3834, 3829, 3831, 3833, 3837, - 3847, 6437, 3830, 3842, 3840, 3849, 6437, 3855, 3862, 3863, - 6437, 3865, 3850, 3864, 3866, 3873, 6437, 3868, 3870, 3871, - 3852, 3881, 3872, 3885, 3882, 3884, 6437, 3886, 3888, 3890, - 6437, 3889, 3899, 3902, 3904, 3891, 3912, 3908, 3905, 3909, + 3728, 3729, 3732, 3733, 3734, 3737, 3739, 3740, 3743, 3744, + 6519, 6519, 3746, 3747, 3749, 6519, 3751, 3752, 3762, 3754, + 3755, 3763, 3767, 3766, 3765, 3768, 3770, 3771, 6519, 3777, + 3785, 3780, 3781, 3789, 3784, 6519, 3790, 3798, 3794, 3797, + 3795, 3799, 3801, 3803, 3805, 3806, 3807, 3810, 3818, 3822, + 3814, 3813, 3817, 6519, 3823, 3825, 3826, 3830, 3827, 3835, + 6519, 3832, 3836, 3838, 3839, 3842, 3845, 3852, 3854, 3855, + 3856, 3858, 3857, 3859, 3860, 3867, 3866, 3864, 3872, 3873, + 3878, 6519, 3875, 3883, 3865, 3887, 6519, 3889, 3896, 3897, + 6519, 3898, 3893, 3900, 3901, 3908, 6519, 3903, 3906, 3904, - 3913, 6437, 3916, 6437, 3917, 3918, 3923, 6437, 3919, 3925, - 3927, 3929, 3926, 3933, 3934, 3940, 3942, 3936, 3944, 3945, - 3946, 3893, 3947, 3954, 3949, 3950, 3951, 3957, 6437, 3960, - 3955, 3966, 3958, 3976, 3970, 3962, 3964, 3981, 3980, 6437, - 6437, 3983, 6437, 3984, 3988, 3989, 6437, 3991, 3994, 3996, - 3992, 3997, 3999, 4003, 4007, 6437, 4011, 4012, 6437, 3995, - 4014, 4022, 4017, 4019, 4023, 4025, 4021, 4027, 4028, 4032, - 4031, 4033, 4029, 4034, 4047, 6437, 4036, 4035, 4038, 4052, - 4039, 4042, 4060, 4054, 4061, 6437, 4064, 4065, 4068, 4070, - 4071, 6437, 4073, 6437, 4072, 4074, 4076, 4077, 4080, 6437, + 3907, 3917, 3909, 3918, 3920, 3914, 6519, 3921, 3922, 3923, + 6519, 3924, 3929, 3935, 3937, 3938, 3945, 3940, 3942, 3943, + 3944, 6519, 3950, 6519, 3948, 3952, 3956, 6519, 3954, 3959, + 3960, 3962, 3963, 3968, 3969, 3967, 3976, 3977, 3978, 3980, + 3981, 3979, 3984, 3988, 3985, 3986, 3990, 3991, 6519, 3992, + 3994, 4001, 3996, 4006, 4002, 4009, 3999, 4013, 4014, 6519, + 6519, 4023, 6519, 4025, 4015, 4017, 6519, 4019, 4024, 4032, + 4029, 4035, 4037, 4041, 4042, 6519, 4044, 4047, 6519, 4030, + 4045, 4055, 4052, 4054, 4057, 4060, 4056, 4058, 4062, 4063, + 4066, 4068, 4064, 4067, 4072, 6519, 4069, 4070, 4071, 4085, - 4085, 4084, 4092, 4089, 4095, 4094, 4097, 4101, 4093, 4103, - 4110, 4107, 4105, 4108, 6437, 4109, 4113, 4120, 4121, 4114, - 4117, 4130, 4126, 4132, 4125, 4133, 4136, 4138, 4139, 4144, - 4142, 4147, 4146, 6437, 4148, 4153, 4154, 4162, 4158, 4159, - 6437, 4165, 4163, 4169, 6437, 4166, 4170, 4172, 4183, 4173, - 4176, 4180, 4178, 4184, 6437, 4185, 4186, 4187, 4188, 4195, - 4201, 6437, 6437, 4202, 6437, 4203, 4189, 4204, 4205, 4206, - 4211, 4214, 4215, 4217, 4218, 4222, 4225, 4227, 4228, 4235, - 4238, 4239, 4241, 4243, 4236, 6437, 6437, 4246, 4247, 4249, - 4253, 4254, 4257, 4242, 4265, 4261, 4263, 4268, 4270, 4277, + 4086, 4087, 4092, 4094, 4088, 6519, 4096, 4098, 4097, 4105, + 4102, 6519, 4103, 6519, 4106, 4111, 4113, 4114, 4117, 6519, + 4119, 4118, 4123, 4126, 4128, 4127, 4130, 4134, 4131, 4137, + 4144, 4140, 4141, 4143, 4148, 4150, 6519, 4146, 4153, 4160, + 4161, 4151, 4156, 4169, 4168, 4170, 4164, 4171, 4175, 4177, + 4180, 4183, 4185, 4186, 4178, 6519, 4188, 4190, 4193, 4204, + 4199, 4195, 6519, 4201, 4205, 4206, 6519, 4202, 4209, 4212, + 4217, 4218, 4219, 4222, 4220, 4224, 6519, 4223, 4228, 4225, + 4226, 4227, 4233, 6519, 6519, 4241, 6519, 4243, 4230, 4244, + 4246, 4248, 4252, 4251, 4254, 4256, 4257, 4258, 4265, 4266, - 6437, 4272, 4274, 4278, 4279, 6437, 4280, 4281, 4283, 4285, - 4284, 4290, 4287, 4291, 4288, 4292, 4296, 4297, 4298, 4302, - 4304, 4309, 4310, 4312, 4315, 4316, 4317, 4319, 6437, 4324, - 4321, 4323, 4325, 4326, 4328, 4333, 4334, 4336, 6437, 4337, - 6437, 4338, 4339, 4343, 4356, 4345, 4355, 4359, 4361, 4363, - 4365, 4366, 4369, 4370, 4376, 4364, 4371, 4380, 4373, 4387, - 4389, 4390, 6437, 4391, 4383, 4392, 4393, 4398, 4400, 4394, - 4402, 4404, 4407, 4408, 4409, 4411, 4416, 4417, 4418, 4419, - 4420, 6437, 4421, 4425, 4428, 4430, 4432, 4434, 4435, 4436, - 4442, 4443, 4444, 4445, 4449, 6437, 4446, 4451, 4453, 4454, + 4267, 4275, 4277, 4278, 4280, 4282, 4268, 6519, 6519, 4285, + 4286, 4291, 4293, 4294, 4296, 4281, 4303, 4302, 4304, 4310, + 4306, 4319, 6519, 4314, 4315, 4316, 4317, 6519, 4298, 4321, + 4322, 4324, 4325, 4328, 4327, 4329, 4331, 4332, 4334, 4338, + 4340, 4347, 4341, 4344, 4348, 4350, 4351, 4353, 4357, 4359, + 6519, 4363, 4361, 4364, 4365, 4368, 4370, 4372, 4373, 4374, + 6519, 4376, 6519, 4377, 4382, 4378, 4379, 4387, 4394, 4397, + 4398, 4401, 4403, 4404, 4407, 4408, 4413, 4402, 4409, 4418, + 4414, 4421, 4425, 4427, 6519, 4428, 4429, 4430, 4431, 4435, + 4437, 4438, 4440, 4441, 4445, 4446, 4442, 4452, 4454, 4448, - 4456, 4457, 4460, 4463, 4467, 6437, 4470, 4461, 4472, 4471, - 4473, 4475, 4477, 4483, 4480, 4486, 4487, 6437, 4492, 4494, - 4495, 4496, 4497, 4498, 4501, 4502, 6437, 4508, 4509, 4511, - 4518, 4515, 4522, 4520, 4524, 4517, 4527, 4530, 4523, 4534, - 4535, 4537, 4531, 4547, 4554, 4549, 6437, 4538, 6437, 4550, - 4551, 4561, 4556, 4562, 4560, 6437, 4563, 4568, 4570, 4566, - 4564, 6437, 4571, 4572, 4574, 4575, 6437, 4590, 4586, 4576, - 4585, 4578, 4594, 6437, 4599, 4600, 4601, 4608, 4610, 4605, - 4612, 4607, 4615, 4613, 4609, 4617, 4618, 4626, 4624, 4622, - 6437, 4628, 4630, 4635, 4637, 4631, 4639, 4629, 4641, 4644, + 4455, 4456, 4458, 6519, 4460, 4467, 4463, 4469, 4471, 4472, + 4473, 4474, 4480, 4481, 4483, 4484, 6519, 4487, 4485, 4492, + 6519, 4488, 4493, 4494, 4495, 4497, 4501, 4505, 4503, 4506, + 6519, 4512, 4507, 4515, 4514, 4513, 4517, 4519, 4523, 4525, + 4530, 4526, 6519, 4536, 4533, 4537, 4539, 4540, 4541, 4547, + 4543, 6519, 4549, 4550, 4551, 4563, 4556, 4565, 4567, 4568, + 4558, 4561, 4575, 4570, 4571, 4576, 4581, 4582, 4592, 4593, + 4584, 6519, 4589, 6519, 4591, 4594, 4603, 4598, 4601, 4602, + 6519, 4604, 4605, 4611, 4608, 4616, 6519, 4614, 4612, 4615, + 4617, 6519, 4631, 4613, 4619, 4632, 4636, 4637, 6519, 4641, - 4646, 6437, 4647, 4650, 4651, 4653, 4654, 4655, 4656, 4663, - 4660, 4662, 4664, 4665, 4668, 4669, 6437, 4674, 4672, 4676, - 4685, 4687, 4689, 6437, 4692, 6437, 4682, 4677, 4694, 4693, - 4698, 6437, 6437, 4700, 4708, 4703, 4706, 4707, 6437, 6437, - 4710, 6437, 4711, 6437, 4712, 4714, 6437, 6437, 4713, 4717, - 4720, 4722, 4724, 6437, 4732, 6437, 4734, 4735, 4721, 4733, - 4739, 6437, 4738, 4740, 4742, 6437, 4745, 4753, 4746, 4748, - 6437, 4750, 4756, 4751, 4758, 6437, 4760, 4766, 4762, 4768, - 4769, 4772, 4771, 4774, 4775, 4779, 4780, 4781, 4782, 4784, - 4793, 4795, 4797, 4790, 4798, 4799, 4805, 4807, 4800, 4803, + 4642, 4643, 4633, 4652, 4647, 4650, 4651, 4653, 4655, 4657, + 4658, 4659, 4668, 4661, 4664, 6519, 4666, 4673, 4679, 4680, + 4663, 4674, 4681, 4682, 4688, 4684, 6519, 4689, 4690, 4691, + 4692, 4695, 4693, 4698, 4702, 4708, 4700, 4704, 4705, 4707, + 4709, 6519, 4715, 4716, 4717, 4725, 4720, 4729, 6519, 4726, + 6519, 4733, 4736, 4738, 4734, 4739, 6519, 6519, 4742, 4749, + 4744, 4751, 4745, 6519, 6519, 4753, 6519, 4748, 6519, 4755, + 4757, 6519, 6519, 4758, 4759, 4762, 4765, 4772, 6519, 4775, + 6519, 4782, 4777, 4764, 4761, 4779, 6519, 4768, 4786, 4781, + 4788, 4791, 6519, 4792, 4802, 4794, 4795, 6519, 4798, 4803, - 4809, 4810, 4814, 4811, 4818, 4820, 4821, 4822, 4824, 4823, - 4825, 4828, 4827, 4836, 4838, 4839, 4840, 4841, 4842, 4843, - 4844, 4850, 4851, 4854, 4849, 4853, 6437, 4857, 4859, 4846, - 4870, 4860, 4871, 4872, 4879, 4883, 4884, 6437, 4886, 6437, - 4888, 4880, 4890, 4891, 4892, 6437, 4893, 4894, 4895, 4896, - 4897, 4899, 4900, 4903, 4904, 4908, 4914, 6437, 4921, 4911, - 4905, 4909, 4929, 6437, 4924, 4931, 4932, 4934, 4935, 4936, - 4937, 4938, 4941, 4939, 4944, 4946, 4940, 4947, 4948, 4962, - 4964, 4959, 4949, 4966, 4968, 4969, 4970, 4971, 4972, 4973, - 4974, 4980, 4982, 4986, 6437, 4977, 6437, 4988, 4989, 4990, + 4799, 4804, 6519, 4807, 4814, 4811, 4805, 4815, 4820, 4817, + 4821, 4826, 4827, 4828, 4809, 4831, 4838, 4842, 4844, 4846, + 4847, 4830, 4849, 4850, 4852, 4855, 4856, 4857, 4858, 4861, + 4862, 4864, 4866, 4869, 4870, 4871, 4872, 4873, 4883, 4875, + 4876, 4886, 4889, 4879, 4887, 4890, 4891, 4892, 4897, 4899, + 4901, 4902, 4904, 6519, 4894, 4908, 4911, 4913, 4914, 4918, + 4920, 4922, 4927, 4931, 6519, 4935, 6519, 4937, 4924, 4929, + 4933, 4939, 6519, 4941, 4944, 4943, 4946, 4947, 4948, 4832, + 4949, 4945, 4953, 4950, 6519, 4958, 4959, 4955, 4967, 4975, + 6519, 4970, 4981, 4960, 4964, 4983, 4972, 4984, 4985, 4988, - 4993, 4994, 4995, 4998, 6437, 6437, 5000, 5001, 5006, 5003, - 5007, 5010, 5012, 6437, 5011, 5019, 5022, 5014, 6437, 5024, - 5028, 5029, 5031, 6437, 5032, 5033, 5034, 5036, 5037, 5041, - 5045, 5043, 5046, 5047, 5054, 6437, 6437, 6437, 6437, 5057, - 5051, 5061, 5055, 5063, 5065, 5066, 5070, 5064, 6437, 5072, - 6437, 6437, 5077, 5078, 5067, 5080, 5084, 5086, 5087, 5089, - 6437, 5088, 5090, 5093, 5091, 5100, 5102, 5108, 5104, 5109, - 5094, 5110, 5119, 5115, 5116, 5118, 5121, 5123, 5125, 6437, - 6437, 5127, 5130, 5131, 5138, 5136, 5139, 5135, 5148, 5143, - 5145, 5146, 5151, 5152, 5153, 5162, 5163, 5154, 5158, 6437, + 4986, 4992, 4994, 4989, 4995, 5000, 4997, 4999, 5007, 5008, + 5010, 5011, 5014, 5012, 5015, 5016, 5018, 5019, 5032, 5020, + 5034, 6519, 5024, 6519, 5029, 5027, 5037, 5039, 5040, 5041, + 5044, 6519, 6519, 5042, 5047, 5052, 5053, 5048, 5055, 5056, + 5057, 5060, 6519, 5058, 5065, 5071, 5074, 6519, 5075, 5076, + 5077, 5079, 6519, 5080, 5082, 5081, 5084, 5086, 5089, 5093, + 5094, 5095, 5100, 5102, 6519, 6519, 6519, 6519, 5106, 5099, + 5109, 5104, 5110, 5113, 5115, 5119, 5114, 6519, 5126, 6519, + 6519, 5127, 5128, 5116, 5131, 5134, 5120, 5135, 5137, 6519, + 5138, 5141, 5143, 5140, 5150, 5152, 5157, 5147, 5158, 5159, - 5161, 5164, 5172, 6437, 5165, 6437, 5171, 5173, 5167, 5179, - 5180, 5181, 5182, 5184, 6437, 6437, 5186, 5194, 5191, 6437, - 6437, 5187, 5195, 5198, 5200, 5196, 5201, 5202, 5207, 5209, - 5205, 6437, 5210, 6437, 5212, 5214, 5227, 5213, 5229, 5234, - 5236, 5240, 5233, 5216, 6437, 5235, 5237, 6437, 5242, 5231, - 5243, 6437, 5247, 5249, 5252, 5254, 6437, 5256, 5257, 5259, - 6437, 5263, 6437, 5260, 5265, 5266, 5274, 6437, 5269, 5271, - 6437, 5276, 5282, 5283, 5277, 6437, 5279, 6437, 5284, 5288, - 5291, 5294, 5285, 5296, 5298, 5299, 5301, 5308, 5306, 5303, - 6437, 6437, 135, 5319, 5309, 5310, 5314, 5316, 5326, 5312, + 5160, 5167, 5164, 5165, 5168, 5170, 5172, 5174, 6519, 6519, + 5176, 5180, 5181, 5188, 5185, 5186, 5192, 5199, 5194, 5195, + 5196, 5197, 5201, 5202, 5210, 5213, 5203, 5214, 6519, 5211, + 5215, 5216, 6519, 5217, 6519, 5222, 5225, 5221, 5224, 5231, + 5232, 5233, 5235, 6519, 6519, 5228, 5242, 5243, 6519, 6519, + 5238, 5245, 5247, 5251, 5248, 5252, 5253, 5254, 5259, 5256, + 6519, 5261, 6519, 5260, 5263, 5273, 5264, 5274, 5283, 5284, + 5282, 5279, 5285, 6519, 5286, 5288, 6519, 5297, 5293, 5294, + 5292, 5299, 6519, 5302, 5300, 5305, 5308, 6519, 5310, 5311, + 5312, 6519, 5320, 6519, 5313, 5316, 5322, 5329, 6519, 5324, - 5321, 5324, 6437, 6437, 5328, 6437, 5327, 5336, 6437, 5329, - 5338, 5342, 5331, 5340, 5344, 5346, 5347, 5351, 5353, 5352, - 5356, 5357, 5360, 5365, 5375, 5358, 5372, 5378, 5380, 5382, - 5384, 5373, 5386, 5387, 5388, 5390, 5392, 5393, 5394, 5396, - 5397, 6437, 5400, 5402, 5405, 5404, 6437, 5410, 5406, 5419, - 5415, 6437, 5424, 5412, 5425, 5426, 6437, 5427, 5429, 5432, - 5430, 5431, 5443, 5438, 5440, 5444, 6437, 6437, 6437, 5447, - 5454, 6437, 5456, 5450, 5433, 5441, 6437, 5457, 5460, 6437, - 6437, 5461, 5462, 5463, 5473, 6437, 5465, 6437, 5468, 6437, - 5469, 5470, 5478, 5476, 6437, 5482, 5480, 6437, 5491, 5493, + 5325, 6519, 5331, 5336, 5337, 5332, 6519, 5338, 6519, 5327, + 5342, 5348, 5351, 5339, 5353, 5346, 5343, 5355, 5363, 5365, + 5358, 6519, 6519, 135, 5372, 5360, 5367, 5368, 5370, 5379, + 5374, 5377, 5385, 6519, 6519, 5375, 6519, 5378, 5389, 6519, + 5382, 5390, 5394, 5391, 5396, 5397, 5398, 5400, 5403, 5405, + 5410, 5406, 5404, 5416, 5428, 5431, 5417, 5412, 5432, 5434, + 5437, 5439, 5426, 5441, 5429, 5443, 5445, 5444, 5447, 5448, + 5451, 5453, 6519, 5455, 5459, 5461, 5456, 6519, 5466, 5460, + 5476, 5472, 6519, 5479, 5480, 5481, 5482, 6519, 5468, 5484, + 5488, 5485, 5487, 5493, 5495, 5502, 5498, 5499, 5503, 6519, - 5495, 5488, 5496, 5498, 5499, 6437, 5506, 5502, 5503, 5510, - 5501, 5511, 5505, 5513, 5512, 5520, 5515, 5522, 6437, 5524, - 5527, 5529, 5535, 5525, 5531, 5533, 6437, 5537, 6437, 5539, - 6437, 5541, 5542, 5543, 5549, 5545, 5550, 5551, 5560, 5552, - 5562, 5556, 5563, 5567, 5564, 6437, 6437, 5573, 5576, 6437, - 5570, 6437, 5578, 6437, 5568, 5579, 5580, 5581, 6437, 5588, - 5582, 5585, 5590, 6437, 5592, 5597, 5594, 5599, 6437, 6437, - 5600, 5607, 5605, 5603, 5615, 5617, 5604, 5619, 5612, 5621, - 5606, 5628, 5627, 5629, 5631, 5633, 5634, 5635, 6437, 6437, - 6437, 5640, 5639, 5648, 5644, 5647, 5655, 5645, 6437, 5653, + 6519, 6519, 5500, 5513, 6519, 5515, 5509, 5497, 5516, 6519, + 5517, 5518, 6519, 6519, 5519, 5520, 5521, 5531, 6519, 5524, + 6519, 5527, 6519, 5528, 5532, 5538, 5540, 6519, 5542, 5550, + 6519, 5546, 5553, 5556, 5557, 5543, 5558, 5559, 6519, 5567, + 5560, 5568, 5570, 5562, 5571, 5572, 5574, 5576, 5581, 5578, + 5585, 6519, 5582, 5587, 5590, 5588, 5591, 5596, 5597, 6519, + 5598, 6519, 5600, 6519, 5601, 5602, 5604, 5607, 5605, 5606, + 5462, 5617, 5619, 5623, 5609, 5613, 5629, 5624, 6519, 6519, + 5631, 5634, 6519, 5626, 6519, 5636, 6519, 5637, 5638, 5640, + 5641, 6519, 5645, 5642, 5648, 5655, 5650, 5651, 6519, 5658, - 5657, 5660, 5654, 5667, 5662, 5669, 6437, 5664, 5666, 5670, - 5672, 5675, 5671, 5677, 5678, 6437, 5682, 5689, 5686, 5683, - 5694, 5701, 5703, 5705, 5696, 5692, 5712, 5708, 6437, 5711, - 6437, 6437, 5698, 6437, 5707, 5714, 5715, 5719, 6437, 5722, - 5716, 5723, 5724, 5726, 5728, 6437, 5738, 5731, 5734, 5735, - 6437, 6437, 5742, 6437, 5745, 5747, 5746, 5754, 5749, 5750, - 5756, 5757, 6437, 5739, 5763, 5764, 5765, 5766, 6437, 5767, - 5768, 5770, 5771, 6437, 5774, 5773, 5776, 5778, 5779, 6437, - 5780, 5781, 5788, 5795, 6437, 5786, 5802, 5796, 6437, 6437, - 5798, 5804, 5807, 6437, 6437, 6437, 5813, 5810, 5808, 5817, + 5652, 5660, 5664, 6519, 6519, 5661, 5671, 5667, 5668, 5675, + 5677, 5669, 5683, 5680, 5678, 5684, 5692, 5688, 5685, 5693, + 5695, 5696, 5700, 6519, 6519, 6519, 5698, 5703, 5711, 5709, + 5712, 5720, 5706, 6519, 5716, 5718, 5722, 5719, 5731, 5726, + 5729, 6519, 5730, 5732, 5733, 5734, 5736, 5737, 5739, 5740, + 6519, 5746, 5752, 5748, 5754, 5757, 5760, 5764, 5766, 5761, + 5741, 5775, 5771, 6519, 5773, 6519, 6519, 5770, 6519, 5777, + 5778, 5779, 5780, 6519, 5783, 5784, 5785, 5788, 5786, 5787, + 5791, 5793, 6519, 5803, 5794, 5798, 5807, 6519, 6519, 5809, + 6519, 5816, 5813, 5805, 5826, 5811, 5821, 5825, 5822, 6519, - 6437, 5819, 5823, 5828, 5832, 5831, 6437, 5834, 5822, 5824, - 6437, 6437, 5836, 5837, 5839, 5842, 6437, 6437, 5843, 5845, - 5846, 5849, 5847, 6437, 5848, 5851, 5853, 5864, 5870, 5859, - 5867, 5871, 5879, 5861, 5865, 5876, 5875, 5877, 5881, 5884, - 5888, 5895, 5892, 5894, 5900, 5897, 5901, 6437, 6437, 5905, - 6437, 5908, 5902, 6437, 6437, 5910, 5914, 5916, 5918, 5920, - 5922, 5924, 6437, 5925, 5927, 5928, 5929, 5930, 6437, 5932, - 5936, 5931, 5939, 5933, 5942, 5938, 5948, 6437, 6437, 5940, - 5954, 5944, 5955, 5949, 6437, 5959, 5966, 5961, 5963, 5964, - 5969, 5965, 6437, 5971, 5973, 6437, 6437, 5972, 5974, 6437, + 5828, 5830, 5831, 5832, 5833, 6519, 5834, 5835, 5837, 5838, + 6519, 5841, 5840, 5843, 5845, 5846, 6519, 5847, 5849, 5868, + 5865, 6519, 5853, 5864, 5863, 6519, 6519, 5872, 5875, 5877, + 6519, 6519, 6519, 5879, 5880, 5882, 5884, 6519, 5887, 5891, + 5895, 5899, 5890, 6519, 5898, 5900, 5905, 5902, 5907, 6519, + 6519, 5906, 5908, 5910, 5912, 6519, 6519, 5913, 5916, 5914, + 5922, 5917, 6519, 5919, 5924, 5929, 5935, 5940, 5927, 5936, + 5943, 5950, 5951, 5946, 5947, 5948, 5953, 5954, 5956, 5961, + 5963, 5964, 5966, 5968, 5972, 5973, 6519, 6519, 5977, 6519, + 5980, 5974, 6519, 6519, 5982, 5985, 5989, 5991, 5993, 5995, - 6437, 5978, 6437, 6437, 6437, 6437, 6437, 6437, 6437, 5985, - 6437, 5979, 5991, 5994, 5996, 6437, 5980, 5997, 5998, 5999, - 5986, 6437, 5984, 6001, 6005, 6009, 6008, 6013, 6015, 6016, - 6018, 6017, 6020, 6022, 6021, 6026, 6024, 6025, 6027, 6031, - 6034, 6437, 6437, 6437, 6040, 6041, 6043, 6044, 6048, 6049, - 6056, 6058, 6052, 6059, 6060, 6062, 6064, 6065, 6066, 6074, - 6070, 6073, 6072, 6076, 6078, 6083, 6087, 6080, 6088, 6092, - 6437, 6089, 6437, 6093, 6437, 6437, 6097, 6099, 6094, 6101, - 6109, 6112, 6105, 6108, 6110, 6113, 6115, 6437, 6117, 6437, - 6437, 6122, 6124, 6437, 6123, 6126, 6437, 6125, 6127, 6128, + 5997, 5999, 5986, 6519, 6000, 6002, 6004, 6003, 6005, 6519, + 6007, 6011, 6006, 6014, 6008, 6016, 6018, 6023, 6519, 6519, + 6019, 6028, 6024, 6029, 6034, 6519, 6032, 6042, 6039, 6038, + 6040, 6044, 6041, 6519, 6045, 6046, 6519, 6519, 6054, 6048, + 6519, 6519, 6047, 6519, 6519, 6519, 6519, 6519, 6519, 6519, + 6519, 6056, 6064, 6519, 6065, 6069, 6071, 6075, 6519, 6049, + 6076, 6077, 6060, 6079, 6519, 6066, 6083, 6082, 6084, 6088, + 6090, 6092, 6095, 6097, 6096, 6098, 6101, 6099, 6106, 6102, + 6100, 6104, 6111, 6113, 6117, 6519, 6519, 6519, 6120, 6119, + 6125, 6126, 6128, 6129, 6132, 6137, 6138, 6140, 6141, 6142, - 6133, 6135, 6131, 6134, 6136, 6152, 6437, 6437, 6138, 6142, - 6140, 6154, 6156, 6155, 6162, 6164, 6165, 6166, 6157, 6173, - 6437, 6175, 6172, 6179, 6437, 6180, 6168, 6181, 6182, 6183, - 6191, 6186, 6190, 6437, 6192, 6437, 6195, 6197, 6199, 6189, - 6196, 6198, 6212, 6214, 6207, 6437, 6200, 6216, 6210, 6221, - 6223, 6225, 6227, 6218, 6232, 6228, 6236, 6240, 6235, 6241, - 6243, 6244, 6245, 6437, 6247, 6250, 6437, 6251, 6252, 6253, - 6254, 6258, 6437, 6261, 6255, 6263, 6265, 6268, 6270, 6437, - 6276, 6279, 6280, 6437, 6281, 6437, 6437, 6283, 6271, 6284, - 6292, 6294, 6437, 6437, 6437, 6317, 6324, 6331, 6338, 6345, + 6143, 6145, 6146, 6155, 6150, 6151, 6153, 6166, 6152, 6168, + 6519, 6174, 6154, 6156, 6177, 6519, 6171, 6519, 6162, 6519, + 6519, 6179, 6181, 6183, 6184, 6193, 6194, 6185, 6189, 6190, + 6192, 6196, 6519, 6201, 6519, 6519, 6198, 6204, 6519, 6206, + 6207, 6519, 6205, 6208, 6210, 6214, 6215, 6212, 6216, 6217, + 6233, 6519, 6519, 6218, 6223, 6226, 6235, 6237, 6236, 6239, + 6243, 6244, 6246, 6247, 6256, 6519, 6253, 6254, 6258, 6519, + 6260, 6255, 6261, 6262, 6263, 6271, 6267, 6270, 6519, 6272, + 6519, 6276, 6278, 6279, 6269, 6277, 6280, 6291, 6289, 6285, + 6519, 6295, 6299, 6297, 6301, 6303, 6305, 6306, 6307, 6309, - 6352, 6359, 88, 6366, 6373, 6380, 6387, 6394, 6401, 6408, - 6415, 6422, 6429 + 6312, 6318, 6315, 6322, 6323, 6319, 6327, 6324, 6519, 6334, + 6325, 6519, 6331, 6335, 6328, 6337, 6341, 6519, 6346, 6339, + 6348, 6349, 6352, 6353, 6519, 6355, 6362, 6357, 6519, 6363, + 6519, 6519, 6365, 6359, 6366, 6372, 6374, 6519, 6519, 6519, + 6399, 6406, 6413, 6420, 6427, 6434, 6441, 88, 6448, 6455, + 6462, 6469, 6476, 6483, 6490, 6497, 6504, 6511 } ; -static const flex_int16_t yy_def[3314] = +static const flex_int16_t yy_def[3359] = { 0, - 3295, 1, 3296, 3296, 3297, 3297, 3298, 3298, 3299, 3299, - 3300, 3300, 3301, 3301, 3302, 3302, 3295, 3303, 3295, 3295, - 3295, 3295, 3304, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3305, 3295, 3295, 3295, - 3305, 3306, 3295, 3295, 3295, 3306, 3307, 3295, 3295, 3295, - 3295, 3307, 3308, 3295, 3295, 3295, 3308, 3309, 3295, 3310, - 3295, 3309, 3309, 3311, 3295, 3295, 3295, 3295, 3311, 3312, - 3295, 3295, 3295, 3312, 3303, 3303, 3295, 3313, 3304, 3313, - 3304, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3340, 1, 3341, 3341, 3342, 3342, 3343, 3343, 3344, 3344, + 3345, 3345, 3346, 3346, 3347, 3347, 3340, 3348, 3340, 3340, + 3340, 3340, 3349, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3350, 3340, 3340, 3340, + 3350, 3351, 3340, 3340, 3340, 3351, 3352, 3340, 3340, 3340, + 3340, 3352, 3353, 3340, 3340, 3340, 3353, 3354, 3340, 3355, + 3340, 3354, 3354, 3356, 3340, 3340, 3340, 3340, 3356, 3357, + 3340, 3340, 3340, 3357, 3348, 3348, 3340, 3358, 3349, 3358, + 3349, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3305, 3305, - 3306, 3306, 3307, 3307, 3295, 3308, 3308, 3309, 3309, 3310, - 3310, 3309, 3311, 3311, 3295, 3312, 3312, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3350, + 3350, 3351, 3351, 3352, 3352, 3340, 3353, 3353, 3354, 3354, + 3355, 3355, 3354, 3356, 3356, 3340, 3357, 3357, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3309, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3354, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3309, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3354, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3309, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3354, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3295, 3303, 3295, 3295, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3354, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3340, 3340, 3348, 3340, 3340, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3309, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3354, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3340, 3348, 3348, 3348, - 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3309, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3354, 3354, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3309, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3354, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3309, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3354, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3309, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, + 3348, 3348, 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3295, 3303, + 3348, 3348, 3340, 3354, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3309, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3340, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3295, 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, + 3348, 3348, 3348, 3348, 3354, 3348, 3340, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3340, 3348, 3340, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3309, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3340, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, + 3354, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3303, 3303, 3303, 3309, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3354, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3295, - 3303, 3295, 3303, 3295, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3340, 3348, 3348, + 3348, 3348, 3348, 3340, 3340, 3348, 3340, 3348, 3340, 3348, + 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3309, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3354, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3309, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3340, 3340, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3340, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3354, 3348, 3348, 3348, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3295, 3309, 3303, 3303, 3303, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, 3340, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, - 3303, 3303, 3295, 3295, 3303, 3295, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3295, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3295, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, + 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3340, 3354, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3340, 3348, 3340, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, 3295, - 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3295, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, - 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, + 3340, 3340, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3340, 3348, + 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3340, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3340, + 3348, 3348, 3340, 3348, 3340, 3348, 3340, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3295, 3295, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3295, 3295, - 3303, 3303, 3303, 3295, 3295, 3295, 3303, 3303, 3303, 3303, + 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3340, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3340, 3340, 3348, 3340, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3340, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, - 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, - 3295, 3295, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3295, 3303, 3303, 3295, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3295, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, - 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3295, 3295, 3303, 3303, 3295, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, + 3348, 3340, 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, + 3340, 3340, 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3340, + 3340, 3348, 3348, 3348, 3348, 3340, 3340, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3340, 3348, 3340, + 3348, 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3348, 3348, - 3295, 3303, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3303, - 3295, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3295, 3295, 3295, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3295, 3303, 3295, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3295, - 3295, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, + 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3340, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3340, 3348, 3348, 3340, 3340, 3348, 3348, + 3340, 3340, 3348, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3340, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3303, 3303, 3303, 3303, 3303, 3303, 3295, 3295, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3295, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3295, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, - 3303, 3303, 3303, 3295, 3303, 3303, 3295, 3303, 3303, 3303, - 3303, 3303, 3295, 3303, 3303, 3303, 3303, 3303, 3303, 3295, - 3303, 3303, 3303, 3295, 3303, 3295, 3295, 3303, 3303, 3303, - 3303, 3303, 3295, 3295, 0, 3295, 3295, 3295, 3295, 3295, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3340, 3348, 3340, 3348, 3340, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3340, 3348, 3340, 3340, 3348, 3348, 3340, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3340, 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3340, + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, + 3340, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295 + 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3340, 3348, + 3348, 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3348, 3348, + 3348, 3348, 3348, 3348, 3340, 3348, 3348, 3348, 3340, 3348, + 3340, 3340, 3348, 3348, 3348, 3348, 3348, 3340, 3340, 0, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340 } ; -static const flex_int16_t yy_nxt[6478] = +static const flex_int16_t yy_nxt[6560] = { 0, 18, 19, 20, 21, 22, 23, 22, 18, 18, 18, 18, 18, 22, 24, 25, 26, 27, 28, 29, 30, @@ -1522,709 +1534,718 @@ static const flex_int16_t yy_nxt[6478] = 67, 19, 20, 21, 69, 70, 71, 75, 76, 77, 78, 86, 22, 72, 121, 86, 120, 109, 86, 79, - 159, 159, 73, 19, 20, 21, 69, 70, 71, 75, - 76, 77, 78, 186, 22, 72, 81, 82, 83, 130, + 160, 160, 73, 19, 20, 21, 69, 70, 71, 75, + 76, 77, 78, 187, 22, 72, 81, 82, 83, 130, 90, 79, 90, 90, 73, 90, 86, 84, 81, 82, - 83, 90, 91, 86, 86, 98, 92, 93, 169, 84, - 94, 158, 99, 86, 110, 95, 100, 161, 86, 101, - 161, 169, 86, 112, 96, 86, 166, 166, 111, 86, - 102, 113, 136, 115, 103, 172, 116, 104, 86, 105, - 106, 178, 114, 117, 169, 118, 86, 122, 86, 126, - 107, 86, 155, 127, 177, 123, 156, 86, 86, 137, + 83, 90, 91, 86, 86, 98, 92, 93, 170, 84, + 94, 159, 99, 86, 110, 95, 100, 162, 86, 101, + 162, 170, 86, 112, 96, 86, 167, 167, 111, 86, + 102, 113, 137, 115, 103, 173, 116, 104, 86, 105, + 106, 179, 114, 117, 170, 118, 86, 122, 86, 126, + 107, 86, 156, 127, 86, 123, 157, 184, 86, 138, - 157, 124, 131, 138, 87, 125, 132, 128, 88, 129, - 176, 176, 133, 139, 140, 134, 141, 86, 86, 86, - 86, 179, 135, 142, 86, 147, 143, 148, 86, 86, - 86, 181, 183, 144, 151, 180, 149, 145, 146, 86, - 182, 86, 150, 206, 152, 175, 208, 86, 153, 154, - 163, 225, 163, 163, 90, 163, 90, 90, 168, 90, - 168, 168, 173, 168, 173, 173, 171, 173, 85, 86, - 85, 85, 90, 85, 90, 90, 86, 90, 86, 85, - 86, 184, 86, 90, 91, 187, 86, 192, 193, 86, - 86, 196, 189, 86, 185, 86, 188, 86, 190, 86, + 158, 124, 87, 139, 86, 125, 88, 128, 180, 129, + 86, 131, 86, 140, 141, 132, 142, 143, 86, 133, + 144, 86, 148, 86, 149, 134, 86, 145, 135, 86, + 152, 146, 147, 150, 86, 136, 177, 177, 183, 151, + 153, 181, 196, 189, 154, 155, 164, 86, 164, 164, + 90, 164, 90, 90, 169, 90, 169, 169, 174, 169, + 174, 174, 172, 174, 85, 86, 85, 85, 90, 85, + 90, 90, 289, 90, 86, 85, 86, 182, 86, 90, + 91, 185, 190, 188, 86, 86, 197, 86, 191, 86, + 192, 86, 86, 207, 186, 86, 86, 86, 86, 86, - 191, 86, 194, 86, 198, 86, 174, 199, 195, 86, - 197, 86, 201, 202, 86, 200, 86, 204, 214, 210, - 203, 205, 211, 209, 86, 207, 86, 86, 86, 86, - 216, 217, 86, 222, 86, 212, 213, 219, 223, 226, - 227, 220, 224, 215, 86, 86, 86, 86, 86, 231, - 86, 218, 228, 229, 233, 86, 86, 221, 86, 230, - 235, 86, 238, 86, 236, 232, 234, 86, 86, 86, - 169, 240, 86, 86, 252, 250, 237, 86, 239, 86, - 241, 86, 246, 243, 86, 249, 242, 86, 245, 244, - 86, 253, 86, 247, 254, 86, 251, 248, 259, 255, + 178, 199, 193, 194, 86, 198, 86, 195, 86, 200, + 86, 201, 245, 209, 205, 202, 203, 206, 208, 86, + 210, 215, 211, 204, 86, 212, 86, 86, 86, 217, + 86, 218, 86, 220, 86, 86, 226, 221, 213, 214, + 86, 227, 225, 223, 86, 86, 216, 229, 224, 86, + 86, 219, 86, 222, 230, 232, 233, 228, 86, 86, + 86, 86, 231, 235, 86, 237, 86, 240, 234, 238, + 86, 86, 86, 86, 242, 86, 236, 370, 86, 86, + 86, 239, 86, 243, 241, 248, 251, 252, 86, 244, + 253, 247, 86, 86, 86, 254, 249, 246, 260, 257, - 86, 86, 86, 257, 261, 86, 265, 86, 86, 258, - 256, 260, 264, 262, 86, 159, 159, 266, 86, 268, - 161, 269, 86, 161, 367, 263, 267, 163, 169, 163, - 163, 270, 163, 166, 166, 168, 274, 168, 168, 90, - 168, 90, 90, 173, 90, 173, 173, 86, 173, 176, - 176, 171, 271, 272, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 276, 86, 279, 282, 278, 273, 275, - 277, 86, 285, 284, 290, 281, 86, 280, 86, 286, - 86, 288, 283, 86, 289, 291, 86, 86, 86, 86, - 292, 86, 294, 86, 299, 86, 287, 295, 300, 86, + 250, 261, 86, 86, 259, 263, 86, 86, 86, 86, + 258, 267, 255, 86, 264, 256, 86, 86, 262, 266, + 268, 270, 160, 160, 86, 162, 265, 269, 162, 273, + 164, 271, 164, 164, 337, 164, 167, 167, 169, 86, + 169, 169, 90, 169, 90, 90, 170, 90, 174, 272, + 174, 174, 274, 174, 172, 177, 177, 276, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 275, 278, 86, + 281, 284, 280, 86, 277, 279, 86, 287, 286, 283, + 176, 290, 282, 86, 288, 285, 86, 291, 292, 86, + 293, 317, 86, 296, 86, 294, 86, 301, 297, 86, - 302, 304, 296, 86, 303, 306, 86, 293, 297, 298, - 301, 86, 86, 86, 86, 86, 308, 86, 309, 86, - 86, 86, 310, 305, 86, 316, 317, 86, 311, 313, - 312, 167, 314, 86, 307, 86, 318, 315, 323, 319, - 326, 320, 86, 325, 324, 328, 86, 86, 327, 86, - 330, 86, 332, 321, 333, 322, 86, 329, 86, 336, - 86, 86, 331, 86, 86, 86, 337, 338, 339, 334, - 335, 340, 86, 86, 86, 86, 342, 86, 86, 341, - 343, 86, 86, 86, 345, 86, 86, 86, 86, 86, - 348, 350, 86, 355, 346, 344, 349, 351, 356, 86, + 86, 86, 86, 298, 86, 86, 304, 305, 308, 299, + 300, 302, 295, 86, 86, 86, 306, 310, 86, 303, + 311, 86, 86, 86, 86, 307, 86, 318, 86, 86, + 86, 319, 86, 325, 312, 313, 315, 309, 314, 316, + 86, 320, 86, 329, 321, 328, 322, 330, 327, 326, + 332, 86, 86, 86, 724, 334, 86, 338, 323, 331, + 324, 86, 335, 86, 86, 340, 86, 342, 86, 339, + 341, 86, 333, 86, 86, 86, 344, 336, 86, 86, + 86, 343, 86, 86, 346, 86, 348, 86, 345, 86, + 86, 86, 86, 351, 353, 86, 349, 358, 86, 347, - 352, 86, 86, 347, 86, 353, 357, 354, 359, 361, - 358, 86, 364, 86, 86, 86, 86, 370, 86, 366, - 86, 86, 371, 86, 360, 373, 86, 369, 86, 362, - 363, 86, 86, 365, 86, 368, 86, 376, 374, 378, - 372, 377, 86, 380, 169, 86, 375, 86, 86, 86, - 381, 86, 384, 86, 86, 86, 385, 383, 86, 391, - 389, 387, 392, 379, 86, 86, 86, 382, 86, 393, - 386, 394, 395, 86, 388, 86, 86, 86, 86, 86, - 86, 390, 86, 406, 402, 403, 86, 400, 396, 397, - 86, 399, 86, 86, 398, 404, 86, 405, 86, 408, + 352, 354, 359, 86, 86, 350, 355, 86, 86, 360, + 357, 356, 362, 364, 86, 367, 361, 86, 86, 86, + 86, 86, 373, 369, 86, 86, 86, 86, 86, 363, + 374, 372, 365, 366, 376, 86, 86, 368, 377, 371, + 86, 378, 86, 379, 375, 380, 86, 381, 383, 86, + 86, 384, 170, 86, 86, 387, 86, 86, 386, 86, + 86, 86, 86, 394, 388, 390, 392, 395, 385, 86, + 86, 382, 86, 86, 398, 389, 86, 396, 86, 391, + 86, 397, 86, 393, 86, 399, 86, 404, 86, 405, + 409, 406, 400, 86, 403, 86, 86, 86, 402, 407, - 86, 409, 86, 86, 86, 401, 412, 86, 86, 416, - 407, 413, 86, 86, 418, 86, 86, 414, 410, 411, - 86, 415, 86, 420, 419, 86, 86, 417, 86, 86, - 421, 86, 423, 424, 425, 426, 428, 86, 86, 86, - 86, 86, 433, 429, 86, 432, 86, 422, 86, 86, - 165, 431, 435, 86, 86, 438, 86, 86, 430, 86, - 427, 443, 440, 86, 434, 86, 444, 86, 436, 442, - 86, 437, 86, 86, 439, 466, 86, 445, 454, 441, - 86, 452, 86, 86, 86, 455, 458, 456, 453, 446, - 86, 86, 447, 465, 86, 86, 460, 448, 449, 450, + 401, 86, 408, 86, 411, 86, 412, 86, 86, 86, + 86, 415, 86, 86, 410, 419, 416, 86, 175, 417, + 421, 86, 418, 413, 414, 86, 86, 422, 423, 86, + 86, 420, 86, 424, 86, 86, 426, 427, 428, 429, + 86, 86, 86, 86, 86, 86, 86, 435, 432, 86, + 425, 86, 436, 86, 86, 434, 86, 438, 86, 441, + 431, 437, 433, 86, 430, 86, 443, 446, 86, 86, + 439, 447, 440, 86, 442, 86, 86, 445, 86, 86, + 457, 448, 86, 444, 86, 455, 86, 86, 86, 458, + 461, 459, 499, 449, 170, 462, 450, 456, 469, 86, - 451, 86, 791, 457, 459, 86, 463, 461, 462, 469, - 86, 464, 86, 86, 472, 86, 86, 474, 467, 470, - 86, 468, 471, 86, 475, 473, 86, 86, 86, 86, - 86, 86, 477, 482, 86, 86, 483, 86, 484, 86, - 478, 476, 487, 488, 86, 86, 481, 485, 479, 86, - 480, 86, 86, 499, 486, 86, 489, 490, 492, 494, - 493, 86, 501, 491, 495, 86, 500, 86, 86, 502, - 86, 86, 503, 86, 86, 86, 515, 496, 504, 86, - 497, 86, 498, 86, 505, 164, 86, 86, 506, 517, - 520, 514, 86, 519, 516, 522, 507, 86, 508, 86, + 463, 451, 452, 453, 454, 466, 86, 460, 464, 465, + 467, 86, 86, 86, 86, 468, 86, 86, 86, 477, + 86, 86, 86, 479, 86, 475, 478, 476, 86, 472, + 470, 86, 480, 471, 473, 474, 86, 86, 86, 481, + 483, 482, 86, 487, 86, 168, 86, 86, 488, 86, + 489, 492, 86, 505, 493, 166, 484, 486, 485, 490, + 86, 86, 86, 86, 491, 86, 494, 495, 497, 86, + 498, 86, 500, 496, 86, 506, 507, 86, 86, 508, + 504, 86, 86, 86, 86, 501, 509, 86, 502, 546, + 503, 86, 510, 86, 520, 86, 511, 522, 519, 523, - 509, 518, 536, 86, 532, 86, 521, 530, 531, 533, - 86, 534, 86, 510, 86, 86, 511, 169, 512, 86, - 513, 86, 539, 523, 524, 540, 86, 537, 538, 86, - 86, 86, 162, 525, 542, 526, 527, 528, 535, 544, - 529, 541, 86, 543, 86, 86, 548, 546, 86, 545, - 549, 86, 553, 551, 86, 554, 86, 86, 86, 550, - 86, 558, 86, 86, 86, 547, 552, 86, 86, 556, - 86, 86, 86, 561, 557, 160, 555, 562, 563, 560, - 86, 86, 86, 568, 564, 567, 565, 559, 566, 86, - 86, 569, 570, 86, 572, 86, 575, 573, 86, 86, + 86, 524, 86, 525, 512, 86, 513, 527, 514, 537, + 535, 536, 521, 170, 538, 86, 86, 86, 86, 526, + 86, 515, 539, 86, 516, 556, 517, 86, 518, 86, + 86, 528, 529, 542, 540, 86, 541, 165, 86, 543, + 545, 530, 544, 531, 532, 533, 86, 547, 534, 548, + 549, 86, 86, 86, 86, 558, 86, 551, 553, 86, + 550, 86, 86, 559, 86, 86, 86, 563, 555, 557, + 86, 554, 86, 86, 86, 552, 561, 566, 86, 560, + 562, 567, 568, 86, 86, 86, 565, 86, 86, 573, + 564, 86, 572, 86, 569, 574, 575, 86, 86, 570, - 86, 576, 86, 86, 589, 86, 86, 592, 86, 571, - 86, 584, 574, 577, 581, 578, 580, 590, 579, 585, - 586, 86, 86, 587, 588, 582, 591, 583, 594, 86, - 86, 593, 86, 86, 86, 598, 596, 597, 86, 86, - 86, 601, 86, 599, 603, 86, 86, 86, 86, 606, - 595, 604, 607, 86, 86, 602, 86, 608, 86, 600, - 605, 86, 86, 86, 613, 86, 611, 612, 86, 609, - 86, 86, 614, 86, 86, 86, 619, 610, 620, 86, - 615, 86, 622, 618, 623, 616, 86, 621, 617, 86, - 625, 86, 86, 627, 86, 86, 86, 86, 86, 86, + 86, 571, 577, 86, 578, 86, 580, 581, 86, 584, + 594, 86, 582, 576, 86, 86, 86, 585, 603, 579, + 586, 86, 86, 595, 583, 86, 589, 596, 86, 597, + 599, 587, 86, 588, 590, 591, 86, 598, 592, 593, + 86, 86, 86, 86, 86, 602, 601, 604, 86, 606, + 608, 86, 86, 600, 86, 86, 611, 607, 612, 609, + 86, 86, 86, 605, 86, 610, 613, 86, 86, 86, + 618, 86, 616, 617, 86, 614, 86, 86, 619, 86, + 86, 86, 615, 620, 624, 86, 86, 627, 623, 625, + 86, 626, 86, 86, 621, 622, 86, 628, 86, 630, - 86, 86, 86, 629, 86, 630, 638, 624, 639, 86, - 632, 86, 86, 626, 86, 628, 641, 631, 633, 635, - 634, 640, 636, 637, 86, 86, 86, 86, 642, 645, - 86, 648, 643, 86, 651, 644, 86, 86, 86, 646, - 86, 650, 86, 86, 86, 647, 86, 654, 657, 86, - 653, 86, 86, 649, 658, 86, 86, 660, 652, 86, - 86, 86, 86, 86, 86, 655, 659, 656, 674, 86, - 86, 661, 663, 696, 677, 662, 86, 664, 673, 86, - 672, 675, 665, 177, 666, 676, 86, 86, 86, 86, - 667, 681, 668, 678, 680, 669, 670, 679, 684, 685, + 86, 629, 86, 632, 634, 86, 86, 86, 86, 635, + 86, 637, 631, 86, 633, 86, 645, 647, 86, 86, + 639, 723, 86, 86, 86, 86, 636, 638, 640, 86, + 641, 642, 644, 646, 648, 643, 86, 86, 86, 649, + 652, 86, 655, 86, 650, 658, 86, 651, 86, 657, + 86, 86, 653, 86, 86, 86, 654, 86, 661, 664, + 86, 86, 86, 656, 660, 665, 667, 86, 86, 659, + 86, 86, 86, 86, 86, 86, 662, 666, 663, 681, + 86, 86, 86, 668, 670, 163, 684, 669, 86, 671, + 679, 682, 720, 698, 672, 680, 673, 683, 86, 86, - 86, 86, 671, 682, 86, 86, 683, 689, 86, 86, - 686, 86, 692, 86, 86, 687, 86, 688, 86, 694, - 86, 86, 86, 86, 86, 701, 86, 175, 700, 691, - 86, 690, 86, 698, 86, 695, 697, 86, 693, 705, - 704, 703, 169, 702, 699, 707, 706, 709, 86, 708, - 86, 86, 86, 86, 86, 86, 86, 716, 714, 86, - 719, 86, 86, 86, 711, 86, 720, 710, 712, 715, - 713, 718, 86, 722, 721, 86, 86, 723, 724, 86, - 86, 86, 86, 717, 86, 728, 727, 86, 86, 86, - 725, 733, 86, 729, 829, 726, 734, 86, 736, 86, + 86, 86, 674, 86, 675, 685, 688, 676, 677, 686, + 692, 86, 691, 687, 678, 689, 86, 86, 690, 86, + 86, 693, 696, 86, 699, 86, 694, 86, 701, 86, + 86, 86, 86, 695, 86, 86, 86, 86, 86, 86, + 707, 86, 703, 697, 702, 708, 704, 711, 712, 170, + 700, 705, 710, 713, 714, 86, 706, 709, 86, 86, + 86, 86, 86, 86, 86, 727, 86, 715, 721, 726, + 86, 86, 86, 716, 725, 718, 722, 719, 717, 729, + 86, 86, 86, 86, 728, 86, 731, 86, 86, 86, + 735, 86, 730, 734, 740, 732, 86, 733, 736, 741, - 730, 738, 735, 731, 732, 737, 86, 86, 739, 86, - 740, 86, 741, 744, 742, 86, 86, 86, 86, 743, - 86, 86, 747, 86, 746, 86, 86, 745, 750, 86, - 755, 749, 86, 86, 751, 748, 86, 754, 86, 86, - 86, 86, 756, 86, 760, 758, 86, 86, 86, 752, - 86, 753, 86, 763, 766, 759, 86, 757, 86, 86, - 86, 761, 86, 767, 86, 774, 764, 174, 762, 86, - 768, 86, 765, 86, 769, 86, 86, 773, 777, 770, - 775, 778, 771, 772, 86, 776, 781, 86, 86, 779, - 86, 783, 86, 86, 784, 86, 782, 86, 786, 780, + 86, 743, 86, 744, 86, 737, 745, 739, 738, 742, + 746, 86, 86, 747, 86, 748, 86, 749, 86, 86, + 86, 86, 750, 86, 86, 754, 86, 753, 86, 86, + 752, 757, 86, 86, 756, 86, 762, 751, 755, 86, + 758, 86, 86, 761, 86, 763, 86, 766, 86, 86, + 767, 760, 759, 765, 86, 86, 86, 86, 773, 86, + 770, 768, 764, 86, 86, 86, 86, 86, 774, 86, + 781, 86, 771, 775, 776, 769, 86, 772, 86, 777, + 86, 783, 778, 779, 780, 782, 86, 86, 788, 789, + 786, 784, 785, 787, 86, 86, 86, 86, 790, 86, - 787, 86, 86, 86, 86, 86, 788, 86, 793, 795, - 86, 789, 86, 86, 86, 86, 785, 792, 801, 86, - 790, 796, 86, 799, 86, 794, 797, 800, 802, 798, - 86, 804, 805, 803, 86, 86, 86, 808, 806, 86, - 810, 807, 86, 812, 86, 86, 86, 811, 813, 86, - 86, 816, 86, 809, 86, 815, 817, 86, 86, 86, - 823, 86, 86, 820, 169, 818, 86, 819, 825, 814, - 86, 86, 828, 86, 86, 826, 830, 821, 822, 832, - 824, 86, 827, 86, 835, 86, 833, 86, 834, 836, - 86, 831, 86, 837, 86, 86, 839, 86, 86, 841, + 791, 86, 793, 86, 794, 86, 86, 86, 795, 86, + 86, 802, 86, 798, 800, 796, 86, 86, 86, 86, + 799, 86, 792, 797, 86, 803, 808, 810, 806, 86, + 801, 86, 86, 807, 805, 809, 804, 811, 812, 86, + 86, 86, 813, 86, 86, 86, 814, 819, 821, 815, + 817, 86, 86, 86, 86, 822, 820, 816, 86, 86, + 825, 86, 86, 818, 824, 826, 86, 86, 86, 86, + 832, 86, 829, 86, 827, 828, 86, 834, 835, 86, + 837, 86, 86, 823, 839, 86, 830, 831, 833, 838, + 841, 836, 86, 86, 86, 844, 86, 842, 843, 840, - 86, 86, 86, 847, 86, 842, 838, 86, 848, 86, - 86, 86, 86, 86, 840, 86, 843, 86, 844, 849, - 845, 86, 846, 86, 86, 852, 850, 851, 856, 854, - 855, 86, 853, 86, 86, 857, 858, 861, 86, 86, - 86, 86, 859, 86, 86, 86, 870, 86, 86, 868, - 860, 86, 871, 86, 86, 863, 862, 86, 864, 865, - 866, 869, 867, 86, 86, 872, 86, 86, 874, 876, - 877, 86, 873, 86, 86, 86, 86, 875, 880, 881, - 879, 883, 882, 86, 86, 878, 86, 86, 884, 86, - 86, 885, 169, 886, 86, 86, 887, 891, 888, 889, + 845, 86, 86, 846, 86, 86, 848, 850, 86, 86, + 86, 86, 86, 849, 856, 86, 86, 847, 86, 857, + 86, 86, 86, 86, 86, 858, 851, 852, 853, 86, + 854, 865, 855, 859, 86, 86, 860, 86, 86, 864, + 861, 863, 862, 86, 86, 86, 86, 867, 866, 870, + 86, 86, 86, 86, 86, 879, 86, 868, 877, 86, + 872, 86, 869, 86, 871, 880, 86, 86, 873, 874, + 875, 876, 86, 878, 86, 882, 86, 881, 883, 885, + 884, 86, 86, 86, 86, 86, 86, 86, 886, 889, + 890, 891, 892, 86, 888, 887, 86, 86, 893, 86, - 86, 890, 86, 892, 895, 86, 893, 86, 894, 86, - 899, 86, 86, 86, 900, 902, 86, 903, 86, 86, - 896, 897, 901, 906, 86, 86, 86, 904, 86, 86, - 898, 86, 908, 912, 86, 86, 86, 909, 905, 86, - 86, 86, 913, 914, 907, 86, 86, 86, 86, 911, - 86, 910, 86, 915, 928, 86, 927, 86, 929, 930, - 925, 917, 167, 926, 86, 916, 86, 86, 918, 937, - 86, 919, 86, 931, 932, 920, 86, 933, 921, 86, - 934, 86, 936, 935, 939, 922, 923, 938, 924, 86, - 86, 86, 940, 941, 947, 942, 86, 86, 943, 86, + 897, 894, 86, 895, 170, 86, 896, 86, 898, 900, + 901, 86, 86, 86, 899, 902, 86, 86, 86, 903, + 86, 904, 908, 86, 86, 909, 911, 86, 905, 86, + 906, 86, 86, 910, 912, 915, 86, 914, 907, 86, + 913, 86, 86, 917, 921, 919, 86, 86, 918, 86, + 86, 86, 916, 86, 922, 86, 923, 86, 86, 86, + 920, 979, 86, 86, 86, 924, 86, 936, 937, 938, + 934, 86, 942, 926, 935, 939, 925, 86, 86, 927, + 940, 86, 928, 86, 943, 941, 929, 86, 86, 930, + 86, 86, 946, 86, 948, 86, 931, 932, 944, 933, - 86, 950, 948, 944, 952, 86, 86, 86, 86, 945, - 946, 954, 86, 959, 949, 958, 86, 962, 960, 86, - 953, 86, 956, 951, 955, 86, 86, 86, 961, 86, - 965, 964, 966, 957, 86, 86, 86, 967, 969, 86, - 963, 968, 86, 86, 970, 86, 86, 971, 86, 973, - 86, 86, 977, 86, 86, 86, 86, 980, 976, 86, - 86, 86, 972, 1030, 984, 165, 974, 975, 978, 979, - 86, 982, 981, 86, 986, 86, 86, 990, 985, 987, - 991, 989, 983, 86, 988, 86, 86, 86, 993, 86, - 86, 86, 992, 994, 86, 995, 997, 86, 86, 996, + 86, 86, 86, 86, 86, 959, 945, 956, 961, 958, + 947, 86, 949, 950, 957, 951, 86, 86, 952, 960, + 86, 963, 964, 953, 962, 86, 86, 86, 967, 954, + 955, 968, 965, 970, 86, 971, 969, 86, 86, 86, + 974, 86, 972, 973, 86, 966, 975, 976, 86, 978, + 86, 86, 86, 977, 86, 86, 86, 86, 982, 86, + 986, 86, 86, 980, 985, 86, 86, 989, 86, 86, + 86, 981, 993, 991, 1052, 983, 984, 987, 86, 988, + 86, 995, 86, 996, 999, 994, 990, 86, 997, 86, + 86, 992, 998, 1000, 86, 86, 1002, 1003, 86, 86, - 998, 86, 86, 86, 86, 86, 999, 86, 1001, 1004, - 86, 1002, 1008, 86, 1007, 86, 1005, 86, 86, 86, - 1000, 1006, 86, 86, 1003, 86, 86, 86, 1010, 86, - 1013, 1011, 1015, 86, 86, 1014, 1009, 86, 1016, 86, - 86, 1017, 86, 1021, 86, 1023, 1019, 1012, 1022, 86, - 86, 86, 1020, 86, 86, 1024, 1028, 1031, 86, 1018, - 1026, 1025, 86, 86, 1029, 86, 86, 1033, 86, 86, - 86, 86, 86, 86, 1027, 1032, 1041, 86, 86, 1039, - 86, 1044, 1294, 86, 1034, 1035, 1036, 86, 86, 1038, - 1037, 1042, 1045, 86, 1040, 86, 1043, 1047, 86, 86, + 1001, 86, 86, 86, 1004, 1006, 86, 1007, 86, 1005, + 86, 1008, 86, 86, 86, 86, 86, 1010, 1015, 86, + 1011, 86, 1018, 86, 86, 86, 86, 86, 1009, 86, + 1016, 1013, 1012, 1017, 1019, 1014, 1021, 86, 1022, 86, + 86, 86, 1024, 1020, 1026, 86, 86, 86, 1025, 86, + 1023, 1027, 86, 86, 1034, 1032, 86, 86, 1030, 1028, + 1033, 86, 86, 86, 86, 1031, 1039, 86, 86, 1041, + 86, 1035, 1029, 1037, 1040, 1044, 1036, 1042, 86, 86, + 86, 86, 86, 86, 86, 86, 1038, 1055, 86, 1043, + 86, 86, 86, 86, 1050, 1088, 86, 86, 86, 86, - 1046, 1049, 1052, 86, 1051, 86, 86, 1048, 86, 86, - 86, 86, 1050, 86, 86, 1054, 1061, 1056, 1062, 86, - 1064, 86, 86, 86, 86, 1053, 86, 86, 1055, 86, - 1057, 1069, 1059, 1058, 1060, 1063, 1067, 1065, 1068, 1066, - 86, 86, 86, 86, 86, 1076, 1073, 86, 1070, 86, - 1075, 86, 1071, 86, 86, 1080, 1077, 86, 1082, 86, - 1072, 86, 86, 86, 1074, 1078, 1085, 1079, 1084, 86, - 86, 1086, 169, 86, 1088, 86, 1089, 1081, 86, 86, - 1083, 86, 86, 86, 1087, 86, 1092, 86, 86, 86, - 1105, 86, 86, 1108, 86, 1090, 1106, 1095, 1091, 86, + 1045, 1046, 1047, 1051, 1049, 1048, 1053, 1056, 1057, 1054, + 1058, 1059, 86, 1061, 86, 1063, 86, 86, 1060, 1062, + 86, 86, 86, 86, 86, 86, 1072, 86, 1073, 1065, + 1067, 86, 86, 1075, 86, 86, 86, 1064, 161, 86, + 86, 1066, 1078, 1068, 1070, 1074, 1069, 1071, 86, 1076, + 86, 1079, 86, 86, 1080, 86, 1077, 86, 1084, 1081, + 86, 1086, 1087, 86, 1082, 86, 86, 1091, 86, 1093, + 86, 86, 1083, 86, 86, 86, 1085, 1096, 1090, 1095, + 86, 1089, 1097, 170, 1099, 86, 1092, 86, 1100, 1094, + 1098, 86, 86, 86, 86, 86, 86, 1103, 86, 86, - 1096, 1093, 86, 1094, 86, 1097, 1107, 86, 1110, 1098, - 86, 86, 1113, 1099, 86, 1100, 86, 1111, 86, 1101, - 86, 1102, 1119, 86, 1109, 1112, 1103, 1115, 1114, 1117, - 1118, 1104, 1116, 86, 1120, 86, 86, 86, 1121, 86, - 1122, 86, 1125, 86, 86, 86, 86, 86, 1124, 1131, - 1123, 1135, 1130, 1126, 1129, 1132, 86, 1128, 1133, 1134, - 86, 86, 1127, 1136, 86, 86, 1138, 86, 86, 86, - 86, 86, 86, 86, 1151, 1148, 86, 86, 86, 86, - 1147, 1152, 86, 1150, 86, 1139, 1149, 1137, 86, 1140, - 1153, 1154, 86, 1158, 1141, 86, 1142, 1155, 1156, 86, + 86, 86, 1116, 1117, 1119, 86, 86, 1101, 86, 1106, + 86, 1102, 1104, 1107, 1121, 86, 1108, 86, 1105, 1109, + 86, 1118, 1124, 1110, 86, 1111, 86, 86, 86, 1112, + 1122, 1113, 86, 1120, 1141, 86, 1114, 1126, 1123, 86, + 1125, 1115, 1127, 86, 1128, 86, 1129, 86, 86, 1130, + 86, 86, 1133, 86, 1132, 1136, 86, 86, 86, 1146, + 1135, 1131, 1134, 1142, 86, 1137, 1140, 1143, 86, 1144, + 1139, 1145, 86, 86, 1138, 86, 1147, 86, 86, 86, + 86, 86, 86, 1159, 86, 1162, 86, 178, 86, 86, + 1148, 1163, 1158, 86, 86, 1160, 1149, 1150, 86, 1151, - 1157, 86, 1143, 86, 1160, 86, 1159, 1144, 1145, 1164, - 86, 86, 86, 1161, 1146, 1165, 1167, 86, 86, 1162, - 1168, 86, 86, 1163, 1172, 86, 1170, 86, 86, 86, - 86, 86, 1166, 1173, 86, 1178, 86, 1169, 1171, 86, - 1175, 86, 86, 1176, 86, 1177, 1174, 1181, 1179, 86, - 86, 86, 86, 86, 86, 1180, 86, 86, 86, 86, - 1186, 1187, 1188, 1183, 1182, 1185, 1190, 86, 86, 86, - 1184, 1189, 86, 1191, 86, 86, 164, 1196, 1193, 86, - 1198, 1192, 86, 1195, 1199, 86, 86, 1194, 1203, 1197, - 1200, 1201, 86, 1202, 86, 86, 1206, 86, 86, 1204, + 1161, 1164, 86, 1165, 1152, 1169, 1153, 86, 86, 86, + 86, 86, 1154, 1166, 1170, 86, 86, 1155, 1156, 86, + 1171, 1167, 86, 1168, 1157, 1175, 86, 86, 1172, 86, + 1178, 1173, 86, 1176, 1174, 1179, 86, 86, 1183, 1177, + 1182, 1180, 1181, 86, 86, 86, 86, 86, 1184, 86, + 86, 1189, 86, 86, 86, 1186, 1187, 86, 1192, 1190, + 86, 86, 86, 86, 1185, 1188, 86, 86, 1199, 86, + 86, 1191, 1197, 1201, 1193, 1194, 1198, 86, 1196, 86, + 1195, 86, 86, 86, 1203, 86, 1200, 86, 86, 86, + 86, 86, 1209, 1202, 86, 1210, 1206, 1212, 86, 1211, - 1210, 1207, 86, 86, 1208, 86, 86, 1209, 86, 86, - 86, 1205, 1211, 1217, 86, 1219, 86, 86, 86, 86, - 1223, 86, 1213, 1215, 1216, 1212, 1214, 86, 86, 86, - 86, 1220, 1221, 86, 1218, 1225, 86, 86, 1226, 1224, - 86, 1228, 1222, 86, 86, 1227, 1231, 86, 1229, 1230, - 1234, 1235, 86, 1233, 86, 86, 86, 86, 86, 86, - 1232, 1238, 86, 1236, 86, 1239, 86, 86, 1245, 1243, - 1246, 86, 86, 1237, 86, 1240, 86, 1247, 1241, 86, - 1244, 86, 1242, 1250, 1248, 86, 1249, 1253, 86, 86, - 86, 1252, 86, 86, 86, 1254, 1255, 86, 86, 86, + 1215, 1204, 1205, 1207, 1208, 86, 1213, 1214, 86, 86, + 1219, 1217, 86, 86, 86, 1220, 86, 86, 1221, 86, + 86, 1222, 1223, 1216, 86, 1218, 1224, 86, 86, 1230, + 86, 1232, 86, 86, 1225, 86, 1226, 86, 1234, 86, + 1228, 86, 1227, 1229, 1236, 86, 86, 1233, 86, 86, + 1231, 1238, 86, 1235, 1239, 86, 86, 1241, 86, 86, + 1242, 86, 86, 1247, 1240, 1244, 1237, 1246, 1243, 86, + 1248, 86, 86, 86, 1245, 86, 1251, 86, 1252, 86, + 1250, 1249, 86, 86, 86, 1258, 1256, 86, 1259, 86, + 86, 86, 1260, 1253, 86, 1261, 86, 1257, 1254, 1263, - 86, 1256, 1260, 1251, 86, 86, 1258, 1257, 1261, 1263, - 86, 1262, 86, 1259, 86, 1267, 1268, 86, 86, 1271, - 86, 86, 86, 1270, 1265, 86, 86, 86, 1264, 86, - 1275, 86, 1269, 1266, 86, 86, 86, 86, 169, 1274, - 1273, 1281, 86, 86, 1272, 1277, 86, 1276, 86, 86, - 1278, 86, 86, 1286, 86, 86, 1280, 1283, 1282, 1301, - 1279, 1284, 1290, 1285, 1287, 1288, 86, 1291, 86, 1289, - 1292, 86, 86, 86, 86, 86, 1293, 1295, 86, 86, - 86, 86, 86, 1298, 1304, 86, 86, 86, 1296, 1297, - 86, 86, 86, 86, 1299, 1442, 1302, 86, 1308, 1300, + 86, 1262, 1255, 1266, 86, 86, 86, 1264, 86, 86, + 86, 1267, 1268, 86, 86, 86, 86, 1269, 1273, 1270, + 1265, 86, 1271, 86, 1274, 86, 86, 1275, 1276, 86, + 1280, 1281, 86, 1272, 86, 86, 86, 86, 1278, 1283, + 1284, 86, 86, 1277, 86, 86, 1288, 1282, 1279, 86, + 86, 86, 86, 86, 1285, 170, 1286, 1287, 1290, 1294, + 86, 86, 1289, 86, 86, 86, 86, 86, 1299, 86, + 1291, 86, 1293, 1307, 1300, 1295, 1297, 1292, 1296, 1298, + 1301, 86, 1303, 1304, 86, 1305, 1302, 86, 86, 86, + 86, 86, 1306, 86, 86, 1308, 86, 86, 1309, 1311, - 1305, 1303, 1310, 86, 86, 1306, 1307, 1314, 86, 1315, - 1309, 1311, 86, 1312, 1317, 86, 1313, 1316, 86, 86, - 86, 86, 1322, 1320, 86, 1318, 86, 86, 86, 1324, - 86, 86, 86, 1319, 86, 1323, 1327, 1331, 86, 1329, - 1321, 86, 1326, 86, 86, 86, 1325, 86, 1328, 1332, - 1333, 1330, 1335, 86, 86, 86, 86, 1336, 1338, 86, - 86, 1334, 86, 1337, 86, 86, 86, 1343, 86, 86, - 1339, 1341, 86, 86, 86, 1340, 1344, 1342, 1348, 86, - 86, 86, 86, 86, 1345, 86, 1347, 1346, 1349, 1350, - 1352, 86, 86, 1360, 1351, 1353, 86, 1355, 1354, 86, + 86, 86, 1317, 86, 1314, 1310, 86, 86, 1312, 86, + 86, 86, 176, 86, 86, 1313, 1315, 1321, 1323, 1316, + 1318, 1331, 86, 86, 1320, 1319, 1327, 1324, 1329, 1325, + 1322, 86, 1326, 86, 1328, 1330, 86, 86, 86, 86, + 1333, 86, 86, 86, 86, 1332, 86, 1337, 1336, 86, + 86, 1340, 86, 1344, 86, 86, 1339, 1334, 86, 1335, + 1345, 1342, 1338, 1341, 86, 86, 86, 86, 86, 1346, + 1348, 1343, 1349, 86, 86, 1350, 86, 86, 1347, 86, + 86, 86, 1351, 86, 86, 86, 1356, 86, 1352, 1354, + 86, 1355, 1357, 1353, 86, 86, 1361, 86, 86, 86, - 86, 1356, 86, 86, 86, 86, 1358, 86, 1357, 162, - 1363, 1361, 1359, 86, 1362, 86, 1368, 1367, 1366, 86, - 1365, 1369, 86, 1364, 86, 1373, 1370, 86, 86, 1371, - 1383, 86, 1372, 86, 1374, 1405, 86, 1382, 1375, 86, - 1381, 1376, 1377, 86, 1384, 86, 1378, 1387, 1386, 86, - 1385, 86, 1379, 86, 1388, 86, 1380, 86, 1390, 86, - 1389, 86, 1392, 86, 86, 86, 1393, 86, 1394, 86, - 86, 86, 1391, 160, 1397, 1399, 86, 86, 1402, 1395, - 1403, 1404, 1396, 1400, 86, 86, 86, 1398, 1414, 1401, - 86, 1411, 1412, 1413, 1406, 86, 86, 86, 86, 1407, + 1358, 86, 1360, 86, 1359, 1363, 1365, 1364, 86, 1362, + 1366, 1368, 86, 1373, 86, 86, 86, 1367, 86, 86, + 1369, 86, 86, 1371, 86, 86, 1376, 1379, 1370, 1374, + 1375, 86, 1372, 1381, 86, 1377, 1380, 1378, 1382, 86, + 86, 1386, 86, 86, 1383, 1384, 175, 1385, 86, 1387, + 86, 1397, 1395, 1388, 1396, 1394, 1389, 1390, 86, 86, + 86, 1391, 86, 1398, 1400, 86, 1403, 1392, 1399, 86, + 86, 1393, 86, 86, 1401, 86, 1405, 1402, 86, 86, + 86, 86, 1406, 1404, 1407, 86, 86, 86, 1415, 1410, + 1412, 1416, 86, 1408, 86, 86, 1409, 86, 86, 1418, - 1415, 1408, 86, 1409, 1419, 1410, 86, 86, 86, 1420, - 86, 1418, 1416, 1423, 86, 1421, 1417, 86, 86, 86, - 86, 1429, 86, 1430, 86, 86, 1425, 86, 1424, 1422, - 86, 86, 1431, 86, 1428, 1433, 86, 1426, 1427, 1432, - 86, 86, 1435, 1439, 86, 1434, 1438, 86, 1441, 86, - 86, 86, 86, 1443, 1436, 86, 1444, 1447, 86, 86, - 1449, 86, 1440, 86, 1446, 1437, 86, 1450, 1451, 86, - 86, 1445, 1454, 86, 86, 86, 86, 86, 1456, 1448, - 86, 86, 1458, 1460, 86, 86, 86, 86, 1462, 1459, - 1452, 1453, 1464, 86, 1455, 86, 1457, 86, 86, 86, + 1413, 1411, 86, 1417, 86, 1414, 1425, 86, 1426, 1424, + 86, 1419, 1427, 1428, 86, 86, 1420, 86, 1421, 86, + 1422, 1429, 1423, 1430, 86, 1434, 86, 86, 86, 1431, + 1435, 86, 86, 1433, 86, 1432, 1436, 1438, 86, 86, + 86, 1444, 1439, 1440, 86, 1445, 86, 86, 1437, 86, + 86, 86, 86, 86, 1443, 1448, 86, 1441, 1442, 1446, + 1447, 1450, 86, 1449, 1454, 86, 86, 1453, 86, 1456, + 86, 1451, 86, 86, 1457, 86, 1458, 86, 1462, 86, + 1459, 1452, 86, 1455, 86, 1460, 1461, 1464, 86, 86, + 1465, 86, 86, 1469, 86, 86, 1466, 86, 86, 86, - 1466, 1463, 1461, 1468, 1470, 1467, 86, 1465, 86, 1469, - 86, 1471, 86, 1472, 86, 86, 86, 1477, 1478, 1480, - 1474, 86, 1475, 86, 86, 86, 1479, 86, 86, 1476, - 1473, 86, 1484, 86, 86, 169, 1481, 86, 86, 1489, - 1490, 86, 1483, 86, 86, 86, 86, 1482, 86, 1491, - 1486, 86, 1492, 1497, 1485, 86, 86, 1487, 86, 86, - 1500, 1488, 1493, 86, 1495, 86, 86, 86, 1494, 1498, - 86, 1496, 1504, 86, 1499, 1505, 86, 86, 1507, 86, - 1509, 86, 86, 1501, 1503, 1510, 86, 86, 86, 1513, - 1502, 1512, 86, 1506, 86, 86, 1508, 1511, 86, 1518, + 1471, 86, 1463, 86, 1473, 1467, 86, 86, 1475, 86, + 1474, 86, 1477, 1468, 86, 1470, 1479, 86, 1472, 86, + 86, 1476, 1478, 1484, 1481, 1482, 86, 86, 1480, 86, + 1486, 1483, 1485, 86, 86, 86, 86, 86, 1487, 1492, + 1493, 1489, 86, 1490, 86, 86, 86, 1494, 1495, 86, + 1491, 86, 1488, 1496, 86, 1499, 86, 86, 170, 86, + 86, 1504, 1498, 1505, 86, 1507, 86, 86, 1497, 86, + 1506, 86, 86, 1501, 86, 86, 86, 1500, 86, 1502, + 1508, 86, 1515, 1503, 86, 86, 1509, 1512, 86, 86, + 1513, 170, 1510, 86, 1511, 86, 1514, 86, 1519, 1520, - 1521, 1514, 1519, 1515, 1520, 86, 1523, 1516, 86, 86, - 1517, 86, 86, 1524, 86, 1526, 86, 86, 86, 1522, - 1527, 86, 1525, 1531, 86, 86, 86, 1528, 86, 1532, - 86, 1535, 86, 86, 1530, 1533, 86, 1540, 86, 86, - 1529, 86, 1541, 1544, 1537, 1534, 86, 86, 1536, 86, - 1538, 1539, 86, 86, 86, 86, 86, 1542, 1545, 86, - 1543, 1551, 86, 86, 1553, 86, 1546, 1547, 86, 1548, - 1549, 1550, 1552, 86, 1556, 86, 86, 1555, 1557, 1561, - 1554, 86, 1560, 1562, 1558, 86, 86, 1564, 86, 86, - 86, 86, 86, 86, 86, 1569, 1559, 1565, 1568, 1570, + 86, 86, 1522, 1524, 1516, 86, 1518, 86, 1525, 86, + 1517, 86, 1521, 1528, 1523, 86, 1527, 86, 86, 1526, + 86, 86, 86, 1533, 1536, 1529, 1534, 86, 1538, 1535, + 1530, 86, 1531, 86, 86, 1532, 86, 1539, 1541, 86, + 1543, 1537, 1540, 1542, 86, 86, 86, 86, 86, 86, + 1546, 1547, 86, 86, 1550, 86, 86, 1545, 86, 1555, + 86, 86, 1544, 86, 1556, 1548, 86, 1552, 1549, 1559, + 86, 86, 1551, 1553, 1554, 86, 86, 86, 1560, 1557, + 86, 86, 1558, 86, 86, 1562, 1566, 86, 86, 1561, + 1567, 1563, 1564, 1568, 86, 1571, 1570, 86, 86, 1565, - 1563, 86, 1571, 86, 1572, 86, 1566, 86, 86, 86, - 1573, 1574, 86, 1567, 86, 86, 1576, 86, 1575, 86, - 86, 86, 86, 1582, 86, 86, 1581, 86, 86, 1578, - 1585, 86, 1588, 1577, 1579, 1584, 1580, 1589, 86, 86, - 1590, 86, 1586, 86, 1583, 1591, 86, 86, 1593, 86, - 1587, 86, 86, 86, 86, 1601, 1597, 86, 1596, 1592, - 1594, 86, 1595, 86, 1604, 86, 86, 86, 1602, 86, - 86, 1598, 1600, 1599, 1607, 1606, 86, 86, 86, 86, - 86, 86, 86, 1603, 1605, 1608, 1609, 86, 1615, 86, - 86, 3295, 1612, 1616, 1622, 1610, 1611, 1614, 1618, 86, + 86, 86, 1569, 86, 1575, 1576, 86, 1573, 1577, 1579, + 86, 86, 1572, 86, 86, 1578, 86, 86, 86, 1580, + 1574, 1584, 1581, 1583, 1585, 1586, 1591, 86, 86, 1587, + 86, 86, 86, 1588, 1589, 86, 86, 1582, 86, 86, + 1590, 86, 86, 86, 86, 1597, 86, 86, 86, 86, + 1596, 1593, 86, 1600, 86, 1594, 1592, 1595, 1603, 86, + 1599, 1601, 86, 1604, 86, 1605, 1598, 86, 1602, 86, + 1606, 86, 86, 1608, 1607, 86, 1611, 86, 1609, 1616, + 1612, 1610, 86, 86, 86, 86, 1619, 86, 1613, 1617, + 86, 86, 86, 1622, 86, 86, 1621, 1614, 86, 86, - 1613, 1617, 1619, 86, 86, 86, 86, 86, 86, 1620, - 1621, 86, 86, 1625, 1623, 86, 86, 1626, 86, 86, - 1624, 1629, 1633, 86, 1634, 1635, 1628, 1630, 86, 86, - 1627, 86, 86, 86, 1632, 1631, 86, 1638, 86, 86, - 1639, 86, 1637, 1636, 1644, 1640, 1645, 86, 86, 86, - 86, 86, 86, 1641, 86, 1649, 1642, 1648, 1650, 1643, - 1652, 86, 86, 86, 86, 1653, 1646, 1654, 86, 86, - 1647, 1651, 86, 86, 86, 1657, 86, 1660, 86, 1655, - 86, 86, 86, 1659, 86, 1656, 86, 1664, 86, 1666, - 86, 86, 86, 1658, 86, 1661, 86, 1672, 1665, 1662, + 1615, 86, 86, 86, 86, 1630, 1620, 86, 86, 1618, + 1623, 1631, 86, 1624, 1625, 1627, 86, 1626, 1629, 1635, + 86, 1636, 86, 1628, 86, 86, 1632, 86, 1634, 1637, + 86, 1633, 86, 86, 1638, 1642, 1640, 86, 1639, 1643, + 86, 86, 86, 86, 86, 1641, 1646, 1650, 86, 1651, + 1652, 86, 1644, 86, 86, 1645, 86, 1647, 1655, 1649, + 1648, 86, 86, 86, 86, 1656, 1653, 1654, 1657, 86, + 1661, 1662, 86, 86, 86, 86, 86, 86, 1666, 1667, + 1665, 1659, 1658, 86, 86, 86, 1669, 86, 86, 1660, + 86, 1663, 86, 1670, 86, 1664, 1671, 86, 86, 86, - 1663, 1667, 86, 86, 1668, 1669, 86, 86, 1677, 86, - 86, 1675, 86, 1680, 1671, 86, 1670, 1673, 86, 1678, - 1674, 86, 1676, 86, 86, 169, 86, 1683, 1686, 86, - 1679, 1685, 1682, 86, 86, 86, 86, 86, 86, 1694, - 1681, 1687, 86, 1684, 86, 86, 86, 1695, 1689, 86, - 1692, 1688, 1698, 86, 1690, 1691, 86, 86, 1699, 1702, - 86, 1700, 1693, 86, 1696, 1697, 1701, 1704, 1703, 1706, - 86, 1708, 86, 86, 86, 86, 86, 86, 86, 86, - 1705, 86, 1710, 1711, 1707, 86, 1713, 86, 1714, 86, - 86, 86, 86, 1709, 1718, 1715, 86, 1716, 86, 1719, + 1672, 1674, 86, 1668, 1673, 86, 1677, 86, 1676, 1678, + 86, 86, 1675, 86, 1683, 1681, 86, 86, 86, 86, + 86, 86, 1689, 1679, 86, 1682, 1680, 1684, 86, 86, + 86, 86, 1686, 86, 1685, 1692, 1694, 86, 1690, 86, + 1688, 86, 1697, 1695, 1687, 86, 1691, 86, 1693, 1696, + 86, 1700, 86, 1698, 1703, 86, 1699, 1702, 170, 86, + 86, 86, 86, 86, 86, 1711, 86, 86, 168, 1701, + 86, 1712, 1715, 86, 1704, 1706, 1709, 1705, 86, 1707, + 1708, 86, 86, 1717, 86, 86, 1719, 1713, 1710, 86, + 1714, 1716, 1721, 1723, 1720, 86, 1725, 86, 86, 86, - 86, 1712, 86, 86, 1717, 1726, 1723, 1727, 1720, 1724, - 86, 86, 1721, 1728, 86, 86, 1722, 1732, 86, 86, - 1731, 1725, 1733, 1730, 1734, 86, 1735, 1736, 1740, 1729, - 86, 1742, 86, 86, 86, 1737, 86, 1738, 86, 1739, - 86, 86, 86, 86, 86, 1741, 1747, 1746, 1748, 86, - 86, 1750, 86, 86, 86, 1749, 86, 86, 1752, 1743, - 86, 1744, 86, 1745, 1753, 86, 86, 1754, 86, 86, - 86, 86, 1751, 86, 1755, 86, 86, 86, 1764, 1763, - 1756, 86, 1758, 1759, 1760, 86, 1757, 86, 1769, 1761, - 86, 86, 86, 1766, 86, 86, 1765, 1767, 1762, 86, + 86, 1718, 86, 86, 86, 1722, 86, 86, 1727, 1724, + 86, 1728, 86, 1730, 86, 1731, 86, 86, 1732, 1726, + 1735, 86, 1736, 86, 86, 1733, 1743, 1729, 1737, 86, + 86, 1734, 86, 1740, 1744, 1738, 1741, 86, 86, 86, + 1745, 86, 86, 166, 1739, 1750, 1748, 1747, 1742, 1751, + 86, 1752, 1753, 86, 86, 86, 1746, 86, 86, 1754, + 86, 1755, 86, 1756, 1749, 1757, 1759, 86, 86, 86, + 1764, 86, 1758, 1760, 86, 1765, 86, 1763, 86, 1767, + 86, 86, 86, 1766, 86, 86, 86, 1761, 86, 1762, + 86, 1769, 1770, 86, 86, 1771, 86, 86, 86, 86, - 1768, 1775, 86, 86, 86, 86, 86, 1771, 86, 1773, - 1770, 1777, 1772, 86, 1779, 86, 1778, 86, 86, 1781, - 1774, 86, 86, 1776, 86, 86, 86, 1784, 86, 1786, - 1780, 86, 1782, 86, 1787, 1783, 1785, 1788, 86, 86, - 1789, 1790, 1793, 1794, 86, 1796, 1791, 1795, 86, 1797, - 86, 86, 86, 1792, 1798, 1799, 86, 1801, 86, 86, - 86, 86, 86, 1800, 1802, 1803, 86, 86, 1812, 86, - 1806, 1804, 86, 1811, 1805, 1808, 1810, 86, 1809, 86, - 86, 1807, 86, 86, 86, 86, 86, 86, 1821, 86, - 1814, 86, 1813, 86, 1825, 86, 1816, 1818, 1815, 1817, + 1772, 86, 86, 1768, 1773, 1780, 86, 86, 1774, 1781, + 1775, 1776, 1777, 86, 86, 86, 1786, 1778, 1783, 1779, + 86, 1782, 86, 86, 86, 1784, 86, 1785, 1792, 86, + 86, 86, 86, 86, 86, 1787, 1788, 1794, 1790, 86, + 1796, 86, 86, 1789, 86, 1795, 1797, 1791, 1798, 86, + 1793, 86, 86, 1801, 86, 86, 86, 86, 1803, 86, + 1800, 86, 1810, 1804, 1802, 1799, 1805, 86, 1806, 1813, + 1807, 1811, 86, 1812, 86, 1808, 86, 86, 86, 1814, + 1815, 1809, 1816, 86, 86, 86, 1818, 86, 86, 1817, + 1819, 86, 1820, 86, 86, 86, 86, 1821, 86, 1828, - 1823, 86, 86, 86, 1820, 1822, 1824, 86, 1826, 1819, - 86, 1827, 1829, 1830, 1828, 1833, 86, 86, 86, 1839, - 1834, 86, 86, 86, 1831, 86, 86, 1838, 1832, 1842, - 1835, 1843, 1836, 1841, 86, 86, 1844, 86, 86, 86, - 1837, 1840, 86, 1845, 1848, 86, 86, 86, 1850, 1852, - 86, 86, 86, 1847, 1851, 86, 86, 3295, 1846, 1849, - 1853, 86, 86, 86, 1856, 86, 1854, 86, 1862, 86, - 1855, 1857, 1864, 86, 1858, 86, 1859, 1865, 86, 1860, - 86, 1861, 86, 86, 1867, 86, 1866, 1871, 86, 86, - 1863, 1873, 86, 86, 86, 1868, 86, 86, 1869, 1877, + 1822, 86, 1823, 1825, 1827, 86, 1826, 1824, 1829, 86, + 1833, 1830, 86, 1835, 1831, 86, 1832, 86, 1836, 86, + 1837, 86, 86, 86, 1841, 86, 86, 86, 1834, 1838, + 86, 1845, 1844, 86, 86, 1843, 86, 86, 86, 1849, + 1840, 1842, 86, 1853, 86, 1846, 1839, 1847, 1854, 86, + 1848, 1850, 86, 86, 1859, 1852, 1855, 1851, 1858, 1856, + 86, 86, 1861, 86, 1862, 86, 86, 1864, 86, 86, + 86, 1863, 1868, 86, 1857, 1865, 86, 86, 86, 1860, + 1870, 1872, 1867, 86, 86, 1866, 1871, 86, 86, 1869, + 86, 1873, 86, 86, 165, 86, 86, 86, 1876, 1882, - 86, 1870, 1872, 86, 86, 86, 86, 1879, 86, 1875, - 1880, 1881, 1876, 1882, 1874, 86, 1878, 169, 86, 1887, - 86, 86, 86, 86, 1883, 1891, 86, 1884, 86, 1885, - 86, 86, 86, 1886, 1889, 1893, 86, 86, 86, 1898, - 1888, 86, 1890, 1894, 1892, 86, 86, 86, 1895, 3295, - 1899, 1896, 1901, 1902, 86, 86, 1906, 1897, 1903, 1900, - 1904, 86, 86, 1907, 1908, 86, 86, 1905, 86, 86, - 1910, 86, 86, 86, 1911, 86, 86, 86, 1909, 86, - 86, 86, 1916, 86, 1917, 86, 86, 86, 1921, 1918, - 86, 3295, 1912, 1914, 1915, 1913, 1920, 1919, 86, 1922, + 86, 1877, 86, 1874, 86, 86, 1878, 1875, 1879, 1884, + 1880, 1881, 1885, 1887, 86, 86, 86, 1886, 86, 1891, + 86, 1883, 1888, 1889, 86, 1893, 86, 86, 86, 1897, + 86, 86, 86, 86, 86, 1890, 86, 1892, 1899, 86, + 86, 1900, 1903, 1895, 1901, 1902, 1896, 86, 1894, 170, + 86, 86, 1898, 1907, 86, 86, 86, 1911, 86, 86, + 86, 1905, 86, 1909, 86, 1906, 86, 1913, 86, 86, + 1904, 1918, 86, 1912, 1908, 1910, 1914, 86, 1915, 86, + 163, 1916, 1922, 86, 1919, 1921, 86, 1920, 1917, 1923, + 1924, 86, 86, 86, 1927, 1928, 86, 1925, 86, 86, - 86, 86, 1928, 1925, 86, 1927, 1924, 1929, 86, 1930, - 1926, 86, 1923, 86, 86, 86, 86, 86, 1936, 86, - 1939, 86, 1931, 1932, 1940, 86, 1941, 86, 86, 1934, - 1933, 1937, 86, 1938, 1935, 1943, 86, 86, 1944, 1947, - 86, 1942, 86, 86, 1949, 86, 1948, 86, 1950, 1945, - 86, 1951, 1953, 1946, 1956, 86, 86, 86, 86, 1955, - 86, 1952, 86, 1959, 86, 86, 86, 1958, 86, 86, - 1963, 86, 1954, 1962, 86, 86, 1964, 1965, 86, 86, - 1957, 1960, 86, 86, 1973, 86, 1961, 1966, 1967, 1968, - 86, 1975, 1971, 86, 1969, 86, 1976, 86, 1970, 1972, + 86, 1930, 1926, 86, 86, 86, 1931, 86, 86, 86, + 1929, 86, 86, 86, 1936, 86, 1937, 86, 86, 86, + 1941, 1938, 86, 161, 1932, 1934, 1935, 1933, 1940, 1939, + 86, 1942, 86, 86, 1948, 1945, 86, 1947, 1944, 1949, + 86, 1950, 1946, 86, 1943, 86, 86, 86, 86, 86, + 1956, 86, 1959, 86, 1951, 1952, 1960, 86, 1961, 86, + 86, 1954, 1953, 1957, 86, 1958, 1955, 1963, 86, 86, + 1964, 1967, 86, 1962, 86, 86, 1969, 86, 1968, 86, + 1970, 1965, 86, 1971, 1973, 1966, 1976, 86, 86, 86, + 86, 1975, 86, 1972, 86, 1979, 86, 86, 86, 1978, - 1978, 86, 1974, 1979, 86, 1982, 1980, 1977, 86, 86, - 86, 86, 1986, 86, 86, 86, 1988, 1983, 86, 1981, - 86, 86, 1991, 1992, 86, 86, 1994, 86, 86, 1984, - 86, 1985, 86, 86, 2000, 86, 86, 1999, 1989, 1996, - 1987, 1997, 1990, 86, 86, 1993, 86, 86, 86, 86, - 2006, 86, 86, 1995, 1998, 2003, 2004, 2001, 86, 2002, - 2010, 86, 86, 2009, 2013, 2014, 86, 86, 2008, 2012, - 86, 86, 2005, 2015, 86, 86, 2017, 2007, 86, 86, - 2016, 2011, 86, 86, 86, 86, 2021, 86, 2024, 2025, - 2026, 2020, 86, 86, 86, 86, 86, 86, 2018, 86, + 86, 86, 1983, 86, 1974, 1982, 86, 86, 1984, 1985, + 86, 86, 1977, 1980, 86, 86, 1993, 86, 1981, 1986, + 1987, 1988, 86, 1995, 1991, 86, 1989, 86, 1996, 86, + 1990, 1992, 1998, 86, 1994, 1999, 86, 2002, 2000, 1997, + 86, 86, 86, 86, 2006, 86, 86, 86, 2008, 2003, + 86, 2001, 86, 86, 2011, 2012, 86, 86, 2014, 86, + 86, 2004, 86, 2005, 86, 86, 2020, 86, 86, 2019, + 2009, 2016, 2007, 2017, 2010, 86, 86, 2013, 86, 86, + 86, 86, 2026, 86, 86, 2015, 2018, 2023, 2024, 2021, + 86, 2022, 2030, 86, 86, 2029, 2033, 86, 86, 2034, - 86, 2019, 2022, 2029, 86, 2034, 86, 86, 2028, 2033, - 86, 2023, 2027, 86, 2031, 86, 2035, 2038, 86, 2030, - 86, 2039, 2032, 2041, 86, 2036, 2037, 2040, 86, 2045, - 86, 2043, 2042, 86, 86, 86, 2044, 86, 86, 86, - 2049, 2052, 86, 86, 86, 2055, 86, 86, 2047, 2054, - 86, 2056, 2058, 86, 2046, 86, 2048, 2053, 2050, 2051, - 86, 2062, 86, 86, 2057, 86, 2059, 2063, 86, 2064, - 2066, 2060, 2067, 2061, 2065, 86, 86, 86, 86, 86, - 2071, 86, 2069, 86, 86, 86, 86, 2073, 2076, 2068, - 2075, 2070, 2078, 2072, 86, 169, 2074, 86, 86, 86, + 2028, 2032, 86, 86, 2025, 2036, 2037, 86, 86, 2027, + 86, 86, 86, 2031, 86, 2038, 86, 2039, 86, 86, + 86, 2043, 2035, 86, 2046, 2047, 86, 86, 2042, 2048, + 86, 86, 2040, 2041, 2051, 86, 86, 2044, 86, 86, + 86, 2050, 2056, 86, 2055, 86, 2045, 2049, 86, 86, + 2052, 86, 86, 2060, 2063, 86, 2053, 2061, 86, 2057, + 2054, 2062, 2064, 2058, 2059, 86, 2067, 86, 86, 86, + 86, 86, 86, 86, 2074, 2071, 2065, 86, 86, 86, + 86, 2066, 2076, 2069, 2077, 86, 86, 2078, 86, 2068, + 2070, 86, 2072, 2073, 2075, 2079, 86, 2080, 2083, 2084, - 2079, 86, 86, 86, 86, 2084, 86, 2077, 2083, 2080, - 2111, 2081, 86, 2085, 2086, 86, 2087, 86, 86, 2089, - 2082, 86, 86, 2091, 2088, 86, 86, 2090, 2092, 86, - 86, 86, 86, 2095, 2094, 2093, 86, 2097, 86, 86, - 86, 2101, 86, 2096, 2098, 2100, 86, 86, 2102, 86, - 2099, 2103, 2104, 86, 2106, 86, 2105, 86, 86, 86, - 86, 2113, 86, 86, 86, 2112, 2108, 86, 86, 2107, - 86, 86, 2115, 86, 2118, 86, 2109, 86, 2110, 86, - 2114, 3295, 2116, 86, 2117, 2119, 2120, 2125, 2121, 86, - 2123, 2122, 2124, 86, 86, 2129, 86, 86, 2126, 2127, + 86, 2085, 86, 2086, 2088, 2089, 86, 2081, 2087, 86, + 86, 86, 2082, 86, 86, 2093, 86, 86, 2091, 86, + 86, 86, 86, 2095, 2098, 2100, 2092, 86, 2094, 2096, + 86, 86, 2090, 170, 86, 86, 86, 86, 2101, 2102, + 2106, 2105, 86, 2107, 2099, 2097, 2103, 2108, 86, 2109, + 86, 86, 2111, 86, 2104, 86, 86, 86, 86, 2112, + 2113, 86, 2114, 86, 2117, 86, 2115, 86, 2116, 86, + 2119, 2110, 86, 86, 2123, 86, 86, 2118, 2122, 2120, + 86, 86, 86, 2127, 2121, 2124, 2125, 2126, 2128, 86, + 86, 86, 86, 86, 86, 2135, 2133, 86, 86, 86, - 2130, 86, 86, 2135, 86, 86, 2128, 86, 86, 86, - 86, 2137, 86, 3295, 2138, 2139, 86, 2131, 2132, 2133, - 86, 2134, 2136, 2141, 86, 86, 2142, 86, 2140, 2145, - 86, 2143, 86, 2144, 86, 86, 86, 2146, 86, 2149, - 86, 86, 86, 2150, 86, 86, 86, 86, 86, 86, - 3295, 86, 86, 2152, 2147, 86, 2148, 2153, 2155, 2154, - 86, 2151, 2157, 2162, 2163, 86, 2158, 86, 2156, 2160, - 2164, 2161, 2167, 86, 86, 2165, 2166, 86, 86, 2159, - 2170, 86, 2169, 86, 86, 86, 86, 86, 2172, 86, - 86, 2173, 2178, 86, 2168, 2174, 2176, 86, 86, 2171, + 2130, 86, 2134, 86, 86, 86, 2140, 86, 2137, 86, + 2129, 2131, 86, 2132, 86, 86, 2136, 2141, 2139, 86, + 2145, 2138, 86, 2143, 2146, 2142, 86, 86, 86, 2144, + 86, 2149, 86, 2148, 2147, 2151, 86, 86, 86, 2157, + 2150, 2152, 86, 86, 2153, 86, 2154, 2155, 86, 2159, + 86, 2156, 2160, 2161, 86, 86, 2163, 86, 86, 2158, + 86, 2164, 2167, 2162, 2166, 86, 2165, 86, 86, 86, + 86, 86, 2168, 86, 2171, 86, 86, 86, 2172, 86, + 86, 86, 86, 86, 86, 86, 86, 2174, 2175, 2169, + 2170, 2180, 2173, 2177, 2176, 2179, 2184, 2185, 86, 86, - 2180, 2177, 86, 2175, 2182, 86, 86, 86, 86, 2185, - 86, 2181, 2179, 2184, 86, 2186, 86, 2190, 86, 2187, - 86, 86, 86, 86, 2188, 2191, 86, 86, 2183, 2193, - 86, 2192, 2196, 86, 86, 2197, 2189, 2200, 86, 86, - 2195, 2194, 2198, 86, 2201, 86, 86, 2202, 2206, 86, - 2199, 86, 86, 2208, 2204, 86, 2203, 86, 2209, 86, - 86, 86, 2205, 2207, 2210, 2211, 86, 86, 2215, 2217, - 2213, 86, 86, 2214, 2218, 86, 86, 2212, 86, 86, - 2219, 2222, 86, 86, 2220, 86, 86, 2223, 2216, 86, - 2221, 86, 2224, 86, 2226, 2227, 86, 86, 86, 86, + 86, 86, 2182, 2178, 2181, 86, 2183, 86, 2188, 86, + 86, 86, 2189, 2192, 2191, 86, 86, 2186, 86, 86, + 2187, 2190, 2195, 2194, 86, 2196, 86, 86, 2193, 2200, + 86, 86, 86, 2198, 2202, 2204, 86, 2197, 2199, 86, + 86, 86, 2207, 86, 86, 2203, 2206, 86, 2208, 2201, + 86, 2212, 2209, 86, 86, 2216, 86, 86, 2213, 86, + 2217, 86, 2210, 86, 86, 2205, 86, 2214, 2215, 86, + 2211, 2218, 2221, 86, 86, 2222, 2225, 86, 2219, 2223, + 2220, 86, 86, 86, 86, 2227, 2226, 2231, 86, 2224, + 86, 86, 2229, 86, 2233, 2228, 86, 2234, 86, 86, - 86, 86, 86, 2225, 2228, 2231, 2236, 2229, 86, 2230, - 2233, 2234, 2232, 2237, 86, 86, 86, 86, 86, 86, - 2235, 2239, 2241, 2238, 86, 2242, 2247, 86, 86, 2249, - 86, 86, 2243, 2246, 2240, 86, 2244, 2248, 86, 2251, - 86, 169, 2255, 2252, 2245, 2257, 2258, 2256, 86, 86, - 2250, 86, 86, 2253, 86, 86, 86, 2259, 2262, 86, - 86, 2263, 86, 2254, 2260, 2267, 86, 86, 2268, 2261, - 86, 2266, 2271, 2270, 86, 2264, 86, 2273, 86, 2272, - 2274, 86, 2269, 86, 2276, 86, 2265, 86, 2275, 2277, - 86, 86, 86, 86, 86, 2279, 86, 86, 86, 2282, + 2230, 86, 2232, 86, 2236, 2240, 86, 2235, 86, 2237, + 2238, 2242, 86, 2239, 86, 86, 2243, 86, 86, 86, + 2245, 2244, 86, 2247, 2248, 86, 2246, 2241, 2249, 2252, + 86, 86, 86, 86, 2251, 86, 86, 86, 86, 86, + 86, 86, 2250, 86, 2261, 2262, 86, 2256, 2258, 2253, + 2254, 2255, 2257, 2259, 86, 2263, 86, 86, 2260, 86, + 2264, 86, 2266, 2272, 86, 86, 2267, 86, 2274, 86, + 86, 86, 2268, 2265, 2271, 2276, 2273, 2269, 86, 86, + 170, 86, 2280, 2277, 2282, 2283, 2270, 2281, 86, 2275, + 86, 86, 2278, 86, 86, 86, 2284, 2287, 86, 86, - 86, 86, 2285, 86, 86, 86, 2289, 2278, 2291, 86, - 86, 86, 2280, 2284, 2292, 86, 2287, 86, 2281, 2283, - 2294, 2286, 86, 86, 2288, 86, 2293, 2290, 86, 86, - 86, 2302, 86, 2299, 86, 2297, 86, 86, 86, 86, - 2296, 86, 2300, 2295, 2298, 2303, 86, 86, 2301, 86, - 86, 86, 86, 2304, 3295, 2305, 86, 2317, 86, 2310, - 2308, 2306, 2315, 2307, 2313, 2312, 2314, 2309, 86, 86, - 2311, 2316, 86, 2318, 86, 2319, 86, 86, 86, 86, - 2323, 2324, 86, 86, 86, 2325, 86, 2320, 2326, 86, - 2321, 2322, 2327, 86, 2329, 2330, 86, 2328, 2331, 2332, + 2288, 2286, 2279, 2285, 86, 2292, 86, 86, 2293, 86, + 2296, 86, 2295, 2291, 2289, 86, 86, 86, 2298, 86, + 2297, 2294, 2299, 86, 2300, 2290, 2301, 86, 86, 86, + 86, 2302, 86, 2304, 86, 86, 2306, 86, 86, 2307, + 86, 86, 86, 2310, 86, 86, 2316, 86, 2303, 2314, + 2305, 86, 2309, 86, 86, 2317, 2312, 86, 2308, 2311, + 86, 86, 2313, 86, 86, 2319, 86, 2315, 2318, 2324, + 86, 2327, 86, 2322, 86, 2321, 86, 86, 86, 2325, + 2320, 86, 2323, 86, 2328, 86, 86, 86, 2326, 86, + 86, 86, 86, 2329, 2341, 86, 2330, 2340, 2335, 2342, - 86, 2333, 86, 86, 86, 86, 86, 86, 2334, 2335, - 2339, 86, 2340, 86, 2342, 86, 2336, 86, 2338, 2344, - 86, 86, 86, 2347, 86, 2337, 2341, 2346, 2348, 86, - 86, 86, 86, 86, 86, 2343, 2345, 2354, 86, 2353, - 2350, 86, 2356, 86, 2349, 86, 2351, 86, 86, 86, - 2360, 2359, 2352, 2358, 2362, 86, 86, 86, 86, 86, - 2355, 2366, 86, 2357, 86, 2361, 86, 86, 2371, 86, - 86, 2370, 2364, 86, 86, 2363, 86, 2365, 2373, 2367, - 86, 2369, 2376, 86, 86, 86, 86, 2368, 86, 2372, - 86, 2374, 2378, 86, 2377, 2375, 86, 2383, 2379, 86, + 86, 2331, 2333, 2338, 2337, 2332, 2334, 86, 2336, 2339, + 86, 86, 2343, 2344, 86, 86, 86, 86, 2348, 2349, + 86, 86, 86, 2350, 2345, 2351, 86, 86, 2346, 2347, + 2352, 86, 2354, 2357, 86, 2353, 2355, 2358, 86, 2356, + 86, 86, 86, 86, 86, 2359, 2360, 2364, 86, 2365, + 86, 86, 2367, 86, 86, 86, 2363, 2369, 86, 86, + 2371, 86, 2361, 2362, 2372, 86, 2373, 86, 86, 86, + 2366, 86, 2368, 86, 2370, 2374, 86, 2375, 2378, 2379, + 86, 2381, 86, 2376, 86, 86, 86, 86, 2385, 2384, + 2377, 2383, 2387, 86, 86, 2380, 86, 86, 86, 2390, - 86, 2385, 2384, 2386, 2380, 86, 2381, 86, 86, 86, - 86, 86, 2390, 2391, 86, 86, 2382, 2389, 2387, 2395, - 2388, 86, 86, 2393, 86, 2400, 2397, 2398, 86, 2402, - 86, 86, 2394, 86, 2392, 86, 86, 86, 2403, 2399, - 86, 2396, 2404, 86, 86, 2408, 2407, 86, 86, 2401, - 86, 86, 3295, 2406, 2413, 2405, 2409, 2410, 2412, 2411, - 86, 2414, 86, 86, 86, 2418, 2415, 86, 2419, 86, - 2420, 2416, 2417, 86, 86, 169, 86, 86, 2421, 86, - 2422, 86, 2427, 86, 86, 86, 2429, 86, 86, 86, - 2438, 86, 2425, 2423, 2428, 2424, 2430, 2426, 86, 86, + 86, 86, 2382, 2386, 2393, 86, 86, 86, 86, 2398, + 86, 2389, 2397, 2388, 86, 2391, 86, 2392, 86, 86, + 86, 2394, 2396, 2400, 2403, 86, 86, 86, 86, 2395, + 86, 2401, 86, 2399, 2402, 2405, 86, 2410, 86, 86, + 2404, 2406, 2413, 86, 2407, 2412, 86, 2411, 2408, 86, + 86, 2417, 86, 86, 86, 2418, 86, 2414, 2409, 2415, + 86, 2416, 86, 86, 86, 2422, 2420, 2424, 2425, 86, + 2427, 86, 2429, 3340, 86, 2421, 86, 2419, 86, 2426, + 86, 86, 2423, 86, 86, 2430, 2431, 2433, 86, 86, + 2428, 2434, 2435, 2436, 86, 86, 2432, 86, 2437, 2440, - 2433, 2431, 2432, 86, 2435, 3295, 2434, 86, 2439, 2436, - 2437, 2440, 86, 86, 86, 2443, 2441, 2444, 86, 2442, - 86, 86, 86, 86, 2446, 86, 86, 2445, 86, 2448, - 86, 86, 2452, 2453, 2447, 86, 2450, 86, 2449, 86, - 2455, 86, 86, 86, 86, 2456, 2457, 2458, 86, 2451, - 86, 2454, 86, 2460, 86, 2459, 2464, 86, 2463, 86, - 86, 2461, 2462, 86, 86, 2466, 86, 86, 86, 86, - 2473, 2470, 2465, 86, 2472, 86, 86, 86, 86, 2474, - 2469, 86, 86, 2467, 2468, 86, 2478, 86, 2471, 86, - 86, 2488, 2483, 2475, 2482, 86, 2476, 2477, 86, 2480, + 2441, 2442, 86, 2438, 86, 86, 86, 86, 2445, 2439, + 2446, 86, 2447, 2444, 170, 86, 86, 86, 86, 2449, + 2448, 86, 2443, 2454, 86, 86, 86, 86, 86, 86, + 86, 2462, 86, 2452, 2453, 2450, 2455, 2451, 2456, 2457, + 2470, 2458, 2460, 2459, 86, 86, 86, 2461, 2465, 86, + 86, 2466, 2463, 2467, 86, 86, 86, 2464, 2468, 2471, + 86, 2469, 2473, 86, 86, 86, 86, 2475, 86, 2472, + 86, 86, 86, 2479, 86, 2480, 86, 86, 2474, 86, + 2476, 86, 2482, 2483, 2477, 2487, 86, 86, 2481, 2484, + 2478, 2485, 86, 86, 86, 86, 2488, 86, 2486, 2490, - 86, 2481, 86, 2479, 2485, 86, 86, 86, 2484, 2487, - 2489, 86, 2491, 86, 2486, 2493, 86, 2492, 2495, 86, - 86, 86, 2497, 86, 86, 86, 86, 86, 2494, 2496, - 86, 2501, 2490, 86, 86, 86, 2505, 86, 2503, 2499, - 2504, 2507, 2498, 2500, 2506, 86, 86, 86, 86, 2508, - 2509, 86, 86, 86, 2514, 86, 2502, 2511, 86, 86, - 2516, 86, 2519, 86, 86, 2513, 86, 2515, 2510, 86, - 2512, 86, 2520, 86, 2523, 86, 2518, 2517, 2524, 86, - 2525, 86, 86, 2521, 86, 86, 2529, 86, 86, 2522, - 2528, 2527, 86, 86, 86, 86, 2536, 86, 2533, 2526, + 2491, 86, 86, 86, 86, 86, 86, 2493, 86, 2500, + 2492, 86, 2497, 86, 2489, 86, 2499, 86, 86, 2496, + 86, 86, 86, 2494, 2495, 2505, 2498, 2501, 86, 86, + 86, 2502, 2510, 86, 3340, 2509, 2503, 2504, 86, 86, + 2507, 2511, 86, 2506, 2512, 2508, 86, 86, 2513, 86, + 2515, 86, 86, 2518, 2516, 86, 2520, 86, 86, 2519, + 2514, 86, 86, 2522, 86, 2524, 86, 2523, 86, 2521, + 86, 86, 86, 2517, 86, 86, 2528, 86, 86, 2525, + 2530, 86, 2526, 2531, 2532, 86, 2527, 2533, 86, 2534, + 86, 2535, 86, 2536, 86, 86, 2537, 2538, 2529, 86, - 2535, 2530, 2531, 86, 2532, 2537, 86, 2538, 86, 2539, - 86, 86, 86, 86, 2534, 2540, 86, 2542, 86, 2543, - 86, 2544, 86, 86, 86, 2545, 2549, 86, 2546, 2541, - 2551, 86, 2552, 86, 86, 86, 86, 86, 86, 2548, - 86, 86, 2547, 2550, 2555, 2553, 2558, 2554, 2556, 86, - 2561, 86, 86, 86, 86, 86, 86, 86, 2557, 86, - 2559, 2562, 86, 169, 86, 2569, 86, 86, 2565, 2560, - 86, 2567, 86, 86, 2564, 2568, 2570, 2571, 3295, 2563, - 2566, 2572, 2575, 86, 86, 86, 2576, 2577, 2573, 2578, - 2579, 2580, 86, 86, 2574, 2581, 86, 86, 2582, 86, + 2539, 86, 2540, 2543, 86, 86, 2541, 86, 86, 2545, + 2548, 86, 86, 2542, 2544, 86, 86, 86, 86, 2549, + 86, 2552, 86, 2547, 86, 2546, 2553, 86, 86, 2554, + 86, 2550, 2558, 86, 86, 2551, 2555, 2556, 2557, 86, + 86, 86, 2563, 86, 86, 86, 2562, 2624, 2559, 2564, + 2565, 86, 2561, 2560, 2566, 86, 2567, 86, 2568, 86, + 86, 2570, 86, 86, 2572, 86, 2573, 2571, 86, 86, + 86, 86, 2569, 2578, 86, 86, 2580, 86, 2581, 86, + 2574, 2575, 86, 86, 86, 86, 86, 2577, 86, 86, + 2576, 2584, 86, 2582, 2579, 2583, 86, 2585, 2590, 86, - 2583, 86, 2584, 86, 86, 86, 86, 86, 86, 86, - 86, 2585, 86, 86, 2586, 2595, 86, 86, 86, 2593, - 2588, 86, 86, 2587, 86, 2590, 2589, 86, 2599, 2592, - 2591, 2603, 2594, 2600, 86, 2597, 2596, 86, 2601, 2598, - 2602, 2604, 86, 2606, 86, 86, 2605, 86, 86, 86, - 86, 86, 86, 86, 86, 2609, 2615, 86, 2616, 86, - 86, 86, 86, 2607, 2610, 2608, 2622, 2619, 2611, 2612, - 2613, 2614, 86, 2617, 2620, 86, 2621, 86, 2618, 86, - 2623, 86, 86, 86, 86, 86, 86, 86, 2627, 2631, - 86, 2630, 2632, 86, 2624, 86, 2626, 2633, 2634, 86, + 86, 2587, 86, 86, 86, 86, 2586, 86, 2588, 2589, + 170, 2591, 86, 2598, 86, 86, 2594, 86, 2592, 2596, + 2593, 86, 2597, 2599, 86, 2602, 86, 86, 2595, 2605, + 2600, 86, 2601, 86, 2609, 86, 2607, 86, 2608, 2610, + 86, 2606, 86, 2603, 86, 2611, 86, 2604, 86, 2612, + 86, 2613, 86, 2615, 86, 2614, 86, 86, 86, 86, + 86, 86, 86, 86, 2628, 2616, 86, 2617, 86, 2622, + 2629, 86, 86, 86, 2618, 2619, 2626, 86, 2620, 2621, + 86, 2623, 2625, 86, 2627, 86, 2630, 2633, 86, 2632, + 2631, 2636, 2634, 2635, 86, 2637, 86, 86, 86, 86, - 2625, 86, 86, 86, 2628, 2629, 86, 86, 86, 2635, - 2636, 86, 2640, 86, 86, 2638, 86, 2644, 2645, 86, - 86, 2637, 2648, 86, 86, 86, 2639, 86, 2641, 2649, - 2642, 2646, 86, 2643, 2652, 86, 2651, 86, 2647, 2650, - 2653, 86, 86, 2657, 86, 86, 86, 86, 2661, 86, - 86, 2660, 2654, 2663, 86, 2659, 86, 2658, 86, 86, - 86, 2655, 2656, 2664, 86, 2665, 2668, 86, 86, 2662, - 86, 2669, 2667, 2671, 86, 2666, 86, 86, 86, 86, - 86, 2672, 2676, 86, 2678, 86, 2670, 2674, 2675, 2673, - 86, 86, 2677, 86, 2681, 2679, 2680, 86, 2682, 86, + 2639, 86, 86, 2638, 2644, 86, 2645, 86, 86, 2649, + 86, 2650, 86, 86, 2651, 2640, 2641, 2642, 2643, 2648, + 86, 86, 2646, 86, 86, 86, 2647, 86, 86, 86, + 2656, 86, 86, 86, 2660, 2662, 2659, 86, 2653, 2652, + 86, 2655, 86, 2654, 2661, 86, 2663, 86, 2657, 2658, + 86, 2665, 86, 86, 86, 86, 2664, 86, 2669, 2666, + 86, 86, 2667, 2673, 2674, 86, 86, 2677, 86, 86, + 86, 86, 2668, 86, 2670, 2672, 2671, 2680, 86, 2676, + 2678, 2675, 2682, 2683, 86, 2679, 2681, 86, 86, 86, + 86, 2688, 86, 86, 86, 86, 2692, 86, 2691, 86, - 86, 86, 86, 86, 86, 2683, 86, 86, 2688, 2685, - 2686, 2689, 2691, 86, 2692, 86, 2687, 86, 2684, 2690, - 2693, 169, 86, 86, 2694, 2696, 2698, 2695, 86, 86, - 2700, 86, 86, 2699, 86, 2703, 86, 2704, 86, 2702, - 86, 2697, 2706, 86, 86, 2708, 2701, 2707, 86, 86, - 2709, 86, 86, 2705, 2710, 2713, 86, 2711, 86, 86, - 2714, 86, 2712, 2715, 86, 86, 86, 86, 2716, 2720, - 2721, 86, 2722, 2718, 86, 86, 86, 86, 86, 2717, - 86, 2724, 2725, 2723, 86, 86, 86, 2719, 2726, 2728, - 2727, 2729, 86, 86, 86, 86, 2734, 86, 2730, 86, + 2684, 2694, 86, 2685, 2690, 2689, 86, 86, 86, 2686, + 2687, 2695, 86, 86, 2699, 86, 2696, 86, 2693, 86, + 2700, 2702, 86, 86, 2697, 2698, 86, 86, 86, 86, + 2703, 2707, 86, 86, 2701, 2705, 2704, 2706, 2709, 86, + 86, 86, 2708, 2712, 86, 2710, 2711, 86, 86, 2713, + 86, 86, 2715, 86, 86, 2714, 86, 2716, 2717, 2719, + 86, 2720, 2722, 86, 2723, 86, 2718, 2725, 2721, 2724, + 170, 86, 86, 86, 2729, 3340, 2726, 86, 86, 2731, + 86, 86, 2730, 86, 2734, 86, 2735, 86, 2733, 86, + 2727, 2728, 2737, 86, 86, 2739, 2732, 2738, 86, 86, - 86, 2737, 2732, 2733, 86, 2731, 2735, 86, 86, 86, - 2738, 86, 2742, 86, 86, 86, 2743, 2736, 86, 2739, - 86, 2747, 86, 86, 2745, 86, 86, 86, 2740, 86, - 2741, 2751, 3295, 2744, 2759, 2746, 2754, 2748, 2749, 2752, - 86, 2755, 86, 2756, 86, 2750, 86, 86, 86, 86, - 86, 2753, 2757, 86, 2758, 86, 86, 2760, 2763, 2762, - 86, 2765, 86, 2761, 2767, 86, 2768, 86, 2769, 86, - 86, 2764, 86, 86, 2770, 2772, 86, 2771, 86, 86, - 2766, 2776, 86, 2774, 86, 2779, 2777, 86, 2780, 86, - 86, 2775, 86, 2773, 2781, 86, 86, 86, 86, 2782, + 2740, 86, 2736, 2741, 2742, 86, 2744, 86, 86, 86, + 86, 2745, 86, 2746, 86, 86, 86, 2751, 2747, 2743, + 2752, 2753, 2749, 86, 86, 2748, 86, 86, 86, 86, + 86, 2755, 2757, 2756, 86, 86, 2750, 86, 86, 2754, + 2759, 86, 2758, 2760, 86, 86, 86, 2765, 86, 2768, + 2762, 86, 2761, 2763, 2764, 86, 86, 2766, 86, 2767, + 86, 86, 2769, 2773, 86, 86, 86, 86, 2774, 86, + 2770, 2778, 86, 86, 86, 2776, 86, 86, 2771, 2772, + 2782, 2785, 2777, 3340, 2775, 2783, 86, 86, 2779, 2780, + 2786, 2787, 86, 2781, 2788, 86, 86, 86, 86, 86, - 2786, 86, 2778, 2783, 86, 2787, 2788, 86, 2790, 86, - 2784, 86, 86, 2789, 86, 2794, 86, 2785, 2795, 86, - 2796, 86, 86, 86, 2791, 86, 2797, 86, 2793, 86, - 2792, 2798, 86, 2803, 86, 2802, 2806, 86, 2805, 86, - 86, 86, 86, 2800, 86, 2799, 2807, 2801, 2808, 86, - 2804, 86, 2809, 86, 2811, 86, 2812, 86, 2815, 86, - 86, 2813, 2814, 2819, 86, 86, 86, 2810, 2821, 86, - 86, 86, 2826, 86, 2818, 2816, 2822, 2827, 86, 2817, - 2820, 2825, 2828, 2823, 2831, 86, 86, 2829, 86, 2824, - 2830, 86, 2832, 86, 2833, 86, 2834, 86, 2835, 86, + 2789, 86, 2784, 2790, 2793, 86, 86, 86, 2791, 2794, + 86, 2795, 86, 86, 2792, 86, 2798, 2800, 86, 2796, + 2801, 86, 2802, 86, 86, 86, 86, 2797, 2803, 86, + 2804, 2799, 2805, 86, 2807, 86, 2809, 86, 86, 2812, + 86, 2810, 86, 2813, 86, 86, 2806, 2808, 2814, 86, + 86, 86, 86, 2815, 2819, 86, 86, 2811, 2816, 86, + 2818, 86, 2820, 2821, 86, 2823, 86, 2822, 86, 2817, + 2827, 86, 2824, 86, 2825, 2829, 86, 2828, 86, 2830, + 86, 86, 2826, 86, 2831, 86, 2836, 86, 86, 2835, + 86, 86, 86, 2840, 2838, 86, 2832, 2839, 86, 2841, - 86, 86, 2836, 86, 2837, 86, 86, 86, 2840, 86, - 86, 2842, 2846, 86, 2847, 86, 2843, 86, 86, 86, - 2838, 2848, 2850, 86, 2841, 86, 2851, 2839, 86, 2844, - 2845, 2852, 86, 2853, 2855, 2849, 2854, 86, 86, 86, - 86, 2859, 86, 86, 86, 86, 86, 2856, 2857, 2860, - 2863, 86, 2861, 86, 86, 2864, 86, 86, 2858, 2862, - 86, 2867, 2866, 86, 2865, 2868, 2869, 86, 2870, 86, - 86, 2872, 2873, 86, 86, 86, 86, 2871, 86, 2874, - 2879, 86, 86, 86, 2877, 2875, 86, 2882, 2883, 86, - 2880, 86, 2884, 86, 2887, 86, 2878, 2888, 2885, 2876, + 2833, 2834, 86, 86, 86, 2842, 2844, 86, 2845, 86, + 86, 86, 2837, 86, 2848, 2852, 86, 86, 86, 86, + 2843, 2846, 2847, 86, 2864, 86, 2854, 2851, 2849, 86, + 86, 2850, 2853, 2856, 2855, 2859, 2857, 2858, 2861, 86, + 2860, 86, 86, 2862, 86, 86, 2865, 86, 2866, 2863, + 86, 2867, 86, 2868, 86, 2869, 86, 86, 86, 2870, + 86, 86, 2871, 2873, 86, 2875, 86, 2879, 86, 86, + 2876, 2880, 86, 86, 86, 86, 2874, 2881, 2883, 86, + 2884, 86, 2872, 2958, 2877, 86, 2878, 2882, 2885, 86, + 2886, 2887, 86, 86, 86, 86, 2892, 86, 86, 2891, - 2886, 86, 2881, 2889, 86, 2890, 86, 2891, 86, 86, - 2892, 86, 86, 2896, 86, 86, 86, 2895, 86, 86, - 2897, 2898, 2899, 86, 86, 86, 86, 2905, 86, 2893, - 2894, 2903, 2900, 86, 2907, 86, 2901, 86, 86, 2902, - 86, 2908, 86, 2904, 86, 2909, 86, 2910, 86, 2911, - 86, 2916, 86, 2906, 86, 86, 86, 2912, 86, 2913, - 2919, 2914, 86, 86, 86, 86, 2925, 2917, 2918, 86, - 2915, 2920, 2923, 86, 2921, 86, 86, 86, 2924, 2929, - 86, 86, 2922, 86, 2926, 2931, 86, 2927, 2932, 86, - 2934, 86, 86, 86, 86, 86, 2930, 2935, 86, 2938, + 86, 86, 2888, 2889, 2890, 2893, 86, 2894, 86, 2898, + 86, 86, 86, 86, 2899, 86, 86, 2896, 2903, 2895, + 2902, 2901, 86, 2897, 2900, 2904, 86, 2905, 86, 86, + 86, 86, 86, 86, 86, 2907, 2906, 86, 2914, 2909, + 86, 86, 2912, 2910, 86, 86, 2917, 2908, 3340, 2915, + 2918, 86, 2919, 86, 2913, 86, 86, 2911, 2924, 86, + 2921, 2916, 2920, 86, 2922, 2925, 86, 2923, 2926, 86, + 86, 86, 86, 86, 2931, 86, 2928, 2930, 2932, 2927, + 86, 86, 2934, 86, 86, 86, 2933, 86, 2940, 86, + 2929, 86, 2938, 2935, 86, 86, 2936, 2942, 86, 2943, - 2939, 86, 2928, 86, 2933, 86, 2943, 86, 2936, 2937, - 86, 2946, 86, 86, 2948, 2940, 86, 86, 86, 86, - 86, 2941, 2942, 2949, 2944, 86, 2945, 2951, 86, 2952, - 86, 2954, 86, 2947, 86, 2959, 2956, 2953, 2950, 2958, - 86, 86, 86, 2957, 86, 2963, 86, 86, 86, 2965, - 2964, 2955, 86, 86, 2961, 2968, 2969, 86, 86, 2960, - 86, 86, 2971, 2970, 2962, 2966, 86, 86, 86, 2974, - 86, 2973, 2967, 86, 2977, 86, 2972, 86, 2975, 86, - 86, 2980, 86, 86, 86, 86, 2976, 2985, 86, 2981, - 86, 86, 2978, 2979, 2989, 86, 86, 2982, 2984, 86, + 86, 86, 2946, 86, 86, 2944, 2937, 2939, 2945, 86, + 86, 86, 2951, 86, 86, 86, 2941, 86, 86, 86, + 86, 2954, 86, 2947, 2948, 2949, 86, 2952, 2953, 2955, + 86, 2950, 86, 2960, 2956, 2959, 86, 86, 2957, 86, + 2962, 2964, 86, 2966, 86, 2961, 2967, 86, 2969, 86, + 86, 86, 2963, 86, 86, 86, 2965, 2974, 86, 2973, + 2968, 86, 2977, 86, 86, 86, 2970, 2971, 86, 2972, + 2976, 86, 2980, 86, 86, 2975, 2983, 86, 2985, 2981, + 86, 86, 86, 2979, 86, 2986, 2978, 2988, 86, 2989, + 86, 86, 2982, 86, 2984, 2991, 86, 86, 86, 2996, - 2988, 2990, 86, 2986, 2991, 86, 2987, 86, 2983, 86, - 2992, 86, 2993, 2994, 86, 2995, 86, 2996, 86, 2999, - 86, 86, 2997, 3001, 86, 86, 3000, 86, 86, 86, - 3002, 2998, 86, 3006, 3007, 86, 86, 86, 3011, 86, - 3012, 86, 3003, 3008, 86, 3013, 3010, 86, 86, 3004, - 3005, 86, 86, 3016, 3017, 86, 3009, 3018, 86, 86, - 86, 3021, 86, 86, 3014, 3019, 3015, 86, 3024, 86, - 86, 3023, 3026, 3020, 3022, 3025, 86, 86, 86, 86, - 86, 86, 3028, 86, 86, 3030, 86, 86, 3031, 86, - 3029, 86, 86, 86, 86, 3043, 3027, 3040, 3041, 86, + 2994, 86, 2990, 2987, 2993, 86, 86, 3000, 86, 86, + 2998, 86, 3001, 86, 3002, 2992, 86, 2995, 3005, 86, + 2997, 3006, 86, 3003, 86, 86, 2999, 3008, 3007, 86, + 3011, 86, 86, 86, 3010, 86, 3004, 3009, 3014, 86, + 3012, 3017, 86, 86, 86, 86, 86, 86, 3022, 86, + 86, 3013, 86, 86, 86, 3018, 3015, 3016, 3026, 86, + 3021, 86, 3025, 3019, 3027, 86, 3028, 86, 3024, 3023, + 86, 3020, 3031, 86, 86, 3030, 3032, 86, 3033, 86, + 3035, 3029, 3036, 86, 86, 3038, 86, 3034, 86, 3037, + 86, 86, 86, 86, 3043, 3044, 86, 86, 86, 86, - 3032, 86, 3036, 3033, 3034, 3035, 3037, 3038, 86, 86, - 3048, 86, 3039, 3044, 3042, 86, 3049, 86, 3046, 3045, - 86, 86, 3047, 86, 3050, 3051, 86, 3295, 3052, 3054, - 86, 3055, 86, 3056, 3057, 86, 86, 86, 3058, 3059, - 3053, 86, 3060, 3061, 86, 86, 3063, 86, 3062, 86, - 86, 3065, 86, 3064, 3069, 86, 86, 3068, 86, 86, - 86, 86, 86, 3072, 86, 3071, 86, 3077, 3086, 3066, - 3067, 3073, 86, 3076, 86, 3074, 3078, 86, 86, 3075, - 86, 3070, 3079, 86, 86, 3081, 3084, 3080, 86, 86, - 86, 3085, 86, 3082, 86, 3090, 3083, 86, 3295, 3091, + 86, 86, 3039, 3050, 86, 3051, 86, 86, 3340, 3049, + 3052, 86, 3040, 3041, 3042, 3047, 86, 3046, 86, 3048, + 86, 3056, 86, 3045, 86, 3055, 86, 3053, 3057, 86, + 3054, 3058, 3059, 3060, 86, 86, 3061, 3063, 86, 86, + 3064, 86, 3062, 86, 86, 86, 86, 86, 86, 3067, + 86, 86, 3069, 86, 86, 3070, 86, 3068, 86, 86, + 86, 3065, 86, 3066, 3079, 3080, 86, 3071, 3340, 3075, + 3072, 3073, 3074, 3076, 3077, 3082, 86, 86, 86, 3078, + 3085, 86, 3081, 3083, 3087, 86, 3084, 3088, 86, 3086, + 86, 3090, 86, 86, 3089, 86, 3093, 86, 3091, 3094, - 3093, 86, 3094, 3087, 3088, 86, 3096, 86, 86, 3089, - 86, 3095, 3097, 86, 86, 86, 3092, 3100, 86, 3099, - 3101, 86, 3103, 86, 3102, 3098, 3104, 86, 3105, 86, - 3106, 86, 3107, 86, 3108, 86, 3109, 86, 86, 3111, - 86, 86, 86, 86, 86, 86, 86, 3110, 3116, 86, - 3112, 86, 86, 86, 3113, 86, 3120, 86, 3119, 3117, - 3122, 86, 86, 3114, 3115, 3118, 3121, 86, 86, 3126, - 3124, 3123, 86, 3129, 86, 3128, 86, 86, 86, 86, - 3127, 3131, 86, 3125, 86, 86, 86, 86, 3130, 3137, - 3135, 86, 86, 86, 3134, 3136, 3132, 86, 86, 86, + 86, 3095, 3096, 86, 86, 3097, 3098, 3101, 86, 3099, + 3100, 86, 86, 86, 3092, 86, 3102, 3104, 86, 86, + 86, 86, 3103, 86, 3110, 86, 86, 86, 3109, 86, + 86, 3113, 86, 3105, 3106, 86, 3112, 86, 3340, 3107, + 86, 3108, 86, 3118, 3114, 3115, 3117, 3119, 86, 86, + 3116, 3111, 3120, 86, 3122, 3121, 86, 3125, 3127, 86, + 86, 86, 3126, 86, 86, 3123, 86, 86, 3124, 86, + 3135, 3131, 3132, 3134, 86, 3129, 86, 86, 3137, 86, + 3138, 86, 3130, 3136, 3128, 86, 86, 86, 3133, 3141, + 86, 3140, 3142, 86, 3144, 86, 3143, 3145, 86, 86, - 3133, 3140, 3138, 3142, 86, 3141, 3143, 86, 3144, 86, - 86, 86, 86, 3149, 86, 3147, 3145, 3139, 86, 3146, - 3150, 86, 86, 3152, 3153, 3151, 86, 3155, 86, 86, - 86, 86, 3148, 86, 86, 86, 3154, 86, 86, 86, - 86, 3156, 3164, 3162, 86, 3166, 3159, 86, 3157, 3158, - 3161, 3163, 3168, 86, 86, 3171, 86, 86, 3160, 3165, - 3173, 86, 86, 3174, 3167, 86, 3172, 3169, 3175, 86, - 3176, 86, 86, 86, 3170, 86, 3179, 86, 86, 86, - 3180, 3184, 3181, 86, 3177, 86, 86, 86, 3188, 86, - 3187, 86, 3178, 86, 3183, 3190, 86, 3185, 3186, 3191, + 3139, 3146, 86, 3147, 86, 3148, 86, 3149, 86, 3150, + 86, 3151, 86, 86, 3154, 86, 86, 86, 86, 86, + 86, 86, 3153, 3159, 86, 3152, 3155, 86, 3156, 86, + 3163, 86, 86, 3162, 3160, 3165, 86, 86, 3157, 3158, + 3161, 86, 86, 3169, 3167, 86, 3164, 86, 3171, 3172, + 3166, 86, 86, 86, 86, 86, 3174, 86, 86, 86, + 86, 86, 86, 3168, 3178, 3170, 3173, 86, 3179, 86, + 3177, 3180, 3175, 86, 3183, 3176, 3181, 86, 86, 86, + 3184, 3186, 86, 3187, 86, 3189, 3182, 3188, 86, 86, + 86, 3185, 86, 3192, 3191, 86, 86, 86, 3190, 3197, - 86, 86, 86, 3182, 3194, 86, 86, 86, 3192, 3197, - 86, 3189, 86, 3198, 86, 3199, 3201, 3195, 86, 3202, - 3193, 86, 86, 86, 3196, 86, 86, 3207, 86, 3208, - 86, 3206, 3203, 3200, 3204, 86, 86, 86, 86, 86, - 86, 86, 3205, 3212, 86, 3214, 86, 86, 86, 86, - 3211, 86, 3219, 86, 3220, 86, 3209, 3210, 3213, 3216, - 3215, 3217, 3227, 3218, 3221, 86, 3225, 86, 86, 86, - 86, 3222, 3224, 3223, 3226, 86, 3228, 86, 86, 86, - 3233, 86, 3229, 3230, 3231, 86, 86, 3234, 86, 3232, - 3235, 3236, 86, 86, 86, 86, 86, 3237, 3242, 86, + 3196, 86, 3194, 86, 3199, 86, 3193, 3195, 86, 86, + 86, 86, 86, 86, 86, 86, 3198, 86, 3200, 86, + 3208, 3206, 3210, 3211, 86, 3203, 86, 3201, 3202, 3205, + 86, 3207, 86, 86, 3209, 3213, 3204, 3216, 86, 86, + 3218, 86, 86, 3219, 3220, 86, 3212, 3214, 3217, 3221, + 86, 86, 3215, 86, 86, 86, 86, 3224, 86, 86, + 3225, 3226, 3229, 86, 86, 86, 86, 86, 86, 86, + 3222, 3232, 3340, 3223, 3228, 86, 3231, 3230, 3233, 86, + 3235, 86, 3237, 3227, 86, 3234, 3236, 86, 3238, 3239, + 86, 3242, 86, 3241, 86, 3243, 86, 86, 86, 3240, - 3238, 3239, 86, 86, 86, 86, 3245, 3246, 86, 86, - 86, 86, 86, 86, 3240, 3241, 3244, 3249, 3243, 3247, - 86, 3250, 3248, 86, 3252, 86, 3253, 86, 3251, 86, - 3257, 86, 3254, 3255, 86, 3259, 86, 3260, 86, 3256, - 86, 86, 3258, 3261, 3264, 86, 3265, 3262, 86, 86, - 3263, 3266, 3267, 86, 86, 3268, 86, 86, 86, 3273, - 86, 3269, 3271, 86, 86, 86, 86, 86, 86, 3275, - 3276, 86, 3279, 3280, 86, 3270, 86, 3272, 86, 3283, - 3284, 86, 3274, 86, 86, 3277, 3278, 3281, 3286, 86, - 3285, 3287, 86, 86, 86, 3282, 86, 86, 3295, 3289, + 3246, 3247, 86, 86, 3244, 86, 86, 86, 3252, 86, + 3251, 86, 3248, 3253, 86, 3249, 3245, 86, 86, 86, + 86, 86, 3250, 86, 3257, 86, 3259, 86, 86, 86, + 86, 86, 3254, 3256, 3264, 3265, 86, 3255, 3258, 86, + 3261, 3262, 3260, 3272, 3263, 3266, 86, 3270, 86, 86, + 86, 3267, 86, 3273, 3268, 3271, 86, 86, 3269, 86, + 86, 3274, 3275, 3278, 3276, 3279, 86, 86, 86, 86, + 3281, 86, 3280, 86, 86, 86, 86, 3282, 3287, 3277, + 86, 3284, 86, 86, 86, 86, 3290, 3283, 3291, 86, + 86, 86, 86, 86, 3285, 3286, 3289, 3294, 86, 3288, - 3288, 3290, 3295, 3291, 3293, 86, 3294, 86, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3292, 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, 3295, 89, - 89, 89, 89, 159, 159, 3295, 3295, 3295, 159, 159, - 161, 161, 3295, 3295, 161, 3295, 161, 163, 3295, 3295, - 3295, 3295, 3295, 163, 166, 166, 3295, 3295, 3295, 166, + 3292, 3295, 86, 3293, 86, 3298, 3297, 3299, 86, 3296, + 86, 3300, 86, 3302, 86, 3304, 86, 3305, 86, 86, + 86, 3309, 86, 3306, 3340, 86, 3307, 3312, 86, 3303, + 3310, 86, 86, 3311, 3301, 86, 86, 86, 86, 3308, + 86, 86, 3313, 3314, 86, 3316, 3318, 86, 86, 3320, + 86, 3315, 86, 3321, 86, 3324, 3317, 3319, 3325, 86, + 3322, 86, 86, 3328, 3329, 86, 86, 3331, 86, 3323, + 86, 3326, 86, 3330, 3332, 86, 86, 3333, 86, 86, + 3327, 3334, 3340, 3335, 3338, 86, 3339, 86, 3340, 3340, + 3340, 3336, 3340, 3340, 3340, 3340, 3340, 3340, 3337, 47, - 166, 168, 3295, 3295, 3295, 3295, 3295, 168, 170, 170, - 3295, 170, 170, 170, 170, 173, 3295, 3295, 3295, 3295, - 3295, 173, 176, 176, 3295, 3295, 3295, 176, 176, 90, - 90, 3295, 90, 90, 90, 90, 17, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295 + 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, + 3340, 89, 89, 89, 89, 160, 160, 3340, 3340, 3340, + 160, 160, 162, 162, 3340, 3340, 162, 3340, 162, 164, + 3340, 3340, 3340, 3340, 3340, 164, 167, 167, 3340, 3340, + 3340, 167, 167, 169, 3340, 3340, 3340, 3340, 3340, 169, + 171, 171, 3340, 171, 171, 171, 171, 174, 3340, 3340, + + 3340, 3340, 3340, 174, 177, 177, 3340, 3340, 3340, 177, + 177, 90, 90, 3340, 90, 90, 90, 90, 17, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340 } ; -static const flex_int16_t yy_chk[6478] = +static const flex_int16_t yy_chk[6560] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2234,710 +2255,719 @@ static const flex_int16_t yy_chk[6478] = 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, 3303, 35, + 10, 10, 19, 29, 9, 33, 19, 29, 3348, 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, 2693, 16, + 16, 23, 23, 25, 27, 27, 25, 25, 2724, 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, 1086, 32, 36, 36, 37, 37, - 28, 45, 45, 37, 176, 36, 45, 39, 41, 41, + 28, 92, 31, 32, 1097, 32, 36, 36, 37, 37, + 28, 45, 45, 37, 97, 36, 45, 97, 41, 41, - 45, 36, 39, 41, 87, 36, 39, 37, 87, 37, - 84, 84, 39, 41, 41, 39, 41, 93, 42, 95, - 96, 93, 39, 42, 43, 43, 42, 43, 94, 97, - 44, 95, 97, 42, 44, 94, 43, 42, 42, 113, - 96, 115, 43, 113, 44, 175, 115, 124, 44, 44, - 62, 124, 62, 62, 70, 62, 70, 70, 72, 70, - 72, 72, 79, 72, 79, 79, 70, 79, 86, 103, - 86, 86, 89, 86, 89, 89, 100, 89, 98, 86, - 104, 98, 101, 89, 89, 100, 102, 103, 103, 105, - 107, 106, 102, 108, 98, 109, 101, 106, 102, 111, + 45, 36, 87, 41, 93, 36, 87, 37, 93, 37, + 39, 39, 42, 41, 41, 39, 41, 42, 96, 39, + 42, 43, 43, 105, 43, 39, 44, 42, 39, 101, + 44, 42, 42, 43, 94, 39, 84, 84, 96, 43, + 44, 94, 105, 101, 44, 44, 62, 192, 62, 62, + 70, 62, 70, 70, 72, 70, 72, 72, 79, 72, + 79, 79, 70, 79, 86, 95, 86, 86, 89, 86, + 89, 89, 192, 89, 100, 86, 102, 95, 98, 89, + 89, 98, 102, 100, 103, 104, 106, 107, 102, 113, + 102, 109, 106, 113, 98, 108, 111, 140, 114, 112, - 102, 110, 104, 112, 107, 114, 173, 108, 105, 116, - 106, 119, 110, 110, 122, 109, 117, 111, 118, 117, - 110, 112, 117, 116, 118, 114, 120, 126, 123, 130, - 119, 120, 125, 122, 121, 117, 117, 121, 122, 125, - 126, 121, 123, 118, 128, 127, 129, 131, 133, 130, - 132, 120, 127, 128, 132, 134, 135, 121, 137, 129, - 134, 136, 136, 140, 134, 131, 133, 138, 139, 141, - 168, 138, 143, 146, 146, 144, 135, 150, 137, 142, - 138, 144, 142, 139, 145, 143, 138, 148, 141, 140, - 149, 146, 147, 142, 146, 151, 145, 142, 150, 147, + 177, 107, 103, 103, 110, 106, 116, 104, 115, 108, + 119, 109, 140, 115, 111, 110, 110, 112, 114, 117, + 116, 118, 117, 110, 122, 117, 120, 118, 123, 119, + 121, 120, 124, 121, 125, 130, 124, 121, 117, 117, + 127, 125, 123, 122, 126, 128, 118, 127, 122, 129, + 132, 120, 131, 121, 128, 130, 131, 126, 134, 133, + 135, 136, 129, 133, 138, 135, 137, 137, 132, 135, + 139, 141, 142, 144, 139, 256, 134, 256, 146, 150, + 151, 136, 143, 139, 138, 143, 144, 145, 149, 139, + 146, 142, 148, 145, 147, 147, 143, 141, 150, 148, - 153, 154, 152, 148, 152, 155, 154, 158, 156, 149, - 147, 151, 153, 152, 157, 160, 160, 155, 180, 157, - 162, 158, 254, 162, 254, 152, 156, 164, 172, 164, - 164, 172, 164, 167, 167, 169, 180, 169, 169, 170, - 169, 170, 170, 174, 170, 174, 174, 178, 174, 177, - 177, 170, 178, 179, 181, 182, 183, 184, 185, 179, - 186, 187, 188, 182, 189, 184, 187, 183, 179, 181, - 182, 191, 190, 189, 194, 186, 192, 185, 190, 190, - 194, 192, 188, 193, 193, 195, 198, 195, 196, 202, - 195, 199, 196, 197, 197, 200, 191, 196, 198, 201, + 143, 151, 152, 153, 149, 153, 155, 154, 156, 157, + 148, 155, 147, 226, 153, 147, 158, 159, 152, 154, + 156, 158, 161, 161, 179, 163, 153, 157, 163, 179, + 165, 159, 165, 165, 226, 165, 168, 168, 170, 181, + 170, 170, 171, 170, 171, 171, 173, 171, 175, 173, + 175, 175, 180, 175, 171, 178, 178, 181, 180, 182, + 183, 184, 185, 186, 187, 189, 188, 180, 183, 190, + 185, 188, 184, 212, 182, 183, 193, 191, 190, 187, + 176, 193, 186, 191, 191, 189, 194, 194, 195, 197, + 196, 212, 196, 197, 195, 196, 198, 198, 197, 199, - 200, 202, 196, 203, 201, 204, 207, 195, 196, 196, - 199, 204, 205, 206, 208, 209, 205, 210, 206, 211, - 212, 213, 207, 203, 216, 212, 213, 217, 208, 210, - 209, 166, 210, 215, 204, 214, 214, 211, 215, 214, - 218, 214, 222, 217, 216, 220, 218, 219, 219, 225, - 221, 220, 223, 214, 224, 214, 221, 220, 223, 226, - 224, 227, 222, 232, 229, 226, 227, 228, 229, 224, - 225, 230, 231, 228, 233, 234, 232, 230, 235, 231, - 233, 236, 237, 238, 235, 241, 239, 243, 240, 242, - 237, 239, 246, 244, 236, 234, 238, 240, 244, 244, + 200, 201, 202, 197, 203, 204, 201, 202, 205, 197, + 197, 199, 196, 206, 205, 207, 203, 206, 208, 200, + 207, 209, 213, 210, 211, 204, 214, 213, 216, 217, + 551, 214, 218, 216, 208, 209, 211, 205, 210, 211, + 215, 215, 220, 220, 215, 219, 215, 221, 218, 217, + 222, 219, 223, 221, 551, 224, 222, 227, 215, 221, + 215, 224, 225, 227, 228, 229, 230, 231, 225, 228, + 230, 229, 223, 231, 232, 234, 233, 225, 235, 236, + 237, 232, 233, 238, 235, 239, 237, 240, 234, 241, + 245, 243, 242, 239, 241, 244, 238, 246, 248, 236, - 241, 245, 248, 236, 247, 242, 245, 243, 247, 249, - 246, 250, 251, 252, 253, 249, 255, 257, 251, 253, - 256, 259, 258, 257, 248, 260, 261, 256, 258, 250, - 250, 260, 262, 252, 268, 255, 263, 263, 261, 265, - 259, 264, 264, 266, 270, 265, 262, 269, 267, 266, - 267, 271, 269, 272, 273, 274, 270, 268, 275, 276, - 274, 272, 277, 265, 278, 276, 279, 267, 277, 278, - 271, 279, 280, 281, 273, 282, 283, 284, 280, 285, - 286, 275, 288, 291, 287, 288, 291, 285, 281, 282, - 287, 284, 292, 289, 283, 289, 290, 290, 293, 293, + 240, 242, 246, 246, 247, 238, 243, 250, 249, 247, + 245, 244, 249, 251, 252, 253, 248, 254, 255, 251, + 257, 253, 259, 255, 258, 261, 263, 264, 259, 250, + 260, 258, 252, 252, 262, 270, 260, 254, 263, 257, + 262, 264, 265, 265, 261, 266, 266, 267, 268, 269, + 271, 269, 272, 267, 268, 271, 273, 274, 270, 275, + 277, 276, 288, 278, 272, 274, 276, 279, 269, 278, + 283, 267, 280, 279, 282, 273, 281, 280, 284, 275, + 282, 281, 285, 277, 286, 283, 287, 288, 290, 289, + 293, 290, 284, 293, 287, 289, 294, 291, 286, 291, - 294, 294, 295, 297, 296, 286, 297, 298, 299, 301, - 292, 298, 300, 302, 303, 301, 311, 299, 295, 296, - 303, 300, 304, 305, 304, 312, 306, 302, 308, 305, - 306, 307, 307, 308, 309, 310, 311, 313, 314, 316, - 309, 310, 316, 312, 315, 315, 317, 306, 318, 319, - 165, 314, 318, 320, 321, 321, 322, 324, 313, 323, - 310, 325, 323, 326, 317, 327, 326, 325, 319, 324, - 330, 320, 329, 331, 322, 339, 339, 327, 331, 323, - 328, 329, 332, 333, 335, 332, 333, 332, 330, 328, - 338, 334, 328, 338, 341, 613, 335, 328, 328, 328, + 285, 292, 292, 295, 295, 296, 296, 297, 299, 298, + 301, 299, 300, 302, 294, 303, 300, 304, 174, 301, + 305, 303, 302, 297, 298, 306, 305, 306, 307, 308, + 314, 304, 310, 308, 307, 309, 309, 310, 311, 312, + 313, 315, 316, 319, 311, 312, 317, 317, 314, 318, + 308, 321, 318, 320, 322, 316, 324, 320, 323, 323, + 313, 319, 315, 325, 312, 326, 325, 327, 328, 329, + 321, 328, 322, 327, 324, 333, 331, 326, 366, 332, + 333, 329, 336, 325, 330, 331, 334, 335, 337, 334, + 335, 334, 366, 330, 169, 336, 330, 332, 341, 341, - 328, 340, 613, 332, 334, 336, 337, 336, 336, 341, - 342, 337, 337, 343, 344, 344, 346, 346, 340, 342, - 345, 340, 343, 347, 347, 345, 348, 349, 350, 351, - 352, 353, 349, 354, 357, 355, 355, 358, 355, 354, - 350, 348, 358, 359, 365, 363, 353, 355, 351, 359, - 352, 360, 361, 365, 357, 362, 360, 361, 362, 363, - 362, 364, 367, 361, 364, 366, 366, 369, 367, 368, - 368, 372, 369, 373, 374, 370, 373, 364, 370, 376, - 364, 379, 364, 386, 370, 163, 375, 378, 370, 374, - 378, 372, 381, 376, 373, 379, 370, 371, 371, 382, + 337, 330, 330, 330, 330, 339, 338, 334, 338, 338, + 339, 339, 340, 342, 343, 340, 345, 344, 346, 347, + 347, 348, 349, 349, 351, 345, 348, 346, 353, 343, + 342, 350, 350, 342, 344, 344, 352, 354, 355, 351, + 353, 352, 356, 357, 360, 167, 361, 358, 358, 357, + 358, 361, 369, 369, 362, 166, 354, 356, 355, 358, + 362, 363, 364, 394, 360, 365, 363, 364, 365, 367, + 365, 368, 367, 364, 372, 370, 371, 371, 375, 372, + 368, 370, 377, 373, 378, 367, 373, 379, 367, 394, + 367, 376, 373, 382, 376, 384, 373, 377, 375, 378, - 371, 375, 386, 389, 383, 384, 378, 381, 382, 383, - 383, 384, 387, 371, 392, 391, 371, 385, 371, 388, - 371, 380, 389, 380, 380, 390, 396, 387, 388, 393, - 397, 390, 161, 380, 392, 380, 380, 380, 385, 394, - 380, 391, 395, 393, 398, 394, 396, 395, 399, 394, - 397, 400, 401, 399, 402, 402, 403, 404, 401, 398, - 405, 406, 407, 408, 411, 395, 400, 406, 409, 404, - 412, 414, 413, 409, 405, 159, 403, 410, 410, 408, - 410, 415, 420, 415, 411, 414, 412, 407, 413, 416, - 417, 416, 416, 418, 417, 419, 419, 418, 421, 422, + 381, 379, 385, 381, 373, 374, 374, 382, 374, 386, + 384, 385, 376, 388, 386, 386, 387, 389, 390, 381, + 402, 374, 387, 392, 374, 402, 374, 395, 374, 383, + 391, 383, 383, 390, 388, 396, 389, 164, 399, 391, + 393, 383, 392, 383, 383, 383, 393, 395, 383, 396, + 397, 400, 398, 401, 403, 404, 397, 398, 399, 406, + 397, 404, 405, 405, 407, 410, 408, 409, 401, 403, + 411, 400, 412, 409, 414, 398, 407, 412, 417, 406, + 408, 413, 413, 415, 413, 416, 411, 418, 423, 418, + 410, 426, 417, 419, 414, 419, 419, 424, 420, 415, - 423, 420, 424, 430, 427, 425, 426, 430, 428, 416, - 427, 426, 418, 421, 425, 422, 424, 428, 423, 426, - 426, 429, 431, 426, 426, 425, 429, 425, 432, 433, - 434, 431, 436, 435, 432, 436, 434, 435, 437, 438, - 439, 439, 440, 437, 441, 441, 442, 443, 444, 444, - 433, 442, 445, 446, 447, 440, 448, 446, 445, 438, - 443, 449, 450, 451, 451, 453, 449, 450, 452, 447, - 454, 455, 451, 456, 457, 458, 456, 448, 457, 460, - 452, 459, 459, 455, 460, 453, 461, 458, 454, 462, - 462, 463, 465, 465, 467, 468, 469, 470, 471, 478, + 421, 416, 420, 427, 421, 422, 422, 423, 425, 426, + 430, 428, 424, 419, 431, 439, 430, 427, 439, 421, + 428, 429, 432, 431, 425, 433, 429, 432, 434, 433, + 435, 428, 436, 428, 429, 429, 435, 434, 429, 429, + 437, 438, 440, 441, 443, 438, 437, 440, 442, 442, + 444, 444, 446, 436, 445, 447, 447, 443, 448, 445, + 450, 451, 449, 441, 448, 446, 449, 452, 453, 454, + 454, 455, 452, 453, 456, 450, 458, 457, 454, 461, + 464, 459, 451, 455, 459, 460, 462, 462, 458, 460, + 466, 461, 463, 470, 456, 457, 471, 463, 465, 465, - 473, 474, 475, 468, 85, 469, 477, 461, 478, 476, - 471, 480, 477, 463, 481, 467, 480, 470, 473, 474, - 473, 479, 475, 476, 482, 484, 483, 479, 481, 483, - 485, 486, 482, 487, 489, 482, 490, 486, 488, 484, - 489, 488, 491, 492, 494, 485, 493, 491, 494, 495, - 490, 496, 497, 487, 495, 498, 499, 497, 489, 500, - 503, 524, 506, 504, 505, 492, 496, 493, 505, 507, - 508, 498, 500, 524, 508, 499, 501, 501, 504, 510, - 503, 506, 501, 80, 501, 507, 511, 512, 509, 513, - 501, 511, 501, 509, 510, 501, 501, 509, 513, 514, + 472, 464, 468, 468, 471, 473, 474, 475, 476, 472, + 478, 474, 466, 479, 470, 480, 482, 484, 481, 550, + 476, 550, 482, 484, 483, 486, 473, 475, 478, 485, + 478, 479, 481, 483, 485, 480, 487, 488, 489, 486, + 488, 490, 491, 492, 487, 494, 493, 487, 491, 493, + 495, 494, 489, 496, 497, 499, 490, 498, 496, 499, + 500, 502, 501, 492, 495, 500, 502, 503, 504, 494, + 508, 505, 511, 524, 547, 510, 497, 501, 498, 510, + 509, 512, 513, 503, 505, 162, 513, 504, 506, 506, + 508, 511, 547, 524, 506, 509, 506, 512, 515, 517, - 515, 516, 501, 512, 517, 514, 512, 517, 518, 519, - 514, 520, 520, 521, 526, 515, 529, 516, 522, 522, - 523, 525, 527, 528, 530, 529, 531, 75, 528, 519, - 534, 518, 538, 526, 532, 523, 525, 537, 521, 534, - 532, 531, 535, 530, 527, 536, 535, 538, 539, 537, - 540, 536, 542, 541, 543, 545, 544, 545, 543, 546, - 548, 548, 550, 547, 540, 552, 549, 539, 541, 544, - 542, 547, 549, 551, 550, 553, 554, 552, 553, 551, - 555, 556, 557, 546, 558, 557, 556, 647, 559, 561, - 554, 560, 569, 558, 647, 555, 560, 560, 562, 562, + 514, 516, 506, 518, 506, 514, 516, 506, 506, 514, + 519, 520, 518, 515, 506, 517, 519, 521, 517, 522, + 523, 519, 522, 525, 525, 526, 520, 527, 527, 528, + 529, 530, 531, 521, 532, 533, 534, 536, 535, 539, + 533, 537, 529, 523, 528, 534, 530, 537, 539, 540, + 526, 531, 536, 540, 541, 542, 532, 535, 543, 544, + 541, 545, 546, 549, 548, 554, 552, 542, 548, 553, + 553, 554, 555, 543, 552, 545, 549, 546, 544, 556, + 557, 559, 560, 558, 555, 556, 558, 562, 561, 563, + 562, 564, 557, 561, 565, 559, 566, 560, 563, 565, - 558, 564, 561, 558, 559, 563, 563, 564, 565, 565, - 566, 566, 567, 569, 568, 570, 573, 572, 567, 568, - 568, 571, 572, 574, 571, 575, 577, 570, 575, 576, - 580, 574, 578, 579, 576, 573, 580, 579, 581, 582, - 583, 584, 581, 585, 585, 583, 586, 587, 588, 577, - 589, 578, 590, 588, 591, 584, 593, 582, 592, 595, - 591, 586, 597, 592, 596, 596, 589, 74, 587, 598, - 593, 594, 590, 599, 594, 601, 600, 595, 599, 594, - 597, 600, 594, 594, 602, 598, 604, 605, 606, 601, - 607, 606, 604, 608, 607, 611, 605, 609, 608, 602, + 565, 567, 567, 568, 568, 563, 569, 564, 563, 566, + 570, 570, 569, 571, 571, 572, 574, 573, 575, 578, + 577, 572, 573, 573, 576, 577, 579, 576, 580, 582, + 575, 580, 583, 589, 579, 581, 585, 574, 578, 584, + 581, 586, 585, 584, 587, 586, 591, 589, 588, 590, + 590, 583, 582, 588, 592, 593, 594, 595, 596, 598, + 593, 591, 587, 597, 596, 603, 600, 602, 597, 601, + 601, 599, 594, 598, 599, 592, 606, 595, 607, 599, + 610, 603, 599, 599, 600, 602, 604, 605, 609, 610, + 606, 604, 605, 607, 609, 611, 612, 613, 611, 616, - 609, 610, 612, 615, 614, 616, 610, 619, 615, 617, - 617, 611, 618, 620, 621, 622, 607, 614, 623, 629, - 612, 618, 624, 621, 623, 616, 619, 622, 624, 620, - 625, 626, 626, 625, 626, 627, 628, 629, 627, 630, - 631, 628, 632, 633, 635, 634, 631, 632, 634, 633, - 636, 637, 638, 630, 639, 636, 637, 637, 640, 643, - 641, 642, 645, 640, 68, 638, 641, 639, 643, 635, - 644, 646, 646, 648, 650, 644, 648, 640, 640, 649, - 642, 654, 645, 651, 652, 649, 650, 658, 651, 652, - 652, 648, 653, 653, 655, 656, 655, 657, 659, 657, + 612, 614, 613, 615, 614, 617, 618, 619, 615, 620, + 621, 622, 622, 618, 620, 616, 623, 624, 625, 626, + 619, 627, 612, 617, 630, 623, 628, 630, 626, 629, + 621, 634, 628, 627, 625, 629, 624, 631, 631, 632, + 631, 633, 632, 635, 637, 636, 633, 638, 640, 634, + 636, 639, 641, 638, 640, 641, 639, 635, 642, 643, + 644, 645, 646, 637, 643, 644, 644, 647, 650, 649, + 648, 652, 647, 651, 645, 646, 648, 650, 651, 653, + 653, 655, 654, 642, 655, 657, 647, 647, 649, 654, + 656, 652, 661, 658, 663, 659, 656, 657, 658, 655, - 660, 661, 662, 663, 664, 658, 654, 668, 664, 663, - 665, 666, 667, 669, 656, 671, 659, 670, 660, 665, - 661, 673, 662, 675, 674, 668, 666, 667, 672, 670, - 671, 676, 669, 677, 672, 673, 674, 677, 678, 679, - 680, 681, 675, 682, 683, 685, 685, 684, 686, 683, - 676, 687, 686, 688, 692, 679, 678, 689, 680, 681, - 681, 684, 682, 690, 691, 687, 693, 694, 689, 691, - 692, 695, 688, 700, 696, 697, 698, 690, 695, 696, - 694, 698, 697, 699, 703, 693, 701, 702, 699, 705, - 704, 700, 706, 701, 709, 710, 702, 706, 703, 704, + 659, 659, 660, 660, 662, 664, 662, 664, 665, 666, + 667, 668, 669, 663, 670, 671, 672, 661, 673, 671, + 670, 674, 675, 676, 678, 672, 665, 666, 667, 677, + 668, 679, 669, 673, 680, 681, 674, 679, 682, 678, + 675, 677, 676, 683, 686, 684, 685, 681, 680, 684, + 687, 688, 689, 690, 692, 692, 695, 682, 690, 691, + 686, 693, 683, 694, 685, 693, 697, 696, 687, 688, + 688, 689, 699, 691, 698, 695, 700, 694, 696, 698, + 697, 701, 702, 707, 704, 703, 710, 705, 699, 702, + 703, 704, 705, 706, 701, 700, 708, 709, 706, 711, - 707, 705, 708, 707, 710, 711, 708, 712, 709, 713, - 714, 714, 717, 715, 715, 716, 716, 717, 718, 720, - 711, 712, 715, 721, 722, 724, 725, 718, 723, 721, - 713, 726, 723, 727, 728, 730, 729, 724, 720, 727, - 731, 732, 728, 729, 722, 735, 738, 741, 742, 726, - 745, 725, 744, 730, 742, 752, 741, 746, 744, 745, - 735, 732, 63, 738, 751, 731, 733, 753, 733, 752, - 747, 733, 750, 746, 747, 733, 748, 748, 733, 749, - 749, 757, 751, 750, 754, 733, 733, 753, 733, 756, - 754, 755, 755, 755, 756, 755, 758, 759, 755, 760, + 710, 707, 712, 708, 713, 716, 709, 714, 711, 713, + 714, 715, 717, 718, 712, 715, 719, 720, 727, 716, + 732, 717, 721, 721, 722, 722, 723, 723, 718, 724, + 719, 725, 729, 722, 724, 728, 731, 727, 720, 730, + 725, 728, 733, 730, 734, 732, 735, 737, 731, 736, + 734, 738, 729, 739, 735, 742, 736, 745, 748, 784, + 733, 784, 749, 751, 753, 737, 752, 748, 749, 751, + 742, 755, 755, 739, 745, 752, 738, 740, 759, 740, + 753, 754, 740, 756, 756, 754, 740, 757, 758, 740, + 760, 765, 759, 764, 761, 767, 740, 740, 757, 740, - 761, 759, 757, 755, 761, 763, 762, 764, 765, 755, - 755, 762, 766, 767, 758, 766, 769, 769, 767, 767, - 761, 768, 764, 760, 763, 770, 771, 773, 768, 772, - 772, 771, 773, 765, 774, 778, 775, 774, 776, 776, - 770, 775, 777, 779, 777, 780, 781, 778, 782, 780, - 783, 784, 784, 785, 788, 786, 787, 787, 783, 789, - 790, 837, 779, 837, 791, 58, 781, 782, 785, 786, - 791, 789, 788, 792, 793, 793, 796, 797, 792, 794, - 798, 796, 790, 797, 794, 794, 798, 799, 800, 802, - 801, 803, 799, 801, 800, 802, 804, 804, 806, 803, + 761, 766, 763, 770, 768, 766, 758, 763, 768, 765, + 760, 762, 762, 762, 764, 762, 769, 771, 762, 767, + 772, 769, 770, 762, 768, 773, 775, 777, 773, 762, + 762, 774, 771, 775, 776, 776, 774, 774, 778, 779, + 779, 780, 777, 778, 781, 772, 780, 781, 782, 783, + 783, 785, 786, 782, 787, 788, 790, 789, 787, 791, + 791, 796, 792, 785, 790, 793, 794, 794, 795, 797, + 857, 786, 798, 796, 857, 788, 789, 792, 798, 793, + 799, 800, 800, 801, 804, 799, 795, 803, 801, 801, + 804, 797, 803, 805, 808, 806, 807, 808, 809, 805, - 805, 805, 807, 808, 809, 810, 806, 812, 808, 811, - 811, 809, 815, 813, 814, 814, 812, 816, 815, 818, - 807, 813, 819, 820, 810, 821, 822, 825, 818, 823, - 821, 819, 823, 824, 826, 822, 816, 827, 824, 828, - 831, 825, 832, 829, 830, 830, 827, 820, 829, 829, - 834, 833, 828, 835, 839, 831, 835, 838, 838, 826, - 833, 832, 840, 841, 835, 842, 843, 840, 844, 845, - 846, 847, 848, 849, 834, 839, 848, 850, 854, 846, - 1098, 851, 1098, 852, 841, 842, 843, 851, 853, 845, - 844, 849, 852, 855, 847, 856, 850, 854, 857, 858, + 806, 810, 807, 813, 809, 811, 811, 812, 812, 810, + 814, 813, 815, 816, 817, 818, 819, 815, 820, 820, + 816, 821, 823, 823, 825, 822, 829, 827, 814, 828, + 821, 818, 817, 822, 824, 819, 827, 830, 828, 831, + 824, 832, 830, 825, 832, 834, 833, 835, 831, 836, + 829, 833, 837, 839, 839, 838, 840, 841, 836, 834, + 838, 838, 843, 844, 842, 837, 844, 846, 848, 846, + 849, 840, 835, 842, 844, 849, 841, 847, 847, 850, + 856, 851, 852, 853, 854, 855, 843, 860, 858, 848, + 859, 863, 892, 860, 855, 892, 862, 864, 861, 866, - 853, 856, 859, 859, 858, 860, 861, 855, 862, 863, - 864, 865, 857, 866, 867, 861, 868, 863, 869, 873, - 871, 870, 868, 872, 869, 860, 871, 876, 862, 877, - 864, 876, 866, 865, 867, 870, 874, 872, 875, 873, - 878, 879, 874, 880, 875, 882, 879, 884, 877, 881, - 881, 882, 878, 883, 885, 886, 883, 887, 888, 888, - 878, 886, 889, 890, 880, 884, 891, 885, 890, 892, - 893, 891, 891, 895, 893, 894, 894, 887, 896, 900, - 889, 897, 898, 901, 892, 904, 897, 903, 905, 907, - 907, 909, 908, 910, 910, 895, 908, 901, 896, 911, + 850, 851, 852, 856, 854, 853, 858, 861, 862, 859, + 863, 864, 865, 866, 867, 868, 868, 869, 865, 867, + 870, 871, 872, 873, 874, 875, 877, 876, 878, 870, + 872, 879, 877, 880, 878, 881, 882, 869, 160, 880, + 886, 871, 883, 873, 875, 879, 874, 876, 883, 881, + 885, 884, 887, 888, 885, 889, 882, 884, 888, 886, + 890, 890, 891, 893, 887, 894, 896, 895, 891, 897, + 897, 898, 887, 895, 899, 901, 889, 900, 894, 899, + 902, 893, 900, 900, 902, 904, 896, 903, 903, 898, + 901, 905, 906, 907, 909, 910, 913, 906, 914, 917, - 903, 898, 913, 900, 912, 904, 909, 915, 912, 905, - 906, 914, 915, 906, 916, 906, 919, 913, 920, 906, - 918, 906, 920, 921, 911, 914, 906, 917, 916, 918, - 919, 906, 917, 917, 920, 922, 923, 924, 921, 925, - 922, 926, 924, 927, 930, 928, 929, 937, 923, 930, - 922, 934, 929, 925, 928, 931, 934, 927, 932, 933, - 933, 931, 926, 935, 932, 936, 937, 938, 940, 935, - 941, 943, 942, 944, 944, 941, 945, 947, 948, 949, - 940, 945, 946, 943, 950, 938, 942, 936, 939, 939, - 946, 947, 953, 951, 939, 954, 939, 948, 949, 951, + 912, 916, 916, 917, 919, 919, 918, 904, 920, 910, + 921, 905, 907, 912, 921, 922, 913, 924, 909, 914, + 915, 918, 924, 915, 923, 915, 925, 85, 938, 915, + 922, 915, 928, 920, 938, 927, 915, 926, 923, 930, + 925, 915, 926, 926, 927, 929, 928, 931, 932, 929, + 933, 934, 931, 935, 930, 933, 936, 937, 939, 943, + 932, 929, 931, 939, 943, 934, 937, 940, 945, 941, + 936, 942, 942, 940, 935, 941, 944, 946, 950, 947, + 949, 951, 944, 950, 953, 953, 954, 80, 952, 956, + 945, 954, 949, 955, 957, 951, 946, 947, 948, 948, - 950, 952, 939, 955, 953, 956, 952, 939, 939, 957, - 957, 958, 959, 954, 939, 958, 961, 962, 963, 955, - 962, 964, 961, 956, 966, 965, 964, 968, 967, 972, - 966, 970, 959, 967, 971, 973, 975, 963, 965, 974, - 970, 973, 976, 971, 977, 972, 968, 976, 974, 978, - 979, 981, 982, 980, 984, 975, 983, 987, 990, 993, - 981, 982, 983, 978, 977, 980, 985, 989, 991, 992, - 979, 984, 985, 987, 994, 995, 57, 993, 990, 996, - 995, 989, 1000, 992, 996, 999, 1003, 991, 1002, 994, - 999, 1000, 1001, 1001, 1002, 1005, 1006, 1009, 1010, 1003, + 952, 955, 958, 956, 948, 960, 948, 959, 962, 961, + 963, 960, 948, 957, 961, 964, 965, 948, 948, 968, + 962, 958, 972, 959, 948, 966, 966, 974, 963, 967, + 970, 964, 971, 967, 965, 971, 970, 973, 975, 968, + 974, 972, 973, 976, 975, 977, 979, 980, 976, 981, + 983, 982, 984, 985, 986, 979, 980, 982, 985, 983, + 988, 987, 992, 990, 977, 981, 989, 991, 992, 993, + 998, 984, 990, 994, 986, 987, 991, 996, 989, 994, + 988, 999, 1001, 1000, 998, 1002, 993, 1004, 1009, 1003, + 1005, 1012, 1004, 996, 1008, 1005, 1001, 1009, 1014, 1008, - 1009, 1006, 1006, 1008, 1008, 1011, 1012, 1008, 1013, 1015, - 1014, 1005, 1010, 1016, 1017, 1018, 1019, 1023, 1024, 1016, - 1023, 1018, 1012, 1014, 1015, 1011, 1013, 1020, 1021, 1027, - 1025, 1019, 1020, 1026, 1017, 1025, 1028, 1030, 1026, 1024, - 1032, 1028, 1021, 1029, 1033, 1027, 1032, 1034, 1029, 1030, - 1035, 1036, 1036, 1034, 1037, 1038, 1035, 1041, 1039, 1042, - 1033, 1039, 1043, 1037, 1040, 1040, 1044, 1045, 1046, 1044, - 1047, 1054, 1048, 1038, 1046, 1041, 1047, 1048, 1042, 1049, - 1045, 1050, 1043, 1051, 1049, 1053, 1050, 1055, 1060, 1051, - 1056, 1054, 1058, 1055, 1061, 1056, 1057, 1057, 1059, 1062, + 1012, 999, 1000, 1002, 1003, 1010, 1010, 1011, 1013, 1016, + 1017, 1014, 1021, 1011, 1022, 1017, 1017, 1019, 1019, 1020, + 1023, 1019, 1020, 1013, 1024, 1016, 1021, 1025, 1026, 1027, + 1028, 1029, 1030, 1031, 1022, 1027, 1023, 1029, 1031, 1032, + 1025, 1034, 1024, 1026, 1034, 1035, 1036, 1030, 1038, 1037, + 1028, 1036, 1039, 1032, 1037, 1040, 1041, 1039, 1044, 1043, + 1040, 1045, 1049, 1046, 1038, 1043, 1035, 1045, 1041, 1046, + 1047, 1047, 1048, 1050, 1044, 1052, 1050, 1051, 1051, 1053, + 1049, 1048, 1054, 1055, 1056, 1057, 1055, 1059, 1058, 1064, + 1060, 1057, 1059, 1052, 1058, 1060, 1061, 1056, 1053, 1062, - 1064, 1058, 1062, 1053, 1065, 1063, 1060, 1059, 1063, 1065, - 1066, 1064, 1067, 1061, 1068, 1069, 1070, 1071, 1072, 1073, - 1073, 1069, 1070, 1072, 1067, 1074, 1075, 1076, 1066, 1078, - 1077, 1080, 1071, 1068, 1077, 1081, 1079, 1083, 1085, 1076, - 1075, 1084, 1084, 1087, 1074, 1079, 1088, 1078, 1090, 1093, - 1080, 1089, 1105, 1090, 1096, 1091, 1083, 1087, 1085, 1105, - 1081, 1088, 1094, 1089, 1091, 1092, 1092, 1095, 1094, 1093, - 1096, 1097, 1099, 1095, 1100, 1101, 1097, 1099, 1102, 1103, - 1104, 1106, 1107, 1102, 1109, 1109, 1110, 1111, 1100, 1101, - 1114, 1112, 1113, 1234, 1103, 1234, 1106, 1115, 1113, 1104, + 1065, 1061, 1054, 1066, 1071, 1062, 1067, 1064, 1069, 1066, + 1070, 1067, 1068, 1068, 1072, 1073, 1075, 1069, 1073, 1070, + 1065, 1074, 1071, 1076, 1074, 1077, 1078, 1075, 1076, 1079, + 1080, 1081, 1082, 1072, 1083, 1085, 1080, 1081, 1078, 1083, + 1084, 1084, 1086, 1077, 1089, 1087, 1088, 1082, 1079, 1090, + 1088, 1091, 1092, 1094, 1085, 1096, 1086, 1087, 1090, 1095, + 1095, 1099, 1089, 1101, 1098, 1102, 1104, 1100, 1101, 1107, + 1091, 1109, 1094, 1109, 1102, 1096, 1099, 1092, 1098, 1100, + 1103, 1103, 1105, 1106, 1111, 1107, 1104, 1108, 1105, 1106, + 1110, 1112, 1108, 1114, 1113, 1110, 1115, 1116, 1111, 1113, - 1110, 1107, 1115, 1117, 1125, 1111, 1112, 1117, 1118, 1118, - 1114, 1115, 1119, 1115, 1120, 1120, 1115, 1119, 1121, 1122, - 1123, 1124, 1125, 1123, 1127, 1121, 1126, 1128, 1132, 1127, - 1129, 1130, 1133, 1122, 1131, 1126, 1130, 1135, 1135, 1132, - 1124, 1138, 1129, 1142, 1136, 1137, 1128, 1139, 1131, 1136, - 1137, 1133, 1139, 1140, 1141, 1143, 1144, 1140, 1142, 1145, - 1147, 1138, 1146, 1141, 1148, 1149, 1150, 1147, 1151, 1154, - 1143, 1145, 1152, 1153, 1155, 1144, 1148, 1146, 1152, 1158, - 1157, 1156, 1160, 1161, 1149, 1159, 1151, 1150, 1153, 1154, - 1156, 1162, 1163, 1165, 1155, 1157, 1166, 1159, 1158, 1165, + 1118, 1117, 1120, 1120, 1116, 1112, 1121, 1122, 1114, 1123, + 1125, 1124, 75, 1126, 1132, 1115, 1117, 1124, 1126, 1118, + 1121, 1132, 1128, 1130, 1123, 1122, 1128, 1126, 1130, 1126, + 1125, 1133, 1126, 1129, 1129, 1131, 1131, 1134, 1135, 1137, + 1134, 1136, 1138, 1139, 1140, 1133, 1141, 1138, 1137, 1142, + 1143, 1141, 1144, 1146, 1146, 1147, 1140, 1135, 1149, 1136, + 1147, 1143, 1139, 1142, 1148, 1150, 1152, 1153, 1151, 1148, + 1150, 1144, 1151, 1154, 1155, 1152, 1157, 1156, 1149, 1158, + 1159, 1160, 1153, 1161, 1162, 1165, 1158, 1166, 1154, 1156, + 1163, 1157, 1159, 1155, 1164, 1168, 1163, 1167, 1169, 1170, - 1167, 1160, 1168, 1169, 1170, 1172, 1162, 1174, 1161, 52, - 1168, 1166, 1163, 1171, 1167, 1175, 1173, 1172, 1171, 1176, - 1170, 1173, 1173, 1169, 1177, 1177, 1174, 1179, 1180, 1175, - 1181, 1202, 1176, 1178, 1178, 1202, 1181, 1180, 1178, 1184, - 1179, 1178, 1178, 1182, 1182, 1183, 1178, 1185, 1184, 1186, - 1183, 1189, 1178, 1185, 1186, 1187, 1178, 1188, 1188, 1192, - 1187, 1190, 1190, 1191, 1193, 1194, 1191, 1195, 1191, 1197, - 1196, 1198, 1189, 47, 1194, 1196, 1201, 1206, 1199, 1192, - 1200, 1201, 1193, 1197, 1199, 1203, 1200, 1195, 1206, 1198, - 1204, 1204, 1205, 1205, 1203, 1205, 1208, 1209, 1210, 1203, + 1160, 1171, 1162, 1172, 1161, 1165, 1167, 1166, 1173, 1164, + 1168, 1170, 1174, 1176, 1177, 1180, 1178, 1169, 1179, 1176, + 1171, 1181, 1182, 1173, 1183, 1185, 1179, 1182, 1172, 1177, + 1178, 1186, 1174, 1184, 1187, 1180, 1183, 1181, 1184, 1184, + 1188, 1188, 1190, 1191, 1185, 1186, 74, 1187, 1189, 1189, + 1193, 1193, 1191, 1189, 1192, 1190, 1189, 1189, 1194, 1195, + 1192, 1189, 1200, 1194, 1196, 1199, 1199, 1189, 1195, 1197, + 1196, 1189, 1198, 1203, 1197, 1201, 1201, 1198, 1204, 1202, + 1205, 1206, 1202, 1200, 1202, 1207, 1208, 1209, 1210, 1205, + 1207, 1211, 1216, 1203, 1210, 1213, 1204, 1211, 1212, 1213, - 1208, 1203, 1211, 1203, 1212, 1203, 1213, 1214, 1215, 1212, - 1212, 1211, 1209, 1215, 1216, 1213, 1210, 1217, 1218, 1219, - 1220, 1221, 1222, 1222, 1223, 1224, 1217, 1221, 1216, 1214, - 1225, 1226, 1223, 1227, 1220, 1225, 1228, 1218, 1219, 1224, - 1229, 1230, 1227, 1231, 1231, 1226, 1230, 1232, 1233, 1233, - 1236, 1237, 1238, 1236, 1228, 1239, 1237, 1240, 1240, 1241, - 1242, 1242, 1232, 1244, 1239, 1229, 1243, 1243, 1244, 1245, - 1246, 1238, 1247, 1247, 1248, 1249, 1250, 1251, 1249, 1241, - 1252, 1253, 1251, 1253, 1254, 1256, 1257, 1258, 1256, 1252, - 1245, 1246, 1258, 1259, 1248, 1260, 1250, 1261, 1262, 1264, + 1208, 1206, 1214, 1212, 1215, 1209, 1216, 1217, 1217, 1215, + 1219, 1214, 1218, 1218, 1222, 1218, 1214, 1223, 1214, 1221, + 1214, 1219, 1214, 1221, 1224, 1225, 1227, 1226, 1229, 1222, + 1225, 1225, 1228, 1224, 1230, 1223, 1226, 1228, 1231, 1232, + 1233, 1234, 1229, 1230, 1235, 1235, 1237, 1234, 1227, 1239, + 1238, 1236, 1240, 1241, 1233, 1238, 1242, 1231, 1232, 1236, + 1237, 1240, 1243, 1239, 1244, 1244, 1251, 1243, 1245, 1246, + 1246, 1241, 1247, 1249, 1247, 1250, 1249, 1252, 1253, 1253, + 1250, 1242, 1254, 1245, 1258, 1251, 1252, 1255, 1255, 1256, + 1256, 1257, 1259, 1260, 1260, 1261, 1257, 1262, 1263, 1264, - 1260, 1257, 1254, 1262, 1264, 1261, 1263, 1259, 1266, 1263, - 1265, 1265, 1267, 1266, 1268, 1269, 1270, 1272, 1273, 1275, - 1268, 1274, 1269, 1272, 1273, 1275, 1274, 1276, 1277, 1270, - 1267, 1278, 1279, 1279, 1280, 1282, 1276, 1283, 1284, 1285, - 1286, 1293, 1278, 1287, 1291, 1285, 1286, 1277, 1290, 1287, - 1282, 1292, 1289, 1293, 1280, 1294, 1295, 1283, 1289, 1296, - 1296, 1284, 1290, 1297, 1291, 1298, 1299, 1300, 1290, 1294, - 1302, 1292, 1300, 1303, 1295, 1301, 1301, 1305, 1303, 1307, - 1306, 1309, 1308, 1297, 1299, 1306, 1306, 1310, 1311, 1309, - 1298, 1308, 1312, 1302, 1313, 1314, 1305, 1307, 1315, 1313, + 1262, 1265, 1254, 1267, 1264, 1258, 1266, 1270, 1266, 1269, + 1265, 1271, 1269, 1259, 1272, 1261, 1271, 1274, 1263, 1273, + 1276, 1267, 1270, 1276, 1273, 1274, 1275, 1277, 1272, 1278, + 1278, 1275, 1277, 1279, 1280, 1281, 1282, 1283, 1279, 1285, + 1286, 1281, 1287, 1282, 1289, 1285, 1286, 1287, 1288, 1290, + 1283, 1291, 1280, 1289, 1288, 1292, 1292, 1293, 1295, 1296, + 1297, 1298, 1291, 1299, 1300, 1302, 1303, 1298, 1290, 1299, + 1300, 1302, 1304, 1295, 1305, 1306, 1307, 1293, 1308, 1296, + 1303, 1309, 1309, 1297, 1310, 1311, 1303, 1306, 1312, 1315, + 1307, 68, 1304, 1313, 1305, 1318, 1308, 1316, 1313, 1314, - 1315, 1310, 1313, 1311, 1314, 1316, 1318, 1312, 1322, 1319, - 1312, 1320, 1318, 1319, 1323, 1321, 1324, 1327, 1325, 1316, - 1321, 1321, 1320, 1325, 1326, 1328, 1329, 1322, 1330, 1326, - 1332, 1329, 1333, 1334, 1324, 1327, 1335, 1335, 1336, 1337, - 1323, 1338, 1336, 1339, 1332, 1328, 1340, 1341, 1330, 1339, - 1333, 1334, 1345, 1342, 1343, 1344, 1346, 1337, 1340, 1348, - 1338, 1346, 1349, 1352, 1348, 1347, 1341, 1342, 1350, 1343, - 1344, 1345, 1347, 1351, 1351, 1353, 1354, 1350, 1352, 1356, - 1349, 1355, 1355, 1357, 1353, 1356, 1358, 1359, 1359, 1357, - 1361, 1360, 1362, 1363, 18, 1364, 1354, 1360, 1363, 1365, + 1314, 1320, 1316, 1319, 1310, 1322, 1312, 1321, 1319, 1319, + 1311, 1323, 1315, 1322, 1318, 1324, 1321, 1325, 1326, 1320, + 1327, 1335, 1328, 1326, 1328, 1323, 1326, 1329, 1331, 1327, + 1324, 1333, 1325, 1332, 1331, 1325, 1336, 1332, 1334, 1337, + 1335, 1329, 1333, 1334, 1334, 1338, 1339, 1340, 1341, 1342, + 1338, 1339, 1343, 1345, 1342, 1346, 1347, 1337, 1348, 1348, + 1349, 1350, 1336, 1351, 1349, 1340, 1353, 1345, 1341, 1352, + 1354, 1355, 1343, 1346, 1347, 1352, 1356, 1357, 1353, 1350, + 1358, 1359, 1351, 1360, 1362, 1355, 1359, 1363, 1361, 1354, + 1360, 1356, 1357, 1361, 1364, 1364, 1363, 1365, 1366, 1358, - 1358, 1364, 1366, 1367, 1367, 1365, 1361, 1372, 1366, 1368, - 1368, 1370, 1370, 1362, 1371, 1373, 1372, 1374, 1371, 1377, - 1375, 1376, 1378, 1378, 1379, 1381, 1377, 1380, 1382, 1374, - 1381, 1383, 1384, 1373, 1375, 1380, 1376, 1384, 1384, 1386, - 1385, 1388, 1382, 1389, 1379, 1385, 1385, 1387, 1387, 1390, - 1383, 1391, 1392, 1393, 1394, 1395, 1391, 1397, 1390, 1386, - 1388, 1395, 1389, 1396, 1398, 1399, 1402, 1403, 1396, 1400, - 1398, 1392, 1394, 1393, 1401, 1400, 1404, 1405, 1406, 1407, - 1401, 1416, 1408, 1397, 1399, 1402, 1403, 1409, 1409, 1411, - 1410, 17, 1406, 1410, 1416, 1404, 1405, 1408, 1412, 1412, + 1367, 1371, 1362, 1368, 1368, 1369, 1374, 1366, 1370, 1372, + 1372, 1369, 1365, 1373, 1370, 1371, 1375, 1385, 1376, 1373, + 1367, 1377, 1374, 1376, 1378, 1379, 1385, 1377, 1380, 1380, + 1378, 1379, 1381, 1381, 1383, 1383, 1384, 1375, 1386, 1387, + 1384, 1388, 1389, 1390, 1391, 1391, 1392, 1395, 1394, 1396, + 1390, 1387, 1393, 1394, 1399, 1388, 1386, 1389, 1397, 1401, + 1393, 1395, 1402, 1397, 1397, 1398, 1392, 1403, 1396, 1405, + 1398, 1398, 1400, 1400, 1399, 1404, 1403, 1406, 1401, 1408, + 1404, 1402, 1407, 1410, 1409, 1408, 1411, 1412, 1405, 1409, + 1413, 1415, 1411, 1414, 1416, 1417, 1413, 1406, 1418, 1414, - 1407, 1411, 1413, 1413, 1414, 1417, 1415, 1418, 1421, 1414, - 1415, 1419, 1423, 1419, 1417, 1424, 1422, 1419, 1425, 1427, - 1418, 1422, 1426, 1426, 1427, 1428, 1421, 1423, 1429, 1430, - 1419, 1428, 1431, 1434, 1425, 1424, 1432, 1431, 1435, 1436, - 1432, 1433, 1430, 1429, 1437, 1433, 1438, 1438, 1440, 1442, - 1437, 1446, 1443, 1434, 1444, 1444, 1435, 1443, 1445, 1436, - 1448, 1448, 1450, 1452, 1445, 1450, 1440, 1451, 1451, 1453, - 1442, 1446, 1455, 1456, 1457, 1455, 1458, 1458, 1460, 1452, - 1459, 1461, 1462, 1457, 1463, 1453, 1466, 1462, 1464, 1464, - 1467, 1468, 1465, 1456, 1469, 1459, 1470, 1470, 1463, 1460, + 1407, 1419, 1420, 1421, 1422, 1422, 1412, 1424, 1423, 1410, + 1415, 1423, 1425, 1416, 1417, 1419, 1426, 1418, 1421, 1427, + 1427, 1428, 1428, 1420, 1429, 1431, 1424, 1432, 1426, 1429, + 1430, 1425, 1433, 1434, 1430, 1434, 1432, 1436, 1431, 1434, + 1439, 1437, 1438, 1440, 1442, 1433, 1437, 1441, 1441, 1442, + 1443, 1444, 1434, 1446, 1445, 1436, 1443, 1438, 1446, 1440, + 1439, 1447, 1449, 1450, 1448, 1447, 1444, 1445, 1448, 1451, + 1452, 1453, 1453, 1455, 1457, 1458, 1452, 1459, 1459, 1460, + 1458, 1450, 1449, 1461, 1467, 1460, 1463, 1463, 1468, 1451, + 1465, 1455, 1471, 1465, 1474, 1457, 1466, 1466, 1470, 1472, - 1461, 1465, 1472, 1471, 1466, 1467, 1473, 1474, 1475, 1475, - 1477, 1473, 1478, 1478, 1469, 1476, 1468, 1471, 1479, 1476, - 1472, 1480, 1474, 1481, 1482, 1486, 1483, 1481, 1485, 1485, - 1477, 1483, 1480, 1487, 1488, 1489, 1490, 1491, 1492, 1492, - 1479, 1486, 1493, 1482, 1494, 1495, 1499, 1493, 1488, 1497, - 1490, 1487, 1496, 1496, 1489, 1489, 1498, 1500, 1497, 1500, - 1503, 1498, 1491, 1501, 1494, 1495, 1499, 1502, 1501, 1504, - 1506, 1507, 1507, 1502, 1508, 1504, 1509, 1512, 1511, 1516, - 1503, 1515, 1509, 1511, 1506, 1513, 1513, 1514, 1514, 1517, - 1520, 1518, 1530, 1508, 1518, 1515, 1522, 1516, 1519, 1519, + 1467, 1470, 1475, 1461, 1468, 1473, 1473, 1476, 1472, 1474, + 1477, 1478, 1471, 1479, 1479, 1477, 1481, 1482, 1480, 1483, + 1484, 1485, 1485, 1475, 1486, 1478, 1476, 1480, 1487, 1492, + 1488, 1494, 1482, 1489, 1481, 1488, 1490, 1490, 1486, 1491, + 1484, 1493, 1493, 1491, 1483, 1495, 1487, 1496, 1489, 1492, + 1497, 1496, 1498, 1494, 1500, 1500, 1495, 1498, 1501, 1502, + 1504, 1503, 1505, 1506, 1507, 1507, 1508, 1509, 63, 1497, + 1510, 1508, 1511, 1511, 1501, 1503, 1505, 1502, 1513, 1504, + 1504, 1514, 1512, 1513, 1515, 1518, 1515, 1509, 1506, 1516, + 1510, 1512, 1517, 1519, 1516, 1521, 1522, 1522, 1517, 1519, - 1521, 1512, 1525, 1523, 1517, 1524, 1523, 1525, 1520, 1523, - 1526, 1524, 1521, 1526, 1528, 1529, 1522, 1530, 1540, 1531, - 1529, 1523, 1531, 1528, 1532, 1532, 1533, 1534, 1538, 1526, - 1535, 1540, 1533, 1534, 1538, 1535, 1536, 1536, 1537, 1537, - 1539, 1541, 1542, 1543, 1544, 1539, 1545, 1544, 1546, 1549, - 1547, 1548, 1545, 1550, 1546, 1547, 1553, 1548, 1550, 1541, - 1554, 1542, 1552, 1543, 1551, 1551, 1555, 1552, 1556, 1557, - 1558, 1559, 1549, 1560, 1553, 1561, 1562, 1563, 1562, 1561, - 1554, 1565, 1556, 1557, 1558, 1566, 1555, 1567, 1568, 1559, - 1569, 1570, 1571, 1565, 1568, 1572, 1563, 1566, 1560, 1573, + 1523, 1514, 1524, 1527, 1530, 1518, 1526, 1531, 1524, 1521, + 1535, 1526, 1528, 1528, 1529, 1529, 1532, 1533, 1530, 1523, + 1533, 1534, 1534, 1536, 1537, 1531, 1539, 1527, 1535, 1540, + 1538, 1532, 1539, 1538, 1540, 1536, 1538, 1541, 1543, 1545, + 1541, 1544, 1546, 58, 1537, 1546, 1544, 1543, 1538, 1547, + 1547, 1548, 1549, 1555, 1550, 1556, 1541, 1548, 1549, 1550, + 1551, 1551, 1552, 1552, 1545, 1553, 1555, 1554, 1557, 1558, + 1560, 1553, 1554, 1556, 1559, 1561, 1560, 1559, 1562, 1563, + 1564, 1561, 1568, 1562, 1569, 1563, 1565, 1557, 1570, 1558, + 1567, 1565, 1566, 1566, 1575, 1567, 1571, 1572, 1573, 1574, - 1567, 1575, 1575, 1576, 1578, 1581, 1577, 1570, 1582, 1572, - 1569, 1577, 1571, 1579, 1579, 1580, 1578, 1583, 1584, 1581, - 1573, 1585, 1586, 1576, 1588, 1587, 1590, 1584, 1592, 1586, - 1580, 1597, 1582, 1596, 1587, 1583, 1585, 1587, 1601, 1593, - 1588, 1590, 1593, 1594, 1594, 1596, 1590, 1595, 1595, 1597, - 1600, 1598, 1604, 1592, 1598, 1599, 1599, 1601, 1605, 1602, - 1603, 1606, 1607, 1600, 1602, 1603, 1608, 1609, 1611, 1611, - 1606, 1604, 1612, 1610, 1605, 1608, 1609, 1613, 1608, 1610, - 1614, 1607, 1615, 1616, 1620, 1617, 1621, 1622, 1622, 1623, - 1613, 1624, 1612, 1626, 1626, 1629, 1615, 1617, 1614, 1616, + 1568, 1576, 1578, 1564, 1569, 1576, 1580, 1577, 1570, 1577, + 1571, 1572, 1573, 1581, 1582, 1584, 1583, 1574, 1580, 1575, + 1585, 1578, 1583, 1586, 1587, 1581, 1588, 1582, 1590, 1590, + 1591, 1595, 1592, 1593, 1596, 1584, 1585, 1592, 1587, 1594, + 1594, 1597, 1598, 1586, 1599, 1593, 1595, 1588, 1596, 1600, + 1591, 1601, 1603, 1599, 1602, 1605, 1607, 1611, 1601, 1608, + 1598, 1612, 1608, 1602, 1600, 1597, 1602, 1616, 1603, 1611, + 1605, 1609, 1609, 1610, 1610, 1605, 1615, 1613, 1619, 1612, + 1613, 1607, 1614, 1614, 1620, 1617, 1616, 1618, 1622, 1615, + 1617, 1627, 1618, 1621, 1623, 1624, 1630, 1619, 1629, 1625, - 1624, 1625, 1627, 1630, 1621, 1623, 1625, 1628, 1626, 1620, - 1631, 1627, 1628, 1629, 1627, 1632, 1634, 1635, 1636, 1638, - 1632, 1632, 1637, 1639, 1630, 1638, 1642, 1637, 1631, 1641, - 1634, 1642, 1635, 1640, 1640, 1641, 1643, 1644, 1646, 1647, - 1636, 1639, 1643, 1644, 1648, 1650, 1649, 1655, 1650, 1651, - 1648, 1656, 1653, 1647, 1650, 1651, 1657, 0, 1646, 1649, - 1653, 1659, 1658, 1660, 1657, 1661, 1655, 1662, 1663, 1663, - 1656, 1658, 1664, 1666, 1659, 1668, 1660, 1665, 1664, 1661, - 1669, 1662, 1670, 1665, 1667, 1667, 1666, 1671, 1671, 1672, - 1663, 1673, 1674, 1675, 1676, 1668, 1679, 1673, 1669, 1678, + 1620, 1628, 1621, 1623, 1624, 1625, 1623, 1622, 1626, 1626, + 1630, 1627, 1631, 1632, 1628, 1633, 1629, 1634, 1632, 1632, + 1633, 1637, 1638, 1639, 1639, 1640, 1641, 1642, 1631, 1634, + 1643, 1643, 1642, 1646, 1645, 1641, 1647, 1648, 1644, 1645, + 1638, 1640, 1651, 1649, 1652, 1643, 1637, 1644, 1649, 1649, + 1644, 1646, 1653, 1654, 1655, 1648, 1651, 1647, 1654, 1652, + 1655, 1656, 1657, 1657, 1658, 1663, 1659, 1660, 1664, 1661, + 1658, 1659, 1665, 1660, 1653, 1661, 1666, 1667, 1665, 1656, + 1667, 1668, 1664, 1670, 1672, 1663, 1667, 1668, 1673, 1666, + 1674, 1670, 1675, 1676, 57, 1677, 1678, 1679, 1674, 1680, - 1678, 1670, 1672, 1680, 1685, 1681, 1682, 1680, 1683, 1675, - 1681, 1682, 1676, 1683, 1674, 1684, 1679, 1687, 1688, 1689, - 1689, 1690, 1691, 1692, 1684, 1693, 1693, 1685, 1695, 1687, - 1694, 1696, 1699, 1688, 1691, 1695, 1697, 1700, 1702, 1701, - 1690, 1703, 1692, 1696, 1694, 1701, 1704, 1710, 1697, 0, - 1702, 1699, 1704, 1705, 1705, 1706, 1710, 1700, 1706, 1703, - 1707, 1707, 1709, 1711, 1712, 1712, 1713, 1709, 1714, 1711, - 1714, 1715, 1716, 1717, 1715, 1718, 1719, 1720, 1713, 1721, - 1722, 1724, 1720, 1725, 1721, 1723, 1727, 1730, 1725, 1722, - 1726, 0, 1716, 1718, 1719, 1717, 1724, 1723, 1728, 1726, + 1680, 1675, 1685, 1672, 1683, 1686, 1676, 1673, 1677, 1681, + 1678, 1679, 1682, 1684, 1684, 1681, 1687, 1683, 1682, 1688, + 1688, 1680, 1685, 1686, 1689, 1690, 1691, 1692, 1693, 1695, + 1695, 1690, 1696, 1701, 1697, 1687, 1698, 1689, 1697, 1699, + 1700, 1698, 1701, 1692, 1699, 1700, 1693, 1702, 1691, 1704, + 1705, 1708, 1696, 1706, 1706, 1707, 1709, 1710, 1710, 1711, + 1712, 1704, 1716, 1708, 1713, 1705, 1714, 1712, 1717, 1720, + 1702, 1718, 1719, 1711, 1707, 1709, 1713, 1718, 1714, 1721, + 52, 1716, 1722, 1722, 1719, 1721, 1723, 1720, 1717, 1723, + 1724, 1724, 1726, 1727, 1728, 1729, 1729, 1726, 1730, 1731, - 1729, 1733, 1730, 1728, 1735, 1729, 1727, 1731, 1731, 1732, - 1728, 1736, 1726, 1737, 1738, 1732, 1739, 1740, 1739, 1741, - 1741, 1744, 1733, 1735, 1742, 1742, 1743, 1743, 1747, 1737, - 1736, 1740, 1748, 1740, 1738, 1745, 1745, 1746, 1746, 1749, - 1749, 1744, 1750, 1755, 1751, 1752, 1750, 1757, 1752, 1747, - 1751, 1754, 1756, 1748, 1759, 1759, 1758, 1754, 1756, 1758, - 1760, 1755, 1761, 1762, 1762, 1764, 1763, 1761, 1765, 1766, - 1766, 1767, 1757, 1765, 1771, 1769, 1767, 1768, 1770, 1772, - 1760, 1763, 1774, 1768, 1773, 1778, 1764, 1769, 1769, 1769, - 1773, 1776, 1771, 1777, 1769, 1780, 1776, 1776, 1770, 1772, + 1728, 1731, 1727, 1732, 1733, 1734, 1732, 1735, 1736, 1737, + 1730, 1738, 1739, 1741, 1737, 1742, 1738, 1740, 1744, 1747, + 1742, 1739, 1743, 47, 1733, 1735, 1736, 1734, 1741, 1740, + 1745, 1743, 1746, 1750, 1747, 1745, 1752, 1746, 1744, 1748, + 1748, 1749, 1745, 1753, 1743, 1754, 1755, 1749, 1756, 1757, + 1756, 1758, 1758, 1761, 1750, 1752, 1759, 1759, 1760, 1760, + 1764, 1754, 1753, 1757, 1765, 1757, 1755, 1762, 1762, 1763, + 1763, 1766, 1766, 1761, 1767, 1772, 1768, 1769, 1767, 1774, + 1769, 1764, 1768, 1771, 1773, 1765, 1776, 1776, 1775, 1771, + 1773, 1775, 1777, 1772, 1778, 1779, 1779, 1781, 1780, 1778, - 1778, 1779, 1774, 1779, 1781, 1782, 1780, 1777, 1783, 1784, - 1785, 1782, 1786, 1786, 1787, 1788, 1788, 1783, 1789, 1781, - 1790, 1791, 1791, 1792, 1792, 1793, 1796, 1796, 1797, 1784, - 1798, 1785, 1800, 1801, 1803, 1803, 1804, 1802, 1789, 1798, - 1787, 1800, 1790, 1802, 1805, 1793, 1808, 1807, 1806, 1809, - 1809, 1810, 1811, 1797, 1801, 1806, 1807, 1804, 1813, 1805, - 1814, 1815, 1816, 1813, 1817, 1818, 1814, 1821, 1811, 1816, - 1817, 1818, 1808, 1819, 1819, 1820, 1821, 1810, 1822, 1824, - 1820, 1815, 1823, 1825, 1826, 1827, 1825, 1828, 1828, 1829, - 1830, 1824, 1831, 1832, 1835, 1829, 1830, 1839, 1822, 1833, + 1782, 1783, 1783, 1784, 1774, 1782, 1788, 1786, 1784, 1785, + 1787, 1789, 1777, 1780, 1791, 1785, 1790, 1795, 1781, 1786, + 1786, 1786, 1790, 1793, 1788, 1794, 1786, 1797, 1793, 1793, + 1787, 1789, 1795, 1796, 1791, 1796, 1798, 1799, 1797, 1794, + 1800, 1801, 1802, 1799, 1803, 1803, 1804, 1805, 1805, 1800, + 1806, 1798, 1807, 1808, 1808, 1809, 1809, 1810, 1813, 1813, + 1814, 1801, 1815, 1802, 1817, 1818, 1820, 1820, 1821, 1819, + 1806, 1815, 1804, 1817, 1807, 1819, 1822, 1810, 1825, 1824, + 1823, 1826, 1826, 1827, 1828, 1814, 1818, 1823, 1824, 1821, + 1830, 1822, 1831, 1832, 1833, 1830, 1834, 1835, 1831, 1835, - 1836, 1823, 1826, 1833, 1837, 1838, 1838, 1842, 1832, 1837, - 1840, 1827, 1831, 1843, 1835, 1844, 1839, 1843, 1845, 1833, - 1848, 1844, 1836, 1846, 1846, 1840, 1842, 1845, 1847, 1849, - 1849, 1848, 1847, 1850, 1851, 1853, 1848, 1852, 1854, 1855, - 1853, 1856, 1857, 1863, 1858, 1859, 1859, 1856, 1851, 1858, - 1860, 1860, 1863, 1865, 1850, 1864, 1852, 1857, 1854, 1855, - 1861, 1866, 1866, 1873, 1861, 1881, 1864, 1868, 1868, 1869, - 1870, 1864, 1872, 1865, 1869, 1869, 1870, 1874, 1872, 1875, - 1876, 1878, 1874, 1879, 1880, 1883, 1876, 1879, 1882, 1873, - 1881, 1875, 1884, 1878, 1882, 1885, 1880, 1886, 1884, 1888, + 1828, 1833, 1834, 1837, 1825, 1838, 1839, 1839, 1841, 1827, + 1840, 1838, 1842, 1832, 1843, 1840, 1844, 1841, 1845, 1846, + 1847, 1845, 1837, 1848, 1848, 1849, 1852, 1851, 1844, 1850, + 1853, 1849, 1842, 1843, 1853, 1850, 1855, 1846, 1856, 1857, + 1859, 1852, 1858, 1858, 1857, 1862, 1847, 1851, 1860, 1863, + 1853, 1864, 1865, 1863, 1866, 1866, 1855, 1864, 1867, 1859, + 1856, 1865, 1867, 1860, 1862, 1868, 1869, 1869, 1870, 1871, + 1873, 1872, 1874, 1875, 1876, 1873, 1868, 1878, 1885, 1877, + 1876, 1868, 1878, 1871, 1879, 1879, 1880, 1880, 1883, 1870, + 1872, 1881, 1874, 1875, 1877, 1881, 1884, 1883, 1885, 1886, - 1885, 1889, 1892, 1890, 1896, 1892, 1922, 1883, 1890, 1886, - 1922, 1888, 1893, 1893, 1894, 1894, 1895, 1895, 1899, 1897, - 1889, 1898, 1900, 1899, 1896, 1897, 1901, 1898, 1900, 1903, - 1905, 1906, 1909, 1905, 1903, 1901, 1907, 1907, 1910, 1913, - 1911, 1912, 1912, 1906, 1909, 1911, 1914, 1915, 1913, 1918, - 1910, 1914, 1915, 1916, 1917, 1917, 1916, 1919, 1920, 1921, - 1923, 1924, 1925, 1926, 1927, 1923, 1919, 1924, 1931, 1918, - 1928, 1933, 1926, 1930, 1930, 1936, 1920, 1937, 1921, 1932, - 1925, 0, 1927, 1935, 1928, 1930, 1931, 1936, 1932, 1934, - 1934, 1933, 1935, 1939, 1938, 1942, 1942, 1944, 1937, 1938, + 1886, 1888, 1888, 1889, 1890, 1892, 1893, 1884, 1889, 1889, + 1890, 1892, 1884, 1894, 1895, 1896, 1898, 1900, 1894, 1899, + 1901, 1896, 1903, 1899, 1902, 1904, 1895, 1906, 1898, 1900, + 1902, 1904, 1893, 1905, 1908, 1909, 1910, 1912, 1905, 1906, + 1912, 1910, 1913, 1913, 1903, 1901, 1908, 1914, 1914, 1915, + 1915, 1916, 1917, 1918, 1909, 1919, 1920, 1921, 1917, 1918, + 1919, 1925, 1920, 1923, 1925, 1926, 1921, 1929, 1923, 1927, + 1927, 1916, 1930, 1931, 1932, 1932, 1933, 1926, 1931, 1929, + 1936, 1934, 1935, 1936, 1930, 1933, 1934, 1935, 1937, 1937, + 1938, 1939, 1942, 1940, 1941, 1944, 1942, 1943, 1945, 1946, - 1944, 1945, 1946, 1950, 1948, 1951, 1939, 1949, 1960, 1950, - 1952, 1952, 1953, 0, 1953, 1954, 1954, 1945, 1946, 1948, - 1955, 1949, 1951, 1957, 1957, 1958, 1958, 1961, 1955, 1962, - 1963, 1960, 1964, 1961, 1967, 1962, 1965, 1963, 1966, 1966, - 1968, 1969, 1973, 1967, 1971, 1970, 1972, 1974, 1978, 1977, - 0, 1979, 1981, 1969, 1964, 1982, 1965, 1970, 1972, 1971, - 1975, 1968, 1974, 1979, 1980, 1980, 1975, 1984, 1973, 1977, - 1981, 1978, 1984, 1983, 1985, 1982, 1983, 1987, 1988, 1975, - 1988, 1989, 1987, 1990, 1991, 1995, 1993, 1996, 1990, 1997, - 1998, 1991, 1998, 1999, 1985, 1993, 1996, 2002, 2001, 1989, + 1939, 1944, 1943, 1947, 1948, 1950, 1950, 1951, 1946, 1953, + 1938, 1940, 1957, 1941, 1952, 1955, 1945, 1950, 1948, 1954, + 1954, 1947, 1956, 1952, 1955, 1951, 1958, 1959, 1965, 1953, + 1966, 1958, 1968, 1957, 1956, 1962, 1962, 1969, 1964, 1970, + 1959, 1964, 1971, 1980, 1965, 1970, 1966, 1968, 1972, 1972, + 1973, 1969, 1973, 1974, 1974, 1975, 1977, 1977, 1981, 1971, + 1978, 1978, 1982, 1975, 1981, 1983, 1980, 1984, 1982, 1987, + 1985, 1988, 1983, 1986, 1986, 1989, 1990, 1993, 1987, 1991, + 1994, 1992, 1997, 1998, 1999, 1995, 18, 1989, 1990, 1984, + 1985, 1995, 1988, 1992, 1991, 1994, 1999, 2000, 2000, 2001, - 2001, 1997, 2004, 1995, 2003, 2003, 2009, 2006, 2005, 2006, - 2007, 2002, 1999, 2005, 2008, 2007, 2010, 2011, 2013, 2008, - 2012, 2014, 2016, 2011, 2009, 2012, 2017, 2020, 2004, 2014, - 2021, 2013, 2018, 2018, 2019, 2019, 2010, 2022, 2025, 2023, - 2017, 2016, 2020, 2022, 2023, 2024, 2026, 2024, 2027, 2027, - 2021, 2028, 2029, 2029, 2026, 2031, 2025, 2030, 2030, 2033, - 2032, 2035, 2026, 2028, 2031, 2032, 2036, 2037, 2036, 2038, - 2035, 2039, 2040, 2035, 2038, 2038, 2043, 2033, 2042, 2046, - 2039, 2043, 2044, 2047, 2040, 2048, 2050, 2044, 2037, 2051, - 2042, 2053, 2046, 2052, 2048, 2049, 2049, 2054, 2056, 2057, + 2002, 2005, 1997, 1993, 1995, 2003, 1998, 2004, 2003, 2007, + 2009, 2008, 2004, 2008, 2007, 2011, 2013, 2001, 2010, 2015, + 2002, 2005, 2011, 2010, 2016, 2013, 2017, 2018, 2009, 2018, + 2019, 2022, 2021, 2016, 2021, 2023, 2023, 2015, 2017, 2024, + 2026, 2025, 2026, 2027, 2029, 2022, 2025, 2028, 2027, 2019, + 2030, 2031, 2028, 2032, 2033, 2035, 2034, 2031, 2032, 2038, + 2035, 2035, 2029, 2036, 2042, 2024, 2039, 2033, 2034, 2043, + 2030, 2036, 2040, 2040, 2041, 2041, 2044, 2047, 2038, 2042, + 2039, 2045, 2044, 2046, 2048, 2046, 2045, 2049, 2049, 2043, + 2050, 2055, 2048, 2051, 2051, 2047, 2052, 2052, 2053, 2054, - 2058, 2059, 2067, 2047, 2050, 2053, 2059, 2051, 2060, 2052, - 2056, 2057, 2054, 2060, 2061, 2064, 2066, 2068, 2069, 2070, - 2058, 2064, 2066, 2061, 2071, 2067, 2072, 2072, 2073, 2074, - 2074, 2075, 2068, 2071, 2064, 2076, 2069, 2073, 2077, 2076, - 2078, 2079, 2080, 2077, 2070, 2081, 2082, 2080, 2080, 2085, - 2075, 2081, 2082, 2078, 2083, 2094, 2084, 2083, 2088, 2088, - 2089, 2089, 2090, 2079, 2084, 2091, 2091, 2092, 2092, 2085, - 2093, 2090, 2095, 2094, 2096, 2089, 2097, 2097, 2095, 2096, - 2098, 2098, 2093, 2099, 2100, 2102, 2089, 2103, 2099, 2102, - 2100, 2104, 2105, 2107, 2108, 2104, 2109, 2111, 2110, 2108, + 2048, 2057, 2050, 2058, 2054, 2058, 2059, 2053, 2062, 2055, + 2057, 2060, 2061, 2057, 2064, 2068, 2060, 2060, 2065, 2066, + 2062, 2061, 2069, 2065, 2066, 2070, 2064, 2059, 2068, 2071, + 2071, 2072, 2073, 2075, 2070, 2074, 2078, 2076, 2080, 2081, + 2082, 2079, 2069, 2089, 2081, 2082, 2083, 2075, 2078, 2072, + 2073, 2074, 2076, 2079, 2086, 2083, 2088, 2090, 2080, 2091, + 2086, 2092, 2088, 2094, 2094, 2093, 2089, 2095, 2096, 2096, + 2097, 2098, 2090, 2086, 2093, 2098, 2095, 2091, 2099, 2100, + 2101, 2107, 2102, 2099, 2103, 2104, 2092, 2102, 2102, 2097, + 2103, 2104, 2100, 2105, 2116, 2106, 2105, 2110, 2110, 2111, - 2113, 2115, 2111, 2112, 2114, 2116, 2115, 2103, 2117, 2117, - 2118, 2119, 2105, 2110, 2118, 2120, 2113, 2121, 2107, 2109, - 2120, 2112, 2122, 2123, 2114, 2124, 2119, 2116, 2125, 2126, - 2127, 2128, 2128, 2125, 2131, 2123, 2132, 2130, 2133, 2134, - 2122, 2135, 2126, 2121, 2124, 2130, 2136, 2137, 2127, 2138, - 2140, 2142, 2143, 2131, 0, 2132, 2144, 2146, 2146, 2137, - 2135, 2133, 2144, 2134, 2142, 2140, 2143, 2136, 2147, 2145, - 2138, 2145, 2148, 2147, 2149, 2148, 2150, 2156, 2151, 2152, - 2152, 2153, 2153, 2154, 2157, 2154, 2159, 2149, 2155, 2155, - 2150, 2151, 2156, 2158, 2158, 2159, 2165, 2157, 2159, 2160, + 2111, 2107, 2101, 2106, 2112, 2113, 2113, 2114, 2114, 2115, + 2117, 2129, 2116, 2112, 2111, 2118, 2117, 2119, 2119, 2121, + 2118, 2115, 2120, 2120, 2121, 2111, 2122, 2124, 2125, 2126, + 2127, 2124, 2122, 2126, 2130, 2131, 2129, 2132, 2133, 2130, + 2135, 2134, 2136, 2133, 2137, 2138, 2139, 2139, 2125, 2137, + 2127, 2140, 2132, 2141, 2143, 2140, 2135, 2144, 2131, 2134, + 2142, 2145, 2136, 2146, 2147, 2142, 2148, 2138, 2141, 2147, + 2149, 2150, 2150, 2145, 2153, 2144, 2152, 2154, 2155, 2148, + 2143, 2156, 2146, 2157, 2152, 2158, 2159, 2160, 2149, 2162, + 2164, 2166, 2167, 2153, 2167, 2165, 2154, 2166, 2159, 2168, - 2160, 2161, 2161, 2162, 2164, 2166, 2167, 2170, 2162, 2164, - 2168, 2168, 2169, 2169, 2171, 2171, 2165, 2172, 2167, 2173, - 2173, 2174, 2175, 2176, 2176, 2166, 2170, 2175, 2177, 2177, - 2178, 2179, 2180, 2181, 2183, 2172, 2174, 2184, 2184, 2183, - 2179, 2185, 2186, 2186, 2178, 2187, 2180, 2188, 2189, 2190, - 2190, 2189, 2181, 2188, 2191, 2191, 2192, 2193, 2194, 2197, - 2185, 2195, 2195, 2187, 2198, 2190, 2199, 2200, 2201, 2201, - 2202, 2200, 2193, 2203, 2208, 2192, 2204, 2194, 2203, 2197, - 2205, 2199, 2207, 2207, 2210, 2209, 2211, 2198, 2212, 2202, - 2213, 2204, 2209, 2215, 2208, 2205, 2214, 2214, 2210, 2216, + 2168, 2155, 2157, 2164, 2162, 2156, 2158, 2169, 2160, 2165, + 2170, 2171, 2169, 2170, 2172, 2178, 2173, 2174, 2174, 2175, + 2175, 2176, 2179, 2176, 2171, 2177, 2177, 2181, 2172, 2173, + 2178, 2180, 2180, 2182, 2182, 2179, 2181, 2183, 2183, 2181, + 2184, 2186, 2187, 2188, 2189, 2184, 2186, 2190, 2190, 2191, + 2191, 2192, 2193, 2193, 2194, 2197, 2189, 2195, 2195, 2196, + 2197, 2200, 2187, 2188, 2198, 2198, 2199, 2199, 2201, 2202, + 2192, 2203, 2194, 2205, 2196, 2200, 2207, 2201, 2205, 2206, + 2206, 2208, 2208, 2202, 2209, 2210, 2211, 2212, 2212, 2211, + 2203, 2210, 2213, 2213, 2214, 2207, 2215, 2216, 2219, 2216, - 2217, 2216, 2215, 2217, 2211, 2219, 2212, 2220, 2221, 2222, - 2223, 2224, 2220, 2221, 2225, 2226, 2213, 2219, 2217, 2225, - 2217, 2228, 2229, 2223, 2230, 2231, 2228, 2229, 2232, 2233, - 2236, 2231, 2224, 2234, 2222, 2233, 2239, 2235, 2234, 2230, - 2237, 2226, 2235, 2238, 2243, 2239, 2238, 2240, 2241, 2232, - 2242, 2248, 0, 2237, 2244, 2236, 2240, 2241, 2243, 2242, - 2244, 2245, 2246, 2250, 2251, 2251, 2246, 2245, 2252, 2253, - 2253, 2248, 2250, 2255, 2252, 2254, 2257, 2261, 2253, 2260, - 2254, 2258, 2259, 2259, 2263, 2264, 2261, 2265, 2266, 2270, - 2272, 2272, 2257, 2255, 2260, 2255, 2263, 2258, 2271, 2269, + 2218, 2222, 2209, 2212, 2220, 2220, 2223, 2224, 2225, 2226, + 2226, 2215, 2225, 2214, 2227, 2218, 2229, 2219, 2228, 2230, + 2233, 2222, 2224, 2228, 2232, 2232, 2236, 2235, 2234, 2223, + 2237, 2229, 2238, 2227, 2230, 2234, 2239, 2239, 2240, 2242, + 2233, 2235, 2242, 2241, 2236, 2241, 2245, 2240, 2237, 2244, + 2246, 2245, 2247, 2248, 2249, 2246, 2251, 2242, 2238, 2242, + 2250, 2244, 2253, 2254, 2255, 2250, 2248, 2253, 2254, 2257, + 2256, 2261, 2258, 17, 2262, 2249, 2256, 2247, 2258, 2255, + 2259, 2260, 2251, 2264, 2265, 2259, 2260, 2262, 2263, 2266, + 2257, 2263, 2264, 2265, 2267, 2268, 2261, 2271, 2266, 2269, - 2266, 2264, 2265, 2268, 2269, 0, 2268, 2273, 2273, 2270, - 2271, 2275, 2275, 2276, 2277, 2278, 2276, 2279, 2280, 2277, - 2282, 2278, 2285, 2279, 2281, 2281, 2284, 2280, 2283, 2283, - 2286, 2287, 2287, 2288, 2282, 2290, 2285, 2289, 2284, 2288, - 2290, 2292, 2298, 2293, 2296, 2292, 2293, 2294, 2294, 2286, - 2295, 2289, 2297, 2296, 2299, 2295, 2300, 2300, 2299, 2301, - 2303, 2297, 2298, 2304, 2305, 2303, 2306, 2307, 2308, 2309, - 2310, 2307, 2301, 2311, 2309, 2312, 2310, 2313, 2314, 2311, - 2306, 2315, 2316, 2304, 2305, 2319, 2315, 2318, 2308, 2320, - 2328, 2328, 2321, 2312, 2320, 2327, 2313, 2314, 2321, 2318, + 2270, 2271, 2273, 2267, 2275, 2269, 2270, 2276, 2276, 2268, + 2277, 2278, 2278, 2275, 2279, 2280, 2277, 2282, 2283, 2279, + 2278, 2285, 2273, 2284, 2284, 2289, 2294, 2288, 2290, 2286, + 2291, 2294, 2295, 2282, 2283, 2280, 2285, 2280, 2286, 2288, + 2303, 2289, 2291, 2290, 2293, 2296, 2303, 2293, 2297, 2297, + 2298, 2298, 2295, 2300, 2300, 2301, 2302, 2296, 2301, 2304, + 2305, 2302, 2306, 2306, 2307, 2304, 2308, 2308, 2309, 2305, + 2310, 2311, 2312, 2312, 2314, 2313, 2321, 2315, 2307, 2317, + 2309, 2313, 2315, 2317, 2310, 2321, 2318, 2322, 2314, 2318, + 2311, 2319, 2319, 2320, 2323, 2324, 2322, 2326, 2320, 2324, - 2322, 2319, 2323, 2316, 2323, 2325, 2330, 2329, 2322, 2327, - 2329, 2331, 2331, 2334, 2325, 2335, 2336, 2334, 2337, 2337, - 2338, 2335, 2341, 2341, 2343, 2345, 2349, 2346, 2336, 2338, - 2350, 2349, 2330, 2351, 2359, 2352, 2353, 2353, 2351, 2345, - 2352, 2357, 2343, 2346, 2355, 2355, 2360, 2357, 2358, 2358, - 2359, 2363, 2361, 2364, 2365, 2365, 2350, 2361, 2367, 2369, - 2368, 2370, 2372, 2372, 2374, 2364, 2368, 2367, 2360, 2373, - 2363, 2375, 2373, 2377, 2377, 2379, 2370, 2369, 2378, 2378, - 2379, 2380, 2381, 2374, 2383, 2382, 2383, 2384, 2385, 2375, - 2382, 2381, 2386, 2387, 2388, 2389, 2390, 2390, 2387, 2380, + 2325, 2325, 2328, 2329, 2330, 2331, 2333, 2328, 2332, 2335, + 2326, 2334, 2332, 2337, 2323, 2335, 2334, 2338, 2339, 2331, + 2340, 2336, 2341, 2329, 2330, 2340, 2333, 2336, 2343, 2344, + 2345, 2337, 2346, 2347, 0, 2345, 2338, 2339, 2346, 2350, + 2343, 2347, 2348, 2341, 2348, 2344, 2352, 2355, 2350, 2353, + 2353, 2354, 2356, 2356, 2354, 2359, 2360, 2361, 2363, 2359, + 2352, 2368, 2360, 2362, 2362, 2366, 2366, 2363, 2370, 2361, + 2371, 2374, 2375, 2355, 2385, 2376, 2374, 2384, 2377, 2368, + 2376, 2388, 2370, 2377, 2378, 2378, 2371, 2380, 2380, 2382, + 2383, 2383, 2386, 2384, 2390, 2382, 2385, 2386, 2375, 2389, - 2389, 2384, 2385, 2394, 2386, 2391, 2391, 2392, 2392, 2393, - 2393, 2395, 2396, 2399, 2388, 2394, 2400, 2396, 2397, 2397, - 2398, 2398, 2401, 2402, 2404, 2399, 2403, 2403, 2400, 2395, - 2405, 2405, 2406, 2406, 2407, 2408, 2410, 2409, 2411, 2402, - 2413, 2412, 2401, 2404, 2409, 2407, 2412, 2408, 2410, 2414, - 2415, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2411, 2430, - 2413, 2416, 2425, 2422, 2423, 2423, 2426, 2424, 2419, 2414, - 2428, 2421, 2429, 2432, 2418, 2422, 2424, 2425, 0, 2417, - 2420, 2426, 2430, 2431, 2433, 2434, 2431, 2432, 2428, 2433, - 2434, 2435, 2435, 2442, 2429, 2436, 2436, 2437, 2437, 2439, + 2388, 2391, 2389, 2392, 2392, 2394, 2390, 2396, 2397, 2395, + 2399, 2399, 2401, 2391, 2394, 2395, 2400, 2402, 2407, 2400, + 2404, 2404, 2415, 2397, 2406, 2396, 2405, 2405, 2408, 2406, + 2410, 2401, 2410, 2409, 2411, 2402, 2407, 2408, 2409, 2412, + 2413, 2414, 2415, 2422, 2416, 2480, 2414, 2480, 2411, 2416, + 2417, 2417, 2413, 2412, 2418, 2418, 2419, 2419, 2420, 2420, + 2421, 2422, 2423, 2424, 2424, 2425, 2425, 2423, 2426, 2427, + 2428, 2429, 2421, 2430, 2430, 2431, 2432, 2432, 2433, 2433, + 2426, 2427, 2434, 2435, 2436, 2437, 2438, 2429, 2440, 2441, + 2428, 2436, 2444, 2434, 2431, 2435, 2439, 2437, 2442, 2442, - 2439, 2441, 2441, 2443, 2444, 2445, 2447, 2448, 2449, 2450, - 2451, 2442, 2452, 2453, 2443, 2453, 2454, 2455, 2461, 2451, - 2445, 2456, 2462, 2444, 2460, 2448, 2447, 2457, 2457, 2450, - 2449, 2462, 2452, 2459, 2459, 2455, 2454, 2465, 2460, 2456, - 2461, 2463, 2463, 2466, 2466, 2467, 2465, 2468, 2469, 2470, - 2471, 2472, 2474, 2477, 2473, 2469, 2475, 2475, 2476, 2476, - 2478, 2479, 2483, 2467, 2470, 2468, 2482, 2479, 2471, 2472, - 2473, 2474, 2482, 2477, 2480, 2480, 2481, 2481, 2478, 2484, - 2483, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2487, 2491, - 2496, 2490, 2492, 2492, 2484, 2493, 2486, 2493, 2494, 2494, + 2445, 2439, 2443, 2446, 2447, 2448, 2438, 2455, 2440, 2441, + 2449, 2443, 2450, 2450, 2451, 2452, 2446, 2453, 2444, 2448, + 2445, 2456, 2449, 2451, 2457, 2455, 2458, 2459, 2447, 2458, + 2452, 2460, 2453, 2461, 2462, 2462, 2460, 2469, 2461, 2463, + 2463, 2459, 2470, 2456, 2464, 2464, 2471, 2457, 2466, 2466, + 2468, 2468, 2472, 2470, 2474, 2469, 2476, 2475, 2482, 2477, + 2478, 2479, 2481, 2484, 2484, 2471, 2483, 2472, 2488, 2478, + 2486, 2486, 2487, 2494, 2474, 2475, 2482, 2495, 2476, 2477, + 2489, 2479, 2481, 2492, 2483, 2497, 2487, 2490, 2490, 2489, + 2488, 2494, 2492, 2493, 2493, 2495, 2496, 2498, 2499, 2501, - 2485, 2498, 2499, 2500, 2488, 2489, 2501, 2502, 2503, 2496, - 2498, 2504, 2502, 2507, 2508, 2500, 2510, 2508, 2509, 2509, - 2511, 2499, 2512, 2512, 2515, 2513, 2501, 2518, 2503, 2513, - 2504, 2510, 2516, 2507, 2517, 2517, 2516, 2520, 2511, 2515, - 2518, 2521, 2522, 2523, 2523, 2525, 2526, 2527, 2528, 2528, - 2529, 2527, 2520, 2530, 2530, 2526, 2532, 2525, 2531, 2533, - 2534, 2521, 2522, 2531, 2541, 2532, 2535, 2535, 2543, 2529, - 2540, 2540, 2534, 2542, 2542, 2533, 2544, 2548, 2545, 2546, - 2555, 2543, 2547, 2547, 2550, 2550, 2541, 2545, 2546, 2544, - 2553, 2554, 2548, 2556, 2555, 2553, 2554, 2557, 2556, 2558, + 2497, 2500, 2504, 2496, 2502, 2502, 2503, 2503, 2505, 2507, + 2507, 2508, 2508, 2506, 2509, 2498, 2499, 2500, 2501, 2506, + 2509, 2510, 2504, 2511, 2512, 2514, 2505, 2513, 2515, 2516, + 2514, 2517, 2518, 2520, 2518, 2520, 2517, 2523, 2511, 2510, + 2526, 2513, 2525, 2512, 2519, 2519, 2521, 2521, 2515, 2516, + 2527, 2525, 2528, 2529, 2530, 2534, 2523, 2531, 2529, 2526, + 2535, 2538, 2527, 2535, 2536, 2536, 2537, 2539, 2539, 2540, + 2541, 2544, 2528, 2542, 2530, 2534, 2531, 2542, 2545, 2538, + 2540, 2537, 2545, 2546, 2546, 2541, 2544, 2547, 2549, 2550, + 2551, 2552, 2552, 2554, 2556, 2555, 2557, 2557, 2556, 2558, - 2559, 2562, 2560, 2563, 2565, 2557, 2564, 2571, 2563, 2559, - 2560, 2564, 2566, 2566, 2567, 2567, 2562, 2569, 2558, 2565, - 2568, 2568, 2570, 2572, 2569, 2571, 2573, 2570, 2574, 2575, - 2575, 2576, 2573, 2574, 2577, 2578, 2578, 2579, 2579, 2577, - 2582, 2572, 2583, 2583, 2584, 2585, 2576, 2584, 2588, 2586, - 2585, 2585, 2587, 2582, 2586, 2589, 2590, 2587, 2591, 2592, - 2590, 2589, 2588, 2591, 2593, 2594, 2595, 2598, 2592, 2596, - 2597, 2599, 2598, 2594, 2601, 2596, 2597, 2602, 2605, 2593, - 2609, 2601, 2602, 2599, 2607, 2603, 2608, 2595, 2603, 2607, - 2605, 2608, 2610, 2611, 2612, 2613, 2613, 2614, 2609, 2617, + 2547, 2559, 2559, 2549, 2555, 2554, 2560, 2561, 2562, 2550, + 2551, 2560, 2570, 2563, 2564, 2564, 2561, 2572, 2558, 2569, + 2569, 2571, 2571, 2573, 2562, 2563, 2574, 2577, 2575, 2584, + 2572, 2576, 2576, 2587, 2570, 2574, 2573, 2575, 2579, 2579, + 2582, 2583, 2577, 2584, 2585, 2582, 2583, 2586, 2588, 2585, + 2589, 2591, 2587, 2594, 2592, 2586, 2593, 2588, 2589, 2592, + 2598, 2593, 2595, 2595, 2596, 2596, 2591, 2598, 2594, 2597, + 2597, 2599, 2600, 2601, 2602, 0, 2599, 2603, 2604, 2604, + 2602, 2605, 2603, 2606, 2607, 2607, 2608, 2608, 2606, 2611, + 2600, 2601, 2612, 2612, 2613, 2614, 2605, 2613, 2615, 2616, - 2622, 2618, 2611, 2612, 2619, 2610, 2614, 2618, 2623, 2626, - 2619, 2624, 2625, 2625, 2627, 2628, 2626, 2617, 2631, 2622, - 2629, 2630, 2630, 2633, 2628, 2635, 2638, 2636, 2623, 2644, - 2624, 2636, 0, 2627, 2644, 2629, 2639, 2631, 2633, 2637, - 2637, 2640, 2639, 2641, 2650, 2635, 2643, 2640, 2646, 2641, - 2647, 2638, 2642, 2642, 2643, 2649, 2651, 2646, 2650, 2649, - 2653, 2653, 2654, 2647, 2655, 2655, 2656, 2656, 2658, 2658, - 2659, 2651, 2660, 2664, 2659, 2662, 2662, 2660, 2665, 2666, - 2654, 2667, 2669, 2665, 2670, 2670, 2667, 2667, 2672, 2672, - 2675, 2666, 2677, 2664, 2673, 2673, 2674, 2679, 2683, 2674, + 2614, 2614, 2611, 2615, 2616, 2617, 2618, 2619, 2620, 2621, + 2622, 2619, 2618, 2620, 2623, 2624, 2627, 2625, 2621, 2617, + 2626, 2627, 2623, 2625, 2630, 2622, 2626, 2628, 2631, 2632, + 2634, 2630, 2632, 2631, 2638, 2636, 2624, 2639, 2637, 2628, + 2636, 2646, 2634, 2637, 2640, 2641, 2642, 2642, 2643, 2647, + 2639, 2651, 2638, 2640, 2641, 2647, 2648, 2643, 2652, 2646, + 2653, 2655, 2648, 2654, 2654, 2656, 2657, 2658, 2655, 2660, + 2651, 2659, 2659, 2664, 2662, 2657, 2665, 2667, 2652, 2653, + 2665, 2668, 2658, 0, 2656, 2666, 2666, 2668, 2660, 2662, + 2669, 2670, 2672, 2664, 2671, 2671, 2669, 2670, 2673, 2675, - 2680, 2680, 2669, 2675, 2681, 2681, 2682, 2682, 2684, 2684, - 2677, 2685, 2686, 2683, 2687, 2688, 2690, 2679, 2689, 2689, - 2690, 2688, 2695, 2696, 2685, 2700, 2694, 2697, 2687, 2698, - 2686, 2694, 2694, 2699, 2701, 2698, 2702, 2702, 2701, 2699, - 2707, 2705, 2710, 2696, 2713, 2695, 2705, 2697, 2707, 2708, - 2700, 2711, 2708, 2714, 2711, 2712, 2712, 2715, 2714, 2716, - 2717, 2713, 2713, 2718, 2718, 2720, 2719, 2710, 2720, 2721, - 2722, 2726, 2724, 2723, 2717, 2715, 2720, 2724, 2724, 2716, - 2719, 2723, 2725, 2721, 2727, 2727, 2732, 2725, 2725, 2722, - 2726, 2728, 2728, 2729, 2729, 2730, 2730, 2731, 2731, 2733, + 2672, 2676, 2667, 2673, 2678, 2681, 2679, 2680, 2675, 2679, + 2678, 2680, 2682, 2685, 2676, 2684, 2684, 2686, 2686, 2681, + 2687, 2687, 2689, 2689, 2690, 2691, 2695, 2682, 2690, 2696, + 2691, 2685, 2693, 2693, 2696, 2697, 2698, 2700, 2701, 2701, + 2710, 2698, 2698, 2703, 2703, 2706, 2695, 2697, 2704, 2704, + 2705, 2708, 2714, 2705, 2711, 2711, 2717, 2700, 2706, 2716, + 2710, 2712, 2712, 2713, 2713, 2715, 2715, 2714, 2718, 2708, + 2719, 2721, 2716, 2726, 2717, 2721, 2719, 2720, 2720, 2725, + 2727, 2728, 2718, 2729, 2725, 2725, 2730, 2731, 2736, 2729, + 2732, 2738, 2730, 2736, 2732, 2741, 2726, 2733, 2733, 2738, - 2734, 2735, 2732, 2736, 2733, 2737, 2738, 2739, 2736, 2740, - 2741, 2738, 2743, 2743, 2744, 2744, 2739, 2746, 2745, 2749, - 2734, 2745, 2748, 2748, 2737, 2754, 2749, 2735, 2751, 2740, - 2741, 2750, 2750, 2751, 2754, 2746, 2753, 2753, 2755, 2756, - 2758, 2759, 2759, 2761, 2762, 2760, 2775, 2755, 2756, 2760, - 2763, 2764, 2761, 2765, 2776, 2763, 2763, 2766, 2758, 2762, - 2770, 2766, 2765, 2774, 2764, 2770, 2771, 2771, 2773, 2773, - 2778, 2775, 2776, 2779, 2782, 2783, 2784, 2774, 2787, 2778, - 2785, 2789, 2791, 2792, 2783, 2779, 2785, 2791, 2792, 2794, - 2787, 2793, 2793, 2797, 2797, 2796, 2784, 2797, 2794, 2782, + 2727, 2728, 2739, 2742, 2744, 2739, 2742, 2743, 2743, 2745, + 2746, 2747, 2731, 2748, 2745, 2749, 2749, 2753, 2750, 2752, + 2741, 2744, 2744, 2751, 2758, 2758, 2751, 2748, 2746, 2754, + 2757, 2747, 2750, 2752, 2751, 2755, 2753, 2754, 2756, 2763, + 2755, 2755, 2765, 2756, 2756, 2759, 2759, 2760, 2760, 2757, + 2761, 2761, 2762, 2762, 2764, 2763, 2766, 2768, 2767, 2764, + 2769, 2770, 2765, 2767, 2771, 2769, 2772, 2774, 2774, 2777, + 2770, 2775, 2775, 2780, 2776, 2871, 2768, 2776, 2779, 2779, + 2780, 2789, 2766, 2871, 2771, 2782, 2772, 2777, 2781, 2781, + 2782, 2784, 2784, 2785, 2786, 2787, 2790, 2790, 2792, 2789, - 2796, 2802, 2789, 2799, 2799, 2800, 2800, 2801, 2801, 2803, - 2802, 2804, 2805, 2807, 2811, 2808, 2809, 2805, 2813, 2807, - 2808, 2809, 2810, 2810, 2812, 2815, 2814, 2816, 2817, 2803, - 2804, 2814, 2811, 2816, 2818, 2818, 2812, 2820, 2824, 2813, - 2821, 2820, 2822, 2815, 2825, 2821, 2826, 2822, 2823, 2823, - 2828, 2830, 2830, 2817, 2832, 2833, 2834, 2824, 2836, 2825, - 2834, 2826, 2835, 2837, 2838, 2840, 2840, 2832, 2833, 2842, - 2828, 2835, 2838, 2839, 2836, 2841, 2843, 2845, 2839, 2844, - 2844, 2855, 2837, 2851, 2841, 2848, 2848, 2842, 2849, 2849, - 2853, 2853, 2856, 2857, 2858, 2861, 2845, 2855, 2862, 2858, + 2793, 2791, 2785, 2786, 2787, 2791, 2794, 2792, 2795, 2796, + 2808, 2797, 2798, 2803, 2796, 2796, 2799, 2794, 2803, 2793, + 2799, 2798, 2807, 2795, 2797, 2804, 2804, 2806, 2806, 2809, + 2811, 2812, 2815, 2816, 2817, 2808, 2807, 2820, 2818, 2811, + 2822, 2824, 2816, 2812, 2818, 2825, 2824, 2809, 0, 2820, + 2825, 2826, 2826, 2827, 2817, 2829, 2836, 2815, 2832, 2832, + 2829, 2822, 2827, 2830, 2830, 2833, 2833, 2830, 2834, 2834, + 2835, 2837, 2838, 2841, 2840, 2844, 2836, 2838, 2841, 2835, + 2840, 2842, 2843, 2843, 2845, 2846, 2842, 2847, 2849, 2848, + 2837, 2850, 2847, 2844, 2849, 2853, 2845, 2851, 2851, 2853, - 2860, 2860, 2843, 2863, 2851, 2865, 2865, 2867, 2856, 2857, - 2866, 2868, 2868, 2871, 2872, 2861, 2874, 2877, 2873, 2881, - 2872, 2862, 2863, 2873, 2866, 2879, 2867, 2875, 2875, 2876, - 2876, 2878, 2878, 2871, 2880, 2882, 2879, 2877, 2874, 2881, - 2883, 2882, 2884, 2880, 2885, 2886, 2886, 2887, 2888, 2888, - 2887, 2878, 2893, 2892, 2884, 2894, 2895, 2895, 2898, 2883, - 2896, 2894, 2897, 2896, 2885, 2892, 2900, 2903, 2897, 2901, - 2901, 2900, 2893, 2902, 2904, 2905, 2898, 2908, 2902, 2909, - 2904, 2906, 2906, 2910, 2913, 2911, 2903, 2912, 2912, 2908, - 2914, 2915, 2905, 2905, 2917, 2917, 2920, 2909, 2911, 2919, + 2854, 2856, 2856, 2855, 2857, 2854, 2846, 2848, 2855, 2858, + 2859, 2861, 2863, 2863, 2865, 2866, 2850, 2867, 2869, 2870, + 2868, 2867, 2875, 2857, 2858, 2859, 2876, 2865, 2866, 2868, + 2872, 2861, 2873, 2873, 2869, 2872, 2874, 2878, 2870, 2884, + 2875, 2877, 2877, 2881, 2881, 2874, 2882, 2882, 2886, 2886, + 2888, 2889, 2876, 2890, 2891, 2894, 2878, 2893, 2893, 2891, + 2884, 2895, 2896, 2897, 2898, 2901, 2888, 2889, 2896, 2890, + 2895, 2900, 2900, 2902, 2906, 2894, 2903, 2903, 2907, 2901, + 2908, 2909, 2912, 2898, 2907, 2908, 2897, 2910, 2910, 2911, + 2911, 2915, 2902, 2914, 2906, 2913, 2913, 2916, 2919, 2917, - 2915, 2918, 2918, 2913, 2919, 2926, 2914, 2921, 2910, 2925, - 2920, 2933, 2921, 2922, 2922, 2923, 2923, 2924, 2924, 2927, - 2935, 2928, 2925, 2930, 2930, 2927, 2928, 2936, 2937, 2941, - 2933, 2926, 2938, 2938, 2940, 2940, 2942, 2943, 2944, 2944, - 2945, 2945, 2935, 2941, 2948, 2947, 2943, 2949, 2950, 2936, - 2937, 2947, 2964, 2950, 2953, 2953, 2942, 2955, 2955, 2957, - 2956, 2958, 2959, 2960, 2948, 2956, 2949, 2958, 2961, 2961, - 2962, 2960, 2964, 2957, 2959, 2962, 2965, 2966, 2967, 2968, - 2970, 2971, 2966, 2972, 2973, 2968, 2976, 2975, 2970, 2977, - 2967, 2978, 2979, 2981, 2982, 2983, 2965, 2979, 2981, 2986, + 2915, 2918, 2912, 2909, 2914, 2917, 2920, 2921, 2921, 2922, + 2919, 2927, 2922, 2923, 2923, 2913, 2928, 2916, 2929, 2933, + 2918, 2930, 2930, 2927, 2929, 2931, 2920, 2932, 2931, 2935, + 2936, 2936, 2938, 2932, 2935, 2937, 2928, 2933, 2939, 2940, + 2937, 2941, 2941, 2943, 2939, 2944, 2945, 2946, 2947, 2947, + 2948, 2938, 2949, 2950, 2961, 2943, 2940, 2940, 2952, 2952, + 2946, 2954, 2950, 2944, 2953, 2953, 2954, 2955, 2949, 2948, + 2956, 2945, 2957, 2957, 2960, 2956, 2958, 2958, 2959, 2959, + 2961, 2955, 2962, 2968, 2963, 2965, 2965, 2960, 2962, 2963, + 2970, 2971, 2972, 2973, 2973, 2975, 2975, 2976, 2977, 2979, - 2971, 2983, 2976, 2972, 2973, 2975, 2977, 2977, 2984, 2988, - 2991, 2991, 2978, 2984, 2982, 2987, 2992, 2992, 2987, 2986, - 2993, 2999, 2988, 2998, 2993, 2997, 2997, 0, 2998, 3000, - 3000, 3002, 3002, 3003, 3003, 3009, 3003, 3010, 3004, 3004, - 2999, 3004, 3005, 3005, 3006, 3005, 3008, 3008, 3006, 3013, - 3014, 3010, 3015, 3009, 3016, 3016, 3019, 3015, 3020, 3021, - 3023, 3025, 3022, 3021, 3026, 3020, 3027, 3027, 3034, 3013, - 3014, 3022, 3030, 3026, 3034, 3023, 3028, 3028, 3035, 3025, - 3031, 3019, 3029, 3029, 3032, 3031, 3033, 3030, 3037, 3036, - 3038, 3033, 3033, 3032, 3039, 3038, 3032, 3040, 0, 3039, + 2980, 2978, 2968, 2981, 2981, 2982, 2982, 2985, 0, 2980, + 2984, 2986, 2970, 2971, 2972, 2978, 2984, 2977, 2994, 2979, + 2987, 2990, 2990, 2976, 2996, 2987, 2993, 2985, 2992, 2992, + 2986, 2993, 2994, 2995, 2997, 2999, 2996, 2998, 2998, 2995, + 2999, 3001, 2997, 3002, 3003, 3004, 3005, 3007, 3008, 3003, + 3009, 3010, 3005, 3013, 3012, 3007, 3014, 3004, 3015, 3016, + 3018, 3001, 3019, 3002, 3016, 3018, 3023, 3008, 0, 3013, + 3009, 3010, 3012, 3014, 3014, 3020, 3025, 3024, 3021, 3015, + 3024, 3020, 3019, 3021, 3028, 3028, 3023, 3029, 3029, 3025, + 3030, 3034, 3034, 3035, 3030, 3036, 3037, 3037, 3035, 3039, - 3041, 3041, 3042, 3035, 3036, 3043, 3044, 3044, 3042, 3037, - 3046, 3043, 3045, 3045, 3047, 3053, 3040, 3050, 3050, 3047, - 3052, 3052, 3056, 3056, 3053, 3046, 3057, 3057, 3058, 3058, - 3059, 3059, 3060, 3060, 3061, 3061, 3062, 3062, 3064, 3065, - 3065, 3066, 3067, 3068, 3072, 3070, 3074, 3064, 3071, 3071, - 3066, 3076, 3073, 3080, 3067, 3075, 3075, 3082, 3074, 3072, - 3077, 3077, 3084, 3068, 3070, 3073, 3076, 3081, 3083, 3083, - 3081, 3080, 3086, 3087, 3088, 3086, 3089, 3090, 3092, 3087, - 3084, 3089, 3091, 3082, 3094, 3098, 3095, 3099, 3088, 3098, - 3094, 3102, 3112, 3117, 3092, 3095, 3090, 3123, 3110, 3121, + 3039, 3040, 3040, 3043, 3040, 3041, 3041, 3043, 3041, 3042, + 3042, 3045, 3042, 3046, 3036, 3048, 3045, 3047, 3047, 3052, + 3049, 3053, 3046, 3054, 3055, 3055, 3058, 3060, 3054, 3059, + 3062, 3060, 3064, 3048, 3049, 3061, 3059, 3065, 0, 3052, + 3069, 3053, 3066, 3066, 3061, 3062, 3065, 3067, 3067, 3070, + 3064, 3058, 3068, 3068, 3070, 3069, 3071, 3072, 3073, 3074, + 3075, 3076, 3072, 3072, 3073, 3071, 3077, 3078, 3071, 3079, + 3081, 3077, 3078, 3080, 3080, 3075, 3081, 3082, 3083, 3083, + 3084, 3084, 3076, 3082, 3074, 3085, 3086, 3092, 3079, 3089, + 3089, 3086, 3091, 3091, 3095, 3095, 3092, 3096, 3096, 3103, - 3091, 3110, 3099, 3113, 3113, 3112, 3114, 3114, 3115, 3115, - 3118, 3119, 3120, 3121, 3124, 3119, 3117, 3102, 3125, 3118, - 3123, 3127, 3126, 3125, 3126, 3124, 3128, 3128, 3129, 3130, - 3132, 3131, 3120, 3133, 3135, 3134, 3127, 3137, 3138, 3136, - 3139, 3129, 3137, 3135, 3140, 3139, 3132, 3141, 3130, 3131, - 3134, 3136, 3141, 3145, 3146, 3147, 3147, 3148, 3133, 3138, - 3149, 3149, 3150, 3150, 3140, 3153, 3148, 3145, 3151, 3151, - 3152, 3152, 3154, 3155, 3146, 3156, 3155, 3157, 3158, 3159, - 3156, 3160, 3157, 3161, 3153, 3163, 3162, 3160, 3164, 3164, - 3163, 3165, 3154, 3168, 3159, 3166, 3166, 3161, 3162, 3167, + 3085, 3097, 3097, 3098, 3098, 3099, 3099, 3100, 3100, 3101, + 3101, 3102, 3102, 3105, 3106, 3106, 3108, 3107, 3109, 3113, + 3111, 3115, 3105, 3112, 3112, 3103, 3107, 3114, 3108, 3116, + 3116, 3117, 3121, 3115, 3113, 3118, 3118, 3123, 3109, 3111, + 3114, 3122, 3124, 3124, 3122, 3127, 3117, 3125, 3127, 3128, + 3121, 3130, 3129, 3131, 3133, 3128, 3130, 3132, 3135, 3136, + 3143, 3140, 3160, 3123, 3135, 3125, 3129, 3139, 3136, 3152, + 3133, 3139, 3131, 3163, 3152, 3132, 3140, 3153, 3155, 3166, + 3153, 3156, 3156, 3157, 3157, 3160, 3143, 3158, 3158, 3161, + 3162, 3155, 3164, 3163, 3162, 3168, 3167, 3169, 3161, 3169, - 3167, 3169, 3172, 3158, 3170, 3170, 3174, 3179, 3168, 3177, - 3177, 3165, 3178, 3178, 3180, 3179, 3181, 3172, 3183, 3182, - 3169, 3184, 3181, 3185, 3174, 3182, 3186, 3187, 3187, 3189, - 3189, 3186, 3183, 3180, 3184, 3192, 3195, 3193, 3198, 3196, - 3199, 3200, 3185, 3196, 3203, 3199, 3201, 3204, 3202, 3205, - 3195, 3209, 3204, 3211, 3205, 3210, 3192, 3193, 3198, 3201, - 3200, 3202, 3214, 3203, 3206, 3206, 3212, 3212, 3214, 3213, - 3219, 3209, 3211, 3210, 3213, 3215, 3215, 3216, 3217, 3218, - 3220, 3227, 3216, 3217, 3218, 3223, 3220, 3222, 3222, 3219, - 3223, 3224, 3224, 3226, 3228, 3229, 3230, 3226, 3231, 3232, + 3168, 3170, 3166, 3171, 3171, 3172, 3164, 3167, 3173, 3175, + 3174, 3176, 3178, 3181, 3177, 3180, 3170, 3182, 3172, 3179, + 3180, 3178, 3182, 3183, 3183, 3175, 3184, 3173, 3174, 3177, + 3185, 3179, 3190, 3189, 3181, 3185, 3176, 3191, 3191, 3192, + 3193, 3193, 3194, 3194, 3195, 3195, 3184, 3189, 3192, 3196, + 3196, 3197, 3190, 3198, 3199, 3200, 3201, 3199, 3202, 3203, + 3200, 3201, 3204, 3205, 3206, 3209, 3207, 3213, 3204, 3214, + 3197, 3207, 0, 3198, 3203, 3219, 3206, 3205, 3208, 3208, + 3210, 3210, 3213, 3202, 3217, 3209, 3212, 3212, 3214, 3215, + 3215, 3222, 3222, 3219, 3223, 3223, 3224, 3225, 3228, 3217, - 3227, 3228, 3240, 3233, 3231, 3235, 3235, 3237, 3237, 3241, - 3238, 3242, 3239, 3247, 3229, 3230, 3233, 3239, 3232, 3238, - 3245, 3240, 3238, 3249, 3242, 3243, 3243, 3244, 3241, 3248, - 3248, 3254, 3244, 3245, 3250, 3250, 3251, 3251, 3252, 3247, - 3253, 3256, 3249, 3252, 3255, 3255, 3256, 3253, 3259, 3257, - 3254, 3257, 3258, 3258, 3260, 3259, 3261, 3262, 3263, 3265, - 3265, 3260, 3262, 3266, 3268, 3269, 3270, 3271, 3275, 3268, - 3269, 3272, 3272, 3274, 3274, 3261, 3276, 3263, 3277, 3277, - 3278, 3278, 3266, 3279, 3289, 3270, 3271, 3275, 3281, 3281, - 3279, 3282, 3282, 3283, 3285, 3276, 3288, 3290, 0, 3285, + 3226, 3227, 3229, 3230, 3224, 3231, 3226, 3227, 3232, 3232, + 3231, 3237, 3228, 3234, 3234, 3229, 3225, 3238, 3243, 3240, + 3241, 3244, 3230, 3245, 3241, 3248, 3244, 3246, 3247, 3249, + 3250, 3254, 3237, 3240, 3249, 3250, 3255, 3238, 3243, 3256, + 3246, 3247, 3245, 3259, 3248, 3251, 3251, 3257, 3257, 3259, + 3258, 3254, 3260, 3260, 3255, 3258, 3261, 3262, 3256, 3263, + 3264, 3261, 3262, 3265, 3263, 3267, 3267, 3268, 3272, 3265, + 3269, 3269, 3268, 3271, 3273, 3274, 3275, 3271, 3276, 3264, + 3277, 3273, 3285, 3278, 3276, 3280, 3280, 3272, 3282, 3282, + 3286, 3283, 3284, 3287, 3274, 3275, 3278, 3284, 3290, 3277, - 3283, 3288, 0, 3289, 3291, 3291, 3292, 3292, 0, 0, - 0, 0, 0, 0, 0, 0, 3290, 3296, 3296, 3296, - 3296, 3296, 3296, 3296, 3297, 3297, 3297, 3297, 3297, 3297, - 3297, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3299, 3299, - 3299, 3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, - 3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301, 3302, - 3302, 3302, 3302, 3302, 3302, 3302, 3304, 3304, 0, 3304, - 3304, 3304, 3304, 3305, 3305, 0, 0, 0, 3305, 3305, - 3306, 3306, 0, 0, 3306, 0, 3306, 3307, 0, 0, - 0, 0, 0, 3307, 3308, 3308, 0, 0, 0, 3308, + 3283, 3285, 3289, 3283, 3288, 3288, 3287, 3289, 3292, 3286, + 3294, 3290, 3293, 3293, 3295, 3295, 3296, 3296, 3297, 3298, + 3299, 3300, 3300, 3297, 0, 3301, 3298, 3303, 3303, 3294, + 3301, 3302, 3306, 3302, 3292, 3304, 3305, 3308, 3311, 3299, + 3307, 3315, 3304, 3305, 3313, 3307, 3310, 3310, 3314, 3313, + 3316, 3306, 3320, 3314, 3317, 3317, 3308, 3311, 3319, 3319, + 3315, 3321, 3322, 3322, 3323, 3323, 3324, 3326, 3326, 3316, + 3328, 3320, 3334, 3324, 3327, 3327, 3330, 3328, 3333, 3335, + 3321, 3330, 0, 3333, 3336, 3336, 3337, 3337, 0, 0, + 0, 3334, 0, 0, 0, 0, 0, 0, 3335, 3341, - 3308, 3309, 0, 0, 0, 0, 0, 3309, 3310, 3310, - 0, 3310, 3310, 3310, 3310, 3311, 0, 0, 0, 0, - 0, 3311, 3312, 3312, 0, 0, 0, 3312, 3312, 3313, - 3313, 0, 3313, 3313, 3313, 3313, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, - 3295, 3295, 3295, 3295, 3295, 3295, 3295 + 3341, 3341, 3341, 3341, 3341, 3341, 3342, 3342, 3342, 3342, + 3342, 3342, 3342, 3343, 3343, 3343, 3343, 3343, 3343, 3343, + 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3345, 3345, 3345, + 3345, 3345, 3345, 3345, 3346, 3346, 3346, 3346, 3346, 3346, + 3346, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3349, 3349, + 0, 3349, 3349, 3349, 3349, 3350, 3350, 0, 0, 0, + 3350, 3350, 3351, 3351, 0, 0, 3351, 0, 3351, 3352, + 0, 0, 0, 0, 0, 3352, 3353, 3353, 0, 0, + 0, 3353, 3353, 3354, 0, 0, 0, 0, 0, 3354, + 3355, 3355, 0, 3355, 3355, 3355, 3355, 3356, 0, 0, + + 0, 0, 0, 3356, 3357, 3357, 0, 0, 0, 3357, + 3357, 3358, 3358, 0, 3358, 3358, 3358, 3358, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, + 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340 } ; static yy_state_type yy_last_accepting_state; @@ -3143,7 +3173,7 @@ static void config_end_include(void) } #endif -#line 3145 "" +#line 3175 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@ -3152,9 +3182,9 @@ static void config_end_include(void) #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif -#line 3154 "" +#line 3184 "" -#line 3156 "" +#line 3186 "" #define INITIAL 0 #define quotedstring 1 @@ -3378,7 +3408,7 @@ YY_DECL { #line 211 "./util/configlexer.lex" -#line 3380 "" +#line 3410 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3411,13 +3441,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 >= 3296 ) + if ( yy_current_state >= 3341 ) 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] != 6437 ); + while ( yy_base[yy_current_state] != 6519 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -4893,148 +4923,168 @@ YY_RULE_SETUP case 288: YY_RULE_SETUP #line 513 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_PAD_RESPONSES) } YY_BREAK case 289: YY_RULE_SETUP #line 514 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } YY_BREAK case 290: YY_RULE_SETUP #line 515 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_PAD_QUERIES) } YY_BREAK case 291: YY_RULE_SETUP #line 516 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } YY_BREAK case 292: YY_RULE_SETUP #line 517 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 293: YY_RULE_SETUP #line 518 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 294: YY_RULE_SETUP #line 519 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 295: YY_RULE_SETUP #line 520 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 296: YY_RULE_SETUP #line 521 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 297: YY_RULE_SETUP #line 522 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 298: YY_RULE_SETUP #line 523 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 299: YY_RULE_SETUP #line 524 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 300: YY_RULE_SETUP #line 525 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 301: YY_RULE_SETUP #line 526 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 302: YY_RULE_SETUP #line 527 "./util/configlexer.lex" -{ YDVAR(0, VAR_IPSET) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 303: YY_RULE_SETUP #line 528 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V4) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 304: YY_RULE_SETUP #line 529 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSET_NAME_V6) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 305: YY_RULE_SETUP #line 530 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISEXPIRERECORDS) } YY_BREAK case 306: YY_RULE_SETUP #line 531 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(0, VAR_IPSET) } YY_BREAK case 307: YY_RULE_SETUP #line 532 "./util/configlexer.lex" -{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } +{ YDVAR(1, VAR_IPSET_NAME_V4) } YY_BREAK case 308: YY_RULE_SETUP #line 533 "./util/configlexer.lex" -{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } +{ YDVAR(1, VAR_IPSET_NAME_V6) } YY_BREAK case 309: YY_RULE_SETUP #line 534 "./util/configlexer.lex" -{ YDVAR(1, VAR_NSID ) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 310: -/* rule 310 can match eol */ YY_RULE_SETUP #line 535 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 311: +YY_RULE_SETUP +#line 536 "./util/configlexer.lex" +{ YDVAR(2, VAR_EDNS_CLIENT_STRING) } + YY_BREAK +case 312: +YY_RULE_SETUP +#line 537 "./util/configlexer.lex" +{ YDVAR(1, VAR_EDNS_CLIENT_STRING_OPCODE) } + YY_BREAK +case 313: +YY_RULE_SETUP +#line 538 "./util/configlexer.lex" +{ YDVAR(1, VAR_NSID ) } + YY_BREAK +case 314: +/* rule 314 can match eol */ +YY_RULE_SETUP +#line 539 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 311: +case 315: YY_RULE_SETUP -#line 538 "./util/configlexer.lex" +#line 542 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 539 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 312: +case 316: YY_RULE_SETUP -#line 544 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 313: -/* rule 313 can match eol */ +case 317: +/* rule 317 can match eol */ YY_RULE_SETUP -#line 545 "./util/configlexer.lex" +#line 549 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 314: +case 318: YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 551 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5047,34 +5097,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 315: +case 319: YY_RULE_SETUP -#line 559 "./util/configlexer.lex" +#line 563 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 560 "./util/configlexer.lex" +#line 564 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 316: +case 320: YY_RULE_SETUP -#line 565 "./util/configlexer.lex" +#line 569 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 317: -/* rule 317 can match eol */ +case 321: +/* rule 321 can match eol */ YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 570 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 318: +case 322: YY_RULE_SETUP -#line 568 "./util/configlexer.lex" +#line 572 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -5087,38 +5137,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 319: +case 323: YY_RULE_SETUP -#line 580 "./util/configlexer.lex" +#line 584 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 582 "./util/configlexer.lex" +#line 586 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 320: +case 324: YY_RULE_SETUP -#line 586 "./util/configlexer.lex" +#line 590 "./util/configlexer.lex" { LEXOUT(("ISP ")); /* ignore */ } YY_BREAK -case 321: -/* rule 321 can match eol */ +case 325: +/* rule 325 can match eol */ YY_RULE_SETUP -#line 587 "./util/configlexer.lex" +#line 591 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK -case 322: +case 326: YY_RULE_SETUP -#line 588 "./util/configlexer.lex" +#line 592 "./util/configlexer.lex" { LEXOUT(("IQS ")); BEGIN(include_quoted); } YY_BREAK -case 323: +case 327: YY_RULE_SETUP -#line 589 "./util/configlexer.lex" +#line 593 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 0); @@ -5126,27 +5176,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 594 "./util/configlexer.lex" +#line 598 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 324: +case 328: YY_RULE_SETUP -#line 598 "./util/configlexer.lex" +#line 602 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 325: -/* rule 325 can match eol */ +case 329: +/* rule 329 can match eol */ YY_RULE_SETUP -#line 599 "./util/configlexer.lex" +#line 603 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 326: +case 330: YY_RULE_SETUP -#line 601 "./util/configlexer.lex" +#line 605 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -5156,7 +5206,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 607 "./util/configlexer.lex" +#line 611 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -5171,39 +5221,39 @@ case YY_STATE_EOF(val): } YY_BREAK /* include-toplevel: directive */ -case 327: +case 331: YY_RULE_SETUP -#line 621 "./util/configlexer.lex" +#line 625 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include_toplevel); } YY_BREAK case YY_STATE_EOF(include_toplevel): -#line 624 "./util/configlexer.lex" +#line 628 "./util/configlexer.lex" { yyerror("EOF inside include_toplevel directive"); BEGIN(inc_prev); } YY_BREAK -case 328: +case 332: YY_RULE_SETUP -#line 628 "./util/configlexer.lex" +#line 632 "./util/configlexer.lex" { LEXOUT(("ITSP ")); /* ignore */ } YY_BREAK -case 329: -/* rule 329 can match eol */ +case 333: +/* rule 333 can match eol */ YY_RULE_SETUP -#line 629 "./util/configlexer.lex" +#line 633 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK -case 330: +case 334: YY_RULE_SETUP -#line 630 "./util/configlexer.lex" +#line 634 "./util/configlexer.lex" { LEXOUT(("ITQS ")); BEGIN(include_toplevel_quoted); } YY_BREAK -case 331: +case 335: YY_RULE_SETUP -#line 631 "./util/configlexer.lex" +#line 635 "./util/configlexer.lex" { LEXOUT(("ITunquotedstr(%s) ", yytext)); config_start_include_glob(yytext, 1); @@ -5212,29 +5262,29 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_toplevel_quoted): -#line 637 "./util/configlexer.lex" +#line 641 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 332: +case 336: YY_RULE_SETUP -#line 641 "./util/configlexer.lex" +#line 645 "./util/configlexer.lex" { LEXOUT(("ITSTR(%s) ", yytext)); yymore(); } YY_BREAK -case 333: -/* rule 333 can match eol */ +case 337: +/* rule 337 can match eol */ YY_RULE_SETUP -#line 642 "./util/configlexer.lex" +#line 646 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 334: +case 338: YY_RULE_SETUP -#line 646 "./util/configlexer.lex" +#line 650 "./util/configlexer.lex" { LEXOUT(("ITQE ")); yytext[yyleng - 1] = '\0'; @@ -5243,33 +5293,33 @@ YY_RULE_SETUP return (VAR_FORCE_TOPLEVEL); } YY_BREAK -case 335: +case 339: YY_RULE_SETUP -#line 654 "./util/configlexer.lex" +#line 658 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 336: +case 340: YY_RULE_SETUP -#line 658 "./util/configlexer.lex" +#line 662 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 337: +case 341: YY_RULE_SETUP -#line 662 "./util/configlexer.lex" +#line 666 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 338: +case 342: YY_RULE_SETUP -#line 666 "./util/configlexer.lex" +#line 670 "./util/configlexer.lex" ECHO; YY_BREAK -#line 5271 "" +#line 5321 "" case YY_END_OF_BUFFER: { @@ -5564,7 +5614,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 >= 3296 ) + if ( yy_current_state >= 3341 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5592,11 +5642,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 >= 3296 ) + if ( yy_current_state >= 3341 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 3295); + yy_is_jam = (yy_current_state == 3340); return yy_is_jam ? 0 : yy_current_state; } @@ -6235,6 +6285,6 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 666 "./util/configlexer.lex" +#line 670 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index c23e6db8f..75d2d88b7 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -510,6 +510,10 @@ dnscrypt-shared-secret-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } dnscrypt-nonce-cache-size{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } dnscrypt-nonce-cache-slabs{COLON} { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +pad-responses{COLON} { YDVAR(1, VAR_PAD_RESPONSES) } +pad-responses-block-size{COLON} { YDVAR(1, VAR_PAD_RESPONSES_BLOCK_SIZE) } +pad-queries{COLON} { YDVAR(1, VAR_PAD_QUERIES) } +pad-queries-block-size{COLON} { YDVAR(1, VAR_PAD_QUERIES_BLOCK_SIZE) } ipsecmod-enabled{COLON} { YDVAR(1, VAR_IPSECMOD_ENABLED) } ipsecmod-ignore-bogus{COLON} { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } ipsecmod-hook{COLON} { YDVAR(1, VAR_IPSECMOD_HOOK) } diff --git a/util/configparser.c b/util/configparser.c index f1d96b0eb..8c81eaf3d 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -374,389 +374,397 @@ enum yysymbol_kind_t YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 247, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 248, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 249, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - YYSYMBOL_VAR_IPSECMOD_ENABLED = 250, /* VAR_IPSECMOD_ENABLED */ - YYSYMBOL_VAR_IPSECMOD_HOOK = 251, /* VAR_IPSECMOD_HOOK */ - YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 252, /* VAR_IPSECMOD_IGNORE_BOGUS */ - YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 253, /* VAR_IPSECMOD_MAX_TTL */ - YYSYMBOL_VAR_IPSECMOD_WHITELIST = 254, /* VAR_IPSECMOD_WHITELIST */ - YYSYMBOL_VAR_IPSECMOD_STRICT = 255, /* VAR_IPSECMOD_STRICT */ - YYSYMBOL_VAR_CACHEDB = 256, /* VAR_CACHEDB */ - YYSYMBOL_VAR_CACHEDB_BACKEND = 257, /* VAR_CACHEDB_BACKEND */ - YYSYMBOL_VAR_CACHEDB_SECRETSEED = 258, /* VAR_CACHEDB_SECRETSEED */ - YYSYMBOL_VAR_CACHEDB_REDISHOST = 259, /* VAR_CACHEDB_REDISHOST */ - YYSYMBOL_VAR_CACHEDB_REDISPORT = 260, /* VAR_CACHEDB_REDISPORT */ - YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 261, /* VAR_CACHEDB_REDISTIMEOUT */ - YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 262, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 263, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - YYSYMBOL_VAR_FOR_UPSTREAM = 264, /* VAR_FOR_UPSTREAM */ - YYSYMBOL_VAR_AUTH_ZONE = 265, /* VAR_AUTH_ZONE */ - YYSYMBOL_VAR_ZONEFILE = 266, /* VAR_ZONEFILE */ - YYSYMBOL_VAR_MASTER = 267, /* VAR_MASTER */ - YYSYMBOL_VAR_URL = 268, /* VAR_URL */ - YYSYMBOL_VAR_FOR_DOWNSTREAM = 269, /* VAR_FOR_DOWNSTREAM */ - YYSYMBOL_VAR_FALLBACK_ENABLED = 270, /* VAR_FALLBACK_ENABLED */ - YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 271, /* VAR_TLS_ADDITIONAL_PORT */ - YYSYMBOL_VAR_LOW_RTT = 272, /* VAR_LOW_RTT */ - YYSYMBOL_VAR_LOW_RTT_PERMIL = 273, /* VAR_LOW_RTT_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_PERMIL = 274, /* VAR_FAST_SERVER_PERMIL */ - YYSYMBOL_VAR_FAST_SERVER_NUM = 275, /* VAR_FAST_SERVER_NUM */ - YYSYMBOL_VAR_ALLOW_NOTIFY = 276, /* VAR_ALLOW_NOTIFY */ - YYSYMBOL_VAR_TLS_WIN_CERT = 277, /* VAR_TLS_WIN_CERT */ - YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 278, /* VAR_TCP_CONNECTION_LIMIT */ - YYSYMBOL_VAR_FORWARD_NO_CACHE = 279, /* VAR_FORWARD_NO_CACHE */ - YYSYMBOL_VAR_STUB_NO_CACHE = 280, /* VAR_STUB_NO_CACHE */ - YYSYMBOL_VAR_LOG_SERVFAIL = 281, /* VAR_LOG_SERVFAIL */ - YYSYMBOL_VAR_DENY_ANY = 282, /* VAR_DENY_ANY */ - YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 283, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 284, /* VAR_LOG_TAG_QUERYREPLY */ - YYSYMBOL_VAR_STREAM_WAIT_SIZE = 285, /* VAR_STREAM_WAIT_SIZE */ - YYSYMBOL_VAR_TLS_CIPHERS = 286, /* VAR_TLS_CIPHERS */ - YYSYMBOL_VAR_TLS_CIPHERSUITES = 287, /* VAR_TLS_CIPHERSUITES */ - YYSYMBOL_VAR_TLS_USE_SNI = 288, /* VAR_TLS_USE_SNI */ - YYSYMBOL_VAR_IPSET = 289, /* VAR_IPSET */ - YYSYMBOL_VAR_IPSET_NAME_V4 = 290, /* VAR_IPSET_NAME_V4 */ - YYSYMBOL_VAR_IPSET_NAME_V6 = 291, /* VAR_IPSET_NAME_V6 */ - YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 292, /* VAR_TLS_SESSION_TICKET_KEYS */ - YYSYMBOL_VAR_RPZ = 293, /* VAR_RPZ */ - YYSYMBOL_VAR_TAGS = 294, /* VAR_TAGS */ - YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 295, /* VAR_RPZ_ACTION_OVERRIDE */ - YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 296, /* VAR_RPZ_CNAME_OVERRIDE */ - YYSYMBOL_VAR_RPZ_LOG = 297, /* VAR_RPZ_LOG */ - YYSYMBOL_VAR_RPZ_LOG_NAME = 298, /* VAR_RPZ_LOG_NAME */ - YYSYMBOL_VAR_DYNLIB = 299, /* VAR_DYNLIB */ - YYSYMBOL_VAR_DYNLIB_FILE = 300, /* VAR_DYNLIB_FILE */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING = 301, /* VAR_EDNS_CLIENT_STRING */ - YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 302, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - YYSYMBOL_VAR_NSID = 303, /* VAR_NSID */ - YYSYMBOL_YYACCEPT = 304, /* $accept */ - YYSYMBOL_toplevelvars = 305, /* toplevelvars */ - YYSYMBOL_toplevelvar = 306, /* toplevelvar */ - YYSYMBOL_force_toplevel = 307, /* force_toplevel */ - YYSYMBOL_serverstart = 308, /* serverstart */ - YYSYMBOL_contents_server = 309, /* contents_server */ - YYSYMBOL_content_server = 310, /* content_server */ - YYSYMBOL_stubstart = 311, /* stubstart */ - YYSYMBOL_contents_stub = 312, /* contents_stub */ - YYSYMBOL_content_stub = 313, /* content_stub */ - YYSYMBOL_forwardstart = 314, /* forwardstart */ - YYSYMBOL_contents_forward = 315, /* contents_forward */ - YYSYMBOL_content_forward = 316, /* content_forward */ - YYSYMBOL_viewstart = 317, /* viewstart */ - YYSYMBOL_contents_view = 318, /* contents_view */ - YYSYMBOL_content_view = 319, /* content_view */ - YYSYMBOL_authstart = 320, /* authstart */ - YYSYMBOL_contents_auth = 321, /* contents_auth */ - YYSYMBOL_content_auth = 322, /* content_auth */ - YYSYMBOL_rpz_tag = 323, /* rpz_tag */ - YYSYMBOL_rpz_action_override = 324, /* rpz_action_override */ - YYSYMBOL_rpz_cname_override = 325, /* rpz_cname_override */ - YYSYMBOL_rpz_log = 326, /* rpz_log */ - YYSYMBOL_rpz_log_name = 327, /* rpz_log_name */ - YYSYMBOL_rpzstart = 328, /* rpzstart */ - YYSYMBOL_contents_rpz = 329, /* contents_rpz */ - YYSYMBOL_content_rpz = 330, /* content_rpz */ - YYSYMBOL_server_num_threads = 331, /* server_num_threads */ - YYSYMBOL_server_verbosity = 332, /* server_verbosity */ - YYSYMBOL_server_statistics_interval = 333, /* server_statistics_interval */ - YYSYMBOL_server_statistics_cumulative = 334, /* server_statistics_cumulative */ - YYSYMBOL_server_extended_statistics = 335, /* server_extended_statistics */ - YYSYMBOL_server_shm_enable = 336, /* server_shm_enable */ - YYSYMBOL_server_shm_key = 337, /* server_shm_key */ - YYSYMBOL_server_port = 338, /* server_port */ - YYSYMBOL_server_send_client_subnet = 339, /* server_send_client_subnet */ - YYSYMBOL_server_client_subnet_zone = 340, /* server_client_subnet_zone */ - YYSYMBOL_server_client_subnet_always_forward = 341, /* server_client_subnet_always_forward */ - YYSYMBOL_server_client_subnet_opcode = 342, /* server_client_subnet_opcode */ - YYSYMBOL_server_max_client_subnet_ipv4 = 343, /* server_max_client_subnet_ipv4 */ - YYSYMBOL_server_max_client_subnet_ipv6 = 344, /* server_max_client_subnet_ipv6 */ - YYSYMBOL_server_min_client_subnet_ipv4 = 345, /* server_min_client_subnet_ipv4 */ - YYSYMBOL_server_min_client_subnet_ipv6 = 346, /* server_min_client_subnet_ipv6 */ - YYSYMBOL_server_max_ecs_tree_size_ipv4 = 347, /* server_max_ecs_tree_size_ipv4 */ - YYSYMBOL_server_max_ecs_tree_size_ipv6 = 348, /* server_max_ecs_tree_size_ipv6 */ - YYSYMBOL_server_interface = 349, /* server_interface */ - YYSYMBOL_server_outgoing_interface = 350, /* server_outgoing_interface */ - YYSYMBOL_server_outgoing_range = 351, /* server_outgoing_range */ - YYSYMBOL_server_outgoing_port_permit = 352, /* server_outgoing_port_permit */ - YYSYMBOL_server_outgoing_port_avoid = 353, /* server_outgoing_port_avoid */ - YYSYMBOL_server_outgoing_num_tcp = 354, /* server_outgoing_num_tcp */ - YYSYMBOL_server_incoming_num_tcp = 355, /* server_incoming_num_tcp */ - YYSYMBOL_server_interface_automatic = 356, /* server_interface_automatic */ - YYSYMBOL_server_do_ip4 = 357, /* server_do_ip4 */ - YYSYMBOL_server_do_ip6 = 358, /* server_do_ip6 */ - YYSYMBOL_server_do_udp = 359, /* server_do_udp */ - YYSYMBOL_server_do_tcp = 360, /* server_do_tcp */ - YYSYMBOL_server_prefer_ip4 = 361, /* server_prefer_ip4 */ - YYSYMBOL_server_prefer_ip6 = 362, /* server_prefer_ip6 */ - YYSYMBOL_server_tcp_mss = 363, /* server_tcp_mss */ - YYSYMBOL_server_outgoing_tcp_mss = 364, /* server_outgoing_tcp_mss */ - YYSYMBOL_server_tcp_idle_timeout = 365, /* server_tcp_idle_timeout */ - YYSYMBOL_server_tcp_keepalive = 366, /* server_tcp_keepalive */ - YYSYMBOL_server_tcp_keepalive_timeout = 367, /* server_tcp_keepalive_timeout */ - YYSYMBOL_server_tcp_upstream = 368, /* server_tcp_upstream */ - YYSYMBOL_server_udp_upstream_without_downstream = 369, /* server_udp_upstream_without_downstream */ - YYSYMBOL_server_ssl_upstream = 370, /* server_ssl_upstream */ - YYSYMBOL_server_ssl_service_key = 371, /* server_ssl_service_key */ - YYSYMBOL_server_ssl_service_pem = 372, /* server_ssl_service_pem */ - YYSYMBOL_server_ssl_port = 373, /* server_ssl_port */ - YYSYMBOL_server_tls_cert_bundle = 374, /* server_tls_cert_bundle */ - YYSYMBOL_server_tls_win_cert = 375, /* server_tls_win_cert */ - YYSYMBOL_server_tls_additional_port = 376, /* server_tls_additional_port */ - YYSYMBOL_server_tls_ciphers = 377, /* server_tls_ciphers */ - YYSYMBOL_server_tls_ciphersuites = 378, /* server_tls_ciphersuites */ - YYSYMBOL_server_tls_session_ticket_keys = 379, /* server_tls_session_ticket_keys */ - YYSYMBOL_server_tls_use_sni = 380, /* server_tls_use_sni */ - YYSYMBOL_server_https_port = 381, /* server_https_port */ - YYSYMBOL_server_http_endpoint = 382, /* server_http_endpoint */ - YYSYMBOL_server_http_max_streams = 383, /* server_http_max_streams */ - YYSYMBOL_server_http_query_buffer_size = 384, /* server_http_query_buffer_size */ - YYSYMBOL_server_http_response_buffer_size = 385, /* server_http_response_buffer_size */ - YYSYMBOL_server_http_nodelay = 386, /* server_http_nodelay */ - YYSYMBOL_server_http_notls_downstream = 387, /* server_http_notls_downstream */ - YYSYMBOL_server_use_systemd = 388, /* server_use_systemd */ - YYSYMBOL_server_do_daemonize = 389, /* server_do_daemonize */ - YYSYMBOL_server_use_syslog = 390, /* server_use_syslog */ - YYSYMBOL_server_log_time_ascii = 391, /* server_log_time_ascii */ - YYSYMBOL_server_log_queries = 392, /* server_log_queries */ - YYSYMBOL_server_log_replies = 393, /* server_log_replies */ - YYSYMBOL_server_log_tag_queryreply = 394, /* server_log_tag_queryreply */ - YYSYMBOL_server_log_servfail = 395, /* server_log_servfail */ - YYSYMBOL_server_log_local_actions = 396, /* server_log_local_actions */ - YYSYMBOL_server_chroot = 397, /* server_chroot */ - YYSYMBOL_server_username = 398, /* server_username */ - YYSYMBOL_server_directory = 399, /* server_directory */ - YYSYMBOL_server_logfile = 400, /* server_logfile */ - YYSYMBOL_server_pidfile = 401, /* server_pidfile */ - YYSYMBOL_server_root_hints = 402, /* server_root_hints */ - YYSYMBOL_server_dlv_anchor_file = 403, /* server_dlv_anchor_file */ - YYSYMBOL_server_dlv_anchor = 404, /* server_dlv_anchor */ - YYSYMBOL_server_auto_trust_anchor_file = 405, /* server_auto_trust_anchor_file */ - YYSYMBOL_server_trust_anchor_file = 406, /* server_trust_anchor_file */ - YYSYMBOL_server_trusted_keys_file = 407, /* server_trusted_keys_file */ - YYSYMBOL_server_trust_anchor = 408, /* server_trust_anchor */ - YYSYMBOL_server_trust_anchor_signaling = 409, /* server_trust_anchor_signaling */ - YYSYMBOL_server_root_key_sentinel = 410, /* server_root_key_sentinel */ - YYSYMBOL_server_domain_insecure = 411, /* server_domain_insecure */ - YYSYMBOL_server_hide_identity = 412, /* server_hide_identity */ - YYSYMBOL_server_hide_version = 413, /* server_hide_version */ - YYSYMBOL_server_hide_trustanchor = 414, /* server_hide_trustanchor */ - YYSYMBOL_server_identity = 415, /* server_identity */ - YYSYMBOL_server_version = 416, /* server_version */ - YYSYMBOL_server_nsid = 417, /* server_nsid */ - YYSYMBOL_server_so_rcvbuf = 418, /* server_so_rcvbuf */ - YYSYMBOL_server_so_sndbuf = 419, /* server_so_sndbuf */ - YYSYMBOL_server_so_reuseport = 420, /* server_so_reuseport */ - YYSYMBOL_server_ip_transparent = 421, /* server_ip_transparent */ - YYSYMBOL_server_ip_freebind = 422, /* server_ip_freebind */ - YYSYMBOL_server_ip_dscp = 423, /* server_ip_dscp */ - YYSYMBOL_server_stream_wait_size = 424, /* server_stream_wait_size */ - YYSYMBOL_server_edns_buffer_size = 425, /* server_edns_buffer_size */ - YYSYMBOL_server_msg_buffer_size = 426, /* server_msg_buffer_size */ - YYSYMBOL_server_msg_cache_size = 427, /* server_msg_cache_size */ - YYSYMBOL_server_msg_cache_slabs = 428, /* server_msg_cache_slabs */ - YYSYMBOL_server_num_queries_per_thread = 429, /* server_num_queries_per_thread */ - YYSYMBOL_server_jostle_timeout = 430, /* server_jostle_timeout */ - YYSYMBOL_server_delay_close = 431, /* server_delay_close */ - YYSYMBOL_server_udp_connect = 432, /* server_udp_connect */ - YYSYMBOL_server_unblock_lan_zones = 433, /* server_unblock_lan_zones */ - YYSYMBOL_server_insecure_lan_zones = 434, /* server_insecure_lan_zones */ - YYSYMBOL_server_rrset_cache_size = 435, /* server_rrset_cache_size */ - YYSYMBOL_server_rrset_cache_slabs = 436, /* server_rrset_cache_slabs */ - YYSYMBOL_server_infra_host_ttl = 437, /* server_infra_host_ttl */ - YYSYMBOL_server_infra_lame_ttl = 438, /* server_infra_lame_ttl */ - YYSYMBOL_server_infra_cache_numhosts = 439, /* server_infra_cache_numhosts */ - YYSYMBOL_server_infra_cache_lame_size = 440, /* server_infra_cache_lame_size */ - YYSYMBOL_server_infra_cache_slabs = 441, /* server_infra_cache_slabs */ - YYSYMBOL_server_infra_cache_min_rtt = 442, /* server_infra_cache_min_rtt */ - YYSYMBOL_server_infra_keep_probing = 443, /* server_infra_keep_probing */ - YYSYMBOL_server_target_fetch_policy = 444, /* server_target_fetch_policy */ - YYSYMBOL_server_harden_short_bufsize = 445, /* server_harden_short_bufsize */ - YYSYMBOL_server_harden_large_queries = 446, /* server_harden_large_queries */ - YYSYMBOL_server_harden_glue = 447, /* server_harden_glue */ - YYSYMBOL_server_harden_dnssec_stripped = 448, /* server_harden_dnssec_stripped */ - YYSYMBOL_server_harden_below_nxdomain = 449, /* server_harden_below_nxdomain */ - YYSYMBOL_server_harden_referral_path = 450, /* server_harden_referral_path */ - YYSYMBOL_server_harden_algo_downgrade = 451, /* server_harden_algo_downgrade */ - YYSYMBOL_server_use_caps_for_id = 452, /* server_use_caps_for_id */ - YYSYMBOL_server_caps_whitelist = 453, /* server_caps_whitelist */ - YYSYMBOL_server_private_address = 454, /* server_private_address */ - YYSYMBOL_server_private_domain = 455, /* server_private_domain */ - YYSYMBOL_server_prefetch = 456, /* server_prefetch */ - YYSYMBOL_server_prefetch_key = 457, /* server_prefetch_key */ - YYSYMBOL_server_deny_any = 458, /* server_deny_any */ - YYSYMBOL_server_unwanted_reply_threshold = 459, /* server_unwanted_reply_threshold */ - YYSYMBOL_server_do_not_query_address = 460, /* server_do_not_query_address */ - YYSYMBOL_server_do_not_query_localhost = 461, /* server_do_not_query_localhost */ - YYSYMBOL_server_access_control = 462, /* server_access_control */ - YYSYMBOL_server_module_conf = 463, /* server_module_conf */ - YYSYMBOL_server_val_override_date = 464, /* server_val_override_date */ - YYSYMBOL_server_val_sig_skew_min = 465, /* server_val_sig_skew_min */ - YYSYMBOL_server_val_sig_skew_max = 466, /* server_val_sig_skew_max */ - YYSYMBOL_server_cache_max_ttl = 467, /* server_cache_max_ttl */ - YYSYMBOL_server_cache_max_negative_ttl = 468, /* server_cache_max_negative_ttl */ - YYSYMBOL_server_cache_min_ttl = 469, /* server_cache_min_ttl */ - YYSYMBOL_server_bogus_ttl = 470, /* server_bogus_ttl */ - YYSYMBOL_server_val_clean_additional = 471, /* server_val_clean_additional */ - YYSYMBOL_server_val_permissive_mode = 472, /* server_val_permissive_mode */ - YYSYMBOL_server_aggressive_nsec = 473, /* server_aggressive_nsec */ - YYSYMBOL_server_ignore_cd_flag = 474, /* server_ignore_cd_flag */ - YYSYMBOL_server_serve_expired = 475, /* server_serve_expired */ - YYSYMBOL_server_serve_expired_ttl = 476, /* server_serve_expired_ttl */ - YYSYMBOL_server_serve_expired_ttl_reset = 477, /* server_serve_expired_ttl_reset */ - YYSYMBOL_server_serve_expired_reply_ttl = 478, /* server_serve_expired_reply_ttl */ - YYSYMBOL_server_serve_expired_client_timeout = 479, /* server_serve_expired_client_timeout */ - YYSYMBOL_server_fake_dsa = 480, /* server_fake_dsa */ - YYSYMBOL_server_fake_sha1 = 481, /* server_fake_sha1 */ - YYSYMBOL_server_val_log_level = 482, /* server_val_log_level */ - YYSYMBOL_server_val_nsec3_keysize_iterations = 483, /* server_val_nsec3_keysize_iterations */ - YYSYMBOL_server_add_holddown = 484, /* server_add_holddown */ - YYSYMBOL_server_del_holddown = 485, /* server_del_holddown */ - YYSYMBOL_server_keep_missing = 486, /* server_keep_missing */ - YYSYMBOL_server_permit_small_holddown = 487, /* server_permit_small_holddown */ - YYSYMBOL_server_key_cache_size = 488, /* server_key_cache_size */ - YYSYMBOL_server_key_cache_slabs = 489, /* server_key_cache_slabs */ - YYSYMBOL_server_neg_cache_size = 490, /* server_neg_cache_size */ - YYSYMBOL_server_local_zone = 491, /* server_local_zone */ - YYSYMBOL_server_local_data = 492, /* server_local_data */ - YYSYMBOL_server_local_data_ptr = 493, /* server_local_data_ptr */ - YYSYMBOL_server_minimal_responses = 494, /* server_minimal_responses */ - YYSYMBOL_server_rrset_roundrobin = 495, /* server_rrset_roundrobin */ - YYSYMBOL_server_unknown_server_time_limit = 496, /* server_unknown_server_time_limit */ - YYSYMBOL_server_max_udp_size = 497, /* server_max_udp_size */ - YYSYMBOL_server_dns64_prefix = 498, /* server_dns64_prefix */ - YYSYMBOL_server_dns64_synthall = 499, /* server_dns64_synthall */ - YYSYMBOL_server_dns64_ignore_aaaa = 500, /* server_dns64_ignore_aaaa */ - YYSYMBOL_server_define_tag = 501, /* server_define_tag */ - YYSYMBOL_server_local_zone_tag = 502, /* server_local_zone_tag */ - YYSYMBOL_server_access_control_tag = 503, /* server_access_control_tag */ - YYSYMBOL_server_access_control_tag_action = 504, /* server_access_control_tag_action */ - YYSYMBOL_server_access_control_tag_data = 505, /* server_access_control_tag_data */ - YYSYMBOL_server_local_zone_override = 506, /* server_local_zone_override */ - YYSYMBOL_server_access_control_view = 507, /* server_access_control_view */ - YYSYMBOL_server_response_ip_tag = 508, /* server_response_ip_tag */ - YYSYMBOL_server_ip_ratelimit = 509, /* server_ip_ratelimit */ - YYSYMBOL_server_ratelimit = 510, /* server_ratelimit */ - YYSYMBOL_server_ip_ratelimit_size = 511, /* server_ip_ratelimit_size */ - YYSYMBOL_server_ratelimit_size = 512, /* server_ratelimit_size */ - YYSYMBOL_server_ip_ratelimit_slabs = 513, /* server_ip_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_slabs = 514, /* server_ratelimit_slabs */ - YYSYMBOL_server_ratelimit_for_domain = 515, /* server_ratelimit_for_domain */ - YYSYMBOL_server_ratelimit_below_domain = 516, /* server_ratelimit_below_domain */ - YYSYMBOL_server_ip_ratelimit_factor = 517, /* server_ip_ratelimit_factor */ - YYSYMBOL_server_ratelimit_factor = 518, /* server_ratelimit_factor */ - YYSYMBOL_server_low_rtt = 519, /* server_low_rtt */ - YYSYMBOL_server_fast_server_num = 520, /* server_fast_server_num */ - YYSYMBOL_server_fast_server_permil = 521, /* server_fast_server_permil */ - YYSYMBOL_server_qname_minimisation = 522, /* server_qname_minimisation */ - YYSYMBOL_server_qname_minimisation_strict = 523, /* server_qname_minimisation_strict */ - YYSYMBOL_server_ipsecmod_enabled = 524, /* server_ipsecmod_enabled */ - YYSYMBOL_server_ipsecmod_ignore_bogus = 525, /* server_ipsecmod_ignore_bogus */ - YYSYMBOL_server_ipsecmod_hook = 526, /* server_ipsecmod_hook */ - YYSYMBOL_server_ipsecmod_max_ttl = 527, /* server_ipsecmod_max_ttl */ - YYSYMBOL_server_ipsecmod_whitelist = 528, /* server_ipsecmod_whitelist */ - YYSYMBOL_server_ipsecmod_strict = 529, /* server_ipsecmod_strict */ - YYSYMBOL_server_edns_client_string = 530, /* server_edns_client_string */ - YYSYMBOL_server_edns_client_string_opcode = 531, /* server_edns_client_string_opcode */ - YYSYMBOL_stub_name = 532, /* stub_name */ - YYSYMBOL_stub_host = 533, /* stub_host */ - YYSYMBOL_stub_addr = 534, /* stub_addr */ - YYSYMBOL_stub_first = 535, /* stub_first */ - YYSYMBOL_stub_no_cache = 536, /* stub_no_cache */ - YYSYMBOL_stub_ssl_upstream = 537, /* stub_ssl_upstream */ - YYSYMBOL_stub_prime = 538, /* stub_prime */ - YYSYMBOL_forward_name = 539, /* forward_name */ - YYSYMBOL_forward_host = 540, /* forward_host */ - YYSYMBOL_forward_addr = 541, /* forward_addr */ - YYSYMBOL_forward_first = 542, /* forward_first */ - YYSYMBOL_forward_no_cache = 543, /* forward_no_cache */ - YYSYMBOL_forward_ssl_upstream = 544, /* forward_ssl_upstream */ - YYSYMBOL_auth_name = 545, /* auth_name */ - YYSYMBOL_auth_zonefile = 546, /* auth_zonefile */ - YYSYMBOL_auth_master = 547, /* auth_master */ - YYSYMBOL_auth_url = 548, /* auth_url */ - YYSYMBOL_auth_allow_notify = 549, /* auth_allow_notify */ - YYSYMBOL_auth_for_downstream = 550, /* auth_for_downstream */ - YYSYMBOL_auth_for_upstream = 551, /* auth_for_upstream */ - YYSYMBOL_auth_fallback_enabled = 552, /* auth_fallback_enabled */ - YYSYMBOL_view_name = 553, /* view_name */ - YYSYMBOL_view_local_zone = 554, /* view_local_zone */ - YYSYMBOL_view_response_ip = 555, /* view_response_ip */ - YYSYMBOL_view_response_ip_data = 556, /* view_response_ip_data */ - YYSYMBOL_view_local_data = 557, /* view_local_data */ - YYSYMBOL_view_local_data_ptr = 558, /* view_local_data_ptr */ - YYSYMBOL_view_first = 559, /* view_first */ - YYSYMBOL_rcstart = 560, /* rcstart */ - YYSYMBOL_contents_rc = 561, /* contents_rc */ - YYSYMBOL_content_rc = 562, /* content_rc */ - YYSYMBOL_rc_control_enable = 563, /* rc_control_enable */ - YYSYMBOL_rc_control_port = 564, /* rc_control_port */ - YYSYMBOL_rc_control_interface = 565, /* rc_control_interface */ - YYSYMBOL_rc_control_use_cert = 566, /* rc_control_use_cert */ - YYSYMBOL_rc_server_key_file = 567, /* rc_server_key_file */ - YYSYMBOL_rc_server_cert_file = 568, /* rc_server_cert_file */ - YYSYMBOL_rc_control_key_file = 569, /* rc_control_key_file */ - YYSYMBOL_rc_control_cert_file = 570, /* rc_control_cert_file */ - YYSYMBOL_dtstart = 571, /* dtstart */ - YYSYMBOL_contents_dt = 572, /* contents_dt */ - YYSYMBOL_content_dt = 573, /* content_dt */ - YYSYMBOL_dt_dnstap_enable = 574, /* dt_dnstap_enable */ - YYSYMBOL_dt_dnstap_bidirectional = 575, /* dt_dnstap_bidirectional */ - YYSYMBOL_dt_dnstap_socket_path = 576, /* dt_dnstap_socket_path */ - YYSYMBOL_dt_dnstap_ip = 577, /* dt_dnstap_ip */ - YYSYMBOL_dt_dnstap_tls = 578, /* dt_dnstap_tls */ - YYSYMBOL_dt_dnstap_tls_server_name = 579, /* dt_dnstap_tls_server_name */ - YYSYMBOL_dt_dnstap_tls_cert_bundle = 580, /* dt_dnstap_tls_cert_bundle */ - YYSYMBOL_dt_dnstap_tls_client_key_file = 581, /* dt_dnstap_tls_client_key_file */ - YYSYMBOL_dt_dnstap_tls_client_cert_file = 582, /* dt_dnstap_tls_client_cert_file */ - YYSYMBOL_dt_dnstap_send_identity = 583, /* dt_dnstap_send_identity */ - YYSYMBOL_dt_dnstap_send_version = 584, /* dt_dnstap_send_version */ - YYSYMBOL_dt_dnstap_identity = 585, /* dt_dnstap_identity */ - YYSYMBOL_dt_dnstap_version = 586, /* dt_dnstap_version */ - YYSYMBOL_dt_dnstap_log_resolver_query_messages = 587, /* dt_dnstap_log_resolver_query_messages */ - YYSYMBOL_dt_dnstap_log_resolver_response_messages = 588, /* dt_dnstap_log_resolver_response_messages */ - YYSYMBOL_dt_dnstap_log_client_query_messages = 589, /* dt_dnstap_log_client_query_messages */ - YYSYMBOL_dt_dnstap_log_client_response_messages = 590, /* dt_dnstap_log_client_response_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 591, /* dt_dnstap_log_forwarder_query_messages */ - YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 592, /* dt_dnstap_log_forwarder_response_messages */ - YYSYMBOL_pythonstart = 593, /* pythonstart */ - YYSYMBOL_contents_py = 594, /* contents_py */ - YYSYMBOL_content_py = 595, /* content_py */ - YYSYMBOL_py_script = 596, /* py_script */ - YYSYMBOL_dynlibstart = 597, /* dynlibstart */ - YYSYMBOL_contents_dl = 598, /* contents_dl */ - YYSYMBOL_content_dl = 599, /* content_dl */ - YYSYMBOL_dl_file = 600, /* dl_file */ - YYSYMBOL_server_disable_dnssec_lame_check = 601, /* server_disable_dnssec_lame_check */ - YYSYMBOL_server_log_identity = 602, /* server_log_identity */ - YYSYMBOL_server_response_ip = 603, /* server_response_ip */ - YYSYMBOL_server_response_ip_data = 604, /* server_response_ip_data */ - YYSYMBOL_dnscstart = 605, /* dnscstart */ - YYSYMBOL_contents_dnsc = 606, /* contents_dnsc */ - YYSYMBOL_content_dnsc = 607, /* content_dnsc */ - YYSYMBOL_dnsc_dnscrypt_enable = 608, /* dnsc_dnscrypt_enable */ - YYSYMBOL_dnsc_dnscrypt_port = 609, /* dnsc_dnscrypt_port */ - YYSYMBOL_dnsc_dnscrypt_provider = 610, /* dnsc_dnscrypt_provider */ - YYSYMBOL_dnsc_dnscrypt_provider_cert = 611, /* dnsc_dnscrypt_provider_cert */ - YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 612, /* dnsc_dnscrypt_provider_cert_rotated */ - YYSYMBOL_dnsc_dnscrypt_secret_key = 613, /* dnsc_dnscrypt_secret_key */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 614, /* dnsc_dnscrypt_shared_secret_cache_size */ - YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 615, /* dnsc_dnscrypt_shared_secret_cache_slabs */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 616, /* dnsc_dnscrypt_nonce_cache_size */ - YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 617, /* dnsc_dnscrypt_nonce_cache_slabs */ - YYSYMBOL_cachedbstart = 618, /* cachedbstart */ - YYSYMBOL_contents_cachedb = 619, /* contents_cachedb */ - YYSYMBOL_content_cachedb = 620, /* content_cachedb */ - YYSYMBOL_cachedb_backend_name = 621, /* cachedb_backend_name */ - YYSYMBOL_cachedb_secret_seed = 622, /* cachedb_secret_seed */ - YYSYMBOL_redis_server_host = 623, /* redis_server_host */ - YYSYMBOL_redis_server_port = 624, /* redis_server_port */ - YYSYMBOL_redis_timeout = 625, /* redis_timeout */ - YYSYMBOL_redis_expire_records = 626, /* redis_expire_records */ - YYSYMBOL_server_tcp_connection_limit = 627, /* server_tcp_connection_limit */ - YYSYMBOL_ipsetstart = 628, /* ipsetstart */ - YYSYMBOL_contents_ipset = 629, /* contents_ipset */ - YYSYMBOL_content_ipset = 630, /* content_ipset */ - YYSYMBOL_ipset_name_v4 = 631, /* ipset_name_v4 */ - YYSYMBOL_ipset_name_v6 = 632 /* ipset_name_v6 */ + YYSYMBOL_VAR_PAD_RESPONSES = 250, /* VAR_PAD_RESPONSES */ + YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 251, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + YYSYMBOL_VAR_PAD_QUERIES = 252, /* VAR_PAD_QUERIES */ + YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 253, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + YYSYMBOL_VAR_IPSECMOD_ENABLED = 254, /* VAR_IPSECMOD_ENABLED */ + YYSYMBOL_VAR_IPSECMOD_HOOK = 255, /* VAR_IPSECMOD_HOOK */ + YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 256, /* VAR_IPSECMOD_IGNORE_BOGUS */ + YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 257, /* VAR_IPSECMOD_MAX_TTL */ + YYSYMBOL_VAR_IPSECMOD_WHITELIST = 258, /* VAR_IPSECMOD_WHITELIST */ + YYSYMBOL_VAR_IPSECMOD_STRICT = 259, /* VAR_IPSECMOD_STRICT */ + YYSYMBOL_VAR_CACHEDB = 260, /* VAR_CACHEDB */ + YYSYMBOL_VAR_CACHEDB_BACKEND = 261, /* VAR_CACHEDB_BACKEND */ + YYSYMBOL_VAR_CACHEDB_SECRETSEED = 262, /* VAR_CACHEDB_SECRETSEED */ + YYSYMBOL_VAR_CACHEDB_REDISHOST = 263, /* VAR_CACHEDB_REDISHOST */ + YYSYMBOL_VAR_CACHEDB_REDISPORT = 264, /* VAR_CACHEDB_REDISPORT */ + YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 265, /* VAR_CACHEDB_REDISTIMEOUT */ + YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 266, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 267, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + YYSYMBOL_VAR_FOR_UPSTREAM = 268, /* VAR_FOR_UPSTREAM */ + YYSYMBOL_VAR_AUTH_ZONE = 269, /* VAR_AUTH_ZONE */ + YYSYMBOL_VAR_ZONEFILE = 270, /* VAR_ZONEFILE */ + YYSYMBOL_VAR_MASTER = 271, /* VAR_MASTER */ + YYSYMBOL_VAR_URL = 272, /* VAR_URL */ + YYSYMBOL_VAR_FOR_DOWNSTREAM = 273, /* VAR_FOR_DOWNSTREAM */ + YYSYMBOL_VAR_FALLBACK_ENABLED = 274, /* VAR_FALLBACK_ENABLED */ + YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 275, /* VAR_TLS_ADDITIONAL_PORT */ + YYSYMBOL_VAR_LOW_RTT = 276, /* VAR_LOW_RTT */ + YYSYMBOL_VAR_LOW_RTT_PERMIL = 277, /* VAR_LOW_RTT_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_PERMIL = 278, /* VAR_FAST_SERVER_PERMIL */ + YYSYMBOL_VAR_FAST_SERVER_NUM = 279, /* VAR_FAST_SERVER_NUM */ + YYSYMBOL_VAR_ALLOW_NOTIFY = 280, /* VAR_ALLOW_NOTIFY */ + YYSYMBOL_VAR_TLS_WIN_CERT = 281, /* VAR_TLS_WIN_CERT */ + YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 282, /* VAR_TCP_CONNECTION_LIMIT */ + YYSYMBOL_VAR_FORWARD_NO_CACHE = 283, /* VAR_FORWARD_NO_CACHE */ + YYSYMBOL_VAR_STUB_NO_CACHE = 284, /* VAR_STUB_NO_CACHE */ + YYSYMBOL_VAR_LOG_SERVFAIL = 285, /* VAR_LOG_SERVFAIL */ + YYSYMBOL_VAR_DENY_ANY = 286, /* VAR_DENY_ANY */ + YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 287, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 288, /* VAR_LOG_TAG_QUERYREPLY */ + YYSYMBOL_VAR_STREAM_WAIT_SIZE = 289, /* VAR_STREAM_WAIT_SIZE */ + YYSYMBOL_VAR_TLS_CIPHERS = 290, /* VAR_TLS_CIPHERS */ + YYSYMBOL_VAR_TLS_CIPHERSUITES = 291, /* VAR_TLS_CIPHERSUITES */ + YYSYMBOL_VAR_TLS_USE_SNI = 292, /* VAR_TLS_USE_SNI */ + YYSYMBOL_VAR_IPSET = 293, /* VAR_IPSET */ + YYSYMBOL_VAR_IPSET_NAME_V4 = 294, /* VAR_IPSET_NAME_V4 */ + YYSYMBOL_VAR_IPSET_NAME_V6 = 295, /* VAR_IPSET_NAME_V6 */ + YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 296, /* VAR_TLS_SESSION_TICKET_KEYS */ + YYSYMBOL_VAR_RPZ = 297, /* VAR_RPZ */ + YYSYMBOL_VAR_TAGS = 298, /* VAR_TAGS */ + YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 299, /* VAR_RPZ_ACTION_OVERRIDE */ + YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 300, /* VAR_RPZ_CNAME_OVERRIDE */ + YYSYMBOL_VAR_RPZ_LOG = 301, /* VAR_RPZ_LOG */ + YYSYMBOL_VAR_RPZ_LOG_NAME = 302, /* VAR_RPZ_LOG_NAME */ + YYSYMBOL_VAR_DYNLIB = 303, /* VAR_DYNLIB */ + YYSYMBOL_VAR_DYNLIB_FILE = 304, /* VAR_DYNLIB_FILE */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING = 305, /* VAR_EDNS_CLIENT_STRING */ + YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 306, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + YYSYMBOL_VAR_NSID = 307, /* VAR_NSID */ + YYSYMBOL_YYACCEPT = 308, /* $accept */ + YYSYMBOL_toplevelvars = 309, /* toplevelvars */ + YYSYMBOL_toplevelvar = 310, /* toplevelvar */ + YYSYMBOL_force_toplevel = 311, /* force_toplevel */ + YYSYMBOL_serverstart = 312, /* serverstart */ + YYSYMBOL_contents_server = 313, /* contents_server */ + YYSYMBOL_content_server = 314, /* content_server */ + YYSYMBOL_stubstart = 315, /* stubstart */ + YYSYMBOL_contents_stub = 316, /* contents_stub */ + YYSYMBOL_content_stub = 317, /* content_stub */ + YYSYMBOL_forwardstart = 318, /* forwardstart */ + YYSYMBOL_contents_forward = 319, /* contents_forward */ + YYSYMBOL_content_forward = 320, /* content_forward */ + YYSYMBOL_viewstart = 321, /* viewstart */ + YYSYMBOL_contents_view = 322, /* contents_view */ + YYSYMBOL_content_view = 323, /* content_view */ + YYSYMBOL_authstart = 324, /* authstart */ + YYSYMBOL_contents_auth = 325, /* contents_auth */ + YYSYMBOL_content_auth = 326, /* content_auth */ + YYSYMBOL_rpz_tag = 327, /* rpz_tag */ + YYSYMBOL_rpz_action_override = 328, /* rpz_action_override */ + YYSYMBOL_rpz_cname_override = 329, /* rpz_cname_override */ + YYSYMBOL_rpz_log = 330, /* rpz_log */ + YYSYMBOL_rpz_log_name = 331, /* rpz_log_name */ + YYSYMBOL_rpzstart = 332, /* rpzstart */ + YYSYMBOL_contents_rpz = 333, /* contents_rpz */ + YYSYMBOL_content_rpz = 334, /* content_rpz */ + YYSYMBOL_server_num_threads = 335, /* server_num_threads */ + YYSYMBOL_server_verbosity = 336, /* server_verbosity */ + YYSYMBOL_server_statistics_interval = 337, /* server_statistics_interval */ + YYSYMBOL_server_statistics_cumulative = 338, /* server_statistics_cumulative */ + YYSYMBOL_server_extended_statistics = 339, /* server_extended_statistics */ + YYSYMBOL_server_shm_enable = 340, /* server_shm_enable */ + YYSYMBOL_server_shm_key = 341, /* server_shm_key */ + YYSYMBOL_server_port = 342, /* server_port */ + YYSYMBOL_server_send_client_subnet = 343, /* server_send_client_subnet */ + YYSYMBOL_server_client_subnet_zone = 344, /* server_client_subnet_zone */ + YYSYMBOL_server_client_subnet_always_forward = 345, /* server_client_subnet_always_forward */ + YYSYMBOL_server_client_subnet_opcode = 346, /* server_client_subnet_opcode */ + YYSYMBOL_server_max_client_subnet_ipv4 = 347, /* server_max_client_subnet_ipv4 */ + YYSYMBOL_server_max_client_subnet_ipv6 = 348, /* server_max_client_subnet_ipv6 */ + YYSYMBOL_server_min_client_subnet_ipv4 = 349, /* server_min_client_subnet_ipv4 */ + YYSYMBOL_server_min_client_subnet_ipv6 = 350, /* server_min_client_subnet_ipv6 */ + YYSYMBOL_server_max_ecs_tree_size_ipv4 = 351, /* server_max_ecs_tree_size_ipv4 */ + YYSYMBOL_server_max_ecs_tree_size_ipv6 = 352, /* server_max_ecs_tree_size_ipv6 */ + YYSYMBOL_server_interface = 353, /* server_interface */ + YYSYMBOL_server_outgoing_interface = 354, /* server_outgoing_interface */ + YYSYMBOL_server_outgoing_range = 355, /* server_outgoing_range */ + YYSYMBOL_server_outgoing_port_permit = 356, /* server_outgoing_port_permit */ + YYSYMBOL_server_outgoing_port_avoid = 357, /* server_outgoing_port_avoid */ + YYSYMBOL_server_outgoing_num_tcp = 358, /* server_outgoing_num_tcp */ + YYSYMBOL_server_incoming_num_tcp = 359, /* server_incoming_num_tcp */ + YYSYMBOL_server_interface_automatic = 360, /* server_interface_automatic */ + YYSYMBOL_server_do_ip4 = 361, /* server_do_ip4 */ + YYSYMBOL_server_do_ip6 = 362, /* server_do_ip6 */ + YYSYMBOL_server_do_udp = 363, /* server_do_udp */ + YYSYMBOL_server_do_tcp = 364, /* server_do_tcp */ + YYSYMBOL_server_prefer_ip4 = 365, /* server_prefer_ip4 */ + YYSYMBOL_server_prefer_ip6 = 366, /* server_prefer_ip6 */ + YYSYMBOL_server_tcp_mss = 367, /* server_tcp_mss */ + YYSYMBOL_server_outgoing_tcp_mss = 368, /* server_outgoing_tcp_mss */ + YYSYMBOL_server_tcp_idle_timeout = 369, /* server_tcp_idle_timeout */ + YYSYMBOL_server_tcp_keepalive = 370, /* server_tcp_keepalive */ + YYSYMBOL_server_tcp_keepalive_timeout = 371, /* server_tcp_keepalive_timeout */ + YYSYMBOL_server_tcp_upstream = 372, /* server_tcp_upstream */ + YYSYMBOL_server_udp_upstream_without_downstream = 373, /* server_udp_upstream_without_downstream */ + YYSYMBOL_server_ssl_upstream = 374, /* server_ssl_upstream */ + YYSYMBOL_server_ssl_service_key = 375, /* server_ssl_service_key */ + YYSYMBOL_server_ssl_service_pem = 376, /* server_ssl_service_pem */ + YYSYMBOL_server_ssl_port = 377, /* server_ssl_port */ + YYSYMBOL_server_tls_cert_bundle = 378, /* server_tls_cert_bundle */ + YYSYMBOL_server_tls_win_cert = 379, /* server_tls_win_cert */ + YYSYMBOL_server_tls_additional_port = 380, /* server_tls_additional_port */ + YYSYMBOL_server_tls_ciphers = 381, /* server_tls_ciphers */ + YYSYMBOL_server_tls_ciphersuites = 382, /* server_tls_ciphersuites */ + YYSYMBOL_server_tls_session_ticket_keys = 383, /* server_tls_session_ticket_keys */ + YYSYMBOL_server_tls_use_sni = 384, /* server_tls_use_sni */ + YYSYMBOL_server_https_port = 385, /* server_https_port */ + YYSYMBOL_server_http_endpoint = 386, /* server_http_endpoint */ + YYSYMBOL_server_http_max_streams = 387, /* server_http_max_streams */ + YYSYMBOL_server_http_query_buffer_size = 388, /* server_http_query_buffer_size */ + YYSYMBOL_server_http_response_buffer_size = 389, /* server_http_response_buffer_size */ + YYSYMBOL_server_http_nodelay = 390, /* server_http_nodelay */ + YYSYMBOL_server_http_notls_downstream = 391, /* server_http_notls_downstream */ + YYSYMBOL_server_use_systemd = 392, /* server_use_systemd */ + YYSYMBOL_server_do_daemonize = 393, /* server_do_daemonize */ + YYSYMBOL_server_use_syslog = 394, /* server_use_syslog */ + YYSYMBOL_server_log_time_ascii = 395, /* server_log_time_ascii */ + YYSYMBOL_server_log_queries = 396, /* server_log_queries */ + YYSYMBOL_server_log_replies = 397, /* server_log_replies */ + YYSYMBOL_server_log_tag_queryreply = 398, /* server_log_tag_queryreply */ + YYSYMBOL_server_log_servfail = 399, /* server_log_servfail */ + YYSYMBOL_server_log_local_actions = 400, /* server_log_local_actions */ + YYSYMBOL_server_chroot = 401, /* server_chroot */ + YYSYMBOL_server_username = 402, /* server_username */ + YYSYMBOL_server_directory = 403, /* server_directory */ + YYSYMBOL_server_logfile = 404, /* server_logfile */ + YYSYMBOL_server_pidfile = 405, /* server_pidfile */ + YYSYMBOL_server_root_hints = 406, /* server_root_hints */ + YYSYMBOL_server_dlv_anchor_file = 407, /* server_dlv_anchor_file */ + YYSYMBOL_server_dlv_anchor = 408, /* server_dlv_anchor */ + YYSYMBOL_server_auto_trust_anchor_file = 409, /* server_auto_trust_anchor_file */ + YYSYMBOL_server_trust_anchor_file = 410, /* server_trust_anchor_file */ + YYSYMBOL_server_trusted_keys_file = 411, /* server_trusted_keys_file */ + YYSYMBOL_server_trust_anchor = 412, /* server_trust_anchor */ + YYSYMBOL_server_trust_anchor_signaling = 413, /* server_trust_anchor_signaling */ + YYSYMBOL_server_root_key_sentinel = 414, /* server_root_key_sentinel */ + YYSYMBOL_server_domain_insecure = 415, /* server_domain_insecure */ + YYSYMBOL_server_hide_identity = 416, /* server_hide_identity */ + YYSYMBOL_server_hide_version = 417, /* server_hide_version */ + YYSYMBOL_server_hide_trustanchor = 418, /* server_hide_trustanchor */ + YYSYMBOL_server_identity = 419, /* server_identity */ + YYSYMBOL_server_version = 420, /* server_version */ + YYSYMBOL_server_nsid = 421, /* server_nsid */ + YYSYMBOL_server_so_rcvbuf = 422, /* server_so_rcvbuf */ + YYSYMBOL_server_so_sndbuf = 423, /* server_so_sndbuf */ + YYSYMBOL_server_so_reuseport = 424, /* server_so_reuseport */ + YYSYMBOL_server_ip_transparent = 425, /* server_ip_transparent */ + YYSYMBOL_server_ip_freebind = 426, /* server_ip_freebind */ + YYSYMBOL_server_ip_dscp = 427, /* server_ip_dscp */ + YYSYMBOL_server_stream_wait_size = 428, /* server_stream_wait_size */ + YYSYMBOL_server_edns_buffer_size = 429, /* server_edns_buffer_size */ + YYSYMBOL_server_msg_buffer_size = 430, /* server_msg_buffer_size */ + YYSYMBOL_server_msg_cache_size = 431, /* server_msg_cache_size */ + YYSYMBOL_server_msg_cache_slabs = 432, /* server_msg_cache_slabs */ + YYSYMBOL_server_num_queries_per_thread = 433, /* server_num_queries_per_thread */ + YYSYMBOL_server_jostle_timeout = 434, /* server_jostle_timeout */ + YYSYMBOL_server_delay_close = 435, /* server_delay_close */ + YYSYMBOL_server_udp_connect = 436, /* server_udp_connect */ + YYSYMBOL_server_unblock_lan_zones = 437, /* server_unblock_lan_zones */ + YYSYMBOL_server_insecure_lan_zones = 438, /* server_insecure_lan_zones */ + YYSYMBOL_server_rrset_cache_size = 439, /* server_rrset_cache_size */ + YYSYMBOL_server_rrset_cache_slabs = 440, /* server_rrset_cache_slabs */ + YYSYMBOL_server_infra_host_ttl = 441, /* server_infra_host_ttl */ + YYSYMBOL_server_infra_lame_ttl = 442, /* server_infra_lame_ttl */ + YYSYMBOL_server_infra_cache_numhosts = 443, /* server_infra_cache_numhosts */ + YYSYMBOL_server_infra_cache_lame_size = 444, /* server_infra_cache_lame_size */ + YYSYMBOL_server_infra_cache_slabs = 445, /* server_infra_cache_slabs */ + YYSYMBOL_server_infra_cache_min_rtt = 446, /* server_infra_cache_min_rtt */ + YYSYMBOL_server_infra_keep_probing = 447, /* server_infra_keep_probing */ + YYSYMBOL_server_target_fetch_policy = 448, /* server_target_fetch_policy */ + YYSYMBOL_server_harden_short_bufsize = 449, /* server_harden_short_bufsize */ + YYSYMBOL_server_harden_large_queries = 450, /* server_harden_large_queries */ + YYSYMBOL_server_harden_glue = 451, /* server_harden_glue */ + YYSYMBOL_server_harden_dnssec_stripped = 452, /* server_harden_dnssec_stripped */ + YYSYMBOL_server_harden_below_nxdomain = 453, /* server_harden_below_nxdomain */ + YYSYMBOL_server_harden_referral_path = 454, /* server_harden_referral_path */ + YYSYMBOL_server_harden_algo_downgrade = 455, /* server_harden_algo_downgrade */ + YYSYMBOL_server_use_caps_for_id = 456, /* server_use_caps_for_id */ + YYSYMBOL_server_caps_whitelist = 457, /* server_caps_whitelist */ + YYSYMBOL_server_private_address = 458, /* server_private_address */ + YYSYMBOL_server_private_domain = 459, /* server_private_domain */ + YYSYMBOL_server_prefetch = 460, /* server_prefetch */ + YYSYMBOL_server_prefetch_key = 461, /* server_prefetch_key */ + YYSYMBOL_server_deny_any = 462, /* server_deny_any */ + YYSYMBOL_server_unwanted_reply_threshold = 463, /* server_unwanted_reply_threshold */ + YYSYMBOL_server_do_not_query_address = 464, /* server_do_not_query_address */ + YYSYMBOL_server_do_not_query_localhost = 465, /* server_do_not_query_localhost */ + YYSYMBOL_server_access_control = 466, /* server_access_control */ + YYSYMBOL_server_module_conf = 467, /* server_module_conf */ + YYSYMBOL_server_val_override_date = 468, /* server_val_override_date */ + YYSYMBOL_server_val_sig_skew_min = 469, /* server_val_sig_skew_min */ + YYSYMBOL_server_val_sig_skew_max = 470, /* server_val_sig_skew_max */ + YYSYMBOL_server_cache_max_ttl = 471, /* server_cache_max_ttl */ + YYSYMBOL_server_cache_max_negative_ttl = 472, /* server_cache_max_negative_ttl */ + YYSYMBOL_server_cache_min_ttl = 473, /* server_cache_min_ttl */ + YYSYMBOL_server_bogus_ttl = 474, /* server_bogus_ttl */ + YYSYMBOL_server_val_clean_additional = 475, /* server_val_clean_additional */ + YYSYMBOL_server_val_permissive_mode = 476, /* server_val_permissive_mode */ + YYSYMBOL_server_aggressive_nsec = 477, /* server_aggressive_nsec */ + YYSYMBOL_server_ignore_cd_flag = 478, /* server_ignore_cd_flag */ + YYSYMBOL_server_serve_expired = 479, /* server_serve_expired */ + YYSYMBOL_server_serve_expired_ttl = 480, /* server_serve_expired_ttl */ + YYSYMBOL_server_serve_expired_ttl_reset = 481, /* server_serve_expired_ttl_reset */ + YYSYMBOL_server_serve_expired_reply_ttl = 482, /* server_serve_expired_reply_ttl */ + YYSYMBOL_server_serve_expired_client_timeout = 483, /* server_serve_expired_client_timeout */ + YYSYMBOL_server_fake_dsa = 484, /* server_fake_dsa */ + YYSYMBOL_server_fake_sha1 = 485, /* server_fake_sha1 */ + YYSYMBOL_server_val_log_level = 486, /* server_val_log_level */ + YYSYMBOL_server_val_nsec3_keysize_iterations = 487, /* server_val_nsec3_keysize_iterations */ + YYSYMBOL_server_add_holddown = 488, /* server_add_holddown */ + YYSYMBOL_server_del_holddown = 489, /* server_del_holddown */ + YYSYMBOL_server_keep_missing = 490, /* server_keep_missing */ + YYSYMBOL_server_permit_small_holddown = 491, /* server_permit_small_holddown */ + YYSYMBOL_server_key_cache_size = 492, /* server_key_cache_size */ + YYSYMBOL_server_key_cache_slabs = 493, /* server_key_cache_slabs */ + YYSYMBOL_server_neg_cache_size = 494, /* server_neg_cache_size */ + YYSYMBOL_server_local_zone = 495, /* server_local_zone */ + YYSYMBOL_server_local_data = 496, /* server_local_data */ + YYSYMBOL_server_local_data_ptr = 497, /* server_local_data_ptr */ + YYSYMBOL_server_minimal_responses = 498, /* server_minimal_responses */ + YYSYMBOL_server_rrset_roundrobin = 499, /* server_rrset_roundrobin */ + YYSYMBOL_server_unknown_server_time_limit = 500, /* server_unknown_server_time_limit */ + YYSYMBOL_server_max_udp_size = 501, /* server_max_udp_size */ + YYSYMBOL_server_dns64_prefix = 502, /* server_dns64_prefix */ + YYSYMBOL_server_dns64_synthall = 503, /* server_dns64_synthall */ + YYSYMBOL_server_dns64_ignore_aaaa = 504, /* server_dns64_ignore_aaaa */ + YYSYMBOL_server_define_tag = 505, /* server_define_tag */ + YYSYMBOL_server_local_zone_tag = 506, /* server_local_zone_tag */ + YYSYMBOL_server_access_control_tag = 507, /* server_access_control_tag */ + YYSYMBOL_server_access_control_tag_action = 508, /* server_access_control_tag_action */ + YYSYMBOL_server_access_control_tag_data = 509, /* server_access_control_tag_data */ + YYSYMBOL_server_local_zone_override = 510, /* server_local_zone_override */ + YYSYMBOL_server_access_control_view = 511, /* server_access_control_view */ + YYSYMBOL_server_response_ip_tag = 512, /* server_response_ip_tag */ + YYSYMBOL_server_ip_ratelimit = 513, /* server_ip_ratelimit */ + YYSYMBOL_server_ratelimit = 514, /* server_ratelimit */ + YYSYMBOL_server_ip_ratelimit_size = 515, /* server_ip_ratelimit_size */ + YYSYMBOL_server_ratelimit_size = 516, /* server_ratelimit_size */ + YYSYMBOL_server_ip_ratelimit_slabs = 517, /* server_ip_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_slabs = 518, /* server_ratelimit_slabs */ + YYSYMBOL_server_ratelimit_for_domain = 519, /* server_ratelimit_for_domain */ + YYSYMBOL_server_ratelimit_below_domain = 520, /* server_ratelimit_below_domain */ + YYSYMBOL_server_ip_ratelimit_factor = 521, /* server_ip_ratelimit_factor */ + YYSYMBOL_server_ratelimit_factor = 522, /* server_ratelimit_factor */ + YYSYMBOL_server_low_rtt = 523, /* server_low_rtt */ + YYSYMBOL_server_fast_server_num = 524, /* server_fast_server_num */ + YYSYMBOL_server_fast_server_permil = 525, /* server_fast_server_permil */ + YYSYMBOL_server_qname_minimisation = 526, /* server_qname_minimisation */ + YYSYMBOL_server_qname_minimisation_strict = 527, /* server_qname_minimisation_strict */ + YYSYMBOL_server_pad_responses = 528, /* server_pad_responses */ + YYSYMBOL_server_pad_responses_block_size = 529, /* server_pad_responses_block_size */ + YYSYMBOL_server_pad_queries = 530, /* server_pad_queries */ + YYSYMBOL_server_pad_queries_block_size = 531, /* server_pad_queries_block_size */ + YYSYMBOL_server_ipsecmod_enabled = 532, /* server_ipsecmod_enabled */ + YYSYMBOL_server_ipsecmod_ignore_bogus = 533, /* server_ipsecmod_ignore_bogus */ + YYSYMBOL_server_ipsecmod_hook = 534, /* server_ipsecmod_hook */ + YYSYMBOL_server_ipsecmod_max_ttl = 535, /* server_ipsecmod_max_ttl */ + YYSYMBOL_server_ipsecmod_whitelist = 536, /* server_ipsecmod_whitelist */ + YYSYMBOL_server_ipsecmod_strict = 537, /* server_ipsecmod_strict */ + YYSYMBOL_server_edns_client_string = 538, /* server_edns_client_string */ + YYSYMBOL_server_edns_client_string_opcode = 539, /* server_edns_client_string_opcode */ + YYSYMBOL_stub_name = 540, /* stub_name */ + YYSYMBOL_stub_host = 541, /* stub_host */ + YYSYMBOL_stub_addr = 542, /* stub_addr */ + YYSYMBOL_stub_first = 543, /* stub_first */ + YYSYMBOL_stub_no_cache = 544, /* stub_no_cache */ + YYSYMBOL_stub_ssl_upstream = 545, /* stub_ssl_upstream */ + YYSYMBOL_stub_prime = 546, /* stub_prime */ + YYSYMBOL_forward_name = 547, /* forward_name */ + YYSYMBOL_forward_host = 548, /* forward_host */ + YYSYMBOL_forward_addr = 549, /* forward_addr */ + YYSYMBOL_forward_first = 550, /* forward_first */ + YYSYMBOL_forward_no_cache = 551, /* forward_no_cache */ + YYSYMBOL_forward_ssl_upstream = 552, /* forward_ssl_upstream */ + YYSYMBOL_auth_name = 553, /* auth_name */ + YYSYMBOL_auth_zonefile = 554, /* auth_zonefile */ + YYSYMBOL_auth_master = 555, /* auth_master */ + YYSYMBOL_auth_url = 556, /* auth_url */ + YYSYMBOL_auth_allow_notify = 557, /* auth_allow_notify */ + YYSYMBOL_auth_for_downstream = 558, /* auth_for_downstream */ + YYSYMBOL_auth_for_upstream = 559, /* auth_for_upstream */ + YYSYMBOL_auth_fallback_enabled = 560, /* auth_fallback_enabled */ + YYSYMBOL_view_name = 561, /* view_name */ + YYSYMBOL_view_local_zone = 562, /* view_local_zone */ + YYSYMBOL_view_response_ip = 563, /* view_response_ip */ + YYSYMBOL_view_response_ip_data = 564, /* view_response_ip_data */ + YYSYMBOL_view_local_data = 565, /* view_local_data */ + YYSYMBOL_view_local_data_ptr = 566, /* view_local_data_ptr */ + YYSYMBOL_view_first = 567, /* view_first */ + YYSYMBOL_rcstart = 568, /* rcstart */ + YYSYMBOL_contents_rc = 569, /* contents_rc */ + YYSYMBOL_content_rc = 570, /* content_rc */ + YYSYMBOL_rc_control_enable = 571, /* rc_control_enable */ + YYSYMBOL_rc_control_port = 572, /* rc_control_port */ + YYSYMBOL_rc_control_interface = 573, /* rc_control_interface */ + YYSYMBOL_rc_control_use_cert = 574, /* rc_control_use_cert */ + YYSYMBOL_rc_server_key_file = 575, /* rc_server_key_file */ + YYSYMBOL_rc_server_cert_file = 576, /* rc_server_cert_file */ + YYSYMBOL_rc_control_key_file = 577, /* rc_control_key_file */ + YYSYMBOL_rc_control_cert_file = 578, /* rc_control_cert_file */ + YYSYMBOL_dtstart = 579, /* dtstart */ + YYSYMBOL_contents_dt = 580, /* contents_dt */ + YYSYMBOL_content_dt = 581, /* content_dt */ + YYSYMBOL_dt_dnstap_enable = 582, /* dt_dnstap_enable */ + YYSYMBOL_dt_dnstap_bidirectional = 583, /* dt_dnstap_bidirectional */ + YYSYMBOL_dt_dnstap_socket_path = 584, /* dt_dnstap_socket_path */ + YYSYMBOL_dt_dnstap_ip = 585, /* dt_dnstap_ip */ + YYSYMBOL_dt_dnstap_tls = 586, /* dt_dnstap_tls */ + YYSYMBOL_dt_dnstap_tls_server_name = 587, /* dt_dnstap_tls_server_name */ + YYSYMBOL_dt_dnstap_tls_cert_bundle = 588, /* dt_dnstap_tls_cert_bundle */ + YYSYMBOL_dt_dnstap_tls_client_key_file = 589, /* dt_dnstap_tls_client_key_file */ + YYSYMBOL_dt_dnstap_tls_client_cert_file = 590, /* dt_dnstap_tls_client_cert_file */ + YYSYMBOL_dt_dnstap_send_identity = 591, /* dt_dnstap_send_identity */ + YYSYMBOL_dt_dnstap_send_version = 592, /* dt_dnstap_send_version */ + YYSYMBOL_dt_dnstap_identity = 593, /* dt_dnstap_identity */ + YYSYMBOL_dt_dnstap_version = 594, /* dt_dnstap_version */ + YYSYMBOL_dt_dnstap_log_resolver_query_messages = 595, /* dt_dnstap_log_resolver_query_messages */ + YYSYMBOL_dt_dnstap_log_resolver_response_messages = 596, /* dt_dnstap_log_resolver_response_messages */ + YYSYMBOL_dt_dnstap_log_client_query_messages = 597, /* dt_dnstap_log_client_query_messages */ + YYSYMBOL_dt_dnstap_log_client_response_messages = 598, /* dt_dnstap_log_client_response_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 599, /* dt_dnstap_log_forwarder_query_messages */ + YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 600, /* dt_dnstap_log_forwarder_response_messages */ + YYSYMBOL_pythonstart = 601, /* pythonstart */ + YYSYMBOL_contents_py = 602, /* contents_py */ + YYSYMBOL_content_py = 603, /* content_py */ + YYSYMBOL_py_script = 604, /* py_script */ + YYSYMBOL_dynlibstart = 605, /* dynlibstart */ + YYSYMBOL_contents_dl = 606, /* contents_dl */ + YYSYMBOL_content_dl = 607, /* content_dl */ + YYSYMBOL_dl_file = 608, /* dl_file */ + YYSYMBOL_server_disable_dnssec_lame_check = 609, /* server_disable_dnssec_lame_check */ + YYSYMBOL_server_log_identity = 610, /* server_log_identity */ + YYSYMBOL_server_response_ip = 611, /* server_response_ip */ + YYSYMBOL_server_response_ip_data = 612, /* server_response_ip_data */ + YYSYMBOL_dnscstart = 613, /* dnscstart */ + YYSYMBOL_contents_dnsc = 614, /* contents_dnsc */ + YYSYMBOL_content_dnsc = 615, /* content_dnsc */ + YYSYMBOL_dnsc_dnscrypt_enable = 616, /* dnsc_dnscrypt_enable */ + YYSYMBOL_dnsc_dnscrypt_port = 617, /* dnsc_dnscrypt_port */ + YYSYMBOL_dnsc_dnscrypt_provider = 618, /* dnsc_dnscrypt_provider */ + YYSYMBOL_dnsc_dnscrypt_provider_cert = 619, /* dnsc_dnscrypt_provider_cert */ + YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 620, /* dnsc_dnscrypt_provider_cert_rotated */ + YYSYMBOL_dnsc_dnscrypt_secret_key = 621, /* dnsc_dnscrypt_secret_key */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 622, /* dnsc_dnscrypt_shared_secret_cache_size */ + YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 623, /* dnsc_dnscrypt_shared_secret_cache_slabs */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 624, /* dnsc_dnscrypt_nonce_cache_size */ + YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 625, /* dnsc_dnscrypt_nonce_cache_slabs */ + YYSYMBOL_cachedbstart = 626, /* cachedbstart */ + YYSYMBOL_contents_cachedb = 627, /* contents_cachedb */ + YYSYMBOL_content_cachedb = 628, /* content_cachedb */ + YYSYMBOL_cachedb_backend_name = 629, /* cachedb_backend_name */ + YYSYMBOL_cachedb_secret_seed = 630, /* cachedb_secret_seed */ + YYSYMBOL_redis_server_host = 631, /* redis_server_host */ + YYSYMBOL_redis_server_port = 632, /* redis_server_port */ + YYSYMBOL_redis_timeout = 633, /* redis_timeout */ + YYSYMBOL_redis_expire_records = 634, /* redis_expire_records */ + YYSYMBOL_server_tcp_connection_limit = 635, /* server_tcp_connection_limit */ + YYSYMBOL_ipsetstart = 636, /* ipsetstart */ + YYSYMBOL_contents_ipset = 637, /* contents_ipset */ + YYSYMBOL_content_ipset = 638, /* content_ipset */ + YYSYMBOL_ipset_name_v4 = 639, /* ipset_name_v4 */ + YYSYMBOL_ipset_name_v6 = 640 /* ipset_name_v6 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -1066,19 +1074,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 642 +#define YYLAST 650 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 304 +#define YYNTOKENS 308 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 329 +#define YYNNTS 333 /* YYNRULES -- Number of rules. */ -#define YYNRULES 634 +#define YYNRULES 642 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 942 +#define YYNSTATES 954 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 558 +#define YYMAXUTOK 562 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1147,77 +1155,79 @@ static const yytype_int16 yytranslate[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303 + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 185, 185, 185, 186, 186, 187, 187, 188, 188, - 188, 189, 189, 190, 190, 191, 191, 192, 194, 200, - 205, 206, 207, 207, 207, 208, 208, 209, 209, 209, - 210, 210, 211, 211, 211, 212, 212, 213, 213, 213, - 214, 214, 214, 215, 215, 216, 216, 217, 217, 218, - 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, - 223, 223, 224, 224, 224, 225, 225, 225, 226, 226, - 227, 227, 228, 228, 229, 229, 230, 230, 230, 231, - 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, - 236, 236, 237, 237, 237, 238, 238, 239, 239, 240, - 240, 241, 241, 242, 242, 243, 243, 243, 244, 244, - 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, - 248, 248, 248, 249, 250, 250, 250, 251, 251, 251, - 252, 252, 253, 253, 254, 254, 254, 255, 255, 255, - 256, 256, 257, 257, 257, 258, 258, 259, 259, 259, - 260, 260, 261, 261, 262, 262, 263, 264, 264, 265, - 265, 266, 266, 267, 268, 268, 269, 269, 270, 270, - 271, 271, 272, 272, 273, 273, 273, 274, 274, 275, - 275, 276, 276, 277, 277, 278, 278, 279, 279, 280, - 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, - 284, 285, 285, 286, 286, 287, 287, 288, 288, 289, - 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, - 293, 293, 294, 294, 295, 295, 296, 296, 298, 310, - 311, 312, 312, 312, 312, 312, 313, 313, 315, 327, - 328, 329, 329, 329, 329, 330, 330, 332, 346, 347, - 348, 348, 348, 348, 349, 349, 349, 351, 368, 369, - 370, 370, 370, 370, 371, 371, 371, 372, 375, 394, - 411, 419, 429, 437, 454, 455, 456, 456, 456, 456, - 456, 457, 457, 457, 458, 458, 460, 469, 478, 489, - 498, 507, 516, 527, 536, 548, 562, 577, 588, 605, - 622, 639, 656, 671, 686, 699, 714, 723, 732, 741, - 750, 759, 768, 777, 786, 795, 804, 813, 822, 831, - 840, 853, 862, 875, 884, 893, 902, 909, 916, 925, - 932, 941, 949, 956, 963, 971, 980, 988, 1004, 1012, - 1020, 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, - 1112, 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, - 1206, 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, - 1293, 1300, 1307, 1323, 1331, 1339, 1349, 1359, 1369, 1383, - 1391, 1404, 1415, 1423, 1436, 1445, 1454, 1463, 1472, 1482, - 1492, 1500, 1513, 1522, 1530, 1539, 1547, 1560, 1569, 1579, - 1586, 1596, 1606, 1616, 1626, 1636, 1646, 1656, 1666, 1673, - 1680, 1687, 1696, 1705, 1714, 1723, 1730, 1740, 1760, 1767, - 1785, 1798, 1811, 1820, 1829, 1838, 1847, 1857, 1867, 1878, - 1887, 1896, 1905, 1914, 1923, 1932, 1945, 1958, 1967, 1974, - 1983, 1992, 2001, 2010, 2018, 2031, 2039, 2084, 2091, 2106, - 2116, 2126, 2133, 2140, 2147, 2156, 2164, 2178, 2199, 2220, - 2232, 2244, 2256, 2265, 2286, 2296, 2305, 2313, 2321, 2334, - 2347, 2362, 2377, 2386, 2395, 2401, 2410, 2419, 2429, 2439, - 2452, 2465, 2477, 2491, 2503, 2517, 2526, 2538, 2548, 2555, - 2562, 2571, 2580, 2590, 2600, 2610, 2617, 2624, 2633, 2642, - 2652, 2662, 2669, 2676, 2683, 2691, 2701, 2711, 2721, 2731, - 2770, 2780, 2788, 2796, 2811, 2820, 2825, 2826, 2827, 2827, - 2827, 2828, 2828, 2828, 2829, 2829, 2831, 2841, 2850, 2857, - 2864, 2871, 2878, 2885, 2892, 2897, 2898, 2899, 2899, 2899, - 2900, 2900, 2900, 2901, 2902, 2902, 2903, 2903, 2904, 2904, - 2905, 2906, 2907, 2908, 2909, 2910, 2912, 2921, 2931, 2938, - 2945, 2954, 2961, 2968, 2975, 2982, 2991, 3000, 3007, 3014, - 3024, 3034, 3044, 3054, 3064, 3074, 3079, 3080, 3081, 3083, - 3089, 3094, 3095, 3096, 3098, 3104, 3114, 3121, 3130, 3138, - 3143, 3144, 3146, 3146, 3146, 3147, 3147, 3148, 3149, 3150, - 3151, 3152, 3154, 3164, 3173, 3180, 3189, 3196, 3205, 3213, - 3226, 3234, 3247, 3252, 3253, 3254, 3254, 3255, 3255, 3255, - 3256, 3258, 3270, 3282, 3294, 3309, 3322, 3335, 3346, 3351, - 3352, 3353, 3353, 3355, 3370 + 0, 187, 187, 187, 188, 188, 189, 189, 190, 190, + 190, 191, 191, 192, 192, 193, 193, 194, 196, 202, + 207, 208, 209, 209, 209, 210, 210, 211, 211, 211, + 212, 212, 213, 213, 213, 214, 214, 215, 215, 215, + 216, 216, 216, 217, 217, 218, 218, 219, 219, 220, + 220, 221, 221, 222, 222, 223, 223, 224, 224, 225, + 225, 225, 226, 226, 226, 227, 227, 227, 228, 228, + 229, 229, 230, 230, 231, 231, 232, 232, 232, 233, + 233, 234, 234, 235, 235, 235, 236, 236, 237, 237, + 238, 238, 239, 239, 239, 240, 240, 241, 241, 242, + 242, 243, 243, 244, 244, 245, 245, 245, 246, 246, + 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, + 250, 250, 250, 251, 252, 252, 252, 253, 253, 253, + 254, 254, 255, 255, 256, 256, 256, 257, 257, 257, + 258, 258, 259, 259, 259, 260, 260, 261, 261, 261, + 262, 262, 263, 263, 264, 264, 265, 266, 266, 267, + 267, 268, 268, 269, 270, 270, 271, 271, 272, 272, + 273, 273, 274, 274, 275, 275, 275, 276, 276, 277, + 277, 278, 278, 279, 280, 280, 281, 281, 282, 283, + 283, 284, 284, 285, 285, 285, 286, 286, 286, 287, + 287, 287, 288, 288, 289, 290, 290, 291, 291, 292, + 292, 293, 293, 294, 294, 294, 295, 295, 295, 296, + 296, 296, 297, 297, 298, 298, 299, 299, 300, 300, + 301, 301, 303, 315, 316, 317, 317, 317, 317, 317, + 318, 318, 320, 332, 333, 334, 334, 334, 334, 335, + 335, 337, 351, 352, 353, 353, 353, 353, 354, 354, + 354, 356, 373, 374, 375, 375, 375, 375, 376, 376, + 376, 377, 380, 399, 416, 424, 434, 442, 459, 460, + 461, 461, 461, 461, 461, 462, 462, 462, 463, 463, + 465, 474, 483, 494, 503, 512, 521, 532, 541, 553, + 567, 582, 593, 610, 627, 644, 661, 676, 691, 704, + 719, 728, 737, 746, 755, 764, 773, 782, 791, 800, + 809, 818, 827, 836, 845, 858, 867, 880, 889, 898, + 907, 914, 921, 930, 937, 946, 954, 961, 968, 976, + 985, 993, 1009, 1017, 1025, 1033, 1041, 1049, 1058, 1067, + 1081, 1090, 1099, 1108, 1117, 1126, 1135, 1142, 1149, 1175, + 1183, 1190, 1197, 1204, 1211, 1219, 1227, 1235, 1242, 1253, + 1264, 1271, 1280, 1289, 1298, 1305, 1312, 1328, 1336, 1344, + 1354, 1364, 1374, 1388, 1396, 1409, 1420, 1428, 1441, 1450, + 1459, 1468, 1477, 1487, 1497, 1505, 1518, 1527, 1535, 1544, + 1552, 1565, 1574, 1584, 1591, 1601, 1611, 1621, 1631, 1641, + 1651, 1661, 1671, 1678, 1685, 1692, 1701, 1710, 1719, 1728, + 1735, 1745, 1765, 1772, 1790, 1803, 1816, 1825, 1834, 1843, + 1852, 1862, 1872, 1883, 1892, 1901, 1910, 1919, 1928, 1937, + 1950, 1963, 1972, 1979, 1988, 1997, 2006, 2015, 2023, 2036, + 2044, 2089, 2096, 2111, 2121, 2131, 2138, 2145, 2152, 2161, + 2169, 2183, 2204, 2225, 2237, 2249, 2261, 2270, 2291, 2301, + 2310, 2318, 2326, 2339, 2352, 2367, 2382, 2391, 2400, 2406, + 2415, 2424, 2434, 2444, 2454, 2463, 2473, 2482, 2495, 2508, + 2520, 2534, 2546, 2560, 2569, 2581, 2591, 2598, 2605, 2614, + 2623, 2633, 2643, 2653, 2660, 2667, 2676, 2685, 2695, 2705, + 2712, 2719, 2726, 2734, 2744, 2754, 2764, 2774, 2813, 2823, + 2831, 2839, 2854, 2863, 2868, 2869, 2870, 2870, 2870, 2871, + 2871, 2871, 2872, 2872, 2874, 2884, 2893, 2900, 2907, 2914, + 2921, 2928, 2935, 2940, 2941, 2942, 2942, 2942, 2943, 2943, + 2943, 2944, 2945, 2945, 2946, 2946, 2947, 2947, 2948, 2949, + 2950, 2951, 2952, 2953, 2955, 2964, 2974, 2981, 2988, 2997, + 3004, 3011, 3018, 3025, 3034, 3043, 3050, 3057, 3067, 3077, + 3087, 3097, 3107, 3117, 3122, 3123, 3124, 3126, 3132, 3137, + 3138, 3139, 3141, 3147, 3157, 3164, 3173, 3181, 3186, 3187, + 3189, 3189, 3189, 3190, 3190, 3191, 3192, 3193, 3194, 3195, + 3197, 3207, 3216, 3223, 3232, 3239, 3248, 3256, 3269, 3277, + 3290, 3295, 3296, 3297, 3297, 3298, 3298, 3298, 3299, 3301, + 3313, 3325, 3337, 3352, 3365, 3378, 3389, 3394, 3395, 3396, + 3396, 3398, 3413 }; #endif @@ -1327,32 +1337,34 @@ static const char *const yytname[] = "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", - "VAR_IPSECMOD_ENABLED", "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", - "VAR_IPSECMOD_MAX_TTL", "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", - "VAR_CACHEDB", "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", - "VAR_CACHEDB_REDISHOST", "VAR_CACHEDB_REDISPORT", - "VAR_CACHEDB_REDISTIMEOUT", "VAR_CACHEDB_REDISEXPIRERECORDS", - "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM", - "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL", - "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT", - "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL", - "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", - "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE", - "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT", - "VAR_LOG_TAG_QUERYREPLY", "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS", - "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI", "VAR_IPSET", - "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS", - "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE", - "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", - "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING", - "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", "$accept", "toplevelvars", - "toplevelvar", "force_toplevel", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", "viewstart", - "contents_view", "content_view", "authstart", "contents_auth", - "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override", - "rpz_log", "rpz_log_name", "rpzstart", "contents_rpz", "content_rpz", - "server_num_threads", "server_verbosity", "server_statistics_interval", + "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES", + "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED", + "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL", + "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB", + "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST", + "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT", + "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", + "VAR_FOR_UPSTREAM", "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", + "VAR_URL", "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", + "VAR_TLS_ADDITIONAL_PORT", "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", + "VAR_FAST_SERVER_PERMIL", "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", + "VAR_TLS_WIN_CERT", "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", + "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", + "VAR_UNKNOWN_SERVER_TIME_LIMIT", "VAR_LOG_TAG_QUERYREPLY", + "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES", + "VAR_TLS_USE_SNI", "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", + "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS", + "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", + "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE", + "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", + "$accept", "toplevelvars", "toplevelvar", "force_toplevel", + "serverstart", "contents_server", "content_server", "stubstart", + "contents_stub", "content_stub", "forwardstart", "contents_forward", + "content_forward", "viewstart", "contents_view", "content_view", + "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_shm_enable", "server_shm_key", "server_port", "server_send_client_subnet", "server_client_subnet_zone", @@ -1435,7 +1447,9 @@ static const char *const yytname[] = "server_ratelimit_below_domain", "server_ip_ratelimit_factor", "server_ratelimit_factor", "server_low_rtt", "server_fast_server_num", "server_fast_server_permil", "server_qname_minimisation", - "server_qname_minimisation_strict", "server_ipsecmod_enabled", + "server_qname_minimisation_strict", "server_pad_responses", + "server_pad_responses_block_size", "server_pad_queries", + "server_pad_queries_block_size", "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", "server_ipsecmod_strict", "server_edns_client_string", @@ -1521,11 +1535,11 @@ static const yytype_int16 yytoknum[] = 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 + 555, 556, 557, 558, 559, 560, 561, 562 }; #endif -#define YYPACT_NINF (-291) +#define YYPACT_NINF (-295) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -1539,11 +1553,11 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -291, 0, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, 287, -42, -38, -43, -21, -44, -11, -96, - -109, -290, -215, -240, -282, 3, 4, 13, 25, 26, + -295, 0, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, 291, -42, -38, -43, -21, -44, -11, -96, + -109, -294, -215, -244, -286, 3, 4, 13, 25, 26, 27, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 84, 85, 88, 89, 91, 93, @@ -1558,82 +1572,83 @@ static const yytype_int16 yypact[] = 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, 215, 216, 217, 218, 219, 220, 221, 223, 224, - 225, 226, 227, 230, 232, 234, 247, 248, 249, 250, - 251, 252, 253, 254, 256, 257, 258, 259, 260, 261, + 210, 212, 213, 214, 215, 219, 220, 221, 222, 223, + 224, 225, 227, 228, 230, 231, 233, 234, 236, 238, + 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, - 284, 285, 286, 288, 322, 323, 324, 325, 329, 330, - 331, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 373, 374, - 375, 376, 377, 378, 379, -291, -291, -291, -291, -291, - -291, -291, -291, 380, 381, 385, 389, 390, 415, -291, - -291, -291, -291, -291, -291, -291, 416, 417, 426, 439, - 440, 441, 442, -291, -291, -291, -291, -291, -291, -291, - -291, 443, 444, 445, 446, 447, 448, 449, 450, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 451, 452, - 453, 454, 455, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, 456, 457, 458, 498, 500, 516, - 517, 518, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 519, 520, 521, 522, 523, 524, 525, 526, 533, - 534, 535, 536, 537, 538, 539, 541, 542, 543, 544, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - 545, -291, -291, 546, -291, -291, 547, 550, 553, 556, - 557, 566, 567, 568, 570, 571, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, 572, 573, 574, - 575, 576, 577, -291, -291, -291, -291, -291, -291, -291, - 581, 582, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 583, 584, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 585, 586, 587, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, 588, 589, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 590, 591, 592, 593, 594, - 595, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 596, -291, - -291, -291, -291, -291, -291, -291, -291, -291, 597, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, 598, -291, -291, 599, 600, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - 601, 602, 603, -291, -291, -291, -291, -291, -291, -291, - -291, -291 + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 284, 285, 286, 288, 289, 290, 292, 326, 327, + 328, 329, 333, 334, 335, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, 377, 378, 379, 380, + 381, 382, 383, -295, -295, -295, -295, -295, -295, -295, + -295, 384, 385, 389, 393, 394, 419, -295, -295, -295, + -295, -295, -295, -295, 420, 421, 430, 443, 444, 445, + 446, -295, -295, -295, -295, -295, -295, -295, -295, 447, + 448, 449, 450, 451, 452, 453, 454, -295, -295, -295, + -295, -295, -295, -295, -295, -295, 455, 456, 457, 458, + 459, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, 460, 461, 462, 502, 504, 520, 521, 522, + -295, -295, -295, -295, -295, -295, -295, -295, -295, 523, + 524, 525, 526, 527, 528, 529, 530, 541, 542, 543, + 544, 545, 546, 547, 549, 550, 551, 552, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, 553, -295, + -295, 554, -295, -295, 555, 558, 561, 564, 565, 574, + 575, 576, 578, 579, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, 580, 581, 582, 583, 584, + 585, -295, -295, -295, -295, -295, -295, -295, 589, 590, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, 591, 592, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, 593, + 594, 595, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, 596, 597, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, 598, 599, 600, 601, 602, 603, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 604, -295, -295, -295, -295, -295, -295, -295, -295, -295, + 605, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, 606, -295, -295, + 607, 608, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, 609, 610, 611, -295, -295, -295, -295, -295, + -295, -295, -295, -295 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1641,10 +1656,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_int16 yydefact[] = { - 2, 0, 1, 18, 19, 228, 238, 515, 575, 534, - 247, 589, 612, 257, 628, 273, 580, 3, 17, 21, - 230, 240, 249, 259, 275, 517, 536, 577, 582, 591, - 614, 630, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 232, 242, 523, 583, 542, + 251, 597, 620, 261, 636, 277, 588, 3, 17, 21, + 234, 244, 253, 263, 279, 525, 544, 585, 590, 599, + 622, 638, 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, @@ -1666,152 +1681,155 @@ static const yytype_int16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 22, 23, 86, 89, 98, 195, 196, 24, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 37, 77, 25, 90, 91, 48, 70, 85, 26, 27, - 30, 31, 28, 29, 32, 33, 34, 35, 36, 121, - 207, 122, 124, 125, 126, 209, 214, 210, 221, 222, - 223, 224, 127, 128, 129, 130, 131, 132, 133, 191, - 87, 76, 102, 119, 120, 219, 216, 123, 38, 39, - 40, 41, 42, 78, 92, 93, 108, 64, 74, 65, - 199, 200, 103, 58, 59, 198, 60, 61, 227, 112, - 116, 137, 147, 174, 150, 220, 113, 71, 43, 44, - 45, 100, 138, 139, 140, 141, 46, 47, 49, 50, - 52, 53, 51, 145, 151, 54, 55, 56, 62, 81, - 117, 95, 146, 88, 170, 96, 97, 114, 115, 217, - 101, 57, 79, 82, 63, 66, 104, 105, 80, 171, - 106, 67, 68, 69, 208, 118, 184, 185, 186, 187, - 188, 189, 197, 107, 75, 109, 110, 111, 172, 72, - 73, 94, 83, 84, 99, 134, 135, 218, 136, 142, - 143, 144, 175, 176, 178, 180, 181, 179, 182, 192, - 148, 149, 154, 155, 152, 153, 156, 157, 159, 158, - 211, 213, 212, 173, 183, 201, 203, 202, 204, 205, - 206, 225, 226, 177, 190, 193, 194, 215, 0, 0, - 0, 0, 0, 0, 0, 229, 231, 232, 233, 235, - 236, 237, 234, 0, 0, 0, 0, 0, 0, 239, - 241, 242, 243, 244, 245, 246, 0, 0, 0, 0, - 0, 0, 0, 248, 250, 251, 254, 255, 252, 256, - 253, 0, 0, 0, 0, 0, 0, 0, 0, 258, - 260, 261, 262, 263, 267, 264, 265, 266, 0, 0, - 0, 0, 0, 278, 282, 283, 284, 285, 274, 276, - 277, 279, 280, 281, 0, 0, 0, 0, 0, 0, - 0, 0, 516, 518, 520, 519, 525, 521, 522, 523, - 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 22, 23, 86, 89, + 98, 199, 200, 24, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 37, 77, 25, 90, 91, 48, + 70, 85, 26, 27, 30, 31, 28, 29, 32, 33, + 34, 35, 36, 121, 211, 122, 124, 125, 126, 213, + 218, 214, 225, 226, 227, 228, 127, 128, 129, 130, + 131, 132, 133, 195, 87, 76, 102, 119, 120, 223, + 220, 123, 38, 39, 40, 41, 42, 78, 92, 93, + 108, 64, 74, 65, 203, 204, 103, 58, 59, 202, + 60, 61, 231, 112, 116, 137, 147, 174, 150, 224, + 113, 71, 43, 44, 45, 100, 138, 139, 140, 141, + 46, 47, 49, 50, 52, 53, 51, 145, 151, 54, + 55, 56, 62, 81, 117, 95, 146, 88, 170, 96, + 97, 114, 115, 221, 101, 57, 79, 82, 63, 66, + 104, 105, 80, 171, 106, 67, 68, 69, 212, 118, + 188, 189, 190, 191, 192, 193, 201, 107, 75, 109, + 110, 111, 172, 72, 73, 94, 83, 84, 99, 134, + 135, 222, 136, 142, 143, 144, 175, 176, 178, 180, + 181, 179, 182, 196, 148, 149, 154, 155, 152, 153, + 156, 157, 159, 158, 215, 217, 216, 173, 183, 184, + 185, 186, 187, 205, 207, 206, 208, 209, 210, 229, + 230, 177, 194, 197, 198, 219, 0, 0, 0, 0, + 0, 0, 0, 233, 235, 236, 237, 239, 240, 241, + 238, 0, 0, 0, 0, 0, 0, 243, 245, 246, + 247, 248, 249, 250, 0, 0, 0, 0, 0, 0, + 0, 252, 254, 255, 258, 259, 256, 260, 257, 0, + 0, 0, 0, 0, 0, 0, 0, 262, 264, 265, + 266, 267, 271, 268, 269, 270, 0, 0, 0, 0, + 0, 282, 286, 287, 288, 289, 278, 280, 281, 283, + 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, + 524, 526, 528, 527, 533, 529, 530, 531, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 535, 537, 539, 538, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 0, 576, 578, 0, 581, 583, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 590, 592, 593, 594, - 596, 597, 595, 598, 599, 600, 601, 0, 0, 0, - 0, 0, 0, 613, 615, 616, 617, 618, 619, 620, - 0, 0, 629, 631, 632, 287, 286, 293, 306, 304, - 316, 312, 313, 317, 314, 315, 318, 319, 320, 321, - 322, 352, 353, 354, 355, 356, 382, 383, 384, 390, - 391, 309, 392, 393, 396, 394, 395, 399, 400, 401, - 415, 367, 368, 370, 371, 402, 418, 361, 363, 419, - 425, 426, 427, 310, 381, 443, 444, 362, 438, 345, - 305, 357, 416, 422, 403, 0, 0, 447, 311, 288, - 344, 407, 289, 307, 308, 358, 359, 445, 405, 409, - 410, 290, 448, 385, 414, 346, 366, 420, 421, 424, - 437, 360, 441, 439, 440, 373, 380, 411, 412, 374, - 375, 404, 429, 347, 348, 351, 323, 325, 326, 327, - 328, 329, 336, 337, 338, 339, 340, 341, 342, 449, - 450, 452, 386, 387, 388, 389, 397, 398, 453, 454, - 455, 0, 0, 0, 406, 376, 378, 585, 464, 468, - 466, 465, 469, 467, 0, 0, 472, 473, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 408, 423, - 442, 477, 478, 377, 456, 0, 0, 0, 0, 0, - 0, 430, 431, 432, 433, 434, 435, 436, 586, 369, - 364, 428, 343, 291, 292, 365, 479, 481, 480, 482, - 483, 484, 324, 331, 474, 476, 475, 330, 0, 350, - 413, 451, 349, 379, 332, 333, 335, 334, 0, 486, - 372, 487, 488, 489, 493, 492, 490, 491, 494, 495, - 496, 497, 499, 498, 508, 0, 512, 513, 0, 0, - 514, 500, 506, 501, 502, 503, 505, 507, 504, 268, - 269, 270, 271, 272, 526, 528, 527, 530, 531, 532, - 533, 529, 556, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 557, 567, 568, 569, 570, 571, 572, 573, - 574, 579, 584, 602, 603, 604, 607, 605, 606, 608, - 609, 610, 611, 621, 622, 623, 624, 625, 626, 633, - 634, 417, 446, 463, 587, 588, 470, 471, 457, 458, - 0, 0, 0, 462, 627, 485, 509, 510, 511, 461, - 459, 460 + 0, 0, 0, 0, 0, 0, 0, 0, 543, 545, + 547, 546, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 0, 584, + 586, 0, 589, 591, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 598, 600, 601, 602, 604, 605, + 603, 606, 607, 608, 609, 0, 0, 0, 0, 0, + 0, 621, 623, 624, 625, 626, 627, 628, 0, 0, + 637, 639, 640, 291, 290, 297, 310, 308, 320, 316, + 317, 321, 318, 319, 322, 323, 324, 325, 326, 356, + 357, 358, 359, 360, 386, 387, 388, 394, 395, 313, + 396, 397, 400, 398, 399, 403, 404, 405, 419, 371, + 372, 374, 375, 406, 422, 365, 367, 423, 429, 430, + 431, 314, 385, 447, 448, 366, 442, 349, 309, 361, + 420, 426, 407, 0, 0, 451, 315, 292, 348, 411, + 293, 311, 312, 362, 363, 449, 409, 413, 414, 294, + 452, 389, 418, 350, 370, 424, 425, 428, 441, 364, + 445, 443, 444, 377, 384, 415, 416, 378, 379, 408, + 433, 351, 352, 355, 327, 329, 330, 331, 332, 333, + 340, 341, 342, 343, 344, 345, 346, 453, 454, 456, + 390, 391, 392, 393, 401, 402, 457, 458, 459, 0, + 0, 0, 410, 380, 382, 593, 468, 472, 470, 469, + 473, 471, 0, 0, 476, 477, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 412, 427, 446, 481, + 482, 381, 460, 0, 0, 0, 0, 0, 0, 434, + 435, 436, 437, 438, 439, 440, 594, 373, 368, 432, + 347, 295, 296, 369, 483, 484, 485, 486, 487, 489, + 488, 490, 491, 492, 328, 335, 478, 480, 479, 334, + 0, 354, 417, 455, 353, 383, 336, 337, 339, 338, + 0, 494, 376, 495, 496, 497, 501, 500, 498, 499, + 502, 503, 504, 505, 507, 506, 516, 0, 520, 521, + 0, 0, 522, 508, 514, 509, 510, 511, 513, 515, + 512, 272, 273, 274, 275, 276, 534, 536, 535, 538, + 539, 540, 541, 537, 564, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 565, 575, 576, 577, 578, 579, + 580, 581, 582, 587, 592, 610, 611, 612, 615, 613, + 614, 616, 617, 618, 619, 629, 630, 631, 632, 633, + 634, 641, 642, 421, 450, 467, 595, 596, 474, 475, + 461, 462, 0, 0, 0, 466, 635, 493, 517, 518, + 519, 465, 463, 464 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, 578, 579, 580, 604, 605, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, - -291, -291, -291, -291, -291, -291, -291, -291, -291 + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, 586, 587, 588, 612, 613, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, + -295, -295, -295 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 251, 20, 33, 465, - 21, 34, 479, 22, 35, 493, 23, 36, 509, 523, - 524, 525, 526, 527, 24, 37, 528, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 466, 467, - 468, 469, 470, 471, 472, 480, 481, 482, 483, 484, - 485, 510, 511, 512, 513, 514, 515, 516, 517, 494, - 495, 496, 497, 498, 499, 500, 25, 38, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 26, 39, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 27, - 40, 591, 592, 28, 41, 594, 595, 453, 454, 455, - 456, 29, 42, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 30, 43, 623, 624, 625, 626, - 627, 628, 629, 457, 31, 44, 632, 633, 634 + -1, 1, 17, 18, 19, 32, 255, 20, 33, 473, + 21, 34, 487, 22, 35, 501, 23, 36, 517, 531, + 532, 533, 534, 535, 24, 37, 536, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 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, 474, 475, 476, 477, 478, 479, 480, 488, + 489, 490, 491, 492, 493, 518, 519, 520, 521, 522, + 523, 524, 525, 502, 503, 504, 505, 506, 507, 508, + 25, 38, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 26, 39, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 27, 40, 599, 600, 28, 41, 602, + 603, 461, 462, 463, 464, 29, 42, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 30, 43, + 631, 632, 633, 634, 635, 636, 637, 465, 31, 44, + 640, 641, 642 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1819,78 +1837,79 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 2, 501, 486, 458, 590, 459, 460, 473, 630, 631, - 593, 3, 4, 635, 636, 474, 475, 617, 618, 619, - 620, 621, 622, 637, 501, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 638, 639, 640, 487, 488, - 641, 642, 643, 644, 645, 646, 5, 647, 648, 649, - 650, 651, 6, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 489, 662, 663, 461, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 534, 535, 536, 537, - 538, 539, 540, 541, 664, 665, 7, 462, 666, 667, - 476, 668, 477, 669, 670, 671, 672, 463, 673, 674, - 675, 676, 8, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 490, 491, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 9, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, - 492, 741, 742, 743, 744, 745, 746, 747, 748, 749, - 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, - 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, - 780, 10, 503, 504, 505, 781, 782, 783, 784, 785, - 786, 787, 508, 788, 789, 790, 791, 792, 464, 11, - 793, 478, 794, 502, 795, 503, 504, 505, 506, 507, - 518, 519, 520, 521, 522, 508, 12, 796, 797, 798, - 799, 800, 801, 802, 803, 13, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, - 818, 819, 820, 821, 822, 823, 824, 825, 826, 14, - 827, 828, 829, 15, 830, 831, 832, 0, 833, 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, 834, 835, 836, 837, 77, 78, 79, 838, - 839, 840, 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, 841, 842, 843, 844, 845, 846, 847, - 848, 849, 121, 122, 123, 850, 124, 125, 126, 851, - 852, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 853, 854, 855, 151, 152, - 153, 154, 155, 156, 157, 158, 856, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 877, 210, - 878, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 879, 880, 881, 882, - 883, 884, 885, 886, 887, 888, 889, 226, 227, 228, - 229, 230, 231, 890, 891, 892, 893, 894, 895, 896, - 232, 897, 898, 899, 900, 901, 902, 903, 233, 234, - 904, 235, 236, 905, 237, 238, 906, 907, 239, 240, - 241, 242, 243, 244, 245, 246, 908, 909, 910, 247, - 911, 912, 913, 914, 915, 916, 917, 918, 248, 249, - 250, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 0, 529, 530, 531, 0, 0, + 2, 509, 494, 466, 598, 467, 468, 481, 638, 639, + 601, 3, 4, 643, 644, 482, 483, 625, 626, 627, + 628, 629, 630, 645, 509, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 646, 647, 648, 495, 496, + 649, 650, 651, 652, 653, 654, 5, 655, 656, 657, + 658, 659, 6, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 497, 670, 671, 469, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 542, 543, 544, 545, + 546, 547, 548, 549, 672, 673, 7, 470, 674, 675, + 484, 676, 485, 677, 678, 679, 680, 471, 681, 682, + 683, 684, 8, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 498, 499, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 9, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, + 500, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, + 788, 10, 789, 790, 791, 792, 511, 512, 513, 793, + 794, 795, 796, 797, 798, 799, 516, 800, 801, 11, + 802, 803, 472, 804, 805, 486, 806, 510, 807, 511, + 512, 513, 514, 515, 526, 527, 528, 529, 530, 516, + 12, 808, 809, 810, 811, 812, 813, 814, 815, 13, + 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, + 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 14, 839, 840, 841, 15, 842, 843, + 844, 0, 845, 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, 846, 847, 848, 849, + 77, 78, 79, 850, 851, 852, 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, 853, 854, 855, + 856, 857, 858, 859, 860, 861, 121, 122, 123, 862, + 124, 125, 126, 863, 864, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 865, + 866, 867, 151, 152, 153, 154, 155, 156, 157, 158, + 868, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 869, 870, 871, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 889, 210, 890, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, + 901, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 902, 903, 904, 905, 906, 907, 908, 236, 909, + 910, 911, 912, 913, 914, 915, 237, 238, 916, 239, + 240, 917, 241, 242, 918, 919, 243, 244, 245, 246, + 247, 248, 249, 250, 920, 921, 922, 251, 923, 924, + 925, 926, 927, 928, 929, 930, 252, 253, 254, 931, + 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, + 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, + 952, 953, 0, 537, 538, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 532, 533 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, + 541 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 113, 47, 48, 45, 290, 291, - 300, 11, 12, 10, 10, 53, 54, 257, 258, 259, - 260, 261, 262, 10, 45, 240, 241, 242, 243, 244, + 0, 45, 45, 45, 113, 47, 48, 45, 294, 295, + 304, 11, 12, 10, 10, 53, 54, 261, 262, 263, + 264, 265, 266, 10, 45, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 10, 10, 10, 81, 82, 10, 10, 10, 10, 10, 10, 46, 10, 10, 10, 10, 10, 52, 10, 10, 10, 10, 10, 10, 10, @@ -1910,60 +1929,61 @@ static const yytype_int16 yycheck[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 221, 266, 267, 268, 10, 10, 10, 10, 10, - 10, 10, 276, 10, 10, 10, 10, 10, 280, 239, - 10, 279, 10, 264, 10, 266, 267, 268, 269, 270, - 294, 295, 296, 297, 298, 276, 256, 10, 10, 10, - 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, + 10, 221, 10, 10, 10, 10, 270, 271, 272, 10, + 10, 10, 10, 10, 10, 10, 280, 10, 10, 239, + 10, 10, 284, 10, 10, 283, 10, 268, 10, 270, + 271, 272, 273, 274, 298, 299, 300, 301, 302, 280, + 260, 10, 10, 10, 10, 10, 10, 10, 10, 269, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 289, - 10, 10, 10, 293, 10, 10, 10, -1, 10, 299, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 10, 10, 10, 10, 49, 50, 51, 10, - 10, 10, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 105, 106, 107, 10, 109, 110, 111, 10, - 10, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 10, 10, 10, 141, 142, - 143, 144, 145, 146, 147, 148, 10, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 10, 222, - 10, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 250, 251, 252, - 253, 254, 255, 10, 10, 10, 10, 10, 10, 10, - 263, 10, 10, 10, 10, 10, 10, 10, 271, 272, - 10, 274, 275, 10, 277, 278, 10, 10, 281, 282, - 283, 284, 285, 286, 287, 288, 10, 10, 10, 292, - 10, 10, 10, 10, 10, 10, 10, 10, 301, 302, - 303, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 293, 10, 10, 10, 297, 10, 10, + 10, -1, 10, 303, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 10, 10, 10, 10, + 49, 50, 51, 10, 10, 10, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 105, 106, 107, 10, + 109, 110, 111, 10, 10, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 10, + 10, 10, 141, 142, 143, 144, 145, 146, 147, 148, + 10, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, -1, 37, 37, 37, -1, -1, + 10, 10, 10, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 10, 222, 10, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 10, 10, 10, 10, 10, 10, 10, 267, 10, + 10, 10, 10, 10, 10, 10, 275, 276, 10, 278, + 279, 10, 281, 282, 10, 10, 285, 286, 287, 288, + 289, 290, 291, 292, 10, 10, 10, 296, 10, 10, + 10, 10, 10, 10, 10, 10, 305, 306, 307, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, -1, 37, 37, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, 37 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, + 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 305, 0, 11, 12, 46, 52, 96, 112, 162, - 221, 239, 256, 265, 289, 293, 299, 306, 307, 308, - 311, 314, 317, 320, 328, 560, 571, 593, 597, 605, - 618, 628, 309, 312, 315, 318, 321, 329, 561, 572, - 594, 598, 606, 619, 629, 13, 14, 15, 16, 17, + 0, 309, 0, 11, 12, 46, 52, 96, 112, 162, + 221, 239, 260, 269, 293, 297, 303, 310, 311, 312, + 315, 318, 321, 324, 332, 568, 579, 601, 605, 613, + 626, 636, 313, 316, 319, 322, 325, 333, 569, 580, + 602, 606, 614, 627, 637, 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, @@ -1982,9 +2002,9 @@ static const yytype_int16 yystos[] = 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 250, 251, 252, 253, - 254, 255, 263, 271, 272, 274, 275, 277, 278, 281, - 282, 283, 284, 285, 286, 287, 288, 292, 301, 302, - 303, 310, 331, 332, 333, 334, 335, 336, 337, 338, + 254, 255, 256, 257, 258, 259, 267, 275, 276, 278, + 279, 281, 282, 285, 286, 287, 288, 289, 290, 291, + 292, 296, 305, 306, 307, 314, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, @@ -2004,25 +2024,26 @@ static const yytype_int16 yystos[] = 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, 601, 602, 603, 604, 627, 45, 47, - 48, 108, 139, 149, 280, 313, 532, 533, 534, 535, - 536, 537, 538, 45, 53, 54, 138, 140, 279, 316, - 539, 540, 541, 542, 543, 544, 45, 81, 82, 106, - 183, 184, 223, 319, 553, 554, 555, 556, 557, 558, - 559, 45, 264, 266, 267, 268, 269, 270, 276, 322, - 545, 546, 547, 548, 549, 550, 551, 552, 294, 295, - 296, 297, 298, 323, 324, 325, 326, 327, 330, 545, - 546, 547, 548, 549, 97, 98, 99, 100, 101, 102, - 103, 104, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 609, 610, 611, 612, 635, 45, 47, 48, 108, + 139, 149, 284, 317, 540, 541, 542, 543, 544, 545, + 546, 45, 53, 54, 138, 140, 283, 320, 547, 548, + 549, 550, 551, 552, 45, 81, 82, 106, 183, 184, + 223, 323, 561, 562, 563, 564, 565, 566, 567, 45, + 268, 270, 271, 272, 273, 274, 280, 326, 553, 554, + 555, 556, 557, 558, 559, 560, 298, 299, 300, 301, + 302, 327, 328, 329, 330, 331, 334, 553, 554, 555, + 556, 557, 97, 98, 99, 100, 101, 102, 103, 104, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 113, 595, 596, 300, 599, 600, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 257, 258, 259, - 260, 261, 262, 620, 621, 622, 623, 624, 625, 626, - 290, 291, 630, 631, 632, 10, 10, 10, 10, 10, + 593, 594, 595, 596, 597, 598, 599, 600, 113, 603, + 604, 304, 607, 608, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 261, 262, 263, 264, 265, + 266, 628, 629, 630, 631, 632, 633, 634, 294, 295, + 638, 639, 640, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -2053,41 +2074,41 @@ 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 304, 305, 305, 306, 306, 306, 306, 306, 306, - 306, 306, 306, 306, 306, 306, 306, 306, 307, 308, - 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 0, 308, 309, 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, 312, - 312, 313, 313, 313, 313, 313, 313, 313, 314, 315, - 315, 316, 316, 316, 316, 316, 316, 317, 318, 318, - 319, 319, 319, 319, 319, 319, 319, 320, 321, 321, - 322, 322, 322, 322, 322, 322, 322, 322, 323, 324, - 325, 326, 327, 328, 329, 329, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 331, 332, 333, 334, + 313, 313, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 315, 316, 316, 317, 317, 317, 317, 317, + 317, 317, 318, 319, 319, 320, 320, 320, 320, 320, + 320, 321, 322, 322, 323, 323, 323, 323, 323, 323, + 323, 324, 325, 325, 326, 326, 326, 326, 326, 326, + 326, 326, 327, 328, 329, 330, 331, 332, 333, 333, + 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, @@ -2110,19 +2131,20 @@ static const yytype_int16 yyr1[] = 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 561, 562, 562, - 562, 562, 562, 562, 562, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 572, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 594, 595, 596, - 597, 598, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 606, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 619, 620, 620, 620, 620, 620, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 629, 630, 630, 631, 632 + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 569, 570, 570, 570, 570, + 570, 570, 570, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 580, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 602, 603, 604, 605, 606, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 614, + 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 627, 628, 628, 628, 628, 628, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 637, 638, + 638, 639, 640 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2150,48 +2172,49 @@ static const yytype_int8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, - 4, 4, 3, 3, 2, 2, 2, 2, 2, 2, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 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, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 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, 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, 2, 2, 2, 2, 2, 2, 3, 1, 2, - 0, 1, 1, 2, 2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 1, 2, 0, 1, 2, 1, 2, + 0, 1, 2, 2, 2, 3, 3, 1, 2, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 0, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 3, 1, 2, 0, 1, + 1, 2, 2 }; @@ -2659,23 +2682,23 @@ yyreduce: switch (yyn) { case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ -#line 195 "./util/configparser.y" +#line 197 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2667 "util/configparser.c" +#line 2690 "util/configparser.c" break; case 19: /* serverstart: VAR_SERVER */ -#line 201 "./util/configparser.y" +#line 203 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2675 "util/configparser.c" +#line 2698 "util/configparser.c" break; - case 228: /* stubstart: VAR_STUB_ZONE */ -#line 299 "./util/configparser.y" + case 232: /* stubstart: VAR_STUB_ZONE */ +#line 304 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2686,11 +2709,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2690 "util/configparser.c" +#line 2713 "util/configparser.c" break; - case 238: /* forwardstart: VAR_FORWARD_ZONE */ -#line 316 "./util/configparser.y" + case 242: /* forwardstart: VAR_FORWARD_ZONE */ +#line 321 "./util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2701,11 +2724,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2705 "util/configparser.c" +#line 2728 "util/configparser.c" break; - case 247: /* viewstart: VAR_VIEW */ -#line 333 "./util/configparser.y" + case 251: /* viewstart: VAR_VIEW */ +#line 338 "./util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2718,11 +2741,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2722 "util/configparser.c" +#line 2745 "util/configparser.c" break; - case 257: /* authstart: VAR_AUTH_ZONE */ -#line 352 "./util/configparser.y" + case 261: /* authstart: VAR_AUTH_ZONE */ +#line 357 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2738,11 +2761,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2742 "util/configparser.c" +#line 2765 "util/configparser.c" break; - case 268: /* rpz_tag: VAR_TAGS STRING_ARG */ -#line 376 "./util/configparser.y" + case 272: /* rpz_tag: VAR_TAGS STRING_ARG */ +#line 381 "./util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2759,11 +2782,11 @@ yyreduce: } } -#line 2763 "util/configparser.c" +#line 2786 "util/configparser.c" break; - case 269: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ -#line 395 "./util/configparser.y" + case 273: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ +#line 400 "./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 && @@ -2778,21 +2801,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2782 "util/configparser.c" +#line 2805 "util/configparser.c" break; - case 270: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ -#line 412 "./util/configparser.y" + case 274: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ +#line 417 "./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 2792 "util/configparser.c" +#line 2815 "util/configparser.c" break; - case 271: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ -#line 420 "./util/configparser.y" + case 275: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ +#line 425 "./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) @@ -2800,21 +2823,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2804 "util/configparser.c" +#line 2827 "util/configparser.c" break; - case 272: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ -#line 430 "./util/configparser.y" + case 276: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ +#line 435 "./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 2814 "util/configparser.c" +#line 2837 "util/configparser.c" break; - case 273: /* rpzstart: VAR_RPZ */ -#line 438 "./util/configparser.y" + case 277: /* rpzstart: VAR_RPZ */ +#line 443 "./util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2830,11 +2853,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2834 "util/configparser.c" +#line 2857 "util/configparser.c" break; - case 286: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ -#line 461 "./util/configparser.y" + case 290: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ +#line 466 "./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) @@ -2842,11 +2865,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2846 "util/configparser.c" +#line 2869 "util/configparser.c" break; - case 287: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ -#line 470 "./util/configparser.y" + case 291: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ +#line 475 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2854,11 +2877,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2858 "util/configparser.c" +#line 2881 "util/configparser.c" break; - case 288: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ -#line 479 "./util/configparser.y" + case 292: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ +#line 484 "./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) @@ -2868,11 +2891,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2872 "util/configparser.c" +#line 2895 "util/configparser.c" break; - case 289: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ -#line 490 "./util/configparser.y" + case 293: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ +#line 495 "./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) @@ -2880,11 +2903,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2884 "util/configparser.c" +#line 2907 "util/configparser.c" break; - case 290: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ -#line 499 "./util/configparser.y" + case 294: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ +#line 504 "./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) @@ -2892,11 +2915,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2896 "util/configparser.c" +#line 2919 "util/configparser.c" break; - case 291: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ -#line 508 "./util/configparser.y" + case 295: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ +#line 513 "./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) @@ -2904,11 +2927,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2908 "util/configparser.c" +#line 2931 "util/configparser.c" break; - case 292: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ -#line 517 "./util/configparser.y" + case 296: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ +#line 522 "./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) @@ -2918,11 +2941,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2922 "util/configparser.c" +#line 2945 "util/configparser.c" break; - case 293: /* server_port: VAR_PORT STRING_ARG */ -#line 528 "./util/configparser.y" + case 297: /* server_port: VAR_PORT STRING_ARG */ +#line 533 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -2930,11 +2953,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2934 "util/configparser.c" +#line 2957 "util/configparser.c" break; - case 294: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ -#line 537 "./util/configparser.y" + case 298: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ +#line 542 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -2945,11 +2968,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 2949 "util/configparser.c" +#line 2972 "util/configparser.c" break; - case 295: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ -#line 549 "./util/configparser.y" + case 299: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ +#line 554 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -2961,11 +2984,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 2965 "util/configparser.c" +#line 2988 "util/configparser.c" break; - case 296: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ -#line 563 "./util/configparser.y" + case 300: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ +#line 568 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -2979,11 +3002,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2983 "util/configparser.c" +#line 3006 "util/configparser.c" break; - case 297: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ -#line 578 "./util/configparser.y" + case 301: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ +#line 583 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -2993,11 +3016,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2997 "util/configparser.c" +#line 3020 "util/configparser.c" break; - case 298: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 589 "./util/configparser.y" + case 302: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 594 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3013,11 +3036,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3017 "util/configparser.c" +#line 3040 "util/configparser.c" break; - case 299: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 606 "./util/configparser.y" + case 303: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 611 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3033,11 +3056,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3037 "util/configparser.c" +#line 3060 "util/configparser.c" break; - case 300: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ -#line 623 "./util/configparser.y" + case 304: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ +#line 628 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3053,11 +3076,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3057 "util/configparser.c" +#line 3080 "util/configparser.c" break; - case 301: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ -#line 640 "./util/configparser.y" + case 305: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ +#line 645 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3073,11 +3096,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3077 "util/configparser.c" +#line 3100 "util/configparser.c" break; - case 302: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ -#line 657 "./util/configparser.y" + case 306: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ +#line 662 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3091,11 +3114,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3095 "util/configparser.c" +#line 3118 "util/configparser.c" break; - case 303: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ -#line 672 "./util/configparser.y" + case 307: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ +#line 677 "./util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3109,11 +3132,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3113 "util/configparser.c" +#line 3136 "util/configparser.c" break; - case 304: /* server_interface: VAR_INTERFACE STRING_ARG */ -#line 687 "./util/configparser.y" + case 308: /* server_interface: VAR_INTERFACE STRING_ARG */ +#line 692 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3125,11 +3148,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3129 "util/configparser.c" +#line 3152 "util/configparser.c" break; - case 305: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ -#line 700 "./util/configparser.y" + case 309: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ +#line 705 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3143,11 +3166,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3147 "util/configparser.c" +#line 3170 "util/configparser.c" break; - case 306: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ -#line 715 "./util/configparser.y" + case 310: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ +#line 720 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3155,11 +3178,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3159 "util/configparser.c" +#line 3182 "util/configparser.c" break; - case 307: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ -#line 724 "./util/configparser.y" + case 311: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ +#line 729 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3167,11 +3190,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3171 "util/configparser.c" +#line 3194 "util/configparser.c" break; - case 308: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ -#line 733 "./util/configparser.y" + case 312: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ +#line 738 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3179,11 +3202,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3183 "util/configparser.c" +#line 3206 "util/configparser.c" break; - case 309: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ -#line 742 "./util/configparser.y" + case 313: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ +#line 747 "./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) @@ -3191,11 +3214,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3195 "util/configparser.c" +#line 3218 "util/configparser.c" break; - case 310: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ -#line 751 "./util/configparser.y" + case 314: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ +#line 756 "./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) @@ -3203,11 +3226,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3207 "util/configparser.c" +#line 3230 "util/configparser.c" break; - case 311: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ -#line 760 "./util/configparser.y" + case 315: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ +#line 765 "./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) @@ -3215,11 +3238,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3219 "util/configparser.c" +#line 3242 "util/configparser.c" break; - case 312: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ -#line 769 "./util/configparser.y" + case 316: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ +#line 774 "./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) @@ -3227,11 +3250,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3231 "util/configparser.c" +#line 3254 "util/configparser.c" break; - case 313: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ -#line 778 "./util/configparser.y" + case 317: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ +#line 783 "./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) @@ -3239,11 +3262,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3243 "util/configparser.c" +#line 3266 "util/configparser.c" break; - case 314: /* server_do_udp: VAR_DO_UDP STRING_ARG */ -#line 787 "./util/configparser.y" + case 318: /* server_do_udp: VAR_DO_UDP STRING_ARG */ +#line 792 "./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) @@ -3251,11 +3274,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3255 "util/configparser.c" +#line 3278 "util/configparser.c" break; - case 315: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ -#line 796 "./util/configparser.y" + case 319: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ +#line 801 "./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) @@ -3263,11 +3286,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3267 "util/configparser.c" +#line 3290 "util/configparser.c" break; - case 316: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ -#line 805 "./util/configparser.y" + case 320: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ +#line 810 "./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) @@ -3275,11 +3298,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3279 "util/configparser.c" +#line 3302 "util/configparser.c" break; - case 317: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ -#line 814 "./util/configparser.y" + case 321: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ +#line 819 "./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) @@ -3287,11 +3310,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3291 "util/configparser.c" +#line 3314 "util/configparser.c" break; - case 318: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ -#line 823 "./util/configparser.y" + case 322: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ +#line 828 "./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) @@ -3299,11 +3322,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3303 "util/configparser.c" +#line 3326 "util/configparser.c" break; - case 319: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ -#line 832 "./util/configparser.y" + case 323: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ +#line 837 "./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) @@ -3311,11 +3334,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3315 "util/configparser.c" +#line 3338 "util/configparser.c" break; - case 320: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ -#line 841 "./util/configparser.y" + case 324: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ +#line 846 "./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) @@ -3327,11 +3350,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3331 "util/configparser.c" +#line 3354 "util/configparser.c" break; - case 321: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ -#line 854 "./util/configparser.y" + case 325: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ +#line 859 "./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) @@ -3339,11 +3362,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3343 "util/configparser.c" +#line 3366 "util/configparser.c" break; - case 322: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ -#line 863 "./util/configparser.y" + case 326: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ +#line 868 "./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) @@ -3355,11 +3378,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3359 "util/configparser.c" +#line 3382 "util/configparser.c" break; - case 323: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ -#line 876 "./util/configparser.y" + case 327: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ +#line 881 "./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) @@ -3367,11 +3390,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3371 "util/configparser.c" +#line 3394 "util/configparser.c" break; - case 324: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ -#line 885 "./util/configparser.y" + case 328: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ +#line 890 "./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) @@ -3379,11 +3402,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3383 "util/configparser.c" +#line 3406 "util/configparser.c" break; - case 325: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ -#line 894 "./util/configparser.y" + case 329: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ +#line 899 "./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) @@ -3391,31 +3414,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3395 "util/configparser.c" +#line 3418 "util/configparser.c" break; - case 326: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ -#line 903 "./util/configparser.y" + case 330: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ +#line 908 "./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 3405 "util/configparser.c" +#line 3428 "util/configparser.c" break; - case 327: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ -#line 910 "./util/configparser.y" + case 331: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ +#line 915 "./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 3415 "util/configparser.c" +#line 3438 "util/configparser.c" break; - case 328: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ -#line 917 "./util/configparser.y" + case 332: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ +#line 922 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3423,21 +3446,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3427 "util/configparser.c" +#line 3450 "util/configparser.c" break; - case 329: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ -#line 926 "./util/configparser.y" + case 333: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ +#line 931 "./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 3437 "util/configparser.c" +#line 3460 "util/configparser.c" break; - case 330: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ -#line 933 "./util/configparser.y" + case 334: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ +#line 938 "./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) @@ -3445,53 +3468,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3449 "util/configparser.c" +#line 3472 "util/configparser.c" break; - case 331: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ -#line 942 "./util/configparser.y" + case 335: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ +#line 947 "./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 3460 "util/configparser.c" +#line 3483 "util/configparser.c" break; - case 332: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ -#line 950 "./util/configparser.y" + case 336: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ +#line 955 "./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 3470 "util/configparser.c" +#line 3493 "util/configparser.c" break; - case 333: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ -#line 957 "./util/configparser.y" + case 337: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ +#line 962 "./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 3480 "util/configparser.c" +#line 3503 "util/configparser.c" break; - case 334: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ -#line 964 "./util/configparser.y" + case 338: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ +#line 969 "./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 3491 "util/configparser.c" +#line 3514 "util/configparser.c" break; - case 335: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ -#line 972 "./util/configparser.y" + case 339: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ +#line 977 "./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) @@ -3499,11 +3522,11 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3503 "util/configparser.c" +#line 3526 "util/configparser.c" break; - case 336: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ -#line 981 "./util/configparser.y" + case 340: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ +#line 986 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3511,11 +3534,11 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3515 "util/configparser.c" +#line 3538 "util/configparser.c" break; - case 337: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ -#line 989 "./util/configparser.y" + case 341: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ +#line 994 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3531,11 +3554,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3535 "util/configparser.c" +#line 3558 "util/configparser.c" break; - case 338: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ -#line 1005 "./util/configparser.y" + case 342: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ +#line 1010 "./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) @@ -3543,11 +3566,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3547 "util/configparser.c" +#line 3570 "util/configparser.c" break; - case 339: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ -#line 1013 "./util/configparser.y" + case 343: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ +#line 1018 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3555,11 +3578,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 3582 "util/configparser.c" break; - case 340: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ -#line 1021 "./util/configparser.y" + case 344: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ +#line 1026 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3567,11 +3590,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3571 "util/configparser.c" +#line 3594 "util/configparser.c" break; - case 341: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ -#line 1029 "./util/configparser.y" + case 345: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ +#line 1034 "./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) @@ -3579,11 +3602,11 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3583 "util/configparser.c" +#line 3606 "util/configparser.c" break; - case 342: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ -#line 1037 "./util/configparser.y" + case 346: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ +#line 1042 "./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) @@ -3591,11 +3614,11 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3595 "util/configparser.c" +#line 3618 "util/configparser.c" break; - case 343: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ -#line 1045 "./util/configparser.y" + case 347: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ +#line 1050 "./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) @@ -3603,11 +3626,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3607 "util/configparser.c" +#line 3630 "util/configparser.c" break; - case 344: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ -#line 1054 "./util/configparser.y" + case 348: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ +#line 1059 "./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) @@ -3615,11 +3638,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3619 "util/configparser.c" +#line 3642 "util/configparser.c" break; - case 345: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ -#line 1063 "./util/configparser.y" + case 349: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ +#line 1068 "./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) @@ -3632,11 +3655,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3636 "util/configparser.c" +#line 3659 "util/configparser.c" break; - case 346: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ -#line 1077 "./util/configparser.y" + case 350: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ +#line 1082 "./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) @@ -3644,11 +3667,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3648 "util/configparser.c" +#line 3671 "util/configparser.c" break; - case 347: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ -#line 1086 "./util/configparser.y" + case 351: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ +#line 1091 "./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) @@ -3656,11 +3679,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3660 "util/configparser.c" +#line 3683 "util/configparser.c" break; - case 348: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ -#line 1095 "./util/configparser.y" + case 352: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ +#line 1100 "./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) @@ -3668,11 +3691,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3672 "util/configparser.c" +#line 3695 "util/configparser.c" break; - case 349: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ -#line 1104 "./util/configparser.y" + case 353: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ +#line 1109 "./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) @@ -3680,11 +3703,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3684 "util/configparser.c" +#line 3707 "util/configparser.c" break; - case 350: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ -#line 1113 "./util/configparser.y" + case 354: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ +#line 1118 "./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) @@ -3692,11 +3715,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3696 "util/configparser.c" +#line 3719 "util/configparser.c" break; - case 351: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ -#line 1122 "./util/configparser.y" + case 355: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ +#line 1127 "./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) @@ -3704,31 +3727,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3708 "util/configparser.c" +#line 3731 "util/configparser.c" break; - case 352: /* server_chroot: VAR_CHROOT STRING_ARG */ -#line 1131 "./util/configparser.y" + case 356: /* server_chroot: VAR_CHROOT STRING_ARG */ +#line 1136 "./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 3718 "util/configparser.c" +#line 3741 "util/configparser.c" break; - case 353: /* server_username: VAR_USERNAME STRING_ARG */ -#line 1138 "./util/configparser.y" + case 357: /* server_username: VAR_USERNAME STRING_ARG */ +#line 1143 "./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 3728 "util/configparser.c" +#line 3751 "util/configparser.c" break; - case 354: /* server_directory: VAR_DIRECTORY STRING_ARG */ -#line 1145 "./util/configparser.y" + case 358: /* server_directory: VAR_DIRECTORY STRING_ARG */ +#line 1150 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3753,105 +3776,105 @@ yyreduce: } } } -#line 3757 "util/configparser.c" +#line 3780 "util/configparser.c" break; - case 355: /* server_logfile: VAR_LOGFILE STRING_ARG */ -#line 1171 "./util/configparser.y" + case 359: /* server_logfile: VAR_LOGFILE STRING_ARG */ +#line 1176 "./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 3768 "util/configparser.c" +#line 3791 "util/configparser.c" break; - case 356: /* server_pidfile: VAR_PIDFILE STRING_ARG */ -#line 1179 "./util/configparser.y" + case 360: /* server_pidfile: VAR_PIDFILE STRING_ARG */ +#line 1184 "./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 3778 "util/configparser.c" +#line 3801 "util/configparser.c" break; - case 357: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ -#line 1186 "./util/configparser.y" + case 361: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ +#line 1191 "./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 3788 "util/configparser.c" +#line 3811 "util/configparser.c" break; - case 358: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ -#line 1193 "./util/configparser.y" + case 362: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ +#line 1198 "./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 3798 "util/configparser.c" +#line 3821 "util/configparser.c" break; - case 359: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ -#line 1200 "./util/configparser.y" + case 363: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ +#line 1205 "./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 3808 "util/configparser.c" +#line 3831 "util/configparser.c" break; - case 360: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1207 "./util/configparser.y" + case 364: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1212 "./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 3819 "util/configparser.c" +#line 3842 "util/configparser.c" break; - case 361: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ -#line 1215 "./util/configparser.y" + case 365: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ +#line 1220 "./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 3830 "util/configparser.c" +#line 3853 "util/configparser.c" break; - case 362: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ -#line 1223 "./util/configparser.y" + case 366: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ +#line 1228 "./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 3841 "util/configparser.c" +#line 3864 "util/configparser.c" break; - case 363: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ -#line 1231 "./util/configparser.y" + case 367: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ +#line 1236 "./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 3851 "util/configparser.c" +#line 3874 "util/configparser.c" break; - case 364: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ -#line 1238 "./util/configparser.y" + case 368: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ +#line 1243 "./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) @@ -3861,11 +3884,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3865 "util/configparser.c" +#line 3888 "util/configparser.c" break; - case 365: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ -#line 1249 "./util/configparser.y" + case 369: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ +#line 1254 "./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) @@ -3875,21 +3898,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3879 "util/configparser.c" +#line 3902 "util/configparser.c" break; - case 366: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ -#line 1260 "./util/configparser.y" + case 370: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ +#line 1265 "./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 3889 "util/configparser.c" +#line 3912 "util/configparser.c" break; - case 367: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ -#line 1267 "./util/configparser.y" + case 371: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ +#line 1272 "./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) @@ -3897,11 +3920,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3901 "util/configparser.c" +#line 3924 "util/configparser.c" break; - case 368: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ -#line 1276 "./util/configparser.y" + case 372: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ +#line 1281 "./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) @@ -3909,11 +3932,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3913 "util/configparser.c" +#line 3936 "util/configparser.c" break; - case 369: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ -#line 1285 "./util/configparser.y" + case 373: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ +#line 1290 "./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) @@ -3921,31 +3944,31 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3925 "util/configparser.c" +#line 3948 "util/configparser.c" break; - case 370: /* server_identity: VAR_IDENTITY STRING_ARG */ -#line 1294 "./util/configparser.y" + case 374: /* server_identity: VAR_IDENTITY STRING_ARG */ +#line 1299 "./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 3935 "util/configparser.c" +#line 3958 "util/configparser.c" break; - case 371: /* server_version: VAR_VERSION STRING_ARG */ -#line 1301 "./util/configparser.y" + case 375: /* server_version: VAR_VERSION STRING_ARG */ +#line 1306 "./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 3945 "util/configparser.c" +#line 3968 "util/configparser.c" break; - case 372: /* server_nsid: VAR_NSID STRING_ARG */ -#line 1308 "./util/configparser.y" + case 376: /* server_nsid: VAR_NSID STRING_ARG */ +#line 1313 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->nsid_cfg_str); @@ -3960,33 +3983,33 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 3964 "util/configparser.c" +#line 3987 "util/configparser.c" break; - case 373: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ -#line 1324 "./util/configparser.y" + case 377: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ +#line 1329 "./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 3975 "util/configparser.c" +#line 3998 "util/configparser.c" break; - case 374: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ -#line 1332 "./util/configparser.y" + case 378: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ +#line 1337 "./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 3986 "util/configparser.c" +#line 4009 "util/configparser.c" break; - case 375: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ -#line 1340 "./util/configparser.y" + case 379: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ +#line 1345 "./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) @@ -3995,11 +4018,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3999 "util/configparser.c" +#line 4022 "util/configparser.c" break; - case 376: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ -#line 1350 "./util/configparser.y" + case 380: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ +#line 1355 "./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) @@ -4008,11 +4031,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4012 "util/configparser.c" +#line 4035 "util/configparser.c" break; - case 377: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ -#line 1360 "./util/configparser.y" + case 381: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ +#line 1365 "./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) @@ -4021,11 +4044,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4025 "util/configparser.c" +#line 4048 "util/configparser.c" break; - case 378: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ -#line 1370 "./util/configparser.y" + case 382: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ +#line 1375 "./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) @@ -4038,22 +4061,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4042 "util/configparser.c" +#line 4065 "util/configparser.c" break; - case 379: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ -#line 1384 "./util/configparser.y" + case 383: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ +#line 1389 "./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 4053 "util/configparser.c" +#line 4076 "util/configparser.c" break; - case 380: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ -#line 1392 "./util/configparser.y" + case 384: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ +#line 1397 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4065,11 +4088,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4069 "util/configparser.c" +#line 4092 "util/configparser.c" break; - case 381: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ -#line 1405 "./util/configparser.y" + case 385: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ +#line 1410 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4079,22 +4102,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4083 "util/configparser.c" +#line 4106 "util/configparser.c" break; - case 382: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ -#line 1416 "./util/configparser.y" + case 386: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ +#line 1421 "./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 4094 "util/configparser.c" +#line 4117 "util/configparser.c" break; - case 383: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ -#line 1424 "./util/configparser.y" + case 387: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ +#line 1429 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4106,11 +4129,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4110 "util/configparser.c" +#line 4133 "util/configparser.c" break; - case 384: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ -#line 1437 "./util/configparser.y" + case 388: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ +#line 1442 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4118,11 +4141,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4122 "util/configparser.c" +#line 4145 "util/configparser.c" break; - case 385: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ -#line 1446 "./util/configparser.y" + case 389: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ +#line 1451 "./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) @@ -4130,11 +4153,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4134 "util/configparser.c" +#line 4157 "util/configparser.c" break; - case 386: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ -#line 1455 "./util/configparser.y" + case 390: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ +#line 1460 "./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) @@ -4142,11 +4165,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4146 "util/configparser.c" +#line 4169 "util/configparser.c" break; - case 387: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ -#line 1464 "./util/configparser.y" + case 391: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ +#line 1469 "./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) @@ -4154,11 +4177,11 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4158 "util/configparser.c" +#line 4181 "util/configparser.c" break; - case 388: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ -#line 1473 "./util/configparser.y" + case 392: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ +#line 1478 "./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) @@ -4167,11 +4190,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4171 "util/configparser.c" +#line 4194 "util/configparser.c" break; - case 389: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ -#line 1483 "./util/configparser.y" + case 393: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ +#line 1488 "./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) @@ -4180,22 +4203,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4184 "util/configparser.c" +#line 4207 "util/configparser.c" break; - case 390: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ -#line 1493 "./util/configparser.y" + case 394: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ +#line 1498 "./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 4195 "util/configparser.c" +#line 4218 "util/configparser.c" break; - case 391: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ -#line 1501 "./util/configparser.y" + case 395: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ +#line 1506 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4207,11 +4230,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4211 "util/configparser.c" +#line 4234 "util/configparser.c" break; - case 392: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ -#line 1514 "./util/configparser.y" + case 396: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ +#line 1519 "./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) @@ -4219,22 +4242,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4223 "util/configparser.c" +#line 4246 "util/configparser.c" break; - case 393: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ -#line 1523 "./util/configparser.y" + case 397: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ +#line 1528 "./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 4234 "util/configparser.c" +#line 4257 "util/configparser.c" break; - case 394: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ -#line 1531 "./util/configparser.y" + case 398: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ +#line 1536 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4242,22 +4265,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4246 "util/configparser.c" +#line 4269 "util/configparser.c" break; - case 395: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ -#line 1540 "./util/configparser.y" + case 399: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ +#line 1545 "./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 4257 "util/configparser.c" +#line 4280 "util/configparser.c" break; - case 396: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ -#line 1548 "./util/configparser.y" + case 400: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ +#line 1553 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4269,11 +4292,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4273 "util/configparser.c" +#line 4296 "util/configparser.c" break; - case 397: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ -#line 1561 "./util/configparser.y" + case 401: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ +#line 1566 "./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) @@ -4281,11 +4304,11 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4285 "util/configparser.c" +#line 4308 "util/configparser.c" break; - case 398: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ -#line 1570 "./util/configparser.y" + case 402: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ +#line 1575 "./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) @@ -4294,21 +4317,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4298 "util/configparser.c" +#line 4321 "util/configparser.c" break; - case 399: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ -#line 1580 "./util/configparser.y" + case 403: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ +#line 1585 "./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 4308 "util/configparser.c" +#line 4331 "util/configparser.c" break; - case 400: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ -#line 1587 "./util/configparser.y" + case 404: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ +#line 1592 "./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) @@ -4317,11 +4340,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4321 "util/configparser.c" +#line 4344 "util/configparser.c" break; - case 401: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ -#line 1597 "./util/configparser.y" + case 405: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ +#line 1602 "./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) @@ -4330,11 +4353,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4334 "util/configparser.c" +#line 4357 "util/configparser.c" break; - case 402: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ -#line 1607 "./util/configparser.y" + case 406: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ +#line 1612 "./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) @@ -4343,11 +4366,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4347 "util/configparser.c" +#line 4370 "util/configparser.c" break; - case 403: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ -#line 1617 "./util/configparser.y" + case 407: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ +#line 1622 "./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) @@ -4356,11 +4379,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4360 "util/configparser.c" +#line 4383 "util/configparser.c" break; - case 404: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ -#line 1627 "./util/configparser.y" + case 408: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ +#line 1632 "./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) @@ -4369,11 +4392,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4373 "util/configparser.c" +#line 4396 "util/configparser.c" break; - case 405: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ -#line 1637 "./util/configparser.y" + case 409: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ +#line 1642 "./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) @@ -4382,11 +4405,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4386 "util/configparser.c" +#line 4409 "util/configparser.c" break; - case 406: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ -#line 1647 "./util/configparser.y" + case 410: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ +#line 1652 "./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) @@ -4395,11 +4418,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" +#line 4422 "util/configparser.c" break; - case 407: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ -#line 1657 "./util/configparser.y" + case 411: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ +#line 1662 "./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) @@ -4408,41 +4431,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4412 "util/configparser.c" +#line 4435 "util/configparser.c" break; - case 408: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ -#line 1667 "./util/configparser.y" + case 412: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ +#line 1672 "./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 4422 "util/configparser.c" +#line 4445 "util/configparser.c" break; - case 409: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ -#line 1674 "./util/configparser.y" + case 413: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ +#line 1679 "./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 4432 "util/configparser.c" +#line 4455 "util/configparser.c" break; - case 410: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ -#line 1681 "./util/configparser.y" + case 414: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ +#line 1686 "./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 4442 "util/configparser.c" +#line 4465 "util/configparser.c" break; - case 411: /* server_prefetch: VAR_PREFETCH STRING_ARG */ -#line 1688 "./util/configparser.y" + case 415: /* server_prefetch: VAR_PREFETCH STRING_ARG */ +#line 1693 "./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) @@ -4450,11 +4473,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4454 "util/configparser.c" +#line 4477 "util/configparser.c" break; - case 412: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ -#line 1697 "./util/configparser.y" + case 416: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ +#line 1702 "./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) @@ -4462,11 +4485,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4466 "util/configparser.c" +#line 4489 "util/configparser.c" break; - case 413: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ -#line 1706 "./util/configparser.y" + case 417: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ +#line 1711 "./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) @@ -4474,11 +4497,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4478 "util/configparser.c" +#line 4501 "util/configparser.c" break; - case 414: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ -#line 1715 "./util/configparser.y" + case 418: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ +#line 1720 "./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) @@ -4486,21 +4509,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4490 "util/configparser.c" +#line 4513 "util/configparser.c" break; - case 415: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ -#line 1724 "./util/configparser.y" + case 419: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ +#line 1729 "./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 4500 "util/configparser.c" +#line 4523 "util/configparser.c" break; - case 416: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ -#line 1731 "./util/configparser.y" + case 420: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ +#line 1736 "./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) @@ -4509,11 +4532,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4513 "util/configparser.c" +#line 4536 "util/configparser.c" break; - case 417: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ -#line 1741 "./util/configparser.y" + case 421: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ +#line 1746 "./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 && @@ -4532,21 +4555,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4536 "util/configparser.c" +#line 4559 "util/configparser.c" break; - case 418: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ -#line 1761 "./util/configparser.y" + case 422: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ +#line 1766 "./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 4546 "util/configparser.c" +#line 4569 "util/configparser.c" break; - case 419: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ -#line 1768 "./util/configparser.y" + case 423: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ +#line 1773 "./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) { @@ -4563,11 +4586,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4567 "util/configparser.c" +#line 4590 "util/configparser.c" break; - case 420: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ -#line 1786 "./util/configparser.y" + case 424: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ +#line 1791 "./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) { @@ -4579,11 +4602,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4583 "util/configparser.c" +#line 4606 "util/configparser.c" break; - case 421: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ -#line 1799 "./util/configparser.y" + case 425: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ +#line 1804 "./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) { @@ -4595,11 +4618,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4599 "util/configparser.c" +#line 4622 "util/configparser.c" break; - case 422: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ -#line 1812 "./util/configparser.y" + case 426: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ +#line 1817 "./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) @@ -4607,11 +4630,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4611 "util/configparser.c" +#line 4634 "util/configparser.c" break; - case 423: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ -#line 1821 "./util/configparser.y" + case 427: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ +#line 1826 "./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) @@ -4619,11 +4642,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4623 "util/configparser.c" +#line 4646 "util/configparser.c" break; - case 424: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ -#line 1830 "./util/configparser.y" + case 428: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ +#line 1835 "./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) @@ -4631,11 +4654,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4635 "util/configparser.c" +#line 4658 "util/configparser.c" break; - case 425: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ -#line 1839 "./util/configparser.y" + case 429: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ +#line 1844 "./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) @@ -4643,11 +4666,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4647 "util/configparser.c" +#line 4670 "util/configparser.c" break; - case 426: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ -#line 1848 "./util/configparser.y" + case 430: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ +#line 1853 "./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) @@ -4656,11 +4679,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4660 "util/configparser.c" +#line 4683 "util/configparser.c" break; - case 427: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ -#line 1858 "./util/configparser.y" + case 431: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ +#line 1863 "./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) @@ -4669,11 +4692,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4673 "util/configparser.c" +#line 4696 "util/configparser.c" break; - case 428: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ -#line 1868 "./util/configparser.y" + case 432: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ +#line 1873 "./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) @@ -4683,11 +4706,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4687 "util/configparser.c" +#line 4710 "util/configparser.c" break; - case 429: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ -#line 1879 "./util/configparser.y" + case 433: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ +#line 1884 "./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) @@ -4695,11 +4718,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4699 "util/configparser.c" +#line 4722 "util/configparser.c" break; - case 430: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ -#line 1888 "./util/configparser.y" + case 434: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ +#line 1893 "./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) @@ -4707,11 +4730,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4711 "util/configparser.c" +#line 4734 "util/configparser.c" break; - case 431: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ -#line 1897 "./util/configparser.y" + case 435: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ +#line 1902 "./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) @@ -4719,11 +4742,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4723 "util/configparser.c" +#line 4746 "util/configparser.c" break; - case 432: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ -#line 1906 "./util/configparser.y" + case 436: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ +#line 1911 "./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) @@ -4731,11 +4754,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4735 "util/configparser.c" +#line 4758 "util/configparser.c" break; - case 433: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ -#line 1915 "./util/configparser.y" + case 437: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ +#line 1920 "./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) @@ -4743,11 +4766,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4747 "util/configparser.c" +#line 4770 "util/configparser.c" break; - case 434: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ -#line 1924 "./util/configparser.y" + case 438: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ +#line 1929 "./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) @@ -4755,11 +4778,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4759 "util/configparser.c" +#line 4782 "util/configparser.c" break; - case 435: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ -#line 1933 "./util/configparser.y" + case 439: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ +#line 1938 "./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) @@ -4771,11 +4794,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4775 "util/configparser.c" +#line 4798 "util/configparser.c" break; - case 436: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ -#line 1946 "./util/configparser.y" + case 440: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ +#line 1951 "./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) @@ -4787,11 +4810,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4791 "util/configparser.c" +#line 4814 "util/configparser.c" break; - case 437: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ -#line 1959 "./util/configparser.y" + case 441: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ +#line 1964 "./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) @@ -4799,21 +4822,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4803 "util/configparser.c" +#line 4826 "util/configparser.c" break; - case 438: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ -#line 1968 "./util/configparser.y" + case 442: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ +#line 1973 "./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 4813 "util/configparser.c" +#line 4836 "util/configparser.c" break; - case 439: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ -#line 1975 "./util/configparser.y" + case 443: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ +#line 1980 "./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) @@ -4821,11 +4844,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4825 "util/configparser.c" +#line 4848 "util/configparser.c" break; - case 440: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ -#line 1984 "./util/configparser.y" + case 444: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ +#line 1989 "./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) @@ -4833,11 +4856,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4837 "util/configparser.c" +#line 4860 "util/configparser.c" break; - case 441: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ -#line 1993 "./util/configparser.y" + case 445: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ +#line 1998 "./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) @@ -4845,11 +4868,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4849 "util/configparser.c" +#line 4872 "util/configparser.c" break; - case 442: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ -#line 2002 "./util/configparser.y" + case 446: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ +#line 2007 "./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) @@ -4858,22 +4881,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4862 "util/configparser.c" +#line 4885 "util/configparser.c" break; - case 443: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ -#line 2011 "./util/configparser.y" + case 447: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ +#line 2016 "./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 4873 "util/configparser.c" +#line 4896 "util/configparser.c" break; - case 444: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ -#line 2019 "./util/configparser.y" + case 448: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ +#line 2024 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4885,22 +4908,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4889 "util/configparser.c" +#line 4912 "util/configparser.c" break; - case 445: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ -#line 2032 "./util/configparser.y" + case 449: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ +#line 2037 "./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 4900 "util/configparser.c" +#line 4923 "util/configparser.c" break; - case 446: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2040 "./util/configparser.y" + case 450: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2045 "./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 && @@ -4944,21 +4967,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4948 "util/configparser.c" +#line 4971 "util/configparser.c" break; - case 447: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2085 "./util/configparser.y" + case 451: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2090 "./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 4958 "util/configparser.c" +#line 4981 "util/configparser.c" break; - case 448: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2092 "./util/configparser.y" + case 452: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2097 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4972,11 +4995,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4976 "util/configparser.c" +#line 4999 "util/configparser.c" break; - case 449: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ -#line 2107 "./util/configparser.y" + case 453: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ +#line 2112 "./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) @@ -4985,11 +5008,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4989 "util/configparser.c" +#line 5012 "util/configparser.c" break; - case 450: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ -#line 2117 "./util/configparser.y" + case 454: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ +#line 2122 "./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) @@ -4998,41 +5021,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5002 "util/configparser.c" +#line 5025 "util/configparser.c" break; - case 451: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ -#line 2127 "./util/configparser.y" + case 455: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ +#line 2132 "./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 5012 "util/configparser.c" +#line 5035 "util/configparser.c" break; - case 452: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ -#line 2134 "./util/configparser.y" + case 456: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ +#line 2139 "./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 5022 "util/configparser.c" +#line 5045 "util/configparser.c" break; - case 453: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ -#line 2141 "./util/configparser.y" + case 457: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ +#line 2146 "./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 5032 "util/configparser.c" +#line 5055 "util/configparser.c" break; - case 454: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ -#line 2148 "./util/configparser.y" + case 458: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ +#line 2153 "./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) @@ -5040,22 +5063,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5044 "util/configparser.c" +#line 5067 "util/configparser.c" break; - case 455: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ -#line 2157 "./util/configparser.y" + case 459: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ +#line 2162 "./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 5055 "util/configparser.c" +#line 5078 "util/configparser.c" break; - case 456: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ -#line 2165 "./util/configparser.y" + case 460: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ +#line 2170 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5068,11 +5091,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5072 "util/configparser.c" +#line 5095 "util/configparser.c" break; - case 457: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ -#line 2179 "./util/configparser.y" + case 461: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ +#line 2184 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5092,11 +5115,11 @@ yyreduce: } } } -#line 5096 "util/configparser.c" +#line 5119 "util/configparser.c" break; - case 458: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ -#line 2200 "./util/configparser.y" + case 462: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ +#line 2205 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5116,11 +5139,11 @@ yyreduce: } } } -#line 5120 "util/configparser.c" +#line 5143 "util/configparser.c" break; - case 459: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ -#line 2221 "./util/configparser.y" + case 463: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ +#line 2226 "./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, @@ -5131,11 +5154,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5135 "util/configparser.c" +#line 5158 "util/configparser.c" break; - case 460: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ -#line 2233 "./util/configparser.y" + case 464: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ +#line 2238 "./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, @@ -5146,11 +5169,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5150 "util/configparser.c" +#line 5173 "util/configparser.c" break; - case 461: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ -#line 2245 "./util/configparser.y" + case 465: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ +#line 2250 "./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, @@ -5161,11 +5184,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5165 "util/configparser.c" +#line 5188 "util/configparser.c" break; - case 462: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ -#line 2257 "./util/configparser.y" + case 466: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ +#line 2262 "./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, @@ -5173,11 +5196,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5177 "util/configparser.c" +#line 5200 "util/configparser.c" break; - case 463: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ -#line 2266 "./util/configparser.y" + case 467: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ +#line 2271 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5197,11 +5220,11 @@ yyreduce: } } } -#line 5201 "util/configparser.c" +#line 5224 "util/configparser.c" break; - case 464: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ -#line 2287 "./util/configparser.y" + case 468: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ +#line 2292 "./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) @@ -5209,11 +5232,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5213 "util/configparser.c" +#line 5236 "util/configparser.c" break; - case 465: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ -#line 2297 "./util/configparser.y" + case 469: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ +#line 2302 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5221,33 +5244,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5225 "util/configparser.c" +#line 5248 "util/configparser.c" break; - case 466: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ -#line 2306 "./util/configparser.y" + case 470: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ +#line 2311 "./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 5236 "util/configparser.c" +#line 5259 "util/configparser.c" break; - case 467: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ -#line 2314 "./util/configparser.y" + case 471: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ +#line 2319 "./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 5247 "util/configparser.c" +#line 5270 "util/configparser.c" break; - case 468: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ -#line 2322 "./util/configparser.y" + case 472: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ +#line 2327 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5259,11 +5282,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5263 "util/configparser.c" +#line 5286 "util/configparser.c" break; - case 469: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ -#line 2335 "./util/configparser.y" + case 473: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ +#line 2340 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5275,11 +5298,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5279 "util/configparser.c" +#line 5302 "util/configparser.c" break; - case 470: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ -#line 2348 "./util/configparser.y" + case 474: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ +#line 2353 "./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) { @@ -5293,11 +5316,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5297 "util/configparser.c" +#line 5320 "util/configparser.c" break; - case 471: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ -#line 2363 "./util/configparser.y" + case 475: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ +#line 2368 "./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) { @@ -5311,11 +5334,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5315 "util/configparser.c" +#line 5338 "util/configparser.c" break; - case 472: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ -#line 2378 "./util/configparser.y" + case 476: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ +#line 2383 "./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) @@ -5323,11 +5346,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5327 "util/configparser.c" +#line 5350 "util/configparser.c" break; - case 473: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ -#line 2387 "./util/configparser.y" + case 477: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ +#line 2392 "./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) @@ -5335,20 +5358,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5339 "util/configparser.c" +#line 5362 "util/configparser.c" break; - case 474: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ -#line 2396 "./util/configparser.y" + case 478: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ +#line 2401 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5348 "util/configparser.c" +#line 5371 "util/configparser.c" break; - case 475: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ -#line 2402 "./util/configparser.y" + case 479: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ +#line 2407 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5356,11 +5379,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5360 "util/configparser.c" +#line 5383 "util/configparser.c" break; - case 476: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ -#line 2411 "./util/configparser.y" + case 480: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ +#line 2416 "./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) @@ -5368,11 +5391,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5372 "util/configparser.c" +#line 5395 "util/configparser.c" break; - case 477: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ -#line 2420 "./util/configparser.y" + case 481: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ +#line 2425 "./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) @@ -5381,11 +5404,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5385 "util/configparser.c" +#line 5408 "util/configparser.c" break; - case 478: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ -#line 2430 "./util/configparser.y" + case 482: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ +#line 2435 "./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) @@ -5394,11 +5417,61 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5398 "util/configparser.c" +#line 5421 "util/configparser.c" break; - case 479: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ -#line 2440 "./util/configparser.y" + case 483: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ +#line 2445 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_responses = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 5434 "util/configparser.c" + break; + + case 484: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ +#line 2455 "./util/configparser.y" + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 5446 "util/configparser.c" + break; + + case 485: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ +#line 2464 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_queries = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 5459 "util/configparser.c" + break; + + case 486: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ +#line 2474 "./util/configparser.y" + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 5471 "util/configparser.c" + break; + + case 487: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ +#line 2483 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5410,11 +5483,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5414 "util/configparser.c" +#line 5487 "util/configparser.c" break; - case 480: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ -#line 2453 "./util/configparser.y" + case 488: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ +#line 2496 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5426,11 +5499,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5430 "util/configparser.c" +#line 5503 "util/configparser.c" break; - case 481: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ -#line 2466 "./util/configparser.y" + case 489: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ +#line 2509 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5441,11 +5514,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5445 "util/configparser.c" +#line 5518 "util/configparser.c" break; - case 482: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ -#line 2478 "./util/configparser.y" + case 490: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ +#line 2521 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5458,11 +5531,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5462 "util/configparser.c" +#line 5535 "util/configparser.c" break; - case 483: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ -#line 2492 "./util/configparser.y" + case 491: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ +#line 2535 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5473,11 +5546,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5477 "util/configparser.c" +#line 5550 "util/configparser.c" break; - case 484: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ -#line 2504 "./util/configparser.y" + case 492: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ +#line 2547 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5490,11 +5563,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5494 "util/configparser.c" +#line 5567 "util/configparser.c" break; - case 485: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ -#line 2518 "./util/configparser.y" + case 493: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ +#line 2561 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -5502,11 +5575,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 5506 "util/configparser.c" +#line 5579 "util/configparser.c" break; - case 486: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ -#line 2527 "./util/configparser.y" + case 494: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ +#line 2570 "./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) @@ -5517,11 +5590,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 5521 "util/configparser.c" +#line 5594 "util/configparser.c" break; - case 487: /* stub_name: VAR_NAME STRING_ARG */ -#line 2539 "./util/configparser.y" + case 495: /* stub_name: VAR_NAME STRING_ARG */ +#line 2582 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5530,31 +5603,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5534 "util/configparser.c" +#line 5607 "util/configparser.c" break; - case 488: /* stub_host: VAR_STUB_HOST STRING_ARG */ -#line 2549 "./util/configparser.y" + case 496: /* stub_host: VAR_STUB_HOST STRING_ARG */ +#line 2592 "./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 5544 "util/configparser.c" +#line 5617 "util/configparser.c" break; - case 489: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ -#line 2556 "./util/configparser.y" + case 497: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ +#line 2599 "./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 5554 "util/configparser.c" +#line 5627 "util/configparser.c" break; - case 490: /* stub_first: VAR_STUB_FIRST STRING_ARG */ -#line 2563 "./util/configparser.y" + case 498: /* stub_first: VAR_STUB_FIRST STRING_ARG */ +#line 2606 "./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) @@ -5562,11 +5635,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5566 "util/configparser.c" +#line 5639 "util/configparser.c" break; - case 491: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ -#line 2572 "./util/configparser.y" + case 499: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ +#line 2615 "./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) @@ -5574,11 +5647,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5578 "util/configparser.c" +#line 5651 "util/configparser.c" break; - case 492: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ -#line 2581 "./util/configparser.y" + case 500: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ +#line 2624 "./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) @@ -5587,11 +5660,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5591 "util/configparser.c" +#line 5664 "util/configparser.c" break; - case 493: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ -#line 2591 "./util/configparser.y" + case 501: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ +#line 2634 "./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) @@ -5600,11 +5673,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5604 "util/configparser.c" +#line 5677 "util/configparser.c" break; - case 494: /* forward_name: VAR_NAME STRING_ARG */ -#line 2601 "./util/configparser.y" + case 502: /* forward_name: VAR_NAME STRING_ARG */ +#line 2644 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5613,31 +5686,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5617 "util/configparser.c" +#line 5690 "util/configparser.c" break; - case 495: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ -#line 2611 "./util/configparser.y" + case 503: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ +#line 2654 "./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 5627 "util/configparser.c" +#line 5700 "util/configparser.c" break; - case 496: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ -#line 2618 "./util/configparser.y" + case 504: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ +#line 2661 "./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 5637 "util/configparser.c" +#line 5710 "util/configparser.c" break; - case 497: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ -#line 2625 "./util/configparser.y" + case 505: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ +#line 2668 "./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) @@ -5645,11 +5718,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5649 "util/configparser.c" +#line 5722 "util/configparser.c" break; - case 498: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ -#line 2634 "./util/configparser.y" + case 506: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ +#line 2677 "./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) @@ -5657,11 +5730,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5661 "util/configparser.c" +#line 5734 "util/configparser.c" break; - case 499: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ -#line 2643 "./util/configparser.y" + case 507: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ +#line 2686 "./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) @@ -5670,11 +5743,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5674 "util/configparser.c" +#line 5747 "util/configparser.c" break; - case 500: /* auth_name: VAR_NAME STRING_ARG */ -#line 2653 "./util/configparser.y" + case 508: /* auth_name: VAR_NAME STRING_ARG */ +#line 2696 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5683,52 +5756,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5687 "util/configparser.c" +#line 5760 "util/configparser.c" break; - case 501: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ -#line 2663 "./util/configparser.y" + case 509: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ +#line 2706 "./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 5697 "util/configparser.c" +#line 5770 "util/configparser.c" break; - case 502: /* auth_master: VAR_MASTER STRING_ARG */ -#line 2670 "./util/configparser.y" + case 510: /* auth_master: VAR_MASTER STRING_ARG */ +#line 2713 "./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 5707 "util/configparser.c" +#line 5780 "util/configparser.c" break; - case 503: /* auth_url: VAR_URL STRING_ARG */ -#line 2677 "./util/configparser.y" + case 511: /* auth_url: VAR_URL STRING_ARG */ +#line 2720 "./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 5717 "util/configparser.c" +#line 5790 "util/configparser.c" break; - case 504: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ -#line 2684 "./util/configparser.y" + case 512: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ +#line 2727 "./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 5728 "util/configparser.c" +#line 5801 "util/configparser.c" break; - case 505: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ -#line 2692 "./util/configparser.y" + case 513: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ +#line 2735 "./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) @@ -5737,11 +5810,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5741 "util/configparser.c" +#line 5814 "util/configparser.c" break; - case 506: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ -#line 2702 "./util/configparser.y" + case 514: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ +#line 2745 "./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) @@ -5750,11 +5823,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5754 "util/configparser.c" +#line 5827 "util/configparser.c" break; - case 507: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ -#line 2712 "./util/configparser.y" + case 515: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ +#line 2755 "./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) @@ -5763,11 +5836,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5767 "util/configparser.c" +#line 5840 "util/configparser.c" break; - case 508: /* view_name: VAR_NAME STRING_ARG */ -#line 2722 "./util/configparser.y" + case 516: /* view_name: VAR_NAME STRING_ARG */ +#line 2765 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5776,11 +5849,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5780 "util/configparser.c" +#line 5853 "util/configparser.c" break; - case 509: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ -#line 2732 "./util/configparser.y" + case 517: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2775 "./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 && @@ -5818,11 +5891,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5822 "util/configparser.c" +#line 5895 "util/configparser.c" break; - case 510: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 2771 "./util/configparser.y" + case 518: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 2814 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5831,33 +5904,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5835 "util/configparser.c" +#line 5908 "util/configparser.c" break; - case 511: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 2781 "./util/configparser.y" + case 519: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 2824 "./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 5846 "util/configparser.c" +#line 5919 "util/configparser.c" break; - case 512: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ -#line 2789 "./util/configparser.y" + case 520: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2832 "./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 5857 "util/configparser.c" +#line 5930 "util/configparser.c" break; - case 513: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ -#line 2797 "./util/configparser.y" + case 521: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2840 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5871,11 +5944,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5875 "util/configparser.c" +#line 5948 "util/configparser.c" break; - case 514: /* view_first: VAR_VIEW_FIRST STRING_ARG */ -#line 2812 "./util/configparser.y" + case 522: /* view_first: VAR_VIEW_FIRST STRING_ARG */ +#line 2855 "./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) @@ -5883,19 +5956,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5887 "util/configparser.c" +#line 5960 "util/configparser.c" break; - case 515: /* rcstart: VAR_REMOTE_CONTROL */ -#line 2821 "./util/configparser.y" + case 523: /* rcstart: VAR_REMOTE_CONTROL */ +#line 2864 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 5895 "util/configparser.c" +#line 5968 "util/configparser.c" break; - case 526: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ -#line 2832 "./util/configparser.y" + case 534: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ +#line 2875 "./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) @@ -5904,11 +5977,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5908 "util/configparser.c" +#line 5981 "util/configparser.c" break; - case 527: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ -#line 2842 "./util/configparser.y" + case 535: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ +#line 2885 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5916,79 +5989,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5920 "util/configparser.c" +#line 5993 "util/configparser.c" break; - case 528: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ -#line 2851 "./util/configparser.y" + case 536: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ +#line 2894 "./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 5930 "util/configparser.c" +#line 6003 "util/configparser.c" break; - case 529: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ -#line 2858 "./util/configparser.y" + case 537: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ +#line 2901 "./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 5940 "util/configparser.c" +#line 6013 "util/configparser.c" break; - case 530: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ -#line 2865 "./util/configparser.y" + case 538: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ +#line 2908 "./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 5950 "util/configparser.c" +#line 6023 "util/configparser.c" break; - case 531: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ -#line 2872 "./util/configparser.y" + case 539: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ +#line 2915 "./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 5960 "util/configparser.c" +#line 6033 "util/configparser.c" break; - case 532: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ -#line 2879 "./util/configparser.y" + case 540: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ +#line 2922 "./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 5970 "util/configparser.c" +#line 6043 "util/configparser.c" break; - case 533: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ -#line 2886 "./util/configparser.y" + case 541: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ +#line 2929 "./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 5980 "util/configparser.c" +#line 6053 "util/configparser.c" break; - case 534: /* dtstart: VAR_DNSTAP */ -#line 2893 "./util/configparser.y" + case 542: /* dtstart: VAR_DNSTAP */ +#line 2936 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 5988 "util/configparser.c" +#line 6061 "util/configparser.c" break; - case 556: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ -#line 2913 "./util/configparser.y" + case 564: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ +#line 2956 "./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) @@ -5996,11 +6069,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6000 "util/configparser.c" +#line 6073 "util/configparser.c" break; - case 557: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ -#line 2922 "./util/configparser.y" + case 565: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ +#line 2965 "./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) @@ -6009,31 +6082,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6013 "util/configparser.c" +#line 6086 "util/configparser.c" break; - case 558: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ -#line 2932 "./util/configparser.y" + case 566: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ +#line 2975 "./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 6023 "util/configparser.c" +#line 6096 "util/configparser.c" break; - case 559: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ -#line 2939 "./util/configparser.y" + case 567: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ +#line 2982 "./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 6033 "util/configparser.c" +#line 6106 "util/configparser.c" break; - case 560: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ -#line 2946 "./util/configparser.y" + case 568: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ +#line 2989 "./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) @@ -6041,51 +6114,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6045 "util/configparser.c" +#line 6118 "util/configparser.c" break; - case 561: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ -#line 2955 "./util/configparser.y" + case 569: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ +#line 2998 "./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 6055 "util/configparser.c" +#line 6128 "util/configparser.c" break; - case 562: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ -#line 2962 "./util/configparser.y" + case 570: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ +#line 3005 "./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 6065 "util/configparser.c" +#line 6138 "util/configparser.c" break; - case 563: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ -#line 2969 "./util/configparser.y" + case 571: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ +#line 3012 "./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 6075 "util/configparser.c" +#line 6148 "util/configparser.c" break; - case 564: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ -#line 2976 "./util/configparser.y" + case 572: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ +#line 3019 "./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 6085 "util/configparser.c" +#line 6158 "util/configparser.c" break; - case 565: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ -#line 2983 "./util/configparser.y" + case 573: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ +#line 3026 "./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) @@ -6093,11 +6166,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6097 "util/configparser.c" +#line 6170 "util/configparser.c" break; - case 566: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ -#line 2992 "./util/configparser.y" + case 574: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ +#line 3035 "./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) @@ -6105,31 +6178,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6109 "util/configparser.c" +#line 6182 "util/configparser.c" break; - case 567: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ -#line 3001 "./util/configparser.y" + case 575: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ +#line 3044 "./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 6119 "util/configparser.c" +#line 6192 "util/configparser.c" break; - case 568: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ -#line 3008 "./util/configparser.y" + case 576: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ +#line 3051 "./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 6129 "util/configparser.c" +#line 6202 "util/configparser.c" break; - case 569: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ -#line 3015 "./util/configparser.y" + case 577: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ +#line 3058 "./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) @@ -6138,11 +6211,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6142 "util/configparser.c" +#line 6215 "util/configparser.c" break; - case 570: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ -#line 3025 "./util/configparser.y" + case 578: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ +#line 3068 "./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) @@ -6151,11 +6224,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6155 "util/configparser.c" +#line 6228 "util/configparser.c" break; - case 571: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ -#line 3035 "./util/configparser.y" + case 579: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ +#line 3078 "./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) @@ -6164,11 +6237,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6168 "util/configparser.c" +#line 6241 "util/configparser.c" break; - case 572: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ -#line 3045 "./util/configparser.y" + case 580: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ +#line 3088 "./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) @@ -6177,11 +6250,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6181 "util/configparser.c" +#line 6254 "util/configparser.c" break; - case 573: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ -#line 3055 "./util/configparser.y" + case 581: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ +#line 3098 "./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) @@ -6190,11 +6263,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6194 "util/configparser.c" +#line 6267 "util/configparser.c" break; - case 574: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ -#line 3065 "./util/configparser.y" + case 582: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ +#line 3108 "./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) @@ -6203,47 +6276,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6207 "util/configparser.c" +#line 6280 "util/configparser.c" break; - case 575: /* pythonstart: VAR_PYTHON */ -#line 3075 "./util/configparser.y" + case 583: /* pythonstart: VAR_PYTHON */ +#line 3118 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6215 "util/configparser.c" +#line 6288 "util/configparser.c" break; - case 579: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ -#line 3084 "./util/configparser.y" + case 587: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ +#line 3127 "./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 6225 "util/configparser.c" +#line 6298 "util/configparser.c" break; - case 580: /* dynlibstart: VAR_DYNLIB */ -#line 3090 "./util/configparser.y" + case 588: /* dynlibstart: VAR_DYNLIB */ +#line 3133 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6233 "util/configparser.c" +#line 6306 "util/configparser.c" break; - case 584: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ -#line 3099 "./util/configparser.y" + case 592: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ +#line 3142 "./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 6243 "util/configparser.c" +#line 6316 "util/configparser.c" break; - case 585: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ -#line 3105 "./util/configparser.y" + case 593: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ +#line 3148 "./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) @@ -6252,21 +6325,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6256 "util/configparser.c" +#line 6329 "util/configparser.c" break; - case 586: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ -#line 3115 "./util/configparser.y" + case 594: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ +#line 3158 "./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 6266 "util/configparser.c" +#line 6339 "util/configparser.c" break; - case 587: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ -#line 3122 "./util/configparser.y" + case 595: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3165 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6274,30 +6347,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6278 "util/configparser.c" +#line 6351 "util/configparser.c" break; - case 588: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ -#line 3131 "./util/configparser.y" + case 596: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3174 "./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 6289 "util/configparser.c" +#line 6362 "util/configparser.c" break; - case 589: /* dnscstart: VAR_DNSCRYPT */ -#line 3139 "./util/configparser.y" + case 597: /* dnscstart: VAR_DNSCRYPT */ +#line 3182 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6297 "util/configparser.c" +#line 6370 "util/configparser.c" break; - case 602: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ -#line 3155 "./util/configparser.y" + case 610: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ +#line 3198 "./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) @@ -6305,11 +6378,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6309 "util/configparser.c" +#line 6382 "util/configparser.c" break; - case 603: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ -#line 3165 "./util/configparser.y" + case 611: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ +#line 3208 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6317,21 +6390,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6321 "util/configparser.c" +#line 6394 "util/configparser.c" break; - case 604: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ -#line 3174 "./util/configparser.y" + case 612: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ +#line 3217 "./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 6331 "util/configparser.c" +#line 6404 "util/configparser.c" break; - case 605: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ -#line 3181 "./util/configparser.y" + case 613: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ +#line 3224 "./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))) @@ -6339,21 +6412,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 6343 "util/configparser.c" +#line 6416 "util/configparser.c" break; - case 606: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ -#line 3190 "./util/configparser.y" + case 614: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ +#line 3233 "./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 6353 "util/configparser.c" +#line 6426 "util/configparser.c" break; - case 607: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ -#line 3197 "./util/configparser.y" + case 615: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ +#line 3240 "./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))) @@ -6361,22 +6434,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 6365 "util/configparser.c" +#line 6438 "util/configparser.c" break; - case 608: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ -#line 3206 "./util/configparser.y" + case 616: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ +#line 3249 "./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 6376 "util/configparser.c" +#line 6449 "util/configparser.c" break; - case 609: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ -#line 3214 "./util/configparser.y" + case 617: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ +#line 3257 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6388,22 +6461,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6392 "util/configparser.c" +#line 6465 "util/configparser.c" break; - case 610: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ -#line 3227 "./util/configparser.y" + case 618: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ +#line 3270 "./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 6403 "util/configparser.c" +#line 6476 "util/configparser.c" break; - case 611: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ -#line 3235 "./util/configparser.y" + case 619: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ +#line 3278 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6415,19 +6488,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6419 "util/configparser.c" +#line 6492 "util/configparser.c" break; - case 612: /* cachedbstart: VAR_CACHEDB */ -#line 3248 "./util/configparser.y" + case 620: /* cachedbstart: VAR_CACHEDB */ +#line 3291 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6427 "util/configparser.c" +#line 6500 "util/configparser.c" break; - case 621: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ -#line 3259 "./util/configparser.y" + case 629: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ +#line 3302 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6438,11 +6511,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6442 "util/configparser.c" +#line 6515 "util/configparser.c" break; - case 622: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ -#line 3271 "./util/configparser.y" + case 630: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ +#line 3314 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6453,11 +6526,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6457 "util/configparser.c" +#line 6530 "util/configparser.c" break; - case 623: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ -#line 3283 "./util/configparser.y" + case 631: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ +#line 3326 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6468,11 +6541,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6472 "util/configparser.c" +#line 6545 "util/configparser.c" break; - case 624: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ -#line 3295 "./util/configparser.y" + case 632: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ +#line 3338 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6486,11 +6559,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6490 "util/configparser.c" +#line 6563 "util/configparser.c" break; - case 625: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ -#line 3310 "./util/configparser.y" + case 633: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ +#line 3353 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6502,11 +6575,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6506 "util/configparser.c" +#line 6579 "util/configparser.c" break; - case 626: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ -#line 3323 "./util/configparser.y" + case 634: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ +#line 3366 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6518,11 +6591,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6522 "util/configparser.c" +#line 6595 "util/configparser.c" break; - case 627: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ -#line 3336 "./util/configparser.y" + case 635: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ +#line 3379 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6532,19 +6605,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6536 "util/configparser.c" +#line 6609 "util/configparser.c" break; - case 628: /* ipsetstart: VAR_IPSET */ -#line 3347 "./util/configparser.y" + case 636: /* ipsetstart: VAR_IPSET */ +#line 3390 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6544 "util/configparser.c" +#line 6617 "util/configparser.c" break; - case 633: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ -#line 3356 "./util/configparser.y" + case 641: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ +#line 3399 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6558,11 +6631,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6562 "util/configparser.c" +#line 6635 "util/configparser.c" break; - case 634: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ -#line 3371 "./util/configparser.y" + case 642: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ +#line 3414 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6576,11 +6649,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6580 "util/configparser.c" +#line 6653 "util/configparser.c" break; -#line 6584 "util/configparser.c" +#line 6657 "util/configparser.c" default: break; } @@ -6774,7 +6847,7 @@ yyreturn: return yyresult; } -#line 3385 "./util/configparser.y" +#line 3428 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 0e82fd03d..02428a1a5 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -301,60 +301,64 @@ extern int yydebug; VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 502, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ VAR_DNSCRYPT_NONCE_CACHE_SIZE = 503, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ VAR_DNSCRYPT_NONCE_CACHE_SLABS = 504, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_IPSECMOD_ENABLED = 505, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 506, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 507, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 508, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 509, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 510, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 511, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 512, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 513, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 514, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 515, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 516, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 517, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 518, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 519, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 520, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 521, /* VAR_ZONEFILE */ - VAR_MASTER = 522, /* VAR_MASTER */ - VAR_URL = 523, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 524, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 525, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 526, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 527, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 528, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 529, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 530, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 531, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 532, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 533, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 534, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 535, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 536, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 537, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 538, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 539, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 540, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 541, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 542, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 543, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 544, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 545, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 546, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 547, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 548, /* VAR_RPZ */ - VAR_TAGS = 549, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 550, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 551, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 552, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 553, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 554, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 555, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 556, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 557, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 558 /* VAR_NSID */ + VAR_PAD_RESPONSES = 505, /* VAR_PAD_RESPONSES */ + VAR_PAD_RESPONSES_BLOCK_SIZE = 506, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ + VAR_PAD_QUERIES = 507, /* VAR_PAD_QUERIES */ + VAR_PAD_QUERIES_BLOCK_SIZE = 508, /* VAR_PAD_QUERIES_BLOCK_SIZE */ + VAR_IPSECMOD_ENABLED = 509, /* VAR_IPSECMOD_ENABLED */ + VAR_IPSECMOD_HOOK = 510, /* VAR_IPSECMOD_HOOK */ + VAR_IPSECMOD_IGNORE_BOGUS = 511, /* VAR_IPSECMOD_IGNORE_BOGUS */ + VAR_IPSECMOD_MAX_TTL = 512, /* VAR_IPSECMOD_MAX_TTL */ + VAR_IPSECMOD_WHITELIST = 513, /* VAR_IPSECMOD_WHITELIST */ + VAR_IPSECMOD_STRICT = 514, /* VAR_IPSECMOD_STRICT */ + VAR_CACHEDB = 515, /* VAR_CACHEDB */ + VAR_CACHEDB_BACKEND = 516, /* VAR_CACHEDB_BACKEND */ + VAR_CACHEDB_SECRETSEED = 517, /* VAR_CACHEDB_SECRETSEED */ + VAR_CACHEDB_REDISHOST = 518, /* VAR_CACHEDB_REDISHOST */ + VAR_CACHEDB_REDISPORT = 519, /* VAR_CACHEDB_REDISPORT */ + VAR_CACHEDB_REDISTIMEOUT = 520, /* VAR_CACHEDB_REDISTIMEOUT */ + VAR_CACHEDB_REDISEXPIRERECORDS = 521, /* VAR_CACHEDB_REDISEXPIRERECORDS */ + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 522, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ + VAR_FOR_UPSTREAM = 523, /* VAR_FOR_UPSTREAM */ + VAR_AUTH_ZONE = 524, /* VAR_AUTH_ZONE */ + VAR_ZONEFILE = 525, /* VAR_ZONEFILE */ + VAR_MASTER = 526, /* VAR_MASTER */ + VAR_URL = 527, /* VAR_URL */ + VAR_FOR_DOWNSTREAM = 528, /* VAR_FOR_DOWNSTREAM */ + VAR_FALLBACK_ENABLED = 529, /* VAR_FALLBACK_ENABLED */ + VAR_TLS_ADDITIONAL_PORT = 530, /* VAR_TLS_ADDITIONAL_PORT */ + VAR_LOW_RTT = 531, /* VAR_LOW_RTT */ + VAR_LOW_RTT_PERMIL = 532, /* VAR_LOW_RTT_PERMIL */ + VAR_FAST_SERVER_PERMIL = 533, /* VAR_FAST_SERVER_PERMIL */ + VAR_FAST_SERVER_NUM = 534, /* VAR_FAST_SERVER_NUM */ + VAR_ALLOW_NOTIFY = 535, /* VAR_ALLOW_NOTIFY */ + VAR_TLS_WIN_CERT = 536, /* VAR_TLS_WIN_CERT */ + VAR_TCP_CONNECTION_LIMIT = 537, /* VAR_TCP_CONNECTION_LIMIT */ + VAR_FORWARD_NO_CACHE = 538, /* VAR_FORWARD_NO_CACHE */ + VAR_STUB_NO_CACHE = 539, /* VAR_STUB_NO_CACHE */ + VAR_LOG_SERVFAIL = 540, /* VAR_LOG_SERVFAIL */ + VAR_DENY_ANY = 541, /* VAR_DENY_ANY */ + VAR_UNKNOWN_SERVER_TIME_LIMIT = 542, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ + VAR_LOG_TAG_QUERYREPLY = 543, /* VAR_LOG_TAG_QUERYREPLY */ + VAR_STREAM_WAIT_SIZE = 544, /* VAR_STREAM_WAIT_SIZE */ + VAR_TLS_CIPHERS = 545, /* VAR_TLS_CIPHERS */ + VAR_TLS_CIPHERSUITES = 546, /* VAR_TLS_CIPHERSUITES */ + VAR_TLS_USE_SNI = 547, /* VAR_TLS_USE_SNI */ + VAR_IPSET = 548, /* VAR_IPSET */ + VAR_IPSET_NAME_V4 = 549, /* VAR_IPSET_NAME_V4 */ + VAR_IPSET_NAME_V6 = 550, /* VAR_IPSET_NAME_V6 */ + VAR_TLS_SESSION_TICKET_KEYS = 551, /* VAR_TLS_SESSION_TICKET_KEYS */ + VAR_RPZ = 552, /* VAR_RPZ */ + VAR_TAGS = 553, /* VAR_TAGS */ + VAR_RPZ_ACTION_OVERRIDE = 554, /* VAR_RPZ_ACTION_OVERRIDE */ + VAR_RPZ_CNAME_OVERRIDE = 555, /* VAR_RPZ_CNAME_OVERRIDE */ + VAR_RPZ_LOG = 556, /* VAR_RPZ_LOG */ + VAR_RPZ_LOG_NAME = 557, /* VAR_RPZ_LOG_NAME */ + VAR_DYNLIB = 558, /* VAR_DYNLIB */ + VAR_DYNLIB_FILE = 559, /* VAR_DYNLIB_FILE */ + VAR_EDNS_CLIENT_STRING = 560, /* VAR_EDNS_CLIENT_STRING */ + VAR_EDNS_CLIENT_STRING_OPCODE = 561, /* VAR_EDNS_CLIENT_STRING_OPCODE */ + VAR_NSID = 562 /* VAR_NSID */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -609,60 +613,64 @@ extern int yydebug; #define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502 #define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503 #define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504 -#define VAR_IPSECMOD_ENABLED 505 -#define VAR_IPSECMOD_HOOK 506 -#define VAR_IPSECMOD_IGNORE_BOGUS 507 -#define VAR_IPSECMOD_MAX_TTL 508 -#define VAR_IPSECMOD_WHITELIST 509 -#define VAR_IPSECMOD_STRICT 510 -#define VAR_CACHEDB 511 -#define VAR_CACHEDB_BACKEND 512 -#define VAR_CACHEDB_SECRETSEED 513 -#define VAR_CACHEDB_REDISHOST 514 -#define VAR_CACHEDB_REDISPORT 515 -#define VAR_CACHEDB_REDISTIMEOUT 516 -#define VAR_CACHEDB_REDISEXPIRERECORDS 517 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 518 -#define VAR_FOR_UPSTREAM 519 -#define VAR_AUTH_ZONE 520 -#define VAR_ZONEFILE 521 -#define VAR_MASTER 522 -#define VAR_URL 523 -#define VAR_FOR_DOWNSTREAM 524 -#define VAR_FALLBACK_ENABLED 525 -#define VAR_TLS_ADDITIONAL_PORT 526 -#define VAR_LOW_RTT 527 -#define VAR_LOW_RTT_PERMIL 528 -#define VAR_FAST_SERVER_PERMIL 529 -#define VAR_FAST_SERVER_NUM 530 -#define VAR_ALLOW_NOTIFY 531 -#define VAR_TLS_WIN_CERT 532 -#define VAR_TCP_CONNECTION_LIMIT 533 -#define VAR_FORWARD_NO_CACHE 534 -#define VAR_STUB_NO_CACHE 535 -#define VAR_LOG_SERVFAIL 536 -#define VAR_DENY_ANY 537 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 538 -#define VAR_LOG_TAG_QUERYREPLY 539 -#define VAR_STREAM_WAIT_SIZE 540 -#define VAR_TLS_CIPHERS 541 -#define VAR_TLS_CIPHERSUITES 542 -#define VAR_TLS_USE_SNI 543 -#define VAR_IPSET 544 -#define VAR_IPSET_NAME_V4 545 -#define VAR_IPSET_NAME_V6 546 -#define VAR_TLS_SESSION_TICKET_KEYS 547 -#define VAR_RPZ 548 -#define VAR_TAGS 549 -#define VAR_RPZ_ACTION_OVERRIDE 550 -#define VAR_RPZ_CNAME_OVERRIDE 551 -#define VAR_RPZ_LOG 552 -#define VAR_RPZ_LOG_NAME 553 -#define VAR_DYNLIB 554 -#define VAR_DYNLIB_FILE 555 -#define VAR_EDNS_CLIENT_STRING 556 -#define VAR_EDNS_CLIENT_STRING_OPCODE 557 -#define VAR_NSID 558 +#define VAR_PAD_RESPONSES 505 +#define VAR_PAD_RESPONSES_BLOCK_SIZE 506 +#define VAR_PAD_QUERIES 507 +#define VAR_PAD_QUERIES_BLOCK_SIZE 508 +#define VAR_IPSECMOD_ENABLED 509 +#define VAR_IPSECMOD_HOOK 510 +#define VAR_IPSECMOD_IGNORE_BOGUS 511 +#define VAR_IPSECMOD_MAX_TTL 512 +#define VAR_IPSECMOD_WHITELIST 513 +#define VAR_IPSECMOD_STRICT 514 +#define VAR_CACHEDB 515 +#define VAR_CACHEDB_BACKEND 516 +#define VAR_CACHEDB_SECRETSEED 517 +#define VAR_CACHEDB_REDISHOST 518 +#define VAR_CACHEDB_REDISPORT 519 +#define VAR_CACHEDB_REDISTIMEOUT 520 +#define VAR_CACHEDB_REDISEXPIRERECORDS 521 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 522 +#define VAR_FOR_UPSTREAM 523 +#define VAR_AUTH_ZONE 524 +#define VAR_ZONEFILE 525 +#define VAR_MASTER 526 +#define VAR_URL 527 +#define VAR_FOR_DOWNSTREAM 528 +#define VAR_FALLBACK_ENABLED 529 +#define VAR_TLS_ADDITIONAL_PORT 530 +#define VAR_LOW_RTT 531 +#define VAR_LOW_RTT_PERMIL 532 +#define VAR_FAST_SERVER_PERMIL 533 +#define VAR_FAST_SERVER_NUM 534 +#define VAR_ALLOW_NOTIFY 535 +#define VAR_TLS_WIN_CERT 536 +#define VAR_TCP_CONNECTION_LIMIT 537 +#define VAR_FORWARD_NO_CACHE 538 +#define VAR_STUB_NO_CACHE 539 +#define VAR_LOG_SERVFAIL 540 +#define VAR_DENY_ANY 541 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 542 +#define VAR_LOG_TAG_QUERYREPLY 543 +#define VAR_STREAM_WAIT_SIZE 544 +#define VAR_TLS_CIPHERS 545 +#define VAR_TLS_CIPHERSUITES 546 +#define VAR_TLS_USE_SNI 547 +#define VAR_IPSET 548 +#define VAR_IPSET_NAME_V4 549 +#define VAR_IPSET_NAME_V6 550 +#define VAR_TLS_SESSION_TICKET_KEYS 551 +#define VAR_RPZ 552 +#define VAR_TAGS 553 +#define VAR_RPZ_ACTION_OVERRIDE 554 +#define VAR_RPZ_CNAME_OVERRIDE 555 +#define VAR_RPZ_LOG 556 +#define VAR_RPZ_LOG_NAME 557 +#define VAR_DYNLIB 558 +#define VAR_DYNLIB_FILE 559 +#define VAR_EDNS_CLIENT_STRING 560 +#define VAR_EDNS_CLIENT_STRING_OPCODE 561 +#define VAR_NSID 562 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -672,7 +680,7 @@ union YYSTYPE char* str; -#line 676 "util/configparser.h" +#line 684 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index e2388f0f5..b4e254cdb 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -162,6 +162,8 @@ extern struct config_parser_state* cfg_parser; %token VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS %token VAR_DNSCRYPT_NONCE_CACHE_SIZE %token VAR_DNSCRYPT_NONCE_CACHE_SLABS +%token VAR_PAD_RESPONSES VAR_PAD_RESPONSES_BLOCK_SIZE +%token VAR_PAD_QUERIES VAR_PAD_QUERIES_BLOCK_SIZE %token VAR_IPSECMOD_ENABLED VAR_IPSECMOD_HOOK VAR_IPSECMOD_IGNORE_BOGUS %token VAR_IPSECMOD_MAX_TTL VAR_IPSECMOD_WHITELIST VAR_IPSECMOD_STRICT %token VAR_CACHEDB VAR_CACHEDB_BACKEND VAR_CACHEDB_SECRETSEED @@ -274,7 +276,10 @@ content_server: server_num_threads | server_verbosity | server_port | server_disable_dnssec_lame_check | server_access_control_tag | server_local_zone_override | server_access_control_tag_action | server_access_control_tag_data | server_access_control_view | - server_qname_minimisation_strict | server_serve_expired | + server_qname_minimisation_strict | + server_pad_responses | server_pad_responses_block_size | + server_pad_queries | server_pad_queries_block_size | + server_serve_expired | server_serve_expired_ttl | server_serve_expired_ttl_reset | server_serve_expired_reply_ttl | server_serve_expired_client_timeout | server_fake_dsa | server_log_identity | server_use_systemd | @@ -2436,6 +2441,44 @@ server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG free($2); } ; +server_pad_responses: VAR_PAD_RESPONSES STRING_ARG + { + OUTYY(("P(server_pad_responses:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_responses = + (strcmp($2, "yes")==0); + free($2); + } + ; +server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG + { + OUTYY(("P(server_pad_responses_block_size:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_responses_block_size = atoi($2); + free($2); + } + ; +server_pad_queries: VAR_PAD_QUERIES STRING_ARG + { + OUTYY(("P(server_pad_queries:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->pad_queries = + (strcmp($2, "yes")==0); + free($2); + } + ; +server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG + { + OUTYY(("P(server_pad_queries_block_size:%s)\n", $2)); + if(atoi($2) == 0) + yyerror("number expected"); + else cfg_parser->cfg->pad_queries_block_size = atoi($2); + free($2); + } + ; server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG { #ifdef USE_IPSECMOD diff --git a/util/data/msgencode.c b/util/data/msgencode.c index 1746cfbb8..10bded941 100644 --- a/util/data/msgencode.c +++ b/util/data/msgencode.c @@ -801,14 +801,14 @@ calc_edns_field_size(struct edns_data* edns) return 1 + 2 + 2 + 4 + 2 + rdatalen; } -void -attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) +static void +attach_edns_record_max_msg_sz(sldns_buffer* pkt, struct edns_data* edns, + uint16_t max_msg_sz) { size_t len; size_t rdatapos; struct edns_option* opt; - if(!edns || !edns->edns_present) - return; + struct edns_option* padding_option = NULL; /* inc additional count */ sldns_buffer_write_u16_at(pkt, 10, sldns_buffer_read_u16_at(pkt, 10) + 1); @@ -826,17 +826,52 @@ attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) sldns_buffer_write_u16(pkt, 0); /* rdatalen */ /* write rdata */ for(opt=edns->opt_list; opt; opt=opt->next) { + if (opt->opt_code == LDNS_EDNS_PADDING) { + padding_option = opt; + continue; + } sldns_buffer_write_u16(pkt, opt->opt_code); sldns_buffer_write_u16(pkt, opt->opt_len); if(opt->opt_len != 0) sldns_buffer_write(pkt, opt->opt_data, opt->opt_len); } + if (padding_option && edns->padding_block_size ) { + size_t pad_pos = sldns_buffer_position(pkt); + size_t msg_sz = ((pad_pos + 3) / edns->padding_block_size + 1) + * edns->padding_block_size; + size_t pad_sz; + + if (msg_sz > max_msg_sz) + msg_sz = max_msg_sz; + + /* By use of calc_edns_field_size, calling functions should + * have made sure that there is enough space for at least a + * zero sized padding option. + */ + log_assert(pad_pos + 4 <= msg_sz); + + pad_sz = msg_sz - pad_pos - 4; + sldns_buffer_write_u16(pkt, LDNS_EDNS_PADDING); + sldns_buffer_write_u16(pkt, pad_sz); + if (pad_sz) { + memset(sldns_buffer_current(pkt), 0, pad_sz); + sldns_buffer_skip(pkt, pad_sz); + } + } if(edns->opt_list) sldns_buffer_write_u16_at(pkt, rdatapos, sldns_buffer_position(pkt)-rdatapos-2); sldns_buffer_flip(pkt); } +void +attach_edns_record(sldns_buffer* pkt, struct edns_data* edns) +{ + if(!edns || !edns->edns_present) + return; + attach_edns_record_max_msg_sz(pkt, edns, edns->udp_size); +} + int reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep, uint16_t id, uint16_t qflags, sldns_buffer* pkt, time_t timenow, @@ -885,7 +920,7 @@ reply_info_answer_encode(struct query_info* qinf, struct reply_info* rep, } if(attach_edns && sldns_buffer_capacity(pkt) >= sldns_buffer_limit(pkt)+attach_edns) - attach_edns_record(pkt, edns); + attach_edns_record_max_msg_sz(pkt, edns, udpsize+attach_edns); return 1; } diff --git a/util/data/msgparse.c b/util/data/msgparse.c index 7c32618a3..6ee5559db 100644 --- a/util/data/msgparse.c +++ b/util/data/msgparse.c @@ -1020,6 +1020,7 @@ parse_extract_edns(struct msg_parse* msg, struct edns_data* edns, edns->bits = sldns_read_uint16(&found->rr_last->ttl_data[2]); edns->udp_size = ntohs(found->rrset_class); edns->opt_list = NULL; + edns->padding_block_size = 0; /* take the options */ rdata_len = found->rr_first->size-2; @@ -1093,6 +1094,7 @@ parse_edns_from_pkt(sldns_buffer* pkt, struct edns_data* edns, edns->edns_version = sldns_buffer_read_u8(pkt); edns->bits = sldns_buffer_read_u16(pkt); edns->opt_list = NULL; + edns->padding_block_size = 0; /* take the options */ rdata_len = sldns_buffer_read_u16(pkt); diff --git a/util/data/msgparse.h b/util/data/msgparse.h index fd04f9f6f..533130c79 100644 --- a/util/data/msgparse.h +++ b/util/data/msgparse.h @@ -225,6 +225,8 @@ struct edns_data { uint16_t udp_size; /** rdata element list, or NULL if none */ struct edns_option* opt_list; + /** block size to pad */ + uint16_t padding_block_size; }; /** diff --git a/util/edns.c b/util/edns.c index bfb6d65ca..5d2121636 100644 --- a/util/edns.c +++ b/util/edns.c @@ -165,5 +165,15 @@ int apply_edns_options(struct edns_data* edns_out, struct edns_data* edns_in, LDNS_EDNS_NSID, cfg->nsid_len, cfg->nsid, region)) return 0; + if(!cfg->pad_responses || c->type != comm_tcp || !c->ssl + || !edns_opt_list_find(edns_in->opt_list, LDNS_EDNS_PADDING)) + ; /* pass */ + + else if(!edns_opt_list_append(&edns_out->opt_list, LDNS_EDNS_PADDING + , 0, NULL, region)) + return 0; + else + edns_out->padding_block_size = cfg->pad_responses_block_size; + return 1; } diff --git a/validator/autotrust.c b/validator/autotrust.c index fd9fb3cf1..7ce07e0d8 100644 --- a/validator/autotrust.c +++ b/validator/autotrust.c @@ -2365,6 +2365,7 @@ probe_anchor(struct module_env* env, struct trust_anchor* tp) edns.edns_version = 0; edns.bits = EDNS_DO; edns.opt_list = NULL; + edns.padding_block_size = 0; if(sldns_buffer_capacity(buf) < 65535) edns.udp_size = (uint16_t)sldns_buffer_capacity(buf); else edns.udp_size = 65535;