From: Wouter Wijngaards Date: Thu, 18 Nov 2010 08:49:15 +0000 (+0000) Subject: harden-below-nxdomain option taken from draft-vixie-dnsext-resimprove. X-Git-Tag: release-1.4.8rc1~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78cc3d8ae1dff5a78fb463b124a440a818602530;p=thirdparty%2Funbound.git harden-below-nxdomain option taken from draft-vixie-dnsext-resimprove. Default off (for now), as some older software that gives nxdomain for ENT would be incompatible. But that would only happen in the reverse tree, and such software (nonDNSSEC) may go out of style, so in the future a default yes could be possible. git-svn-id: file:///svn/unbound/trunk@2347 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index ec332efe1..da3f4a27e 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,8 @@ +18 November 2010: Wouter + - harden-below-nxdomain option, default off (because very old + software may be incompatible). We could enable it by default in + the future. + 17 November 2010: Wouter - implement draft-vixie-dnsext-resimprove-00, we stop on NXDOMAIN. - make test output nicer. diff --git a/doc/example.conf.in b/doc/example.conf.in index 5c4abcd16..34d314c67 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -257,6 +257,10 @@ server: # Default on, which insists on dnssec data for trust-anchored zones. # harden-dnssec-stripped: yes + # Harden against queries that fall under known nxdomain names. + # Default off because very old software can be incompatible. + # harden-below-nxdomain: no + # Harden the referral path by performing additional queries for # infrastructure data. Validates the replies (if possible). # Default off, because the lookups burden the server. Experimental diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 31a3d7dce..940acf470 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -466,6 +466,13 @@ removes DNSSEC data from packets, or a zone changes from signed to unsigned to badly signed often. If turned off you run the risk of a downgrade attack that disables security for a zone. Default is on. .TP +.B harden\-below\-nxdomain: \fI +From draft-vixie-dnsext-resimprove, returns nxdomain to queries for a name +below another name that is already known to be nxdomain. DNSSEC mandates +noerror for empty nonterminals, hence this is possible. Very old software +might return nxdomain for empty nonterminals (that usually happen for reverse +IP address lookups), and thus may be incompatible with this. Default is off. +.TP .B harden\-referral\-path: \fI Harden the referral path by performing additional queries for infrastructure data. Validates the replies if trust anchors are configured diff --git a/services/cache/dns.c b/services/cache/dns.c index a43e52cb0..9a21516c8 100644 --- a/services/cache/dns.c +++ b/services/cache/dns.c @@ -49,6 +49,7 @@ #include "util/module.h" #include "util/net_help.h" #include "util/regional.h" +#include "util/config_file.h" /** store rrsets in the rrset cache. * @param env: module environment with caches. @@ -675,7 +676,8 @@ dns_cache_lookup(struct module_env* env, * Empty nonterminals are NOERROR, so an NXDOMAIN for foo * means bla.foo also does not exist. The DNSSEC proofs are * the same. We search upwards for NXDOMAINs. */ - while(!dname_is_root(k.qname)) { + if(env->cfg->harden_below_nxdomain) + while(!dname_is_root(k.qname)) { dname_remove_label(&k.qname, &k.qname_len); h = query_info_hash(&k); e = slabhash_lookup(env->msg_cache, h, &k, 0); diff --git a/testdata/stop_nxdomain.rpl b/testdata/stop_nxdomain.rpl index 5feb3a756..76c90c1c9 100644 --- a/testdata/stop_nxdomain.rpl +++ b/testdata/stop_nxdomain.rpl @@ -1,6 +1,7 @@ ; config options server: target-fetch-policy: "0 0 0 0 0" + harden-below-nxdomain: yes stub-zone: name: "." diff --git a/util/config_file.c b/util/config_file.c index bcd5426a5..fccd30868 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -153,6 +153,7 @@ config_create(void) cfg->harden_large_queries = 0; cfg->harden_glue = 1; cfg->harden_dnssec_stripped = 1; + cfg->harden_below_nxdomain = 0; cfg->harden_referral_path = 0; cfg->use_caps_bits_for_id = 0; cfg->private_address = NULL; diff --git a/util/config_file.h b/util/config_file.h index 5ca7b1ef0..7a014f542 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -156,6 +156,8 @@ struct config_file { int harden_glue; /** harden against receiving no DNSSEC data for trust anchor */ int harden_dnssec_stripped; + /** harden against queries that fall under known nxdomain names */ + int harden_below_nxdomain; /** harden the referral path, query for NS,A,AAAA and validate */ int harden_referral_path; /** use 0x20 bits in query as random ID bits */ diff --git a/util/configlexer.c b/util/configlexer.c index 9dda30a76..9877393a8 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -362,8 +362,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 130 -#define YY_END_OF_BUFFER 131 +#define YY_NUM_RULES 131 +#define YY_END_OF_BUFFER 132 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -371,142 +371,144 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1221] = +static yyconst flex_int16_t yy_accept[1236] = { 0, - 1, 1, 112, 112, 116, 116, 120, 120, 124, 124, - 1, 1, 131, 128, 1, 110, 110, 129, 2, 129, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 112, - 113, 113, 114, 129, 116, 117, 117, 118, 129, 123, - 120, 121, 121, 122, 129, 124, 125, 125, 126, 129, - 127, 111, 2, 115, 129, 127, 128, 0, 1, 2, - 2, 2, 2, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 112, 0, 116, 0, 123, - 0, 120, 124, 0, 127, 0, 2, 2, 127, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 127, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 56, 128, 128, 128, 128, 128, 6, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 127, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 127, 128, 128, - 128, 128, 22, 128, 128, 128, 128, 128, 12, 13, - 128, 15, 14, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 108, 128, 128, 128, 128, - 3, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 127, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 119, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 25, 128, 128, 128, 128, 128, 128, 128, 26, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 69, - 119, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 68, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 54, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 23, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 24, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 17, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 20, - 21, 128, 57, 58, 128, 55, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 5, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 71, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 94, 93, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 27, 128, 128, 128, 128, - 59, 128, 128, 128, 128, 128, 91, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 46, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 4, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 88, 128, 128, 128, - 128, 128, 128, 128, 102, 89, 128, 16, 128, 128, - 128, 128, 61, 62, 60, 128, 128, 128, 128, 128, - 67, 128, 128, 128, 128, 128, 128, 128, 128, 90, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 53, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 76, 128, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 128, 34, - 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 66, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 70, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 107, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 80, 128, 83, 128, 128, 128, 128, - 65, 128, 128, 100, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 36, 37, 128, 42, 84, 128, 95, 92, 128, 30, - - 128, 86, 128, 128, 128, 128, 128, 7, 128, 52, - 99, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 72, 128, 128, 109, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 85, 29, 31, - 128, 128, 128, 128, 128, 51, 128, 128, 128, 103, - 128, 128, 128, 128, 128, 128, 49, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 105, 128, 128, 28, - 128, 128, 128, 128, 128, 11, 128, 128, 128, 128, - 128, 128, 10, 128, 128, 32, 128, 104, 128, 128, - - 128, 128, 128, 128, 128, 128, 128, 128, 79, 78, - 128, 106, 101, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 38, 128, 128, 128, 128, 128, 33, 128, - 128, 128, 73, 75, 128, 128, 128, 77, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 18, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 98, 128, 128, 128, 128, 128, - 128, 19, 128, 9, 128, 128, 96, 43, 128, 128, - 128, 82, 128, 63, 128, 128, 45, 48, 44, 128, - 39, 128, 8, 128, 128, 81, 128, 128, 128, 128, - - 40, 128, 97, 128, 128, 74, 64, 47, 41, 128, - 128, 128, 128, 50, 128, 128, 128, 128, 87, 0 + 1, 1, 113, 113, 117, 117, 121, 121, 125, 125, + 1, 1, 132, 129, 1, 111, 111, 130, 2, 130, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 113, + 114, 114, 115, 130, 117, 118, 118, 119, 130, 124, + 121, 122, 122, 123, 130, 125, 126, 126, 127, 130, + 128, 112, 2, 116, 130, 128, 129, 0, 1, 2, + 2, 2, 2, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 113, 0, 117, 0, 124, + 0, 121, 125, 0, 128, 0, 2, 2, 128, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 128, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 128, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 57, 129, 129, 129, 129, 129, 6, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 128, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 128, 129, 129, + 129, 129, 22, 129, 129, 129, 129, 129, 12, 13, + 129, 15, 14, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 109, 129, 129, 129, 129, + 3, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 128, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 120, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 25, 129, 129, 129, 129, 129, 129, 129, 26, + + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 70, 120, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 69, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 55, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 23, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 24, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 17, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 20, 21, 129, 58, 59, 129, 56, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 5, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 72, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 95, 94, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 27, + 129, 129, 129, 129, 60, 129, 129, 129, 129, 129, + 92, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 46, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 4, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 89, 129, 129, 129, 129, 129, 129, 129, 103, + 90, 129, 16, 129, 129, 129, 129, 62, 63, 61, + 129, 129, 129, 129, 129, 129, 68, 129, 129, 129, + 129, 129, 129, 129, 129, 91, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 54, 129, 129, 129, 129, 129, 129, 129, 129, 129, + + 129, 129, 77, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 34, 35, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 67, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 71, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 108, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 81, 129, 84, 129, 129, 129, 129, 66, 129, 129, + 101, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 36, 37, + + 129, 42, 85, 129, 96, 93, 129, 30, 129, 87, + 129, 129, 129, 129, 129, 7, 129, 53, 100, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 73, 129, 129, 110, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 86, 29, 31, 129, + 129, 129, 129, 129, 52, 129, 129, 129, 104, 129, + 129, 129, 129, 129, 129, 50, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 106, 129, 129, 28, 129, + 129, 129, 129, 129, 129, 11, 129, 129, 129, 129, + + 129, 129, 10, 129, 129, 32, 129, 105, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 80, 79, + 129, 107, 102, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 38, 129, 129, 129, 129, 129, 33, + 129, 129, 129, 74, 76, 129, 129, 129, 78, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 18, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 99, 129, 129, 129, + 129, 129, 129, 129, 19, 129, 9, 129, 129, 97, + 43, 129, 129, 129, 83, 129, 64, 129, 129, 129, + + 45, 49, 44, 129, 39, 129, 8, 129, 129, 82, + 129, 129, 129, 48, 129, 40, 129, 98, 129, 129, + 75, 65, 47, 41, 129, 129, 129, 129, 51, 129, + 129, 129, 129, 88, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -549,21 +551,21 @@ static yyconst flex_int32_t yy_meta[40] = 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[1235] = +static yyconst flex_int16_t yy_base[1250] = { 0, 0, 0, 37, 40, 44, 51, 63, 75, 56, 68, - 87, 108, 2345, 2331, 50, 2447, 2447, 2447, 129, 94, + 87, 108, 2230, 2128, 50, 2482, 2482, 2482, 129, 94, 70, 104, 122, 90, 92, 115, 126, 95, 84, 132, - 133, 138, 50, 135, 136, 156, 145, 155, 157, 2329, - 2447, 2447, 2447, 70, 2328, 2447, 2447, 2447, 42, 2258, - 2096, 2447, 2447, 2447, 176, 1978, 2447, 2447, 2447, 181, - 1860, 2447, 186, 2447, 190, 111, 1300, 196, 120, 0, + 133, 138, 50, 135, 136, 156, 145, 155, 157, 1820, + 2482, 2482, 2482, 70, 1695, 2482, 2482, 2482, 42, 1498, + 1461, 2482, 2482, 2482, 176, 1377, 2482, 2482, 2482, 181, + 1342, 2482, 186, 2482, 190, 111, 1093, 196, 120, 0, 207, 0, 0, 103, 189, 183, 191, 192, 197, 200, 202, 142, 209, 205, 208, 213, 214, 217, 218, 224, 215, 233, 236, 225, 235, 237, 240, 241, 226, 245, 248, 251, 252, 255, 259, 257, 253, 267, 263, 261, - 265, 49, 270, 269, 273, 1184, 286, 1051, 289, 811, + 265, 49, 270, 269, 273, 995, 286, 848, 289, 811, 296, 710, 466, 301, 282, 305, 309, 0, 302, 306, 312, 289, 308, 295, 313, 319, 315, 322, 334, 323, 318, 321, 327, 325, 330, 328, 332, 331, 336, 339, @@ -580,7 +582,7 @@ static yyconst flex_int16_t yy_base[1235] = 527, 535, 538, 534, 536, 541, 548, 560, 566, 550, 553, 557, 567, 572, 571, 568, 576, 578, 579, 580, 582, 594, 577, 592, 585, 595, 604, 593, 601, 603, - 605, 606, 2447, 609, 611, 612, 614, 615, 2447, 616, + 605, 606, 2482, 609, 611, 612, 614, 615, 2482, 616, 617, 619, 624, 622, 639, 625, 618, 631, 628, 641, 638, 650, 644, 651, 621, 653, 648, 656, 659, 660, @@ -592,244 +594,246 @@ static yyconst flex_int16_t yy_base[1235] = 774, 768, 778, 784, 780, 785, 766, 788, 789, 772, 791, 798, 794, 796, 797, 799, 801, 803, 805, 808, 807, 817, 818, 809, 819, 821, 810, 828, 829, 831, - 825, 836, 2447, 839, 838, 840, 841, 844, 2447, 2447, - 149, 2447, 2447, 843, 847, 850, 856, 860, 857, 848, - - 855, 869, 863, 873, 861, 881, 883, 865, 871, 884, - 887, 889, 891, 894, 895, 897, 899, 900, 901, 905, - 902, 912, 906, 918, 915, 2447, 917, 916, 921, 924, - 2447, 923, 925, 928, 929, 926, 931, 936, 932, 939, - 947, 948, 941, 943, 949, 951, 956, 963, 959, 961, - 964, 970, 966, 968, 974, 969, 971, 976, 978, 980, - 1003, 981, 982, 983, 987, 988, 990, 991, 1005, 1010, - 999, 1015, 992, 1016, 1017, 1020, 1022, 1024, 2447, 1031, - 1029, 1028, 1030, 1033, 1035, 1037, 1040, 1039, 1046, 1053, - 2447, 1042, 1049, 1050, 1058, 1052, 1064, 1067, 2447, 1071, - - 1068, 1073, 1074, 1075, 1077, 1078, 1079, 1081, 1082, 1090, - 1085, 1086, 1091, 1092, 1094, 1098, 1096, 1105, 1113, 1102, - 1110, 1111, 1112, 1115, 1118, 1116, 1119, 1120, 1121, 2447, - 216, 1122, 1123, 1124, 1137, 1140, 1142, 1129, 1131, 1148, - 1141, 1149, 1151, 1152, 1154, 1155, 1157, 1161, 1158, 1165, - 1159, 1167, 1162, 1168, 1172, 1173, 1171, 1175, 1178, 2447, - 1180, 1125, 1183, 1188, 1197, 1185, 1191, 1204, 1201, 1205, - 1206, 1208, 1209, 1216, 1217, 1213, 1215, 1214, 1220, 2447, - 1221, 1224, 1226, 1229, 1233, 1234, 1235, 1236, 1238, 1241, - 1245, 1247, 1249, 1250, 1257, 1251, 1254, 1258, 1259, 1260, - - 989, 2447, 1270, 1272, 1268, 1274, 1275, 1276, 1278, 1280, - 1281, 1282, 1288, 1286, 1287, 1285, 1290, 1292, 1293, 1296, - 1294, 2447, 1309, 1297, 1298, 1310, 1302, 1299, 1321, 1311, - 1313, 1322, 1324, 1326, 1331, 1328, 1334, 1332, 1335, 1337, - 1344, 1345, 1348, 2447, 1350, 1338, 1351, 1358, 1360, 1354, - 1361, 1368, 1362, 1364, 1365, 1366, 1372, 1369, 1374, 1375, - 1377, 1387, 1379, 1371, 1378, 1394, 1395, 1388, 1401, 2447, - 2447, 1402, 2447, 2447, 1404, 2447, 1406, 1399, 1405, 1407, - 1410, 1416, 1411, 1417, 1413, 1421, 1419, 1420, 1422, 2447, - 1424, 1426, 1428, 1433, 1434, 1436, 875, 1438, 1446, 1437, - - 1444, 1445, 2447, 1447, 1448, 1459, 1455, 1460, 1449, 1463, - 1464, 1465, 1472, 1474, 1466, 1468, 1475, 1476, 1478, 1482, - 1480, 1481, 1485, 1487, 1486, 1496, 1494, 2447, 2447, 1489, - 1498, 1497, 1503, 1504, 1514, 1518, 1499, 1511, 1520, 1521, - 1522, 1523, 1525, 1527, 1528, 2447, 1534, 1536, 1533, 1542, - 2447, 1532, 1530, 1537, 1544, 1549, 2447, 1550, 1553, 1554, - 1558, 1561, 1555, 1552, 1562, 1569, 1565, 1571, 1572, 1578, - 1574, 1576, 1581, 1589, 1591, 1592, 1596, 1585, 1582, 1593, - 1597, 1599, 1605, 1607, 1608, 2447, 1614, 1600, 1615, 1602, - 1620, 1621, 1622, 1613, 1623, 1624, 1625, 1629, 1626, 1630, - - 1635, 1638, 1632, 1640, 1637, 1650, 1642, 1645, 2447, 1648, - 1659, 1656, 1657, 1666, 1662, 1660, 1658, 1670, 1671, 1673, - 1672, 1674, 1675, 1682, 1688, 1691, 1680, 1698, 1684, 1697, - 1694, 1699, 1705, 1703, 1707, 1704, 2447, 1708, 1710, 1713, - 1714, 1717, 1715, 1718, 2447, 2447, 1719, 2447, 1728, 1723, - 1726, 1730, 2447, 2447, 2447, 1737, 1733, 1742, 1734, 1745, - 2447, 1738, 1746, 1748, 1749, 1751, 1752, 1753, 1754, 2447, - 1755, 1757, 1762, 1756, 1767, 1770, 1771, 1773, 1772, 1778, - 1779, 1781, 1787, 1784, 2447, 1785, 1786, 1791, 1793, 1794, - 1798, 1799, 1795, 1792, 1802, 1809, 2447, 1810, 1788, 1814, - - 1820, 1817, 1822, 1824, 1825, 1827, 1828, 1831, 1834, 2447, - 2447, 1835, 1837, 1838, 1833, 1846, 1848, 1840, 1849, 1847, - 1850, 1853, 1856, 1858, 1857, 2447, 1859, 1861, 1863, 1864, - 1867, 1880, 1868, 1883, 1885, 1871, 1887, 1889, 2447, 1891, - 1893, 1875, 1898, 1895, 1899, 1900, 1901, 1907, 1904, 1909, - 2447, 1911, 1912, 1914, 1916, 1919, 1918, 1920, 1921, 1922, - 1926, 1932, 1929, 2447, 1930, 2447, 1934, 1940, 1942, 1944, - 2447, 1946, 1947, 2447, 1948, 1949, 1956, 1958, 1957, 1964, - 1965, 1952, 1966, 1968, 1974, 1971, 1967, 1975, 1976, 1979, - 2447, 2447, 1987, 2447, 2447, 1990, 2447, 2447, 1992, 2447, - - 1994, 2447, 2000, 1996, 1982, 1985, 1999, 2447, 2002, 2447, - 2447, 2003, 2009, 2005, 2013, 2006, 2014, 2015, 2016, 2017, - 2019, 2021, 2022, 2023, 2024, 2025, 2026, 2033, 2030, 2035, - 2036, 2043, 2447, 2034, 2045, 2447, 2054, 2051, 2037, 2056, - 2057, 2058, 2062, 2064, 2063, 2065, 2066, 2447, 2447, 2447, - 2067, 2068, 2070, 2075, 2076, 2447, 2080, 2072, 2082, 2447, - 2088, 2083, 2092, 2093, 2095, 2096, 2447, 2097, 2102, 2103, - 2099, 2110, 2116, 2111, 2118, 2120, 2447, 2121, 2113, 2447, - 2124, 2122, 2123, 2128, 2130, 2447, 2133, 2134, 2136, 2137, - 2140, 2138, 2447, 2141, 2142, 2447, 2145, 2447, 2147, 2156, - - 2151, 2159, 2161, 2162, 2149, 2169, 2166, 2168, 2447, 2447, - 2170, 2447, 2447, 2171, 2173, 2174, 2175, 2177, 2178, 2179, - 2183, 2184, 2447, 2185, 2189, 2187, 2195, 2194, 2447, 2197, - 2196, 2200, 2447, 2447, 2209, 2201, 2210, 2447, 2211, 2212, - 2213, 2215, 2218, 2220, 2222, 2223, 2224, 2226, 2227, 2234, - 2235, 2447, 2238, 2228, 2239, 2243, 2245, 2247, 2250, 2249, - 2254, 2251, 2256, 2257, 2447, 2259, 2268, 2271, 2273, 2260, - 2275, 2447, 2277, 2447, 2280, 2281, 2447, 2447, 2282, 2284, - 2287, 2447, 2288, 2447, 2285, 2291, 2447, 2447, 2447, 2297, - 2447, 2294, 2447, 2300, 2289, 2447, 2301, 2303, 2307, 2309, - - 2447, 2311, 2447, 2312, 2313, 2447, 2447, 2447, 2447, 2316, - 2315, 2318, 2321, 2447, 2322, 2325, 2323, 2327, 2447, 2447, - 2355, 2362, 2369, 2376, 2383, 94, 2390, 2397, 2404, 2411, - 2418, 2425, 2432, 2439 + 825, 836, 2482, 839, 838, 840, 841, 844, 2482, 2482, + 149, 2482, 2482, 843, 847, 850, 856, 860, 861, 855, + + 857, 869, 863, 874, 865, 876, 881, 871, 883, 885, + 886, 888, 889, 896, 897, 892, 899, 901, 890, 905, + 904, 913, 906, 920, 916, 2482, 918, 917, 922, 925, + 2482, 919, 924, 929, 926, 927, 932, 933, 937, 934, + 944, 949, 942, 950, 951, 952, 954, 963, 957, 959, + 965, 969, 966, 968, 971, 972, 975, 974, 976, 980, + 1001, 981, 982, 983, 988, 984, 989, 990, 997, 1008, + 1013, 1011, 1014, 1019, 1022, 991, 1015, 1021, 1024, 2482, + 1033, 1032, 1030, 1031, 1036, 1037, 1038, 1042, 1039, 1048, + 1050, 2482, 1043, 1051, 1055, 1061, 1054, 1052, 1069, 2482, + + 1072, 1073, 1065, 1070, 1075, 1076, 1078, 1081, 1082, 1084, + 1089, 1080, 1087, 1091, 1094, 1096, 1097, 1102, 1108, 1110, + 1106, 1112, 1109, 1115, 1114, 1120, 1117, 1118, 1119, 1122, + 2482, 216, 1123, 1124, 1125, 1136, 1146, 1143, 1130, 1140, + 1150, 1134, 1142, 1133, 1151, 1152, 1153, 1156, 1159, 1160, + 1162, 1163, 1165, 1170, 1167, 1168, 1172, 1171, 1173, 1174, + 1176, 2482, 1181, 1183, 1184, 1187, 1198, 1196, 1199, 1205, + 1201, 1206, 1212, 1203, 1207, 1215, 1219, 1216, 1218, 1220, + 1224, 2482, 1223, 1226, 1228, 1230, 1231, 1232, 1233, 1237, + 1243, 1248, 1239, 1253, 1255, 1256, 1260, 1245, 1249, 1263, + + 1264, 1266, 1267, 2482, 1275, 1276, 1273, 1284, 1277, 1269, + 1280, 1290, 1281, 1283, 1292, 1285, 1293, 1294, 1295, 1297, + 1298, 1300, 1299, 2482, 1308, 1302, 1309, 1310, 1311, 1304, + 1316, 1314, 1321, 1319, 1325, 1326, 1330, 1336, 1332, 1338, + 1339, 1340, 1343, 1351, 1357, 1355, 2482, 1353, 1345, 1349, + 1365, 1363, 1366, 1367, 1374, 1370, 1371, 1372, 1375, 1378, + 1376, 1380, 1381, 1379, 1383, 1386, 1393, 1388, 1401, 1398, + 1396, 1409, 2482, 2482, 1410, 2482, 2482, 1407, 2482, 1411, + 1412, 1413, 1415, 1417, 1419, 1421, 1422, 1424, 1425, 1426, + 1428, 1429, 2482, 1431, 1437, 1439, 1433, 1435, 1442, 1443, + + 1452, 1459, 1444, 1456, 1460, 2482, 1458, 1448, 1465, 1472, + 1474, 1461, 1469, 1471, 1477, 1478, 1481, 1482, 1484, 1485, + 1486, 1490, 1488, 1496, 1492, 1493, 1494, 1495, 1507, 1499, + 1503, 2482, 2482, 1517, 1509, 1497, 1521, 1522, 1528, 1525, + 1526, 1527, 1529, 1534, 1532, 1535, 1536, 1538, 1541, 2482, + 1544, 1550, 1543, 1552, 2482, 1556, 1542, 1551, 1558, 1562, + 2482, 1563, 1565, 1566, 1567, 1568, 1575, 1576, 1577, 1579, + 1581, 1582, 1585, 1591, 1588, 1587, 1590, 1602, 1604, 1589, + 1607, 1613, 1593, 1609, 1610, 1612, 1616, 1618, 1624, 1620, + 2482, 1626, 1622, 1632, 1625, 1634, 1636, 1629, 1635, 1637, + + 1638, 1639, 1645, 1642, 1646, 1649, 1652, 1656, 1653, 1651, + 1664, 1654, 1659, 2482, 1666, 1672, 1670, 1674, 1679, 1682, + 1676, 1673, 1683, 1684, 1686, 1688, 1689, 1691, 1699, 1701, + 1707, 1704, 1711, 1708, 1709, 1712, 1714, 1722, 1715, 1723, + 1719, 2482, 1725, 1727, 1730, 1732, 1735, 1736, 1734, 2482, + 2482, 1721, 2482, 1744, 1741, 1746, 1748, 2482, 2482, 2482, + 1747, 1754, 1750, 1751, 1758, 1763, 2482, 1753, 1764, 1766, + 1768, 1769, 1770, 1771, 1772, 2482, 1774, 1775, 1776, 1784, + 1789, 1778, 1785, 1795, 1791, 1798, 1783, 1799, 1805, 1802, + 2482, 1806, 1808, 1810, 1811, 1812, 1817, 1815, 1816, 1813, + + 1814, 1828, 2482, 1831, 1818, 1832, 1836, 1838, 1840, 1842, + 1844, 1845, 1846, 1852, 1849, 2482, 2482, 1853, 1855, 1863, + 1856, 1860, 1866, 1858, 1867, 1869, 1871, 1874, 1875, 1876, + 1877, 1878, 2482, 1879, 1880, 1883, 1884, 1887, 1892, 1888, + 1903, 1905, 1881, 1907, 1909, 2482, 1910, 1912, 1913, 1917, + 1918, 1914, 1919, 1923, 1926, 1921, 1928, 2482, 1930, 1931, + 1933, 1935, 1937, 1938, 1941, 1943, 1944, 1945, 1955, 1948, + 2482, 1949, 2482, 1951, 1961, 1968, 1964, 2482, 1956, 1966, + 2482, 1967, 1972, 1975, 1976, 1979, 1984, 1981, 1985, 1987, + 1988, 1989, 1995, 1992, 1993, 1996, 1999, 2000, 2482, 2482, + + 2003, 2482, 2482, 2011, 2482, 2482, 2013, 2482, 2015, 2482, + 2021, 2017, 2006, 1997, 2020, 2482, 2024, 2482, 2482, 2026, + 2027, 2028, 2035, 2030, 2032, 2036, 2037, 2039, 2038, 2041, + 2043, 2044, 2045, 2046, 2047, 2053, 2054, 2055, 2056, 2063, + 2482, 2057, 2068, 2482, 2074, 2076, 2064, 2066, 2077, 2078, + 2080, 2082, 2088, 2086, 2087, 2089, 2482, 2482, 2482, 2090, + 2093, 2092, 2097, 2098, 2482, 2103, 2100, 2105, 2482, 2107, + 2111, 2113, 2115, 2118, 2117, 2482, 2114, 2121, 2127, 2124, + 2131, 2135, 2141, 2138, 2143, 2482, 2140, 2144, 2482, 2146, + 2147, 2148, 2150, 2151, 2153, 2482, 2154, 2155, 2164, 2158, + + 2161, 2165, 2482, 2166, 2168, 2482, 2172, 2482, 2176, 2177, + 2179, 2184, 2186, 2180, 2187, 2193, 2190, 2191, 2482, 2482, + 2194, 2482, 2482, 2192, 2197, 2199, 2202, 2204, 2207, 2206, + 2208, 2210, 2209, 2482, 2213, 2214, 2222, 2223, 2215, 2482, + 2228, 2230, 2225, 2482, 2482, 2231, 2238, 2235, 2482, 2240, + 2243, 2241, 2233, 2247, 2249, 2251, 2253, 2254, 2256, 2255, + 2257, 2264, 2265, 2482, 2269, 2259, 2266, 2274, 2278, 2271, + 2275, 2280, 2283, 2284, 2286, 2289, 2482, 2291, 2292, 2294, + 2299, 2302, 2304, 2307, 2482, 2310, 2482, 2313, 2314, 2482, + 2482, 2295, 2316, 2317, 2482, 2318, 2482, 2320, 2325, 2326, + + 2482, 2482, 2482, 2328, 2482, 2329, 2482, 2332, 2321, 2482, + 2334, 2338, 2342, 2482, 2344, 2482, 2346, 2482, 2335, 2348, + 2482, 2482, 2482, 2482, 2350, 2339, 2356, 2351, 2482, 2353, + 2357, 2358, 2362, 2482, 2482, 2390, 2397, 2404, 2411, 2418, + 94, 2425, 2432, 2439, 2446, 2453, 2460, 2467, 2474 } ; -static yyconst flex_int16_t yy_def[1235] = +static yyconst flex_int16_t yy_def[1250] = { 0, - 1220, 1, 1221, 1221, 1222, 1222, 1223, 1223, 1224, 1224, - 1225, 1225, 1220, 1226, 1220, 1220, 1220, 1220, 1227, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1228, - 1220, 1220, 1220, 1228, 1229, 1220, 1220, 1220, 1229, 1230, - 1220, 1220, 1220, 1220, 1230, 1231, 1220, 1220, 1220, 1231, - 1232, 1220, 1233, 1220, 1232, 1232, 1226, 1226, 1220, 1234, - 1227, 1234, 1227, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1228, 1228, 1229, 1229, 1230, - 1230, 1220, 1231, 1231, 1232, 1232, 1233, 1233, 1232, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1232, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1232, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1232, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1232, 1226, 1226, - 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1220, 1220, - 1226, 1220, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1232, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1232, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1220, 1226, 1220, 1220, 1226, 1220, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1220, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1220, 1220, 1226, 1220, 1226, 1226, - 1226, 1226, 1220, 1220, 1220, 1226, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1220, 1226, 1220, 1226, 1226, 1226, 1226, - 1220, 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1220, 1220, 1226, 1220, 1220, 1226, 1220, 1220, 1226, 1220, - - 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1220, - 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1220, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1220, 1220, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1220, - 1226, 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - 1226, 1226, 1220, 1226, 1226, 1220, 1226, 1220, 1226, 1226, - - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1220, 1220, - 1226, 1220, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1220, 1226, - 1226, 1226, 1220, 1220, 1226, 1226, 1226, 1220, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1220, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1226, - 1226, 1220, 1226, 1220, 1226, 1226, 1220, 1220, 1226, 1226, - 1226, 1220, 1226, 1220, 1226, 1226, 1220, 1220, 1220, 1226, - 1220, 1226, 1220, 1226, 1226, 1220, 1226, 1226, 1226, 1226, - - 1220, 1226, 1220, 1226, 1226, 1220, 1220, 1220, 1220, 1226, - 1226, 1226, 1226, 1220, 1226, 1226, 1226, 1226, 1220, 0, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220 + 1235, 1, 1236, 1236, 1237, 1237, 1238, 1238, 1239, 1239, + 1240, 1240, 1235, 1241, 1235, 1235, 1235, 1235, 1242, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1243, + 1235, 1235, 1235, 1243, 1244, 1235, 1235, 1235, 1244, 1245, + 1235, 1235, 1235, 1235, 1245, 1246, 1235, 1235, 1235, 1246, + 1247, 1235, 1248, 1235, 1247, 1247, 1241, 1241, 1235, 1249, + 1242, 1249, 1242, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1243, 1243, 1244, 1244, 1245, + 1245, 1235, 1246, 1246, 1247, 1247, 1248, 1248, 1247, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1247, 1241, 1241, + 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, 1235, + 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1247, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, + + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1235, 1247, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1235, 1235, 1241, 1235, 1235, 1241, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, + 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, + 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, + 1235, 1241, 1235, 1241, 1241, 1241, 1241, 1235, 1235, 1235, + 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + + 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1235, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1235, 1241, 1235, 1241, 1241, 1241, 1241, 1235, 1241, 1241, + 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, + + 1241, 1235, 1235, 1241, 1235, 1235, 1241, 1235, 1241, 1235, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1235, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1235, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, 1235, 1241, + 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, + + 1241, 1241, 1235, 1241, 1241, 1235, 1241, 1235, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1235, + 1241, 1235, 1235, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1235, + 1241, 1241, 1241, 1235, 1235, 1241, 1241, 1241, 1235, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1235, 1241, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 1241, 1235, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1241, 1235, + 1235, 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1241, 1241, + + 1235, 1235, 1235, 1241, 1235, 1241, 1235, 1241, 1241, 1235, + 1241, 1241, 1241, 1235, 1241, 1235, 1241, 1235, 1241, 1241, + 1235, 1235, 1235, 1235, 1241, 1241, 1241, 1241, 1235, 1241, + 1241, 1241, 1241, 1235, 0, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235 } ; -static yyconst flex_int16_t yy_nxt[2487] = +static yyconst flex_int16_t yy_nxt[2522] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 18, 20, 21, 14, 22, 23, 24, 25, 14, @@ -925,188 +929,193 @@ static yyconst flex_int16_t yy_nxt[2487] = 68, 68, 444, 68, 449, 450, 454, 68, 452, 451, 126, 68, 453, 68, 456, 455, 461, 457, 68, 459, 68, 68, 68, 68, 462, 68, 68, 460, 458, 68, - 68, 464, 68, 470, 467, 468, 469, 68, 68, 68, - 463, 465, 68, 68, 476, 68, 471, 68, 477, 472, - 479, 68, 480, 68, 473, 68, 481, 68, 482, 771, - 474, 475, 478, 68, 483, 68, 68, 485, 484, 68, - - 488, 68, 486, 68, 487, 491, 68, 68, 490, 68, - 492, 68, 68, 68, 68, 493, 489, 68, 68, 494, - 495, 498, 497, 499, 68, 501, 500, 68, 68, 68, - 68, 496, 503, 68, 505, 68, 68, 68, 68, 506, - 68, 68, 504, 68, 68, 511, 502, 507, 68, 510, - 515, 68, 513, 68, 517, 68, 508, 512, 509, 68, - 68, 68, 514, 68, 518, 516, 521, 520, 68, 523, - 524, 68, 519, 68, 525, 68, 68, 528, 68, 530, - 68, 68, 68, 68, 522, 531, 126, 533, 68, 527, - 68, 526, 68, 68, 68, 68, 532, 542, 529, 68, - - 68, 68, 68, 68, 68, 555, 536, 534, 682, 548, - 544, 68, 549, 545, 535, 68, 547, 68, 537, 543, - 538, 546, 68, 550, 539, 553, 540, 68, 68, 68, - 551, 541, 68, 556, 68, 560, 68, 557, 561, 554, - 68, 68, 68, 68, 562, 68, 558, 68, 552, 68, - 565, 68, 68, 559, 68, 564, 566, 568, 68, 563, - 571, 68, 68, 119, 68, 68, 573, 574, 567, 572, - 68, 569, 570, 576, 578, 575, 68, 577, 579, 68, - 68, 581, 580, 68, 582, 68, 68, 68, 583, 68, - 68, 68, 586, 68, 68, 587, 588, 68, 68, 589, - - 590, 584, 68, 68, 68, 591, 68, 585, 68, 595, - 68, 596, 599, 597, 68, 592, 594, 68, 593, 598, - 600, 602, 68, 68, 68, 68, 606, 68, 68, 601, - 68, 68, 68, 68, 68, 68, 68, 68, 604, 605, - 608, 68, 603, 68, 614, 640, 607, 615, 611, 68, - 612, 609, 68, 68, 68, 617, 613, 618, 610, 616, - 68, 68, 622, 68, 68, 619, 68, 68, 620, 68, - 68, 68, 625, 68, 68, 624, 621, 68, 627, 68, - 68, 629, 623, 68, 68, 68, 630, 68, 626, 628, - 68, 635, 68, 632, 631, 68, 117, 68, 636, 638, - - 68, 633, 634, 68, 643, 642, 639, 637, 644, 68, - 645, 647, 646, 68, 648, 641, 68, 68, 68, 650, - 68, 68, 649, 653, 654, 68, 68, 68, 68, 68, - 655, 656, 68, 68, 651, 657, 68, 662, 68, 652, - 658, 68, 659, 661, 660, 68, 68, 68, 68, 670, - 68, 663, 671, 68, 667, 665, 664, 68, 673, 68, - 674, 68, 68, 68, 666, 668, 68, 675, 676, 68, - 68, 68, 68, 669, 678, 679, 672, 683, 681, 684, - 68, 686, 68, 677, 68, 685, 68, 68, 68, 680, - 68, 690, 68, 68, 68, 693, 687, 68, 68, 68, - - 68, 689, 68, 697, 68, 68, 68, 688, 68, 68, - 68, 68, 68, 691, 68, 696, 702, 692, 694, 695, - 703, 68, 68, 68, 698, 68, 700, 706, 705, 701, - 699, 708, 707, 68, 68, 704, 68, 709, 68, 711, - 68, 713, 710, 68, 68, 714, 68, 68, 715, 68, - 68, 721, 722, 712, 720, 717, 68, 68, 716, 718, - 68, 723, 68, 68, 725, 727, 68, 724, 719, 728, - 68, 729, 68, 68, 68, 732, 68, 68, 68, 731, - 68, 68, 726, 68, 68, 730, 68, 68, 740, 68, - 68, 68, 744, 733, 741, 734, 735, 736, 737, 68, - - 68, 739, 738, 742, 743, 746, 68, 68, 749, 750, - 745, 68, 747, 68, 68, 751, 68, 68, 68, 68, - 748, 752, 68, 68, 755, 68, 753, 757, 68, 68, - 759, 68, 68, 68, 68, 762, 68, 756, 68, 764, - 68, 767, 754, 758, 761, 68, 68, 760, 68, 68, - 68, 763, 766, 773, 765, 772, 68, 68, 68, 68, - 68, 68, 780, 776, 777, 768, 769, 68, 770, 774, - 775, 68, 68, 781, 779, 68, 68, 68, 68, 782, - 68, 784, 785, 786, 68, 778, 68, 68, 68, 793, - 68, 787, 68, 68, 68, 783, 788, 68, 68, 68, - - 789, 68, 791, 792, 802, 798, 68, 790, 68, 68, - 68, 68, 794, 795, 797, 68, 68, 799, 796, 803, - 800, 808, 801, 68, 805, 807, 68, 806, 804, 809, - 68, 810, 68, 68, 68, 68, 811, 68, 816, 68, - 68, 819, 68, 820, 68, 68, 68, 813, 68, 68, - 812, 821, 824, 815, 68, 817, 68, 822, 818, 814, - 825, 68, 68, 823, 68, 68, 68, 68, 826, 830, - 68, 831, 827, 68, 68, 832, 834, 68, 833, 828, - 837, 68, 829, 68, 68, 841, 68, 835, 68, 836, - 68, 838, 849, 68, 68, 839, 840, 68, 842, 844, - - 845, 68, 846, 68, 68, 68, 843, 848, 68, 68, - 853, 68, 68, 847, 68, 850, 854, 68, 855, 68, - 68, 857, 859, 856, 851, 68, 68, 68, 862, 852, - 858, 861, 68, 68, 68, 68, 68, 68, 68, 860, - 870, 68, 68, 872, 68, 866, 863, 68, 864, 68, - 68, 875, 68, 865, 68, 867, 868, 68, 869, 874, - 68, 876, 68, 878, 871, 881, 882, 873, 68, 68, - 68, 68, 68, 880, 68, 877, 884, 885, 68, 886, - 879, 887, 68, 68, 68, 68, 68, 68, 883, 895, - 888, 891, 68, 892, 68, 896, 68, 889, 898, 897, - - 68, 894, 890, 68, 899, 900, 68, 893, 901, 68, - 68, 68, 905, 902, 907, 68, 68, 68, 903, 68, - 68, 910, 68, 909, 911, 68, 68, 68, 908, 68, - 68, 68, 912, 914, 913, 68, 904, 906, 68, 915, - 68, 917, 68, 916, 922, 68, 68, 920, 925, 68, - 68, 921, 918, 919, 68, 924, 926, 68, 68, 928, - 68, 68, 923, 68, 68, 68, 68, 68, 68, 68, - 927, 936, 935, 930, 68, 931, 932, 938, 939, 68, - 933, 929, 68, 68, 68, 68, 934, 942, 941, 943, - 68, 68, 937, 68, 947, 944, 68, 68, 68, 68, - - 68, 948, 951, 68, 68, 68, 68, 68, 940, 945, - 68, 68, 950, 946, 68, 953, 949, 952, 954, 955, - 957, 68, 68, 956, 958, 962, 68, 960, 961, 68, - 959, 964, 68, 966, 68, 963, 68, 68, 965, 68, - 68, 968, 971, 68, 969, 68, 68, 68, 974, 68, - 68, 975, 68, 970, 972, 967, 973, 976, 68, 68, - 68, 68, 68, 977, 978, 68, 980, 979, 68, 68, - 68, 68, 126, 68, 987, 68, 68, 990, 991, 68, - 68, 982, 985, 68, 983, 981, 988, 68, 989, 984, - 986, 992, 68, 993, 994, 68, 995, 68, 997, 68, - - 998, 68, 996, 68, 1000, 68, 1001, 68, 999, 1002, - 68, 68, 68, 68, 1006, 1005, 68, 1004, 1008, 68, - 1010, 68, 1011, 68, 68, 1003, 68, 1013, 68, 1007, - 68, 68, 68, 68, 68, 1009, 1015, 1017, 68, 1021, - 1014, 68, 68, 1019, 68, 1022, 68, 1020, 1018, 1026, - 1012, 1016, 68, 1025, 68, 1024, 68, 1027, 68, 68, - 68, 68, 1023, 1031, 68, 1028, 1032, 1033, 68, 68, - 68, 1030, 1035, 1029, 1034, 1036, 68, 68, 68, 68, - 68, 1041, 1037, 68, 1038, 1040, 68, 68, 68, 1042, - 124, 68, 1044, 1046, 68, 1043, 1045, 68, 1039, 68, - - 1047, 1048, 68, 1049, 68, 1050, 68, 1051, 68, 1052, - 1053, 68, 68, 1056, 68, 68, 1055, 68, 68, 1054, - 1057, 68, 1059, 1058, 1060, 68, 68, 68, 68, 68, - 1061, 68, 1067, 68, 68, 68, 68, 68, 68, 1063, - 1064, 1065, 68, 1068, 1062, 68, 68, 68, 68, 68, - 1071, 1066, 1075, 1076, 1077, 68, 1070, 68, 1079, 1073, - 1074, 1069, 1072, 68, 1078, 1080, 68, 1082, 68, 68, - 68, 1087, 1081, 1086, 68, 68, 68, 68, 68, 68, - 68, 1093, 68, 1092, 68, 1084, 1083, 68, 68, 1085, - 1088, 1096, 68, 1098, 68, 68, 1089, 122, 1090, 1091, - - 68, 1099, 1094, 1097, 68, 68, 1095, 68, 68, 68, - 1102, 68, 1103, 1101, 68, 68, 1104, 1100, 1111, 1106, - 1107, 1109, 68, 68, 1105, 68, 1108, 1110, 68, 1112, - 68, 1113, 68, 68, 68, 68, 68, 1115, 1114, 1116, - 68, 1119, 68, 1117, 1118, 68, 68, 1123, 68, 68, - 68, 1120, 68, 68, 68, 1126, 1129, 68, 1124, 68, - 1125, 68, 1127, 68, 1121, 1122, 1132, 1128, 68, 1131, - 1133, 68, 1134, 68, 68, 1136, 1137, 1138, 68, 1130, - 68, 68, 68, 68, 1139, 68, 68, 68, 1140, 68, - 68, 68, 1135, 1142, 1145, 68, 68, 68, 1152, 68, - - 1150, 68, 1141, 1144, 1148, 1143, 68, 68, 68, 68, - 1146, 1153, 68, 68, 1159, 1154, 1149, 1147, 1155, 1151, - 1156, 68, 68, 68, 68, 68, 1158, 68, 1161, 1165, - 68, 1160, 68, 1162, 68, 68, 68, 1157, 68, 68, - 68, 1169, 1164, 1168, 1163, 1172, 68, 68, 1166, 1174, - 68, 68, 1173, 1167, 1177, 68, 1178, 68, 1171, 68, - 1175, 68, 68, 68, 1170, 1182, 68, 1184, 68, 68, - 121, 68, 68, 1176, 1180, 1183, 1186, 1190, 1179, 1187, - 68, 1181, 1188, 68, 1189, 68, 1191, 68, 1185, 68, - 1192, 1193, 68, 68, 68, 1196, 68, 68, 1194, 68, - - 68, 68, 1195, 68, 1197, 1198, 68, 1200, 1201, 68, - 1202, 1203, 68, 68, 1206, 68, 1204, 1199, 1207, 68, - 1208, 68, 1209, 68, 68, 68, 1211, 68, 68, 1214, - 68, 1205, 1212, 68, 68, 68, 1210, 68, 1219, 68, - 119, 117, 1215, 68, 1220, 1220, 1220, 1213, 1220, 1216, - 1220, 1217, 1220, 1220, 1218, 40, 40, 40, 40, 40, - 40, 40, 45, 45, 45, 45, 45, 45, 45, 50, - 50, 50, 50, 50, 50, 50, 56, 56, 56, 56, - 56, 56, 56, 61, 61, 61, 61, 61, 61, 61, - 71, 71, 1220, 71, 71, 71, 71, 116, 116, 1220, - - 1220, 1220, 116, 116, 118, 118, 1220, 1220, 118, 1220, - 118, 120, 1220, 1220, 1220, 1220, 1220, 120, 123, 123, - 1220, 1220, 1220, 123, 123, 125, 1220, 1220, 1220, 1220, - 1220, 125, 127, 127, 1220, 127, 127, 127, 127, 72, - 72, 1220, 72, 72, 72, 72, 13, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220 + 119, 464, 68, 470, 467, 468, 469, 68, 68, 68, + 463, 465, 68, 68, 471, 68, 472, 68, 477, 473, + 480, 68, 481, 68, 474, 478, 68, 482, 68, 484, + 475, 476, 483, 68, 479, 68, 485, 68, 68, 489, + + 68, 68, 68, 486, 68, 488, 491, 492, 68, 68, + 494, 68, 493, 68, 487, 490, 68, 68, 68, 495, + 497, 496, 498, 499, 500, 68, 501, 502, 68, 68, + 68, 68, 68, 504, 68, 506, 68, 68, 68, 68, + 507, 68, 512, 505, 68, 68, 68, 503, 508, 68, + 511, 518, 509, 514, 68, 516, 68, 510, 513, 515, + 517, 68, 68, 68, 68, 519, 68, 524, 522, 68, + 525, 68, 526, 520, 521, 68, 529, 68, 68, 531, + 68, 68, 532, 126, 68, 523, 68, 68, 68, 527, + 528, 534, 68, 68, 68, 68, 68, 543, 530, 533, + + 68, 68, 68, 68, 550, 535, 537, 117, 549, 68, + 545, 559, 536, 68, 546, 548, 538, 547, 539, 544, + 68, 551, 540, 68, 541, 68, 68, 68, 552, 542, + 554, 68, 557, 68, 68, 562, 68, 555, 556, 558, + 563, 560, 68, 68, 68, 68, 553, 564, 68, 68, + 68, 68, 561, 567, 68, 68, 566, 573, 568, 570, + 68, 565, 68, 68, 68, 579, 68, 68, 575, 569, + 574, 571, 576, 68, 572, 578, 580, 68, 577, 581, + 585, 68, 68, 582, 68, 68, 583, 68, 68, 584, + 68, 588, 68, 68, 68, 589, 68, 586, 590, 68, + + 591, 68, 592, 68, 593, 68, 68, 587, 68, 68, + 594, 597, 599, 598, 68, 601, 596, 602, 68, 595, + 68, 68, 68, 604, 68, 600, 68, 68, 608, 68, + 68, 68, 68, 603, 68, 68, 68, 68, 607, 610, + 605, 606, 68, 616, 624, 68, 68, 609, 68, 613, + 611, 614, 68, 617, 68, 68, 619, 615, 68, 612, + 618, 622, 68, 68, 68, 68, 620, 621, 68, 623, + 627, 68, 68, 626, 68, 68, 629, 68, 631, 68, + 68, 625, 68, 68, 68, 68, 68, 628, 68, 638, + 632, 630, 633, 68, 634, 68, 68, 641, 635, 68, + + 639, 636, 637, 643, 645, 646, 640, 642, 68, 647, + 68, 68, 650, 68, 651, 68, 644, 68, 68, 68, + 649, 648, 656, 652, 68, 653, 657, 68, 68, 654, + 68, 68, 68, 658, 659, 68, 68, 655, 68, 665, + 68, 660, 68, 68, 68, 68, 661, 664, 662, 68, + 663, 68, 670, 666, 673, 68, 668, 68, 667, 674, + 68, 68, 669, 671, 676, 68, 677, 68, 68, 681, + 675, 679, 68, 678, 672, 68, 68, 680, 68, 68, + 682, 68, 686, 687, 684, 68, 685, 68, 68, 68, + 688, 689, 68, 68, 683, 68, 68, 68, 690, 696, + + 691, 693, 68, 692, 68, 68, 68, 68, 700, 68, + 68, 68, 68, 694, 68, 705, 68, 697, 695, 706, + 68, 68, 68, 68, 699, 698, 68, 709, 68, 701, + 703, 68, 712, 68, 704, 702, 711, 68, 68, 708, + 707, 710, 68, 717, 68, 713, 715, 714, 68, 718, + 68, 68, 68, 719, 126, 68, 716, 68, 725, 721, + 724, 68, 720, 68, 726, 68, 722, 68, 727, 68, + 728, 729, 731, 723, 733, 68, 732, 68, 68, 68, + 730, 736, 68, 68, 68, 735, 68, 68, 68, 124, + 68, 68, 68, 68, 744, 68, 745, 734, 68, 746, + + 68, 737, 738, 739, 741, 68, 740, 743, 68, 742, + 68, 747, 750, 68, 748, 751, 753, 754, 755, 68, + 749, 68, 68, 68, 68, 68, 756, 68, 752, 68, + 761, 68, 759, 68, 68, 763, 68, 68, 68, 757, + 68, 68, 766, 68, 760, 68, 768, 68, 765, 68, + 758, 68, 771, 762, 68, 68, 68, 775, 764, 767, + 68, 769, 122, 770, 68, 772, 777, 773, 68, 776, + 68, 68, 68, 68, 774, 781, 778, 68, 780, 784, + 783, 68, 779, 68, 68, 782, 68, 785, 788, 68, + 68, 786, 791, 68, 68, 790, 68, 68, 68, 792, + + 68, 787, 68, 798, 68, 68, 68, 68, 68, 68, + 121, 68, 789, 797, 793, 68, 796, 794, 795, 68, + 804, 68, 802, 805, 799, 800, 803, 801, 809, 68, + 808, 806, 807, 68, 68, 813, 814, 68, 68, 68, + 68, 68, 810, 812, 68, 811, 68, 68, 68, 821, + 68, 824, 816, 68, 68, 68, 68, 825, 815, 817, + 818, 826, 68, 68, 68, 820, 822, 827, 68, 819, + 68, 823, 830, 828, 68, 68, 829, 68, 68, 68, + 68, 835, 831, 836, 837, 838, 832, 68, 68, 68, + 842, 68, 833, 68, 68, 834, 839, 68, 846, 68, + + 68, 68, 68, 68, 841, 68, 844, 843, 849, 845, + 852, 840, 847, 850, 68, 851, 68, 848, 853, 68, + 854, 68, 68, 858, 68, 68, 855, 859, 68, 860, + 68, 861, 68, 863, 68, 862, 68, 68, 68, 865, + 856, 68, 857, 868, 68, 867, 68, 68, 68, 68, + 68, 68, 864, 869, 68, 870, 876, 68, 68, 878, + 871, 68, 866, 68, 68, 68, 68, 872, 68, 873, + 874, 68, 875, 880, 882, 881, 68, 884, 68, 888, + 877, 879, 68, 887, 68, 68, 68, 886, 68, 883, + 891, 68, 885, 890, 68, 68, 68, 893, 68, 892, + + 68, 68, 889, 68, 897, 894, 901, 119, 902, 898, + 895, 68, 903, 68, 904, 896, 68, 900, 906, 68, + 68, 68, 899, 68, 68, 908, 68, 68, 905, 911, + 913, 68, 907, 68, 68, 68, 909, 68, 916, 68, + 915, 917, 68, 914, 68, 922, 68, 68, 68, 912, + 918, 910, 919, 68, 920, 921, 68, 923, 68, 68, + 68, 929, 68, 68, 931, 68, 68, 926, 924, 927, + 68, 925, 932, 928, 933, 68, 68, 935, 68, 930, + 68, 68, 68, 68, 68, 934, 68, 68, 68, 943, + 68, 942, 937, 938, 939, 68, 68, 68, 940, 936, + + 946, 68, 948, 68, 941, 945, 944, 68, 950, 949, + 68, 68, 954, 952, 68, 951, 947, 68, 68, 955, + 68, 958, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 953, 117, 960, 957, 959, 961, 956, 962, 963, + 68, 964, 966, 68, 68, 965, 967, 971, 68, 968, + 68, 973, 68, 970, 68, 969, 68, 68, 68, 972, + 975, 68, 976, 978, 68, 68, 981, 68, 68, 979, + 68, 977, 68, 974, 980, 68, 982, 984, 68, 68, + 983, 68, 985, 68, 987, 986, 68, 68, 68, 68, + 68, 68, 68, 68, 995, 68, 68, 998, 999, 68, + + 68, 993, 989, 1000, 68, 996, 991, 988, 997, 992, + 990, 994, 1004, 1001, 1002, 68, 1003, 68, 1005, 68, + 1006, 68, 68, 1008, 68, 68, 68, 1007, 1010, 68, + 68, 68, 1012, 68, 1013, 68, 1014, 1016, 68, 1018, + 68, 1019, 68, 68, 1009, 68, 1021, 68, 1011, 68, + 68, 1015, 1017, 68, 1023, 68, 68, 68, 1025, 1022, + 68, 68, 1029, 68, 1030, 1027, 1028, 68, 68, 1020, + 1026, 1024, 1032, 68, 1033, 1034, 68, 1035, 68, 68, + 68, 1031, 1039, 1037, 68, 1036, 1041, 68, 68, 1040, + 1038, 68, 1042, 68, 1043, 1044, 68, 68, 1045, 68, + + 68, 68, 1050, 1047, 68, 68, 1049, 68, 68, 68, + 1051, 68, 68, 1053, 1055, 68, 1056, 1046, 68, 1054, + 1048, 1052, 1057, 68, 1058, 68, 1059, 68, 1060, 68, + 1061, 1063, 68, 68, 1062, 1065, 68, 1064, 68, 68, + 68, 1067, 68, 1066, 68, 1068, 1069, 68, 68, 68, + 68, 68, 1076, 68, 1070, 68, 68, 68, 68, 68, + 1072, 1073, 1071, 1074, 1077, 68, 68, 68, 68, 68, + 1075, 1080, 1084, 1085, 1086, 68, 68, 1079, 68, 1082, + 68, 1088, 1078, 1081, 1083, 1089, 68, 1087, 68, 68, + 68, 1091, 68, 1096, 68, 1097, 1092, 1090, 68, 68, + + 68, 68, 68, 1103, 68, 68, 1094, 1093, 1102, 68, + 68, 1095, 68, 1098, 1106, 68, 1108, 68, 1099, 68, + 1109, 1100, 1101, 68, 1104, 68, 68, 68, 1105, 68, + 68, 1107, 1112, 68, 1111, 1113, 68, 1114, 1116, 68, + 68, 1115, 1119, 68, 1117, 1110, 1120, 68, 1121, 1122, + 68, 1118, 68, 68, 1123, 68, 68, 1124, 68, 68, + 68, 1126, 68, 68, 1130, 68, 68, 68, 1125, 1128, + 68, 1129, 1127, 68, 1131, 1134, 68, 68, 68, 1135, + 68, 1136, 1137, 1140, 68, 1132, 1133, 1138, 68, 68, + 1142, 68, 68, 1139, 1143, 1144, 68, 1145, 68, 68, + + 1148, 1149, 68, 68, 68, 68, 68, 1150, 1141, 68, + 1146, 68, 1151, 1147, 68, 1155, 68, 1153, 68, 68, + 68, 68, 68, 1152, 1157, 68, 68, 68, 1162, 1235, + 1154, 1160, 1156, 1164, 68, 68, 1166, 68, 1158, 1165, + 68, 1161, 68, 68, 1163, 68, 1159, 68, 1170, 1167, + 68, 1171, 68, 68, 1168, 68, 1172, 1173, 1177, 68, + 1176, 68, 1169, 68, 1174, 68, 68, 68, 68, 68, + 1178, 68, 1175, 1182, 1181, 1185, 68, 68, 68, 1179, + 1187, 68, 1186, 68, 1180, 1190, 68, 68, 1184, 1191, + 68, 1188, 68, 1183, 1195, 68, 68, 1197, 68, 1193, + + 1189, 68, 1192, 68, 68, 1201, 68, 68, 1196, 1200, + 1202, 68, 1194, 1203, 68, 1209, 68, 1199, 1205, 68, + 1198, 1204, 68, 1206, 1207, 68, 68, 1210, 68, 68, + 68, 1208, 68, 68, 1211, 1212, 1214, 68, 68, 1216, + 68, 68, 1215, 1218, 68, 1217, 68, 68, 1219, 1221, + 68, 68, 1213, 1222, 68, 1223, 68, 1224, 68, 1225, + 68, 1226, 68, 68, 1220, 68, 1227, 1229, 68, 68, + 68, 1228, 1230, 1234, 68, 1235, 1235, 1235, 1235, 1235, + 1231, 1235, 1235, 1232, 1235, 1235, 1235, 1235, 1235, 1233, + 40, 40, 40, 40, 40, 40, 40, 45, 45, 45, + + 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, + 50, 56, 56, 56, 56, 56, 56, 56, 61, 61, + 61, 61, 61, 61, 61, 71, 71, 1235, 71, 71, + 71, 71, 116, 116, 1235, 1235, 1235, 116, 116, 118, + 118, 1235, 1235, 118, 1235, 118, 120, 1235, 1235, 1235, + 1235, 1235, 120, 123, 123, 1235, 1235, 1235, 123, 123, + 125, 1235, 1235, 1235, 1235, 1235, 125, 127, 127, 1235, + 127, 127, 127, 127, 72, 72, 1235, 72, 72, 72, + 72, 13, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235 } ; -static yyconst flex_int16_t yy_chk[2487] = +static yyconst flex_int16_t yy_chk[2522] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1117,7 +1126,7 @@ static yyconst flex_int16_t yy_chk[2487] = 9, 112, 33, 6, 7, 7, 7, 7, 9, 7, 10, 10, 10, 44, 44, 7, 8, 8, 8, 8, 10, 8, 21, 33, 112, 21, 21, 8, 11, 11, - 11, 11, 11, 11, 1226, 20, 29, 20, 20, 11, + 11, 11, 11, 11, 1241, 20, 29, 20, 20, 11, 20, 29, 24, 21, 25, 20, 24, 28, 11, 12, 12, 12, 12, 12, 12, 74, 22, 22, 74, 25, @@ -1132,7 +1141,7 @@ static yyconst flex_int16_t yy_chk[2487] = 68, 75, 68, 77, 78, 75, 77, 68, 71, 79, 71, 71, 80, 71, 81, 76, 83, 84, 71, 71, - 85, 83, 78, 79, 80, 86, 87, 91, 531, 88, + 85, 83, 78, 79, 80, 86, 87, 91, 532, 88, 89, 84, 81, 88, 83, 89, 90, 94, 99, 90, 85, 94, 90, 86, 87, 92, 91, 95, 93, 96, 92, 93, 97, 98, 95, 93, 90, 100, 99, 97, @@ -1202,185 +1211,190 @@ static yyconst flex_int16_t yy_chk[2487] = 373, 375, 367, 376, 372, 373, 377, 381, 375, 374, 378, 379, 376, 380, 379, 378, 384, 380, 382, 382, 385, 384, 386, 387, 385, 394, 388, 382, 381, 395, - 400, 387, 396, 397, 394, 395, 396, 401, 397, 399, - 386, 388, 398, 405, 399, 403, 398, 408, 400, 398, - 402, 402, 403, 409, 398, 404, 404, 697, 405, 697, - 398, 398, 401, 406, 406, 407, 410, 408, 407, 411, - - 411, 412, 409, 413, 410, 414, 414, 415, 413, 416, - 415, 417, 418, 419, 421, 416, 412, 420, 423, 417, - 418, 421, 420, 422, 422, 424, 423, 425, 428, 427, - 424, 419, 427, 429, 429, 432, 430, 433, 436, 430, - 434, 435, 428, 437, 439, 435, 425, 430, 438, 434, - 439, 440, 437, 443, 441, 444, 432, 436, 433, 441, - 442, 445, 438, 446, 442, 440, 445, 444, 447, 447, - 448, 449, 443, 450, 449, 448, 451, 452, 453, 454, - 454, 456, 452, 457, 446, 455, 455, 457, 458, 451, - 459, 450, 460, 462, 463, 464, 456, 462, 453, 465, - - 466, 601, 467, 468, 473, 473, 460, 458, 601, 468, - 464, 471, 469, 465, 459, 461, 467, 469, 461, 463, - 461, 466, 470, 470, 461, 471, 461, 472, 474, 475, - 470, 461, 476, 474, 477, 478, 478, 475, 480, 472, - 482, 481, 483, 480, 481, 484, 476, 485, 470, 486, - 484, 488, 487, 477, 492, 483, 485, 487, 489, 482, - 490, 493, 494, 118, 496, 490, 493, 494, 486, 492, - 495, 488, 489, 496, 498, 495, 497, 497, 500, 498, - 501, 501, 500, 500, 501, 502, 503, 504, 502, 505, - 506, 507, 505, 508, 509, 506, 507, 511, 512, 508, - - 509, 503, 510, 513, 514, 510, 515, 504, 517, 514, - 516, 515, 518, 516, 520, 511, 513, 518, 512, 517, - 519, 521, 521, 522, 523, 519, 525, 524, 526, 520, - 525, 527, 528, 529, 532, 533, 534, 562, 523, 524, - 527, 538, 522, 539, 535, 562, 526, 536, 532, 535, - 533, 528, 536, 541, 537, 538, 534, 539, 529, 537, - 540, 542, 543, 543, 544, 540, 545, 546, 541, 547, - 549, 551, 546, 548, 553, 545, 542, 550, 548, 552, - 554, 550, 544, 557, 555, 556, 551, 558, 547, 549, - 559, 556, 561, 553, 552, 563, 116, 566, 557, 559, - - 564, 554, 555, 567, 565, 564, 561, 558, 565, 565, - 566, 568, 567, 569, 569, 563, 568, 570, 571, 571, - 572, 573, 570, 574, 575, 576, 578, 577, 574, 575, - 576, 577, 579, 581, 572, 578, 582, 581, 583, 573, - 578, 584, 578, 579, 578, 585, 586, 587, 588, 589, - 589, 582, 590, 590, 586, 584, 583, 591, 592, 592, - 593, 593, 594, 596, 585, 587, 597, 594, 595, 595, - 598, 599, 600, 588, 597, 598, 591, 603, 600, 604, - 605, 606, 603, 596, 604, 605, 606, 607, 608, 599, - 609, 610, 610, 611, 612, 613, 607, 616, 614, 615, - - 613, 609, 617, 617, 618, 619, 621, 608, 620, 624, - 625, 628, 67, 611, 627, 616, 623, 612, 614, 615, - 623, 623, 626, 630, 618, 631, 620, 626, 625, 621, - 619, 628, 627, 629, 632, 624, 633, 629, 634, 631, - 636, 633, 630, 635, 638, 634, 637, 639, 635, 640, - 646, 641, 642, 632, 640, 637, 641, 642, 636, 638, - 643, 643, 645, 647, 646, 648, 650, 645, 639, 648, - 648, 649, 649, 651, 653, 652, 654, 655, 656, 651, - 652, 658, 647, 664, 657, 650, 659, 660, 660, 661, - 665, 663, 664, 653, 661, 654, 655, 656, 657, 662, - - 668, 659, 658, 662, 663, 666, 666, 667, 669, 672, - 665, 678, 667, 669, 672, 675, 675, 679, 677, 680, - 668, 677, 681, 683, 680, 685, 678, 682, 682, 684, - 684, 687, 688, 686, 689, 687, 691, 681, 692, 689, - 693, 693, 679, 683, 686, 694, 695, 685, 696, 700, - 698, 688, 692, 699, 691, 698, 701, 702, 699, 704, - 705, 709, 707, 702, 704, 694, 695, 707, 696, 700, - 701, 706, 708, 708, 706, 710, 711, 712, 715, 709, - 716, 711, 712, 713, 713, 705, 714, 717, 718, 720, - 719, 714, 721, 722, 720, 710, 715, 723, 725, 724, - - 716, 730, 718, 719, 730, 725, 727, 717, 726, 732, - 731, 737, 721, 722, 724, 733, 734, 726, 723, 731, - 726, 735, 727, 738, 733, 734, 735, 733, 732, 736, - 736, 737, 739, 740, 741, 742, 738, 743, 743, 744, - 745, 747, 753, 748, 752, 749, 747, 740, 748, 754, - 739, 749, 752, 742, 750, 744, 755, 750, 745, 741, - 753, 756, 758, 750, 764, 759, 760, 763, 754, 759, - 761, 760, 755, 762, 765, 761, 763, 767, 762, 756, - 766, 766, 758, 768, 769, 770, 771, 764, 772, 765, - 770, 767, 778, 773, 779, 768, 769, 778, 771, 773, - - 774, 774, 775, 775, 776, 780, 772, 777, 777, 781, - 782, 782, 788, 776, 790, 779, 783, 783, 784, 784, - 785, 787, 789, 785, 780, 794, 787, 789, 792, 781, - 788, 791, 791, 792, 793, 795, 796, 797, 799, 790, - 798, 798, 800, 800, 803, 794, 793, 801, 793, 805, - 802, 803, 804, 793, 807, 795, 796, 808, 797, 802, - 810, 804, 806, 806, 799, 810, 811, 801, 812, 813, - 817, 811, 816, 808, 815, 805, 813, 814, 814, 815, - 807, 816, 818, 819, 821, 820, 822, 823, 812, 824, - 817, 820, 827, 821, 824, 825, 829, 818, 826, 825, - - 825, 823, 819, 826, 827, 828, 831, 822, 829, 830, - 828, 832, 833, 830, 835, 834, 836, 833, 831, 835, - 838, 839, 839, 838, 840, 840, 841, 843, 836, 842, - 844, 847, 841, 843, 842, 850, 832, 834, 851, 844, - 849, 849, 852, 847, 856, 857, 859, 851, 859, 856, - 862, 852, 849, 850, 858, 858, 860, 860, 863, 863, - 864, 865, 857, 866, 867, 868, 869, 871, 874, 872, - 862, 872, 871, 865, 873, 866, 867, 874, 875, 875, - 868, 864, 876, 877, 879, 878, 869, 878, 877, 879, - 880, 881, 873, 882, 883, 880, 884, 886, 887, 883, - - 899, 884, 888, 888, 894, 889, 890, 893, 876, 881, - 891, 892, 887, 882, 895, 890, 886, 889, 890, 891, - 893, 896, 898, 892, 894, 899, 900, 896, 898, 902, - 895, 901, 901, 903, 903, 900, 904, 905, 902, 906, - 907, 905, 908, 908, 906, 915, 909, 912, 913, 913, - 914, 914, 918, 907, 909, 904, 912, 915, 916, 920, - 917, 919, 921, 916, 917, 922, 919, 918, 923, 925, - 924, 927, 61, 928, 927, 929, 930, 930, 931, 931, - 933, 921, 924, 936, 922, 920, 928, 942, 929, 923, - 925, 932, 932, 933, 934, 934, 935, 935, 937, 937, - - 938, 938, 936, 940, 941, 941, 942, 944, 940, 943, - 943, 945, 946, 947, 947, 946, 949, 945, 948, 948, - 950, 950, 952, 952, 953, 944, 954, 954, 955, 947, - 957, 956, 958, 959, 960, 949, 956, 958, 961, 962, - 955, 963, 965, 960, 962, 963, 967, 961, 959, 969, - 953, 957, 968, 968, 969, 967, 970, 970, 972, 973, - 975, 976, 965, 975, 982, 970, 976, 977, 977, 979, - 978, 973, 979, 972, 978, 980, 980, 981, 983, 987, - 984, 985, 981, 986, 982, 984, 985, 988, 989, 986, - 56, 990, 988, 990, 1005, 987, 989, 1006, 983, 993, - - 993, 996, 996, 999, 999, 1001, 1001, 1003, 1004, 1004, - 1005, 1007, 1003, 1009, 1009, 1012, 1007, 1014, 1016, 1006, - 1012, 1013, 1014, 1013, 1015, 1015, 1017, 1018, 1019, 1020, - 1016, 1021, 1022, 1022, 1023, 1024, 1025, 1026, 1027, 1018, - 1019, 1020, 1029, 1023, 1017, 1028, 1034, 1030, 1031, 1039, - 1026, 1021, 1030, 1031, 1032, 1032, 1025, 1035, 1035, 1028, - 1029, 1024, 1027, 1038, 1034, 1037, 1037, 1039, 1040, 1041, - 1042, 1044, 1038, 1043, 1043, 1045, 1044, 1046, 1047, 1051, - 1052, 1053, 1053, 1052, 1058, 1041, 1040, 1054, 1055, 1042, - 1045, 1057, 1057, 1059, 1059, 1062, 1046, 51, 1047, 1051, - - 1061, 1061, 1054, 1058, 1063, 1064, 1055, 1065, 1066, 1068, - 1064, 1071, 1065, 1063, 1069, 1070, 1066, 1062, 1074, 1069, - 1070, 1072, 1072, 1074, 1068, 1079, 1071, 1073, 1073, 1075, - 1075, 1076, 1076, 1078, 1082, 1083, 1081, 1079, 1078, 1081, - 1084, 1084, 1085, 1082, 1083, 1087, 1088, 1089, 1089, 1090, - 1092, 1085, 1091, 1094, 1095, 1092, 1097, 1097, 1090, 1099, - 1091, 1105, 1094, 1101, 1087, 1088, 1101, 1095, 1100, 1100, - 1102, 1102, 1103, 1103, 1104, 1105, 1106, 1107, 1107, 1099, - 1108, 1106, 1111, 1114, 1108, 1115, 1116, 1117, 1111, 1118, - 1119, 1120, 1104, 1115, 1118, 1121, 1122, 1124, 1126, 1126, - - 1124, 1125, 1114, 1117, 1121, 1116, 1128, 1127, 1131, 1130, - 1119, 1127, 1132, 1136, 1136, 1128, 1122, 1120, 1130, 1125, - 1131, 1135, 1137, 1139, 1140, 1141, 1135, 1142, 1139, 1143, - 1143, 1137, 1144, 1140, 1145, 1146, 1147, 1132, 1148, 1149, - 1154, 1147, 1142, 1146, 1141, 1150, 1150, 1151, 1144, 1153, - 1153, 1155, 1151, 1145, 1156, 1156, 1157, 1157, 1149, 1158, - 1154, 1160, 1159, 1162, 1148, 1161, 1161, 1163, 1163, 1164, - 50, 1166, 1170, 1155, 1159, 1162, 1166, 1170, 1158, 1167, - 1167, 1160, 1168, 1168, 1169, 1169, 1171, 1171, 1164, 1173, - 1173, 1175, 1175, 1176, 1179, 1180, 1180, 1185, 1176, 1181, - - 1183, 1195, 1179, 1186, 1181, 1183, 1192, 1186, 1190, 1190, - 1192, 1194, 1194, 1197, 1198, 1198, 1195, 1185, 1199, 1199, - 1200, 1200, 1202, 1202, 1204, 1205, 1205, 1211, 1210, 1212, - 1212, 1197, 1210, 1213, 1215, 1217, 1204, 1216, 1218, 1218, - 45, 40, 1213, 14, 13, 0, 0, 1211, 0, 1215, - 0, 1216, 0, 0, 1217, 1221, 1221, 1221, 1221, 1221, - 1221, 1221, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1223, - 1223, 1223, 1223, 1223, 1223, 1223, 1224, 1224, 1224, 1224, - 1224, 1224, 1224, 1225, 1225, 1225, 1225, 1225, 1225, 1225, - 1227, 1227, 0, 1227, 1227, 1227, 1227, 1228, 1228, 0, - - 0, 0, 1228, 1228, 1229, 1229, 0, 0, 1229, 0, - 1229, 1230, 0, 0, 0, 0, 0, 1230, 1231, 1231, - 0, 0, 0, 1231, 1231, 1232, 0, 0, 0, 0, - 0, 1232, 1233, 1233, 0, 1233, 1233, 1233, 1233, 1234, - 1234, 0, 1234, 1234, 1234, 1234, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, - 1220, 1220, 1220, 1220, 1220, 1220 + 118, 387, 396, 397, 394, 395, 396, 400, 397, 401, + 386, 388, 398, 399, 398, 403, 398, 405, 399, 398, + 402, 402, 403, 408, 398, 400, 404, 404, 406, 406, + 398, 398, 405, 407, 401, 409, 407, 410, 411, 411, + + 412, 413, 419, 408, 416, 410, 413, 414, 414, 415, + 416, 417, 415, 418, 409, 412, 421, 420, 423, 417, + 419, 418, 420, 421, 422, 422, 423, 424, 425, 428, + 427, 432, 424, 427, 429, 429, 433, 430, 435, 436, + 430, 434, 435, 428, 437, 438, 440, 425, 430, 439, + 434, 441, 432, 437, 443, 439, 441, 433, 436, 438, + 440, 442, 444, 445, 446, 442, 447, 447, 445, 449, + 448, 450, 449, 443, 444, 448, 452, 451, 453, 454, + 454, 452, 455, 455, 456, 446, 458, 457, 459, 450, + 451, 457, 460, 462, 463, 464, 466, 462, 453, 456, + + 465, 467, 468, 476, 469, 458, 460, 116, 468, 469, + 464, 476, 459, 461, 465, 467, 461, 466, 461, 463, + 470, 470, 461, 472, 461, 471, 473, 477, 470, 461, + 471, 474, 474, 478, 475, 479, 479, 472, 473, 475, + 481, 477, 483, 484, 482, 481, 470, 482, 485, 486, + 487, 489, 478, 485, 488, 493, 484, 491, 486, 488, + 490, 483, 491, 494, 498, 498, 497, 495, 494, 487, + 493, 489, 495, 496, 490, 497, 499, 503, 496, 501, + 503, 499, 504, 501, 501, 502, 502, 505, 506, 502, + 507, 506, 512, 508, 509, 507, 510, 504, 508, 513, + + 509, 511, 510, 514, 511, 67, 515, 505, 516, 517, + 512, 515, 517, 516, 518, 519, 514, 520, 521, 513, + 519, 523, 520, 522, 522, 518, 525, 524, 526, 527, + 528, 529, 526, 521, 530, 533, 534, 535, 525, 528, + 523, 524, 539, 536, 544, 544, 542, 527, 536, 533, + 529, 534, 540, 537, 543, 538, 539, 535, 537, 530, + 538, 542, 541, 545, 546, 547, 540, 541, 548, 543, + 547, 549, 550, 546, 551, 552, 549, 553, 551, 555, + 556, 545, 554, 558, 557, 559, 560, 548, 561, 558, + 552, 550, 553, 563, 554, 564, 565, 561, 555, 566, + + 559, 556, 557, 564, 566, 567, 560, 563, 568, 567, + 567, 569, 570, 571, 571, 574, 565, 570, 572, 575, + 569, 568, 576, 572, 573, 573, 577, 576, 578, 574, + 579, 577, 580, 578, 579, 583, 581, 575, 584, 583, + 585, 580, 586, 587, 588, 589, 580, 581, 580, 590, + 580, 593, 588, 584, 591, 591, 586, 598, 585, 592, + 592, 599, 587, 589, 594, 594, 595, 595, 596, 599, + 593, 597, 597, 596, 590, 600, 601, 598, 602, 603, + 600, 610, 605, 606, 602, 607, 603, 605, 606, 609, + 607, 608, 611, 613, 601, 614, 608, 616, 609, 615, + + 610, 612, 612, 611, 615, 617, 618, 619, 619, 620, + 621, 623, 622, 613, 626, 625, 630, 616, 614, 625, + 625, 627, 628, 629, 618, 617, 632, 628, 631, 620, + 622, 634, 631, 633, 623, 621, 630, 635, 636, 627, + 626, 629, 637, 636, 639, 632, 634, 633, 638, 637, + 640, 641, 642, 638, 61, 643, 635, 649, 644, 640, + 643, 650, 639, 644, 645, 648, 641, 646, 646, 645, + 648, 649, 651, 642, 652, 652, 651, 651, 653, 654, + 650, 655, 656, 657, 658, 654, 655, 659, 661, 56, + 660, 664, 662, 663, 663, 665, 664, 653, 666, 665, + + 668, 656, 657, 658, 660, 667, 659, 662, 671, 661, + 670, 666, 669, 669, 667, 670, 672, 675, 678, 678, + 668, 672, 675, 680, 681, 682, 680, 683, 671, 684, + 685, 685, 683, 686, 687, 687, 688, 689, 690, 681, + 691, 692, 690, 694, 684, 697, 692, 698, 689, 695, + 682, 696, 696, 686, 699, 700, 703, 700, 688, 691, + 708, 694, 51, 695, 701, 697, 702, 698, 704, 701, + 707, 702, 705, 712, 699, 707, 703, 709, 705, 710, + 709, 713, 704, 714, 710, 708, 711, 711, 714, 715, + 716, 712, 717, 717, 718, 716, 719, 720, 721, 718, + + 723, 713, 722, 724, 725, 726, 727, 728, 724, 736, + 50, 730, 715, 723, 719, 731, 722, 720, 721, 729, + 730, 735, 728, 730, 725, 726, 729, 727, 736, 734, + 735, 731, 734, 737, 738, 739, 740, 740, 741, 742, + 739, 743, 737, 738, 745, 737, 744, 746, 747, 747, + 748, 751, 742, 749, 757, 753, 751, 752, 741, 743, + 744, 753, 752, 758, 754, 746, 748, 754, 756, 745, + 759, 749, 757, 754, 760, 762, 756, 763, 764, 765, + 766, 763, 758, 764, 765, 766, 759, 767, 768, 769, + 770, 770, 760, 771, 772, 762, 767, 773, 774, 776, + + 775, 780, 777, 774, 769, 783, 772, 771, 777, 773, + 780, 768, 775, 778, 778, 779, 779, 776, 781, 781, + 782, 784, 785, 786, 786, 782, 783, 787, 787, 788, + 788, 789, 790, 792, 793, 790, 789, 795, 792, 794, + 784, 798, 785, 797, 794, 796, 796, 799, 797, 800, + 801, 802, 793, 798, 804, 798, 803, 803, 805, 805, + 798, 806, 795, 810, 807, 809, 812, 799, 808, 800, + 801, 813, 802, 807, 809, 808, 811, 811, 815, 816, + 804, 806, 817, 815, 816, 822, 818, 813, 821, 810, + 819, 819, 812, 818, 820, 823, 824, 821, 825, 820, + + 826, 827, 817, 828, 825, 822, 829, 45, 830, 826, + 823, 829, 830, 830, 831, 824, 832, 828, 833, 831, + 834, 835, 827, 833, 836, 835, 837, 839, 832, 838, + 840, 841, 834, 852, 838, 840, 836, 843, 844, 844, + 843, 845, 845, 841, 846, 852, 849, 847, 848, 839, + 846, 837, 847, 855, 848, 849, 854, 854, 856, 861, + 857, 862, 863, 864, 864, 868, 862, 856, 854, 857, + 865, 855, 865, 861, 866, 866, 869, 869, 870, 863, + 871, 872, 873, 874, 875, 868, 877, 878, 879, 878, + 882, 877, 871, 872, 873, 887, 880, 883, 874, 870, + + 881, 881, 883, 885, 875, 880, 879, 884, 885, 884, + 886, 888, 889, 887, 890, 886, 882, 889, 892, 890, + 893, 894, 894, 895, 896, 900, 901, 898, 899, 897, + 905, 888, 40, 896, 893, 895, 896, 892, 897, 898, + 902, 899, 901, 904, 906, 900, 902, 907, 907, 904, + 908, 909, 909, 906, 910, 905, 911, 912, 913, 908, + 911, 915, 912, 914, 914, 918, 919, 919, 921, 915, + 924, 913, 922, 910, 918, 920, 920, 922, 923, 925, + 921, 926, 923, 927, 925, 924, 928, 929, 930, 931, + 932, 934, 935, 943, 934, 936, 937, 937, 938, 938, + + 940, 931, 927, 939, 939, 935, 929, 926, 936, 930, + 928, 932, 943, 940, 941, 941, 942, 942, 944, 944, + 945, 945, 947, 948, 948, 949, 952, 947, 950, 950, + 951, 953, 952, 956, 953, 954, 954, 955, 955, 957, + 957, 959, 959, 960, 949, 961, 961, 962, 951, 963, + 964, 954, 956, 965, 963, 966, 967, 968, 965, 962, + 970, 972, 969, 974, 970, 967, 968, 969, 979, 960, + 966, 964, 974, 975, 975, 976, 977, 977, 980, 982, + 976, 972, 982, 979, 983, 977, 984, 984, 985, 983, + 980, 986, 985, 988, 986, 987, 987, 989, 988, 990, + + 991, 992, 993, 990, 994, 995, 992, 993, 996, 1014, + 994, 997, 998, 996, 998, 1001, 1001, 989, 1013, 997, + 991, 995, 1004, 1004, 1007, 1007, 1009, 1009, 1011, 1012, + 1012, 1014, 1015, 1011, 1013, 1017, 1017, 1015, 1020, 1021, + 1022, 1021, 1024, 1020, 1025, 1022, 1023, 1023, 1026, 1027, + 1029, 1028, 1030, 1030, 1024, 1031, 1032, 1033, 1034, 1035, + 1026, 1027, 1025, 1028, 1031, 1036, 1037, 1038, 1039, 1042, + 1029, 1034, 1038, 1039, 1040, 1040, 1047, 1033, 1048, 1036, + 1043, 1043, 1032, 1035, 1037, 1045, 1045, 1042, 1046, 1049, + 1050, 1047, 1051, 1052, 1052, 1053, 1048, 1046, 1054, 1055, + + 1053, 1056, 1060, 1062, 1062, 1061, 1050, 1049, 1061, 1063, + 1064, 1051, 1067, 1054, 1066, 1066, 1068, 1068, 1055, 1070, + 1070, 1056, 1060, 1071, 1063, 1072, 1077, 1073, 1064, 1075, + 1074, 1067, 1073, 1078, 1072, 1074, 1080, 1075, 1078, 1079, + 14, 1077, 1081, 1081, 1079, 1071, 1082, 1082, 1083, 1084, + 1084, 1080, 1087, 1083, 1085, 1085, 1088, 1087, 1090, 1091, + 1092, 1090, 1093, 1094, 1094, 1095, 1097, 1098, 1088, 1092, + 1100, 1093, 1091, 1101, 1095, 1099, 1099, 1102, 1104, 1100, + 1105, 1101, 1102, 1107, 1107, 1097, 1098, 1104, 1109, 1110, + 1110, 1111, 1114, 1105, 1111, 1112, 1112, 1113, 1113, 1115, + + 1116, 1117, 1117, 1118, 1124, 1116, 1121, 1118, 1109, 1125, + 1114, 1126, 1121, 1115, 1127, 1127, 1128, 1125, 1130, 1129, + 1131, 1133, 1132, 1124, 1129, 1135, 1136, 1139, 1135, 13, + 1126, 1132, 1128, 1137, 1137, 1138, 1139, 1143, 1130, 1138, + 1141, 1133, 1142, 1146, 1136, 1153, 1131, 1148, 1146, 1141, + 1147, 1147, 1150, 1152, 1142, 1151, 1148, 1150, 1154, 1154, + 1153, 1155, 1143, 1156, 1151, 1157, 1158, 1160, 1159, 1161, + 1155, 1166, 1152, 1159, 1158, 1162, 1162, 1163, 1167, 1156, + 1165, 1165, 1163, 1170, 1157, 1168, 1168, 1171, 1161, 1169, + 1169, 1166, 1172, 1160, 1173, 1173, 1174, 1175, 1175, 1171, + + 1167, 1176, 1170, 1178, 1179, 1180, 1180, 1192, 1174, 1179, + 1181, 1181, 1172, 1182, 1182, 1192, 1183, 1178, 1184, 1184, + 1176, 1183, 1186, 1186, 1188, 1188, 1189, 1193, 1193, 1194, + 1196, 1189, 1198, 1209, 1194, 1196, 1199, 1199, 1200, 1204, + 1204, 1206, 1200, 1208, 1208, 1206, 1211, 1219, 1209, 1212, + 1212, 1226, 1198, 1213, 1213, 1215, 1215, 1217, 1217, 1219, + 1220, 1220, 1225, 1228, 1211, 1230, 1225, 1227, 1227, 1231, + 1232, 1226, 1228, 1233, 1233, 0, 0, 0, 0, 0, + 1230, 0, 0, 1231, 0, 0, 0, 0, 0, 1232, + 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237, 1237, + + 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1238, + 1238, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1240, 1240, + 1240, 1240, 1240, 1240, 1240, 1242, 1242, 0, 1242, 1242, + 1242, 1242, 1243, 1243, 0, 0, 0, 1243, 1243, 1244, + 1244, 0, 0, 1244, 0, 1244, 1245, 0, 0, 0, + 0, 0, 1245, 1246, 1246, 0, 0, 0, 1246, 1246, + 1247, 0, 0, 0, 0, 0, 1247, 1248, 1248, 0, + 1248, 1248, 1248, 1248, 1249, 1249, 0, 1249, 1249, 1249, + 1249, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235 } ; static yy_state_type yy_last_accepting_state; @@ -1504,7 +1518,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 1506 "" +#line 1520 "" #define INITIAL 0 #define quotedstring 1 @@ -1691,7 +1705,7 @@ YY_DECL #line 120 "util/configlexer.lex" -#line 1693 "" +#line 1707 "" if ( !(yy_init) ) { @@ -1750,13 +1764,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 >= 1221 ) + if ( yy_current_state >= 1236 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2447 ); + while ( yy_base[yy_current_state] != 2482 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -2021,349 +2035,354 @@ YY_RULE_SETUP case 48: YY_RULE_SETUP #line 171 "util/configlexer.lex" -{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } +{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } YY_BREAK case 49: YY_RULE_SETUP #line 172 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } +{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } YY_BREAK case 50: YY_RULE_SETUP #line 173 "util/configlexer.lex" -{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } +{ YDVAR(1, VAR_USE_CAPS_FOR_ID) } YY_BREAK case 51: YY_RULE_SETUP #line 174 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_ADDRESS) } +{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } YY_BREAK case 52: YY_RULE_SETUP #line 175 "util/configlexer.lex" -{ YDVAR(1, VAR_PRIVATE_DOMAIN) } +{ YDVAR(1, VAR_PRIVATE_ADDRESS) } YY_BREAK case 53: YY_RULE_SETUP #line 176 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH_KEY) } +{ YDVAR(1, VAR_PRIVATE_DOMAIN) } YY_BREAK case 54: YY_RULE_SETUP #line 177 "util/configlexer.lex" -{ YDVAR(1, VAR_PREFETCH) } +{ YDVAR(1, VAR_PREFETCH_KEY) } YY_BREAK case 55: YY_RULE_SETUP #line 178 "util/configlexer.lex" -{ YDVAR(0, VAR_STUB_ZONE) } +{ YDVAR(1, VAR_PREFETCH) } YY_BREAK case 56: YY_RULE_SETUP #line 179 "util/configlexer.lex" -{ YDVAR(1, VAR_NAME) } +{ YDVAR(0, VAR_STUB_ZONE) } YY_BREAK case 57: YY_RULE_SETUP #line 180 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_ADDR) } +{ YDVAR(1, VAR_NAME) } YY_BREAK case 58: YY_RULE_SETUP #line 181 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_HOST) } +{ YDVAR(1, VAR_STUB_ADDR) } YY_BREAK case 59: YY_RULE_SETUP #line 182 "util/configlexer.lex" -{ YDVAR(1, VAR_STUB_PRIME) } +{ YDVAR(1, VAR_STUB_HOST) } YY_BREAK case 60: YY_RULE_SETUP #line 183 "util/configlexer.lex" -{ YDVAR(0, VAR_FORWARD_ZONE) } +{ YDVAR(1, VAR_STUB_PRIME) } YY_BREAK case 61: YY_RULE_SETUP #line 184 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_ADDR) } +{ YDVAR(0, VAR_FORWARD_ZONE) } YY_BREAK case 62: YY_RULE_SETUP #line 185 "util/configlexer.lex" -{ YDVAR(1, VAR_FORWARD_HOST) } +{ YDVAR(1, VAR_FORWARD_ADDR) } YY_BREAK case 63: YY_RULE_SETUP #line 186 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } +{ YDVAR(1, VAR_FORWARD_HOST) } YY_BREAK case 64: YY_RULE_SETUP #line 187 "util/configlexer.lex" -{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } +{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) } YY_BREAK case 65: YY_RULE_SETUP #line 188 "util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL) } +{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) } YY_BREAK case 66: YY_RULE_SETUP #line 189 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_IDENTITY) } +{ YDVAR(2, VAR_ACCESS_CONTROL) } YY_BREAK case 67: YY_RULE_SETUP #line 190 "util/configlexer.lex" -{ YDVAR(1, VAR_HIDE_VERSION) } +{ YDVAR(1, VAR_HIDE_IDENTITY) } YY_BREAK case 68: YY_RULE_SETUP #line 191 "util/configlexer.lex" -{ YDVAR(1, VAR_IDENTITY) } +{ YDVAR(1, VAR_HIDE_VERSION) } YY_BREAK case 69: YY_RULE_SETUP #line 192 "util/configlexer.lex" -{ YDVAR(1, VAR_VERSION) } +{ YDVAR(1, VAR_IDENTITY) } YY_BREAK case 70: YY_RULE_SETUP #line 193 "util/configlexer.lex" -{ YDVAR(1, VAR_MODULE_CONF) } +{ YDVAR(1, VAR_VERSION) } YY_BREAK case 71: YY_RULE_SETUP #line 194 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR) } +{ YDVAR(1, VAR_MODULE_CONF) } YY_BREAK case 72: YY_RULE_SETUP #line 195 "util/configlexer.lex" -{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR) } YY_BREAK case 73: YY_RULE_SETUP #line 196 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_DLV_ANCHOR_FILE) } YY_BREAK case 74: YY_RULE_SETUP #line 197 "util/configlexer.lex" -{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } +{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) } YY_BREAK case 75: YY_RULE_SETUP #line 198 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } +{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) } YY_BREAK case 76: YY_RULE_SETUP #line 199 "util/configlexer.lex" -{ YDVAR(1, VAR_TRUST_ANCHOR) } +{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) } YY_BREAK case 77: YY_RULE_SETUP #line 200 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } +{ YDVAR(1, VAR_TRUST_ANCHOR) } YY_BREAK case 78: YY_RULE_SETUP #line 201 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } +{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) } YY_BREAK case 79: YY_RULE_SETUP #line 202 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) } YY_BREAK case 80: YY_RULE_SETUP #line 203 "util/configlexer.lex" -{ YDVAR(1, VAR_BOGUS_TTL) } +{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) } YY_BREAK case 81: YY_RULE_SETUP #line 204 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } +{ YDVAR(1, VAR_BOGUS_TTL) } YY_BREAK case 82: YY_RULE_SETUP #line 205 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } +{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) } YY_BREAK case 83: YY_RULE_SETUP #line 206 "util/configlexer.lex" -{ YDVAR(1, VAR_VAL_LOG_LEVEL) } +{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) } YY_BREAK case 84: YY_RULE_SETUP #line 207 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SIZE) } +{ YDVAR(1, VAR_VAL_LOG_LEVEL) } YY_BREAK case 85: YY_RULE_SETUP #line 208 "util/configlexer.lex" -{ YDVAR(1, VAR_KEY_CACHE_SLABS) } +{ YDVAR(1, VAR_KEY_CACHE_SIZE) } YY_BREAK case 86: YY_RULE_SETUP #line 209 "util/configlexer.lex" -{ YDVAR(1, VAR_NEG_CACHE_SIZE) } +{ YDVAR(1, VAR_KEY_CACHE_SLABS) } YY_BREAK case 87: YY_RULE_SETUP #line 210 "util/configlexer.lex" -{ - YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } +{ YDVAR(1, VAR_NEG_CACHE_SIZE) } YY_BREAK case 88: YY_RULE_SETUP -#line 212 "util/configlexer.lex" -{ YDVAR(1, VAR_ADD_HOLDDOWN) } +#line 211 "util/configlexer.lex" +{ + YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) } YY_BREAK case 89: YY_RULE_SETUP #line 213 "util/configlexer.lex" -{ YDVAR(1, VAR_DEL_HOLDDOWN) } +{ YDVAR(1, VAR_ADD_HOLDDOWN) } YY_BREAK case 90: YY_RULE_SETUP #line 214 "util/configlexer.lex" -{ YDVAR(1, VAR_KEEP_MISSING) } +{ YDVAR(1, VAR_DEL_HOLDDOWN) } YY_BREAK case 91: YY_RULE_SETUP #line 215 "util/configlexer.lex" -{ YDVAR(1, VAR_USE_SYSLOG) } +{ YDVAR(1, VAR_KEEP_MISSING) } YY_BREAK case 92: YY_RULE_SETUP #line 216 "util/configlexer.lex" -{ YDVAR(1, VAR_LOG_TIME_ASCII) } +{ YDVAR(1, VAR_USE_SYSLOG) } YY_BREAK case 93: YY_RULE_SETUP #line 217 "util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_TIME_ASCII) } YY_BREAK case 94: YY_RULE_SETUP #line 218 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 95: YY_RULE_SETUP #line 219 "util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 96: YY_RULE_SETUP #line 220 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 97: YY_RULE_SETUP #line 221 "util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 98: YY_RULE_SETUP #line 222 "util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 99: YY_RULE_SETUP #line 223 "util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 100: YY_RULE_SETUP #line 224 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 101: YY_RULE_SETUP #line 225 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 102: YY_RULE_SETUP #line 226 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 103: YY_RULE_SETUP #line 227 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 104: YY_RULE_SETUP #line 228 "util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 105: YY_RULE_SETUP #line 229 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 106: YY_RULE_SETUP #line 230 "util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 107: YY_RULE_SETUP #line 231 "util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 108: YY_RULE_SETUP #line 232 "util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 109: YY_RULE_SETUP #line 233 "util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 110: -/* rule 110 can match eol */ YY_RULE_SETUP #line 234 "util/configlexer.lex" +{ YDVAR(1, VAR_DOMAIN_INSECURE) } + YY_BREAK +case 111: +/* rule 111 can match eol */ +YY_RULE_SETUP +#line 235 "util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 111: +case 112: YY_RULE_SETUP -#line 237 "util/configlexer.lex" +#line 238 "util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 238 "util/configlexer.lex" +#line 239 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 112: +case 113: YY_RULE_SETUP -#line 243 "util/configlexer.lex" +#line 244 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 113: -/* rule 113 can match eol */ +case 114: +/* rule 114 can match eol */ YY_RULE_SETUP -#line 244 "util/configlexer.lex" +#line 245 "util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 114: +case 115: YY_RULE_SETUP -#line 246 "util/configlexer.lex" +#line 247 "util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2376,34 +2395,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 115: +case 116: YY_RULE_SETUP -#line 258 "util/configlexer.lex" +#line 259 "util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 259 "util/configlexer.lex" +#line 260 "util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 116: +case 117: YY_RULE_SETUP -#line 264 "util/configlexer.lex" +#line 265 "util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 117: -/* rule 117 can match eol */ +case 118: +/* rule 118 can match eol */ YY_RULE_SETUP -#line 265 "util/configlexer.lex" +#line 266 "util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 118: +case 119: YY_RULE_SETUP -#line 267 "util/configlexer.lex" +#line 268 "util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -2416,38 +2435,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 119: +case 120: YY_RULE_SETUP -#line 279 "util/configlexer.lex" +#line 280 "util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 281 "util/configlexer.lex" +#line 282 "util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 120: -YY_RULE_SETUP -#line 285 "util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 121: -/* rule 121 can match eol */ YY_RULE_SETUP #line 286 "util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 122: +/* rule 122 can match eol */ YY_RULE_SETUP #line 287 "util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 123: YY_RULE_SETUP #line 288 "util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 124: +YY_RULE_SETUP +#line 289 "util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include(yytext); @@ -2455,27 +2474,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 293 "util/configlexer.lex" +#line 294 "util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 124: +case 125: YY_RULE_SETUP -#line 297 "util/configlexer.lex" +#line 298 "util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 125: -/* rule 125 can match eol */ +case 126: +/* rule 126 can match eol */ YY_RULE_SETUP -#line 298 "util/configlexer.lex" +#line 299 "util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 126: +case 127: YY_RULE_SETUP -#line 300 "util/configlexer.lex" +#line 301 "util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -2485,7 +2504,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 306 "util/configlexer.lex" +#line 307 "util/configlexer.lex" { yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ if (config_include_stack_ptr == 0) { @@ -2496,33 +2515,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 127: +case 128: YY_RULE_SETUP -#line 316 "util/configlexer.lex" +#line 317 "util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 128: +case 129: YY_RULE_SETUP -#line 320 "util/configlexer.lex" +#line 321 "util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 129: +case 130: YY_RULE_SETUP -#line 324 "util/configlexer.lex" +#line 325 "util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 130: +case 131: YY_RULE_SETUP -#line 328 "util/configlexer.lex" +#line 329 "util/configlexer.lex" ECHO; YY_BREAK -#line 2524 "" +#line 2543 "" case YY_END_OF_BUFFER: { @@ -2812,7 +2831,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 >= 1221 ) + if ( yy_current_state >= 1236 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2840,11 +2859,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 >= 1221 ) + if ( yy_current_state >= 1236 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1220); + yy_is_jam = (yy_current_state == 1235); return yy_is_jam ? 0 : yy_current_state; } @@ -3481,7 +3500,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 328 "util/configlexer.lex" +#line 329 "util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 43d82f72d..5ccb9ec68 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -168,6 +168,7 @@ harden-short-bufsize{COLON} { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) } harden-large-queries{COLON} { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) } harden-glue{COLON} { YDVAR(1, VAR_HARDEN_GLUE) } harden-dnssec-stripped{COLON} { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) } +harden-below-nxdomain{COLON} { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) } harden-referral-path{COLON} { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) } use-caps-for-id{COLON} { YDVAR(1, VAR_USE_CAPS_FOR_ID) } unwanted-reply-threshold{COLON} { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) } diff --git a/util/configparser.c b/util/configparser.c index d202af2a1..558b5eec1 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -238,7 +238,8 @@ extern struct config_parser_state* cfg_parser; VAR_EDNS_BUFFER_SIZE = 369, VAR_PREFETCH = 370, VAR_PREFETCH_KEY = 371, - VAR_SO_SNDBUF = 372 + VAR_SO_SNDBUF = 372, + VAR_HARDEN_BELOW_NXDOMAIN = 373 }; #endif /* Tokens. */ @@ -357,6 +358,7 @@ extern struct config_parser_state* cfg_parser; #define VAR_PREFETCH 370 #define VAR_PREFETCH_KEY 371 #define VAR_SO_SNDBUF 372 +#define VAR_HARDEN_BELOW_NXDOMAIN 373 @@ -373,7 +375,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 377 "util/configparser.c" +#line 379 "util/configparser.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -385,7 +387,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 389 "util/configparser.c" +#line 391 "util/configparser.c" #ifdef short # undef short @@ -600,20 +602,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 214 +#define YYLAST 216 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 118 +#define YYNTOKENS 119 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 121 +#define YYNNTS 122 /* YYNRULES -- Number of rules. */ -#define YYNRULES 229 +#define YYNRULES 231 /* YYNRULES -- Number of states. */ -#define YYNSTATES 335 +#define YYNSTATES 338 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 372 +#define YYMAXUTOK 373 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -658,7 +660,7 @@ static const yytype_uint8 yytranslate[] = 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 + 115, 116, 117, 118 }; #if YYDEBUG @@ -676,81 +678,83 @@ static const yytype_uint16 yyprhs[] = 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, - 204, 206, 209, 210, 212, 214, 216, 218, 220, 223, - 224, 226, 228, 230, 233, 236, 239, 242, 245, 248, - 251, 254, 257, 260, 263, 266, 269, 272, 275, 278, - 281, 284, 287, 290, 293, 296, 299, 302, 305, 308, - 311, 314, 317, 320, 323, 326, 329, 332, 335, 338, - 341, 344, 347, 350, 353, 356, 359, 362, 365, 368, - 371, 374, 377, 380, 383, 386, 389, 392, 395, 398, - 401, 404, 407, 410, 413, 416, 419, 422, 425, 428, - 431, 435, 438, 441, 444, 447, 450, 453, 456, 459, - 462, 465, 468, 471, 474, 477, 480, 483, 486, 490, - 493, 496, 499, 502, 505, 508, 511, 514, 517, 519, - 522, 523, 525, 527, 529, 531, 533, 535, 537, 540, - 543, 546, 549, 552, 555, 558, 560, 563, 564, 566 + 204, 206, 208, 211, 212, 214, 216, 218, 220, 222, + 225, 226, 228, 230, 232, 235, 238, 241, 244, 247, + 250, 253, 256, 259, 262, 265, 268, 271, 274, 277, + 280, 283, 286, 289, 292, 295, 298, 301, 304, 307, + 310, 313, 316, 319, 322, 325, 328, 331, 334, 337, + 340, 343, 346, 349, 352, 355, 358, 361, 364, 367, + 370, 373, 376, 379, 382, 385, 388, 391, 394, 397, + 400, 403, 406, 409, 412, 415, 418, 421, 424, 427, + 430, 433, 436, 440, 443, 446, 449, 452, 455, 458, + 461, 464, 467, 470, 473, 476, 479, 482, 485, 488, + 491, 495, 498, 501, 504, 507, 510, 513, 516, 519, + 522, 524, 527, 528, 530, 532, 534, 536, 538, 540, + 542, 545, 548, 551, 554, 557, 560, 563, 565, 568, + 569, 571 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 119, 0, -1, -1, 119, 120, -1, 121, 122, -1, - 124, 125, -1, 127, 128, -1, 235, 236, -1, 225, - 226, -1, 11, -1, 122, 123, -1, -1, 130, -1, - 131, -1, 135, -1, 138, -1, 144, -1, 145, -1, - 146, -1, 147, -1, 136, -1, 151, -1, 152, -1, - 153, -1, 154, -1, 155, -1, 172, -1, 173, -1, - 174, -1, 176, -1, 177, -1, 141, -1, 178, -1, - 179, -1, 182, -1, 180, -1, 181, -1, 183, -1, - 184, -1, 185, -1, 195, -1, 164, -1, 165, -1, - 166, -1, 167, -1, 186, -1, 198, -1, 160, -1, - 162, -1, 199, -1, 204, -1, 205, -1, 206, -1, - 142, -1, 171, -1, 212, -1, 213, -1, 161, -1, - 208, -1, 149, -1, 137, -1, 156, -1, 196, -1, - 202, -1, 187, -1, 197, -1, 215, -1, 216, -1, - 143, -1, 132, -1, 148, -1, 189, -1, 133, -1, - 139, -1, 140, -1, 157, -1, 158, -1, 214, -1, - 188, -1, 190, -1, 191, -1, 134, -1, 217, -1, - 175, -1, 194, -1, 150, -1, 163, -1, 200, -1, - 201, -1, 203, -1, 207, -1, 159, -1, 209, -1, - 210, -1, 211, -1, 168, -1, 170, -1, 192, -1, - 193, -1, 169, -1, 38, -1, 125, 126, -1, -1, - 218, -1, 219, -1, 220, -1, 221, -1, 44, -1, - 128, 129, -1, -1, 222, -1, 223, -1, 224, -1, - 13, 10, -1, 12, 10, -1, 76, 10, -1, 79, - 10, -1, 96, 10, -1, 14, 10, -1, 16, 10, - -1, 67, 10, -1, 15, 10, -1, 80, 10, -1, - 81, 10, -1, 31, 10, -1, 60, 10, -1, 75, - 10, -1, 17, 10, -1, 18, 10, -1, 19, 10, - -1, 20, 10, -1, 77, 10, -1, 66, 10, -1, - 101, 10, -1, 21, 10, -1, 22, 10, -1, 23, - 10, -1, 24, 10, -1, 25, 10, -1, 68, 10, - -1, 82, 10, -1, 83, 10, -1, 109, 10, -1, - 54, 10, -1, 64, 10, -1, 55, 10, -1, 102, - 10, -1, 48, 10, -1, 49, 10, -1, 50, 10, - -1, 51, 10, -1, 113, 10, -1, 117, 10, -1, - 114, 10, -1, 61, 10, -1, 26, 10, -1, 27, - 10, -1, 28, 10, -1, 98, 10, -1, 29, 10, - -1, 30, 10, -1, 32, 10, -1, 33, 10, -1, - 35, 10, -1, 36, 10, -1, 34, 10, -1, 41, - 10, -1, 42, 10, -1, 43, 10, -1, 52, 10, - -1, 71, 10, -1, 85, 10, -1, 78, 10, -1, - 86, 10, -1, 87, 10, -1, 115, 10, -1, 116, - 10, -1, 100, 10, -1, 47, 10, -1, 69, 10, - -1, 72, 10, 10, -1, 53, 10, -1, 56, 10, - -1, 105, 10, -1, 106, 10, -1, 70, 10, -1, - 107, 10, -1, 57, 10, -1, 58, 10, -1, 59, - 10, -1, 108, 10, -1, 65, 10, -1, 111, 10, - -1, 112, 10, -1, 110, 10, -1, 62, 10, -1, - 63, 10, -1, 84, 10, -1, 73, 10, 10, -1, - 74, 10, -1, 97, 10, -1, 37, 10, -1, 39, - 10, -1, 40, 10, -1, 99, 10, -1, 37, 10, - -1, 45, 10, -1, 46, 10, -1, 88, -1, 226, - 227, -1, -1, 228, -1, 230, -1, 229, -1, 231, - -1, 232, -1, 233, -1, 234, -1, 89, 10, -1, - 91, 10, -1, 90, 10, -1, 92, 10, -1, 93, - 10, -1, 94, 10, -1, 95, 10, -1, 103, -1, - 236, 237, -1, -1, 238, -1, 104, 10, -1 + 120, 0, -1, -1, 120, 121, -1, 122, 123, -1, + 125, 126, -1, 128, 129, -1, 237, 238, -1, 227, + 228, -1, 11, -1, 123, 124, -1, -1, 131, -1, + 132, -1, 136, -1, 139, -1, 145, -1, 146, -1, + 147, -1, 148, -1, 137, -1, 152, -1, 153, -1, + 154, -1, 155, -1, 156, -1, 173, -1, 174, -1, + 175, -1, 177, -1, 178, -1, 142, -1, 179, -1, + 180, -1, 183, -1, 181, -1, 182, -1, 184, -1, + 185, -1, 186, -1, 197, -1, 165, -1, 166, -1, + 167, -1, 168, -1, 187, -1, 200, -1, 161, -1, + 163, -1, 201, -1, 206, -1, 207, -1, 208, -1, + 143, -1, 172, -1, 214, -1, 215, -1, 162, -1, + 210, -1, 150, -1, 138, -1, 157, -1, 198, -1, + 204, -1, 188, -1, 199, -1, 217, -1, 218, -1, + 144, -1, 133, -1, 149, -1, 191, -1, 134, -1, + 140, -1, 141, -1, 158, -1, 159, -1, 216, -1, + 190, -1, 192, -1, 193, -1, 135, -1, 219, -1, + 176, -1, 196, -1, 151, -1, 164, -1, 202, -1, + 203, -1, 205, -1, 209, -1, 160, -1, 211, -1, + 212, -1, 213, -1, 169, -1, 171, -1, 194, -1, + 195, -1, 170, -1, 189, -1, 38, -1, 126, 127, + -1, -1, 220, -1, 221, -1, 222, -1, 223, -1, + 44, -1, 129, 130, -1, -1, 224, -1, 225, -1, + 226, -1, 13, 10, -1, 12, 10, -1, 76, 10, + -1, 79, 10, -1, 96, 10, -1, 14, 10, -1, + 16, 10, -1, 67, 10, -1, 15, 10, -1, 80, + 10, -1, 81, 10, -1, 31, 10, -1, 60, 10, + -1, 75, 10, -1, 17, 10, -1, 18, 10, -1, + 19, 10, -1, 20, 10, -1, 77, 10, -1, 66, + 10, -1, 101, 10, -1, 21, 10, -1, 22, 10, + -1, 23, 10, -1, 24, 10, -1, 25, 10, -1, + 68, 10, -1, 82, 10, -1, 83, 10, -1, 109, + 10, -1, 54, 10, -1, 64, 10, -1, 55, 10, + -1, 102, 10, -1, 48, 10, -1, 49, 10, -1, + 50, 10, -1, 51, 10, -1, 113, 10, -1, 117, + 10, -1, 114, 10, -1, 61, 10, -1, 26, 10, + -1, 27, 10, -1, 28, 10, -1, 98, 10, -1, + 29, 10, -1, 30, 10, -1, 32, 10, -1, 33, + 10, -1, 35, 10, -1, 36, 10, -1, 34, 10, + -1, 41, 10, -1, 42, 10, -1, 43, 10, -1, + 52, 10, -1, 71, 10, -1, 118, 10, -1, 85, + 10, -1, 78, 10, -1, 86, 10, -1, 87, 10, + -1, 115, 10, -1, 116, 10, -1, 100, 10, -1, + 47, 10, -1, 69, 10, -1, 72, 10, 10, -1, + 53, 10, -1, 56, 10, -1, 105, 10, -1, 106, + 10, -1, 70, 10, -1, 107, 10, -1, 57, 10, + -1, 58, 10, -1, 59, 10, -1, 108, 10, -1, + 65, 10, -1, 111, 10, -1, 112, 10, -1, 110, + 10, -1, 62, 10, -1, 63, 10, -1, 84, 10, + -1, 73, 10, 10, -1, 74, 10, -1, 97, 10, + -1, 37, 10, -1, 39, 10, -1, 40, 10, -1, + 99, 10, -1, 37, 10, -1, 45, 10, -1, 46, + 10, -1, 88, -1, 228, 229, -1, -1, 230, -1, + 232, -1, 231, -1, 233, -1, 234, -1, 235, -1, + 236, -1, 89, 10, -1, 91, 10, -1, 90, 10, + -1, 92, 10, -1, 93, 10, -1, 94, 10, -1, + 95, 10, -1, 103, -1, 238, 239, -1, -1, 240, + -1, 104, 10, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -766,19 +770,20 @@ static const yytype_uint16 yyrline[] = 145, 146, 146, 147, 147, 148, 148, 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, 154, 155, 155, 156, 156, 156, 157, 157, 157, 158, - 160, 172, 173, 174, 174, 174, 174, 176, 188, 189, - 190, 190, 190, 192, 201, 210, 221, 230, 239, 248, - 261, 276, 285, 294, 303, 312, 321, 330, 339, 348, - 357, 366, 375, 389, 398, 405, 412, 419, 427, 434, - 441, 448, 455, 463, 471, 479, 486, 493, 502, 511, - 518, 525, 533, 541, 554, 565, 573, 586, 595, 604, - 612, 625, 634, 643, 652, 661, 674, 681, 691, 701, - 711, 721, 731, 741, 748, 755, 764, 773, 782, 789, - 799, 813, 820, 838, 851, 864, 873, 882, 891, 901, - 911, 920, 927, 936, 945, 954, 962, 975, 983, 1003, - 1010, 1025, 1032, 1039, 1046, 1056, 1063, 1070, 1077, 1082, - 1083, 1084, 1084, 1084, 1085, 1085, 1085, 1086, 1088, 1098, - 1107, 1114, 1121, 1128, 1135, 1142, 1147, 1148, 1149, 1151 + 158, 160, 172, 173, 174, 174, 174, 174, 176, 188, + 189, 190, 190, 190, 192, 201, 210, 221, 230, 239, + 248, 261, 276, 285, 294, 303, 312, 321, 330, 339, + 348, 357, 366, 375, 389, 398, 405, 412, 419, 427, + 434, 441, 448, 455, 463, 471, 479, 486, 493, 502, + 511, 518, 525, 533, 541, 554, 565, 573, 586, 595, + 604, 612, 625, 634, 643, 652, 661, 674, 681, 691, + 701, 711, 721, 731, 741, 751, 758, 765, 774, 783, + 792, 799, 809, 823, 830, 848, 861, 874, 883, 892, + 901, 911, 921, 930, 937, 946, 955, 964, 972, 985, + 993, 1013, 1020, 1035, 1042, 1049, 1056, 1066, 1073, 1080, + 1087, 1092, 1093, 1094, 1094, 1094, 1095, 1095, 1095, 1096, + 1098, 1108, 1117, 1124, 1131, 1138, 1145, 1152, 1157, 1158, + 1159, 1161 }; #endif @@ -824,10 +829,11 @@ static const char *const yytname[] = "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY", - "VAR_SO_SNDBUF", "$accept", "toplevelvars", "toplevelvar", "serverstart", - "contents_server", "content_server", "stubstart", "contents_stub", - "content_stub", "forwardstart", "contents_forward", "content_forward", - "server_num_threads", "server_verbosity", "server_statistics_interval", + "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "$accept", "toplevelvars", + "toplevelvar", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "server_num_threads", + "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_port", "server_interface", "server_outgoing_interface", "server_outgoing_range", "server_outgoing_port_permit", @@ -850,14 +856,15 @@ static const char *const yytname[] = "server_infra_cache_lame_size", "server_infra_cache_slabs", "server_target_fetch_policy", "server_harden_short_bufsize", "server_harden_large_queries", "server_harden_glue", - "server_harden_dnssec_stripped", "server_harden_referral_path", - "server_use_caps_for_id", "server_private_address", - "server_private_domain", "server_prefetch", "server_prefetch_key", - "server_unwanted_reply_threshold", "server_do_not_query_address", - "server_do_not_query_localhost", "server_access_control", - "server_module_conf", "server_val_override_date", - "server_val_sig_skew_min", "server_val_sig_skew_max", - "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl", + "server_harden_dnssec_stripped", "server_harden_below_nxdomain", + "server_harden_referral_path", "server_use_caps_for_id", + "server_private_address", "server_private_domain", "server_prefetch", + "server_prefetch_key", "server_unwanted_reply_threshold", + "server_do_not_query_address", "server_do_not_query_localhost", + "server_access_control", "server_module_conf", + "server_val_override_date", "server_val_sig_skew_min", + "server_val_sig_skew_max", "server_cache_max_ttl", + "server_cache_min_ttl", "server_bogus_ttl", "server_val_clean_additional", "server_val_permissive_mode", "server_val_log_level", "server_val_nsec3_keysize_iterations", "server_add_holddown", "server_del_holddown", "server_keep_missing", @@ -888,25 +895,25 @@ static const yytype_uint16 yytoknum[] = 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 + 365, 366, 367, 368, 369, 370, 371, 372, 373 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 118, 119, 119, 120, 120, 120, 120, 120, 121, - 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 124, 125, 125, 126, 126, 126, 126, 127, 128, 128, - 129, 129, 129, 130, 131, 132, 133, 134, 135, 136, + 0, 119, 120, 120, 121, 121, 121, 121, 121, 122, + 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 125, 126, 126, 127, 127, 127, 127, 128, 129, + 129, 130, 130, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, @@ -916,8 +923,9 @@ static const yytype_uint8 yyr1[] = 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 226, 227, 227, 227, 227, 227, 227, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 236, 237, 238 + 227, 228, 228, 229, 229, 229, 229, 229, 229, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 238, + 239, 240 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -933,19 +941,20 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 1, 2, 0, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 0, 1, 1, 1, 1, 1, 2, + 0, 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, 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, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 2 + 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -953,8 +962,8 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 9, 100, 107, 208, 225, 3, 11, - 102, 109, 210, 227, 4, 5, 6, 8, 7, 0, + 2, 0, 1, 9, 101, 108, 210, 227, 3, 11, + 103, 110, 212, 229, 4, 5, 6, 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -963,48 +972,48 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 12, 13, - 69, 72, 81, 14, 20, 60, 15, 73, 74, 31, - 53, 68, 16, 17, 18, 19, 70, 59, 85, 21, - 22, 23, 24, 25, 61, 75, 76, 91, 47, 57, - 48, 86, 41, 42, 43, 44, 95, 99, 96, 54, - 26, 27, 28, 83, 29, 30, 32, 33, 35, 36, - 34, 37, 38, 39, 45, 64, 78, 71, 79, 80, - 97, 98, 84, 40, 62, 65, 46, 49, 87, 88, - 63, 89, 50, 51, 52, 90, 58, 92, 93, 94, - 55, 56, 77, 66, 67, 82, 0, 0, 0, 0, - 101, 103, 104, 105, 106, 0, 0, 0, 108, 110, - 111, 112, 0, 0, 0, 0, 0, 0, 0, 209, - 211, 213, 212, 214, 215, 216, 217, 0, 226, 228, - 114, 113, 118, 121, 119, 127, 128, 129, 130, 134, - 135, 136, 137, 138, 155, 156, 157, 159, 160, 124, - 161, 162, 165, 163, 164, 166, 167, 168, 178, 147, - 148, 149, 150, 169, 181, 143, 145, 182, 187, 188, - 189, 125, 154, 195, 196, 144, 191, 132, 120, 139, - 179, 185, 170, 0, 0, 199, 126, 115, 131, 172, - 116, 122, 123, 140, 141, 197, 171, 173, 174, 117, - 200, 158, 177, 133, 146, 183, 184, 186, 190, 142, - 194, 192, 193, 151, 153, 175, 176, 152, 201, 202, - 203, 204, 205, 206, 207, 218, 220, 219, 221, 222, - 223, 224, 229, 180, 198 + 0, 0, 0, 0, 0, 0, 0, 0, 10, 12, + 13, 69, 72, 81, 14, 20, 60, 15, 73, 74, + 31, 53, 68, 16, 17, 18, 19, 70, 59, 85, + 21, 22, 23, 24, 25, 61, 75, 76, 91, 47, + 57, 48, 86, 41, 42, 43, 44, 95, 99, 96, + 54, 26, 27, 28, 83, 29, 30, 32, 33, 35, + 36, 34, 37, 38, 39, 45, 64, 100, 78, 71, + 79, 80, 97, 98, 84, 40, 62, 65, 46, 49, + 87, 88, 63, 89, 50, 51, 52, 90, 58, 92, + 93, 94, 55, 56, 77, 66, 67, 82, 0, 0, + 0, 0, 102, 104, 105, 106, 107, 0, 0, 0, + 109, 111, 112, 113, 0, 0, 0, 0, 0, 0, + 0, 211, 213, 215, 214, 216, 217, 218, 219, 0, + 228, 230, 115, 114, 119, 122, 120, 128, 129, 130, + 131, 135, 136, 137, 138, 139, 156, 157, 158, 160, + 161, 125, 162, 163, 166, 164, 165, 167, 168, 169, + 180, 148, 149, 150, 151, 170, 183, 144, 146, 184, + 189, 190, 191, 126, 155, 197, 198, 145, 193, 133, + 121, 140, 181, 187, 171, 0, 0, 201, 127, 116, + 132, 174, 117, 123, 124, 141, 142, 199, 173, 175, + 176, 118, 202, 159, 179, 134, 147, 185, 186, 188, + 192, 143, 196, 194, 195, 152, 154, 177, 178, 153, + 172, 203, 204, 205, 206, 207, 208, 209, 220, 222, + 221, 223, 224, 225, 226, 231, 182, 200 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 8, 9, 14, 107, 10, 15, 200, 11, - 16, 208, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 201, 202, 203, 204, 209, 210, 211, 12, 17, 219, - 220, 221, 222, 223, 224, 225, 226, 13, 18, 228, - 229 + -1, 1, 8, 9, 14, 108, 10, 15, 202, 11, + 16, 210, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 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, 203, 204, 205, 206, 211, 212, 213, 12, 17, + 221, 222, 223, 224, 225, 226, 227, 228, 13, 18, + 230, 231 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1013,16 +1022,16 @@ static const yytype_int16 yydefgoto[] = static const yytype_int16 yypact[] = { -80, 76, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -12, 40, 46, 17, -79, 16, - 18, 22, 23, 24, 68, 71, 72, 103, 105, 106, - 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, -80, -80, -80, + -80, -80, -80, -80, -12, 40, 46, 18, -79, 16, + 17, 22, 23, 24, 68, 71, 72, 105, 106, 107, + 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, @@ -1031,21 +1040,21 @@ static const yytype_int16 yypact[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, 188, 189, 190, 191, - -80, -80, -80, -80, -80, 192, 193, 194, -80, -80, - -80, -80, 195, 196, 197, 198, 199, 200, 201, -80, - -80, -80, -80, -80, -80, -80, -80, 202, -80, -80, + -80, -80, -80, -80, -80, -80, -80, -80, 190, 191, + 192, 193, -80, -80, -80, -80, -80, 194, 195, 196, + -80, -80, -80, -80, 197, 198, 199, 200, 201, 202, + 203, -80, -80, -80, -80, -80, -80, -80, -80, 204, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, 203, 204, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -80, 205, 206, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80 + -80, -80, -80, -80, -80, -80, -80, -80 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1063,7 +1072,7 @@ static const yytype_int8 yypgoto[] = -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, - -80 + -80, -80 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1075,33 +1084,33 @@ static const yytype_uint16 yytable[] = { 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, 227, 230, 0, 231, 44, - 45, 46, 232, 233, 234, 47, 48, 49, 50, 51, + 39, 40, 41, 42, 43, 229, 232, 233, 0, 44, + 45, 46, 234, 235, 236, 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, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 2, 196, 235, 197, - 198, 236, 237, 205, 88, 89, 90, 3, 91, 92, - 93, 206, 207, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 212, 213, 214, 215, - 216, 217, 218, 238, 4, 239, 240, 241, 242, 243, - 5, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 199, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 6, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 7, - 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 + 82, 83, 84, 85, 86, 87, 2, 198, 237, 199, + 200, 238, 239, 207, 88, 89, 90, 3, 91, 92, + 93, 208, 209, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 214, 215, 216, + 217, 218, 219, 220, 4, 240, 241, 242, 243, 244, + 5, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 201, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 6, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 7, + 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 }; static const yytype_int8 yycheck[] = { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 104, 10, -1, 10, 41, + 32, 33, 34, 35, 36, 104, 10, 10, -1, 41, 42, 43, 10, 10, 10, 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, @@ -1109,8 +1118,8 @@ static const yytype_int8 yycheck[] = 82, 83, 84, 85, 86, 87, 0, 37, 10, 39, 40, 10, 10, 37, 96, 97, 98, 11, 100, 101, 102, 45, 46, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 89, 90, 91, 92, - 93, 94, 95, 10, 38, 10, 10, 10, 10, 10, + 112, 113, 114, 115, 116, 117, 118, 89, 90, 91, + 92, 93, 94, 95, 38, 10, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 99, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1120,15 +1129,15 @@ static const yytype_int8 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, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 119, 0, 11, 38, 44, 88, 103, 120, 121, - 124, 127, 225, 235, 122, 125, 128, 226, 236, 12, + 0, 120, 0, 11, 38, 44, 88, 103, 121, 122, + 125, 128, 227, 237, 123, 126, 129, 228, 238, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 43, 47, 48, 49, @@ -1137,7 +1146,7 @@ static const yytype_uint8 yystos[] = 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 96, 97, 98, 100, 101, 102, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 123, 130, 131, + 111, 112, 113, 114, 115, 116, 117, 118, 124, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, @@ -1146,10 +1155,11 @@ static const yytype_uint8 yystos[] = 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, 37, 39, 40, 99, - 126, 218, 219, 220, 221, 37, 45, 46, 129, 222, - 223, 224, 89, 90, 91, 92, 93, 94, 95, 227, - 228, 229, 230, 231, 232, 233, 234, 104, 237, 238, + 212, 213, 214, 215, 216, 217, 218, 219, 37, 39, + 40, 99, 127, 220, 221, 222, 223, 37, 45, 46, + 130, 224, 225, 226, 89, 90, 91, 92, 93, 94, + 95, 229, 230, 231, 232, 233, 234, 235, 236, 104, + 239, 240, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1159,8 +1169,7 @@ static const yytype_uint8 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10 }; #define yyerrok (yyerrstatus = 0) @@ -1980,7 +1989,7 @@ yyreduce: } break; - case 100: + case 101: /* Line 1455 of yacc.c */ #line 161 "util/configparser.y" @@ -1996,7 +2005,7 @@ yyreduce: } break; - case 107: + case 108: /* Line 1455 of yacc.c */ #line 177 "util/configparser.y" @@ -2012,7 +2021,7 @@ yyreduce: } break; - case 113: + case 114: /* Line 1455 of yacc.c */ #line 193 "util/configparser.y" @@ -2025,7 +2034,7 @@ yyreduce: } break; - case 114: + case 115: /* Line 1455 of yacc.c */ #line 202 "util/configparser.y" @@ -2038,7 +2047,7 @@ yyreduce: } break; - case 115: + case 116: /* Line 1455 of yacc.c */ #line 211 "util/configparser.y" @@ -2053,7 +2062,7 @@ yyreduce: } break; - case 116: + case 117: /* Line 1455 of yacc.c */ #line 222 "util/configparser.y" @@ -2066,7 +2075,7 @@ yyreduce: } break; - case 117: + case 118: /* Line 1455 of yacc.c */ #line 231 "util/configparser.y" @@ -2079,7 +2088,7 @@ yyreduce: } break; - case 118: + case 119: /* Line 1455 of yacc.c */ #line 240 "util/configparser.y" @@ -2092,7 +2101,7 @@ yyreduce: } break; - case 119: + case 120: /* Line 1455 of yacc.c */ #line 249 "util/configparser.y" @@ -2109,7 +2118,7 @@ yyreduce: } break; - case 120: + case 121: /* Line 1455 of yacc.c */ #line 262 "util/configparser.y" @@ -2128,7 +2137,7 @@ yyreduce: } break; - case 121: + case 122: /* Line 1455 of yacc.c */ #line 277 "util/configparser.y" @@ -2141,7 +2150,7 @@ yyreduce: } break; - case 122: + case 123: /* Line 1455 of yacc.c */ #line 286 "util/configparser.y" @@ -2154,7 +2163,7 @@ yyreduce: } break; - case 123: + case 124: /* Line 1455 of yacc.c */ #line 295 "util/configparser.y" @@ -2167,7 +2176,7 @@ yyreduce: } break; - case 124: + case 125: /* Line 1455 of yacc.c */ #line 304 "util/configparser.y" @@ -2180,7 +2189,7 @@ yyreduce: } break; - case 125: + case 126: /* Line 1455 of yacc.c */ #line 313 "util/configparser.y" @@ -2193,7 +2202,7 @@ yyreduce: } break; - case 126: + case 127: /* Line 1455 of yacc.c */ #line 322 "util/configparser.y" @@ -2206,7 +2215,7 @@ yyreduce: } break; - case 127: + case 128: /* Line 1455 of yacc.c */ #line 331 "util/configparser.y" @@ -2219,7 +2228,7 @@ yyreduce: } break; - case 128: + case 129: /* Line 1455 of yacc.c */ #line 340 "util/configparser.y" @@ -2232,7 +2241,7 @@ yyreduce: } break; - case 129: + case 130: /* Line 1455 of yacc.c */ #line 349 "util/configparser.y" @@ -2245,7 +2254,7 @@ yyreduce: } break; - case 130: + case 131: /* Line 1455 of yacc.c */ #line 358 "util/configparser.y" @@ -2258,7 +2267,7 @@ yyreduce: } break; - case 131: + case 132: /* Line 1455 of yacc.c */ #line 367 "util/configparser.y" @@ -2271,7 +2280,7 @@ yyreduce: } break; - case 132: + case 133: /* Line 1455 of yacc.c */ #line 376 "util/configparser.y" @@ -2289,7 +2298,7 @@ yyreduce: } break; - case 133: + case 134: /* Line 1455 of yacc.c */ #line 390 "util/configparser.y" @@ -2302,7 +2311,7 @@ yyreduce: } break; - case 134: + case 135: /* Line 1455 of yacc.c */ #line 399 "util/configparser.y" @@ -2313,7 +2322,7 @@ yyreduce: } break; - case 135: + case 136: /* Line 1455 of yacc.c */ #line 406 "util/configparser.y" @@ -2324,7 +2333,7 @@ yyreduce: } break; - case 136: + case 137: /* Line 1455 of yacc.c */ #line 413 "util/configparser.y" @@ -2335,7 +2344,7 @@ yyreduce: } break; - case 137: + case 138: /* Line 1455 of yacc.c */ #line 420 "util/configparser.y" @@ -2347,7 +2356,7 @@ yyreduce: } break; - case 138: + case 139: /* Line 1455 of yacc.c */ #line 428 "util/configparser.y" @@ -2358,7 +2367,7 @@ yyreduce: } break; - case 139: + case 140: /* Line 1455 of yacc.c */ #line 435 "util/configparser.y" @@ -2369,7 +2378,7 @@ yyreduce: } break; - case 140: + case 141: /* Line 1455 of yacc.c */ #line 442 "util/configparser.y" @@ -2380,7 +2389,7 @@ yyreduce: } break; - case 141: + case 142: /* Line 1455 of yacc.c */ #line 449 "util/configparser.y" @@ -2391,7 +2400,7 @@ yyreduce: } break; - case 142: + case 143: /* Line 1455 of yacc.c */ #line 456 "util/configparser.y" @@ -2403,7 +2412,7 @@ yyreduce: } break; - case 143: + case 144: /* Line 1455 of yacc.c */ #line 464 "util/configparser.y" @@ -2415,7 +2424,7 @@ yyreduce: } break; - case 144: + case 145: /* Line 1455 of yacc.c */ #line 472 "util/configparser.y" @@ -2427,7 +2436,7 @@ yyreduce: } break; - case 145: + case 146: /* Line 1455 of yacc.c */ #line 480 "util/configparser.y" @@ -2438,7 +2447,7 @@ yyreduce: } break; - case 146: + case 147: /* Line 1455 of yacc.c */ #line 487 "util/configparser.y" @@ -2449,7 +2458,7 @@ yyreduce: } break; - case 147: + case 148: /* Line 1455 of yacc.c */ #line 494 "util/configparser.y" @@ -2462,7 +2471,7 @@ yyreduce: } break; - case 148: + case 149: /* Line 1455 of yacc.c */ #line 503 "util/configparser.y" @@ -2475,7 +2484,7 @@ yyreduce: } break; - case 149: + case 150: /* Line 1455 of yacc.c */ #line 512 "util/configparser.y" @@ -2486,7 +2495,7 @@ yyreduce: } break; - case 150: + case 151: /* Line 1455 of yacc.c */ #line 519 "util/configparser.y" @@ -2497,7 +2506,7 @@ yyreduce: } break; - case 151: + case 152: /* Line 1455 of yacc.c */ #line 526 "util/configparser.y" @@ -2509,7 +2518,7 @@ yyreduce: } break; - case 152: + case 153: /* Line 1455 of yacc.c */ #line 534 "util/configparser.y" @@ -2521,7 +2530,7 @@ yyreduce: } break; - case 153: + case 154: /* Line 1455 of yacc.c */ #line 542 "util/configparser.y" @@ -2538,7 +2547,7 @@ yyreduce: } break; - case 154: + case 155: /* Line 1455 of yacc.c */ #line 555 "util/configparser.y" @@ -2553,7 +2562,7 @@ yyreduce: } break; - case 155: + case 156: /* Line 1455 of yacc.c */ #line 566 "util/configparser.y" @@ -2565,7 +2574,7 @@ yyreduce: } break; - case 156: + case 157: /* Line 1455 of yacc.c */ #line 574 "util/configparser.y" @@ -2582,7 +2591,7 @@ yyreduce: } break; - case 157: + case 158: /* Line 1455 of yacc.c */ #line 587 "util/configparser.y" @@ -2595,7 +2604,7 @@ yyreduce: } break; - case 158: + case 159: /* Line 1455 of yacc.c */ #line 596 "util/configparser.y" @@ -2608,7 +2617,7 @@ yyreduce: } break; - case 159: + case 160: /* Line 1455 of yacc.c */ #line 605 "util/configparser.y" @@ -2620,7 +2629,7 @@ yyreduce: } break; - case 160: + case 161: /* Line 1455 of yacc.c */ #line 613 "util/configparser.y" @@ -2637,7 +2646,7 @@ yyreduce: } break; - case 161: + case 162: /* Line 1455 of yacc.c */ #line 626 "util/configparser.y" @@ -2650,7 +2659,7 @@ yyreduce: } break; - case 162: + case 163: /* Line 1455 of yacc.c */ #line 635 "util/configparser.y" @@ -2663,7 +2672,7 @@ yyreduce: } break; - case 163: + case 164: /* Line 1455 of yacc.c */ #line 644 "util/configparser.y" @@ -2676,7 +2685,7 @@ yyreduce: } break; - case 164: + case 165: /* Line 1455 of yacc.c */ #line 653 "util/configparser.y" @@ -2689,7 +2698,7 @@ yyreduce: } break; - case 165: + case 166: /* Line 1455 of yacc.c */ #line 662 "util/configparser.y" @@ -2706,7 +2715,7 @@ yyreduce: } break; - case 166: + case 167: /* Line 1455 of yacc.c */ #line 675 "util/configparser.y" @@ -2717,7 +2726,7 @@ yyreduce: } break; - case 167: + case 168: /* Line 1455 of yacc.c */ #line 682 "util/configparser.y" @@ -2731,7 +2740,7 @@ yyreduce: } break; - case 168: + case 169: /* Line 1455 of yacc.c */ #line 692 "util/configparser.y" @@ -2745,7 +2754,7 @@ yyreduce: } break; - case 169: + case 170: /* Line 1455 of yacc.c */ #line 702 "util/configparser.y" @@ -2759,7 +2768,7 @@ yyreduce: } break; - case 170: + case 171: /* Line 1455 of yacc.c */ #line 712 "util/configparser.y" @@ -2773,10 +2782,24 @@ yyreduce: } break; - case 171: + case 172: /* Line 1455 of yacc.c */ #line 722 "util/configparser.y" + { + OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str))); + if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->harden_below_nxdomain = + (strcmp((yyvsp[(2) - (2)].str), "yes")==0); + free((yyvsp[(2) - (2)].str)); + } + break; + + case 173: + +/* Line 1455 of yacc.c */ +#line 732 "util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2787,10 +2810,10 @@ yyreduce: } break; - case 172: + case 174: /* Line 1455 of yacc.c */ -#line 732 "util/configparser.y" +#line 742 "util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2801,10 +2824,10 @@ yyreduce: } break; - case 173: + case 175: /* Line 1455 of yacc.c */ -#line 742 "util/configparser.y" +#line 752 "util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str))) @@ -2812,10 +2835,10 @@ yyreduce: } break; - case 174: + case 176: /* Line 1455 of yacc.c */ -#line 749 "util/configparser.y" +#line 759 "util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str))) @@ -2823,10 +2846,10 @@ yyreduce: } break; - case 175: + case 177: /* Line 1455 of yacc.c */ -#line 756 "util/configparser.y" +#line 766 "util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2836,10 +2859,10 @@ yyreduce: } break; - case 176: + case 178: /* Line 1455 of yacc.c */ -#line 765 "util/configparser.y" +#line 775 "util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2849,10 +2872,10 @@ yyreduce: } break; - case 177: + case 179: /* Line 1455 of yacc.c */ -#line 774 "util/configparser.y" +#line 784 "util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2862,10 +2885,10 @@ yyreduce: } break; - case 178: + case 180: /* Line 1455 of yacc.c */ -#line 783 "util/configparser.y" +#line 793 "util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str))) @@ -2873,10 +2896,10 @@ yyreduce: } break; - case 179: + case 181: /* Line 1455 of yacc.c */ -#line 790 "util/configparser.y" +#line 800 "util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -2887,10 +2910,10 @@ yyreduce: } break; - case 180: + case 182: /* Line 1455 of yacc.c */ -#line 800 "util/configparser.y" +#line 810 "util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 && @@ -2905,10 +2928,10 @@ yyreduce: } break; - case 181: + case 183: /* Line 1455 of yacc.c */ -#line 814 "util/configparser.y" +#line 824 "util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->module_conf); @@ -2916,10 +2939,10 @@ yyreduce: } break; - case 182: + case 184: /* Line 1455 of yacc.c */ -#line 821 "util/configparser.y" +#line 831 "util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2938,10 +2961,10 @@ yyreduce: } break; - case 183: + case 185: /* Line 1455 of yacc.c */ -#line 839 "util/configparser.y" +#line 849 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2955,10 +2978,10 @@ yyreduce: } break; - case 184: + case 186: /* Line 1455 of yacc.c */ -#line 852 "util/configparser.y" +#line 862 "util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str))); if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) { @@ -2972,10 +2995,10 @@ yyreduce: } break; - case 185: + case 187: /* Line 1455 of yacc.c */ -#line 865 "util/configparser.y" +#line 875 "util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2985,10 +3008,10 @@ yyreduce: } break; - case 186: + case 188: /* Line 1455 of yacc.c */ -#line 874 "util/configparser.y" +#line 884 "util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -2998,10 +3021,10 @@ yyreduce: } break; - case 187: + case 189: /* Line 1455 of yacc.c */ -#line 883 "util/configparser.y" +#line 893 "util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3011,10 +3034,10 @@ yyreduce: } break; - case 188: + case 190: /* Line 1455 of yacc.c */ -#line 892 "util/configparser.y" +#line 902 "util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3025,10 +3048,10 @@ yyreduce: } break; - case 189: + case 191: /* Line 1455 of yacc.c */ -#line 902 "util/configparser.y" +#line 912 "util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3039,10 +3062,10 @@ yyreduce: } break; - case 190: + case 192: /* Line 1455 of yacc.c */ -#line 912 "util/configparser.y" +#line 922 "util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3052,10 +3075,10 @@ yyreduce: } break; - case 191: + case 193: /* Line 1455 of yacc.c */ -#line 921 "util/configparser.y" +#line 931 "util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); @@ -3063,10 +3086,10 @@ yyreduce: } break; - case 192: + case 194: /* Line 1455 of yacc.c */ -#line 928 "util/configparser.y" +#line 938 "util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3076,10 +3099,10 @@ yyreduce: } break; - case 193: + case 195: /* Line 1455 of yacc.c */ -#line 937 "util/configparser.y" +#line 947 "util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3089,10 +3112,10 @@ yyreduce: } break; - case 194: + case 196: /* Line 1455 of yacc.c */ -#line 946 "util/configparser.y" +#line 956 "util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0) @@ -3102,10 +3125,10 @@ yyreduce: } break; - case 195: + case 197: /* Line 1455 of yacc.c */ -#line 955 "util/configparser.y" +#line 965 "util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size)) @@ -3114,10 +3137,10 @@ yyreduce: } break; - case 196: + case 198: /* Line 1455 of yacc.c */ -#line 963 "util/configparser.y" +#line 973 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3131,10 +3154,10 @@ yyreduce: } break; - case 197: + case 199: /* Line 1455 of yacc.c */ -#line 976 "util/configparser.y" +#line 986 "util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size)) @@ -3143,10 +3166,10 @@ yyreduce: } break; - case 198: + case 200: /* Line 1455 of yacc.c */ -#line 984 "util/configparser.y" +#line 994 "util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str))); if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && @@ -3167,10 +3190,10 @@ yyreduce: } break; - case 199: + case 201: /* Line 1455 of yacc.c */ -#line 1004 "util/configparser.y" +#line 1014 "util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str))) @@ -3178,10 +3201,10 @@ yyreduce: } break; - case 200: + case 202: /* Line 1455 of yacc.c */ -#line 1011 "util/configparser.y" +#line 1021 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str))); @@ -3197,10 +3220,10 @@ yyreduce: } break; - case 201: + case 203: /* Line 1455 of yacc.c */ -#line 1026 "util/configparser.y" +#line 1036 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->stubs->name); @@ -3208,10 +3231,10 @@ yyreduce: } break; - case 202: + case 204: /* Line 1455 of yacc.c */ -#line 1033 "util/configparser.y" +#line 1043 "util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str))) @@ -3219,10 +3242,10 @@ yyreduce: } break; - case 203: + case 205: /* Line 1455 of yacc.c */ -#line 1040 "util/configparser.y" +#line 1050 "util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str))) @@ -3230,10 +3253,10 @@ yyreduce: } break; - case 204: + case 206: /* Line 1455 of yacc.c */ -#line 1047 "util/configparser.y" +#line 1057 "util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3244,10 +3267,10 @@ yyreduce: } break; - case 205: + case 207: /* Line 1455 of yacc.c */ -#line 1057 "util/configparser.y" +#line 1067 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->forwards->name); @@ -3255,10 +3278,10 @@ yyreduce: } break; - case 206: + case 208: /* Line 1455 of yacc.c */ -#line 1064 "util/configparser.y" +#line 1074 "util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str))) @@ -3266,10 +3289,10 @@ yyreduce: } break; - case 207: + case 209: /* Line 1455 of yacc.c */ -#line 1071 "util/configparser.y" +#line 1081 "util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str))) @@ -3277,19 +3300,19 @@ yyreduce: } break; - case 208: + case 210: /* Line 1455 of yacc.c */ -#line 1078 "util/configparser.y" +#line 1088 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } break; - case 218: + case 220: /* Line 1455 of yacc.c */ -#line 1089 "util/configparser.y" +#line 1099 "util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str))); if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0) @@ -3300,10 +3323,10 @@ yyreduce: } break; - case 219: + case 221: /* Line 1455 of yacc.c */ -#line 1099 "util/configparser.y" +#line 1109 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str))); if(atoi((yyvsp[(2) - (2)].str)) == 0) @@ -3313,10 +3336,10 @@ yyreduce: } break; - case 220: + case 222: /* Line 1455 of yacc.c */ -#line 1108 "util/configparser.y" +#line 1118 "util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str))) @@ -3324,10 +3347,10 @@ yyreduce: } break; - case 221: + case 223: /* Line 1455 of yacc.c */ -#line 1115 "util/configparser.y" +#line 1125 "util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_key_file); @@ -3335,10 +3358,10 @@ yyreduce: } break; - case 222: + case 224: /* Line 1455 of yacc.c */ -#line 1122 "util/configparser.y" +#line 1132 "util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->server_cert_file); @@ -3346,10 +3369,10 @@ yyreduce: } break; - case 223: + case 225: /* Line 1455 of yacc.c */ -#line 1129 "util/configparser.y" +#line 1139 "util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_key_file); @@ -3357,10 +3380,10 @@ yyreduce: } break; - case 224: + case 226: /* Line 1455 of yacc.c */ -#line 1136 "util/configparser.y" +#line 1146 "util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->control_cert_file); @@ -3368,19 +3391,19 @@ yyreduce: } break; - case 225: + case 227: /* Line 1455 of yacc.c */ -#line 1143 "util/configparser.y" +#line 1153 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } break; - case 229: + case 231: /* Line 1455 of yacc.c */ -#line 1152 "util/configparser.y" +#line 1162 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str))); free(cfg_parser->cfg->python_script); @@ -3391,7 +3414,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 3395 "util/configparser.c" +#line 3418 "util/configparser.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3603,7 +3626,7 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 1157 "util/configparser.y" +#line 1167 "util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index f3c908678..fade8fd7d 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -153,7 +153,8 @@ VAR_EDNS_BUFFER_SIZE = 369, VAR_PREFETCH = 370, VAR_PREFETCH_KEY = 371, - VAR_SO_SNDBUF = 372 + VAR_SO_SNDBUF = 372, + VAR_HARDEN_BELOW_NXDOMAIN = 373 }; #endif /* Tokens. */ @@ -272,6 +273,7 @@ #define VAR_PREFETCH 370 #define VAR_PREFETCH_KEY 371 #define VAR_SO_SNDBUF 372 +#define VAR_HARDEN_BELOW_NXDOMAIN 373 @@ -288,7 +290,7 @@ typedef union YYSTYPE /* Line 1676 of yacc.c */ -#line 292 "util/configparser.h" +#line 294 "util/configparser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/util/configparser.y b/util/configparser.y index 093a107d2..abc461b26 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -101,7 +101,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_VAL_SIG_SKEW_MAX VAR_CACHE_MIN_TTL VAR_VAL_LOG_LEVEL %token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN %token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH -%token VAR_PREFETCH_KEY VAR_SO_SNDBUF +%token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_HARDEN_BELOW_NXDOMAIN %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -155,7 +155,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_auto_trust_anchor_file | server_add_holddown | server_del_holddown | server_keep_missing | server_so_rcvbuf | server_edns_buffer_size | server_prefetch | server_prefetch_key | - server_so_sndbuf + server_so_sndbuf | server_harden_below_nxdomain ; stubstart: VAR_STUB_ZONE { @@ -718,6 +718,16 @@ server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG free($2); } ; +server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG + { + OUTYY(("P(server_harden_below_nxdomain:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->harden_below_nxdomain = + (strcmp($2, "yes")==0); + free($2); + } + ; server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG { OUTYY(("P(server_harden_referral_path:%s)\n", $2));