From: Wouter Wijngaards Date: Fri, 30 Nov 2018 09:45:37 +0000 (+0000) Subject: - log-tag-queryreply: yes in unbound.conf tags the log-queries and X-Git-Tag: release-1.9.0rc1~79 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2ad55ba7912d6de3e589d9fbef87932ea30361b3;p=thirdparty%2Funbound.git - log-tag-queryreply: yes in unbound.conf tags the log-queries and log-replies in the log file for easier log filter maintenance. git-svn-id: file:///svn/unbound/trunk@5000 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/daemon/worker.c b/daemon/worker.c index d1241e4b9..43cf3c3fd 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -1208,7 +1208,7 @@ worker_handle_request(struct comm_point* c, void* arg, int error, if(worker->env.cfg->log_queries) { char ip[128]; addr_to_str(&repinfo->addr, repinfo->addrlen, ip, sizeof(ip)); - log_nametypeclass(0, ip, qinfo.qname, qinfo.qtype, qinfo.qclass); + log_query_in(ip, qinfo.qname, qinfo.qtype, qinfo.qclass); } if(qinfo.qtype == LDNS_RR_TYPE_AXFR || qinfo.qtype == LDNS_RR_TYPE_IXFR) { diff --git a/doc/Changelog b/doc/Changelog index cb4d26162..1082b2217 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 30 November 2018: Wouter - Patch for typo in unbound.conf man page. + - log-tag-queryreply: yes in unbound.conf tags the log-queries and + log-replies in the log file for easier log filter maintenance. 29 November 2018: Wouter - iana portlist updated. diff --git a/doc/example.conf.in b/doc/example.conf.in index 587aab284..d0b0dd44e 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -322,6 +322,10 @@ server: # timetoresolve, fromcache and responsesize. # log-replies: no + # log with tag 'query' and 'reply' instead of 'info' for + # filtering log-queries and log-replies from the log. + # log-tag-queryreply: no + # log the local-zone actions, like local-zone type inform is enabled # also for the other local zone types. # log-local-actions: no diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index b4806a2e4..b51184eec 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -661,6 +661,11 @@ Default is no. Note that it takes time to print these lines which makes the server (significantly) slower. Odd (nonprintable) characters in names are printed as '?'. .TP +.B log\-tag\-queryreply: \fI +Prints the word 'query' and 'reply' with log\-queries and log\-replies. +This makes filtering logs easier. The default is off (for backwards +compatibility). +.TP .B log\-local\-actions: \fI Print log lines to inform about local zone actions. These lines are like the local\-zone type inform prints out, but they are also printed for the other diff --git a/util/config_file.c b/util/config_file.c index 24ef0db1b..ae2ebe89e 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -119,6 +119,7 @@ config_create(void) cfg->log_time_ascii = 0; cfg->log_queries = 0; cfg->log_replies = 0; + cfg->log_tag_queryreply = 0; cfg->log_local_actions = 0; cfg->log_servfail = 0; #ifndef USE_WINSOCK @@ -560,6 +561,7 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("val-log-squelch:", val_log_squelch) else S_YNO("log-queries:", log_queries) else S_YNO("log-replies:", log_replies) + else S_YNO("log-tag-queryreply:", log_tag_queryreply) else S_YNO("log-local-actions:", log_local_actions) else S_YNO("log-servfail:", log_servfail) else S_YNO("val-permissive-mode:", val_permissive_mode) @@ -925,6 +927,7 @@ config_get_option(struct config_file* cfg, const char* opt, else O_STR(opt, "logfile", logfile) else O_YNO(opt, "log-queries", log_queries) else O_YNO(opt, "log-replies", log_replies) + else O_YNO(opt, "log-tag-queryreply", log_tag_queryreply) else O_YNO(opt, "log-local-actions", log_local_actions) else O_YNO(opt, "log-servfail", log_servfail) else O_STR(opt, "pidfile", pidfile) @@ -1903,6 +1906,7 @@ config_apply(struct config_file* config) EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; MINIMAL_RESPONSES = config->minimal_responses; RRSET_ROUNDROBIN = config->rrset_roundrobin; + LOG_TAG_QUERYREPLY = config->log_tag_queryreply; UNKNOWN_SERVER_NICENESS = config->unknown_server_time_limit; log_set_time_asc(config->log_time_ascii); autr_permit_small_holddown = config->permit_small_holddown; diff --git a/util/config_file.h b/util/config_file.h index 6083f8333..b211dbaba 100644 --- a/util/config_file.h +++ b/util/config_file.h @@ -286,6 +286,8 @@ struct config_file { int log_queries; /** log replies with one line per reply */ int log_replies; + /** tag log_queries and log_replies for filtering */ + int log_tag_queryreply; /** log every local-zone hit **/ int log_local_actions; /** log servfails with a reason */ diff --git a/util/configlexer.c b/util/configlexer.c index 02e2adbef..568723ae2 100644 --- a/util/configlexer.c +++ b/util/configlexer.c @@ -363,8 +363,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 286 -#define YY_END_OF_BUFFER 287 +#define YY_NUM_RULES 287 +#define YY_END_OF_BUFFER 288 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -372,321 +372,322 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[2845] = +static yyconst flex_int16_t yy_accept[2859] = { 0, - 1, 1, 268, 268, 272, 272, 276, 276, 280, 280, - 1, 1, 287, 284, 1, 266, 266, 285, 2, 285, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 268, 269, 269, 270, 285, 272, 273, 273, - 274, 285, 279, 276, 277, 277, 278, 285, 280, 281, - 281, 282, 285, 283, 267, 2, 271, 285, 283, 284, - 0, 1, 2, 2, 2, 2, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 268, - 0, 272, 0, 279, 0, 276, 280, 0, 283, 0, - 2, 2, 283, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 283, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 110, 284, 284, - 284, 284, 284, 284, 284, 283, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 92, 284, - 284, 284, 284, 284, 284, 8, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 115, - 284, 283, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 283, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 51, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 209, 284, - 14, 15, 284, 18, 17, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 109, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 193, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 3, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 283, 284, 284, 284, 284, 284, 284, 284, 259, - - 284, 284, 258, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 275, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 54, 284, 233, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 55, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 182, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 20, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 134, 284, 284, 275, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 90, 284, 284, - 284, 284, 284, 284, 284, 241, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 155, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 133, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 89, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 31, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 32, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 52, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 108, 284, 284, 284, - 284, 284, 107, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 53, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 156, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 42, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 224, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 46, 284, 47, 284, 284, 284, 284, 93, 284, - 94, 284, 284, 284, 284, 91, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 7, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 202, 284, 284, 284, 284, 136, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 43, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 174, - 284, 173, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 16, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 56, 284, 284, 284, 284, 284, 284, 284, 284, 181, - 284, 284, 284, 284, 284, 96, 284, 95, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 166, 284, 284, 284, - 284, 284, 284, 284, 284, 116, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 74, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 78, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 50, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 169, 170, 284, - 284, 235, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 6, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 239, 284, 284, 284, 260, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 40, - 284, 284, 284, 284, 284, 284, 284, 284, 162, 284, - 284, 284, 111, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 186, 284, 163, 284, 284, 284, 199, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 41, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 113, 101, 284, 102, - - 284, 284, 284, 100, 284, 284, 284, 284, 284, 284, - 284, 284, 131, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 223, 284, 284, 284, 284, 284, - 284, 284, 284, 164, 284, 284, 284, 284, 284, 167, - 284, 172, 284, 284, 284, 284, 198, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 88, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 48, 284, 284, 284, 25, 284, 284, - 284, 284, 284, 284, 284, 284, 19, 284, 284, 284, - - 284, 26, 35, 284, 141, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 63, 65, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 243, - 284, 284, 284, 210, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 103, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 130, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 254, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 135, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 192, 284, 284, 284, 284, 284, 284, 284, 284, 263, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 152, - 284, 284, 284, 284, 284, 284, 284, 97, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 147, 284, 157, 284, 284, - 284, 284, 284, 119, 284, 284, 284, 284, 284, 84, - 284, 284, 284, 284, 184, 284, 284, 284, 284, 284, - 284, 200, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 215, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 112, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 151, 284, 284, 284, 284, - 284, 66, 67, 284, 284, 284, 284, 284, 49, 284, - 284, 284, 284, 284, 73, 158, 284, 175, 284, 203, - 284, 168, 236, 284, 284, 284, 284, 284, 59, 284, - 160, 284, 284, 284, 284, 284, 9, 284, 284, 284, - 87, 284, 284, 284, 284, 228, 284, 284, 284, 183, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 150, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 137, 284, 242, 284, 284, 284, 284, - 214, 284, 284, 284, 284, 284, 284, 284, 284, 194, - 284, 284, 284, 284, 234, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 257, - 284, 159, 284, 284, 284, 284, 284, 284, 58, 60, - 284, 284, 284, 284, 284, 284, 284, 86, 284, 284, - - 284, 284, 226, 284, 284, 284, 238, 284, 284, 284, - 284, 284, 284, 284, 188, 33, 27, 29, 284, 284, - 284, 284, 284, 284, 284, 284, 34, 28, 30, 284, - 284, 284, 284, 284, 284, 284, 83, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 190, 187, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 57, 284, 284, 114, 284, 104, 284, 284, 284, 284, - 284, 284, 284, 284, 132, 13, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 252, 284, 255, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 12, 284, 284, - 21, 284, 284, 284, 232, 284, 284, 284, 240, 284, - 61, 284, 196, 284, 284, 189, 284, 284, 284, 284, - 284, 284, 22, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 146, 145, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 191, 185, 284, 201, - 284, 284, 244, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 68, 284, 284, - 284, 227, 284, 284, 284, 284, 171, 284, 284, 284, - - 195, 284, 284, 284, 284, 284, 284, 284, 284, 261, - 262, 143, 62, 284, 284, 153, 284, 284, 98, 99, - 284, 284, 284, 138, 284, 140, 284, 176, 284, 284, - 284, 284, 144, 284, 284, 204, 284, 284, 284, 284, - 284, 284, 284, 121, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 211, 284, 284, 284, 23, - 284, 237, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 177, 284, 284, 225, 284, 256, 284, - 284, 284, 284, 284, 44, 284, 284, 284, 284, 4, - 284, 284, 120, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 207, 36, - 37, 284, 284, 284, 284, 284, 284, 284, 245, 284, - 284, 284, 284, 284, 284, 213, 284, 284, 284, 180, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 71, - 284, 45, 231, 284, 208, 284, 284, 284, 284, 11, - 284, 284, 284, 284, 284, 284, 284, 178, 75, 284, - 39, 284, 284, 284, 284, 284, 284, 284, 149, 284, - 284, 284, 284, 284, 123, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 212, 117, 284, 284, 105, 106, - 284, 284, 284, 77, 81, 76, 284, 69, 284, 284, - - 284, 284, 284, 10, 284, 284, 284, 229, 284, 284, - 265, 38, 284, 284, 284, 284, 148, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 82, 80, 284, 70, 253, - 284, 284, 284, 284, 284, 284, 284, 165, 284, 284, - 284, 179, 284, 284, 284, 284, 284, 284, 284, 139, - 64, 284, 284, 284, 284, 284, 246, 284, 284, 284, - 284, 284, 284, 284, 118, 284, 79, 124, 125, 128, - 129, 126, 127, 72, 284, 230, 284, 142, 284, 284, - 284, 284, 284, 206, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 154, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 85, 284, 205, 284, 222, 250, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 5, 284, 197, 284, - 284, 251, 284, 284, 284, 284, 284, 284, 284, 284, - 24, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 122, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 161, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 247, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 264, 284, 284, 218, 284, 284, 284, 284, - 284, 248, 284, 284, 284, 284, 284, 284, 249, 284, - 284, 284, 216, 284, 219, 220, 284, 284, 284, 284, - 284, 217, 221, 0 + 1, 1, 269, 269, 273, 273, 277, 277, 281, 281, + 1, 1, 288, 285, 1, 267, 267, 286, 2, 286, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 269, 270, 270, 271, 286, 273, 274, 274, + 275, 286, 280, 277, 278, 278, 279, 286, 281, 282, + 282, 283, 286, 284, 268, 2, 272, 286, 284, 285, + 0, 1, 2, 2, 2, 2, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 269, + 0, 273, 0, 280, 0, 277, 281, 0, 284, 0, + 2, 2, 284, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 284, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 110, 285, 285, + 285, 285, 285, 285, 285, 284, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 92, 285, + 285, 285, 285, 285, 285, 8, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 115, + 285, 284, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 284, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 51, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 210, + 285, 14, 15, 285, 18, 17, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 109, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 194, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 3, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 284, 285, 285, 285, 285, 285, 285, + + 285, 260, 285, 285, 259, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 276, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 54, 285, 234, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 55, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 183, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 20, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 134, 285, 285, 276, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 90, 285, 285, 285, 285, 285, 285, 285, 242, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 155, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 133, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 89, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 31, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 32, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 52, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 108, 285, 285, 285, 285, 285, 107, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 53, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 156, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 42, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 225, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 46, 285, 47, 285, + 285, 285, 285, 93, 285, 94, 285, 285, 285, 285, + 91, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 7, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 203, 285, 285, 285, 285, + 136, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 43, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 175, 285, 174, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 16, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 56, 285, 285, 285, + 285, 285, 285, 285, 285, 182, 285, 285, 285, 285, + 285, 96, 285, 95, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 166, 285, 285, 285, 285, 285, 285, 285, + 285, 116, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 74, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 78, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 50, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 169, 170, 285, 285, 285, 236, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 6, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 240, 285, 285, 285, 261, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 40, 285, 285, 285, + 285, 285, 285, 285, 285, 162, 285, 285, 285, 111, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 187, 285, 163, 285, 285, 285, 200, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 41, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 113, 101, 285, 102, 285, 285, 285, + 100, 285, 285, 285, 285, 285, 285, 285, 285, 131, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 224, 285, 285, 285, 285, 285, 285, 285, 285, + 164, 285, 285, 285, 285, 285, 167, 285, 173, 285, + 285, 285, 285, 285, 199, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 88, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 48, 285, 285, 285, 25, 285, 285, 285, 285, + + 285, 285, 285, 285, 19, 285, 285, 285, 285, 26, + 35, 285, 141, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 63, 65, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 244, 285, 285, + 285, 211, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 103, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 130, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 255, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 135, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 193, + 285, 285, 285, 285, 285, 285, 285, 285, 264, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 152, 285, + 285, 285, 285, 285, 285, 285, 97, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 147, 285, 157, 285, 285, 285, + 285, 285, 119, 285, 285, 285, 285, 285, 84, 285, + 285, 285, 285, 185, 285, 285, 285, 285, 285, 285, + + 201, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 216, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 112, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 151, 285, 285, 285, 285, 285, + 66, 67, 285, 285, 285, 285, 285, 49, 285, 285, + 285, 285, 285, 73, 158, 285, 176, 285, 204, 285, + 285, 168, 237, 285, 285, 285, 285, 285, 59, 285, + 160, 285, 285, 285, 285, 285, 9, 285, 285, 285, + 87, 285, 285, 285, 285, 229, 285, 285, 285, 184, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 150, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 137, 285, 243, 285, 285, 285, 285, + 215, 285, 285, 285, 285, 285, 285, 285, 285, 195, + 285, 285, 285, 285, 235, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 258, + 285, 159, 285, 285, 285, 285, 285, 285, 285, 58, + + 60, 285, 285, 285, 285, 285, 285, 285, 86, 285, + 285, 285, 285, 227, 285, 285, 285, 239, 285, 285, + 285, 285, 285, 285, 285, 189, 33, 27, 29, 285, + 285, 285, 285, 285, 285, 285, 285, 34, 28, 30, + 285, 285, 285, 285, 285, 285, 285, 83, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 191, 188, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 57, 285, 285, 114, 285, 104, 285, 285, 285, + 285, 285, 285, 285, 285, 132, 13, 285, 285, 285, + + 285, 285, 285, 285, 285, 285, 253, 285, 256, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 12, + 285, 285, 21, 285, 285, 285, 233, 285, 285, 285, + 241, 285, 61, 285, 197, 285, 285, 190, 285, 285, + 285, 285, 285, 285, 22, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 146, 145, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 192, 186, + 285, 202, 285, 285, 245, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 68, + + 285, 285, 285, 228, 285, 285, 285, 285, 172, 285, + 285, 285, 285, 196, 285, 285, 285, 285, 285, 285, + 285, 285, 262, 263, 143, 62, 285, 285, 153, 285, + 285, 98, 99, 285, 285, 285, 138, 285, 140, 285, + 177, 285, 285, 285, 285, 144, 285, 285, 205, 285, + 285, 285, 285, 285, 285, 285, 121, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 212, 285, + 285, 285, 23, 285, 238, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 178, 285, 285, 226, + 285, 257, 285, 171, 285, 285, 285, 285, 44, 285, + + 285, 285, 285, 4, 285, 285, 120, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 208, 36, 37, 285, 285, 285, 285, 285, + 285, 285, 246, 285, 285, 285, 285, 285, 285, 214, + 285, 285, 285, 181, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 71, 285, 45, 232, 285, 209, 285, + 285, 285, 285, 11, 285, 285, 285, 285, 285, 285, + 285, 179, 75, 285, 39, 285, 285, 285, 285, 285, + 285, 285, 149, 285, 285, 285, 285, 285, 123, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 213, 117, + + 285, 285, 105, 106, 285, 285, 285, 77, 81, 76, + 285, 69, 285, 285, 285, 285, 285, 10, 285, 285, + 285, 230, 285, 285, 266, 38, 285, 285, 285, 285, + 148, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 82, + 80, 285, 70, 254, 285, 285, 285, 285, 285, 285, + 285, 165, 285, 285, 285, 180, 285, 285, 285, 285, + 285, 285, 285, 139, 64, 285, 285, 285, 285, 285, + 247, 285, 285, 285, 285, 285, 285, 285, 118, 285, + 79, 124, 125, 128, 129, 126, 127, 72, 285, 231, + + 285, 142, 285, 285, 285, 285, 285, 207, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 154, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 85, 285, 206, 285, 223, 251, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 5, 285, 198, 285, 285, 252, 285, 285, 285, 285, + 285, 285, 285, 285, 24, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 122, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 161, 285, + + 285, 285, 285, 285, 285, 285, 285, 285, 248, 285, + 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, + 285, 285, 285, 285, 285, 285, 265, 285, 285, 219, + 285, 285, 285, 285, 285, 249, 285, 285, 285, 285, + 285, 285, 250, 285, 285, 285, 217, 285, 220, 221, + 285, 285, 285, 285, 285, 218, 222, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -729,15 +730,15 @@ static yyconst YY_CHAR yy_meta[41] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[2859] = +static yyconst flex_uint16_t yy_base[2873] = { 0, 0, 0, 38, 41, 44, 46, 59, 65, 71, 77, - 90, 112, 2455, 2203, 81, 5552, 5552, 5552, 96, 52, + 90, 112, 2379, 2266, 81, 5585, 5585, 5585, 96, 52, 106, 63, 107, 111, 70, 128, 130, 133, 57, 88, 76, 135, 141, 117, 148, 145, 160, 164, 185, 176, - 191, 152, 1950, 5552, 5552, 5552, 107, 1843, 5552, 5552, - 5552, 165, 1756, 1310, 5552, 5552, 5552, 211, 1251, 5552, - 5552, 5552, 180, 1045, 5552, 217, 5552, 221, 168, 918, + 191, 152, 2238, 5585, 5585, 5585, 107, 2112, 5585, 5585, + 5585, 165, 1772, 1584, 5585, 5585, 5585, 211, 1467, 5585, + 5585, 5585, 180, 1048, 5585, 217, 5585, 221, 168, 918, 225, 189, 0, 232, 0, 0, 226, 189, 85, 221, 114, 227, 234, 156, 219, 235, 239, 236, 238, 132, 246, 242, 241, 252, 244, 247, 266, 243, 258, 273, @@ -767,7 +768,7 @@ static yyconst flex_uint16_t yy_base[2859] = 689, 703, 705, 717, 718, 713, 719, 720, 722, 724, 727, 725, 728, 735, 736, 737, 738, 739, 747, 742, 744, 751, 750, 752, 761, 746, 765, 767, 759, 769, - 770, 792, 777, 775, 772, 785, 780, 5552, 798, 788, + 770, 792, 777, 775, 772, 785, 780, 5585, 798, 788, 818, 789, 790, 825, 803, 805, 810, 807, 814, 812, 841, 816, 827, 836, 844, 828, 839, 840, 843, 849, 846, 862, 852, 845, 855, 857, 869, 864, 866, 868, @@ -775,597 +776,601 @@ static yyconst flex_uint16_t yy_base[2859] = 887, 891, 894, 895, 897, 899, 896, 910, 904, 921, 903, 916, 923, 920, 911, 928, 926, 930, 932, 933, - 942, 937, 938, 940, 943, 944, 946, 947, 950, 951, - 952, 954, 956, 962, 965, 958, 967, 971, 5552, 975, - 968, 973, 977, 978, 979, 5552, 982, 983, 980, 990, - 987, 999, 992, 995, 1004, 1007, 985, 1008, 1016, 1006, - 1013, 1014, 1017, 1019, 1021, 1022, 1024, 1025, 1027, 1047, - 1030, 1028, 1031, 1032, 1033, 1040, 1052, 1039, 1059, 1042, - 1056, 1074, 1060, 1069, 1062, 1070, 1077, 1071, 1080, 1082, - 1075, 1083, 1084, 1086, 1088, 1091, 1092, 1089, 1095, 5552, - 1105, 1102, 1113, 1109, 1110, 1099, 1112, 1115, 1116, 1119, - 1120, 1122, 1127, 1129, 1137, 1132, 1142, 1138, 1140, 1139, - - 1141, 1146, 1145, 1149, 1147, 1160, 1157, 1162, 1167, 1175, - 1172, 1174, 1182, 1164, 1152, 1178, 1177, 1179, 1181, 1186, - 1094, 1180, 1188, 1195, 1190, 1193, 1197, 1198, 1206, 1203, - 1201, 1204, 1205, 1209, 1213, 1214, 1217, 1220, 1221, 1230, - 1226, 1225, 1229, 1227, 1237, 1238, 1241, 1242, 1239, 1244, - 1245, 1247, 1250, 1248, 1253, 1254, 1256, 1264, 1266, 1270, - 1271, 1275, 1261, 1262, 1283, 1281, 1284, 1282, 1287, 1294, - 1289, 1290, 1291, 1301, 1296, 1297, 1299, 1305, 1313, 1300, - 1309, 1322, 1317, 1319, 1324, 1320, 1325, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1336, 1338, 1340, 1335, 1345, 1341, - - 1355, 1359, 1360, 1342, 1362, 1363, 1364, 1365, 1366, 1368, - 1371, 1369, 1374, 1375, 1377, 1376, 1386, 1379, 1380, 1389, - 1393, 1392, 1396, 1401, 1404, 1398, 1405, 1408, 1407, 1410, - 1411, 1413, 1422, 1420, 1414, 1426, 1415, 1427, 1429, 1432, - 1433, 1437, 1438, 5552, 1439, 1446, 1443, 1444, 1445, 1449, - 1451, 1459, 1452, 1454, 1455, 1456, 1462, 1466, 5552, 1464, - 5552, 5552, 1467, 5552, 5552, 1468, 1470, 1480, 1483, 1489, - 1491, 1486, 1493, 1494, 1495, 1504, 1516, 1500, 1501, 1503, - 1499, 1506, 1513, 1465, 1525, 1514, 1530, 1502, 1533, 1527, - 1537, 1538, 1540, 1541, 1542, 1544, 1543, 1546, 1549, 1552, - - 1553, 1555, 1548, 1556, 1565, 1558, 1575, 5552, 1567, 1577, - 1582, 1579, 1586, 1585, 1581, 1583, 1589, 1590, 1593, 1561, - 1592, 1595, 1510, 1596, 1605, 1600, 5552, 1601, 1603, 1602, - 1606, 1613, 1609, 1617, 1618, 1620, 1622, 1623, 1624, 1625, - 1627, 5552, 1626, 1635, 1629, 1636, 1632, 1639, 1640, 1644, - 1645, 1646, 1647, 1652, 1648, 1662, 1654, 1657, 1658, 1661, - 1668, 1664, 1671, 1673, 1679, 1680, 1681, 1682, 1683, 1684, - 1691, 1686, 1693, 1688, 1696, 1698, 1703, 1694, 1697, 1706, - 1695, 1714, 1718, 1719, 1710, 1720, 1727, 1723, 1725, 1726, - 1729, 1731, 1732, 1735, 1736, 1738, 1741, 1740, 1746, 5552, - - 1742, 1748, 5552, 1749, 1750, 1772, 1751, 1753, 1755, 1759, - 1754, 1763, 1774, 1764, 1768, 1776, 1786, 1782, 1787, 1784, - 1792, 1795, 1794, 1798, 1801, 1803, 1810, 1811, 1813, 1821, - 1820, 1802, 1806, 1817, 1836, 1818, 1822, 1826, 1829, 1831, - 1823, 1838, 1833, 1834, 1839, 1849, 1857, 5552, 1851, 1860, - 1852, 1854, 1865, 1864, 1866, 1868, 1870, 1872, 1880, 1873, - 1875, 1876, 1878, 1883, 1884, 1887, 1886, 1891, 1890, 1907, - 5552, 1889, 5552, 1892, 1893, 1902, 1903, 1908, 1909, 1910, - 1911, 1914, 1918, 1922, 1931, 1920, 5552, 1912, 1935, 1936, - 1938, 1930, 1932, 1939, 1942, 1943, 1951, 1946, 1953, 1956, - - 1948, 1949, 1960, 1961, 1962, 1963, 1964, 5552, 1972, 1970, - 1973, 1980, 1982, 1975, 1971, 1985, 1983, 1987, 1990, 1991, - 1992, 1999, 2002, 1995, 1998, 2004, 2013, 5552, 1997, 2008, - 2017, 2019, 2012, 2014, 2020, 2022, 2016, 2024, 2026, 2029, - 2036, 2037, 2034, 2035, 2044, 2033, 2039, 2045, 2050, 2041, - 2047, 2051, 2054, 5552, 2055, 2061, 124, 2058, 2062, 2063, - 2064, 2067, 2066, 2068, 2084, 2086, 2082, 2071, 2085, 2081, - 2083, 2089, 2091, 2092, 2093, 2098, 2096, 5552, 2102, 2103, - 2104, 2099, 2110, 2105, 2107, 5552, 2108, 2119, 2120, 2118, - 2128, 2129, 2130, 2133, 2134, 2135, 2137, 2136, 5552, 2142, - - 2144, 2145, 2143, 2146, 2152, 2157, 2154, 2158, 2159, 2160, - 2161, 2164, 2162, 2165, 2167, 2168, 2175, 2170, 2177, 2179, - 2180, 5552, 2193, 2182, 2183, 2190, 2195, 2192, 2207, 2194, - 2198, 2202, 2208, 2216, 2205, 2211, 2223, 2226, 2214, 2222, - 2234, 2232, 2233, 2240, 2242, 2244, 2230, 2236, 2246, 2245, - 2248, 2252, 2251, 2262, 2263, 2259, 2267, 2261, 2272, 2260, - 2274, 5552, 2276, 2268, 2278, 2282, 2290, 2286, 2287, 2288, - 2294, 2293, 2295, 2297, 2299, 2301, 2304, 2298, 2309, 2300, - 2310, 2317, 2311, 2320, 2321, 5552, 2328, 2324, 2322, 2333, - 2330, 2335, 2336, 2338, 2339, 2340, 2345, 2342, 2346, 2347, - - 2348, 2354, 2355, 5552, 2356, 2364, 2365, 2358, 2368, 2371, - 2351, 2372, 2374, 2375, 2378, 2380, 5552, 2388, 2389, 2379, - 2396, 2386, 2387, 2391, 2398, 2394, 5552, 2399, 2400, 2407, - 2409, 2404, 5552, 2411, 2408, 2412, 2413, 2415, 2416, 2417, - 2420, 2421, 2424, 2426, 2436, 2427, 2433, 5552, 2430, 2445, - 2437, 2443, 2448, 2447, 2451, 2453, 2454, 2458, 2463, 2470, - 2465, 2467, 2457, 2472, 2473, 2474, 2475, 2480, 2481, 5552, - 2482, 2484, 2486, 2487, 2490, 2489, 2492, 2503, 2483, 2499, - 2500, 2505, 2506, 2508, 2510, 2509, 2512, 2513, 2519, 2522, - 2524, 2526, 2525, 2529, 2536, 2541, 2537, 2542, 5552, 2545, - - 2547, 2540, 2548, 2550, 2552, 2553, 2554, 2556, 2557, 2558, - 2559, 2561, 2575, 2578, 2562, 2570, 2568, 2579, 2581, 2583, - 2584, 2585, 2592, 2588, 2589, 2597, 2594, 2595, 2605, 2600, - 2606, 2607, 2608, 2596, 2609, 2614, 2611, 2617, 2616, 2622, - 2618, 2631, 2624, 2632, 2633, 2634, 5552, 2638, 2639, 2642, - 2644, 2648, 2645, 2651, 2655, 2657, 2649, 2652, 2658, 2671, - 2664, 5552, 2666, 5552, 2667, 2668, 2674, 2682, 5552, 2680, - 5552, 2683, 2690, 2677, 2681, 5552, 2691, 2672, 2687, 2698, - 2685, 2695, 2701, 2702, 2704, 2705, 2707, 2708, 2710, 2711, - 2712, 2713, 2715, 2719, 2718, 2725, 2721, 2730, 2727, 2733, - - 2734, 5552, 2736, 2737, 2740, 2742, 2744, 2745, 2746, 2748, - 2749, 2751, 2750, 2760, 2756, 2764, 2763, 2773, 2757, 2778, - 5552, 2774, 2780, 2775, 2781, 5552, 2784, 2782, 2785, 2790, - 2783, 2792, 2793, 2795, 2799, 2801, 2796, 2809, 2811, 2802, - 2814, 2817, 2803, 2818, 2825, 2824, 2830, 2832, 2826, 2834, - 2835, 2836, 2837, 2838, 2840, 2847, 2850, 2846, 2855, 2842, - 2852, 2860, 2861, 2845, 2853, 2862, 2864, 2867, 2868, 2870, - 2875, 2871, 2872, 2874, 2876, 5552, 2885, 2879, 2889, 2886, - 2890, 2893, 2877, 2895, 2900, 2896, 2903, 2906, 2898, 5552, - 2902, 5552, 2904, 2916, 2921, 2924, 2925, 2927, 2932, 2926, - - 2928, 2933, 2935, 2934, 2936, 2941, 2942, 2945, 2946, 2949, - 2959, 2944, 2956, 2948, 2951, 2960, 2962, 5552, 2963, 2967, - 2970, 2968, 2972, 2973, 2979, 2977, 2975, 2982, 2983, 2996, - 5552, 2991, 2998, 2997, 3000, 3008, 3004, 3012, 3007, 5552, - 3010, 3011, 3020, 3016, 3018, 5552, 3023, 5552, 3017, 3019, - 3024, 3026, 3028, 3033, 3034, 3037, 3045, 3040, 3022, 3043, - 3044, 3047, 3055, 3050, 3052, 3056, 5552, 3058, 3059, 2908, - 3062, 3064, 3065, 3066, 3054, 5552, 3071, 3081, 3073, 3076, - 3078, 3083, 3084, 3087, 3089, 3090, 3085, 3091, 3099, 3095, - 3096, 3100, 3109, 3110, 3116, 5552, 3112, 3118, 3125, 3121, - - 3122, 3103, 3123, 3124, 3128, 3129, 3130, 3131, 3132, 3133, - 3137, 3135, 3142, 3138, 3139, 3156, 3149, 3146, 3153, 3157, - 3159, 3160, 3161, 3165, 3169, 3171, 3163, 3181, 3184, 3174, - 3176, 3187, 3178, 3194, 3189, 5552, 3196, 3191, 3199, 3198, - 3200, 3202, 3204, 3212, 3207, 3208, 3210, 3217, 3213, 5552, - 3235, 3218, 3214, 3225, 3222, 3244, 3215, 3227, 3231, 3240, - 3241, 3242, 3245, 3246, 3248, 3251, 3253, 5552, 5552, 3255, - 3257, 5552, 3260, 3256, 3264, 3262, 3259, 3263, 3272, 3274, - 3270, 3275, 3271, 3282, 5552, 3281, 3290, 3285, 3287, 3295, - 3299, 3292, 3301, 3300, 3288, 3302, 3303, 3304, 3310, 3311, - - 3312, 3320, 3316, 3317, 3318, 5552, 3319, 3323, 3325, 5552, - 3324, 3326, 3327, 3335, 3346, 3347, 3341, 3349, 3329, 3353, - 3354, 3355, 3356, 3364, 3362, 3360, 3369, 3370, 3374, 3372, - 3380, 3382, 3390, 3391, 3392, 3361, 3393, 3394, 3401, 5552, - 3396, 3399, 3397, 3400, 3410, 3402, 3411, 3407, 5552, 3414, - 3412, 3413, 5552, 3331, 3415, 3421, 3423, 3417, 3433, 3428, - 3430, 3432, 3436, 5552, 3439, 5552, 3363, 3429, 3442, 5552, - 3440, 3446, 3448, 3450, 3447, 3454, 3455, 3462, 3451, 3457, - 3463, 3464, 3465, 3467, 3474, 3470, 5552, 3475, 3473, 3477, - 3478, 3480, 3482, 3485, 3488, 3490, 5552, 5552, 3496, 5552, - - 3497, 3492, 3498, 5552, 3501, 3499, 3510, 3502, 3511, 3505, - 3518, 3515, 5552, 3520, 3509, 3521, 3524, 3525, 3526, 3528, - 3530, 3531, 3532, 3535, 5552, 3536, 3537, 3544, 3534, 3539, - 3545, 3550, 3551, 5552, 3553, 3560, 3561, 3563, 3565, 5552, - 3564, 5552, 3566, 3569, 3574, 3567, 5552, 3578, 3570, 3583, - 3577, 3585, 3587, 3588, 3591, 3592, 3594, 3601, 3597, 3598, - 3599, 5552, 3600, 3604, 3606, 3608, 3612, 3613, 3621, 3617, - 3623, 3616, 3629, 3626, 3630, 3634, 3636, 3637, 3639, 3640, - 3648, 3643, 3644, 5552, 3650, 3653, 3654, 5552, 3651, 3655, - 3666, 3660, 3663, 3657, 3668, 3669, 5552, 3667, 3671, 3672, - - 3680, 5552, 5552, 3670, 5552, 3686, 3674, 3687, 3688, 3690, - 3691, 3694, 3695, 3699, 3701, 3703, 3705, 3696, 3714, 3717, - 3718, 3716, 3721, 3722, 5552, 5552, 3724, 3725, 3727, 3731, - 3732, 3734, 3735, 3743, 3739, 3747, 3750, 3752, 3760, 5552, - 3741, 3738, 3755, 5552, 3756, 3761, 3762, 3763, 3764, 3765, - 3768, 3771, 3772, 3767, 3774, 3773, 3775, 3777, 3786, 3780, - 3788, 3790, 5552, 3792, 3794, 3795, 3797, 3798, 3802, 3803, - 3804, 3805, 5552, 3808, 3810, 3812, 3817, 3811, 3818, 3827, - 3833, 3835, 3829, 3836, 3837, 3839, 3841, 3842, 5552, 3845, - 3843, 3846, 3807, 3853, 3855, 3856, 3858, 3859, 3861, 3864, - - 3868, 3870, 3862, 3865, 3871, 3872, 5552, 3873, 3881, 3882, - 3884, 3886, 3887, 3889, 3894, 3897, 3888, 3890, 3898, 3900, - 5552, 3902, 3903, 3906, 3908, 3914, 3909, 3915, 3916, 5552, - 3919, 3920, 3925, 3923, 3924, 3933, 3927, 3939, 3929, 5552, - 3935, 3938, 3946, 3942, 3944, 3945, 3948, 5552, 3954, 3955, - 3956, 3958, 3961, 3968, 3964, 3963, 3965, 3970, 3972, 3974, - 3975, 3973, 3986, 3991, 3989, 5552, 3976, 5552, 3990, 3994, - 3998, 4000, 3997, 5552, 4002, 4004, 4006, 4007, 4003, 5552, - 4011, 4008, 4010, 4014, 5552, 4013, 4027, 4015, 4021, 4029, - 4030, 5552, 4037, 4038, 4034, 4046, 4048, 4044, 4045, 4049, - - 4051, 4047, 4052, 4053, 5552, 4056, 4055, 4065, 4057, 4066, - 4067, 4068, 4070, 4073, 5552, 4074, 4076, 4077, 4078, 4080, - 4081, 4083, 4091, 4089, 4082, 5552, 4090, 4093, 4105, 4094, - 4107, 5552, 5552, 4103, 4110, 4112, 4104, 4113, 5552, 4116, - 4124, 4119, 4122, 4123, 5552, 5552, 4126, 5552, 4127, 5552, - 4128, 5552, 5552, 4129, 4133, 4135, 4136, 4138, 5552, 4144, - 5552, 4152, 4147, 4139, 4149, 4151, 5552, 4150, 4153, 4158, - 5552, 4154, 4166, 4161, 4162, 5552, 4168, 4164, 4170, 5552, - 4172, 4175, 4176, 4180, 4182, 4178, 4186, 4187, 4189, 4191, - 4196, 4198, 4202, 4193, 4199, 4203, 4208, 4206, 4210, 4211, - - 4212, 4214, 4216, 4220, 4221, 4223, 4224, 4225, 4227, 4226, - 4229, 4235, 4238, 4237, 4239, 4240, 4241, 4242, 4243, 4248, - 4251, 4252, 5552, 4250, 4254, 4255, 4258, 4260, 4264, 4270, - 4272, 4280, 4281, 5552, 4283, 5552, 4285, 4273, 4277, 4287, - 5552, 4289, 4290, 4292, 4293, 4294, 4295, 4298, 4296, 5552, - 4300, 4301, 4302, 4305, 5552, 4310, 4318, 4307, 4312, 4320, - 4321, 4322, 4324, 4328, 4326, 4332, 4334, 4335, 4337, 4338, - 4339, 4341, 4343, 4347, 4349, 4348, 4352, 4357, 4361, 5552, - 4356, 5552, 4362, 4364, 4365, 4368, 4366, 4369, 5552, 5552, - 4370, 4374, 4379, 4372, 4376, 4381, 4389, 5552, 4382, 4391, - - 4399, 4392, 5552, 4384, 4396, 4401, 5552, 4402, 4407, 4403, - 4409, 4410, 4411, 4413, 5552, 5552, 5552, 5552, 4417, 4419, - 4420, 4421, 4426, 4427, 4425, 4428, 5552, 5552, 5552, 4432, - 4430, 4440, 4431, 4429, 4438, 4442, 5552, 4446, 4449, 4451, - 4452, 4458, 4460, 4455, 4463, 4453, 4464, 4472, 4465, 4473, - 4469, 4475, 4477, 4479, 5552, 5552, 4481, 4486, 4487, 4489, - 4491, 4492, 4499, 4498, 4495, 4501, 4503, 4504, 4506, 4505, - 5552, 4508, 4516, 5552, 4509, 5552, 4515, 4522, 4507, 4523, - 4524, 4526, 4528, 4530, 5552, 5552, 4531, 4514, 4532, 4538, - 4540, 4543, 4541, 4545, 4542, 5552, 4547, 5552, 4546, 4549, - - 4555, 4563, 4564, 4571, 4568, 4569, 4570, 5552, 4572, 4560, - 5552, 4574, 4576, 4579, 5552, 4582, 4585, 4587, 5552, 4589, - 5552, 4592, 5552, 4580, 4599, 5552, 4595, 4596, 4602, 4604, - 4605, 4606, 5552, 4607, 4610, 4611, 4614, 4616, 4618, 4620, - 4621, 4622, 4629, 4627, 4624, 5552, 5552, 4638, 4630, 4634, - 4635, 4640, 4647, 4642, 4644, 4650, 5552, 5552, 4651, 5552, - 4652, 4658, 5552, 4643, 4659, 4657, 4664, 4645, 4665, 4666, - 4671, 4672, 4673, 4683, 4676, 4679, 4686, 4688, 4692, 4696, - 4684, 4694, 4690, 4698, 4702, 4701, 4703, 5552, 4705, 4706, - 4707, 5552, 4713, 4708, 4717, 4714, 5552, 4718, 4720, 4722, - - 5552, 4726, 4733, 4730, 4728, 4735, 4742, 4738, 4739, 5552, - 5552, 5552, 5552, 4746, 4740, 5552, 4743, 4747, 5552, 5552, - 4749, 4753, 4755, 5552, 4754, 5552, 4756, 5552, 4760, 4763, - 4769, 4764, 5552, 4767, 4778, 5552, 4781, 4784, 4786, 4787, - 4771, 4757, 4788, 5552, 4795, 4792, 4794, 4801, 4790, 4798, - 4802, 4803, 4810, 4805, 4812, 5552, 4806, 4809, 4813, 5552, - 4815, 5552, 4816, 4818, 4822, 4823, 4820, 4827, 4834, 4835, - 4817, 4838, 4828, 5552, 4845, 4849, 5552, 4839, 5552, 4851, - 4841, 4852, 4853, 4854, 5552, 4856, 4858, 4861, 4862, 5552, - 4863, 4865, 5552, 4866, 4867, 4873, 4875, 4870, 4877, 4882, - - 4880, 4892, 4883, 4885, 4887, 4894, 4895, 4903, 5552, 5552, - 5552, 4899, 4888, 4912, 4910, 4913, 4920, 4901, 5552, 4917, - 4918, 4905, 4921, 4925, 4927, 5552, 4929, 4930, 4931, 5552, - 4933, 4935, 4936, 4937, 4939, 4946, 4948, 4953, 4950, 5552, - 4957, 5552, 5552, 4954, 5552, 4938, 4958, 4959, 4961, 5552, - 4964, 4965, 4966, 4967, 4969, 4970, 4972, 5552, 5552, 4975, - 5552, 4983, 4971, 4984, 4987, 4988, 4991, 4992, 5552, 4993, - 4994, 4995, 4998, 5001, 5552, 5003, 5002, 5004, 5005, 5008, - 5006, 5012, 5015, 5018, 5552, 5552, 5017, 5019, 5552, 5552, - 5028, 5034, 5016, 5552, 5552, 5552, 5039, 5552, 5041, 5045, - - 5049, 5053, 5031, 5552, 5055, 5044, 5052, 5552, 5056, 5058, - 5552, 5552, 5060, 5059, 5064, 5065, 5552, 5068, 5069, 5070, - 5075, 5077, 5072, 5079, 5081, 5089, 5091, 5082, 5094, 5092, - 5095, 5096, 5097, 5099, 5103, 5552, 5552, 5105, 5552, 5552, - 5111, 5115, 5118, 5120, 5122, 5124, 5126, 5552, 5127, 5129, - 5112, 5552, 5131, 5133, 5134, 5137, 5138, 5135, 5141, 5552, - 5552, 5142, 5143, 5144, 5151, 5145, 5552, 5153, 5161, 5154, - 5157, 5158, 5164, 5159, 5552, 5165, 5552, 5552, 5552, 5552, - 5552, 5552, 5552, 5552, 5166, 5552, 5172, 5552, 5167, 5174, - 5102, 5173, 5178, 5552, 5176, 5184, 5181, 5185, 5179, 5188, - - 5191, 5196, 5198, 5197, 5200, 5202, 5201, 5203, 5552, 5205, - 5206, 5208, 5209, 5211, 5220, 5228, 5230, 5212, 5214, 5232, - 5233, 5236, 5224, 5237, 5245, 5240, 5242, 5244, 5246, 5248, - 5552, 5251, 5552, 5250, 5552, 5552, 5256, 5257, 5253, 5259, - 5269, 5270, 5260, 5267, 5271, 5273, 5552, 5275, 5552, 5277, - 5279, 5552, 5276, 5281, 5282, 5284, 5285, 5287, 5288, 5289, - 5552, 5292, 5299, 5303, 5300, 5313, 5308, 5311, 5312, 5314, - 5304, 5321, 5320, 5327, 5552, 5324, 5322, 5329, 5330, 5331, - 5338, 5333, 5334, 5339, 5552, 5343, 5344, 5346, 5335, 5345, - 5348, 5357, 5355, 5359, 5552, 5337, 5365, 5362, 5367, 5369, - - 5371, 5373, 5374, 5378, 5379, 5383, 5387, 5375, 5388, 5389, - 5391, 5390, 5552, 5398, 5392, 5552, 5394, 5400, 5401, 5402, - 5403, 5552, 5407, 5410, 5412, 5413, 5416, 5417, 5552, 5419, - 5423, 5425, 5552, 5428, 5552, 5552, 5430, 5426, 5427, 5437, - 5439, 5552, 5552, 5552, 5460, 5467, 5474, 5481, 5488, 88, - 5495, 5502, 5509, 5516, 5523, 5530, 5537, 5544 + 942, 937, 938, 940, 943, 944, 946, 950, 951, 952, + 954, 956, 960, 957, 967, 958, 965, 972, 5585, 974, + 976, 977, 978, 979, 980, 5585, 982, 981, 984, 989, + 994, 996, 988, 991, 1004, 1013, 1006, 1008, 1016, 995, + 1014, 1017, 1020, 1018, 1023, 1021, 1024, 1027, 1025, 1045, + 1030, 1032, 1031, 1033, 1038, 1056, 1037, 1040, 1057, 1058, + 1063, 1073, 1066, 1076, 1068, 1049, 1080, 1070, 1083, 1075, + 1077, 1085, 1086, 1087, 1088, 1092, 1094, 1096, 1097, 5585, + 1098, 1102, 1110, 1108, 1099, 1112, 1115, 1117, 1116, 1118, + 1123, 1119, 1125, 1127, 1130, 1128, 1141, 1137, 1139, 1138, + + 1143, 1145, 1144, 1146, 1148, 1157, 1153, 1160, 1168, 1169, + 1171, 1173, 1180, 1154, 1176, 1177, 1178, 1181, 1183, 1185, + 1161, 1187, 1188, 1199, 1191, 1194, 1196, 1198, 1208, 1200, + 1203, 1207, 1204, 1213, 1209, 1211, 1220, 1221, 1223, 1230, + 1228, 1226, 1232, 1234, 1240, 1241, 1231, 1233, 1242, 1244, + 1245, 1248, 1253, 1254, 1255, 1256, 1260, 1259, 1267, 1264, + 1262, 1273, 1275, 1266, 1277, 1285, 1278, 1287, 1286, 1288, + 1296, 1292, 1294, 1282, 1303, 1298, 1299, 1304, 1310, 1306, + 1311, 1314, 1321, 1324, 1312, 1316, 1322, 1327, 1326, 1330, + 1331, 1332, 1333, 1334, 1336, 1335, 1339, 1340, 1342, 1343, + + 1347, 1352, 1356, 1357, 1359, 1360, 1363, 1364, 1365, 1366, + 1368, 1371, 1372, 1376, 1374, 1375, 1377, 1389, 1381, 1388, + 1390, 1392, 1395, 1398, 1396, 1404, 1402, 1406, 1408, 1410, + 1412, 1411, 1414, 1415, 1422, 1416, 1425, 1427, 1429, 1428, + 1432, 1435, 1438, 1439, 5585, 1433, 1446, 1441, 1447, 1445, + 1450, 1453, 1460, 1455, 1458, 1456, 1459, 1462, 1464, 5585, + 1466, 5585, 5585, 1468, 5585, 5585, 1470, 1472, 1477, 1487, + 1488, 1494, 1490, 1480, 1492, 1496, 1503, 1517, 1499, 1502, + 1507, 1505, 1508, 1510, 1513, 1514, 1512, 1531, 1528, 1534, + 1538, 1539, 1540, 1526, 1542, 1544, 1547, 1548, 1549, 1553, + + 1551, 1554, 1557, 1558, 1500, 1567, 1569, 1560, 1577, 5585, + 1573, 1585, 1586, 1582, 1589, 1581, 1588, 1590, 1591, 1592, + 1595, 1596, 1593, 1563, 1597, 1601, 1608, 1604, 5585, 1605, + 1607, 1613, 1611, 1619, 1621, 1615, 1617, 1624, 1628, 1627, + 1630, 1631, 1633, 5585, 1632, 1638, 1635, 1640, 1641, 1647, + 1648, 1649, 1650, 1651, 1653, 1654, 1658, 1665, 1652, 1663, + 1664, 1666, 1673, 1674, 1676, 1685, 1669, 1678, 1682, 1686, + 1690, 1691, 1698, 1693, 1700, 1695, 1703, 1705, 1704, 1701, + 1709, 1713, 1696, 1722, 1716, 1724, 1714, 1725, 1734, 1719, + 1731, 1726, 1735, 1737, 1733, 1741, 1742, 1746, 1747, 1749, + + 1750, 5585, 1751, 1752, 5585, 1753, 1755, 1777, 1756, 1758, + 1759, 1761, 1764, 1779, 1763, 1770, 1785, 1781, 1797, 1787, + 1799, 1792, 1800, 1804, 1794, 1802, 1806, 1765, 1816, 1817, + 1813, 1819, 1824, 1821, 1822, 1826, 1845, 1825, 1827, 1828, + 1835, 1829, 1831, 1840, 1838, 1839, 1849, 1834, 1850, 5585, + 1861, 1857, 1856, 1863, 1872, 1862, 1869, 1870, 1873, 1874, + 1883, 1878, 1880, 1881, 1884, 1889, 1885, 1894, 1891, 1892, + 1896, 1893, 1913, 5585, 1895, 5585, 1898, 1897, 1908, 1909, + 1914, 1915, 1916, 1919, 1920, 1922, 1928, 1939, 1934, 5585, + 1926, 1941, 1944, 1943, 1936, 1918, 1937, 1949, 1951, 1958, + + 1953, 1960, 1956, 1957, 1963, 1964, 1961, 1965, 1967, 1971, + 5585, 1974, 1975, 1976, 1985, 1987, 1981, 1984, 1989, 1988, + 1993, 1994, 1995, 1996, 2003, 2005, 2008, 2010, 2011, 2007, + 5585, 2000, 2004, 2023, 2020, 2021, 2022, 2025, 2026, 2027, + 2031, 2032, 2033, 2041, 2042, 2039, 2043, 2046, 2034, 2037, + 2047, 2060, 2050, 2055, 2057, 2058, 5585, 2061, 2063, 124, + 2065, 2066, 2070, 2067, 2069, 2074, 2071, 2090, 2092, 2088, + 2075, 2089, 2085, 2087, 2095, 2096, 2097, 2098, 2102, 2103, + 5585, 2107, 2104, 2108, 2109, 2113, 2110, 2115, 5585, 2127, + 2132, 2114, 2125, 2133, 2123, 2135, 2138, 2140, 2142, 2145, + + 2146, 5585, 2149, 2150, 2152, 2151, 2153, 2160, 2154, 2161, + 2162, 2166, 2167, 2168, 2173, 2169, 2170, 2172, 2174, 2178, + 2175, 2182, 2186, 2187, 5585, 2194, 2191, 2195, 2197, 2199, + 2198, 2213, 2200, 2201, 2208, 2222, 2224, 2214, 2209, 2226, + 2230, 2211, 2225, 2241, 2239, 2240, 2248, 2236, 2250, 2253, + 2242, 2228, 2252, 2254, 2255, 2259, 2263, 2270, 2271, 2267, + 2275, 2268, 2289, 2278, 2269, 5585, 2283, 2285, 2291, 2292, + 2299, 2294, 2297, 2296, 2295, 2303, 2305, 2306, 2307, 2308, + 2311, 2317, 2312, 2315, 2318, 2320, 2327, 2329, 2331, 5585, + 2332, 2334, 2336, 2338, 2341, 2344, 2345, 2347, 2348, 2349, + + 2351, 2353, 2354, 2356, 2358, 2359, 2360, 5585, 2364, 2366, + 2372, 2374, 2375, 2378, 2384, 2381, 2379, 2387, 2388, 2389, + 5585, 2396, 2398, 2394, 2406, 2401, 2403, 2404, 2408, 2391, + 5585, 2405, 2409, 2418, 2419, 2414, 5585, 2423, 2416, 2421, + 2426, 2428, 2427, 2433, 2424, 2429, 2431, 2435, 2447, 2437, + 2443, 5585, 2439, 2456, 2451, 2452, 2457, 2453, 2459, 2462, + 2463, 2464, 2470, 2478, 2475, 2476, 2473, 2481, 2482, 2483, + 2485, 2486, 2489, 5585, 2490, 2493, 2494, 2495, 2497, 2498, + 2499, 2508, 2505, 2506, 2510, 2513, 2514, 2515, 2521, 2520, + 2530, 2519, 2522, 2532, 2523, 2536, 2539, 2540, 2547, 2549, + + 2550, 2552, 5585, 2555, 2544, 2556, 2546, 2557, 2558, 2559, + 2561, 2563, 2567, 2569, 2568, 2570, 2578, 2585, 2576, 2580, + 2586, 2587, 2588, 2590, 2591, 2592, 2593, 2600, 2598, 2599, + 2607, 2602, 2608, 2615, 2604, 2613, 2616, 2617, 2619, 2618, + 2622, 2626, 2628, 2629, 2643, 2640, 2620, 2634, 2644, 2638, + 2646, 5585, 2649, 2655, 2630, 2656, 2658, 2659, 2661, 2663, + 2669, 2660, 2668, 2662, 2677, 2675, 5585, 2676, 5585, 2678, + 2679, 2687, 2689, 5585, 2691, 5585, 2692, 2697, 2685, 2693, + 5585, 2700, 2698, 2702, 2704, 2706, 2707, 2708, 2714, 2712, + 2710, 2716, 2719, 2717, 2722, 2724, 2723, 2727, 2732, 2733, + + 2734, 2737, 2739, 2742, 2743, 2744, 5585, 2748, 2745, 2751, + 2752, 2754, 2755, 2756, 2761, 2758, 2764, 2760, 2770, 2767, + 2774, 2777, 2779, 2781, 2789, 5585, 2785, 2791, 2786, 2788, + 5585, 2792, 2793, 2795, 2802, 2798, 2800, 2804, 2806, 2807, + 2810, 2811, 2820, 2821, 2824, 2816, 2827, 2814, 2830, 2834, + 2835, 2836, 2841, 2849, 2845, 2844, 2846, 2847, 2848, 2851, + 2858, 2859, 2855, 2862, 2861, 2865, 2872, 2869, 2863, 2867, + 2873, 2875, 2876, 2879, 2882, 2883, 2878, 2880, 2885, 2886, + 5585, 2897, 2888, 2901, 2902, 2894, 2904, 2892, 2905, 2910, + 2911, 2913, 2912, 2914, 5585, 2917, 5585, 2915, 2922, 2928, + + 2934, 2929, 2931, 2935, 2943, 2939, 2936, 2945, 2946, 2944, + 2948, 2947, 2953, 2957, 2958, 2960, 2962, 2959, 2965, 2968, + 2970, 2971, 2973, 5585, 2974, 2975, 2976, 2980, 2981, 2983, + 2991, 2989, 2982, 2994, 2995, 3003, 5585, 3004, 3011, 3007, + 3009, 3016, 3012, 3020, 3021, 5585, 3019, 3022, 3029, 3024, + 3031, 5585, 3030, 5585, 3026, 3028, 3033, 3035, 3042, 3043, + 3032, 3048, 3057, 3050, 3049, 3052, 3053, 3054, 3064, 3059, + 3060, 3061, 5585, 3066, 3068, 3071, 3073, 3077, 3080, 3074, + 3084, 5585, 3086, 3090, 3087, 3091, 3092, 3094, 3095, 3097, + 3096, 3098, 3099, 3100, 3119, 3102, 3105, 3115, 3117, 3122, + + 3127, 5585, 3124, 3128, 3136, 3132, 3133, 3138, 3139, 3134, + 3135, 3141, 3143, 3144, 3146, 3148, 3147, 3151, 3158, 3150, + 3153, 3164, 3171, 3152, 3166, 3172, 3169, 3174, 3177, 3178, + 3182, 3184, 3175, 3187, 3196, 3190, 3192, 3199, 3200, 3207, + 3202, 5585, 3209, 3194, 3214, 3206, 3215, 3217, 3219, 3227, + 3210, 3225, 3226, 3234, 3230, 5585, 3238, 3233, 3239, 3240, + 3242, 3249, 3235, 3236, 3248, 3253, 3254, 3258, 3255, 3260, + 3261, 3264, 3265, 5585, 5585, 3267, 3268, 3270, 5585, 3272, + 3271, 3283, 3274, 3276, 3284, 3287, 3286, 3278, 3288, 3290, + 3291, 5585, 3296, 3306, 3298, 3302, 3311, 3314, 3313, 3310, + + 3317, 3303, 3319, 3320, 3321, 3322, 3325, 3327, 3335, 3330, + 3331, 3333, 5585, 3334, 3336, 3341, 5585, 3339, 3343, 3342, + 3352, 3345, 3359, 3349, 3367, 3357, 3362, 3364, 3368, 3370, + 3377, 3372, 3374, 3381, 3382, 3385, 3375, 3393, 3395, 3402, + 3403, 3404, 3373, 3400, 3406, 3413, 5585, 3408, 3410, 3409, + 3411, 3422, 3412, 3423, 3415, 5585, 3419, 3424, 3425, 5585, + 3426, 3432, 3438, 3440, 3428, 3441, 3444, 3442, 3445, 3446, + 5585, 3449, 5585, 3453, 3452, 3457, 5585, 3459, 3460, 3461, + 3463, 3465, 3468, 3470, 3477, 3467, 3469, 3479, 3480, 3481, + 3483, 3490, 3482, 5585, 3491, 3486, 3489, 3493, 3500, 3495, + + 3501, 3505, 3502, 5585, 5585, 3512, 5585, 3513, 3508, 3514, + 5585, 3506, 3517, 3525, 3518, 3526, 3532, 3529, 3533, 5585, + 3536, 3520, 3537, 3539, 3523, 3542, 3545, 3546, 3547, 3549, + 3550, 5585, 3551, 3553, 3560, 3552, 3555, 3563, 3562, 3561, + 5585, 3572, 3574, 3568, 3578, 3580, 5585, 3579, 5585, 3582, + 3584, 3585, 3589, 3590, 5585, 3592, 3596, 3599, 3595, 3601, + 3602, 3603, 3607, 3605, 3611, 3619, 3615, 3614, 3616, 5585, + 3617, 3618, 3626, 3628, 3622, 3630, 3639, 3635, 3641, 3638, + 3645, 3647, 3648, 3651, 3653, 3655, 3656, 3642, 3666, 3661, + 3657, 5585, 3668, 3671, 3672, 5585, 3673, 3674, 3679, 3675, + + 3681, 3682, 3683, 3685, 5585, 3684, 3689, 3687, 3690, 5585, + 5585, 3702, 5585, 3703, 3688, 3691, 3704, 3705, 3707, 3713, + 3710, 3715, 3717, 3720, 3718, 3725, 3732, 3733, 3734, 3737, + 3735, 3729, 5585, 5585, 3742, 3744, 3739, 3747, 3750, 3752, + 3753, 3760, 3756, 3757, 3763, 3767, 3774, 5585, 3765, 3755, + 3773, 5585, 3766, 3776, 3778, 3779, 3780, 3782, 3783, 3787, + 3784, 3789, 3790, 3792, 3793, 3796, 3797, 3798, 3803, 3807, + 5585, 3808, 3809, 3810, 3812, 3813, 3814, 3817, 3819, 3820, + 5585, 3824, 3823, 3827, 3832, 3826, 3834, 3842, 3849, 3851, + 3844, 3852, 3853, 3846, 3857, 3861, 5585, 3862, 3860, 3863, + + 3864, 3869, 3871, 3872, 3874, 3875, 3878, 3879, 3881, 3885, + 3888, 3882, 3889, 3890, 3892, 5585, 3895, 3902, 3897, 3906, + 3899, 3903, 3907, 3912, 3915, 3908, 3918, 3919, 3921, 5585, + 3922, 3923, 3924, 3925, 3931, 3926, 3932, 3934, 5585, 3936, + 3937, 3941, 3940, 3943, 3950, 3944, 3956, 3952, 5585, 3955, + 3959, 3960, 3961, 3962, 3963, 3966, 5585, 3968, 3974, 3970, + 3982, 3977, 3987, 3978, 3980, 3988, 3990, 3991, 3993, 3994, + 3992, 3995, 4010, 4007, 5585, 3996, 5585, 4008, 4012, 4015, + 4018, 4014, 5585, 4021, 4022, 4024, 4020, 4030, 5585, 4028, + 4025, 4029, 4031, 5585, 4042, 4046, 4032, 4047, 4049, 4053, + + 5585, 4056, 4057, 4058, 4067, 4068, 4065, 4066, 4069, 4071, + 4072, 4073, 4074, 5585, 4077, 4076, 4085, 4082, 4088, 4078, + 4089, 4091, 4094, 5585, 4095, 4096, 4099, 4101, 4102, 4103, + 4104, 4111, 4108, 4110, 5585, 4113, 4112, 4124, 4122, 4125, + 5585, 5585, 4120, 4131, 4133, 4121, 4137, 5585, 4135, 4146, + 4141, 4143, 4145, 5585, 5585, 4149, 5585, 4126, 5585, 4150, + 4151, 5585, 5585, 4152, 4155, 4156, 4158, 4160, 5585, 4166, + 5585, 4168, 4169, 4171, 4172, 4173, 5585, 4174, 4176, 4180, + 5585, 4175, 4183, 4182, 4186, 5585, 4190, 4185, 4191, 5585, + 4195, 4198, 4202, 4203, 4210, 4192, 4199, 4205, 4211, 4215, + + 4218, 4220, 4222, 4223, 4224, 4226, 4228, 4231, 4232, 4230, + 4233, 4237, 4239, 4241, 4234, 4026, 4245, 4247, 4248, 4251, + 4252, 4255, 4256, 4258, 4259, 4260, 4261, 4262, 4263, 4266, + 4268, 4274, 5585, 4269, 4270, 4277, 4278, 4280, 4286, 4288, + 4296, 4298, 4301, 5585, 4303, 5585, 4305, 4290, 3825, 4299, + 5585, 4307, 4310, 4309, 4312, 4311, 4313, 4316, 4314, 5585, + 4322, 4317, 4326, 4324, 5585, 4329, 4337, 4325, 4330, 4340, + 4341, 4342, 4344, 4345, 4346, 4350, 4352, 4359, 4354, 4355, + 4357, 4358, 4364, 4366, 4368, 4367, 4375, 4377, 4381, 5585, + 4371, 5585, 4378, 4382, 4383, 4385, 4388, 4389, 4391, 5585, + + 5585, 4392, 4394, 4399, 4396, 4400, 4403, 4404, 5585, 4406, + 4413, 4415, 4407, 5585, 4416, 4419, 4423, 5585, 4425, 4427, + 4424, 4429, 4430, 4432, 4434, 5585, 5585, 5585, 5585, 4440, + 4431, 4438, 4442, 4445, 4447, 4449, 4446, 5585, 5585, 5585, + 4452, 4450, 4458, 4459, 4460, 4462, 4465, 5585, 4466, 4469, + 4470, 4468, 4477, 4485, 4480, 4486, 4472, 4478, 4488, 4489, + 4492, 4495, 4497, 4499, 4501, 5585, 5585, 4503, 4505, 4506, + 4513, 4514, 4515, 4517, 4518, 4521, 4523, 4524, 4525, 4529, + 4528, 5585, 4530, 4538, 5585, 4531, 5585, 4537, 4544, 4527, + 4546, 4547, 4548, 4550, 4552, 5585, 5585, 4536, 4553, 4558, + + 4563, 4560, 4565, 4554, 4567, 4564, 5585, 4570, 5585, 4568, + 4571, 4581, 4572, 4582, 4584, 4592, 4590, 4587, 4591, 5585, + 4593, 4594, 5585, 4599, 4598, 4600, 5585, 4604, 4609, 4611, + 5585, 4614, 5585, 4617, 5585, 4601, 4624, 5585, 4606, 4619, + 4628, 4630, 4622, 4631, 5585, 4632, 4634, 4635, 4638, 4639, + 4641, 4642, 4643, 4645, 4652, 4648, 4649, 5585, 5585, 4657, + 4658, 4660, 4662, 4663, 4670, 4665, 4667, 4673, 5585, 5585, + 4674, 5585, 4668, 4675, 5585, 4666, 4683, 4677, 4684, 4685, + 4687, 4688, 4693, 4696, 4697, 4710, 4698, 4700, 4711, 4713, + 4718, 4720, 4706, 4723, 4716, 4701, 4724, 4725, 4726, 5585, + + 4730, 4731, 4732, 5585, 4738, 4735, 4740, 4743, 5585, 4752, + 4744, 4747, 4749, 5585, 4741, 4755, 4757, 4760, 4762, 4771, + 4763, 4764, 5585, 5585, 5585, 5585, 4767, 4768, 5585, 4772, + 4775, 5585, 5585, 4774, 4779, 4778, 5585, 4780, 5585, 4782, + 5585, 4784, 4785, 4793, 4791, 5585, 4796, 4804, 5585, 4807, + 4810, 4812, 4813, 4795, 4783, 4814, 5585, 4823, 4816, 4820, + 4827, 4818, 4824, 4828, 4829, 4837, 4830, 4835, 5585, 4832, + 4838, 4839, 5585, 4841, 5585, 4843, 4844, 4842, 4849, 4848, + 4850, 4852, 4861, 4854, 4863, 4865, 5585, 4868, 4871, 5585, + 4872, 5585, 4874, 5585, 4875, 4876, 4878, 4877, 5585, 4886, + + 4879, 4881, 4883, 5585, 4887, 4889, 5585, 4890, 4896, 4898, + 4901, 4905, 4907, 4908, 4909, 4916, 4911, 4912, 4913, 4915, + 4919, 4920, 5585, 5585, 5585, 4923, 4927, 4934, 4932, 4936, + 4943, 4938, 5585, 4940, 4941, 4942, 4950, 4948, 4952, 5585, + 4954, 4949, 4955, 5585, 4958, 4960, 4962, 4963, 4969, 4971, + 4973, 4976, 4978, 5585, 4980, 5585, 5585, 4981, 5585, 4982, + 4984, 4985, 4986, 5585, 4989, 4991, 4990, 4992, 4994, 4995, + 4997, 5585, 5585, 4999, 5585, 5009, 5003, 5018, 5011, 5013, + 5016, 5019, 5585, 5020, 5022, 5025, 5026, 5027, 5585, 5028, + 5029, 5031, 5032, 5035, 5034, 5037, 5039, 5041, 5585, 5585, + + 5043, 5044, 5585, 5585, 5059, 5062, 5045, 5585, 5585, 5585, + 5065, 5585, 5067, 5071, 5075, 5079, 5070, 5585, 5081, 5078, + 5083, 5585, 5082, 5085, 5585, 5585, 5086, 5088, 5047, 5089, + 5585, 5090, 5091, 5094, 5099, 5102, 5103, 5105, 5107, 5112, + 5115, 5113, 5114, 5120, 5117, 5121, 5123, 5125, 5127, 5585, + 5585, 5131, 5585, 5585, 5134, 5136, 5140, 5144, 5146, 5148, + 5150, 5585, 5128, 5152, 5153, 5585, 5155, 5156, 5157, 5160, + 5158, 5161, 5163, 5585, 5585, 5164, 5165, 5166, 5174, 5167, + 5585, 5177, 5184, 5169, 5181, 5179, 5187, 5188, 5585, 5191, + 5585, 5585, 5585, 5585, 5585, 5585, 5585, 5585, 5190, 5585, + + 5195, 5585, 5189, 5199, 5196, 5197, 5201, 5585, 5202, 5203, + 5211, 5207, 5213, 5218, 5210, 5220, 5222, 5221, 5224, 5226, + 5227, 5230, 5585, 5229, 5231, 5233, 5235, 5246, 5252, 5255, + 5257, 5242, 5238, 5259, 5260, 5263, 5247, 5264, 5273, 5266, + 5269, 5271, 5274, 5276, 5585, 5277, 5585, 5278, 5585, 5585, + 5282, 5283, 5286, 5285, 5297, 5301, 5288, 5287, 5290, 5299, + 5585, 5303, 5585, 5305, 5306, 5585, 5307, 5308, 5311, 5312, + 5315, 5314, 5316, 5317, 5585, 5318, 5320, 5332, 5324, 5340, + 5337, 5341, 5342, 5343, 5326, 5350, 5349, 5352, 5585, 5353, + 5355, 5356, 5358, 5359, 5366, 5361, 5362, 5364, 5585, 5368, + + 5370, 5371, 5369, 5372, 5373, 5383, 5385, 5381, 5585, 5387, + 5392, 5389, 5395, 5397, 5399, 5400, 5401, 5403, 5405, 5234, + 5412, 5409, 5414, 5406, 5417, 5415, 5585, 5419, 5423, 5585, + 5424, 5426, 5427, 5428, 5432, 5585, 5436, 5430, 5437, 5438, + 5441, 5443, 5585, 5445, 5452, 5448, 5585, 5453, 5585, 5585, + 5454, 5457, 5460, 5462, 5464, 5585, 5585, 5585, 5493, 5500, + 5507, 5514, 5521, 88, 5528, 5535, 5542, 5549, 5556, 5563, + 5570, 5577 } ; -static yyconst flex_int16_t yy_def[2859] = +static yyconst flex_int16_t yy_def[2873] = { 0, - 2844, 1, 2845, 2845, 2846, 2846, 2847, 2847, 2848, 2848, - 2849, 2849, 2844, 2850, 2844, 2844, 2844, 2844, 2851, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2852, 2844, 2844, 2844, 2852, 2853, 2844, 2844, - 2844, 2853, 2854, 2844, 2844, 2844, 2844, 2854, 2855, 2844, - 2844, 2844, 2855, 2856, 2844, 2857, 2844, 2856, 2856, 2850, - 2850, 2844, 2858, 2851, 2858, 2851, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2852, - 2852, 2853, 2853, 2854, 2854, 2844, 2855, 2855, 2856, 2856, - 2857, 2857, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2856, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2856, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2844, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2856, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2856, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, - 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, - - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - - 2850, 2844, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, 2850, 2844, - 2850, 2844, 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - - 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2844, 2844, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2844, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2844, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2844, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, - 2844, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2844, 2844, 2844, 2850, 2850, 2844, 2850, 2850, 2844, 2844, - 2850, 2850, 2850, 2844, 2850, 2844, 2850, 2844, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2850, 2844, 2844, 2850, 2844, 2850, 2850, 2850, 2850, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2850, 2844, 2844, - 2850, 2850, 2850, 2844, 2844, 2844, 2850, 2844, 2850, 2850, - - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2844, 2850, 2850, - 2844, 2844, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2844, 2844, 2850, 2844, 2844, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, - 2844, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2850, 2844, 2850, 2844, 2850, 2850, - 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, 2844, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2850, 2850, 2844, 2850, 2850, 2850, 2850, 2850, - - 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, 2850, - 2850, 2850, 2844, 2850, 2850, 2844, 2850, 2850, 2850, 2850, - 2850, 2844, 2850, 2850, 2850, 2850, 2850, 2850, 2844, 2850, - 2850, 2850, 2844, 2850, 2844, 2844, 2850, 2850, 2850, 2850, - 2850, 2844, 2844, 0, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844 + 2858, 1, 2859, 2859, 2860, 2860, 2861, 2861, 2862, 2862, + 2863, 2863, 2858, 2864, 2858, 2858, 2858, 2858, 2865, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2866, 2858, 2858, 2858, 2866, 2867, 2858, 2858, + 2858, 2867, 2868, 2858, 2858, 2858, 2858, 2868, 2869, 2858, + 2858, 2858, 2869, 2870, 2858, 2871, 2858, 2870, 2870, 2864, + 2864, 2858, 2872, 2865, 2872, 2865, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2866, + 2866, 2867, 2867, 2868, 2868, 2858, 2869, 2869, 2870, 2870, + 2871, 2871, 2870, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2870, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2870, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2870, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2870, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2858, 2858, 2864, 2858, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2870, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2858, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2870, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, + 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2858, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2858, 2858, 2864, 2858, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2858, + 2858, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2858, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2858, 2858, 2864, 2858, 2864, 2858, 2864, + 2864, 2858, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2858, 2858, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2858, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2858, 2858, 2864, 2864, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2858, 2864, 2858, 2864, 2858, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2858, + 2864, 2858, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2858, 2858, 2858, 2864, 2864, 2858, 2864, + 2864, 2858, 2858, 2864, 2864, 2864, 2858, 2864, 2858, 2864, + 2858, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2858, + 2864, 2858, 2864, 2858, 2864, 2864, 2864, 2864, 2858, 2864, + + 2864, 2864, 2864, 2858, 2864, 2864, 2858, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2858, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2864, 2858, 2858, 2864, 2858, 2864, + 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2858, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2858, + + 2864, 2864, 2858, 2858, 2864, 2864, 2864, 2858, 2858, 2858, + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2858, 2864, 2864, 2858, 2858, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, + 2858, 2864, 2858, 2858, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2858, 2858, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2864, 2858, + + 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2858, 2864, 2858, 2858, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2858, 2864, 2858, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, + 2864, 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2858, + 2864, 2864, 2864, 2864, 2864, 2858, 2864, 2864, 2864, 2864, + 2864, 2864, 2858, 2864, 2864, 2864, 2858, 2864, 2858, 2858, + 2864, 2864, 2864, 2864, 2864, 2858, 2858, 0, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858 } ; -static yyconst flex_uint16_t yy_nxt[5593] = +static yyconst flex_uint16_t yy_nxt[5626] = { 0, 14, 15, 16, 17, 18, 19, 18, 14, 14, 14, 14, 14, 18, 20, 21, 22, 23, 24, 25, 26, @@ -1472,520 +1477,523 @@ static yyconst flex_uint16_t yy_nxt[5593] = 526, 71, 527, 71, 71, 534, 71, 533, 536, 71, 535, 71, 538, 71, 537, 71, 71, 542, 540, 543, 71, 71, 539, 71, 544, 71, 71, 71, 541, 71, - 71, 547, 548, 71, 71, 71, 545, 71, 549, 71, - 554, 71, 550, 555, 546, 71, 558, 553, 71, 557, - 71, 71, 552, 551, 71, 560, 71, 556, 71, 561, - 71, 71, 71, 71, 563, 71, 71, 571, 71, 564, - - 71, 559, 562, 71, 566, 71, 573, 570, 71, 572, - 574, 565, 71, 567, 578, 568, 569, 71, 579, 71, - 71, 71, 575, 581, 580, 576, 71, 71, 577, 71, - 71, 584, 71, 583, 71, 71, 587, 71, 71, 588, - 71, 71, 590, 71, 71, 71, 71, 582, 603, 585, - 589, 586, 71, 71, 591, 71, 602, 606, 150, 592, - 71, 593, 605, 601, 604, 71, 594, 608, 595, 71, - 607, 610, 71, 71, 596, 71, 597, 609, 611, 598, - 599, 612, 71, 71, 71, 615, 600, 71, 71, 614, - 71, 618, 613, 71, 620, 71, 71, 71, 616, 71, - - 622, 71, 71, 617, 71, 71, 626, 71, 71, 619, - 621, 623, 71, 627, 630, 150, 624, 629, 71, 632, - 633, 625, 71, 71, 628, 71, 71, 631, 71, 71, - 674, 636, 71, 71, 634, 71, 640, 642, 635, 637, - 71, 644, 71, 638, 645, 71, 641, 639, 643, 647, - 71, 71, 71, 71, 71, 71, 649, 646, 71, 71, - 71, 653, 71, 648, 652, 71, 650, 658, 668, 651, - 71, 654, 659, 71, 661, 71, 657, 71, 655, 662, - 71, 656, 663, 660, 664, 71, 665, 71, 71, 666, - 71, 71, 71, 71, 71, 71, 669, 672, 667, 71, - - 671, 71, 677, 71, 673, 676, 71, 678, 71, 670, - 71, 71, 675, 682, 71, 680, 71, 71, 71, 71, - 685, 683, 71, 689, 679, 686, 71, 71, 684, 687, - 71, 681, 691, 71, 71, 692, 688, 695, 71, 71, - 71, 697, 71, 71, 690, 700, 698, 693, 696, 694, - 71, 71, 71, 701, 71, 71, 702, 71, 71, 708, - 71, 71, 706, 71, 148, 705, 71, 71, 699, 71, - 703, 714, 709, 704, 71, 71, 712, 71, 707, 71, - 710, 713, 711, 71, 71, 715, 716, 717, 71, 720, - 721, 723, 719, 718, 71, 71, 71, 71, 724, 722, - - 71, 726, 71, 71, 71, 725, 727, 71, 732, 71, - 71, 146, 71, 71, 71, 728, 729, 735, 71, 734, - 738, 736, 71, 730, 731, 739, 71, 740, 733, 741, - 71, 743, 71, 71, 742, 71, 737, 71, 71, 745, - 747, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 753, 71, 746, 71, 71, 71, 754, 744, 71, 748, - 749, 750, 761, 751, 755, 752, 756, 758, 71, 760, - 759, 757, 71, 71, 764, 71, 71, 71, 71, 71, - 766, 71, 71, 772, 71, 763, 762, 71, 71, 71, - 71, 773, 71, 71, 765, 767, 768, 769, 771, 71, - - 770, 775, 71, 776, 777, 71, 71, 774, 778, 71, - 782, 71, 779, 781, 71, 780, 783, 71, 71, 784, - 71, 71, 785, 71, 71, 787, 150, 71, 71, 786, - 788, 792, 790, 71, 789, 71, 791, 794, 793, 71, - 71, 795, 71, 797, 800, 71, 71, 801, 796, 803, - 71, 71, 71, 806, 798, 802, 71, 71, 71, 71, - 804, 808, 71, 799, 71, 71, 812, 71, 71, 71, - 809, 805, 71, 813, 814, 71, 807, 71, 71, 71, - 71, 71, 811, 71, 818, 849, 815, 810, 819, 826, - 825, 820, 823, 71, 816, 817, 71, 824, 821, 71, - - 828, 822, 71, 829, 71, 830, 71, 71, 71, 827, - 831, 835, 71, 71, 71, 71, 71, 71, 843, 71, - 853, 833, 847, 71, 832, 848, 71, 71, 834, 71, - 836, 837, 888, 838, 845, 844, 839, 846, 71, 850, - 71, 840, 851, 71, 852, 855, 71, 841, 842, 854, - 71, 71, 856, 71, 71, 71, 71, 71, 859, 71, - 863, 71, 71, 857, 862, 71, 71, 866, 71, 71, - 871, 71, 858, 868, 71, 860, 861, 864, 71, 865, - 71, 885, 872, 870, 875, 874, 867, 873, 71, 876, - 71, 869, 71, 878, 71, 71, 71, 877, 71, 71, - - 880, 879, 71, 71, 881, 71, 71, 887, 71, 71, - 882, 884, 890, 71, 71, 71, 71, 889, 71, 71, - 894, 883, 71, 892, 886, 893, 71, 897, 895, 896, - 71, 71, 891, 71, 900, 71, 71, 71, 71, 71, - 71, 907, 71, 905, 898, 71, 903, 908, 71, 71, - 901, 906, 71, 71, 910, 902, 899, 71, 71, 71, - 71, 71, 904, 909, 917, 71, 911, 71, 916, 920, - 71, 71, 912, 913, 71, 71, 921, 71, 915, 914, - 919, 71, 922, 918, 71, 928, 71, 925, 924, 927, - 923, 926, 71, 71, 71, 71, 71, 71, 935, 71, - - 937, 71, 930, 939, 71, 940, 71, 71, 71, 71, - 71, 71, 929, 936, 931, 932, 71, 934, 933, 71, - 941, 938, 943, 71, 945, 948, 942, 71, 947, 946, - 944, 71, 71, 71, 952, 949, 71, 954, 71, 71, - 71, 950, 71, 957, 150, 71, 951, 956, 71, 71, - 960, 71, 959, 71, 71, 71, 953, 955, 963, 71, - 958, 71, 71, 71, 71, 975, 71, 71, 71, 145, - 976, 978, 71, 961, 962, 966, 71, 71, 964, 965, - 980, 71, 967, 977, 968, 71, 983, 71, 969, 71, - 970, 982, 979, 985, 971, 71, 972, 71, 986, 71, - - 71, 973, 981, 984, 988, 71, 974, 71, 71, 987, - 990, 71, 989, 992, 71, 71, 71, 997, 998, 71, - 991, 993, 996, 71, 71, 999, 71, 1001, 995, 1000, - 71, 71, 994, 71, 71, 71, 71, 1002, 1003, 71, - 1013, 1017, 71, 1012, 71, 1016, 71, 71, 1004, 71, - 1005, 71, 71, 1014, 1015, 1006, 143, 1007, 1024, 1018, - 1019, 1022, 71, 1008, 71, 71, 1020, 71, 1009, 1010, - 71, 1021, 1028, 71, 1023, 1011, 1025, 71, 71, 71, - 1027, 71, 1029, 71, 1026, 71, 71, 1034, 71, 71, - 1031, 71, 1032, 71, 1037, 1035, 71, 71, 1030, 71, - - 71, 1033, 71, 71, 71, 71, 71, 1036, 1042, 1044, - 1039, 1038, 1041, 1043, 1045, 71, 71, 1040, 1046, 1047, - 71, 71, 71, 71, 71, 71, 1048, 71, 1053, 1054, - 1050, 71, 1055, 71, 1049, 71, 1057, 1052, 1058, 1051, - 1056, 1060, 1061, 71, 71, 71, 1059, 1062, 71, 71, - 1063, 71, 71, 1064, 1065, 71, 71, 1066, 1071, 71, - 1073, 71, 71, 141, 71, 1067, 71, 1076, 1069, 71, - 1068, 1070, 1074, 71, 71, 71, 71, 71, 1077, 1072, - 1079, 1080, 1075, 71, 71, 71, 71, 1085, 71, 1081, - 1078, 1082, 1084, 71, 1086, 71, 71, 1087, 71, 1083, - - 71, 1089, 1088, 71, 71, 71, 1095, 1093, 71, 1096, - 71, 71, 71, 1097, 1090, 71, 1098, 71, 1094, 1091, - 1100, 71, 1099, 1092, 1103, 71, 71, 71, 1101, 71, - 71, 1104, 71, 71, 1105, 71, 1107, 71, 1108, 71, - 1109, 1102, 71, 1113, 1114, 1106, 71, 71, 71, 71, - 71, 1111, 71, 1116, 71, 1110, 1117, 71, 71, 1121, - 71, 1112, 1115, 71, 71, 1118, 1119, 71, 71, 1123, - 1120, 71, 1122, 1127, 71, 71, 71, 71, 1133, 71, - 71, 71, 1131, 1124, 71, 1128, 1138, 1126, 1130, 1132, - 1129, 1135, 1125, 1136, 71, 71, 71, 71, 71, 71, - - 1137, 1134, 71, 1139, 71, 71, 71, 1142, 1140, 71, - 1141, 71, 71, 1145, 1148, 71, 71, 71, 71, 1143, - 71, 71, 1158, 71, 1144, 1154, 1146, 1151, 1147, 1152, - 1149, 71, 71, 71, 1155, 1150, 1156, 1159, 1153, 1157, - 1160, 71, 71, 71, 1162, 1161, 71, 71, 71, 71, - 71, 1165, 1164, 1167, 1170, 71, 71, 71, 71, 71, - 1163, 1168, 1171, 1172, 1174, 71, 1166, 71, 1169, 1175, - 71, 71, 71, 71, 71, 71, 1173, 71, 71, 1176, - 71, 71, 1177, 71, 1182, 1180, 1178, 1183, 71, 1181, - 71, 1179, 71, 71, 1187, 71, 71, 1184, 1188, 1186, - - 1192, 1185, 1191, 71, 1194, 71, 71, 71, 71, 1193, - 1189, 71, 1190, 1196, 1198, 71, 71, 1197, 71, 1199, - 71, 71, 1203, 1195, 71, 1201, 1200, 71, 1202, 71, - 1212, 1210, 1214, 1211, 1204, 71, 71, 1205, 1206, 71, - 1213, 1216, 1207, 71, 1215, 71, 71, 71, 1208, 71, - 1217, 1218, 1209, 71, 1219, 71, 1220, 71, 71, 71, - 1221, 71, 1222, 1223, 71, 71, 1227, 1224, 1225, 1230, - 1231, 1240, 71, 71, 71, 71, 71, 1232, 1226, 1228, - 71, 71, 1229, 1234, 1233, 71, 1239, 71, 1235, 71, - 1236, 71, 1237, 1242, 1238, 71, 1243, 1246, 1241, 71, - - 71, 71, 1247, 71, 1245, 1249, 71, 71, 71, 1244, - 71, 71, 71, 71, 71, 1250, 1251, 71, 1254, 1256, - 1258, 1248, 71, 71, 71, 1252, 1255, 1253, 1261, 1262, - 71, 1257, 1264, 71, 71, 71, 1265, 71, 1260, 1263, - 1259, 71, 1267, 71, 1266, 1269, 71, 1271, 71, 71, - 1272, 71, 71, 71, 1268, 71, 1273, 1276, 71, 71, - 71, 71, 1278, 1270, 71, 1289, 1280, 71, 71, 71, - 1282, 71, 1283, 1274, 1275, 1277, 1281, 71, 71, 1286, - 1279, 71, 1284, 1285, 71, 71, 1287, 71, 71, 1288, - 1290, 71, 71, 71, 1292, 1295, 1296, 1297, 1293, 71, - - 71, 71, 71, 1298, 71, 1291, 1294, 71, 1299, 71, - 1302, 71, 71, 71, 1306, 1301, 1307, 71, 1309, 1300, - 71, 71, 71, 1308, 71, 71, 71, 1303, 71, 71, - 71, 1316, 1304, 71, 71, 1310, 1305, 71, 1313, 71, - 71, 1311, 1314, 71, 1320, 1312, 71, 1315, 1321, 71, - 71, 1323, 1325, 1317, 2844, 1319, 71, 1326, 71, 1318, - 71, 71, 1324, 1322, 71, 1328, 71, 71, 1327, 1329, - 71, 71, 1334, 1336, 1330, 1335, 71, 1338, 71, 1331, - 71, 1332, 1339, 71, 1333, 71, 71, 71, 71, 1341, - 1337, 1340, 1344, 71, 71, 71, 71, 71, 1346, 71, - - 71, 1351, 71, 71, 1343, 71, 1345, 1352, 1356, 1348, - 1355, 1342, 71, 71, 1347, 1349, 71, 1350, 71, 71, - 1353, 71, 71, 71, 1354, 71, 71, 1358, 1362, 1363, - 1364, 1357, 71, 1359, 1360, 71, 1367, 71, 71, 71, - 1361, 1366, 71, 1372, 1365, 1369, 2844, 1371, 1373, 71, - 71, 1374, 1368, 71, 71, 71, 1375, 1376, 71, 1370, - 71, 71, 1378, 71, 1377, 71, 71, 71, 1383, 71, - 71, 71, 71, 1382, 71, 71, 1386, 1380, 1385, 1379, - 1381, 71, 1389, 71, 1394, 1391, 1387, 1390, 71, 1384, - 1392, 71, 71, 1388, 71, 1393, 71, 71, 71, 1401, - - 1395, 71, 71, 1397, 1404, 71, 1402, 71, 71, 71, - 71, 1396, 1407, 71, 1406, 1398, 1400, 1399, 71, 71, - 71, 71, 71, 1412, 71, 1415, 1405, 71, 1403, 71, - 71, 71, 1408, 1416, 1418, 71, 1419, 71, 1409, 1410, - 1411, 1417, 1414, 1413, 71, 71, 71, 71, 1420, 1424, - 1421, 71, 71, 1425, 1422, 71, 1427, 71, 71, 1423, - 1431, 71, 71, 1432, 71, 71, 1426, 1428, 71, 1433, - 71, 71, 1434, 1430, 1435, 1429, 1440, 71, 1439, 71, - 71, 71, 1436, 1437, 71, 71, 1443, 71, 1444, 1445, - 71, 1438, 1446, 71, 71, 71, 71, 1441, 71, 1447, - - 71, 1442, 1448, 71, 71, 1452, 1449, 1451, 71, 1453, - 1450, 71, 1454, 1455, 71, 71, 1458, 71, 71, 1457, - 71, 71, 1462, 71, 71, 71, 71, 1467, 71, 1456, - 1465, 71, 71, 1460, 71, 1459, 1468, 1463, 71, 1470, - 71, 1466, 1464, 71, 1473, 1461, 71, 71, 1476, 71, - 71, 1469, 1475, 71, 1472, 71, 1471, 71, 71, 71, - 1483, 71, 71, 71, 71, 1474, 1484, 1478, 1477, 71, - 71, 1481, 1487, 71, 1479, 1480, 71, 71, 1488, 1490, - 1492, 1491, 1485, 1482, 1486, 1494, 71, 71, 71, 1489, - 1493, 71, 1496, 71, 71, 71, 71, 71, 71, 1501, - - 1498, 1495, 1499, 71, 1502, 71, 71, 1497, 71, 71, - 1503, 1506, 71, 1507, 71, 71, 71, 2844, 1513, 1500, - 1514, 1505, 71, 1504, 71, 1510, 1508, 71, 1511, 1509, - 71, 71, 1519, 1523, 1518, 1516, 1515, 71, 71, 71, - 1512, 1517, 1520, 71, 1521, 71, 1522, 71, 71, 71, - 71, 71, 1524, 71, 1530, 71, 1529, 1531, 71, 71, - 71, 1525, 1533, 71, 1532, 71, 71, 1526, 71, 1527, - 1535, 1528, 1536, 71, 71, 71, 1538, 71, 1534, 1537, - 71, 71, 1545, 71, 71, 71, 1539, 71, 71, 71, - 71, 1541, 71, 1543, 1542, 1540, 1544, 1550, 71, 71, - - 1553, 1548, 71, 71, 1546, 1547, 71, 1552, 71, 71, - 1549, 71, 1551, 71, 1556, 71, 71, 71, 1554, 71, - 1555, 71, 1558, 1560, 1559, 1642, 1557, 1563, 1561, 71, - 1564, 1562, 1567, 1568, 71, 1565, 1569, 71, 71, 71, - 71, 71, 1566, 1571, 1572, 71, 71, 71, 71, 71, - 1570, 1575, 1573, 1576, 71, 71, 1584, 71, 71, 71, - 1574, 71, 71, 1579, 71, 1578, 1577, 1581, 1583, 71, - 1582, 1585, 71, 71, 1580, 71, 71, 1586, 1589, 1588, - 71, 71, 1587, 71, 1594, 71, 71, 1591, 71, 1590, - 71, 1597, 71, 1598, 1596, 71, 71, 1595, 1593, 1600, - - 2844, 1592, 1601, 1605, 71, 1608, 1602, 1599, 1606, 71, - 71, 71, 1610, 71, 1604, 1611, 1603, 71, 1607, 1613, - 71, 71, 1612, 71, 71, 71, 1614, 1617, 1609, 71, - 71, 71, 71, 71, 1619, 71, 71, 71, 1616, 71, - 1620, 71, 1618, 1615, 1621, 1624, 71, 71, 1625, 1622, - 71, 1623, 1630, 71, 1626, 1632, 71, 71, 71, 1627, - 71, 1628, 1636, 71, 1629, 71, 1631, 71, 71, 71, - 1640, 71, 71, 1635, 1633, 71, 1634, 71, 71, 71, - 1643, 1638, 1644, 1645, 71, 1637, 71, 1639, 1646, 71, - 1647, 71, 1641, 1649, 71, 1653, 71, 71, 71, 1648, - - 71, 1651, 71, 71, 71, 1650, 1660, 1655, 71, 71, - 1652, 1654, 71, 71, 1656, 1657, 71, 1658, 1672, 1663, - 1661, 1664, 71, 71, 1659, 71, 1665, 1662, 1666, 71, - 1667, 71, 1669, 1670, 71, 71, 71, 71, 71, 1673, - 1668, 71, 71, 71, 71, 71, 71, 1671, 71, 1678, - 71, 71, 71, 1682, 1679, 71, 1688, 1674, 1680, 71, - 1676, 1677, 71, 1675, 1683, 1681, 71, 1686, 1687, 71, - 71, 1685, 71, 71, 71, 1693, 71, 1684, 71, 1696, - 1689, 1697, 71, 1698, 71, 1690, 1691, 71, 1694, 71, - 1695, 71, 1692, 1700, 71, 1705, 1699, 71, 1701, 1704, - - 71, 1706, 71, 1708, 71, 1707, 1710, 71, 1702, 71, - 1703, 71, 71, 71, 1713, 71, 1712, 71, 1714, 1715, - 71, 71, 1709, 71, 1722, 71, 71, 71, 71, 1727, - 71, 71, 1716, 1717, 1718, 71, 1711, 1731, 71, 1719, - 71, 1720, 1724, 1721, 71, 1726, 1723, 1725, 71, 1728, - 1729, 1730, 1734, 71, 71, 71, 1736, 71, 71, 71, - 1732, 71, 1739, 1740, 71, 1733, 71, 1742, 71, 71, - 71, 1746, 71, 71, 1747, 71, 71, 71, 1737, 1743, - 1735, 1738, 1744, 71, 71, 71, 1741, 71, 71, 1753, - 1745, 1749, 1750, 1748, 71, 71, 1751, 1757, 71, 1756, - - 71, 71, 1760, 71, 1762, 71, 1761, 1759, 71, 1752, - 1754, 1755, 71, 71, 71, 71, 71, 71, 1758, 1763, - 1768, 1765, 1764, 71, 71, 71, 1771, 1772, 1767, 71, - 71, 71, 71, 71, 1766, 1775, 71, 71, 71, 71, - 71, 1769, 71, 1781, 71, 1774, 1782, 1823, 71, 1773, - 1770, 1776, 1777, 1779, 71, 1778, 1780, 1783, 1784, 71, - 71, 1788, 71, 1789, 1785, 1786, 71, 71, 71, 71, - 1787, 1794, 1791, 71, 71, 71, 71, 71, 1796, 1834, - 1790, 1797, 71, 71, 1798, 71, 2844, 71, 1792, 1793, - 1795, 1799, 1802, 71, 1803, 71, 1800, 1804, 1806, 1807, - - 1808, 1801, 1805, 71, 71, 71, 71, 71, 1811, 71, - 71, 1809, 71, 71, 71, 71, 1813, 1816, 1818, 1810, - 71, 1812, 1814, 71, 71, 71, 71, 71, 71, 1824, - 71, 1822, 1819, 1825, 71, 1826, 71, 1817, 1815, 1820, - 1828, 71, 71, 71, 1821, 71, 71, 1829, 1830, 71, - 1827, 1831, 71, 71, 1835, 71, 1836, 1833, 1832, 71, - 71, 71, 1840, 71, 71, 1837, 1839, 71, 71, 1841, - 71, 1838, 1842, 1843, 1844, 71, 71, 71, 71, 1846, - 71, 1851, 1849, 71, 1845, 1850, 71, 71, 71, 1853, - 71, 71, 1857, 71, 1847, 71, 1848, 1852, 71, 1856, - - 1854, 71, 1858, 71, 1855, 71, 1861, 1859, 1863, 71, - 71, 71, 71, 1864, 71, 71, 1862, 1869, 71, 1860, - 1872, 1865, 71, 71, 71, 1871, 1868, 1866, 71, 1867, - 1873, 71, 1870, 71, 71, 1877, 1874, 71, 71, 71, - 1875, 71, 1876, 71, 71, 71, 1878, 71, 71, 71, - 71, 1880, 71, 1881, 1885, 1882, 1889, 71, 71, 1879, - 1884, 1892, 1888, 71, 71, 1890, 71, 1886, 1893, 1887, - 1883, 1895, 1891, 71, 71, 1896, 71, 71, 71, 71, - 71, 1898, 71, 71, 1894, 1899, 1900, 71, 1901, 1903, - 71, 71, 1897, 1905, 1902, 1907, 71, 1906, 71, 1904, - - 71, 71, 1910, 1909, 71, 71, 1911, 71, 1915, 1912, - 71, 71, 71, 71, 71, 1916, 1908, 71, 1921, 71, - 1918, 71, 1922, 1913, 1917, 71, 71, 1914, 1925, 71, - 71, 1920, 1919, 2844, 71, 1926, 71, 1928, 1927, 71, - 1923, 1930, 71, 71, 1932, 1929, 1924, 71, 1933, 71, - 71, 1931, 71, 71, 1937, 1939, 71, 71, 1934, 1935, - 1940, 71, 1936, 71, 71, 1941, 71, 71, 71, 1942, - 71, 1944, 1945, 71, 1938, 1943, 71, 1946, 1948, 71, - 71, 71, 71, 71, 71, 71, 1951, 71, 1947, 1958, - 1956, 1949, 1954, 71, 1950, 1952, 1955, 1953, 1957, 71, - - 71, 71, 1959, 71, 71, 1960, 1966, 71, 71, 71, - 1961, 1968, 71, 1965, 71, 1962, 71, 1967, 71, 1963, - 1970, 1973, 1972, 1971, 1975, 1976, 1974, 71, 1964, 71, - 71, 71, 1977, 1969, 71, 71, 1980, 71, 71, 1981, - 71, 2844, 1978, 1985, 71, 71, 1986, 71, 71, 1984, - 1989, 71, 71, 1982, 71, 1979, 71, 1990, 1995, 1987, - 71, 1991, 1992, 71, 1983, 71, 1988, 1994, 71, 71, - 1993, 1996, 1997, 71, 71, 71, 71, 71, 71, 1999, - 71, 71, 2002, 2005, 71, 71, 71, 71, 71, 2006, - 71, 2001, 2008, 71, 1998, 2007, 2003, 2004, 2000, 71, - - 2010, 71, 2015, 71, 2012, 71, 2013, 71, 71, 2011, - 71, 71, 2009, 2016, 2844, 71, 71, 71, 71, 2014, - 71, 71, 2026, 71, 71, 71, 2017, 2018, 2027, 2023, - 71, 71, 2044, 2019, 2021, 2020, 2025, 2022, 2029, 2024, - 71, 2031, 71, 2028, 2030, 2032, 71, 2033, 71, 71, - 71, 2036, 71, 2039, 71, 71, 71, 2034, 71, 71, - 2040, 2037, 2035, 2041, 2038, 2045, 71, 2046, 71, 71, - 2048, 71, 71, 2050, 71, 71, 2042, 71, 71, 2043, - 2052, 71, 2053, 71, 71, 71, 71, 2055, 2047, 2054, - 2049, 2058, 2051, 2059, 71, 71, 2061, 71, 2056, 71, - - 71, 71, 71, 71, 2057, 2064, 2063, 71, 2065, 2067, - 71, 71, 2071, 71, 2060, 71, 71, 2062, 2069, 71, - 2068, 71, 71, 2066, 2844, 2075, 2076, 71, 71, 71, - 2070, 2080, 71, 71, 2074, 2072, 71, 71, 71, 2073, - 71, 2077, 71, 2078, 2079, 2082, 71, 2085, 71, 2086, - 2083, 71, 71, 2081, 2087, 71, 2090, 71, 71, 71, - 2089, 71, 2088, 2084, 2091, 2099, 2095, 71, 71, 71, - 2093, 71, 2096, 2097, 71, 2101, 71, 71, 71, 2094, - 2092, 71, 2102, 71, 2098, 71, 71, 71, 71, 71, - 2844, 2104, 2105, 2110, 2106, 2100, 2107, 2108, 2111, 71, - - 2109, 2103, 71, 71, 71, 2116, 2112, 71, 2115, 2113, - 71, 71, 2114, 71, 2117, 71, 71, 71, 2123, 71, - 71, 71, 2118, 71, 71, 2125, 71, 71, 71, 2130, - 2119, 2121, 2120, 2122, 71, 2124, 2126, 2127, 2128, 2129, - 71, 2134, 71, 71, 2135, 2131, 2133, 71, 2132, 2136, - 71, 71, 2138, 2139, 2137, 2140, 2141, 71, 71, 71, - 71, 71, 71, 2143, 71, 71, 71, 2147, 71, 71, - 71, 2149, 2142, 2148, 2145, 2151, 2144, 2150, 71, 71, - 71, 71, 2155, 71, 2146, 2154, 71, 71, 2152, 71, - 71, 71, 2157, 71, 71, 71, 71, 2161, 2164, 2156, - - 2153, 2163, 71, 71, 71, 2160, 71, 71, 2165, 2158, - 2159, 2168, 2169, 2166, 2162, 2170, 71, 71, 71, 2167, - 71, 2844, 2171, 71, 2173, 71, 71, 2176, 2174, 71, - 2172, 2178, 71, 2177, 2180, 71, 71, 71, 2182, 71, - 71, 71, 71, 2175, 2179, 2181, 71, 2185, 71, 71, - 2189, 71, 71, 2187, 2188, 2184, 2190, 71, 2183, 2191, - 71, 2192, 71, 71, 71, 71, 71, 71, 2193, 2195, - 2198, 71, 2186, 2200, 71, 71, 2199, 71, 2197, 71, - 2203, 71, 2196, 71, 2194, 71, 2206, 2207, 71, 71, - 2202, 71, 2201, 71, 2208, 71, 2204, 2210, 2209, 71, - - 71, 2205, 71, 2215, 71, 2211, 71, 2214, 2216, 71, - 2217, 71, 71, 2212, 2218, 71, 71, 2221, 2219, 71, - 2213, 71, 2222, 71, 71, 71, 2227, 71, 2228, 71, - 2220, 2223, 2229, 71, 71, 2224, 71, 71, 71, 71, - 71, 2226, 71, 2231, 2225, 2234, 2230, 2237, 71, 2232, - 71, 71, 71, 71, 71, 71, 71, 2244, 2233, 2235, - 2238, 71, 2236, 71, 71, 71, 2241, 71, 71, 2243, - 2245, 71, 2240, 71, 2251, 2844, 2239, 71, 2242, 2246, - 2247, 2248, 2253, 71, 2255, 71, 71, 2252, 2254, 2249, - 71, 2250, 2256, 71, 71, 2257, 71, 2258, 71, 2259, - - 71, 2261, 71, 71, 2260, 71, 71, 71, 71, 71, - 2270, 71, 2271, 71, 71, 71, 2267, 2274, 71, 2262, - 71, 2264, 2263, 71, 2273, 71, 2266, 2265, 2268, 2269, - 2276, 71, 2275, 71, 71, 71, 2272, 71, 2277, 71, - 2279, 71, 2287, 2278, 2285, 71, 2286, 71, 71, 2280, - 71, 71, 71, 2281, 71, 2282, 71, 2283, 2284, 2291, - 71, 71, 71, 2295, 2296, 71, 2289, 2294, 2288, 71, - 71, 2290, 2297, 2298, 71, 71, 2292, 71, 71, 71, - 2293, 71, 71, 71, 2300, 71, 2303, 71, 2299, 71, - 2307, 2308, 71, 2311, 71, 71, 2301, 71, 2302, 2304, - - 2309, 2305, 71, 2306, 71, 71, 2312, 2310, 2314, 71, - 2313, 2315, 71, 2319, 71, 71, 71, 2317, 2316, 2321, - 71, 2323, 71, 71, 71, 2326, 71, 2320, 2324, 2318, - 71, 2327, 71, 71, 71, 2322, 2325, 2333, 71, 71, - 71, 71, 71, 71, 71, 71, 2329, 2330, 2331, 2332, - 2335, 71, 2338, 71, 2328, 71, 2334, 2336, 2337, 71, - 2340, 2339, 71, 2341, 71, 71, 71, 2343, 71, 2344, - 2346, 71, 2347, 71, 2342, 2348, 71, 71, 71, 2352, - 2345, 2349, 71, 2353, 2350, 71, 71, 2354, 71, 2357, - 71, 2358, 71, 2356, 71, 2351, 2362, 2355, 2360, 71, - - 71, 2363, 71, 2361, 71, 71, 2366, 2359, 71, 2364, - 2365, 71, 71, 2368, 71, 2367, 71, 71, 71, 71, - 71, 71, 71, 2369, 2372, 2371, 2374, 71, 71, 71, - 2373, 2370, 2375, 2377, 2376, 71, 71, 71, 2379, 71, - 2378, 71, 2383, 71, 71, 71, 2381, 2386, 2382, 2380, - 2388, 71, 2384, 71, 71, 71, 71, 2392, 71, 71, - 71, 2844, 71, 2385, 2387, 2390, 2396, 2397, 71, 2391, - 2398, 2399, 2389, 71, 2393, 2394, 71, 71, 2400, 2395, - 2401, 71, 71, 71, 71, 71, 2405, 71, 2403, 71, - 2402, 2406, 71, 71, 2404, 71, 2409, 2410, 71, 2411, - - 71, 2412, 71, 2407, 2413, 71, 2415, 2408, 71, 71, - 2418, 2416, 71, 2414, 2419, 71, 2420, 71, 71, 71, - 71, 2421, 2424, 71, 71, 2425, 2426, 71, 2417, 71, - 2428, 71, 2422, 71, 71, 71, 2432, 71, 2423, 2433, - 71, 2434, 71, 71, 2427, 2435, 2429, 71, 71, 2431, - 2436, 71, 2430, 71, 2441, 71, 71, 71, 71, 2440, - 71, 2443, 2444, 71, 71, 71, 2437, 2438, 2439, 2445, - 71, 71, 71, 2446, 2447, 2449, 2453, 71, 71, 71, - 2442, 2448, 2452, 2456, 71, 71, 71, 2450, 2451, 71, - 2459, 2462, 71, 2455, 2458, 2460, 71, 71, 2454, 71, - - 2463, 71, 2464, 71, 2457, 71, 2465, 71, 2461, 71, - 2466, 71, 2468, 2467, 71, 71, 71, 2474, 71, 71, - 71, 71, 2475, 2469, 2471, 2477, 71, 71, 2478, 2479, - 71, 71, 2480, 71, 2472, 71, 2473, 2470, 2476, 71, - 2481, 71, 2482, 71, 2483, 2485, 71, 2486, 71, 2489, - 2487, 71, 71, 71, 2490, 71, 71, 2484, 2493, 71, - 71, 2492, 71, 2488, 2491, 2495, 71, 71, 71, 71, - 71, 2494, 2496, 71, 2844, 2498, 71, 71, 2502, 2500, - 71, 2503, 71, 2504, 71, 2506, 2505, 2497, 2499, 2514, - 2501, 71, 2507, 2509, 71, 2508, 2510, 71, 2511, 71, - - 71, 71, 2516, 71, 2513, 71, 2515, 71, 71, 2512, - 2517, 71, 2518, 2519, 71, 71, 71, 2524, 71, 71, - 2522, 2520, 71, 71, 2526, 71, 71, 2530, 71, 71, - 71, 71, 2521, 71, 2523, 71, 71, 2528, 2527, 2533, - 71, 71, 2531, 2525, 2532, 2534, 2529, 71, 71, 2535, - 2540, 71, 71, 2538, 71, 2537, 2539, 2542, 71, 2536, - 2541, 2543, 71, 2545, 71, 71, 71, 71, 2550, 71, - 2546, 71, 2549, 2544, 71, 71, 71, 2554, 71, 71, - 71, 2547, 2548, 71, 2556, 2558, 71, 2559, 71, 2561, - 71, 2551, 2555, 71, 2553, 71, 71, 2552, 71, 2565, - - 71, 71, 2557, 2560, 2563, 71, 2569, 71, 71, 2562, - 2567, 2570, 71, 2564, 71, 2566, 71, 2571, 71, 2574, - 2568, 2573, 2575, 71, 2572, 71, 71, 2577, 2582, 2576, - 71, 71, 2578, 71, 71, 2579, 2580, 2581, 71, 2585, - 71, 2586, 71, 71, 71, 2589, 71, 2590, 71, 71, - 71, 71, 71, 2588, 2591, 2583, 2584, 2593, 2594, 71, - 2595, 71, 2587, 71, 2592, 2596, 71, 71, 2597, 2598, - 71, 71, 71, 2600, 71, 2603, 2604, 71, 71, 71, - 71, 2608, 71, 71, 71, 71, 2599, 2611, 71, 2607, - 2610, 2614, 2605, 2601, 2602, 2612, 71, 71, 2613, 2606, - - 71, 71, 2609, 2617, 71, 71, 71, 71, 71, 2616, - 2618, 71, 2615, 2621, 71, 71, 71, 71, 71, 71, - 2623, 71, 2844, 2622, 2624, 71, 2619, 2620, 71, 71, - 71, 71, 71, 2638, 2625, 2629, 2633, 2626, 2627, 2628, - 2636, 71, 2630, 2631, 71, 2635, 2637, 71, 2647, 2632, - 2634, 2639, 71, 2640, 71, 2641, 2642, 71, 71, 2643, - 2644, 2844, 71, 2645, 2646, 71, 71, 2648, 71, 71, - 2652, 71, 71, 71, 2651, 2649, 2654, 71, 71, 2650, - 2653, 71, 71, 71, 2659, 71, 2655, 2660, 71, 2661, - 71, 2658, 71, 2656, 71, 71, 2666, 2663, 2668, 2657, - - 2662, 2667, 71, 2664, 71, 71, 2665, 71, 71, 71, - 71, 2675, 71, 2672, 2673, 71, 71, 2677, 71, 2712, - 2669, 2676, 2670, 2678, 71, 71, 2671, 2679, 71, 2674, - 2680, 71, 2681, 71, 2682, 71, 2683, 71, 2684, 71, - 71, 2686, 71, 2688, 71, 2687, 71, 71, 71, 2685, - 71, 71, 2692, 2694, 71, 71, 71, 71, 71, 2696, - 2690, 2689, 2691, 2693, 71, 2698, 71, 71, 2701, 2700, - 71, 71, 71, 2695, 71, 2703, 2699, 71, 71, 71, - 71, 2702, 2708, 2697, 2709, 71, 71, 71, 2706, 71, - 2704, 71, 71, 2707, 71, 2705, 2711, 71, 71, 2717, - - 2718, 71, 2720, 2710, 71, 2714, 2713, 2719, 2716, 71, - 71, 71, 2715, 71, 71, 71, 71, 2721, 71, 71, - 2731, 71, 71, 2733, 71, 71, 2724, 71, 2722, 2723, - 2726, 2732, 2729, 71, 2734, 2727, 2728, 71, 2725, 2730, - 2735, 71, 2736, 71, 2737, 71, 71, 2738, 2739, 71, - 71, 2740, 2744, 71, 2741, 71, 2747, 71, 71, 71, - 2749, 71, 2742, 71, 71, 2743, 71, 2745, 2752, 71, - 71, 2753, 71, 71, 2754, 2746, 2756, 2757, 2748, 2750, - 71, 2751, 71, 71, 71, 2761, 71, 2758, 71, 71, - 71, 2755, 71, 2759, 71, 71, 2764, 71, 71, 2766, - - 71, 71, 71, 2760, 2763, 71, 2771, 2772, 2762, 2765, - 2768, 2769, 71, 71, 2767, 2775, 71, 71, 2776, 2770, - 2777, 71, 2778, 2773, 71, 71, 71, 71, 2783, 2779, - 2780, 2774, 2781, 71, 71, 71, 2782, 71, 2784, 2785, - 71, 2786, 71, 71, 71, 2791, 71, 71, 71, 2788, - 71, 71, 71, 2794, 2787, 2795, 71, 71, 71, 71, - 2793, 71, 2789, 2790, 2798, 2792, 2796, 2799, 71, 2797, - 71, 2802, 71, 2803, 2801, 71, 2805, 2800, 71, 2806, - 71, 2808, 71, 2809, 71, 2804, 71, 71, 71, 2810, - 2813, 71, 71, 2811, 2807, 2817, 71, 2814, 2815, 2816, - - 71, 71, 71, 71, 71, 71, 2812, 71, 2818, 2820, - 2822, 71, 2824, 71, 71, 71, 71, 2828, 2825, 2829, - 71, 2819, 2821, 71, 2823, 71, 71, 2832, 2833, 71, - 71, 2835, 71, 2826, 2827, 2836, 71, 2834, 71, 71, - 71, 71, 2830, 71, 2831, 2837, 2838, 2844, 2839, 2842, - 71, 2843, 71, 2844, 2844, 2844, 2844, 2844, 2840, 2841, - 43, 43, 43, 43, 43, 43, 43, 48, 48, 48, - 48, 48, 48, 48, 53, 53, 53, 53, 53, 53, - 53, 59, 59, 59, 59, 59, 59, 59, 64, 64, - 64, 64, 64, 64, 64, 74, 74, 2844, 74, 74, - - 74, 74, 140, 140, 2844, 2844, 2844, 140, 140, 142, - 142, 2844, 2844, 142, 2844, 142, 144, 2844, 2844, 2844, - 2844, 2844, 144, 147, 147, 2844, 2844, 2844, 147, 147, - 149, 2844, 2844, 2844, 2844, 2844, 149, 151, 151, 2844, - 151, 151, 151, 151, 75, 75, 2844, 75, 75, 75, - 75, 13, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844 - + 549, 547, 548, 71, 71, 71, 545, 71, 550, 71, + 71, 71, 555, 71, 546, 551, 559, 556, 71, 554, + 71, 558, 557, 553, 552, 71, 561, 71, 562, 71, + 71, 71, 71, 71, 71, 71, 572, 71, 564, 560, + + 565, 71, 71, 574, 71, 567, 575, 71, 71, 71, + 563, 571, 566, 568, 570, 569, 573, 71, 576, 71, + 579, 71, 584, 582, 581, 577, 71, 71, 578, 71, + 71, 71, 585, 71, 71, 588, 71, 71, 71, 580, + 71, 589, 591, 71, 71, 71, 71, 583, 604, 590, + 71, 71, 586, 71, 587, 608, 592, 593, 71, 594, + 603, 150, 71, 602, 595, 605, 596, 606, 609, 71, + 71, 71, 597, 607, 598, 610, 71, 599, 600, 71, + 613, 71, 618, 71, 601, 612, 71, 611, 71, 71, + 71, 614, 616, 71, 619, 615, 71, 621, 71, 71, + + 71, 71, 623, 622, 617, 71, 627, 71, 620, 71, + 71, 71, 71, 624, 628, 150, 631, 634, 625, 633, + 632, 71, 626, 71, 630, 71, 629, 636, 71, 71, + 71, 71, 71, 635, 643, 641, 71, 646, 71, 645, + 71, 71, 638, 71, 637, 639, 644, 640, 648, 642, + 71, 71, 71, 647, 71, 650, 71, 71, 71, 71, + 654, 71, 649, 653, 659, 651, 71, 71, 655, 660, + 71, 652, 662, 71, 71, 656, 664, 658, 657, 661, + 663, 71, 71, 665, 71, 666, 71, 667, 668, 71, + 71, 71, 669, 71, 71, 670, 71, 675, 71, 673, + + 71, 71, 672, 674, 71, 677, 678, 71, 679, 71, + 671, 71, 71, 71, 681, 683, 71, 71, 684, 676, + 71, 71, 71, 686, 71, 680, 71, 690, 687, 692, + 685, 682, 688, 71, 71, 689, 71, 696, 693, 71, + 691, 71, 698, 71, 71, 71, 71, 71, 694, 699, + 697, 695, 701, 71, 71, 71, 702, 71, 71, 703, + 704, 71, 706, 708, 705, 710, 71, 71, 71, 71, + 707, 700, 71, 71, 716, 71, 711, 71, 718, 71, + 71, 709, 714, 717, 715, 713, 71, 712, 71, 719, + 71, 71, 723, 720, 725, 71, 724, 721, 71, 71, + + 71, 71, 726, 728, 722, 71, 727, 71, 729, 71, + 734, 71, 71, 740, 732, 733, 71, 71, 730, 71, + 731, 736, 737, 71, 71, 71, 738, 71, 743, 71, + 735, 747, 742, 744, 71, 71, 741, 71, 745, 71, + 71, 739, 749, 71, 71, 71, 71, 71, 71, 71, + 746, 755, 71, 71, 748, 71, 71, 750, 756, 763, + 71, 751, 752, 757, 753, 71, 754, 758, 761, 71, + 71, 759, 71, 71, 760, 762, 71, 71, 71, 71, + 768, 71, 765, 764, 71, 71, 774, 71, 71, 71, + 71, 766, 767, 775, 71, 769, 770, 771, 773, 777, + + 772, 71, 71, 71, 778, 71, 776, 779, 71, 71, + 780, 71, 783, 784, 786, 71, 782, 71, 785, 71, + 781, 71, 787, 71, 71, 71, 789, 150, 71, 71, + 790, 795, 794, 788, 792, 71, 793, 791, 71, 796, + 71, 71, 71, 797, 802, 71, 71, 798, 71, 803, + 805, 71, 71, 808, 71, 799, 800, 804, 71, 71, + 71, 806, 801, 71, 810, 807, 71, 814, 71, 71, + 811, 71, 71, 71, 809, 71, 815, 71, 816, 71, + 148, 71, 820, 71, 813, 71, 821, 817, 812, 822, + 71, 828, 827, 71, 825, 819, 823, 818, 826, 824, + + 71, 71, 831, 71, 830, 71, 829, 71, 832, 71, + 837, 834, 71, 71, 833, 71, 71, 845, 71, 835, + 71, 71, 850, 71, 849, 71, 71, 71, 852, 836, + 71, 838, 839, 851, 840, 871, 846, 841, 847, 71, + 853, 71, 842, 848, 71, 854, 855, 71, 843, 844, + 856, 71, 71, 71, 858, 71, 857, 71, 860, 861, + 71, 71, 71, 865, 71, 859, 71, 71, 868, 864, + 71, 71, 874, 71, 872, 890, 71, 862, 867, 863, + 71, 866, 71, 870, 875, 146, 71, 873, 869, 876, + 71, 877, 878, 879, 71, 71, 881, 882, 71, 71, + + 880, 71, 71, 71, 71, 71, 71, 883, 71, 71, + 71, 884, 885, 887, 71, 893, 888, 71, 71, 891, + 71, 71, 892, 886, 71, 889, 71, 895, 71, 896, + 71, 897, 71, 898, 71, 899, 894, 71, 903, 900, + 71, 71, 901, 71, 71, 71, 71, 910, 71, 908, + 911, 71, 906, 71, 71, 902, 904, 909, 913, 905, + 71, 71, 71, 71, 71, 71, 71, 71, 907, 912, + 920, 71, 923, 919, 924, 914, 71, 71, 71, 71, + 915, 916, 71, 918, 917, 921, 71, 71, 925, 71, + 922, 71, 928, 927, 930, 71, 926, 931, 71, 71, + + 933, 929, 932, 71, 71, 938, 71, 940, 71, 71, + 942, 71, 943, 71, 71, 934, 71, 71, 71, 935, + 939, 944, 71, 951, 937, 936, 71, 71, 941, 71, + 949, 948, 71, 945, 946, 71, 950, 71, 71, 71, + 952, 955, 947, 957, 71, 953, 71, 71, 71, 960, + 150, 954, 956, 959, 71, 71, 963, 958, 962, 71, + 71, 961, 71, 71, 71, 71, 71, 966, 71, 71, + 978, 71, 71, 981, 71, 979, 71, 71, 71, 969, + 965, 964, 967, 71, 999, 145, 970, 980, 968, 971, + 71, 984, 71, 972, 71, 973, 983, 985, 71, 974, + + 71, 975, 982, 986, 988, 71, 976, 71, 987, 989, + 71, 977, 71, 71, 990, 71, 991, 71, 993, 71, + 992, 996, 995, 1000, 1001, 1002, 71, 1003, 994, 71, + 71, 1004, 71, 998, 71, 71, 997, 71, 71, 71, + 71, 71, 71, 1019, 71, 1016, 1025, 71, 71, 1020, + 1015, 71, 71, 71, 1006, 1017, 1005, 1007, 71, 1008, + 1018, 1021, 71, 71, 1009, 1022, 1010, 1026, 1027, 71, + 71, 1023, 1011, 1028, 71, 71, 71, 1012, 1013, 1031, + 1032, 1024, 71, 71, 1014, 71, 71, 71, 1029, 1030, + 1037, 71, 1034, 71, 71, 1035, 71, 71, 71, 1040, + + 1038, 1033, 71, 1036, 71, 71, 71, 71, 71, 71, + 71, 71, 1039, 1045, 1046, 1047, 1042, 1041, 1043, 1044, + 1049, 71, 71, 1048, 1050, 1051, 71, 71, 71, 71, + 1052, 71, 71, 71, 1057, 71, 1054, 1058, 1059, 71, + 1053, 71, 1061, 1056, 1060, 1055, 1062, 71, 1065, 71, + 71, 1071, 71, 1066, 71, 1064, 71, 71, 1067, 1069, + 1063, 1068, 71, 1070, 71, 1075, 71, 1077, 1072, 71, + 71, 71, 1078, 71, 71, 1073, 71, 71, 71, 1074, + 71, 1080, 1081, 1083, 71, 1084, 1076, 71, 71, 71, + 1082, 1079, 1089, 1086, 71, 1088, 1085, 71, 71, 1090, + + 71, 71, 71, 1091, 1087, 1093, 71, 71, 71, 71, + 1099, 1097, 1100, 71, 1104, 1092, 71, 71, 71, 1094, + 71, 71, 1098, 71, 71, 1095, 1101, 1096, 1102, 1103, + 1107, 1105, 1108, 71, 71, 71, 71, 1106, 71, 71, + 71, 1111, 1112, 1109, 71, 71, 71, 71, 1117, 1118, + 71, 1113, 71, 1110, 71, 71, 71, 1115, 1121, 71, + 71, 1120, 1114, 71, 1123, 1116, 1122, 1119, 71, 1125, + 71, 71, 1124, 71, 71, 1131, 71, 1127, 71, 71, + 71, 1126, 71, 71, 71, 1135, 1137, 71, 71, 1128, + 1142, 1136, 1132, 1130, 1133, 1134, 1129, 1139, 71, 1140, + + 71, 71, 71, 71, 1138, 71, 1141, 1143, 71, 71, + 71, 71, 1144, 1146, 1145, 71, 71, 71, 1149, 1152, + 71, 71, 71, 71, 1147, 143, 71, 71, 71, 1148, + 1150, 1153, 1156, 1158, 1164, 1151, 71, 1155, 71, 1154, + 71, 1162, 1159, 1157, 1160, 71, 71, 1161, 71, 1166, + 1163, 71, 1165, 71, 1167, 71, 1169, 1168, 71, 71, + 1171, 1174, 71, 71, 71, 71, 71, 71, 1175, 1172, + 1176, 1178, 1170, 71, 71, 71, 1180, 1179, 1173, 71, + 71, 71, 71, 71, 1177, 71, 71, 71, 71, 1181, + 1182, 71, 1184, 1186, 1187, 71, 1185, 1191, 1183, 71, + + 71, 1196, 1188, 1192, 71, 1190, 1189, 71, 71, 1195, + 71, 71, 71, 71, 71, 1193, 1198, 1200, 1197, 1194, + 1202, 71, 71, 1201, 71, 1203, 71, 71, 1205, 1218, + 1199, 1215, 1204, 1216, 1206, 71, 1207, 71, 71, 71, + 1214, 71, 1208, 71, 1217, 1209, 1210, 1219, 1220, 71, + 1211, 141, 71, 71, 71, 71, 1212, 1221, 1222, 1229, + 1213, 71, 1223, 71, 1225, 71, 71, 71, 71, 1226, + 1224, 1227, 71, 1232, 1230, 1228, 71, 1235, 1236, 71, + 71, 71, 71, 71, 71, 1237, 1233, 1231, 71, 1245, + 1239, 71, 1238, 1246, 1234, 1240, 71, 1241, 71, 1242, + + 1247, 1243, 71, 1244, 71, 71, 1251, 71, 71, 71, + 71, 1252, 71, 1248, 1250, 1254, 71, 1256, 71, 71, + 71, 71, 1249, 1255, 71, 71, 1261, 1259, 71, 1253, + 71, 71, 1267, 71, 1260, 1257, 1266, 1258, 1262, 1263, + 71, 1269, 71, 1264, 71, 71, 1270, 71, 1271, 71, + 1274, 71, 1272, 1265, 71, 1268, 1276, 71, 71, 1277, + 71, 71, 71, 1281, 71, 1278, 71, 71, 1273, 71, + 1283, 71, 71, 71, 1275, 1287, 1285, 71, 2858, 71, + 1288, 1286, 1279, 1280, 1289, 71, 1282, 71, 71, 1284, + 1290, 71, 71, 1292, 71, 1291, 1293, 71, 1294, 1295, + + 71, 71, 71, 1300, 71, 1301, 1297, 71, 1298, 71, + 1296, 71, 1302, 1303, 71, 1299, 71, 71, 71, 71, + 1307, 71, 71, 1304, 1308, 1311, 1312, 71, 1306, 71, + 1314, 71, 71, 1313, 71, 1305, 71, 71, 1309, 71, + 71, 71, 71, 1315, 71, 1310, 71, 1321, 71, 1316, + 71, 1318, 71, 1325, 1317, 1319, 71, 1322, 1320, 1326, + 71, 1328, 1324, 1330, 71, 71, 71, 1323, 1331, 71, + 71, 1329, 71, 1327, 1333, 71, 71, 71, 1334, 1341, + 1335, 1339, 1332, 71, 1340, 1343, 71, 1336, 71, 71, + 1337, 71, 1344, 1338, 71, 71, 71, 1342, 71, 71, + + 1345, 1349, 71, 71, 1351, 1346, 71, 71, 71, 1356, + 71, 71, 71, 1348, 1357, 1360, 1350, 1353, 71, 71, + 1347, 71, 1352, 71, 1354, 1355, 71, 71, 71, 1358, + 1361, 1359, 71, 71, 71, 71, 71, 1363, 1362, 1367, + 1368, 1364, 1365, 71, 1371, 71, 1372, 1366, 1369, 71, + 1370, 1373, 71, 71, 1377, 1374, 1378, 71, 1376, 71, + 71, 1382, 71, 71, 1379, 71, 1380, 1381, 71, 71, + 71, 71, 71, 1375, 71, 1388, 71, 1384, 1383, 1387, + 71, 71, 71, 71, 1385, 1394, 1386, 1391, 1390, 71, + 1395, 71, 1396, 71, 1399, 1392, 1389, 1397, 71, 71, + + 71, 71, 1393, 71, 71, 71, 71, 1407, 1403, 1398, + 1402, 71, 71, 71, 1410, 71, 1408, 71, 1400, 1401, + 71, 71, 1413, 1404, 1406, 1405, 71, 1412, 71, 71, + 71, 71, 71, 71, 1411, 71, 1414, 1426, 1409, 71, + 1421, 71, 71, 71, 1422, 1415, 1418, 71, 1416, 1417, + 1420, 71, 1419, 71, 1423, 1424, 71, 71, 1425, 71, + 1427, 1430, 71, 1435, 1429, 1431, 1428, 1433, 71, 71, + 1437, 71, 71, 71, 71, 71, 71, 1438, 1432, 1439, + 1440, 71, 71, 1434, 1445, 1436, 1441, 1446, 71, 71, + 71, 71, 71, 1442, 2858, 1444, 1451, 1449, 71, 1443, + + 71, 1450, 71, 1452, 71, 71, 71, 1447, 1453, 1454, + 71, 71, 1448, 71, 1455, 71, 1457, 71, 1460, 71, + 71, 71, 1456, 71, 1459, 71, 1463, 71, 1464, 71, + 71, 1458, 71, 1468, 1461, 71, 71, 71, 1466, 1473, + 71, 1462, 1471, 1465, 1469, 71, 71, 71, 1476, 1474, + 71, 1472, 71, 1470, 1467, 71, 71, 71, 71, 1479, + 1482, 71, 1481, 1478, 71, 71, 1475, 71, 71, 71, + 1489, 71, 1477, 71, 71, 1480, 1483, 71, 1484, 1490, + 71, 1487, 1493, 71, 1485, 1486, 1498, 71, 1494, 1496, + 71, 1491, 71, 1488, 71, 1497, 1500, 1492, 71, 71, + + 1495, 71, 71, 1502, 71, 71, 71, 1504, 71, 1507, + 1505, 71, 1501, 71, 1499, 71, 1508, 71, 1503, 71, + 71, 1513, 1512, 71, 71, 1509, 2858, 71, 1519, 71, + 1506, 1510, 1511, 71, 71, 1514, 1516, 71, 1521, 1517, + 71, 1525, 1520, 71, 1515, 1522, 1524, 71, 71, 71, + 1527, 1518, 1523, 1526, 71, 1528, 1529, 71, 71, 71, + 71, 71, 71, 1530, 71, 1536, 1537, 1535, 71, 1539, + 1531, 71, 71, 1538, 71, 71, 71, 1532, 71, 1533, + 71, 1534, 71, 1541, 1542, 71, 71, 1543, 71, 71, + 1551, 71, 71, 71, 1544, 71, 71, 1540, 71, 71, + + 1545, 71, 1547, 1548, 1549, 71, 1546, 71, 1550, 1556, + 71, 1552, 1554, 1553, 71, 71, 1559, 71, 71, 1558, + 1555, 1557, 1560, 71, 71, 71, 71, 71, 71, 1562, + 71, 1561, 1564, 1566, 1567, 71, 1563, 1568, 1573, 1565, + 1574, 71, 71, 1569, 71, 1570, 1575, 71, 71, 71, + 1571, 1578, 71, 1572, 1576, 1579, 71, 71, 71, 71, + 71, 71, 1577, 1582, 1583, 1580, 71, 1591, 1581, 1586, + 71, 71, 71, 71, 1592, 71, 1584, 1585, 71, 1588, + 1590, 71, 1589, 71, 71, 1587, 71, 71, 71, 71, + 1601, 1594, 1593, 71, 71, 71, 71, 1596, 1598, 1595, + + 1597, 1604, 71, 1603, 71, 1605, 1600, 71, 71, 1602, + 1612, 1607, 1599, 1609, 1608, 1613, 71, 71, 1615, 1606, + 71, 1617, 71, 1618, 71, 71, 1611, 1620, 1610, 71, + 1619, 1614, 71, 71, 71, 71, 1624, 71, 1616, 71, + 1621, 71, 71, 71, 71, 71, 71, 1626, 71, 1623, + 1625, 1628, 1622, 1627, 1631, 71, 71, 1632, 1629, 1635, + 1630, 71, 71, 71, 1637, 71, 71, 71, 1633, 1634, + 71, 1643, 71, 71, 71, 1636, 1638, 71, 1647, 71, + 1642, 71, 1639, 1640, 71, 1641, 71, 71, 1649, 1645, + 71, 1650, 1646, 71, 1644, 1651, 1653, 71, 1652, 71, + + 71, 1648, 1656, 71, 71, 71, 1660, 71, 71, 71, + 71, 71, 71, 71, 1655, 71, 1658, 1662, 71, 1657, + 1654, 1663, 1661, 1664, 1659, 2858, 1667, 1668, 71, 1671, + 71, 1665, 71, 1666, 1670, 71, 1669, 71, 1672, 1673, + 71, 71, 1674, 1676, 1677, 71, 71, 71, 71, 71, + 1675, 71, 71, 1679, 71, 1680, 71, 71, 1678, 71, + 71, 71, 1685, 71, 71, 71, 71, 1681, 1686, 1689, + 1682, 71, 1683, 1687, 1684, 1688, 1694, 71, 1695, 71, + 1690, 1693, 71, 1692, 71, 71, 1696, 71, 71, 1700, + 71, 71, 1703, 1691, 1704, 71, 1705, 71, 1697, 1707, + + 71, 1698, 1699, 71, 1701, 71, 1702, 71, 1706, 71, + 1708, 1711, 71, 71, 1713, 71, 1715, 1712, 1714, 71, + 71, 1717, 71, 71, 1709, 1716, 1710, 71, 71, 1720, + 71, 1719, 71, 1721, 1722, 1723, 1724, 1725, 71, 71, + 71, 1729, 1726, 71, 1718, 1731, 71, 71, 71, 71, + 1732, 71, 71, 71, 1734, 71, 1737, 1738, 1727, 1728, + 1733, 71, 71, 1730, 1735, 1741, 71, 71, 71, 1739, + 1736, 71, 1743, 71, 71, 1746, 1747, 71, 71, 1749, + 71, 71, 1740, 71, 71, 71, 1755, 71, 1744, 71, + 1754, 71, 1751, 1742, 1752, 1745, 71, 71, 1748, 71, + + 71, 71, 1761, 71, 71, 1753, 1750, 1758, 1759, 71, + 1756, 71, 1757, 1765, 1764, 71, 71, 1760, 1768, 71, + 1763, 1769, 1767, 71, 71, 1770, 71, 71, 1771, 1762, + 71, 1766, 71, 71, 71, 71, 1773, 1776, 71, 1772, + 71, 1779, 1780, 71, 71, 1775, 71, 71, 71, 71, + 1783, 1774, 71, 1777, 71, 71, 71, 1792, 71, 1782, + 1789, 1790, 71, 1781, 1778, 71, 1784, 1785, 1786, 1787, + 71, 1788, 71, 1794, 1791, 71, 1793, 71, 1795, 1796, + 71, 71, 1799, 71, 1802, 71, 71, 71, 71, 1798, + 71, 1797, 1804, 1805, 71, 71, 1806, 2858, 71, 1808, + + 1803, 1800, 1807, 1801, 1809, 1810, 71, 1811, 71, 1812, + 1814, 1815, 1816, 71, 1813, 71, 71, 71, 1817, 71, + 1819, 71, 71, 71, 71, 71, 71, 1821, 71, 1824, + 1826, 1818, 71, 1820, 1822, 71, 71, 71, 71, 71, + 1827, 71, 1831, 1830, 1828, 71, 1832, 1825, 1836, 1823, + 1833, 71, 1834, 71, 71, 71, 1829, 71, 71, 71, + 1838, 1835, 71, 1837, 1839, 71, 71, 1841, 1840, 1842, + 71, 1844, 71, 71, 71, 1848, 71, 1843, 71, 1847, + 71, 71, 71, 71, 1845, 1846, 1850, 1849, 1851, 1852, + 71, 1854, 71, 71, 71, 71, 71, 1859, 1857, 71, + + 1853, 1858, 71, 71, 71, 1861, 71, 1865, 71, 1860, + 1855, 1864, 1856, 71, 71, 71, 1862, 1863, 71, 71, + 1867, 71, 1866, 1869, 1871, 71, 71, 71, 1870, 1872, + 71, 71, 1877, 71, 1875, 1868, 71, 1873, 71, 71, + 1879, 1881, 71, 1874, 1876, 71, 71, 1880, 1878, 71, + 71, 1885, 71, 1884, 1882, 71, 1883, 1887, 71, 71, + 71, 1886, 71, 71, 71, 71, 71, 1888, 71, 1893, + 1889, 1890, 1897, 71, 71, 71, 71, 1892, 1896, 1900, + 1901, 71, 1894, 1898, 1895, 71, 1891, 71, 1899, 1904, + 1903, 71, 71, 71, 1902, 71, 1906, 71, 71, 1905, + + 1907, 1908, 71, 71, 1912, 71, 1910, 1914, 71, 71, + 1911, 1916, 71, 1909, 71, 71, 71, 1919, 71, 1918, + 71, 1920, 1913, 1915, 71, 1921, 1924, 71, 71, 71, + 71, 71, 71, 1925, 1917, 71, 1922, 1927, 1930, 71, + 1926, 71, 1931, 71, 1923, 1929, 1934, 2858, 71, 1928, + 1932, 71, 71, 1935, 71, 71, 1936, 1939, 71, 1937, + 71, 71, 1941, 1933, 71, 1942, 71, 1938, 71, 71, + 71, 1946, 1940, 1948, 71, 1943, 1947, 1944, 1949, 71, + 1945, 71, 1951, 1950, 71, 71, 71, 71, 71, 1953, + 1954, 1957, 71, 1952, 71, 71, 71, 71, 71, 1955, + + 71, 71, 71, 71, 71, 1965, 1958, 1956, 1966, 1963, + 1961, 1960, 1959, 1962, 1964, 71, 71, 71, 71, 1971, + 71, 1967, 1969, 71, 1970, 1975, 71, 1977, 71, 1974, + 71, 71, 1976, 71, 1968, 1972, 1980, 1979, 71, 1982, + 1984, 1985, 71, 1973, 1983, 71, 71, 71, 71, 1978, + 71, 1981, 71, 1986, 1989, 71, 1987, 71, 1990, 1994, + 71, 1993, 1988, 71, 1995, 71, 71, 1998, 71, 71, + 71, 2000, 1991, 71, 1999, 2001, 71, 1996, 71, 71, + 71, 2003, 2004, 1992, 1997, 2002, 71, 71, 2005, 71, + 2006, 71, 71, 71, 2008, 71, 71, 71, 2011, 2014, + + 71, 2015, 71, 71, 2007, 71, 71, 2010, 2017, 71, + 71, 71, 2013, 2012, 2009, 2021, 71, 2016, 2019, 2024, + 71, 71, 71, 71, 2022, 71, 71, 71, 2020, 2025, + 71, 2018, 71, 71, 2023, 2035, 71, 71, 71, 71, + 71, 2026, 2027, 2036, 2032, 71, 2030, 71, 2028, 2272, + 2029, 2031, 2034, 2038, 2033, 71, 2040, 71, 2037, 71, + 2039, 2041, 71, 2042, 71, 71, 71, 2045, 2046, 2048, + 71, 2047, 2043, 71, 71, 71, 71, 71, 2044, 2049, + 2050, 2054, 71, 2055, 71, 71, 2057, 71, 71, 2053, + 2059, 71, 71, 2051, 71, 71, 2052, 2062, 71, 2061, + + 2063, 71, 71, 71, 2056, 71, 2058, 2060, 71, 2064, + 71, 2065, 71, 2068, 2069, 71, 71, 2066, 2071, 71, + 71, 71, 2073, 2074, 2067, 71, 2075, 2077, 71, 2070, + 2072, 71, 71, 2081, 71, 71, 71, 71, 71, 71, + 2078, 2076, 2085, 2086, 71, 71, 2079, 71, 2090, 71, + 71, 2080, 2084, 71, 71, 2082, 71, 71, 2087, 2083, + 2088, 2092, 2089, 71, 2095, 71, 2096, 2093, 71, 71, + 2091, 2097, 71, 71, 71, 71, 71, 2100, 2101, 71, + 2099, 71, 2094, 71, 2105, 2098, 2106, 71, 2103, 2109, + 71, 71, 2107, 71, 2111, 71, 2112, 2104, 2108, 2102, + + 71, 71, 2120, 71, 71, 71, 71, 71, 71, 71, + 2858, 2110, 2115, 2116, 2114, 2117, 2118, 2121, 2113, 2119, + 71, 71, 2126, 71, 2122, 71, 2125, 71, 71, 2123, + 2124, 71, 2127, 71, 71, 71, 2133, 71, 71, 71, + 2128, 71, 71, 71, 71, 71, 2242, 2129, 2134, 2130, + 2131, 2132, 2135, 2136, 2137, 71, 2139, 2138, 2140, 71, + 71, 2144, 71, 2858, 2141, 2142, 71, 2145, 2146, 71, + 71, 71, 2143, 2147, 2149, 2150, 2148, 2151, 71, 71, + 71, 71, 71, 2153, 71, 71, 71, 71, 2157, 71, + 71, 71, 2159, 2152, 2158, 71, 2154, 2160, 71, 2155, + + 2161, 71, 71, 2165, 71, 2156, 2164, 71, 71, 71, + 2162, 2163, 71, 2167, 71, 71, 71, 71, 2174, 2171, + 2166, 71, 2173, 71, 71, 71, 71, 2175, 2170, 2168, + 2178, 2179, 2169, 71, 71, 71, 2172, 71, 71, 71, + 2181, 2176, 2177, 2180, 71, 2183, 71, 2182, 71, 2184, + 71, 2186, 2187, 2188, 71, 2190, 71, 2193, 71, 71, + 2185, 2192, 71, 71, 71, 71, 2189, 2191, 71, 71, + 2196, 71, 2200, 71, 2198, 2202, 2199, 2194, 2201, 71, + 2195, 71, 71, 2203, 71, 71, 71, 71, 71, 71, + 2211, 2206, 2209, 71, 2197, 71, 71, 2210, 71, 71, + + 2204, 2208, 2214, 71, 71, 71, 2207, 2205, 71, 2217, + 2218, 71, 71, 2212, 2213, 71, 71, 2215, 71, 2222, + 2219, 2220, 2216, 71, 71, 2221, 2223, 2226, 71, 2225, + 2227, 71, 2228, 71, 2229, 71, 71, 71, 2224, 71, + 2232, 71, 2233, 71, 71, 71, 71, 71, 2230, 2238, + 71, 2239, 71, 2240, 71, 2231, 2234, 2235, 71, 2241, + 71, 71, 2237, 2236, 71, 71, 2245, 2248, 71, 71, + 2243, 71, 71, 71, 71, 71, 71, 2255, 2249, 71, + 2244, 71, 71, 71, 2246, 2247, 2252, 71, 2256, 2254, + 71, 71, 2251, 71, 2262, 2858, 2257, 2250, 2253, 71, + + 2259, 71, 2258, 71, 2264, 2260, 2265, 2263, 2266, 71, + 2267, 71, 71, 2261, 71, 2268, 71, 2269, 71, 2270, + 71, 2271, 71, 71, 71, 71, 71, 71, 2281, 71, + 71, 2273, 2858, 2278, 2282, 71, 2285, 71, 71, 71, + 2274, 2275, 71, 71, 2276, 2277, 2279, 2280, 2284, 2287, + 71, 2286, 2283, 71, 71, 71, 2288, 71, 71, 71, + 2290, 2289, 2296, 71, 2297, 71, 2298, 71, 71, 2291, + 71, 71, 71, 2292, 2294, 2293, 2302, 71, 2295, 71, + 71, 71, 2306, 2300, 71, 2299, 2305, 2307, 71, 2301, + 71, 71, 2308, 2309, 71, 71, 71, 2303, 71, 2304, + + 2311, 71, 71, 2310, 71, 71, 2315, 71, 2313, 71, + 2319, 2320, 71, 71, 2312, 2323, 71, 71, 2314, 71, + 71, 2324, 2316, 2317, 2321, 2318, 71, 2327, 71, 71, + 2326, 2322, 71, 2328, 2325, 2331, 71, 71, 71, 2333, + 71, 2335, 71, 71, 71, 71, 2338, 71, 2336, 2329, + 2332, 71, 2330, 71, 2339, 71, 2334, 2337, 71, 71, + 71, 2345, 71, 71, 2341, 71, 2340, 2343, 2342, 2344, + 2347, 71, 71, 71, 2346, 71, 2349, 2348, 71, 71, + 2350, 71, 71, 71, 2352, 71, 2353, 2355, 2356, 2358, + 71, 71, 2351, 71, 2354, 2364, 2357, 2359, 71, 71, + + 2360, 71, 71, 2362, 2361, 71, 2366, 2365, 71, 2363, + 71, 2369, 71, 2370, 71, 2368, 71, 2372, 71, 71, + 2374, 2858, 2373, 2367, 2378, 2375, 71, 71, 71, 2371, + 71, 71, 2376, 2377, 71, 2379, 71, 71, 71, 2380, + 71, 71, 71, 71, 71, 2381, 2383, 2384, 2386, 71, + 71, 71, 2382, 2385, 2387, 2389, 2388, 71, 2391, 71, + 71, 71, 2390, 71, 2395, 71, 71, 71, 2397, 2393, + 2394, 71, 2392, 71, 2396, 2400, 71, 71, 71, 2404, + 71, 71, 2403, 71, 71, 71, 2398, 2402, 2408, 2411, + 2399, 2412, 2401, 2409, 71, 71, 2405, 71, 2406, 2413, + + 71, 2407, 2414, 71, 71, 71, 71, 71, 2415, 2416, + 2410, 71, 71, 71, 71, 2417, 2419, 71, 2422, 71, + 2418, 2423, 71, 2424, 71, 2420, 2425, 71, 2421, 2426, + 71, 2428, 71, 2431, 2427, 71, 2429, 71, 2434, 2430, + 2432, 71, 2433, 71, 71, 71, 2437, 71, 71, 2438, + 2439, 71, 71, 2441, 71, 71, 71, 2435, 71, 2445, + 2446, 71, 71, 2436, 2448, 71, 2447, 2440, 2442, 2449, + 71, 71, 2444, 71, 2443, 71, 71, 2454, 71, 71, + 71, 71, 2453, 71, 2456, 2457, 71, 71, 71, 2459, + 71, 2460, 2458, 2451, 2450, 2452, 71, 71, 71, 2462, + + 71, 71, 2465, 2455, 2461, 2469, 71, 2463, 2464, 71, + 71, 71, 2475, 71, 71, 2468, 2466, 2472, 2471, 71, + 2467, 2858, 2473, 71, 71, 2476, 71, 2477, 2470, 71, + 2474, 71, 2478, 71, 2479, 2480, 71, 71, 71, 71, + 2483, 2481, 2487, 71, 71, 71, 2484, 2488, 71, 2482, + 2490, 71, 2492, 71, 71, 2491, 71, 71, 2485, 2486, + 71, 2493, 71, 2489, 2494, 71, 2495, 2499, 71, 2496, + 71, 2497, 2498, 71, 2500, 71, 71, 71, 2503, 2507, + 71, 71, 2501, 2504, 71, 71, 2506, 71, 71, 2505, + 2502, 71, 71, 71, 2509, 71, 71, 71, 71, 2508, + + 2510, 2512, 2516, 2517, 71, 2514, 71, 2518, 71, 71, + 2858, 2513, 2511, 2519, 2520, 2528, 2515, 71, 2521, 2523, + 71, 2522, 2524, 71, 2525, 71, 71, 71, 2527, 71, + 2530, 71, 2529, 71, 2531, 2526, 71, 71, 2532, 2533, + 71, 71, 71, 71, 2538, 71, 2536, 2540, 71, 2534, + 71, 71, 71, 2544, 71, 71, 71, 71, 2535, 2547, + 2537, 71, 71, 71, 2541, 71, 2542, 71, 2539, 2545, + 2546, 2548, 2543, 2551, 71, 2554, 71, 2549, 71, 2552, + 2556, 71, 2550, 2557, 71, 71, 2559, 71, 71, 71, + 71, 71, 71, 2553, 71, 2563, 71, 2555, 2564, 71, + + 71, 2568, 71, 71, 2560, 2561, 2558, 2562, 2570, 71, + 2572, 71, 2565, 2573, 71, 2567, 2569, 2566, 71, 2575, + 71, 71, 71, 2579, 71, 71, 71, 2583, 71, 71, + 2577, 2571, 71, 71, 2585, 2584, 71, 2581, 2574, 2576, + 71, 2588, 2578, 2580, 2589, 71, 2582, 71, 2586, 71, + 2591, 71, 2590, 71, 71, 71, 71, 2596, 2593, 2594, + 2587, 71, 71, 71, 2599, 71, 2600, 71, 71, 2592, + 2603, 71, 2604, 71, 2595, 71, 71, 2602, 2597, 2598, + 2605, 2601, 71, 2608, 71, 2609, 71, 2607, 2610, 71, + 2606, 71, 2612, 71, 71, 71, 2611, 71, 71, 71, + + 2617, 2618, 71, 71, 71, 71, 2622, 71, 71, 2858, + 71, 2625, 71, 2613, 2621, 2624, 71, 2614, 2619, 2615, + 2616, 2626, 71, 2620, 71, 2628, 71, 2623, 2631, 71, + 2627, 71, 71, 71, 2630, 71, 2629, 2632, 71, 71, + 71, 71, 71, 2635, 71, 71, 2637, 71, 71, 2638, + 71, 2636, 71, 2633, 71, 2634, 71, 71, 71, 2647, + 71, 2639, 2652, 2643, 2640, 2641, 2642, 2644, 2645, 2669, + 2649, 2650, 71, 2646, 2651, 71, 2648, 2653, 71, 2654, + 71, 2655, 2656, 71, 71, 2657, 2658, 2661, 71, 2659, + 2660, 71, 71, 2662, 71, 71, 71, 2666, 71, 71, + + 2665, 71, 71, 71, 71, 2668, 2667, 71, 2673, 2663, + 2664, 2674, 71, 2672, 2675, 71, 71, 2670, 71, 2680, + 71, 2671, 2682, 2677, 2681, 71, 71, 71, 71, 2678, + 71, 2676, 2679, 71, 71, 2686, 71, 2689, 71, 2687, + 71, 71, 2684, 2691, 71, 2690, 2692, 71, 2693, 71, + 2699, 2683, 2694, 71, 2685, 2688, 2695, 71, 2696, 71, + 2697, 71, 2698, 71, 2700, 71, 71, 2702, 71, 71, + 71, 71, 2706, 71, 71, 2708, 71, 71, 71, 71, + 71, 2710, 71, 2704, 2703, 2705, 2701, 71, 2712, 2707, + 71, 2715, 71, 2714, 71, 2709, 2716, 71, 2713, 2717, + + 71, 71, 71, 71, 71, 2711, 2722, 2723, 71, 71, + 71, 2718, 71, 2726, 71, 71, 71, 2720, 2719, 2721, + 71, 2725, 2732, 71, 71, 2724, 71, 2730, 2728, 2731, + 2727, 71, 2734, 71, 71, 71, 2735, 71, 2729, 71, + 71, 2733, 71, 71, 71, 2745, 71, 71, 71, 2829, + 2738, 71, 2736, 2737, 2740, 71, 2743, 2746, 2747, 71, + 71, 2741, 2739, 2742, 2744, 71, 2748, 2749, 71, 2750, + 71, 2752, 71, 71, 2751, 2753, 71, 71, 2754, 71, + 2758, 2755, 71, 2761, 71, 2756, 71, 71, 2763, 71, + 71, 71, 2757, 2759, 2766, 71, 71, 2767, 71, 71, + + 71, 71, 2760, 71, 2770, 2764, 2762, 2768, 2771, 2765, + 71, 2775, 71, 2773, 71, 2772, 71, 2769, 71, 71, + 71, 71, 2774, 2778, 71, 71, 2780, 71, 71, 71, + 71, 71, 2777, 71, 2785, 2786, 2776, 71, 2782, 71, + 2779, 2783, 2790, 2781, 2789, 71, 2784, 2791, 2858, 2787, + 71, 2792, 2788, 71, 71, 71, 71, 2797, 2796, 2793, + 2794, 2795, 71, 71, 2799, 71, 71, 2798, 71, 71, + 2800, 71, 71, 2805, 71, 71, 2802, 71, 2808, 71, + 2809, 71, 71, 71, 71, 71, 71, 2801, 2807, 2812, + 2803, 2804, 2810, 2806, 71, 2811, 71, 2816, 71, 2815, + + 71, 2813, 71, 2817, 2814, 71, 2820, 2818, 71, 2822, + 71, 2823, 71, 71, 71, 2827, 71, 2824, 71, 71, + 2825, 2821, 71, 2828, 2830, 71, 2819, 71, 71, 2831, + 71, 2836, 71, 2826, 2832, 2834, 71, 71, 2833, 71, + 71, 71, 2838, 71, 2839, 71, 2842, 2835, 2843, 71, + 71, 71, 2846, 2847, 71, 2837, 71, 2849, 71, 2840, + 2841, 71, 2844, 2848, 2850, 71, 71, 71, 2851, 2845, + 71, 2852, 2853, 71, 2856, 71, 2857, 71, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2854, + 2858, 2858, 2855, 43, 43, 43, 43, 43, 43, 43, + + 48, 48, 48, 48, 48, 48, 48, 53, 53, 53, + 53, 53, 53, 53, 59, 59, 59, 59, 59, 59, + 59, 64, 64, 64, 64, 64, 64, 64, 74, 74, + 2858, 74, 74, 74, 74, 140, 140, 2858, 2858, 2858, + 140, 140, 142, 142, 2858, 2858, 142, 2858, 142, 144, + 2858, 2858, 2858, 2858, 2858, 144, 147, 147, 2858, 2858, + 2858, 147, 147, 149, 2858, 2858, 2858, 2858, 2858, 149, + 151, 151, 2858, 151, 151, 151, 151, 75, 75, 2858, + 75, 75, 75, 75, 13, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858 } ; -static yyconst flex_int16_t yy_chk[5593] = +static yyconst flex_int16_t yy_chk[5626] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1995,13 +2003,13 @@ static yyconst flex_int16_t yy_chk[5593] = 5, 3, 6, 20, 4, 20, 20, 5, 20, 6, 7, 7, 7, 7, 20, 7, 8, 8, 8, 8, 29, 8, 7, 9, 9, 9, 22, 22, 8, 10, - 10, 10, 15, 25, 9, 29, 15, 25, 2850, 31, + 10, 10, 15, 25, 9, 29, 15, 25, 2864, 31, 10, 11, 11, 11, 11, 11, 11, 19, 79, 19, 19, 30, 19, 11, 31, 79, 30, 25, 19, 19, 47, 47, 11, 12, 12, 12, 12, 12, 12, 21, 23, 23, 21, 21, 24, 12, 21, 81, 23, 24, - 34, 21, 23, 24, 12, 23, 24, 957, 24, 24, + 34, 21, 23, 24, 12, 23, 24, 960, 24, 24, 21, 26, 26, 27, 27, 90, 28, 81, 32, 32, 28, 34, 27, 28, 33, 33, 26, 32, 36, 33, 28, 35, 28, 32, 90, 42, 35, 32, 52, 84, @@ -2092,517 +2100,520 @@ static yyconst flex_int16_t yy_chk[5593] = 385, 70, 385, 394, 390, 392, 393, 391, 394, 397, 393, 396, 396, 398, 395, 399, 400, 400, 398, 401, 402, 403, 397, 404, 402, 401, 405, 406, 399, 407, - 408, 405, 406, 409, 410, 411, 403, 412, 407, 413, - 412, 416, 408, 413, 404, 414, 416, 411, 415, 415, - 417, 421, 410, 409, 418, 418, 422, 414, 420, 420, - 423, 424, 425, 429, 422, 427, 428, 430, 437, 423, - - 431, 417, 421, 430, 425, 433, 432, 429, 434, 431, - 433, 424, 432, 427, 436, 427, 428, 435, 437, 440, - 436, 438, 434, 439, 438, 435, 441, 442, 435, 439, - 443, 441, 444, 440, 445, 446, 444, 447, 448, 445, - 449, 452, 447, 451, 453, 454, 455, 439, 453, 442, - 446, 443, 458, 456, 448, 460, 452, 456, 64, 449, - 450, 450, 455, 451, 454, 457, 450, 458, 450, 461, - 457, 460, 459, 463, 450, 465, 450, 459, 461, 450, - 450, 462, 464, 466, 468, 464, 450, 462, 471, 463, - 467, 467, 462, 469, 469, 470, 472, 473, 465, 474, - - 471, 475, 478, 466, 476, 477, 475, 521, 479, 468, - 470, 472, 486, 476, 479, 482, 473, 478, 481, 482, - 483, 474, 484, 485, 477, 487, 483, 481, 488, 489, - 521, 486, 490, 491, 484, 492, 490, 492, 485, 487, - 493, 494, 494, 488, 495, 496, 491, 489, 493, 497, - 495, 498, 500, 499, 501, 497, 499, 496, 503, 502, - 505, 503, 504, 498, 502, 515, 500, 506, 515, 501, - 507, 504, 506, 506, 508, 508, 505, 514, 504, 509, - 509, 504, 510, 507, 511, 511, 512, 512, 510, 513, - 517, 516, 518, 522, 519, 513, 516, 519, 514, 520, - - 518, 523, 524, 525, 520, 523, 526, 525, 524, 517, - 527, 528, 522, 529, 531, 527, 530, 532, 533, 529, - 532, 530, 534, 534, 526, 532, 535, 536, 531, 532, - 537, 528, 536, 538, 539, 537, 533, 540, 542, 541, - 544, 542, 543, 540, 535, 544, 543, 538, 541, 539, - 545, 546, 549, 545, 547, 548, 546, 550, 551, 552, - 552, 554, 550, 553, 59, 549, 555, 556, 543, 557, - 547, 558, 553, 548, 563, 564, 556, 558, 551, 559, - 554, 557, 555, 560, 561, 559, 560, 561, 562, 564, - 565, 567, 563, 562, 566, 568, 565, 567, 568, 566, - - 569, 570, 571, 572, 573, 569, 570, 570, 574, 575, - 576, 54, 577, 580, 574, 571, 572, 577, 578, 576, - 579, 578, 581, 573, 573, 580, 579, 581, 575, 582, - 583, 583, 584, 586, 582, 582, 578, 585, 587, 585, - 587, 588, 589, 590, 591, 592, 593, 594, 598, 595, - 593, 596, 586, 597, 600, 604, 594, 584, 599, 588, - 589, 590, 601, 591, 595, 592, 596, 598, 601, 600, - 599, 597, 602, 603, 604, 605, 606, 607, 608, 609, - 606, 610, 612, 612, 611, 603, 602, 613, 614, 616, - 615, 613, 618, 619, 605, 607, 608, 609, 611, 617, - - 610, 615, 620, 616, 617, 622, 621, 614, 618, 623, - 622, 626, 619, 621, 624, 620, 623, 625, 627, 624, - 629, 628, 625, 630, 631, 627, 632, 635, 637, 626, - 628, 632, 630, 634, 629, 633, 631, 634, 633, 636, - 638, 635, 639, 637, 640, 640, 641, 641, 636, 642, - 642, 643, 645, 646, 638, 641, 647, 648, 649, 646, - 643, 648, 650, 639, 651, 653, 652, 654, 655, 656, - 649, 645, 652, 653, 654, 657, 647, 660, 684, 658, - 663, 666, 651, 667, 658, 684, 655, 650, 658, 667, - 666, 658, 660, 668, 656, 657, 669, 663, 658, 672, - - 669, 658, 670, 670, 671, 671, 673, 674, 675, 668, - 672, 676, 681, 678, 679, 688, 680, 676, 678, 682, - 688, 674, 682, 723, 673, 683, 683, 686, 675, 677, - 677, 677, 723, 677, 680, 679, 677, 681, 685, 685, - 690, 677, 686, 687, 687, 690, 689, 677, 677, 689, - 691, 692, 691, 693, 694, 695, 697, 696, 694, 698, - 698, 703, 699, 692, 697, 700, 701, 701, 702, 704, - 706, 706, 693, 703, 720, 695, 696, 699, 705, 700, - 709, 720, 707, 705, 710, 709, 702, 707, 707, 711, - 710, 704, 712, 713, 715, 711, 716, 712, 714, 713, - - 715, 714, 717, 718, 716, 721, 719, 722, 722, 724, - 717, 719, 725, 726, 728, 730, 729, 724, 725, 731, - 730, 718, 733, 728, 721, 729, 732, 733, 731, 732, - 734, 735, 726, 736, 736, 737, 738, 739, 740, 743, - 741, 743, 745, 741, 734, 747, 739, 744, 744, 746, - 737, 741, 748, 749, 746, 738, 735, 750, 751, 752, - 753, 755, 740, 745, 753, 754, 747, 757, 752, 756, - 758, 759, 748, 749, 760, 756, 757, 762, 751, 750, - 755, 761, 758, 754, 763, 764, 764, 761, 760, 763, - 759, 762, 765, 766, 767, 768, 769, 770, 771, 772, - - 773, 774, 766, 775, 771, 776, 773, 778, 781, 775, - 779, 776, 765, 772, 767, 768, 777, 770, 769, 780, - 777, 774, 779, 785, 780, 783, 778, 782, 782, 781, - 779, 783, 784, 786, 787, 784, 788, 789, 789, 790, - 787, 785, 791, 792, 792, 793, 786, 791, 794, 795, - 795, 796, 794, 798, 797, 801, 788, 790, 798, 799, - 793, 802, 804, 805, 807, 807, 808, 811, 809, 53, - 808, 810, 810, 796, 797, 802, 812, 814, 799, 801, - 812, 815, 804, 809, 805, 806, 815, 813, 806, 816, - 806, 814, 811, 817, 806, 818, 806, 820, 817, 817, - - 819, 806, 813, 816, 819, 821, 806, 823, 822, 818, - 821, 824, 820, 822, 825, 832, 826, 827, 828, 833, - 821, 823, 826, 827, 828, 829, 829, 831, 825, 830, - 834, 836, 824, 831, 830, 837, 841, 832, 833, 838, - 837, 841, 839, 836, 840, 840, 843, 844, 834, 835, - 835, 842, 845, 838, 839, 835, 48, 835, 849, 842, - 843, 846, 846, 835, 849, 851, 844, 852, 835, 835, - 847, 845, 853, 850, 847, 835, 850, 854, 853, 855, - 852, 856, 854, 857, 851, 858, 860, 859, 861, 862, - 856, 863, 857, 859, 862, 860, 864, 865, 855, 867, - - 866, 858, 872, 869, 868, 874, 875, 861, 867, 869, - 864, 863, 866, 868, 870, 876, 877, 865, 872, 874, - 870, 878, 879, 880, 881, 888, 875, 882, 880, 881, - 877, 883, 882, 886, 876, 884, 884, 879, 885, 878, - 883, 888, 889, 892, 885, 893, 886, 889, 889, 890, - 890, 891, 894, 890, 891, 895, 896, 892, 897, 898, - 899, 901, 902, 43, 897, 893, 899, 902, 895, 900, - 894, 896, 900, 903, 904, 905, 906, 907, 903, 898, - 905, 906, 901, 910, 915, 909, 911, 912, 914, 907, - 904, 909, 911, 912, 913, 913, 917, 914, 916, 910, - - 918, 916, 915, 919, 920, 921, 922, 920, 924, 923, - 929, 925, 922, 924, 917, 923, 925, 926, 921, 918, - 927, 930, 926, 919, 931, 933, 927, 934, 929, 937, - 931, 932, 932, 935, 933, 936, 935, 938, 936, 939, - 937, 930, 940, 941, 942, 934, 946, 943, 944, 941, - 942, 939, 947, 944, 950, 938, 945, 945, 948, 949, - 951, 940, 943, 949, 952, 946, 947, 953, 955, 951, - 948, 958, 950, 956, 956, 959, 960, 961, 963, 963, - 962, 964, 961, 952, 968, 958, 968, 955, 960, 962, - 959, 965, 953, 966, 970, 967, 971, 965, 969, 966, - - 967, 964, 972, 969, 973, 974, 975, 972, 970, 977, - 971, 976, 982, 975, 979, 979, 980, 981, 984, 973, - 985, 987, 987, 983, 974, 985, 976, 982, 977, 983, - 980, 990, 988, 989, 985, 981, 985, 988, 984, 985, - 989, 991, 992, 993, 991, 990, 994, 995, 996, 998, - 997, 994, 993, 996, 1000, 1000, 1003, 1001, 1002, 1004, - 992, 997, 1001, 1002, 1004, 1005, 995, 1007, 998, 1005, - 1006, 1008, 1009, 1010, 1011, 1013, 1003, 1012, 1014, 1006, - 1015, 1016, 1007, 1018, 1012, 1010, 1008, 1013, 1017, 1011, - 1019, 1009, 1020, 1021, 1017, 1024, 1025, 1014, 1018, 1016, - - 1023, 1015, 1021, 1026, 1025, 1028, 1023, 1030, 1027, 1024, - 1019, 1031, 1020, 1027, 1029, 1032, 14, 1028, 1035, 1029, - 1029, 1033, 1033, 1026, 1036, 1031, 1030, 1039, 1032, 1034, - 1037, 1035, 1039, 1036, 1034, 1040, 1037, 1034, 1034, 1038, - 1038, 1041, 1034, 1047, 1040, 1042, 1043, 1041, 1034, 1048, - 1042, 1043, 1034, 1044, 1044, 1045, 1045, 1046, 1050, 1049, - 1046, 1051, 1046, 1047, 1053, 1052, 1051, 1048, 1049, 1054, - 1055, 1060, 1056, 1060, 1058, 1054, 1055, 1056, 1050, 1052, - 1057, 1064, 1053, 1058, 1057, 1059, 1059, 1061, 1058, 1063, - 1058, 1065, 1058, 1063, 1058, 1066, 1064, 1067, 1061, 1068, - - 1069, 1070, 1067, 1067, 1066, 1069, 1072, 1071, 1073, 1065, - 1074, 1078, 1075, 1080, 1076, 1070, 1071, 1077, 1074, 1076, - 1078, 1068, 1079, 1081, 1083, 1072, 1075, 1073, 1081, 1082, - 1082, 1077, 1084, 1084, 1085, 1089, 1085, 1088, 1080, 1083, - 1079, 1087, 1088, 1091, 1087, 1090, 1090, 1092, 1092, 1093, - 1093, 1094, 1095, 1096, 1089, 1098, 1094, 1097, 1097, 1099, - 1100, 1101, 1099, 1091, 1111, 1111, 1101, 1102, 1103, 1105, - 1103, 1108, 1105, 1095, 1096, 1098, 1102, 1106, 1107, 1108, - 1100, 1109, 1106, 1107, 1110, 1112, 1109, 1113, 1114, 1110, - 1112, 1115, 1120, 1116, 1114, 1118, 1119, 1120, 1115, 1122, - - 1123, 1118, 1119, 1121, 1124, 1113, 1116, 1126, 1122, 1121, - 1125, 1125, 1128, 1129, 1130, 1124, 1131, 1132, 1134, 1123, - 1130, 1135, 1131, 1132, 1134, 1136, 1137, 1126, 1138, 1139, - 1140, 1140, 1128, 1141, 1142, 1135, 1129, 1143, 1137, 1144, - 1146, 1135, 1138, 1149, 1144, 1136, 1147, 1139, 1145, 1145, - 1151, 1147, 1150, 1141, 13, 1143, 1152, 1150, 1150, 1142, - 1154, 1153, 1149, 1146, 1155, 1152, 1156, 1157, 1151, 1153, - 1163, 1158, 1157, 1158, 1154, 1157, 1159, 1160, 1161, 1155, - 1162, 1156, 1161, 1160, 1156, 1164, 1165, 1166, 1167, 1163, - 1159, 1162, 1166, 1168, 1169, 1171, 1179, 1172, 1168, 1173, - - 1174, 1174, 1176, 1175, 1165, 1177, 1167, 1175, 1179, 1171, - 1178, 1164, 1180, 1181, 1169, 1172, 1178, 1173, 1182, 1183, - 1176, 1184, 1186, 1185, 1177, 1187, 1188, 1181, 1185, 1186, - 1187, 1180, 1189, 1182, 1183, 1190, 1190, 1191, 1193, 1192, - 1184, 1189, 1194, 1195, 1188, 1192, 0, 1194, 1196, 1195, - 1197, 1197, 1191, 1202, 1196, 1198, 1198, 1200, 1200, 1193, - 1201, 1203, 1202, 1204, 1201, 1205, 1206, 1207, 1207, 1208, - 1209, 1210, 1211, 1206, 1212, 1215, 1210, 1204, 1209, 1203, - 1205, 1217, 1213, 1216, 1216, 1214, 1211, 1213, 1213, 1208, - 1214, 1214, 1218, 1212, 1219, 1215, 1220, 1221, 1222, 1223, - - 1217, 1224, 1225, 1219, 1226, 1223, 1224, 1227, 1228, 1234, - 1226, 1218, 1229, 1230, 1228, 1220, 1222, 1221, 1229, 1231, - 1232, 1233, 1235, 1234, 1237, 1237, 1227, 1236, 1225, 1239, - 1238, 1241, 1230, 1238, 1240, 1240, 1241, 1243, 1231, 1232, - 1233, 1239, 1236, 1235, 1242, 1244, 1245, 1246, 1242, 1246, - 1243, 1248, 1249, 1246, 1244, 1250, 1248, 1251, 1253, 1245, - 1252, 1252, 1257, 1253, 1254, 1258, 1246, 1249, 1255, 1254, - 1256, 1259, 1255, 1251, 1256, 1250, 1261, 1261, 1260, 1263, - 1265, 1266, 1257, 1258, 1260, 1278, 1266, 1267, 1267, 1268, - 1274, 1259, 1270, 1270, 1275, 1268, 1272, 1263, 1281, 1272, - - 1279, 1265, 1273, 1273, 1277, 1278, 1274, 1277, 1282, 1279, - 1275, 1280, 1280, 1281, 1283, 1284, 1284, 1285, 1286, 1283, - 1287, 1288, 1288, 1289, 1290, 1291, 1292, 1293, 1293, 1282, - 1291, 1295, 1294, 1286, 1297, 1285, 1294, 1289, 1296, 1296, - 1299, 1292, 1290, 1298, 1299, 1287, 1300, 1301, 1303, 1303, - 1304, 1295, 1301, 1305, 1298, 1306, 1297, 1307, 1308, 1309, - 1309, 1310, 1311, 1313, 1312, 1300, 1310, 1305, 1304, 1315, - 1319, 1307, 1313, 1314, 1306, 1306, 1317, 1316, 1314, 1316, - 1318, 1317, 1311, 1308, 1312, 1320, 1318, 1322, 1324, 1315, - 1319, 1320, 1323, 1323, 1325, 1328, 1331, 1327, 1329, 1329, - - 1325, 1322, 1327, 1330, 1330, 1332, 1333, 1324, 1334, 1337, - 1331, 1334, 1335, 1335, 1336, 1340, 1343, 0, 1339, 1328, - 1340, 1333, 1338, 1332, 1339, 1338, 1336, 1341, 1338, 1337, - 1342, 1344, 1345, 1349, 1344, 1342, 1341, 1346, 1345, 1349, - 1338, 1343, 1346, 1347, 1347, 1348, 1348, 1350, 1351, 1352, - 1353, 1354, 1350, 1355, 1356, 1360, 1355, 1357, 1364, 1358, - 1356, 1351, 1359, 1357, 1358, 1361, 1365, 1352, 1359, 1353, - 1361, 1354, 1362, 1362, 1363, 1366, 1364, 1367, 1360, 1363, - 1368, 1369, 1371, 1370, 1372, 1373, 1365, 1374, 1371, 1375, - 1383, 1367, 1378, 1369, 1368, 1366, 1370, 1377, 1377, 1380, - - 1380, 1374, 1379, 1381, 1372, 1373, 1382, 1379, 1384, 1386, - 1375, 1389, 1378, 1385, 1383, 1391, 1387, 1393, 1381, 1388, - 1382, 1470, 1385, 1387, 1386, 1470, 1384, 1389, 1388, 1394, - 1391, 1388, 1394, 1395, 1395, 1391, 1396, 1396, 1397, 1400, - 1398, 1401, 1393, 1398, 1399, 1399, 1402, 1404, 1403, 1405, - 1397, 1402, 1400, 1403, 1406, 1407, 1410, 1412, 1408, 1409, - 1401, 1414, 1410, 1406, 1415, 1405, 1404, 1408, 1409, 1413, - 1408, 1411, 1411, 1416, 1407, 1417, 1419, 1412, 1415, 1414, - 1420, 1422, 1413, 1421, 1421, 1423, 1424, 1417, 1427, 1416, - 1426, 1424, 1425, 1425, 1423, 1428, 1429, 1422, 1420, 1426, - - 0, 1419, 1426, 1430, 1432, 1433, 1427, 1425, 1430, 1430, - 1434, 1433, 1435, 1435, 1429, 1436, 1428, 1437, 1432, 1438, - 1439, 1436, 1437, 1441, 1442, 1438, 1439, 1443, 1434, 1444, - 1449, 1445, 1450, 1443, 1445, 1459, 1447, 1451, 1442, 1452, - 1445, 1453, 1444, 1441, 1447, 1451, 1454, 1455, 1452, 1449, - 1456, 1450, 1457, 1458, 1453, 1459, 1460, 1461, 1457, 1454, - 1462, 1455, 1463, 1464, 1456, 1465, 1458, 1475, 1463, 1466, - 1468, 1468, 1469, 1462, 1460, 1471, 1461, 1472, 1473, 1474, - 1471, 1465, 1472, 1473, 1477, 1464, 1479, 1466, 1474, 1480, - 1475, 1481, 1469, 1478, 1478, 1482, 1482, 1483, 1487, 1477, - - 1484, 1480, 1485, 1486, 1488, 1479, 1489, 1484, 1490, 1491, - 1481, 1483, 1489, 1492, 1485, 1486, 1502, 1487, 1502, 1492, - 1490, 1493, 1493, 1494, 1488, 1497, 1494, 1491, 1495, 1495, - 1497, 1498, 1499, 1500, 1500, 1501, 1503, 1504, 1499, 1503, - 1498, 1505, 1506, 1507, 1508, 1509, 1510, 1501, 1512, 1508, - 1511, 1514, 1515, 1512, 1509, 1513, 1517, 1504, 1510, 1518, - 1506, 1507, 1517, 1505, 1513, 1511, 1519, 1515, 1516, 1516, - 1520, 1514, 1521, 1522, 1523, 1522, 1527, 1513, 1524, 1524, - 1518, 1525, 1525, 1526, 1526, 1519, 1520, 1530, 1523, 1531, - 1523, 1533, 1521, 1528, 1528, 1533, 1527, 1529, 1529, 1532, - - 1532, 1534, 1535, 1537, 1538, 1535, 1539, 1534, 1530, 1537, - 1531, 1540, 1539, 1541, 1542, 1542, 1541, 1543, 1543, 1544, - 1545, 1546, 1538, 1547, 1548, 1544, 1549, 1553, 1557, 1553, - 1548, 1552, 1545, 1545, 1545, 1555, 1540, 1557, 1554, 1545, - 1558, 1546, 1551, 1547, 1559, 1552, 1549, 1551, 1551, 1554, - 1555, 1556, 1560, 1560, 1561, 1562, 1562, 1556, 1563, 1564, - 1558, 1565, 1565, 1566, 1566, 1559, 1567, 1570, 1570, 1574, - 1571, 1575, 1577, 1573, 1576, 1576, 1578, 1575, 1563, 1571, - 1561, 1564, 1573, 1581, 1583, 1579, 1567, 1580, 1582, 1582, - 1574, 1578, 1579, 1577, 1586, 1584, 1580, 1587, 1588, 1586, - - 1589, 1595, 1590, 1587, 1592, 1592, 1591, 1589, 1590, 1581, - 1583, 1584, 1591, 1594, 1593, 1596, 1597, 1598, 1588, 1593, - 1598, 1595, 1594, 1599, 1600, 1601, 1601, 1602, 1597, 1603, - 1604, 1605, 1607, 1602, 1596, 1605, 1608, 1611, 1609, 1612, - 1613, 1599, 1619, 1612, 1654, 1604, 1613, 1654, 1614, 1603, - 1600, 1605, 1607, 1609, 1617, 1608, 1611, 1614, 1615, 1615, - 1616, 1618, 1618, 1619, 1616, 1617, 1620, 1621, 1622, 1623, - 1617, 1624, 1621, 1626, 1636, 1625, 1667, 1624, 1626, 1667, - 1620, 1627, 1627, 1628, 1628, 1630, 0, 1629, 1622, 1623, - 1625, 1629, 1631, 1631, 1632, 1632, 1630, 1633, 1634, 1635, - - 1636, 1630, 1633, 1633, 1634, 1635, 1637, 1638, 1639, 1641, - 1643, 1637, 1642, 1644, 1639, 1646, 1642, 1645, 1647, 1638, - 1648, 1641, 1643, 1645, 1647, 1651, 1652, 1650, 1655, 1655, - 1658, 1652, 1648, 1656, 1656, 1657, 1657, 1646, 1644, 1650, - 1659, 1660, 1668, 1661, 1651, 1662, 1659, 1660, 1661, 1663, - 1658, 1662, 1665, 1671, 1668, 1669, 1669, 1665, 1663, 1672, - 1675, 1673, 1674, 1674, 1679, 1671, 1673, 1676, 1677, 1675, - 1680, 1672, 1676, 1677, 1678, 1678, 1681, 1682, 1683, 1680, - 1684, 1685, 1683, 1686, 1679, 1684, 1689, 1685, 1688, 1688, - 1690, 1691, 1691, 1692, 1681, 1693, 1682, 1686, 1694, 1690, - - 1688, 1695, 1692, 1696, 1689, 1702, 1695, 1693, 1699, 1699, - 1701, 1703, 1706, 1701, 1705, 1708, 1696, 1707, 1710, 1694, - 1710, 1702, 1715, 1707, 1709, 1709, 1706, 1703, 1712, 1705, - 1711, 1711, 1708, 1714, 1716, 1716, 1712, 1717, 1718, 1719, - 1714, 1720, 1715, 1721, 1722, 1723, 1717, 1729, 1724, 1726, - 1727, 1719, 1730, 1720, 1724, 1721, 1728, 1728, 1731, 1718, - 1723, 1731, 1727, 1732, 1733, 1729, 1735, 1724, 1732, 1726, - 1722, 1735, 1730, 1736, 1737, 1736, 1738, 1741, 1739, 1743, - 1746, 1738, 1744, 1749, 1733, 1739, 1741, 1745, 1743, 1745, - 1751, 1748, 1737, 1748, 1744, 1750, 1750, 1749, 1752, 1746, - - 1753, 1754, 1753, 1752, 1755, 1756, 1754, 1757, 1758, 1755, - 1759, 1760, 1761, 1763, 1758, 1759, 1751, 1764, 1765, 1765, - 1761, 1766, 1766, 1756, 1760, 1767, 1768, 1757, 1769, 1772, - 1770, 1764, 1763, 0, 1769, 1770, 1771, 1772, 1771, 1774, - 1767, 1773, 1773, 1775, 1775, 1772, 1768, 1776, 1776, 1777, - 1778, 1774, 1779, 1780, 1779, 1781, 1782, 1783, 1777, 1778, - 1781, 1781, 1778, 1785, 1789, 1782, 1786, 1787, 1790, 1783, - 1794, 1786, 1787, 1792, 1780, 1785, 1793, 1789, 1791, 1791, - 1798, 1795, 1796, 1804, 1799, 1800, 1794, 1807, 1790, 1804, - 1800, 1792, 1798, 1801, 1793, 1795, 1799, 1796, 1801, 1806, - - 1808, 1809, 1804, 1810, 1811, 1806, 1812, 1812, 1813, 1818, - 1807, 1814, 1814, 1811, 1815, 1808, 1816, 1813, 1817, 1809, - 1816, 1819, 1818, 1817, 1820, 1821, 1819, 1819, 1810, 1822, - 1820, 1821, 1822, 1815, 1823, 1824, 1827, 1827, 1828, 1828, - 1829, 0, 1823, 1830, 1830, 1831, 1831, 1832, 1833, 1829, - 1834, 1842, 1835, 1828, 1841, 1824, 1834, 1835, 1841, 1832, - 1836, 1836, 1837, 1837, 1828, 1838, 1833, 1839, 1843, 1845, - 1838, 1842, 1843, 1839, 1846, 1847, 1848, 1849, 1850, 1846, - 1854, 1851, 1849, 1852, 1852, 1853, 1856, 1855, 1857, 1853, - 1858, 1848, 1855, 1860, 1845, 1854, 1850, 1851, 1847, 1859, - - 1857, 1861, 1862, 1862, 1859, 1864, 1860, 1865, 1866, 1858, - 1867, 1868, 1856, 1864, 0, 1869, 1870, 1871, 1872, 1861, - 1893, 1874, 1875, 1875, 1878, 1876, 1865, 1866, 1876, 1871, - 1877, 1879, 1893, 1867, 1869, 1868, 1874, 1870, 1878, 1872, - 1880, 1880, 1883, 1877, 1879, 1881, 1881, 1882, 1882, 1884, - 1885, 1885, 1886, 1887, 1887, 1888, 1891, 1883, 1890, 1892, - 1888, 1886, 1884, 1890, 1886, 1894, 1894, 1895, 1895, 1896, - 1897, 1897, 1898, 1899, 1899, 1903, 1891, 1900, 1904, 1892, - 1901, 1901, 1902, 1902, 1905, 1906, 1908, 1904, 1896, 1903, - 1898, 1908, 1900, 1909, 1909, 1910, 1911, 1911, 1905, 1912, - - 1913, 1917, 1914, 1918, 1906, 1914, 1913, 1915, 1915, 1916, - 1916, 1919, 1920, 1920, 1910, 1922, 1923, 1912, 1918, 1924, - 1917, 1925, 1927, 1915, 0, 1925, 1926, 1926, 1928, 1929, - 1919, 1931, 1931, 1932, 1924, 1922, 1934, 1935, 1933, 1923, - 1937, 1927, 1939, 1928, 1929, 1933, 1936, 1936, 1941, 1937, - 1934, 1942, 1938, 1932, 1938, 1944, 1942, 1945, 1946, 1943, - 1941, 1947, 1939, 1935, 1943, 1952, 1947, 1949, 1950, 1951, - 1945, 1952, 1949, 1950, 1953, 1954, 1956, 1955, 1957, 1946, - 1944, 1954, 1955, 1958, 1951, 1959, 1962, 1960, 1961, 1967, - 0, 1957, 1958, 1963, 1959, 1953, 1960, 1961, 1964, 1963, - - 1962, 1956, 1965, 1969, 1964, 1971, 1965, 1970, 1970, 1967, - 1973, 1971, 1969, 1972, 1972, 1975, 1979, 1976, 1977, 1977, - 1978, 1982, 1972, 1983, 1981, 1979, 1986, 1984, 1988, 1986, - 1973, 1975, 1973, 1976, 1989, 1978, 1981, 1982, 1983, 1984, - 1987, 1990, 1990, 1991, 1991, 1987, 1989, 1995, 1988, 1993, - 1993, 1994, 1995, 1996, 1994, 1997, 1998, 1998, 1999, 1996, - 2002, 1997, 2000, 2000, 2001, 2003, 2004, 2004, 2007, 2006, - 2009, 2007, 1999, 2006, 2002, 2009, 2001, 2008, 2008, 2010, - 2011, 2012, 2013, 2013, 2003, 2012, 2014, 2016, 2010, 2017, - 2018, 2019, 2016, 2020, 2021, 2025, 2022, 2020, 2023, 2014, - - 2011, 2022, 2024, 2027, 2023, 2019, 2028, 2030, 2024, 2017, - 2018, 2028, 2029, 2025, 2021, 2030, 2034, 2037, 2029, 2027, - 2031, 0, 2031, 2035, 2035, 2036, 2038, 2038, 2036, 2040, - 2034, 2041, 2042, 2040, 2043, 2043, 2044, 2041, 2047, 2047, - 2049, 2051, 2054, 2037, 2042, 2044, 2055, 2054, 2056, 2057, - 2058, 2058, 2064, 2056, 2057, 2051, 2060, 2060, 2049, 2062, - 2063, 2063, 2065, 2068, 2066, 2062, 2069, 2072, 2064, 2066, - 2070, 2070, 2055, 2073, 2074, 2075, 2072, 2078, 2069, 2073, - 2077, 2077, 2068, 2079, 2065, 2081, 2081, 2082, 2082, 2083, - 2075, 2086, 2074, 2084, 2083, 2085, 2078, 2085, 2084, 2087, - - 2088, 2079, 2089, 2090, 2090, 2086, 2094, 2089, 2091, 2091, - 2092, 2092, 2095, 2087, 2093, 2093, 2096, 2096, 2094, 2098, - 2088, 2097, 2097, 2099, 2100, 2101, 2102, 2102, 2103, 2103, - 2095, 2098, 2104, 2104, 2105, 2099, 2106, 2107, 2108, 2110, - 2109, 2101, 2111, 2106, 2100, 2109, 2105, 2112, 2112, 2107, - 2114, 2113, 2115, 2116, 2117, 2118, 2119, 2119, 2108, 2110, - 2113, 2120, 2111, 2124, 2121, 2122, 2116, 2125, 2126, 2118, - 2120, 2127, 2115, 2128, 2127, 0, 2114, 2129, 2117, 2121, - 2122, 2124, 2129, 2130, 2131, 2131, 2138, 2128, 2130, 2125, - 2139, 2126, 2132, 2132, 2133, 2133, 2135, 2135, 2137, 2137, - - 2140, 2139, 2142, 2143, 2138, 2144, 2145, 2146, 2147, 2149, - 2149, 2148, 2151, 2151, 2152, 2153, 2146, 2154, 2154, 2140, - 2158, 2143, 2142, 2156, 2153, 2159, 2145, 2144, 2147, 2148, - 2157, 2157, 2156, 2160, 2161, 2162, 2152, 2163, 2158, 2165, - 2160, 2164, 2168, 2159, 2166, 2166, 2167, 2167, 2168, 2161, - 2169, 2170, 2171, 2162, 2172, 2163, 2173, 2164, 2165, 2172, - 2174, 2176, 2175, 2176, 2177, 2177, 2170, 2175, 2169, 2181, - 2178, 2171, 2178, 2179, 2179, 2183, 2173, 2184, 2185, 2187, - 2174, 2186, 2188, 2191, 2183, 2194, 2186, 2192, 2181, 2195, - 2192, 2193, 2193, 2196, 2196, 2199, 2184, 2204, 2185, 2187, - - 2194, 2188, 2197, 2191, 2200, 2202, 2197, 2195, 2200, 2205, - 2199, 2201, 2201, 2206, 2206, 2208, 2210, 2204, 2202, 2209, - 2209, 2211, 2211, 2212, 2213, 2214, 2214, 2208, 2212, 2205, - 2219, 2219, 2220, 2221, 2222, 2210, 2213, 2225, 2225, 2223, - 2224, 2226, 2234, 2231, 2233, 2230, 2221, 2222, 2223, 2224, - 2230, 2235, 2233, 2232, 2220, 2236, 2226, 2231, 2232, 2238, - 2235, 2234, 2239, 2236, 2240, 2241, 2246, 2239, 2244, 2240, - 2242, 2242, 2243, 2243, 2238, 2244, 2245, 2247, 2249, 2248, - 2241, 2245, 2251, 2249, 2246, 2248, 2250, 2250, 2252, 2253, - 2253, 2254, 2254, 2252, 2257, 2247, 2260, 2251, 2258, 2258, - - 2259, 2260, 2260, 2259, 2261, 2262, 2263, 2257, 2265, 2261, - 2262, 2264, 2263, 2265, 2266, 2264, 2267, 2268, 2270, 2269, - 2279, 2272, 2275, 2266, 2269, 2268, 2272, 2288, 2277, 2273, - 2270, 2267, 2273, 2277, 2275, 2278, 2280, 2281, 2279, 2282, - 2278, 2283, 2283, 2284, 2287, 2289, 2281, 2288, 2282, 2280, - 2290, 2290, 2284, 2291, 2293, 2295, 2292, 2294, 2294, 2299, - 2297, 0, 2300, 2287, 2289, 2292, 2300, 2301, 2301, 2293, - 2302, 2303, 2291, 2310, 2295, 2297, 2302, 2303, 2304, 2299, - 2305, 2305, 2306, 2307, 2304, 2309, 2310, 2312, 2307, 2313, - 2306, 2312, 2314, 2324, 2309, 2316, 2316, 2317, 2317, 2318, - - 2318, 2320, 2320, 2313, 2322, 2322, 2325, 2314, 2327, 2328, - 2328, 2325, 2325, 2324, 2329, 2329, 2330, 2330, 2331, 2332, - 2334, 2331, 2335, 2335, 2336, 2336, 2337, 2337, 2327, 2338, - 2339, 2339, 2332, 2340, 2341, 2342, 2343, 2345, 2334, 2344, - 2344, 2345, 2343, 2349, 2338, 2348, 2340, 2350, 2351, 2342, - 2348, 2348, 2341, 2352, 2353, 2354, 2364, 2355, 2368, 2352, - 2353, 2355, 2356, 2356, 2359, 2361, 2349, 2350, 2351, 2359, - 2366, 2362, 2365, 2361, 2362, 2365, 2368, 2367, 2369, 2370, - 2354, 2364, 2367, 2371, 2371, 2372, 2373, 2366, 2366, 2375, - 2374, 2376, 2376, 2370, 2373, 2374, 2374, 2381, 2369, 2377, - - 2377, 2378, 2378, 2383, 2372, 2379, 2379, 2382, 2375, 2380, - 2380, 2384, 2382, 2381, 2386, 2385, 2387, 2389, 2389, 2390, - 2391, 2394, 2390, 2383, 2385, 2393, 2393, 2396, 2394, 2395, - 2395, 2398, 2396, 2399, 2386, 2400, 2387, 2384, 2391, 2402, - 2398, 2405, 2399, 2404, 2400, 2403, 2403, 2404, 2406, 2407, - 2405, 2408, 2409, 2415, 2407, 2407, 2417, 2402, 2414, 2414, - 2418, 2409, 2421, 2406, 2408, 2417, 2422, 2425, 2423, 2427, - 2442, 2415, 2418, 2429, 0, 2422, 2430, 2432, 2429, 2425, - 2434, 2430, 2431, 2431, 2441, 2434, 2432, 2421, 2423, 2442, - 2427, 2435, 2435, 2437, 2437, 2435, 2438, 2438, 2439, 2439, - - 2440, 2443, 2445, 2449, 2441, 2446, 2443, 2447, 2445, 2440, - 2446, 2450, 2447, 2448, 2448, 2451, 2452, 2453, 2454, 2457, - 2451, 2449, 2458, 2453, 2455, 2455, 2459, 2461, 2461, 2463, - 2471, 2464, 2450, 2467, 2452, 2465, 2466, 2458, 2457, 2465, - 2468, 2473, 2463, 2454, 2464, 2466, 2459, 2469, 2470, 2467, - 2472, 2472, 2478, 2470, 2481, 2469, 2471, 2475, 2475, 2468, - 2473, 2476, 2476, 2480, 2480, 2482, 2483, 2484, 2486, 2486, - 2481, 2487, 2484, 2478, 2488, 2489, 2491, 2491, 2492, 2494, - 2495, 2482, 2483, 2498, 2494, 2496, 2496, 2497, 2497, 2499, - 2499, 2487, 2492, 2501, 2489, 2500, 2503, 2488, 2504, 2502, - - 2505, 2513, 2495, 2498, 2500, 2502, 2506, 2506, 2507, 2499, - 2504, 2507, 2512, 2501, 2518, 2503, 2508, 2508, 2522, 2514, - 2505, 2513, 2515, 2515, 2512, 2514, 2516, 2517, 2523, 2516, - 2520, 2521, 2518, 2517, 2523, 2520, 2521, 2522, 2524, 2525, - 2525, 2527, 2527, 2528, 2529, 2531, 2531, 2532, 2532, 2533, - 2534, 2546, 2535, 2529, 2533, 2524, 2524, 2535, 2536, 2536, - 2537, 2537, 2528, 2539, 2534, 2538, 2538, 2544, 2539, 2541, - 2541, 2547, 2548, 2546, 2549, 2549, 2551, 2551, 2552, 2553, - 2554, 2555, 2555, 2556, 2563, 2557, 2544, 2560, 2560, 2554, - 2557, 2564, 2552, 2547, 2548, 2562, 2562, 2564, 2563, 2553, - - 2565, 2566, 2556, 2567, 2567, 2568, 2570, 2571, 2572, 2566, - 2568, 2573, 2565, 2572, 2574, 2577, 2576, 2578, 2579, 2581, - 2574, 2580, 0, 2573, 2576, 2582, 2570, 2571, 2583, 2593, - 2587, 2584, 2588, 2593, 2577, 2581, 2584, 2578, 2579, 2580, - 2591, 2591, 2582, 2582, 2603, 2588, 2592, 2592, 2603, 2583, - 2587, 2597, 2597, 2599, 2599, 2600, 2600, 2606, 2600, 2601, - 2601, 0, 2601, 2602, 2602, 2607, 2602, 2605, 2605, 2609, - 2610, 2610, 2614, 2613, 2609, 2606, 2614, 2615, 2616, 2607, - 2613, 2618, 2619, 2620, 2620, 2623, 2615, 2621, 2621, 2622, - 2622, 2619, 2624, 2616, 2625, 2628, 2626, 2624, 2627, 2618, - - 2623, 2626, 2626, 2625, 2627, 2630, 2625, 2629, 2631, 2632, - 2633, 2634, 2634, 2631, 2632, 2691, 2635, 2638, 2638, 2691, - 2628, 2635, 2629, 2641, 2641, 2651, 2630, 2642, 2642, 2633, - 2643, 2643, 2644, 2644, 2645, 2645, 2646, 2646, 2647, 2647, - 2649, 2650, 2650, 2653, 2653, 2651, 2654, 2655, 2658, 2649, - 2656, 2657, 2657, 2659, 2659, 2662, 2663, 2664, 2666, 2663, - 2655, 2654, 2656, 2658, 2665, 2665, 2668, 2670, 2669, 2668, - 2671, 2672, 2674, 2662, 2669, 2671, 2666, 2673, 2676, 2685, - 2689, 2670, 2685, 2664, 2687, 2687, 2692, 2690, 2674, 2695, - 2672, 2693, 2699, 2676, 2697, 2673, 2690, 2696, 2698, 2697, - - 2698, 2700, 2700, 2689, 2701, 2693, 2692, 2699, 2696, 2702, - 2704, 2703, 2695, 2705, 2707, 2706, 2708, 2701, 2710, 2711, - 2712, 2712, 2713, 2714, 2714, 2718, 2704, 2719, 2702, 2703, - 2706, 2713, 2710, 2715, 2715, 2707, 2708, 2723, 2705, 2711, - 2716, 2716, 2717, 2717, 2718, 2720, 2721, 2719, 2720, 2722, - 2724, 2721, 2725, 2726, 2722, 2727, 2728, 2728, 2725, 2729, - 2730, 2730, 2723, 2734, 2732, 2724, 2739, 2726, 2737, 2737, - 2738, 2738, 2740, 2743, 2739, 2727, 2741, 2742, 2729, 2732, - 2744, 2734, 2741, 2742, 2745, 2746, 2746, 2743, 2748, 2753, - 2750, 2740, 2751, 2744, 2754, 2755, 2751, 2756, 2757, 2754, - - 2758, 2759, 2760, 2745, 2750, 2762, 2759, 2760, 2748, 2753, - 2756, 2757, 2763, 2765, 2755, 2764, 2764, 2771, 2765, 2758, - 2766, 2767, 2767, 2762, 2768, 2769, 2766, 2770, 2772, 2768, - 2769, 2763, 2770, 2773, 2772, 2777, 2771, 2776, 2773, 2774, - 2774, 2776, 2778, 2779, 2780, 2781, 2782, 2783, 2789, 2778, - 2796, 2781, 2784, 2784, 2777, 2786, 2786, 2787, 2790, 2788, - 2783, 2791, 2779, 2780, 2788, 2782, 2787, 2789, 2793, 2787, - 2792, 2792, 2794, 2793, 2791, 2798, 2796, 2790, 2797, 2797, - 2799, 2799, 2800, 2800, 2801, 2794, 2802, 2803, 2808, 2801, - 2804, 2804, 2805, 2802, 2798, 2808, 2806, 2805, 2806, 2807, - - 2807, 2809, 2810, 2812, 2811, 2815, 2803, 2817, 2809, 2811, - 2814, 2814, 2817, 2818, 2819, 2820, 2821, 2821, 2818, 2823, - 2823, 2810, 2812, 2824, 2815, 2825, 2826, 2826, 2827, 2827, - 2828, 2830, 2830, 2819, 2820, 2831, 2831, 2828, 2832, 2838, - 2839, 2834, 2824, 2837, 2825, 2832, 2834, 0, 2837, 2840, - 2840, 2841, 2841, 0, 0, 0, 0, 0, 2838, 2839, - 2845, 2845, 2845, 2845, 2845, 2845, 2845, 2846, 2846, 2846, - 2846, 2846, 2846, 2846, 2847, 2847, 2847, 2847, 2847, 2847, - 2847, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2849, 2849, - 2849, 2849, 2849, 2849, 2849, 2851, 2851, 0, 2851, 2851, - - 2851, 2851, 2852, 2852, 0, 0, 0, 2852, 2852, 2853, - 2853, 0, 0, 2853, 0, 2853, 2854, 0, 0, 0, - 0, 0, 2854, 2855, 2855, 0, 0, 0, 2855, 2855, - 2856, 0, 0, 0, 0, 0, 2856, 2857, 2857, 0, - 2857, 2857, 2857, 2857, 2858, 2858, 0, 2858, 2858, 2858, - 2858, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, - 2844, 2844 - + 407, 405, 406, 408, 409, 410, 403, 411, 407, 412, + 414, 416, 412, 413, 404, 408, 416, 413, 417, 411, + 415, 415, 414, 410, 409, 418, 418, 420, 420, 421, + 422, 423, 424, 425, 428, 427, 430, 429, 422, 417, + + 423, 433, 430, 432, 434, 425, 433, 431, 440, 432, + 421, 429, 424, 427, 428, 427, 431, 435, 434, 437, + 436, 438, 440, 439, 438, 435, 436, 441, 435, 439, + 442, 444, 441, 443, 446, 444, 445, 447, 449, 437, + 448, 445, 447, 451, 453, 452, 454, 439, 453, 446, + 457, 455, 442, 458, 443, 457, 448, 449, 450, 450, + 452, 64, 466, 451, 450, 454, 450, 455, 458, 456, + 459, 460, 450, 456, 450, 459, 461, 450, 450, 463, + 462, 465, 466, 468, 450, 461, 462, 460, 470, 464, + 471, 462, 464, 467, 467, 463, 469, 469, 472, 473, + + 474, 475, 471, 470, 465, 476, 475, 477, 468, 478, + 479, 481, 485, 472, 476, 482, 479, 483, 473, 482, + 481, 484, 474, 483, 478, 486, 477, 485, 487, 489, + 488, 490, 492, 484, 492, 490, 491, 495, 493, 494, + 494, 496, 487, 495, 486, 488, 493, 489, 497, 491, + 498, 500, 499, 496, 497, 499, 501, 503, 502, 504, + 503, 505, 498, 502, 506, 500, 507, 514, 504, 506, + 506, 501, 508, 508, 521, 504, 510, 505, 504, 507, + 509, 509, 510, 511, 511, 512, 512, 513, 514, 515, + 516, 517, 515, 513, 518, 516, 519, 521, 520, 519, + + 522, 523, 518, 520, 525, 523, 524, 526, 525, 527, + 517, 528, 524, 530, 527, 529, 531, 533, 530, 522, + 532, 529, 535, 532, 536, 526, 534, 534, 532, 536, + 531, 528, 532, 537, 538, 533, 539, 540, 537, 542, + 535, 541, 542, 540, 547, 543, 548, 544, 538, 543, + 541, 539, 544, 545, 546, 549, 545, 550, 551, 546, + 547, 552, 549, 551, 548, 553, 553, 554, 555, 556, + 550, 543, 558, 557, 559, 561, 554, 560, 561, 564, + 559, 552, 557, 560, 558, 556, 562, 555, 563, 562, + 565, 567, 566, 563, 568, 574, 567, 564, 566, 569, + + 568, 570, 569, 571, 565, 572, 570, 573, 571, 571, + 575, 576, 577, 580, 574, 574, 575, 578, 572, 580, + 573, 577, 578, 579, 581, 585, 579, 582, 583, 586, + 576, 586, 582, 583, 583, 587, 581, 584, 584, 589, + 588, 579, 588, 590, 591, 592, 593, 594, 596, 595, + 585, 594, 597, 598, 587, 599, 600, 589, 595, 602, + 601, 590, 591, 596, 592, 602, 593, 597, 600, 603, + 604, 598, 605, 606, 599, 601, 607, 608, 609, 610, + 607, 611, 604, 603, 612, 613, 613, 615, 616, 614, + 617, 605, 606, 614, 619, 608, 609, 610, 612, 616, + + 611, 620, 618, 621, 617, 622, 615, 618, 623, 625, + 619, 624, 622, 623, 625, 627, 621, 626, 624, 628, + 620, 629, 626, 630, 632, 631, 628, 633, 634, 636, + 629, 634, 633, 627, 631, 635, 632, 630, 637, 635, + 638, 640, 639, 636, 641, 641, 646, 637, 642, 642, + 643, 643, 644, 647, 648, 638, 639, 642, 650, 647, + 649, 644, 640, 651, 649, 646, 652, 653, 654, 656, + 650, 655, 657, 653, 648, 658, 654, 659, 655, 661, + 59, 664, 659, 667, 652, 668, 659, 656, 651, 659, + 669, 668, 667, 674, 661, 658, 659, 657, 664, 659, + + 670, 671, 671, 673, 670, 675, 669, 672, 672, 676, + 677, 674, 679, 705, 673, 680, 677, 679, 682, 675, + 681, 683, 684, 684, 683, 687, 685, 686, 686, 676, + 678, 678, 678, 685, 678, 705, 680, 678, 681, 694, + 687, 689, 678, 682, 688, 688, 689, 690, 678, 678, + 690, 691, 692, 693, 692, 695, 691, 696, 694, 695, + 697, 698, 699, 699, 701, 693, 700, 702, 702, 698, + 703, 704, 708, 708, 706, 724, 724, 696, 701, 697, + 706, 700, 707, 704, 709, 54, 711, 707, 703, 709, + 709, 711, 712, 713, 716, 714, 715, 716, 712, 713, + + 714, 717, 715, 718, 719, 720, 723, 717, 721, 722, + 725, 718, 719, 721, 726, 727, 722, 728, 730, 725, + 731, 727, 726, 720, 733, 723, 732, 730, 736, 731, + 737, 732, 734, 733, 735, 734, 728, 738, 738, 735, + 740, 739, 736, 741, 742, 745, 743, 745, 747, 743, + 746, 746, 741, 748, 749, 737, 739, 743, 748, 740, + 750, 751, 752, 753, 754, 759, 755, 756, 742, 747, + 755, 757, 758, 754, 759, 749, 760, 761, 758, 762, + 750, 751, 767, 753, 752, 756, 763, 764, 760, 765, + 757, 768, 763, 762, 765, 769, 761, 766, 766, 770, + + 768, 764, 767, 771, 772, 773, 774, 775, 776, 783, + 777, 773, 778, 775, 780, 769, 777, 779, 778, 770, + 774, 779, 781, 785, 772, 771, 782, 787, 776, 785, + 783, 782, 790, 780, 781, 784, 784, 786, 788, 792, + 786, 789, 781, 791, 791, 787, 795, 789, 793, 794, + 794, 788, 790, 793, 796, 797, 797, 792, 796, 798, + 799, 795, 800, 801, 803, 804, 806, 800, 807, 809, + 809, 810, 811, 812, 812, 810, 815, 813, 828, 804, + 799, 798, 801, 816, 828, 53, 806, 811, 803, 807, + 808, 815, 814, 808, 818, 808, 814, 816, 817, 808, + + 820, 808, 813, 817, 819, 822, 808, 825, 818, 819, + 819, 808, 821, 823, 820, 826, 821, 824, 823, 827, + 822, 825, 824, 829, 830, 831, 831, 832, 823, 829, + 830, 833, 832, 827, 834, 835, 826, 833, 838, 836, + 839, 840, 842, 842, 843, 839, 848, 848, 841, 843, + 838, 845, 846, 844, 835, 840, 834, 836, 837, 837, + 841, 844, 847, 849, 837, 845, 837, 849, 851, 853, + 852, 846, 837, 852, 851, 856, 854, 837, 837, 855, + 856, 847, 857, 858, 837, 855, 859, 860, 853, 854, + 861, 862, 858, 863, 864, 859, 861, 865, 867, 864, + + 862, 857, 866, 860, 869, 870, 872, 868, 875, 871, + 878, 877, 863, 869, 870, 871, 866, 865, 867, 868, + 873, 879, 880, 872, 875, 877, 873, 881, 882, 883, + 878, 896, 884, 885, 883, 886, 880, 884, 885, 891, + 879, 887, 887, 882, 886, 881, 888, 889, 892, 895, + 897, 896, 888, 892, 892, 891, 894, 893, 893, 894, + 889, 893, 898, 895, 899, 900, 901, 902, 897, 903, + 904, 900, 903, 902, 907, 898, 905, 906, 908, 899, + 909, 905, 906, 908, 910, 909, 901, 912, 913, 914, + 907, 904, 915, 912, 917, 914, 910, 918, 915, 916, + + 916, 920, 919, 917, 913, 919, 921, 922, 923, 924, + 925, 923, 926, 932, 930, 918, 925, 933, 926, 920, + 930, 927, 924, 928, 929, 921, 927, 922, 928, 929, + 934, 932, 935, 935, 936, 937, 934, 933, 938, 939, + 940, 938, 939, 936, 941, 942, 943, 949, 944, 945, + 950, 940, 946, 937, 944, 945, 947, 942, 948, 948, + 951, 947, 941, 953, 950, 943, 949, 946, 954, 952, + 955, 956, 951, 952, 958, 959, 959, 954, 961, 962, + 964, 953, 965, 963, 967, 964, 966, 966, 971, 955, + 971, 965, 961, 958, 962, 963, 956, 968, 973, 969, + + 974, 970, 972, 968, 967, 969, 970, 972, 975, 976, + 977, 978, 973, 975, 974, 979, 980, 983, 978, 982, + 982, 984, 985, 987, 976, 48, 986, 992, 988, 977, + 979, 983, 986, 988, 992, 980, 995, 985, 993, 984, + 990, 990, 988, 987, 988, 991, 994, 988, 996, 994, + 991, 997, 993, 998, 995, 999, 997, 996, 1000, 1001, + 999, 1003, 1003, 1004, 1006, 1005, 1007, 1009, 1004, 1000, + 1005, 1007, 998, 1008, 1010, 1011, 1009, 1008, 1001, 1012, + 1013, 1014, 1016, 1017, 1006, 1018, 1015, 1019, 1021, 1010, + 1011, 1020, 1013, 1015, 1016, 1022, 1014, 1020, 1012, 1023, + + 1024, 1026, 1017, 1021, 1027, 1019, 1018, 1026, 1028, 1024, + 1029, 1031, 1030, 1033, 1034, 1022, 1028, 1030, 1027, 1023, + 1032, 1035, 1039, 1031, 1042, 1032, 1032, 1038, 1034, 1042, + 1029, 1039, 1033, 1040, 1035, 1036, 1036, 1037, 1043, 1040, + 1038, 1052, 1037, 1041, 1041, 1037, 1037, 1043, 1044, 1048, + 1037, 43, 1045, 1046, 1044, 1051, 1037, 1045, 1046, 1052, + 1037, 1047, 1047, 1049, 1049, 1053, 1050, 1054, 1055, 1050, + 1048, 1050, 1056, 1055, 1053, 1051, 1057, 1058, 1059, 14, + 1060, 1062, 1065, 1058, 1059, 1060, 1056, 1054, 1061, 1064, + 1062, 1064, 1061, 1065, 1057, 1062, 1067, 1062, 1068, 1062, + + 1067, 1062, 1063, 1063, 1069, 1070, 1071, 1072, 1075, 1074, + 1073, 1071, 1071, 1068, 1070, 1073, 1076, 1075, 1077, 1078, + 1079, 1080, 1069, 1074, 1081, 1083, 1080, 1078, 1084, 1072, + 1082, 1085, 1086, 1086, 1079, 1076, 1085, 1077, 1081, 1082, + 1087, 1088, 1088, 1083, 1089, 1091, 1089, 1092, 1091, 1093, + 1094, 1094, 1092, 1084, 1095, 1087, 1096, 1096, 1097, 1097, + 1098, 1099, 1100, 1101, 1101, 1098, 1102, 1103, 1093, 1104, + 1103, 1105, 1106, 1107, 1095, 1107, 1105, 1109, 13, 1110, + 1109, 1106, 1099, 1100, 1110, 1111, 1102, 1112, 1113, 1104, + 1111, 1114, 1117, 1113, 1116, 1112, 1114, 1115, 1115, 1116, + + 1118, 1119, 1120, 1122, 1130, 1123, 1118, 1124, 1119, 1122, + 1117, 1123, 1124, 1125, 1126, 1120, 1127, 1128, 1132, 1125, + 1129, 1129, 1133, 1126, 1130, 1134, 1135, 1136, 1128, 1139, + 1138, 1134, 1135, 1136, 1140, 1127, 1138, 1145, 1132, 1141, + 1143, 1142, 1146, 1139, 1147, 1133, 1144, 1144, 1148, 1139, + 1150, 1141, 1153, 1148, 1140, 1142, 1151, 1145, 1143, 1149, + 1149, 1151, 1147, 1154, 1155, 1156, 1158, 1146, 1154, 1154, + 1157, 1153, 1159, 1150, 1156, 1160, 1161, 1162, 1157, 1162, + 1158, 1161, 1155, 1163, 1161, 1164, 1167, 1159, 1165, 1166, + 1160, 1164, 1165, 1160, 1168, 1169, 1170, 1163, 1171, 1172, + + 1166, 1170, 1173, 1175, 1172, 1167, 1176, 1177, 1178, 1178, + 1179, 1180, 1181, 1169, 1179, 1182, 1171, 1175, 1183, 1184, + 1168, 1182, 1173, 1185, 1176, 1177, 1186, 1187, 1188, 1180, + 1183, 1181, 1192, 1190, 1189, 1193, 1195, 1185, 1184, 1189, + 1190, 1186, 1187, 1191, 1193, 1194, 1194, 1188, 1191, 1196, + 1192, 1195, 1197, 1198, 1199, 1196, 1200, 1205, 1198, 1207, + 1199, 1205, 1200, 1201, 1201, 1202, 1202, 1204, 1204, 1206, + 1208, 1209, 1210, 1197, 1211, 1211, 1212, 1207, 1206, 1210, + 1213, 1215, 1214, 1216, 1208, 1217, 1209, 1214, 1213, 1219, + 1217, 1217, 1218, 1220, 1220, 1215, 1212, 1218, 1218, 1221, + + 1222, 1223, 1216, 1224, 1225, 1226, 1227, 1228, 1224, 1219, + 1223, 1229, 1230, 1228, 1231, 1232, 1229, 1235, 1221, 1222, + 1231, 1233, 1234, 1225, 1227, 1226, 1236, 1233, 1234, 1237, + 1238, 1240, 1239, 1247, 1232, 1241, 1235, 1247, 1230, 1242, + 1242, 1243, 1244, 1255, 1243, 1236, 1239, 1248, 1237, 1238, + 1241, 1250, 1240, 1246, 1244, 1245, 1245, 1249, 1246, 1251, + 1248, 1251, 1253, 1255, 1250, 1251, 1249, 1253, 1254, 1256, + 1257, 1257, 1258, 1262, 1259, 1264, 1260, 1258, 1251, 1259, + 1260, 1263, 1261, 1254, 1265, 1256, 1261, 1266, 1266, 1268, + 1265, 1270, 1271, 1262, 0, 1264, 1273, 1271, 1279, 1263, + + 1272, 1272, 1273, 1275, 1275, 1277, 1280, 1268, 1277, 1278, + 1278, 1283, 1270, 1282, 1279, 1284, 1282, 1285, 1285, 1286, + 1287, 1288, 1280, 1291, 1284, 1290, 1288, 1289, 1289, 1292, + 1294, 1283, 1293, 1293, 1286, 1295, 1297, 1296, 1291, 1298, + 1298, 1287, 1296, 1290, 1294, 1299, 1300, 1301, 1301, 1299, + 1302, 1297, 1303, 1295, 1292, 1304, 1305, 1306, 1309, 1304, + 1308, 1308, 1306, 1303, 1310, 1311, 1300, 1312, 1313, 1314, + 1314, 1316, 1302, 1318, 1315, 1305, 1309, 1317, 1310, 1315, + 1320, 1312, 1318, 1319, 1311, 1311, 1323, 1321, 1319, 1321, + 1322, 1316, 1323, 1313, 1324, 1322, 1325, 1317, 1327, 1329, + + 1320, 1330, 1325, 1328, 1328, 1332, 1333, 1330, 1334, 1334, + 1332, 1336, 1327, 1337, 1324, 1335, 1335, 1338, 1329, 1339, + 1340, 1340, 1339, 1341, 1342, 1336, 0, 1348, 1344, 1346, + 1333, 1337, 1338, 1343, 1344, 1341, 1343, 1345, 1346, 1343, + 1347, 1350, 1345, 1349, 1342, 1347, 1349, 1350, 1351, 1352, + 1352, 1343, 1348, 1351, 1353, 1353, 1354, 1356, 1355, 1357, + 1358, 1359, 1354, 1355, 1360, 1361, 1362, 1360, 1363, 1364, + 1356, 1361, 1362, 1363, 1365, 1364, 1369, 1357, 1366, 1358, + 1370, 1359, 1368, 1366, 1367, 1367, 1371, 1368, 1372, 1373, + 1376, 1377, 1374, 1378, 1369, 1375, 1376, 1365, 1379, 1380, + + 1370, 1383, 1372, 1373, 1374, 1388, 1371, 1386, 1375, 1382, + 1382, 1377, 1379, 1378, 1384, 1385, 1385, 1387, 1389, 1384, + 1380, 1383, 1386, 1390, 1391, 1393, 1392, 1394, 1398, 1388, + 1396, 1387, 1390, 1392, 1393, 1399, 1389, 1393, 1399, 1391, + 1400, 1400, 1402, 1394, 1403, 1396, 1401, 1401, 1404, 1407, + 1396, 1404, 1406, 1398, 1402, 1405, 1405, 1410, 1408, 1409, + 1412, 1411, 1403, 1408, 1409, 1406, 1413, 1416, 1407, 1412, + 1414, 1415, 1418, 1416, 1417, 1417, 1410, 1411, 1419, 1414, + 1415, 1420, 1414, 1421, 1422, 1413, 1423, 1425, 1426, 1427, + 1427, 1419, 1418, 1428, 1429, 1433, 1430, 1421, 1423, 1420, + + 1422, 1430, 1432, 1429, 1431, 1431, 1426, 1434, 1435, 1428, + 1436, 1432, 1425, 1433, 1432, 1436, 1436, 1438, 1439, 1431, + 1440, 1441, 1441, 1442, 1439, 1443, 1435, 1444, 1434, 1442, + 1443, 1438, 1447, 1444, 1445, 1448, 1449, 1450, 1440, 1455, + 1445, 1456, 1449, 1453, 1451, 1461, 1457, 1451, 1458, 1448, + 1450, 1453, 1447, 1451, 1457, 1459, 1460, 1458, 1455, 1461, + 1456, 1462, 1465, 1464, 1463, 1466, 1467, 1468, 1459, 1460, + 1463, 1469, 1470, 1471, 1472, 1462, 1464, 1469, 1474, 1474, + 1468, 1475, 1465, 1466, 1476, 1467, 1477, 1480, 1476, 1471, + 1478, 1477, 1472, 1479, 1470, 1478, 1480, 1481, 1479, 1483, + + 1485, 1475, 1484, 1484, 1486, 1487, 1488, 1488, 1489, 1491, + 1490, 1492, 1493, 1494, 1483, 1496, 1486, 1490, 1497, 1485, + 1481, 1491, 1489, 1492, 1487, 0, 1495, 1496, 1498, 1499, + 1499, 1493, 1495, 1494, 1498, 1500, 1497, 1503, 1500, 1501, + 1501, 1504, 1503, 1505, 1506, 1506, 1507, 1510, 1511, 1505, + 1504, 1508, 1509, 1508, 1512, 1509, 1513, 1514, 1507, 1515, + 1517, 1516, 1514, 1520, 1518, 1524, 1521, 1510, 1515, 1518, + 1511, 1519, 1512, 1516, 1513, 1517, 1522, 1522, 1523, 1525, + 1519, 1521, 1527, 1520, 1523, 1526, 1524, 1528, 1533, 1528, + 1529, 1530, 1530, 1519, 1531, 1531, 1532, 1532, 1525, 1534, + + 1534, 1526, 1527, 1536, 1529, 1537, 1529, 1544, 1533, 1535, + 1535, 1538, 1538, 1539, 1540, 1541, 1543, 1539, 1541, 1546, + 1540, 1545, 1543, 1551, 1536, 1544, 1537, 1545, 1547, 1548, + 1548, 1547, 1549, 1549, 1550, 1551, 1551, 1551, 1552, 1553, + 1550, 1554, 1551, 1555, 1546, 1557, 1558, 1554, 1563, 1564, + 1557, 1557, 1559, 1560, 1559, 1561, 1562, 1563, 1552, 1553, + 1558, 1565, 1562, 1555, 1560, 1566, 1566, 1567, 1569, 1564, + 1561, 1568, 1568, 1570, 1571, 1571, 1572, 1572, 1573, 1576, + 1576, 1577, 1565, 1578, 1581, 1580, 1583, 1583, 1569, 1584, + 1582, 1588, 1578, 1567, 1580, 1570, 1582, 1585, 1573, 1587, + + 1586, 1589, 1589, 1590, 1591, 1581, 1577, 1586, 1587, 1593, + 1584, 1595, 1585, 1594, 1593, 1596, 1602, 1588, 1597, 1594, + 1591, 1598, 1596, 1600, 1597, 1599, 1599, 1598, 1600, 1590, + 1601, 1595, 1603, 1604, 1605, 1606, 1602, 1605, 1607, 1601, + 1608, 1608, 1609, 1610, 1611, 1604, 1612, 1614, 1609, 1615, + 1612, 1603, 1618, 1606, 1616, 1620, 1619, 1622, 1622, 1611, + 1619, 1620, 1624, 1610, 1607, 1621, 1612, 1614, 1615, 1616, + 1626, 1618, 1623, 1624, 1621, 1627, 1623, 1628, 1624, 1625, + 1625, 1629, 1628, 1630, 1631, 1632, 1643, 1633, 1637, 1627, + 1631, 1626, 1633, 1634, 1634, 1635, 1635, 0, 1636, 1637, + + 1632, 1629, 1636, 1630, 1637, 1638, 1638, 1639, 1639, 1640, + 1641, 1642, 1643, 1644, 1640, 1640, 1641, 1642, 1644, 1645, + 1646, 1648, 1650, 1649, 1651, 1653, 1646, 1649, 1655, 1652, + 1654, 1645, 1657, 1648, 1650, 1652, 1654, 1658, 1659, 1661, + 1655, 1665, 1661, 1659, 1657, 1662, 1662, 1653, 1666, 1651, + 1663, 1663, 1664, 1664, 1666, 1668, 1658, 1667, 1669, 1670, + 1668, 1665, 1672, 1667, 1669, 1675, 1674, 1672, 1670, 1674, + 1676, 1676, 1678, 1679, 1680, 1681, 1681, 1675, 1682, 1680, + 1686, 1683, 1687, 1684, 1678, 1679, 1683, 1682, 1684, 1685, + 1685, 1687, 1688, 1689, 1690, 1693, 1691, 1692, 1690, 1696, + + 1686, 1691, 1697, 1692, 1695, 1695, 1698, 1698, 1700, 1693, + 1688, 1697, 1689, 1699, 1701, 1703, 1695, 1696, 1702, 1712, + 1700, 1709, 1699, 1702, 1706, 1706, 1708, 1710, 1703, 1708, + 1713, 1715, 1714, 1722, 1712, 1701, 1725, 1709, 1714, 1716, + 1716, 1718, 1718, 1710, 1713, 1717, 1719, 1717, 1715, 1721, + 1723, 1723, 1724, 1722, 1719, 1726, 1721, 1725, 1727, 1728, + 1729, 1724, 1730, 1731, 1733, 1736, 1734, 1726, 1737, 1731, + 1727, 1728, 1735, 1735, 1740, 1739, 1738, 1730, 1734, 1738, + 1739, 1744, 1731, 1736, 1733, 1742, 1729, 1743, 1737, 1743, + 1742, 1745, 1748, 1746, 1740, 1750, 1745, 1751, 1752, 1744, + + 1746, 1748, 1753, 1754, 1753, 1756, 1751, 1756, 1759, 1757, + 1752, 1758, 1758, 1750, 1760, 1761, 1762, 1761, 1764, 1760, + 1763, 1762, 1754, 1757, 1765, 1763, 1766, 1768, 1767, 1769, + 1771, 1772, 1766, 1767, 1759, 1775, 1764, 1769, 1773, 1773, + 1768, 1774, 1774, 1776, 1765, 1772, 1777, 0, 1778, 1771, + 1775, 1780, 1777, 1778, 1779, 1788, 1779, 1781, 1781, 1780, + 1782, 1783, 1783, 1776, 1784, 1784, 1785, 1780, 1786, 1787, + 1791, 1787, 1782, 1789, 1790, 1785, 1788, 1786, 1789, 1789, + 1786, 1793, 1791, 1790, 1794, 1795, 1797, 1798, 1800, 1794, + 1795, 1799, 1799, 1793, 1801, 1802, 1803, 1806, 1804, 1797, + + 1808, 1815, 1807, 1809, 1816, 1808, 1800, 1798, 1809, 1806, + 1803, 1802, 1801, 1804, 1807, 1812, 1814, 1817, 1818, 1816, + 1819, 1812, 1814, 1821, 1815, 1820, 1820, 1822, 1822, 1819, + 1823, 1825, 1821, 1824, 1812, 1817, 1825, 1824, 1826, 1827, + 1828, 1829, 1832, 1818, 1827, 1827, 1828, 1829, 1831, 1823, + 1830, 1826, 1837, 1830, 1835, 1835, 1831, 1836, 1836, 1838, + 1838, 1837, 1832, 1839, 1839, 1840, 1841, 1842, 1850, 1843, + 1844, 1844, 1836, 1842, 1843, 1845, 1845, 1840, 1849, 1853, + 1846, 1847, 1849, 1836, 1841, 1846, 1851, 1847, 1850, 1854, + 1851, 1855, 1856, 1857, 1854, 1858, 1859, 1861, 1857, 1860, + + 1860, 1861, 1862, 1863, 1853, 1864, 1865, 1856, 1863, 1866, + 1867, 1868, 1859, 1858, 1855, 1867, 1869, 1862, 1865, 1870, + 1870, 1872, 1873, 1874, 1868, 1875, 1876, 1877, 1866, 1872, + 1878, 1864, 1879, 1880, 1869, 1883, 1883, 1882, 2149, 1886, + 1884, 1873, 1874, 1884, 1879, 1885, 1877, 1887, 1875, 2149, + 1876, 1878, 1882, 1886, 1880, 1888, 1888, 1891, 1885, 1894, + 1887, 1889, 1889, 1890, 1890, 1892, 1893, 1893, 1894, 1895, + 1895, 1894, 1891, 1899, 1896, 1898, 1900, 1901, 1892, 1896, + 1898, 1902, 1902, 1903, 1903, 1904, 1905, 1905, 1906, 1901, + 1907, 1907, 1908, 1899, 1909, 1912, 1900, 1910, 1910, 1909, + + 1911, 1911, 1913, 1914, 1904, 1915, 1906, 1908, 1917, 1912, + 1919, 1913, 1921, 1917, 1918, 1918, 1922, 1914, 1920, 1920, + 1923, 1926, 1922, 1923, 1915, 1924, 1924, 1925, 1925, 1919, + 1921, 1927, 1928, 1929, 1929, 1931, 1932, 1933, 1934, 1936, + 1926, 1924, 1934, 1935, 1935, 1937, 1927, 1938, 1940, 1940, + 1941, 1928, 1933, 1943, 1942, 1931, 1944, 1946, 1936, 1932, + 1937, 1942, 1938, 1945, 1945, 1948, 1946, 1943, 1950, 1947, + 1941, 1947, 1951, 1952, 1953, 1954, 1955, 1951, 1952, 1956, + 1950, 1958, 1944, 1960, 1956, 1948, 1958, 1959, 1954, 1961, + 1962, 1964, 1959, 1965, 1963, 1961, 1964, 1955, 1960, 1953, + + 1963, 1966, 1972, 1967, 1968, 1971, 1969, 1970, 1972, 1976, + 0, 1962, 1967, 1968, 1966, 1969, 1970, 1973, 1965, 1971, + 1974, 1978, 1980, 1973, 1974, 1979, 1979, 1982, 1980, 1976, + 1978, 1981, 1981, 1987, 1984, 1985, 1986, 1986, 1991, 2116, + 1981, 1990, 1992, 1988, 1993, 1997, 2116, 1982, 1987, 1982, + 1984, 1985, 1988, 1990, 1991, 1995, 1993, 1992, 1995, 1996, + 1998, 1999, 1999, 0, 1996, 1997, 2000, 2000, 2002, 2002, + 2003, 2004, 1998, 2003, 2005, 2006, 2004, 2007, 2007, 2008, + 2005, 2006, 2009, 2009, 2010, 2011, 2012, 2013, 2013, 2016, + 2015, 2020, 2016, 2008, 2015, 2018, 2010, 2017, 2017, 2011, + + 2018, 2019, 2021, 2022, 2022, 2012, 2021, 2023, 2025, 2026, + 2019, 2020, 2027, 2025, 2028, 2029, 2030, 2031, 2032, 2029, + 2023, 2033, 2031, 2034, 2032, 2037, 2036, 2033, 2028, 2026, + 2037, 2038, 2027, 2043, 2046, 2039, 2030, 2038, 2040, 2058, + 2040, 2034, 2036, 2039, 2044, 2044, 2045, 2043, 2049, 2045, + 2047, 2047, 2049, 2050, 2051, 2052, 2052, 2058, 2053, 2050, + 2046, 2056, 2056, 2060, 2061, 2064, 2051, 2053, 2065, 2066, + 2064, 2067, 2068, 2068, 2066, 2072, 2067, 2060, 2070, 2070, + 2061, 2072, 2073, 2073, 2074, 2075, 2076, 2078, 2082, 2079, + 2083, 2076, 2080, 2080, 2065, 2084, 2083, 2082, 2088, 2085, + + 2074, 2079, 2087, 2087, 2089, 2096, 2078, 2075, 2091, 2091, + 2092, 2092, 2097, 2084, 2085, 2093, 2094, 2088, 2098, 2096, + 2093, 2094, 2089, 2095, 2099, 2095, 2097, 2100, 2100, 2099, + 2101, 2101, 2102, 2102, 2103, 2103, 2104, 2105, 2098, 2106, + 2106, 2107, 2107, 2110, 2108, 2109, 2111, 2115, 2104, 2112, + 2112, 2113, 2113, 2114, 2114, 2105, 2108, 2109, 2117, 2115, + 2118, 2119, 2111, 2110, 2120, 2121, 2119, 2122, 2122, 2123, + 2117, 2124, 2125, 2126, 2127, 2128, 2129, 2129, 2123, 2130, + 2118, 2131, 2134, 2135, 2120, 2121, 2126, 2132, 2130, 2128, + 2136, 2137, 2125, 2138, 2137, 0, 2131, 2124, 2127, 2139, + + 2134, 2140, 2132, 2148, 2139, 2135, 2140, 2138, 2141, 2141, + 2142, 2142, 2150, 2136, 2143, 2143, 2145, 2145, 2147, 2147, + 2152, 2148, 2154, 2153, 2156, 2155, 2157, 2159, 2159, 2158, + 2162, 2150, 0, 2156, 2161, 2161, 2164, 2164, 2168, 2163, + 2152, 2153, 2166, 2169, 2154, 2155, 2157, 2158, 2163, 2167, + 2167, 2166, 2162, 2170, 2171, 2172, 2168, 2173, 2174, 2175, + 2170, 2169, 2176, 2176, 2177, 2177, 2178, 2179, 2180, 2171, + 2181, 2182, 2178, 2172, 2174, 2173, 2182, 2183, 2175, 2184, + 2186, 2185, 2186, 2180, 2191, 2179, 2185, 2187, 2187, 2181, + 2188, 2193, 2188, 2189, 2189, 2194, 2195, 2183, 2196, 2184, + + 2193, 2197, 2198, 2191, 2199, 2202, 2197, 2203, 2195, 2205, + 2203, 2204, 2204, 2206, 2194, 2207, 2207, 2208, 2196, 2210, + 2213, 2208, 2198, 2199, 2205, 2202, 2211, 2212, 2212, 2215, + 2211, 2206, 2216, 2213, 2210, 2217, 2217, 2221, 2219, 2220, + 2220, 2222, 2222, 2223, 2231, 2224, 2225, 2225, 2223, 2215, + 2219, 2232, 2216, 2230, 2230, 2233, 2221, 2224, 2234, 2237, + 2235, 2236, 2236, 2242, 2232, 2241, 2231, 2234, 2233, 2235, + 2241, 2243, 2244, 2245, 2237, 2246, 2243, 2242, 2247, 2249, + 2244, 2252, 2250, 2251, 2246, 2257, 2247, 2250, 2251, 2253, + 2253, 2258, 2245, 2255, 2249, 2259, 2252, 2254, 2254, 2256, + + 2255, 2259, 2260, 2257, 2256, 2261, 2261, 2260, 2262, 2258, + 2263, 2264, 2264, 2265, 2265, 2263, 2268, 2269, 2269, 2270, + 2271, 0, 2270, 2262, 2274, 2271, 2271, 2272, 2273, 2268, + 2274, 2275, 2272, 2273, 2276, 2275, 2277, 2278, 2279, 2276, + 2290, 2281, 2280, 2283, 2286, 2277, 2279, 2280, 2283, 2298, + 2288, 2284, 2278, 2281, 2284, 2288, 2286, 2289, 2290, 2291, + 2292, 2293, 2289, 2294, 2294, 2295, 2299, 2304, 2298, 2292, + 2293, 2300, 2291, 2302, 2295, 2301, 2301, 2306, 2303, 2305, + 2305, 2310, 2304, 2308, 2311, 2313, 2299, 2303, 2311, 2314, + 2300, 2315, 2302, 2312, 2312, 2314, 2306, 2315, 2308, 2316, + + 2318, 2310, 2317, 2317, 2319, 2316, 2321, 2322, 2318, 2319, + 2313, 2325, 2324, 2326, 2336, 2321, 2324, 2328, 2328, 2339, + 2322, 2329, 2329, 2330, 2330, 2325, 2332, 2332, 2326, 2334, + 2334, 2337, 2340, 2340, 2336, 2343, 2337, 2337, 2343, 2339, + 2341, 2341, 2342, 2342, 2344, 2346, 2347, 2347, 2348, 2348, + 2349, 2349, 2350, 2351, 2351, 2352, 2353, 2344, 2354, 2355, + 2356, 2356, 2357, 2346, 2360, 2355, 2357, 2350, 2352, 2360, + 2360, 2361, 2354, 2362, 2353, 2363, 2364, 2365, 2366, 2376, + 2367, 2373, 2364, 2365, 2367, 2368, 2368, 2371, 2374, 2373, + 2378, 2374, 2371, 2362, 2361, 2363, 2377, 2379, 2380, 2377, + + 2381, 2382, 2379, 2366, 2376, 2383, 2383, 2378, 2378, 2384, + 2385, 2387, 2388, 2388, 2396, 2382, 2380, 2386, 2385, 2393, + 2381, 0, 2386, 2386, 2389, 2389, 2390, 2390, 2384, 2395, + 2387, 2391, 2391, 2392, 2392, 2393, 2394, 2397, 2398, 2399, + 2396, 2394, 2401, 2401, 2402, 2403, 2397, 2402, 2406, 2395, + 2405, 2405, 2407, 2407, 2415, 2406, 2408, 2411, 2398, 2399, + 2412, 2408, 2413, 2403, 2410, 2410, 2411, 2416, 2416, 2412, + 2417, 2413, 2415, 2418, 2417, 2419, 2421, 2422, 2420, 2427, + 2427, 2428, 2418, 2420, 2420, 2430, 2422, 2434, 2431, 2421, + 2419, 2436, 2435, 2438, 2430, 2440, 2455, 2442, 2443, 2428, + + 2431, 2435, 2442, 2443, 2445, 2438, 2444, 2444, 2454, 2447, + 0, 2436, 2434, 2445, 2447, 2455, 2440, 2448, 2448, 2450, + 2450, 2448, 2451, 2451, 2452, 2452, 2453, 2456, 2454, 2459, + 2458, 2462, 2456, 2460, 2459, 2453, 2458, 2463, 2460, 2461, + 2461, 2464, 2465, 2467, 2466, 2470, 2464, 2468, 2468, 2462, + 2466, 2471, 2472, 2474, 2474, 2478, 2476, 2477, 2463, 2478, + 2465, 2480, 2479, 2481, 2470, 2482, 2471, 2484, 2467, 2476, + 2477, 2479, 2472, 2482, 2483, 2485, 2485, 2480, 2486, 2483, + 2488, 2488, 2481, 2489, 2489, 2491, 2493, 2493, 2495, 2496, + 2498, 2497, 2501, 2484, 2502, 2498, 2503, 2486, 2500, 2500, + + 2505, 2505, 2506, 2508, 2495, 2496, 2491, 2497, 2508, 2509, + 2510, 2510, 2501, 2511, 2511, 2503, 2506, 2502, 2512, 2513, + 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2520, 2516, + 2514, 2509, 2521, 2522, 2522, 2521, 2526, 2518, 2512, 2513, + 2527, 2528, 2515, 2517, 2529, 2529, 2519, 2528, 2526, 2530, + 2531, 2532, 2530, 2534, 2535, 2536, 2531, 2537, 2534, 2535, + 2527, 2538, 2542, 2537, 2539, 2539, 2541, 2541, 2543, 2532, + 2545, 2545, 2546, 2546, 2536, 2547, 2548, 2543, 2538, 2538, + 2547, 2542, 2549, 2550, 2550, 2551, 2551, 2549, 2552, 2552, + 2548, 2553, 2555, 2555, 2558, 2560, 2553, 2561, 2562, 2563, + + 2563, 2565, 2565, 2567, 2566, 2568, 2569, 2569, 2570, 0, + 2571, 2574, 2574, 2558, 2568, 2571, 2577, 2560, 2566, 2561, + 2562, 2576, 2576, 2567, 2579, 2578, 2580, 2570, 2581, 2581, + 2577, 2578, 2582, 2584, 2580, 2585, 2579, 2582, 2586, 2587, + 2588, 2590, 2591, 2586, 2592, 2593, 2588, 2595, 2594, 2590, + 2596, 2587, 2597, 2584, 2598, 2585, 2601, 2602, 2607, 2598, + 2629, 2591, 2607, 2595, 2592, 2593, 2594, 2596, 2596, 2629, + 2602, 2605, 2605, 2597, 2606, 2606, 2601, 2611, 2611, 2613, + 2613, 2614, 2614, 2617, 2614, 2615, 2615, 2617, 2615, 2616, + 2616, 2620, 2616, 2619, 2619, 2623, 2621, 2624, 2624, 2627, + + 2623, 2628, 2630, 2632, 2633, 2628, 2627, 2634, 2634, 2620, + 2621, 2635, 2635, 2633, 2636, 2636, 2637, 2630, 2638, 2640, + 2639, 2632, 2641, 2638, 2640, 2640, 2642, 2643, 2641, 2639, + 2645, 2637, 2639, 2644, 2646, 2645, 2647, 2648, 2648, 2646, + 2649, 2663, 2643, 2652, 2652, 2649, 2655, 2655, 2656, 2656, + 2663, 2642, 2657, 2657, 2644, 2647, 2658, 2658, 2659, 2659, + 2660, 2660, 2661, 2661, 2664, 2664, 2665, 2667, 2667, 2668, + 2669, 2671, 2671, 2670, 2672, 2673, 2673, 2676, 2677, 2678, + 2680, 2677, 2684, 2669, 2668, 2670, 2665, 2679, 2679, 2672, + 2682, 2683, 2686, 2682, 2685, 2676, 2684, 2683, 2680, 2685, + + 2687, 2688, 2703, 2699, 2690, 2678, 2699, 2701, 2701, 2705, + 2706, 2686, 2704, 2705, 2707, 2709, 2710, 2688, 2687, 2690, + 2712, 2704, 2712, 2715, 2711, 2703, 2713, 2710, 2707, 2711, + 2706, 2714, 2714, 2716, 2718, 2717, 2715, 2719, 2709, 2720, + 2721, 2713, 2724, 2722, 2725, 2726, 2726, 2820, 2727, 2820, + 2718, 2733, 2716, 2717, 2720, 2732, 2724, 2727, 2728, 2728, + 2737, 2721, 2719, 2722, 2725, 2729, 2729, 2730, 2730, 2731, + 2731, 2733, 2734, 2735, 2732, 2734, 2736, 2738, 2735, 2740, + 2739, 2736, 2741, 2742, 2742, 2737, 2739, 2743, 2744, 2744, + 2746, 2748, 2738, 2740, 2751, 2751, 2752, 2752, 2754, 2753, + + 2758, 2757, 2741, 2759, 2755, 2746, 2743, 2753, 2756, 2748, + 2755, 2760, 2760, 2758, 2756, 2757, 2762, 2754, 2764, 2765, + 2767, 2768, 2759, 2765, 2769, 2770, 2768, 2772, 2771, 2773, + 2774, 2776, 2764, 2777, 2773, 2774, 2762, 2779, 2770, 2785, + 2767, 2771, 2779, 2769, 2778, 2778, 2772, 2780, 0, 2776, + 2781, 2781, 2777, 2780, 2782, 2783, 2784, 2786, 2785, 2782, + 2783, 2784, 2787, 2786, 2788, 2788, 2790, 2787, 2791, 2792, + 2790, 2793, 2794, 2795, 2796, 2797, 2792, 2798, 2798, 2795, + 2800, 2800, 2803, 2801, 2802, 2804, 2805, 2791, 2797, 2802, + 2793, 2794, 2801, 2796, 2808, 2801, 2806, 2806, 2807, 2805, + + 2810, 2803, 2812, 2807, 2804, 2811, 2811, 2808, 2813, 2813, + 2814, 2814, 2815, 2816, 2817, 2818, 2818, 2815, 2819, 2824, + 2816, 2812, 2822, 2819, 2821, 2821, 2810, 2823, 2826, 2822, + 2825, 2828, 2828, 2817, 2823, 2825, 2829, 2831, 2824, 2832, + 2833, 2834, 2831, 2838, 2832, 2835, 2835, 2826, 2837, 2837, + 2839, 2840, 2840, 2841, 2841, 2829, 2842, 2844, 2844, 2833, + 2834, 2846, 2838, 2842, 2845, 2845, 2848, 2851, 2846, 2839, + 2852, 2848, 2851, 2853, 2854, 2854, 2855, 2855, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852, + 0, 0, 2853, 2859, 2859, 2859, 2859, 2859, 2859, 2859, + + 2860, 2860, 2860, 2860, 2860, 2860, 2860, 2861, 2861, 2861, + 2861, 2861, 2861, 2861, 2862, 2862, 2862, 2862, 2862, 2862, + 2862, 2863, 2863, 2863, 2863, 2863, 2863, 2863, 2865, 2865, + 0, 2865, 2865, 2865, 2865, 2866, 2866, 0, 0, 0, + 2866, 2866, 2867, 2867, 0, 0, 2867, 0, 2867, 2868, + 0, 0, 0, 0, 0, 2868, 2869, 2869, 0, 0, + 0, 2869, 2869, 2870, 0, 0, 0, 0, 0, 2870, + 2871, 2871, 0, 2871, 2871, 2871, 2871, 2872, 2872, 0, + 2872, 2872, 2872, 2872, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, + 2858, 2858, 2858, 2858, 2858 } ; static yy_state_type yy_last_accepting_state; @@ -2811,7 +2822,7 @@ static void config_end_include(void) #define YY_NO_INPUT 1 #endif -#line 2813 "" +#line 2824 "" #define INITIAL 0 #define quotedstring 1 @@ -3034,7 +3045,7 @@ YY_DECL { #line 205 "./util/configlexer.lex" -#line 3036 "" +#line 3047 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -3067,13 +3078,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 >= 2845 ) + if ( yy_current_state >= 2859 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 5552 ); + while ( yy_base[yy_current_state] != 5585 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -3954,333 +3965,333 @@ YY_RULE_SETUP case 171: YY_RULE_SETUP #line 380 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } +{ YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } YY_BREAK case 172: YY_RULE_SETUP #line 381 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOG_SERVFAIL) } +{ YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } YY_BREAK case 173: YY_RULE_SETUP #line 382 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE) } +{ YDVAR(1, VAR_LOG_SERVFAIL) } YY_BREAK case 174: YY_RULE_SETUP #line 383 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA) } +{ YDVAR(2, VAR_LOCAL_ZONE) } YY_BREAK case 175: YY_RULE_SETUP #line 384 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOCAL_DATA_PTR) } +{ YDVAR(1, VAR_LOCAL_DATA) } YY_BREAK case 176: YY_RULE_SETUP #line 385 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } +{ YDVAR(1, VAR_LOCAL_DATA_PTR) } YY_BREAK case 177: YY_RULE_SETUP #line 386 "./util/configlexer.lex" -{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } +{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) } YY_BREAK case 178: YY_RULE_SETUP #line 387 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_INTERVAL) } +{ YDVAR(1, VAR_INSECURE_LAN_ZONES) } YY_BREAK case 179: YY_RULE_SETUP #line 388 "./util/configlexer.lex" -{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } +{ YDVAR(1, VAR_STATISTICS_INTERVAL) } YY_BREAK case 180: YY_RULE_SETUP #line 389 "./util/configlexer.lex" -{ YDVAR(1, VAR_EXTENDED_STATISTICS) } +{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) } YY_BREAK case 181: YY_RULE_SETUP #line 390 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_ENABLE) } +{ YDVAR(1, VAR_EXTENDED_STATISTICS) } YY_BREAK case 182: YY_RULE_SETUP #line 391 "./util/configlexer.lex" -{ YDVAR(1, VAR_SHM_KEY) } +{ YDVAR(1, VAR_SHM_ENABLE) } YY_BREAK case 183: YY_RULE_SETUP #line 392 "./util/configlexer.lex" -{ YDVAR(0, VAR_REMOTE_CONTROL) } +{ YDVAR(1, VAR_SHM_KEY) } YY_BREAK case 184: YY_RULE_SETUP #line 393 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_ENABLE) } +{ YDVAR(0, VAR_REMOTE_CONTROL) } YY_BREAK case 185: YY_RULE_SETUP #line 394 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_INTERFACE) } +{ YDVAR(1, VAR_CONTROL_ENABLE) } YY_BREAK case 186: YY_RULE_SETUP #line 395 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_PORT) } +{ YDVAR(1, VAR_CONTROL_INTERFACE) } YY_BREAK case 187: YY_RULE_SETUP #line 396 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_USE_CERT) } +{ YDVAR(1, VAR_CONTROL_PORT) } YY_BREAK case 188: YY_RULE_SETUP #line 397 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_KEY_FILE) } +{ YDVAR(1, VAR_CONTROL_USE_CERT) } YY_BREAK case 189: YY_RULE_SETUP #line 398 "./util/configlexer.lex" -{ YDVAR(1, VAR_SERVER_CERT_FILE) } +{ YDVAR(1, VAR_SERVER_KEY_FILE) } YY_BREAK case 190: YY_RULE_SETUP #line 399 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_KEY_FILE) } +{ YDVAR(1, VAR_SERVER_CERT_FILE) } YY_BREAK case 191: YY_RULE_SETUP #line 400 "./util/configlexer.lex" -{ YDVAR(1, VAR_CONTROL_CERT_FILE) } +{ YDVAR(1, VAR_CONTROL_KEY_FILE) } YY_BREAK case 192: YY_RULE_SETUP #line 401 "./util/configlexer.lex" -{ YDVAR(1, VAR_PYTHON_SCRIPT) } +{ YDVAR(1, VAR_CONTROL_CERT_FILE) } YY_BREAK case 193: YY_RULE_SETUP #line 402 "./util/configlexer.lex" -{ YDVAR(0, VAR_PYTHON) } +{ YDVAR(1, VAR_PYTHON_SCRIPT) } YY_BREAK case 194: YY_RULE_SETUP #line 403 "./util/configlexer.lex" -{ YDVAR(1, VAR_DOMAIN_INSECURE) } +{ YDVAR(0, VAR_PYTHON) } YY_BREAK case 195: YY_RULE_SETUP #line 404 "./util/configlexer.lex" -{ YDVAR(1, VAR_MINIMAL_RESPONSES) } +{ YDVAR(1, VAR_DOMAIN_INSECURE) } YY_BREAK case 196: YY_RULE_SETUP #line 405 "./util/configlexer.lex" -{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } +{ YDVAR(1, VAR_MINIMAL_RESPONSES) } YY_BREAK case 197: YY_RULE_SETUP #line 406 "./util/configlexer.lex" -{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } +{ YDVAR(1, VAR_RRSET_ROUNDROBIN) } YY_BREAK case 198: YY_RULE_SETUP #line 407 "./util/configlexer.lex" -{ YDVAR(1, VAR_MAX_UDP_SIZE) } +{ YDVAR(1, VAR_UNKNOWN_SERVER_TIME_LIMIT) } YY_BREAK case 199: YY_RULE_SETUP #line 408 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_PREFIX) } +{ YDVAR(1, VAR_MAX_UDP_SIZE) } YY_BREAK case 200: YY_RULE_SETUP #line 409 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_SYNTHALL) } +{ YDVAR(1, VAR_DNS64_PREFIX) } YY_BREAK case 201: YY_RULE_SETUP #line 410 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } +{ YDVAR(1, VAR_DNS64_SYNTHALL) } YY_BREAK case 202: YY_RULE_SETUP #line 411 "./util/configlexer.lex" -{ YDVAR(1, VAR_DEFINE_TAG) } +{ YDVAR(1, VAR_DNS64_IGNORE_AAAA) } YY_BREAK case 203: YY_RULE_SETUP #line 412 "./util/configlexer.lex" -{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } +{ YDVAR(1, VAR_DEFINE_TAG) } YY_BREAK case 204: YY_RULE_SETUP #line 413 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } +{ YDVAR(2, VAR_LOCAL_ZONE_TAG) } YY_BREAK case 205: YY_RULE_SETUP #line 414 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } +{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) } YY_BREAK case 206: YY_RULE_SETUP #line 415 "./util/configlexer.lex" -{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) } YY_BREAK case 207: YY_RULE_SETUP #line 416 "./util/configlexer.lex" -{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } +{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) } YY_BREAK case 208: YY_RULE_SETUP #line 417 "./util/configlexer.lex" -{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } +{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) } YY_BREAK case 209: YY_RULE_SETUP #line 418 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSTAP) } +{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) } YY_BREAK case 210: YY_RULE_SETUP #line 419 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_ENABLE) } +{ YDVAR(0, VAR_DNSTAP) } YY_BREAK case 211: YY_RULE_SETUP #line 420 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } +{ YDVAR(1, VAR_DNSTAP_ENABLE) } YY_BREAK case 212: YY_RULE_SETUP #line 421 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) } YY_BREAK case 213: YY_RULE_SETUP #line 422 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } +{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) } YY_BREAK case 214: YY_RULE_SETUP #line 423 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_IDENTITY) } +{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) } YY_BREAK case 215: YY_RULE_SETUP #line 424 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSTAP_VERSION) } +{ YDVAR(1, VAR_DNSTAP_IDENTITY) } YY_BREAK case 216: YY_RULE_SETUP #line 425 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } +{ YDVAR(1, VAR_DNSTAP_VERSION) } YY_BREAK case 217: YY_RULE_SETUP -#line 427 "./util/configlexer.lex" +#line 426 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) } YY_BREAK case 218: YY_RULE_SETUP -#line 429 "./util/configlexer.lex" +#line 428 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) } YY_BREAK case 219: YY_RULE_SETUP -#line 431 "./util/configlexer.lex" +#line 430 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) } YY_BREAK case 220: YY_RULE_SETUP -#line 433 "./util/configlexer.lex" +#line 432 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) } YY_BREAK case 221: YY_RULE_SETUP -#line 435 "./util/configlexer.lex" +#line 434 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) } YY_BREAK case 222: YY_RULE_SETUP -#line 437 "./util/configlexer.lex" -{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } +#line 436 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) } YY_BREAK case 223: YY_RULE_SETUP #line 438 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT) } +{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) } YY_BREAK case 224: YY_RULE_SETUP #line 439 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT) } +{ YDVAR(1, VAR_IP_RATELIMIT) } YY_BREAK case 225: YY_RULE_SETUP #line 440 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_RATELIMIT) } YY_BREAK case 226: YY_RULE_SETUP #line 441 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SLABS) } +{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) } YY_BREAK case 227: YY_RULE_SETUP #line 442 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_RATELIMIT_SLABS) } YY_BREAK case 228: YY_RULE_SETUP #line 443 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_SIZE) } +{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) } YY_BREAK case 229: YY_RULE_SETUP #line 444 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } +{ YDVAR(1, VAR_RATELIMIT_SIZE) } YY_BREAK case 230: YY_RULE_SETUP #line 445 "./util/configlexer.lex" -{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } +{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) } YY_BREAK case 231: YY_RULE_SETUP #line 446 "./util/configlexer.lex" -{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } +{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) } YY_BREAK case 232: YY_RULE_SETUP #line 447 "./util/configlexer.lex" -{ YDVAR(1, VAR_RATELIMIT_FACTOR) } +{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) } YY_BREAK case 233: YY_RULE_SETUP #line 448 "./util/configlexer.lex" -{ YDVAR(1, VAR_LOW_RTT) } +{ YDVAR(1, VAR_RATELIMIT_FACTOR) } YY_BREAK case 234: YY_RULE_SETUP #line 449 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_NUM) } +{ YDVAR(1, VAR_LOW_RTT) } YY_BREAK case 235: YY_RULE_SETUP #line 450 "./util/configlexer.lex" -{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } +{ YDVAR(1, VAR_FAST_SERVER_NUM) } YY_BREAK case 236: YY_RULE_SETUP @@ -4295,180 +4306,185 @@ YY_RULE_SETUP case 238: YY_RULE_SETUP #line 453 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_TAG) } +{ YDVAR(1, VAR_FAST_SERVER_PERMIL) } YY_BREAK case 239: YY_RULE_SETUP #line 454 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP) } +{ YDVAR(2, VAR_RESPONSE_IP_TAG) } YY_BREAK case 240: YY_RULE_SETUP #line 455 "./util/configlexer.lex" -{ YDVAR(2, VAR_RESPONSE_IP_DATA) } +{ YDVAR(2, VAR_RESPONSE_IP) } YY_BREAK case 241: YY_RULE_SETUP #line 456 "./util/configlexer.lex" -{ YDVAR(0, VAR_DNSCRYPT) } +{ YDVAR(2, VAR_RESPONSE_IP_DATA) } YY_BREAK case 242: YY_RULE_SETUP #line 457 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } +{ YDVAR(0, VAR_DNSCRYPT) } YY_BREAK case 243: YY_RULE_SETUP #line 458 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PORT) } +{ YDVAR(1, VAR_DNSCRYPT_ENABLE) } YY_BREAK case 244: YY_RULE_SETUP #line 459 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } +{ YDVAR(1, VAR_DNSCRYPT_PORT) } YY_BREAK case 245: YY_RULE_SETUP #line 460 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) } YY_BREAK case 246: YY_RULE_SETUP #line 461 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } +{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) } YY_BREAK case 247: YY_RULE_SETUP #line 462 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) } YY_BREAK case 248: YY_RULE_SETUP #line 463 "./util/configlexer.lex" -{ - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } +{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) } YY_BREAK case 249: YY_RULE_SETUP -#line 465 "./util/configlexer.lex" +#line 464 "./util/configlexer.lex" { - YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) } YY_BREAK case 250: YY_RULE_SETUP -#line 467 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } +#line 466 "./util/configlexer.lex" +{ + YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) } YY_BREAK case 251: YY_RULE_SETUP #line 468 "./util/configlexer.lex" -{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) } YY_BREAK case 252: YY_RULE_SETUP #line 469 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_ENABLED) } +{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) } YY_BREAK case 253: YY_RULE_SETUP #line 470 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } +{ YDVAR(1, VAR_IPSECMOD_ENABLED) } YY_BREAK case 254: YY_RULE_SETUP #line 471 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_HOOK) } +{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) } YY_BREAK case 255: YY_RULE_SETUP #line 472 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } +{ YDVAR(1, VAR_IPSECMOD_HOOK) } YY_BREAK case 256: YY_RULE_SETUP #line 473 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } +{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) } YY_BREAK case 257: YY_RULE_SETUP #line 474 "./util/configlexer.lex" -{ YDVAR(1, VAR_IPSECMOD_STRICT) } +{ YDVAR(1, VAR_IPSECMOD_WHITELIST) } YY_BREAK case 258: YY_RULE_SETUP #line 475 "./util/configlexer.lex" -{ YDVAR(0, VAR_CACHEDB) } +{ YDVAR(1, VAR_IPSECMOD_STRICT) } YY_BREAK case 259: YY_RULE_SETUP #line 476 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_BACKEND) } +{ YDVAR(0, VAR_CACHEDB) } YY_BREAK case 260: YY_RULE_SETUP #line 477 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } +{ YDVAR(1, VAR_CACHEDB_BACKEND) } YY_BREAK case 261: YY_RULE_SETUP #line 478 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISHOST) } +{ YDVAR(1, VAR_CACHEDB_SECRETSEED) } YY_BREAK case 262: YY_RULE_SETUP #line 479 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISPORT) } +{ YDVAR(1, VAR_CACHEDB_REDISHOST) } YY_BREAK case 263: YY_RULE_SETUP #line 480 "./util/configlexer.lex" -{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } +{ YDVAR(1, VAR_CACHEDB_REDISPORT) } YY_BREAK case 264: YY_RULE_SETUP #line 481 "./util/configlexer.lex" -{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } +{ YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) } YY_BREAK case 265: YY_RULE_SETUP #line 482 "./util/configlexer.lex" -{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } +{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) } YY_BREAK case 266: -/* rule 266 can match eol */ YY_RULE_SETUP #line 483 "./util/configlexer.lex" +{ YDVAR(2, VAR_TCP_CONNECTION_LIMIT) } + YY_BREAK +case 267: +/* rule 267 can match eol */ +YY_RULE_SETUP +#line 484 "./util/configlexer.lex" { LEXOUT(("NL\n")); cfg_parser->line++; } YY_BREAK /* Quoted strings. Strip leading and ending quotes */ -case 267: +case 268: YY_RULE_SETUP -#line 486 "./util/configlexer.lex" +#line 487 "./util/configlexer.lex" { BEGIN(quotedstring); LEXOUT(("QS ")); } YY_BREAK case YY_STATE_EOF(quotedstring): -#line 487 "./util/configlexer.lex" +#line 488 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 268: +case 269: YY_RULE_SETUP -#line 492 "./util/configlexer.lex" +#line 493 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 269: -/* rule 269 can match eol */ +case 270: +/* rule 270 can match eol */ YY_RULE_SETUP -#line 493 "./util/configlexer.lex" +#line 494 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end \""); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 270: +case 271: YY_RULE_SETUP -#line 495 "./util/configlexer.lex" +#line 496 "./util/configlexer.lex" { LEXOUT(("QE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4481,34 +4497,34 @@ YY_RULE_SETUP } YY_BREAK /* Single Quoted strings. Strip leading and ending quotes */ -case 271: +case 272: YY_RULE_SETUP -#line 507 "./util/configlexer.lex" +#line 508 "./util/configlexer.lex" { BEGIN(singlequotedstr); LEXOUT(("SQS ")); } YY_BREAK case YY_STATE_EOF(singlequotedstr): -#line 508 "./util/configlexer.lex" +#line 509 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); if(--num_args == 0) { BEGIN(INITIAL); } else { BEGIN(val); } } YY_BREAK -case 272: +case 273: YY_RULE_SETUP -#line 513 "./util/configlexer.lex" +#line 514 "./util/configlexer.lex" { LEXOUT(("STR(%s) ", yytext)); yymore(); } YY_BREAK -case 273: -/* rule 273 can match eol */ +case 274: +/* rule 274 can match eol */ YY_RULE_SETUP -#line 514 "./util/configlexer.lex" +#line 515 "./util/configlexer.lex" { yyerror("newline inside quoted string, no end '"); cfg_parser->line++; BEGIN(INITIAL); } YY_BREAK -case 274: +case 275: YY_RULE_SETUP -#line 516 "./util/configlexer.lex" +#line 517 "./util/configlexer.lex" { LEXOUT(("SQE ")); if(--num_args == 0) { BEGIN(INITIAL); } @@ -4521,38 +4537,38 @@ YY_RULE_SETUP } YY_BREAK /* include: directive */ -case 275: +case 276: YY_RULE_SETUP -#line 528 "./util/configlexer.lex" +#line 529 "./util/configlexer.lex" { LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); } YY_BREAK case YY_STATE_EOF(include): -#line 530 "./util/configlexer.lex" +#line 531 "./util/configlexer.lex" { yyerror("EOF inside include directive"); BEGIN(inc_prev); } YY_BREAK -case 276: -YY_RULE_SETUP -#line 534 "./util/configlexer.lex" -{ LEXOUT(("ISP ")); /* ignore */ } - YY_BREAK case 277: -/* rule 277 can match eol */ YY_RULE_SETUP #line 535 "./util/configlexer.lex" -{ LEXOUT(("NL\n")); cfg_parser->line++;} +{ LEXOUT(("ISP ")); /* ignore */ } YY_BREAK case 278: +/* rule 278 can match eol */ YY_RULE_SETUP #line 536 "./util/configlexer.lex" -{ LEXOUT(("IQS ")); BEGIN(include_quoted); } +{ LEXOUT(("NL\n")); cfg_parser->line++;} YY_BREAK case 279: YY_RULE_SETUP #line 537 "./util/configlexer.lex" +{ LEXOUT(("IQS ")); BEGIN(include_quoted); } + YY_BREAK +case 280: +YY_RULE_SETUP +#line 538 "./util/configlexer.lex" { LEXOUT(("Iunquotedstr(%s) ", yytext)); config_start_include_glob(yytext); @@ -4560,27 +4576,27 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(include_quoted): -#line 542 "./util/configlexer.lex" +#line 543 "./util/configlexer.lex" { yyerror("EOF inside quoted string"); BEGIN(inc_prev); } YY_BREAK -case 280: +case 281: YY_RULE_SETUP -#line 546 "./util/configlexer.lex" +#line 547 "./util/configlexer.lex" { LEXOUT(("ISTR(%s) ", yytext)); yymore(); } YY_BREAK -case 281: -/* rule 281 can match eol */ +case 282: +/* rule 282 can match eol */ YY_RULE_SETUP -#line 547 "./util/configlexer.lex" +#line 548 "./util/configlexer.lex" { yyerror("newline before \" in include name"); cfg_parser->line++; BEGIN(inc_prev); } YY_BREAK -case 282: +case 283: YY_RULE_SETUP -#line 549 "./util/configlexer.lex" +#line 550 "./util/configlexer.lex" { LEXOUT(("IQE ")); yytext[yyleng - 1] = '\0'; @@ -4590,7 +4606,7 @@ YY_RULE_SETUP YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(val): -#line 555 "./util/configlexer.lex" +#line 556 "./util/configlexer.lex" { LEXOUT(("LEXEOF ")); yy_set_bol(1); /* Set beginning of line, so "^" rules match. */ @@ -4602,33 +4618,33 @@ case YY_STATE_EOF(val): } } YY_BREAK -case 283: +case 284: YY_RULE_SETUP -#line 566 "./util/configlexer.lex" +#line 567 "./util/configlexer.lex" { LEXOUT(("unquotedstr(%s) ", yytext)); if(--num_args == 0) { BEGIN(INITIAL); } yylval.str = strdup(yytext); return STRING_ARG; } YY_BREAK -case 284: +case 285: YY_RULE_SETUP -#line 570 "./util/configlexer.lex" +#line 571 "./util/configlexer.lex" { ub_c_error_msg("unknown keyword '%s'", yytext); } YY_BREAK -case 285: +case 286: YY_RULE_SETUP -#line 574 "./util/configlexer.lex" +#line 575 "./util/configlexer.lex" { ub_c_error_msg("stray '%s'", yytext); } YY_BREAK -case 286: +case 287: YY_RULE_SETUP -#line 578 "./util/configlexer.lex" +#line 579 "./util/configlexer.lex" ECHO; YY_BREAK -#line 4630 "" +#line 4646 "" case YY_END_OF_BUFFER: { @@ -4919,7 +4935,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 >= 2845 ) + if ( yy_current_state >= 2859 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -4947,11 +4963,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 >= 2845 ) + if ( yy_current_state >= 2859 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 2844); + yy_is_jam = (yy_current_state == 2858); return yy_is_jam ? 0 : yy_current_state; } @@ -5590,7 +5606,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 578 "./util/configlexer.lex" +#line 579 "./util/configlexer.lex" diff --git a/util/configlexer.lex b/util/configlexer.lex index 9be8252af..2920cda87 100644 --- a/util/configlexer.lex +++ b/util/configlexer.lex @@ -377,6 +377,7 @@ log-identity{COLON} { YDVAR(1, VAR_LOG_IDENTITY) } log-time-ascii{COLON} { YDVAR(1, VAR_LOG_TIME_ASCII) } log-queries{COLON} { YDVAR(1, VAR_LOG_QUERIES) } log-replies{COLON} { YDVAR(1, VAR_LOG_REPLIES) } +log-tag-queryreply{COLON} { YDVAR(1, VAR_LOG_TAG_QUERYREPLY) } log-local-actions{COLON} { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) } log-servfail{COLON} { YDVAR(1, VAR_LOG_SERVFAIL) } local-zone{COLON} { YDVAR(2, VAR_LOCAL_ZONE) } diff --git a/util/configparser.c b/util/configparser.c index 9b2052434..a350999f3 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -384,7 +384,8 @@ extern int yydebug; VAR_STUB_NO_CACHE = 513, VAR_LOG_SERVFAIL = 514, VAR_DENY_ANY = 515, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 516 + VAR_UNKNOWN_SERVER_TIME_LIMIT = 516, + VAR_LOG_TAG_QUERYREPLY = 517 }; #endif /* Tokens. */ @@ -647,6 +648,7 @@ extern int yydebug; #define VAR_LOG_SERVFAIL 514 #define VAR_DENY_ANY 515 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 516 +#define VAR_LOG_TAG_QUERYREPLY 517 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -657,7 +659,7 @@ union YYSTYPE char* str; -#line 661 "util/configparser.c" /* yacc.c:355 */ +#line 663 "util/configparser.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -674,7 +676,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 678 "util/configparser.c" /* yacc.c:358 */ +#line 680 "util/configparser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -916,21 +918,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 526 +#define YYLAST 528 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 262 +#define YYNTOKENS 263 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 281 +#define YYNNTS 282 /* YYNRULES -- Number of rules. */ -#define YYNRULES 539 +#define YYNRULES 541 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 808 +#define YYNSTATES 811 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 516 +#define YYMAXUTOK 517 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -990,7 +992,7 @@ static const yytype_uint16 yytranslate[] = 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261 + 255, 256, 257, 258, 259, 260, 261, 262 }; #if YYDEBUG @@ -1017,40 +1019,41 @@ static const yytype_uint16 yyrline[] = 253, 254, 254, 254, 255, 255, 255, 256, 256, 256, 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, 262, 263, 263, 263, 264, 264, 264, 265, 265, 265, - 266, 268, 280, 281, 282, 282, 282, 282, 282, 283, - 283, 285, 297, 298, 299, 299, 299, 299, 300, 300, - 302, 316, 317, 318, 318, 318, 318, 319, 319, 319, - 321, 337, 338, 339, 339, 339, 339, 340, 340, 340, - 341, 343, 352, 361, 372, 381, 390, 399, 410, 419, - 430, 443, 458, 469, 486, 503, 520, 537, 552, 567, - 580, 595, 604, 613, 622, 631, 640, 649, 658, 667, - 676, 685, 694, 703, 712, 725, 734, 747, 756, 765, - 774, 781, 788, 797, 804, 813, 821, 830, 839, 853, - 862, 871, 880, 889, 898, 905, 912, 938, 946, 953, - 960, 967, 974, 982, 990, 998, 1005, 1016, 1027, 1034, - 1043, 1052, 1061, 1068, 1075, 1083, 1091, 1101, 1111, 1121, - 1134, 1145, 1153, 1166, 1175, 1184, 1193, 1203, 1213, 1221, - 1234, 1243, 1251, 1260, 1268, 1281, 1290, 1297, 1307, 1317, - 1327, 1337, 1347, 1357, 1367, 1377, 1384, 1391, 1398, 1407, - 1416, 1425, 1434, 1441, 1451, 1469, 1476, 1494, 1507, 1520, - 1529, 1538, 1547, 1556, 1566, 1576, 1587, 1596, 1605, 1614, - 1623, 1636, 1649, 1658, 1665, 1674, 1683, 1692, 1701, 1709, - 1722, 1730, 1759, 1766, 1781, 1791, 1801, 1808, 1815, 1822, - 1831, 1839, 1853, 1872, 1891, 1903, 1915, 1927, 1938, 1957, - 1967, 1976, 1984, 1992, 2005, 2018, 2031, 2044, 2053, 2062, - 2068, 2077, 2086, 2096, 2106, 2119, 2132, 2143, 2156, 2167, - 2180, 2190, 2197, 2204, 2213, 2222, 2232, 2242, 2252, 2259, - 2266, 2275, 2284, 2294, 2304, 2311, 2318, 2325, 2333, 2343, - 2353, 2363, 2373, 2403, 2413, 2421, 2430, 2445, 2454, 2459, - 2460, 2461, 2461, 2461, 2462, 2462, 2462, 2463, 2463, 2465, - 2475, 2484, 2491, 2498, 2505, 2512, 2519, 2526, 2531, 2532, - 2533, 2533, 2534, 2534, 2535, 2535, 2536, 2537, 2538, 2539, - 2540, 2541, 2543, 2551, 2558, 2566, 2574, 2581, 2588, 2597, - 2606, 2615, 2624, 2633, 2642, 2647, 2648, 2649, 2651, 2657, - 2667, 2674, 2683, 2691, 2697, 2698, 2700, 2700, 2700, 2701, - 2701, 2702, 2703, 2704, 2705, 2706, 2708, 2718, 2728, 2735, - 2744, 2751, 2760, 2768, 2781, 2789, 2802, 2807, 2808, 2809, - 2809, 2810, 2810, 2810, 2812, 2826, 2841, 2853, 2868, 2881 + 266, 266, 268, 280, 281, 282, 282, 282, 282, 282, + 283, 283, 285, 297, 298, 299, 299, 299, 299, 300, + 300, 302, 316, 317, 318, 318, 318, 318, 319, 319, + 319, 321, 337, 338, 339, 339, 339, 339, 340, 340, + 340, 341, 343, 352, 361, 372, 381, 390, 399, 410, + 419, 430, 443, 458, 469, 486, 503, 520, 537, 552, + 567, 580, 595, 604, 613, 622, 631, 640, 649, 658, + 667, 676, 685, 694, 703, 712, 725, 734, 747, 756, + 765, 774, 781, 788, 797, 804, 813, 821, 830, 839, + 853, 862, 871, 880, 889, 898, 907, 914, 921, 947, + 955, 962, 969, 976, 983, 991, 999, 1007, 1014, 1025, + 1036, 1043, 1052, 1061, 1070, 1077, 1084, 1092, 1100, 1110, + 1120, 1130, 1143, 1154, 1162, 1175, 1184, 1193, 1202, 1212, + 1222, 1230, 1243, 1252, 1260, 1269, 1277, 1290, 1299, 1306, + 1316, 1326, 1336, 1346, 1356, 1366, 1376, 1386, 1393, 1400, + 1407, 1416, 1425, 1434, 1443, 1450, 1460, 1478, 1485, 1503, + 1516, 1529, 1538, 1547, 1556, 1565, 1575, 1585, 1596, 1605, + 1614, 1623, 1632, 1645, 1658, 1667, 1674, 1683, 1692, 1701, + 1710, 1718, 1731, 1739, 1768, 1775, 1790, 1800, 1810, 1817, + 1824, 1831, 1840, 1848, 1862, 1881, 1900, 1912, 1924, 1936, + 1947, 1966, 1976, 1985, 1993, 2001, 2014, 2027, 2040, 2053, + 2062, 2071, 2077, 2086, 2095, 2105, 2115, 2128, 2141, 2152, + 2165, 2176, 2189, 2199, 2206, 2213, 2222, 2231, 2241, 2251, + 2261, 2268, 2275, 2284, 2293, 2303, 2313, 2320, 2327, 2334, + 2342, 2352, 2362, 2372, 2382, 2412, 2422, 2430, 2439, 2454, + 2463, 2468, 2469, 2470, 2470, 2470, 2471, 2471, 2471, 2472, + 2472, 2474, 2484, 2493, 2500, 2507, 2514, 2521, 2528, 2535, + 2540, 2541, 2542, 2542, 2543, 2543, 2544, 2544, 2545, 2546, + 2547, 2548, 2549, 2550, 2552, 2560, 2567, 2575, 2583, 2590, + 2597, 2606, 2615, 2624, 2633, 2642, 2651, 2656, 2657, 2658, + 2660, 2666, 2676, 2683, 2692, 2700, 2706, 2707, 2709, 2709, + 2709, 2710, 2710, 2711, 2712, 2713, 2714, 2715, 2717, 2727, + 2737, 2744, 2753, 2760, 2769, 2777, 2790, 2798, 2811, 2816, + 2817, 2818, 2818, 2819, 2819, 2819, 2821, 2835, 2850, 2862, + 2877, 2890 }; #endif @@ -1155,15 +1158,15 @@ static const char *const yytname[] = "VAR_FAST_SERVER_PERMIL", "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", "VAR_TCP_CONNECTION_LIMIT", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE", "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", - "VAR_UNKNOWN_SERVER_TIME_LIMIT", "$accept", "toplevelvars", - "toplevelvar", "serverstart", "contents_server", "content_server", - "stubstart", "contents_stub", "content_stub", "forwardstart", - "contents_forward", "content_forward", "viewstart", "contents_view", - "content_view", "authstart", "contents_auth", "content_auth", - "server_num_threads", "server_verbosity", "server_statistics_interval", - "server_statistics_cumulative", "server_extended_statistics", - "server_shm_enable", "server_shm_key", "server_port", - "server_send_client_subnet", "server_client_subnet_zone", + "VAR_UNKNOWN_SERVER_TIME_LIMIT", "VAR_LOG_TAG_QUERYREPLY", "$accept", + "toplevelvars", "toplevelvar", "serverstart", "contents_server", + "content_server", "stubstart", "contents_stub", "content_stub", + "forwardstart", "contents_forward", "content_forward", "viewstart", + "contents_view", "content_view", "authstart", "contents_auth", + "content_auth", "server_num_threads", "server_verbosity", + "server_statistics_interval", "server_statistics_cumulative", + "server_extended_statistics", "server_shm_enable", "server_shm_key", + "server_port", "server_send_client_subnet", "server_client_subnet_zone", "server_client_subnet_always_forward", "server_client_subnet_opcode", "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", @@ -1181,17 +1184,17 @@ static const char *const yytname[] = "server_tls_win_cert", "server_tls_additional_port", "server_use_systemd", "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", "server_log_queries", "server_log_replies", - "server_log_servfail", "server_log_local_actions", "server_chroot", - "server_username", "server_directory", "server_logfile", - "server_pidfile", "server_root_hints", "server_dlv_anchor_file", - "server_dlv_anchor", "server_auto_trust_anchor_file", - "server_trust_anchor_file", "server_trusted_keys_file", - "server_trust_anchor", "server_trust_anchor_signaling", - "server_root_key_sentinel", "server_domain_insecure", - "server_hide_identity", "server_hide_version", "server_hide_trustanchor", - "server_identity", "server_version", "server_so_rcvbuf", - "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", - "server_ip_freebind", "server_edns_buffer_size", + "server_log_tag_queryreply", "server_log_servfail", + "server_log_local_actions", "server_chroot", "server_username", + "server_directory", "server_logfile", "server_pidfile", + "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", + "server_auto_trust_anchor_file", "server_trust_anchor_file", + "server_trusted_keys_file", "server_trust_anchor", + "server_trust_anchor_signaling", "server_root_key_sentinel", + "server_domain_insecure", "server_hide_identity", "server_hide_version", + "server_hide_trustanchor", "server_identity", "server_version", + "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport", + "server_ip_transparent", "server_ip_freebind", "server_edns_buffer_size", "server_msg_buffer_size", "server_msg_cache_size", "server_msg_cache_slabs", "server_num_queries_per_thread", "server_jostle_timeout", "server_delay_close", @@ -1303,7 +1306,7 @@ static const yytype_uint16 yytoknum[] = 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516 + 515, 516, 517 }; # endif @@ -1328,21 +1331,21 @@ static const yytype_int16 yypact[] = 78, 79, 80, 84, 88, 89, 114, 115, 116, 118, 129, 130, 132, 133, 134, 136, 141, 182, 196, 197, 199, 200, 201, 203, 204, 205, 206, 214, 215, 218, - 220, 221, 222, 223, 225, 235, 236, 240, 242, 243, - 244, 245, 247, 248, 249, 250, 251, 265, 266, 267, - 268, 269, 270, 272, 278, 279, 280, 281, 282, 294, - 295, 297, 298, 299, 300, 301, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 342, 343, 344, 346, 347, 348, - 349, 351, 352, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, -154, -154, + 220, 221, 222, 223, 225, 235, 236, 242, 243, 244, + 245, 247, 248, 249, 250, 251, 265, 266, 267, 268, + 269, 270, 272, 278, 279, 280, 281, 282, 294, 295, + 297, 298, 299, 300, 301, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 342, 343, 344, 346, 347, 348, 349, + 351, 352, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, @@ -1361,47 +1364,48 @@ static const yytype_int16 yypact[] = -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, 431, 432, 433, 434, 435, 436, 438, - -154, -154, -154, -154, -154, -154, -154, -154, 439, 440, - 441, 442, 443, 444, -154, -154, -154, -154, -154, -154, - -154, 446, 447, 448, 449, 450, 451, 452, -154, -154, - -154, -154, -154, -154, -154, -154, 453, 454, 455, 456, - 457, 458, 459, 460, -154, -154, -154, -154, -154, -154, - -154, -154, -154, 461, 462, 463, 464, 465, 466, 467, - 468, -154, -154, -154, -154, -154, -154, -154, -154, -154, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, 481, -154, -154, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, 492, - 493, 494, 495, 496, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, 433, 434, 435, 436, 438, + 439, 440, -154, -154, -154, -154, -154, -154, -154, -154, + 441, 442, 443, 444, 446, 447, -154, -154, -154, -154, + -154, -154, -154, 448, 449, 450, 451, 452, 453, 454, + -154, -154, -154, -154, -154, -154, -154, -154, 455, 456, + 457, 458, 459, 460, 461, 462, -154, -154, -154, -154, + -154, -154, -154, -154, -154, 463, 464, 465, 466, 467, + 468, 469, 470, -154, -154, -154, -154, -154, -154, -154, + -154, -154, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, 483, -154, -154, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, 494, 495, 496, 497, 498, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, 499, 500, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, 497, - 498, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, -154, -154, -154, -154, -154, -154, 501, 502, + 503, -154, -154, -154, -154, -154, -154, -154, -154, -154, + 504, 505, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, 499, 500, 501, -154, - -154, -154, -154, -154, -154, -154, -154, -154, 502, 503, + -154, 506, 507, 508, 509, 510, 511, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, 504, - 505, 506, 507, 508, 509, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + -154, -154, 512, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - 510, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, 511, -154, - -154, 512, 513, -154, -154, -154, -154, -154, -154, -154, + -154, 513, -154, -154, 514, 515, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, 514, 515, 516, - -154, -154, -154, -154, -154, -154, -154, -154 + -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, + 516, 517, 518, -154, -154, -154, -154, -154, -154, -154, + -154 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1409,9 +1413,9 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 14, 201, 211, 448, 494, 467, 220, - 503, 526, 230, 3, 16, 203, 213, 222, 232, 450, - 469, 496, 505, 528, 4, 5, 6, 10, 13, 8, + 2, 0, 1, 14, 202, 212, 450, 496, 469, 221, + 505, 528, 231, 3, 16, 204, 214, 223, 233, 452, + 471, 498, 507, 530, 4, 5, 6, 10, 13, 8, 9, 7, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1430,66 +1434,67 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 17, - 18, 80, 83, 92, 177, 178, 19, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 31, 71, 20, - 84, 85, 42, 64, 79, 21, 22, 24, 25, 23, - 26, 27, 28, 29, 30, 115, 189, 116, 118, 119, - 120, 191, 196, 192, 173, 81, 70, 96, 113, 114, - 198, 117, 32, 33, 34, 35, 36, 72, 86, 87, - 102, 58, 68, 59, 181, 182, 97, 52, 53, 180, - 54, 55, 106, 110, 124, 133, 158, 107, 65, 37, - 38, 39, 94, 125, 126, 127, 40, 41, 43, 44, - 46, 47, 45, 131, 48, 49, 50, 56, 75, 111, - 89, 132, 82, 154, 90, 91, 108, 109, 199, 95, - 51, 73, 76, 57, 60, 98, 99, 74, 155, 100, - 61, 62, 63, 190, 112, 168, 169, 170, 171, 179, - 101, 69, 103, 104, 105, 156, 66, 67, 88, 77, - 78, 93, 121, 122, 200, 123, 128, 129, 130, 159, - 160, 162, 164, 165, 163, 166, 174, 134, 135, 138, - 139, 136, 137, 140, 141, 143, 142, 193, 195, 194, - 157, 167, 183, 185, 184, 186, 187, 188, 161, 172, - 175, 176, 197, 0, 0, 0, 0, 0, 0, 0, - 202, 204, 205, 206, 208, 209, 210, 207, 0, 0, - 0, 0, 0, 0, 212, 214, 215, 216, 217, 218, - 219, 0, 0, 0, 0, 0, 0, 0, 221, 223, - 224, 227, 228, 225, 229, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 231, 233, 234, 235, 236, 240, - 237, 238, 239, 0, 0, 0, 0, 0, 0, 0, - 0, 449, 451, 453, 452, 458, 454, 455, 456, 457, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 17, 18, 80, 83, 92, 177, 178, 19, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 31, 71, + 20, 84, 85, 42, 64, 79, 21, 22, 24, 25, + 23, 26, 27, 28, 29, 30, 115, 189, 116, 118, + 119, 120, 191, 196, 192, 173, 81, 70, 96, 113, + 114, 201, 198, 117, 32, 33, 34, 35, 36, 72, + 86, 87, 102, 58, 68, 59, 181, 182, 97, 52, + 53, 180, 54, 55, 106, 110, 124, 133, 158, 107, + 65, 37, 38, 39, 94, 125, 126, 127, 40, 41, + 43, 44, 46, 47, 45, 131, 48, 49, 50, 56, + 75, 111, 89, 132, 82, 154, 90, 91, 108, 109, + 199, 95, 51, 73, 76, 57, 60, 98, 99, 74, + 155, 100, 61, 62, 63, 190, 112, 168, 169, 170, + 171, 179, 101, 69, 103, 104, 105, 156, 66, 67, + 88, 77, 78, 93, 121, 122, 200, 123, 128, 129, + 130, 159, 160, 162, 164, 165, 163, 166, 174, 134, + 135, 138, 139, 136, 137, 140, 141, 143, 142, 193, + 195, 194, 157, 167, 183, 185, 184, 186, 187, 188, + 161, 172, 175, 176, 197, 0, 0, 0, 0, 0, + 0, 0, 203, 205, 206, 207, 209, 210, 211, 208, + 0, 0, 0, 0, 0, 0, 213, 215, 216, 217, + 218, 219, 220, 0, 0, 0, 0, 0, 0, 0, + 222, 224, 225, 228, 229, 226, 230, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 232, 234, 235, 236, + 237, 241, 238, 239, 240, 0, 0, 0, 0, 0, + 0, 0, 0, 451, 453, 455, 454, 460, 456, 457, + 458, 459, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 470, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 0, 497, 499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 468, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 0, 495, 497, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 504, 506, - 507, 508, 510, 511, 509, 512, 513, 514, 515, 0, - 0, 0, 0, 0, 527, 529, 530, 531, 532, 533, - 242, 241, 248, 261, 259, 267, 268, 271, 269, 270, - 272, 273, 274, 275, 276, 294, 295, 296, 297, 298, - 321, 322, 323, 328, 329, 264, 330, 331, 334, 332, - 333, 336, 337, 338, 352, 309, 310, 312, 313, 339, - 355, 303, 305, 356, 362, 363, 364, 265, 320, 378, - 379, 304, 373, 288, 260, 299, 353, 359, 340, 0, - 0, 382, 266, 243, 287, 344, 244, 262, 263, 300, - 301, 380, 342, 346, 347, 245, 383, 324, 351, 289, - 308, 357, 358, 361, 372, 302, 376, 374, 375, 314, - 319, 348, 349, 315, 316, 341, 366, 290, 291, 293, - 277, 279, 280, 281, 282, 283, 384, 385, 387, 325, - 326, 327, 335, 388, 389, 390, 0, 0, 0, 343, - 317, 499, 399, 403, 401, 400, 404, 402, 0, 0, - 407, 408, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 345, 360, 377, 412, 413, 318, 391, 0, - 0, 0, 0, 0, 0, 367, 368, 369, 370, 371, - 500, 311, 306, 365, 286, 246, 247, 307, 414, 416, - 415, 417, 418, 419, 278, 285, 409, 411, 410, 284, - 0, 292, 350, 386, 420, 421, 422, 426, 425, 423, - 424, 427, 428, 429, 430, 432, 431, 441, 0, 445, - 446, 0, 0, 447, 433, 439, 434, 435, 436, 438, - 440, 437, 459, 461, 460, 463, 464, 465, 466, 462, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 498, 516, 517, 518, 521, 519, 520, 522, - 523, 524, 525, 534, 535, 536, 537, 538, 354, 381, - 398, 501, 502, 405, 406, 392, 393, 0, 0, 0, - 397, 539, 442, 443, 444, 396, 394, 395 + 506, 508, 509, 510, 512, 513, 511, 514, 515, 516, + 517, 0, 0, 0, 0, 0, 529, 531, 532, 533, + 534, 535, 243, 242, 249, 262, 260, 268, 269, 272, + 270, 271, 273, 274, 275, 276, 277, 296, 297, 298, + 299, 300, 323, 324, 325, 330, 331, 265, 332, 333, + 336, 334, 335, 338, 339, 340, 354, 311, 312, 314, + 315, 341, 357, 305, 307, 358, 364, 365, 366, 266, + 322, 380, 381, 306, 375, 289, 261, 301, 355, 361, + 342, 0, 0, 384, 267, 244, 288, 346, 245, 263, + 264, 302, 303, 382, 344, 348, 349, 246, 385, 326, + 353, 290, 310, 359, 360, 363, 374, 304, 378, 376, + 377, 316, 321, 350, 351, 317, 318, 343, 368, 291, + 292, 295, 278, 280, 281, 282, 283, 284, 386, 387, + 389, 327, 328, 329, 337, 390, 391, 392, 0, 0, + 0, 345, 319, 501, 401, 405, 403, 402, 406, 404, + 0, 0, 409, 410, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 347, 362, 379, 414, 415, 320, + 393, 0, 0, 0, 0, 0, 0, 369, 370, 371, + 372, 373, 502, 313, 308, 367, 287, 247, 248, 309, + 416, 418, 417, 419, 420, 421, 279, 286, 411, 413, + 412, 285, 0, 294, 352, 388, 293, 422, 423, 424, + 428, 427, 425, 426, 429, 430, 431, 432, 434, 433, + 443, 0, 447, 448, 0, 0, 449, 435, 441, 436, + 437, 438, 440, 442, 439, 461, 463, 462, 465, 466, + 467, 468, 464, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 500, 518, 519, 520, 523, + 521, 522, 524, 525, 526, 527, 536, 537, 538, 539, + 540, 356, 383, 400, 503, 504, 407, 408, 394, 395, + 0, 0, 0, 399, 541, 444, 445, 446, 398, 396, + 397 }; /* YYPGOTO[NTERM-NUM]. */ @@ -1523,41 +1528,41 @@ static const yytype_int16 yypgoto[] = -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154 + -154, -154 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 13, 14, 24, 218, 15, 25, 410, 16, - 26, 424, 17, 27, 438, 18, 28, 454, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 411, 412, 413, - 414, 415, 416, 417, 425, 426, 427, 428, 429, 430, - 455, 456, 457, 458, 459, 460, 461, 462, 439, 440, - 441, 442, 443, 444, 445, 19, 29, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 20, 30, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 21, 31, 506, 507, 398, 399, 400, 401, 22, - 32, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 23, 33, 534, 535, 536, 537, 538, 539, - 402 + -1, 1, 13, 14, 24, 219, 15, 25, 412, 16, + 26, 426, 17, 27, 440, 18, 28, 456, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 413, 414, + 415, 416, 417, 418, 419, 427, 428, 429, 430, 431, + 432, 457, 458, 459, 460, 461, 462, 463, 464, 441, + 442, 443, 444, 445, 446, 447, 19, 29, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 20, 30, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 21, 31, 508, 509, 400, 401, 402, 403, + 22, 32, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 23, 33, 536, 537, 538, 539, 540, + 541, 404 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1568,56 +1573,56 @@ static const yytype_uint16 yytable[] = 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 505, 540, 541, 542, 65, 66, 67, 543, 544, - 545, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 64, 507, 542, 543, 544, 65, 66, 67, 545, 546, + 547, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 446, 529, 530, 531, 532, 533, 546, 547, - 548, 109, 110, 111, 549, 112, 113, 114, 550, 551, + 107, 108, 448, 531, 532, 533, 534, 535, 548, 549, + 550, 109, 110, 111, 551, 112, 113, 114, 552, 553, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 552, 553, 554, 139, 555, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 556, - 557, 418, 558, 559, 560, 403, 561, 404, 405, 419, - 420, 562, 150, 151, 152, 153, 154, 155, 156, 157, + 135, 136, 137, 138, 554, 555, 556, 139, 557, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 558, + 559, 420, 560, 561, 562, 405, 563, 406, 407, 421, + 422, 564, 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, - 431, 188, 563, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 564, 565, 406, 566, - 567, 568, 2, 569, 570, 571, 572, 202, 203, 204, - 205, 206, 207, 3, 573, 574, 432, 433, 575, 208, - 576, 577, 578, 579, 421, 580, 422, 209, 210, 407, - 211, 212, 408, 213, 214, 581, 582, 215, 216, 217, - 583, 434, 584, 585, 586, 587, 4, 588, 589, 590, - 591, 592, 5, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 593, 594, 595, 596, 597, - 598, 447, 599, 448, 449, 450, 451, 452, 600, 601, - 602, 603, 604, 453, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 605, 606, 6, 607, 608, 609, - 610, 611, 435, 436, 463, 464, 465, 466, 467, 468, - 469, 470, 7, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 437, 640, 641, 642, 423, 643, 644, 645, 646, - 409, 647, 648, 8, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 9, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 10, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 11, 730, 731, - 732, 733, 734, 735, 736, 12, 737, 738, 739, 740, - 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, - 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, - 801, 802, 803, 804, 805, 806, 807 + 433, 188, 565, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 566, 567, 408, 568, + 569, 570, 2, 571, 572, 573, 574, 202, 203, 204, + 205, 206, 207, 3, 575, 576, 434, 435, 577, 208, + 578, 579, 580, 581, 423, 582, 424, 209, 210, 409, + 211, 212, 410, 213, 214, 583, 584, 215, 216, 217, + 218, 436, 585, 586, 587, 588, 4, 589, 590, 591, + 592, 593, 5, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 594, 595, 596, 597, 598, + 599, 449, 600, 450, 451, 452, 453, 454, 601, 602, + 603, 604, 605, 455, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 606, 607, 6, 608, 609, 610, + 611, 612, 437, 438, 465, 466, 467, 468, 469, 470, + 471, 472, 7, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 439, 641, 642, 643, 425, 644, 645, 646, 647, + 411, 648, 649, 8, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 9, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 10, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 11, 731, 732, + 733, 734, 735, 736, 737, 12, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + 802, 803, 804, 805, 806, 807, 808, 809, 810 }; static const yytype_uint16 yycheck[] = @@ -1647,7 +1652,7 @@ static const yytype_uint16 yycheck[] = 232, 233, 234, 11, 10, 10, 79, 80, 10, 241, 10, 10, 10, 10, 136, 10, 138, 249, 250, 137, 252, 253, 140, 255, 256, 10, 10, 259, 260, 261, - 10, 104, 10, 10, 10, 10, 44, 10, 10, 10, + 262, 104, 10, 10, 10, 10, 44, 10, 10, 10, 10, 10, 50, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 10, 10, 10, 10, 10, 10, 242, 10, 244, 245, 246, 247, 248, 10, 10, @@ -1674,17 +1679,17 @@ static const yytype_uint16 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, 10, 10, 10, 10 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 263, 0, 11, 44, 50, 94, 110, 151, 202, - 218, 235, 243, 264, 265, 268, 271, 274, 277, 487, - 498, 513, 521, 534, 266, 269, 272, 275, 278, 488, - 499, 514, 522, 535, 12, 13, 14, 15, 16, 17, + 0, 264, 0, 11, 44, 50, 94, 110, 151, 202, + 218, 235, 243, 265, 266, 269, 272, 275, 278, 489, + 500, 515, 523, 536, 267, 270, 273, 276, 279, 490, + 501, 516, 524, 537, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 47, 48, 49, 53, 54, @@ -1702,7 +1707,7 @@ static const yytype_uint16 yystos[] = 194, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 229, 230, 231, 232, 233, 234, 241, 249, - 250, 252, 253, 255, 256, 259, 260, 261, 267, 280, + 250, 252, 253, 255, 256, 259, 260, 261, 262, 268, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, @@ -1720,21 +1725,22 @@ static const yytype_uint16 yystos[] = 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 517, 518, - 519, 520, 542, 43, 45, 46, 106, 137, 140, 258, - 270, 459, 460, 461, 462, 463, 464, 465, 43, 51, - 52, 136, 138, 257, 273, 466, 467, 468, 469, 470, - 471, 43, 79, 80, 104, 165, 166, 204, 276, 480, - 481, 482, 483, 484, 485, 486, 43, 242, 244, 245, - 246, 247, 248, 254, 279, 472, 473, 474, 475, 476, - 477, 478, 479, 95, 96, 97, 98, 99, 100, 101, - 102, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 111, 515, 516, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 236, - 237, 238, 239, 240, 536, 537, 538, 539, 540, 541, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 519, 520, 521, 522, 544, 43, 45, 46, 106, 137, + 140, 258, 271, 461, 462, 463, 464, 465, 466, 467, + 43, 51, 52, 136, 138, 257, 274, 468, 469, 470, + 471, 472, 473, 43, 79, 80, 104, 165, 166, 204, + 277, 482, 483, 484, 485, 486, 487, 488, 43, 242, + 244, 245, 246, 247, 248, 254, 280, 474, 475, 476, + 477, 478, 479, 480, 481, 95, 96, 97, 98, 99, + 100, 101, 102, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 111, 517, 518, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 236, 237, 238, 239, 240, 538, 539, 540, 541, + 542, 543, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1761,37 +1767,37 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10 + 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 262, 263, 263, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 265, 266, 266, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, - 267, 268, 269, 269, 270, 270, 270, 270, 270, 270, - 270, 271, 272, 272, 273, 273, 273, 273, 273, 273, - 274, 275, 275, 276, 276, 276, 276, 276, 276, 276, - 277, 278, 278, 279, 279, 279, 279, 279, 279, 279, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 0, 263, 264, 264, 265, 265, 265, 265, 265, 265, + 265, 265, 265, 265, 266, 267, 267, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 269, 270, 270, 271, 271, 271, 271, 271, + 271, 271, 272, 273, 273, 274, 274, 274, 274, 274, + 274, 275, 276, 276, 277, 277, 277, 277, 277, 277, + 277, 278, 279, 279, 280, 280, 280, 280, 280, 280, + 280, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, @@ -1812,15 +1818,16 @@ static const yytype_uint16 yyr1[] = 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 488, 489, 489, 489, 489, 489, 489, 489, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 499, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 522, 523, 523, 523, 523, - 523, 523, 523, 523, 523, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 535, 536, - 536, 536, 536, 536, 537, 538, 539, 540, 541, 542 + 489, 490, 490, 491, 491, 491, 491, 491, 491, 491, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 501, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 524, 525, 525, + 525, 525, 525, 525, 525, 525, 525, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 537, 538, 538, 538, 538, 538, 539, 540, 541, 542, + 543, 544 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1846,11 +1853,11 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, @@ -1861,25 +1868,26 @@ static const yytype_uint8 yyr2[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 4, 4, 4, 3, 3, 2, - 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 4, 4, 4, 3, + 3, 2, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 2, 2, 2, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 2, 2, - 2, 3, 3, 1, 2, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 3, 3, 2, 2, 2, + 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 3 + 2, 2, 2, 3, 3, 1, 2, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 3 }; @@ -2560,10 +2568,10 @@ yyreduce: { OUTYY(("\nP(server:)\n")); } -#line 2564 "util/configparser.c" /* yacc.c:1646 */ +#line 2572 "util/configparser.c" /* yacc.c:1646 */ break; - case 201: + case 202: #line 269 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2575,10 +2583,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2579 "util/configparser.c" /* yacc.c:1646 */ +#line 2587 "util/configparser.c" /* yacc.c:1646 */ break; - case 211: + case 212: #line 286 "./util/configparser.y" /* yacc.c:1646 */ { struct config_stub* s; @@ -2590,10 +2598,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2594 "util/configparser.c" /* yacc.c:1646 */ +#line 2602 "util/configparser.c" /* yacc.c:1646 */ break; - case 220: + case 221: #line 303 "./util/configparser.y" /* yacc.c:1646 */ { struct config_view* s; @@ -2607,10 +2615,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2611 "util/configparser.c" /* yacc.c:1646 */ +#line 2619 "util/configparser.c" /* yacc.c:1646 */ break; - case 230: + case 231: #line 322 "./util/configparser.y" /* yacc.c:1646 */ { struct config_auth* s; @@ -2626,10 +2634,10 @@ yyreduce: } else yyerror("out of memory"); } -#line 2630 "util/configparser.c" /* yacc.c:1646 */ +#line 2638 "util/configparser.c" /* yacc.c:1646 */ break; - case 241: + case 242: #line 344 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); @@ -2638,10 +2646,10 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2642 "util/configparser.c" /* yacc.c:1646 */ +#line 2650 "util/configparser.c" /* yacc.c:1646 */ break; - case 242: + case 243: #line 353 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); @@ -2650,10 +2658,10 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2654 "util/configparser.c" /* yacc.c:1646 */ +#line 2662 "util/configparser.c" /* yacc.c:1646 */ break; - case 243: + case 244: #line 362 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); @@ -2664,10 +2672,10 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2668 "util/configparser.c" /* yacc.c:1646 */ +#line 2676 "util/configparser.c" /* yacc.c:1646 */ break; - case 244: + case 245: #line 373 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); @@ -2676,10 +2684,10 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2680 "util/configparser.c" /* yacc.c:1646 */ +#line 2688 "util/configparser.c" /* yacc.c:1646 */ break; - case 245: + case 246: #line 382 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); @@ -2688,10 +2696,10 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2692 "util/configparser.c" /* yacc.c:1646 */ +#line 2700 "util/configparser.c" /* yacc.c:1646 */ break; - case 246: + case 247: #line 391 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); @@ -2700,10 +2708,10 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2704 "util/configparser.c" /* yacc.c:1646 */ +#line 2712 "util/configparser.c" /* yacc.c:1646 */ break; - case 247: + case 248: #line 400 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); @@ -2714,10 +2722,10 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2718 "util/configparser.c" /* yacc.c:1646 */ +#line 2726 "util/configparser.c" /* yacc.c:1646 */ break; - case 248: + case 249: #line 411 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); @@ -2726,10 +2734,10 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2730 "util/configparser.c" /* yacc.c:1646 */ +#line 2738 "util/configparser.c" /* yacc.c:1646 */ break; - case 249: + case 250: #line 420 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2740,10 +2748,10 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2744 "util/configparser.c" /* yacc.c:1646 */ +#line 2752 "util/configparser.c" /* yacc.c:1646 */ break; - case 250: + case 251: #line 431 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2755,10 +2763,10 @@ yyreduce: OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); #endif } -#line 2759 "util/configparser.c" /* yacc.c:1646 */ +#line 2767 "util/configparser.c" /* yacc.c:1646 */ break; - case 251: + case 252: #line 444 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2773,10 +2781,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2777 "util/configparser.c" /* yacc.c:1646 */ +#line 2785 "util/configparser.c" /* yacc.c:1646 */ break; - case 252: + case 253: #line 459 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2787,10 +2795,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2791 "util/configparser.c" /* yacc.c:1646 */ +#line 2799 "util/configparser.c" /* yacc.c:1646 */ break; - case 253: + case 254: #line 470 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2807,10 +2815,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2811 "util/configparser.c" /* yacc.c:1646 */ +#line 2819 "util/configparser.c" /* yacc.c:1646 */ break; - case 254: + case 255: #line 487 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2827,10 +2835,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2831 "util/configparser.c" /* yacc.c:1646 */ +#line 2839 "util/configparser.c" /* yacc.c:1646 */ break; - case 255: + case 256: #line 504 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2847,10 +2855,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2851 "util/configparser.c" /* yacc.c:1646 */ +#line 2859 "util/configparser.c" /* yacc.c:1646 */ break; - case 256: + case 257: #line 521 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2867,10 +2875,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2871 "util/configparser.c" /* yacc.c:1646 */ +#line 2879 "util/configparser.c" /* yacc.c:1646 */ break; - case 257: + case 258: #line 538 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2885,10 +2893,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2889 "util/configparser.c" /* yacc.c:1646 */ +#line 2897 "util/configparser.c" /* yacc.c:1646 */ break; - case 258: + case 259: #line 553 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef CLIENT_SUBNET @@ -2903,10 +2911,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 2907 "util/configparser.c" /* yacc.c:1646 */ +#line 2915 "util/configparser.c" /* yacc.c:1646 */ break; - case 259: + case 260: #line 568 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); @@ -2919,10 +2927,10 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 2923 "util/configparser.c" /* yacc.c:1646 */ +#line 2931 "util/configparser.c" /* yacc.c:1646 */ break; - case 260: + case 261: #line 581 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); @@ -2937,10 +2945,10 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 2941 "util/configparser.c" /* yacc.c:1646 */ +#line 2949 "util/configparser.c" /* yacc.c:1646 */ break; - case 261: + case 262: #line 596 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); @@ -2949,10 +2957,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2953 "util/configparser.c" /* yacc.c:1646 */ +#line 2961 "util/configparser.c" /* yacc.c:1646 */ break; - case 262: + case 263: #line 605 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); @@ -2961,10 +2969,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2965 "util/configparser.c" /* yacc.c:1646 */ +#line 2973 "util/configparser.c" /* yacc.c:1646 */ break; - case 263: + case 264: #line 614 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); @@ -2973,10 +2981,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 2977 "util/configparser.c" /* yacc.c:1646 */ +#line 2985 "util/configparser.c" /* yacc.c:1646 */ break; - case 264: + case 265: #line 623 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); @@ -2985,10 +2993,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2989 "util/configparser.c" /* yacc.c:1646 */ +#line 2997 "util/configparser.c" /* yacc.c:1646 */ break; - case 265: + case 266: #line 632 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); @@ -2997,10 +3005,10 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3001 "util/configparser.c" /* yacc.c:1646 */ +#line 3009 "util/configparser.c" /* yacc.c:1646 */ break; - case 266: + case 267: #line 641 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); @@ -3009,10 +3017,10 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3013 "util/configparser.c" /* yacc.c:1646 */ +#line 3021 "util/configparser.c" /* yacc.c:1646 */ break; - case 267: + case 268: #line 650 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); @@ -3021,10 +3029,10 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3025 "util/configparser.c" /* yacc.c:1646 */ +#line 3033 "util/configparser.c" /* yacc.c:1646 */ break; - case 268: + case 269: #line 659 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); @@ -3033,10 +3041,10 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3037 "util/configparser.c" /* yacc.c:1646 */ +#line 3045 "util/configparser.c" /* yacc.c:1646 */ break; - case 269: + case 270: #line 668 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); @@ -3045,10 +3053,10 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3049 "util/configparser.c" /* yacc.c:1646 */ +#line 3057 "util/configparser.c" /* yacc.c:1646 */ break; - case 270: + case 271: #line 677 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); @@ -3057,10 +3065,10 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3061 "util/configparser.c" /* yacc.c:1646 */ +#line 3069 "util/configparser.c" /* yacc.c:1646 */ break; - case 271: + case 272: #line 686 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); @@ -3069,10 +3077,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3073 "util/configparser.c" /* yacc.c:1646 */ +#line 3081 "util/configparser.c" /* yacc.c:1646 */ break; - case 272: + case 273: #line 695 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -3081,10 +3089,10 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3085 "util/configparser.c" /* yacc.c:1646 */ +#line 3093 "util/configparser.c" /* yacc.c:1646 */ break; - case 273: + case 274: #line 704 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -3093,10 +3101,10 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3097 "util/configparser.c" /* yacc.c:1646 */ +#line 3105 "util/configparser.c" /* yacc.c:1646 */ break; - case 274: + case 275: #line 713 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); @@ -3109,10 +3117,10 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3113 "util/configparser.c" /* yacc.c:1646 */ +#line 3121 "util/configparser.c" /* yacc.c:1646 */ break; - case 275: + case 276: #line 726 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); @@ -3121,10 +3129,10 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3125 "util/configparser.c" /* yacc.c:1646 */ +#line 3133 "util/configparser.c" /* yacc.c:1646 */ break; - case 276: + case 277: #line 735 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); @@ -3137,10 +3145,10 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3141 "util/configparser.c" /* yacc.c:1646 */ +#line 3149 "util/configparser.c" /* yacc.c:1646 */ break; - case 277: + case 278: #line 748 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); @@ -3149,10 +3157,10 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3153 "util/configparser.c" /* yacc.c:1646 */ +#line 3161 "util/configparser.c" /* yacc.c:1646 */ break; - case 278: + case 279: #line 757 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); @@ -3161,10 +3169,10 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3165 "util/configparser.c" /* yacc.c:1646 */ +#line 3173 "util/configparser.c" /* yacc.c:1646 */ break; - case 279: + case 280: #line 766 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); @@ -3173,30 +3181,30 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3177 "util/configparser.c" /* yacc.c:1646 */ +#line 3185 "util/configparser.c" /* yacc.c:1646 */ break; - case 280: + case 281: #line 775 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 3187 "util/configparser.c" /* yacc.c:1646 */ +#line 3195 "util/configparser.c" /* yacc.c:1646 */ break; - case 281: + case 282: #line 782 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 3197 "util/configparser.c" /* yacc.c:1646 */ +#line 3205 "util/configparser.c" /* yacc.c:1646 */ break; - case 282: + case 283: #line 789 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); @@ -3205,20 +3213,20 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3209 "util/configparser.c" /* yacc.c:1646 */ +#line 3217 "util/configparser.c" /* yacc.c:1646 */ break; - case 283: + case 284: #line 798 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3219 "util/configparser.c" /* yacc.c:1646 */ +#line 3227 "util/configparser.c" /* yacc.c:1646 */ break; - case 284: + case 285: #line 805 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); @@ -3227,10 +3235,10 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3231 "util/configparser.c" /* yacc.c:1646 */ +#line 3239 "util/configparser.c" /* yacc.c:1646 */ break; - case 285: + case 286: #line 814 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); @@ -3238,10 +3246,10 @@ yyreduce: (yyvsp[0].str))) yyerror("out of memory"); } -#line 3242 "util/configparser.c" /* yacc.c:1646 */ +#line 3250 "util/configparser.c" /* yacc.c:1646 */ break; - case 286: + case 287: #line 822 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); @@ -3250,10 +3258,10 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3254 "util/configparser.c" /* yacc.c:1646 */ +#line 3262 "util/configparser.c" /* yacc.c:1646 */ break; - case 287: + case 288: #line 831 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); @@ -3262,10 +3270,10 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3266 "util/configparser.c" /* yacc.c:1646 */ +#line 3274 "util/configparser.c" /* yacc.c:1646 */ break; - case 288: + case 289: #line 840 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); @@ -3279,10 +3287,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3283 "util/configparser.c" /* yacc.c:1646 */ +#line 3291 "util/configparser.c" /* yacc.c:1646 */ break; - case 289: + case 290: #line 854 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); @@ -3291,10 +3299,10 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3295 "util/configparser.c" /* yacc.c:1646 */ +#line 3303 "util/configparser.c" /* yacc.c:1646 */ break; - case 290: + case 291: #line 863 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); @@ -3303,10 +3311,10 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3307 "util/configparser.c" /* yacc.c:1646 */ +#line 3315 "util/configparser.c" /* yacc.c:1646 */ break; - case 291: + case 292: #line 872 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); @@ -3315,11 +3323,23 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3319 "util/configparser.c" /* yacc.c:1646 */ +#line 3327 "util/configparser.c" /* yacc.c:1646 */ break; - case 292: + case 293: #line 881 "./util/configparser.y" /* yacc.c:1646 */ + { + OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3339 "util/configparser.c" /* yacc.c:1646 */ + break; + + case 294: +#line 890 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3327,11 +3347,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3331 "util/configparser.c" /* yacc.c:1646 */ +#line 3351 "util/configparser.c" /* yacc.c:1646 */ break; - case 293: -#line 890 "./util/configparser.y" /* yacc.c:1646 */ + case 295: +#line 899 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3339,31 +3359,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3343 "util/configparser.c" /* yacc.c:1646 */ +#line 3363 "util/configparser.c" /* yacc.c:1646 */ break; - case 294: -#line 899 "./util/configparser.y" /* yacc.c:1646 */ + case 296: +#line 908 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3353 "util/configparser.c" /* yacc.c:1646 */ +#line 3373 "util/configparser.c" /* yacc.c:1646 */ break; - case 295: -#line 906 "./util/configparser.y" /* yacc.c:1646 */ + case 297: +#line 915 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3363 "util/configparser.c" /* yacc.c:1646 */ +#line 3383 "util/configparser.c" /* yacc.c:1646 */ break; - case 296: -#line 913 "./util/configparser.y" /* yacc.c:1646 */ + case 298: +#line 922 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3388,105 +3408,105 @@ yyreduce: } } } -#line 3392 "util/configparser.c" /* yacc.c:1646 */ +#line 3412 "util/configparser.c" /* yacc.c:1646 */ break; - case 297: -#line 939 "./util/configparser.y" /* yacc.c:1646 */ + case 299: +#line 948 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3403 "util/configparser.c" /* yacc.c:1646 */ +#line 3423 "util/configparser.c" /* yacc.c:1646 */ break; - case 298: -#line 947 "./util/configparser.y" /* yacc.c:1646 */ + case 300: +#line 956 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3413 "util/configparser.c" /* yacc.c:1646 */ +#line 3433 "util/configparser.c" /* yacc.c:1646 */ break; - case 299: -#line 954 "./util/configparser.y" /* yacc.c:1646 */ + case 301: +#line 963 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3423 "util/configparser.c" /* yacc.c:1646 */ +#line 3443 "util/configparser.c" /* yacc.c:1646 */ break; - case 300: -#line 961 "./util/configparser.y" /* yacc.c:1646 */ + case 302: +#line 970 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dlv_anchor_file); cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); } -#line 3433 "util/configparser.c" /* yacc.c:1646 */ +#line 3453 "util/configparser.c" /* yacc.c:1646 */ break; - case 301: -#line 968 "./util/configparser.y" /* yacc.c:1646 */ + case 303: +#line 977 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3443 "util/configparser.c" /* yacc.c:1646 */ +#line 3463 "util/configparser.c" /* yacc.c:1646 */ break; - case 302: -#line 975 "./util/configparser.y" /* yacc.c:1646 */ + case 304: +#line 984 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3454 "util/configparser.c" /* yacc.c:1646 */ +#line 3474 "util/configparser.c" /* yacc.c:1646 */ break; - case 303: -#line 983 "./util/configparser.y" /* yacc.c:1646 */ + case 305: +#line 992 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3465 "util/configparser.c" /* yacc.c:1646 */ +#line 3485 "util/configparser.c" /* yacc.c:1646 */ break; - case 304: -#line 991 "./util/configparser.y" /* yacc.c:1646 */ + case 306: +#line 1000 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3476 "util/configparser.c" /* yacc.c:1646 */ +#line 3496 "util/configparser.c" /* yacc.c:1646 */ break; - case 305: -#line 999 "./util/configparser.y" /* yacc.c:1646 */ + case 307: +#line 1008 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3486 "util/configparser.c" /* yacc.c:1646 */ +#line 3506 "util/configparser.c" /* yacc.c:1646 */ break; - case 306: -#line 1006 "./util/configparser.y" /* yacc.c:1646 */ + case 308: +#line 1015 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3496,11 +3516,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3500 "util/configparser.c" /* yacc.c:1646 */ +#line 3520 "util/configparser.c" /* yacc.c:1646 */ break; - case 307: -#line 1017 "./util/configparser.y" /* yacc.c:1646 */ + case 309: +#line 1026 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3510,21 +3530,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3514 "util/configparser.c" /* yacc.c:1646 */ +#line 3534 "util/configparser.c" /* yacc.c:1646 */ break; - case 308: -#line 1028 "./util/configparser.y" /* yacc.c:1646 */ + case 310: +#line 1037 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3524 "util/configparser.c" /* yacc.c:1646 */ +#line 3544 "util/configparser.c" /* yacc.c:1646 */ break; - case 309: -#line 1035 "./util/configparser.y" /* yacc.c:1646 */ + case 311: +#line 1044 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3532,11 +3552,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3536 "util/configparser.c" /* yacc.c:1646 */ +#line 3556 "util/configparser.c" /* yacc.c:1646 */ break; - case 310: -#line 1044 "./util/configparser.y" /* yacc.c:1646 */ + case 312: +#line 1053 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3544,11 +3564,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3548 "util/configparser.c" /* yacc.c:1646 */ +#line 3568 "util/configparser.c" /* yacc.c:1646 */ break; - case 311: -#line 1053 "./util/configparser.y" /* yacc.c:1646 */ + case 313: +#line 1062 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3556,53 +3576,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3560 "util/configparser.c" /* yacc.c:1646 */ +#line 3580 "util/configparser.c" /* yacc.c:1646 */ break; - case 312: -#line 1062 "./util/configparser.y" /* yacc.c:1646 */ + case 314: +#line 1071 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 3570 "util/configparser.c" /* yacc.c:1646 */ +#line 3590 "util/configparser.c" /* yacc.c:1646 */ break; - case 313: -#line 1069 "./util/configparser.y" /* yacc.c:1646 */ + case 315: +#line 1078 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 3580 "util/configparser.c" /* yacc.c:1646 */ +#line 3600 "util/configparser.c" /* yacc.c:1646 */ break; - case 314: -#line 1076 "./util/configparser.y" /* yacc.c:1646 */ + case 316: +#line 1085 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 3591 "util/configparser.c" /* yacc.c:1646 */ +#line 3611 "util/configparser.c" /* yacc.c:1646 */ break; - case 315: -#line 1084 "./util/configparser.y" /* yacc.c:1646 */ + case 317: +#line 1093 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 3602 "util/configparser.c" /* yacc.c:1646 */ +#line 3622 "util/configparser.c" /* yacc.c:1646 */ break; - case 316: -#line 1092 "./util/configparser.y" /* yacc.c:1646 */ + case 318: +#line 1101 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3611,11 +3631,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3615 "util/configparser.c" /* yacc.c:1646 */ +#line 3635 "util/configparser.c" /* yacc.c:1646 */ break; - case 317: -#line 1102 "./util/configparser.y" /* yacc.c:1646 */ + case 319: +#line 1111 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3624,11 +3644,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3628 "util/configparser.c" /* yacc.c:1646 */ +#line 3648 "util/configparser.c" /* yacc.c:1646 */ break; - case 318: -#line 1112 "./util/configparser.y" /* yacc.c:1646 */ + case 320: +#line 1121 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3637,11 +3657,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3641 "util/configparser.c" /* yacc.c:1646 */ +#line 3661 "util/configparser.c" /* yacc.c:1646 */ break; - case 319: -#line 1122 "./util/configparser.y" /* yacc.c:1646 */ + case 321: +#line 1131 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3653,11 +3673,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3657 "util/configparser.c" /* yacc.c:1646 */ +#line 3677 "util/configparser.c" /* yacc.c:1646 */ break; - case 320: -#line 1135 "./util/configparser.y" /* yacc.c:1646 */ + case 322: +#line 1144 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3667,22 +3687,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3671 "util/configparser.c" /* yacc.c:1646 */ +#line 3691 "util/configparser.c" /* yacc.c:1646 */ break; - case 321: -#line 1146 "./util/configparser.y" /* yacc.c:1646 */ + case 323: +#line 1155 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3682 "util/configparser.c" /* yacc.c:1646 */ +#line 3702 "util/configparser.c" /* yacc.c:1646 */ break; - case 322: -#line 1154 "./util/configparser.y" /* yacc.c:1646 */ + case 324: +#line 1163 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3694,11 +3714,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3698 "util/configparser.c" /* yacc.c:1646 */ +#line 3718 "util/configparser.c" /* yacc.c:1646 */ break; - case 323: -#line 1167 "./util/configparser.y" /* yacc.c:1646 */ + case 325: +#line 1176 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3706,11 +3726,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3710 "util/configparser.c" /* yacc.c:1646 */ +#line 3730 "util/configparser.c" /* yacc.c:1646 */ break; - case 324: -#line 1176 "./util/configparser.y" /* yacc.c:1646 */ + case 326: +#line 1185 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3718,11 +3738,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3722 "util/configparser.c" /* yacc.c:1646 */ +#line 3742 "util/configparser.c" /* yacc.c:1646 */ break; - case 325: -#line 1185 "./util/configparser.y" /* yacc.c:1646 */ + case 327: +#line 1194 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3730,11 +3750,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3734 "util/configparser.c" /* yacc.c:1646 */ +#line 3754 "util/configparser.c" /* yacc.c:1646 */ break; - case 326: -#line 1194 "./util/configparser.y" /* yacc.c:1646 */ + case 328: +#line 1203 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3743,11 +3763,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3747 "util/configparser.c" /* yacc.c:1646 */ +#line 3767 "util/configparser.c" /* yacc.c:1646 */ break; - case 327: -#line 1204 "./util/configparser.y" /* yacc.c:1646 */ + case 329: +#line 1213 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3756,22 +3776,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3760 "util/configparser.c" /* yacc.c:1646 */ +#line 3780 "util/configparser.c" /* yacc.c:1646 */ break; - case 328: -#line 1214 "./util/configparser.y" /* yacc.c:1646 */ + case 330: +#line 1223 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3771 "util/configparser.c" /* yacc.c:1646 */ +#line 3791 "util/configparser.c" /* yacc.c:1646 */ break; - case 329: -#line 1222 "./util/configparser.y" /* yacc.c:1646 */ + case 331: +#line 1231 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3783,11 +3803,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3787 "util/configparser.c" /* yacc.c:1646 */ +#line 3807 "util/configparser.c" /* yacc.c:1646 */ break; - case 330: -#line 1235 "./util/configparser.y" /* yacc.c:1646 */ + case 332: +#line 1244 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3795,22 +3815,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3799 "util/configparser.c" /* yacc.c:1646 */ +#line 3819 "util/configparser.c" /* yacc.c:1646 */ break; - case 331: -#line 1244 "./util/configparser.y" /* yacc.c:1646 */ + case 333: +#line 1253 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3810 "util/configparser.c" /* yacc.c:1646 */ +#line 3830 "util/configparser.c" /* yacc.c:1646 */ break; - case 332: -#line 1252 "./util/configparser.y" /* yacc.c:1646 */ + case 334: +#line 1261 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3818,22 +3838,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3822 "util/configparser.c" /* yacc.c:1646 */ +#line 3842 "util/configparser.c" /* yacc.c:1646 */ break; - case 333: -#line 1261 "./util/configparser.y" /* yacc.c:1646 */ + case 335: +#line 1270 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3833 "util/configparser.c" /* yacc.c:1646 */ +#line 3853 "util/configparser.c" /* yacc.c:1646 */ break; - case 334: -#line 1269 "./util/configparser.y" /* yacc.c:1646 */ + case 336: +#line 1278 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3845,33 +3865,33 @@ yyreduce: } free((yyvsp[0].str)); } -#line 3849 "util/configparser.c" /* yacc.c:1646 */ +#line 3869 "util/configparser.c" /* yacc.c:1646 */ break; - case 335: -#line 1282 "./util/configparser.y" /* yacc.c:1646 */ - { + case 337: +#line 1291 "./util/configparser.y" /* yacc.c:1646 */ + { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3861 "util/configparser.c" /* yacc.c:1646 */ +#line 3881 "util/configparser.c" /* yacc.c:1646 */ break; - case 336: -#line 1291 "./util/configparser.y" /* yacc.c:1646 */ + case 338: +#line 1300 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 3871 "util/configparser.c" /* yacc.c:1646 */ +#line 3891 "util/configparser.c" /* yacc.c:1646 */ break; - case 337: -#line 1298 "./util/configparser.y" /* yacc.c:1646 */ + case 339: +#line 1307 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3880,11 +3900,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3884 "util/configparser.c" /* yacc.c:1646 */ +#line 3904 "util/configparser.c" /* yacc.c:1646 */ break; - case 338: -#line 1308 "./util/configparser.y" /* yacc.c:1646 */ + case 340: +#line 1317 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3893,11 +3913,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3897 "util/configparser.c" /* yacc.c:1646 */ +#line 3917 "util/configparser.c" /* yacc.c:1646 */ break; - case 339: -#line 1318 "./util/configparser.y" /* yacc.c:1646 */ + case 341: +#line 1327 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3906,11 +3926,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3910 "util/configparser.c" /* yacc.c:1646 */ +#line 3930 "util/configparser.c" /* yacc.c:1646 */ break; - case 340: -#line 1328 "./util/configparser.y" /* yacc.c:1646 */ + case 342: +#line 1337 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3919,11 +3939,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3923 "util/configparser.c" /* yacc.c:1646 */ +#line 3943 "util/configparser.c" /* yacc.c:1646 */ break; - case 341: -#line 1338 "./util/configparser.y" /* yacc.c:1646 */ + case 343: +#line 1347 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3932,11 +3952,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3936 "util/configparser.c" /* yacc.c:1646 */ +#line 3956 "util/configparser.c" /* yacc.c:1646 */ break; - case 342: -#line 1348 "./util/configparser.y" /* yacc.c:1646 */ + case 344: +#line 1357 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3945,11 +3965,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3949 "util/configparser.c" /* yacc.c:1646 */ +#line 3969 "util/configparser.c" /* yacc.c:1646 */ break; - case 343: -#line 1358 "./util/configparser.y" /* yacc.c:1646 */ + case 345: +#line 1367 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3958,11 +3978,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3962 "util/configparser.c" /* yacc.c:1646 */ +#line 3982 "util/configparser.c" /* yacc.c:1646 */ break; - case 344: -#line 1368 "./util/configparser.y" /* yacc.c:1646 */ + case 346: +#line 1377 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3971,41 +3991,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3975 "util/configparser.c" /* yacc.c:1646 */ +#line 3995 "util/configparser.c" /* yacc.c:1646 */ break; - case 345: -#line 1378 "./util/configparser.y" /* yacc.c:1646 */ + case 347: +#line 1387 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3985 "util/configparser.c" /* yacc.c:1646 */ +#line 4005 "util/configparser.c" /* yacc.c:1646 */ break; - case 346: -#line 1385 "./util/configparser.y" /* yacc.c:1646 */ + case 348: +#line 1394 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3995 "util/configparser.c" /* yacc.c:1646 */ +#line 4015 "util/configparser.c" /* yacc.c:1646 */ break; - case 347: -#line 1392 "./util/configparser.y" /* yacc.c:1646 */ + case 349: +#line 1401 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4005 "util/configparser.c" /* yacc.c:1646 */ +#line 4025 "util/configparser.c" /* yacc.c:1646 */ break; - case 348: -#line 1399 "./util/configparser.y" /* yacc.c:1646 */ + case 350: +#line 1408 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4013,11 +4033,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4017 "util/configparser.c" /* yacc.c:1646 */ +#line 4037 "util/configparser.c" /* yacc.c:1646 */ break; - case 349: -#line 1408 "./util/configparser.y" /* yacc.c:1646 */ + case 351: +#line 1417 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4025,11 +4045,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4029 "util/configparser.c" /* yacc.c:1646 */ +#line 4049 "util/configparser.c" /* yacc.c:1646 */ break; - case 350: -#line 1417 "./util/configparser.y" /* yacc.c:1646 */ + case 352: +#line 1426 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4037,11 +4057,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4041 "util/configparser.c" /* yacc.c:1646 */ +#line 4061 "util/configparser.c" /* yacc.c:1646 */ break; - case 351: -#line 1426 "./util/configparser.y" /* yacc.c:1646 */ + case 353: +#line 1435 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4049,21 +4069,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4053 "util/configparser.c" /* yacc.c:1646 */ +#line 4073 "util/configparser.c" /* yacc.c:1646 */ break; - case 352: -#line 1435 "./util/configparser.y" /* yacc.c:1646 */ + case 354: +#line 1444 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4063 "util/configparser.c" /* yacc.c:1646 */ +#line 4083 "util/configparser.c" /* yacc.c:1646 */ break; - case 353: -#line 1442 "./util/configparser.y" /* yacc.c:1646 */ + case 355: +#line 1451 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4072,11 +4092,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4076 "util/configparser.c" /* yacc.c:1646 */ +#line 4096 "util/configparser.c" /* yacc.c:1646 */ break; - case 354: -#line 1452 "./util/configparser.y" /* yacc.c:1646 */ + case 356: +#line 1461 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && @@ -4093,21 +4113,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4097 "util/configparser.c" /* yacc.c:1646 */ +#line 4117 "util/configparser.c" /* yacc.c:1646 */ break; - case 355: -#line 1470 "./util/configparser.y" /* yacc.c:1646 */ + case 357: +#line 1479 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 4107 "util/configparser.c" /* yacc.c:1646 */ +#line 4127 "util/configparser.c" /* yacc.c:1646 */ break; - case 356: -#line 1477 "./util/configparser.y" /* yacc.c:1646 */ + case 358: +#line 1486 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4124,11 +4144,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4128 "util/configparser.c" /* yacc.c:1646 */ +#line 4148 "util/configparser.c" /* yacc.c:1646 */ break; - case 357: -#line 1495 "./util/configparser.y" /* yacc.c:1646 */ + case 359: +#line 1504 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4140,11 +4160,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4144 "util/configparser.c" /* yacc.c:1646 */ +#line 4164 "util/configparser.c" /* yacc.c:1646 */ break; - case 358: -#line 1508 "./util/configparser.y" /* yacc.c:1646 */ + case 360: +#line 1517 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { @@ -4156,11 +4176,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4160 "util/configparser.c" /* yacc.c:1646 */ +#line 4180 "util/configparser.c" /* yacc.c:1646 */ break; - case 359: -#line 1521 "./util/configparser.y" /* yacc.c:1646 */ + case 361: +#line 1530 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4168,11 +4188,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4172 "util/configparser.c" /* yacc.c:1646 */ +#line 4192 "util/configparser.c" /* yacc.c:1646 */ break; - case 360: -#line 1530 "./util/configparser.y" /* yacc.c:1646 */ + case 362: +#line 1539 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4180,11 +4200,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4184 "util/configparser.c" /* yacc.c:1646 */ +#line 4204 "util/configparser.c" /* yacc.c:1646 */ break; - case 361: -#line 1539 "./util/configparser.y" /* yacc.c:1646 */ + case 363: +#line 1548 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4192,11 +4212,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4196 "util/configparser.c" /* yacc.c:1646 */ +#line 4216 "util/configparser.c" /* yacc.c:1646 */ break; - case 362: -#line 1548 "./util/configparser.y" /* yacc.c:1646 */ + case 364: +#line 1557 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4204,11 +4224,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4208 "util/configparser.c" /* yacc.c:1646 */ +#line 4228 "util/configparser.c" /* yacc.c:1646 */ break; - case 363: -#line 1557 "./util/configparser.y" /* yacc.c:1646 */ + case 365: +#line 1566 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4217,11 +4237,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4221 "util/configparser.c" /* yacc.c:1646 */ +#line 4241 "util/configparser.c" /* yacc.c:1646 */ break; - case 364: -#line 1567 "./util/configparser.y" /* yacc.c:1646 */ + case 366: +#line 1576 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4230,11 +4250,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4234 "util/configparser.c" /* yacc.c:1646 */ +#line 4254 "util/configparser.c" /* yacc.c:1646 */ break; - case 365: -#line 1577 "./util/configparser.y" /* yacc.c:1646 */ + case 367: +#line 1586 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4244,11 +4264,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4248 "util/configparser.c" /* yacc.c:1646 */ +#line 4268 "util/configparser.c" /* yacc.c:1646 */ break; - case 366: -#line 1588 "./util/configparser.y" /* yacc.c:1646 */ + case 368: +#line 1597 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4256,11 +4276,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4260 "util/configparser.c" /* yacc.c:1646 */ +#line 4280 "util/configparser.c" /* yacc.c:1646 */ break; - case 367: -#line 1597 "./util/configparser.y" /* yacc.c:1646 */ + case 369: +#line 1606 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4268,11 +4288,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4272 "util/configparser.c" /* yacc.c:1646 */ +#line 4292 "util/configparser.c" /* yacc.c:1646 */ break; - case 368: -#line 1606 "./util/configparser.y" /* yacc.c:1646 */ + case 370: +#line 1615 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4280,11 +4300,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4284 "util/configparser.c" /* yacc.c:1646 */ +#line 4304 "util/configparser.c" /* yacc.c:1646 */ break; - case 369: -#line 1615 "./util/configparser.y" /* yacc.c:1646 */ + case 371: +#line 1624 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4292,11 +4312,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4296 "util/configparser.c" /* yacc.c:1646 */ +#line 4316 "util/configparser.c" /* yacc.c:1646 */ break; - case 370: -#line 1624 "./util/configparser.y" /* yacc.c:1646 */ + case 372: +#line 1633 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4308,11 +4328,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4312 "util/configparser.c" /* yacc.c:1646 */ +#line 4332 "util/configparser.c" /* yacc.c:1646 */ break; - case 371: -#line 1637 "./util/configparser.y" /* yacc.c:1646 */ + case 373: +#line 1646 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4324,11 +4344,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4328 "util/configparser.c" /* yacc.c:1646 */ +#line 4348 "util/configparser.c" /* yacc.c:1646 */ break; - case 372: -#line 1650 "./util/configparser.y" /* yacc.c:1646 */ + case 374: +#line 1659 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4336,21 +4356,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4340 "util/configparser.c" /* yacc.c:1646 */ +#line 4360 "util/configparser.c" /* yacc.c:1646 */ break; - case 373: -#line 1659 "./util/configparser.y" /* yacc.c:1646 */ + case 375: +#line 1668 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 4350 "util/configparser.c" /* yacc.c:1646 */ +#line 4370 "util/configparser.c" /* yacc.c:1646 */ break; - case 374: -#line 1666 "./util/configparser.y" /* yacc.c:1646 */ + case 376: +#line 1675 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4358,11 +4378,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4362 "util/configparser.c" /* yacc.c:1646 */ +#line 4382 "util/configparser.c" /* yacc.c:1646 */ break; - case 375: -#line 1675 "./util/configparser.y" /* yacc.c:1646 */ + case 377: +#line 1684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4370,11 +4390,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4374 "util/configparser.c" /* yacc.c:1646 */ +#line 4394 "util/configparser.c" /* yacc.c:1646 */ break; - case 376: -#line 1684 "./util/configparser.y" /* yacc.c:1646 */ + case 378: +#line 1693 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4382,11 +4402,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4386 "util/configparser.c" /* yacc.c:1646 */ +#line 4406 "util/configparser.c" /* yacc.c:1646 */ break; - case 377: -#line 1693 "./util/configparser.y" /* yacc.c:1646 */ + case 379: +#line 1702 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4395,22 +4415,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4399 "util/configparser.c" /* yacc.c:1646 */ +#line 4419 "util/configparser.c" /* yacc.c:1646 */ break; - case 378: -#line 1702 "./util/configparser.y" /* yacc.c:1646 */ + case 380: +#line 1711 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4410 "util/configparser.c" /* yacc.c:1646 */ +#line 4430 "util/configparser.c" /* yacc.c:1646 */ break; - case 379: -#line 1710 "./util/configparser.y" /* yacc.c:1646 */ + case 381: +#line 1719 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4422,22 +4442,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4426 "util/configparser.c" /* yacc.c:1646 */ +#line 4446 "util/configparser.c" /* yacc.c:1646 */ break; - case 380: -#line 1723 "./util/configparser.y" /* yacc.c:1646 */ + case 382: +#line 1732 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4437 "util/configparser.c" /* yacc.c:1646 */ +#line 4457 "util/configparser.c" /* yacc.c:1646 */ break; - case 381: -#line 1731 "./util/configparser.y" /* yacc.c:1646 */ + case 383: +#line 1740 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -4465,21 +4485,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4469 "util/configparser.c" /* yacc.c:1646 */ +#line 4489 "util/configparser.c" /* yacc.c:1646 */ break; - case 382: -#line 1760 "./util/configparser.y" /* yacc.c:1646 */ + case 384: +#line 1769 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 4479 "util/configparser.c" /* yacc.c:1646 */ +#line 4499 "util/configparser.c" /* yacc.c:1646 */ break; - case 383: -#line 1767 "./util/configparser.y" /* yacc.c:1646 */ + case 385: +#line 1776 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4493,11 +4513,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4497 "util/configparser.c" /* yacc.c:1646 */ +#line 4517 "util/configparser.c" /* yacc.c:1646 */ break; - case 384: -#line 1782 "./util/configparser.y" /* yacc.c:1646 */ + case 386: +#line 1791 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4506,11 +4526,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4510 "util/configparser.c" /* yacc.c:1646 */ +#line 4530 "util/configparser.c" /* yacc.c:1646 */ break; - case 385: -#line 1792 "./util/configparser.y" /* yacc.c:1646 */ + case 387: +#line 1801 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4519,41 +4539,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4523 "util/configparser.c" /* yacc.c:1646 */ +#line 4543 "util/configparser.c" /* yacc.c:1646 */ break; - case 386: -#line 1802 "./util/configparser.y" /* yacc.c:1646 */ + case 388: +#line 1811 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4533 "util/configparser.c" /* yacc.c:1646 */ +#line 4553 "util/configparser.c" /* yacc.c:1646 */ break; - case 387: -#line 1809 "./util/configparser.y" /* yacc.c:1646 */ + case 389: +#line 1818 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4543 "util/configparser.c" /* yacc.c:1646 */ +#line 4563 "util/configparser.c" /* yacc.c:1646 */ break; - case 388: -#line 1816 "./util/configparser.y" /* yacc.c:1646 */ + case 390: +#line 1825 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 4553 "util/configparser.c" /* yacc.c:1646 */ +#line 4573 "util/configparser.c" /* yacc.c:1646 */ break; - case 389: -#line 1823 "./util/configparser.y" /* yacc.c:1646 */ + case 391: +#line 1832 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4561,22 +4581,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4565 "util/configparser.c" /* yacc.c:1646 */ +#line 4585 "util/configparser.c" /* yacc.c:1646 */ break; - case 390: -#line 1832 "./util/configparser.y" /* yacc.c:1646 */ + case 392: +#line 1841 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 4576 "util/configparser.c" /* yacc.c:1646 */ +#line 4596 "util/configparser.c" /* yacc.c:1646 */ break; - case 391: -#line 1840 "./util/configparser.y" /* yacc.c:1646 */ + case 393: +#line 1849 "./util/configparser.y" /* yacc.c:1646 */ { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -4589,11 +4609,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4593 "util/configparser.c" /* yacc.c:1646 */ +#line 4613 "util/configparser.c" /* yacc.c:1646 */ break; - case 392: -#line 1854 "./util/configparser.y" /* yacc.c:1646 */ + case 394: +#line 1863 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4611,11 +4631,11 @@ yyreduce: } } } -#line 4615 "util/configparser.c" /* yacc.c:1646 */ +#line 4635 "util/configparser.c" /* yacc.c:1646 */ break; - case 393: -#line 1873 "./util/configparser.y" /* yacc.c:1646 */ + case 395: +#line 1882 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4633,11 +4653,11 @@ yyreduce: } } } -#line 4637 "util/configparser.c" /* yacc.c:1646 */ +#line 4657 "util/configparser.c" /* yacc.c:1646 */ break; - case 394: -#line 1892 "./util/configparser.y" /* yacc.c:1646 */ + case 396: +#line 1901 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -4648,11 +4668,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4652 "util/configparser.c" /* yacc.c:1646 */ +#line 4672 "util/configparser.c" /* yacc.c:1646 */ break; - case 395: -#line 1904 "./util/configparser.y" /* yacc.c:1646 */ + case 397: +#line 1913 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -4663,11 +4683,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4667 "util/configparser.c" /* yacc.c:1646 */ +#line 4687 "util/configparser.c" /* yacc.c:1646 */ break; - case 396: -#line 1916 "./util/configparser.y" /* yacc.c:1646 */ + case 398: +#line 1925 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -4678,11 +4698,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4682 "util/configparser.c" /* yacc.c:1646 */ +#line 4702 "util/configparser.c" /* yacc.c:1646 */ break; - case 397: -#line 1928 "./util/configparser.y" /* yacc.c:1646 */ + case 399: +#line 1937 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -4692,11 +4712,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 4696 "util/configparser.c" /* yacc.c:1646 */ +#line 4716 "util/configparser.c" /* yacc.c:1646 */ break; - case 398: -#line 1939 "./util/configparser.y" /* yacc.c:1646 */ + case 400: +#line 1948 "./util/configparser.y" /* yacc.c:1646 */ { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -4714,11 +4734,11 @@ yyreduce: } } } -#line 4718 "util/configparser.c" /* yacc.c:1646 */ +#line 4738 "util/configparser.c" /* yacc.c:1646 */ break; - case 399: -#line 1958 "./util/configparser.y" /* yacc.c:1646 */ + case 401: +#line 1967 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4726,11 +4746,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4730 "util/configparser.c" /* yacc.c:1646 */ +#line 4750 "util/configparser.c" /* yacc.c:1646 */ break; - case 400: -#line 1968 "./util/configparser.y" /* yacc.c:1646 */ + case 402: +#line 1977 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4738,33 +4758,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4742 "util/configparser.c" /* yacc.c:1646 */ +#line 4762 "util/configparser.c" /* yacc.c:1646 */ break; - case 401: -#line 1977 "./util/configparser.y" /* yacc.c:1646 */ + case 403: +#line 1986 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4753 "util/configparser.c" /* yacc.c:1646 */ +#line 4773 "util/configparser.c" /* yacc.c:1646 */ break; - case 402: -#line 1985 "./util/configparser.y" /* yacc.c:1646 */ + case 404: +#line 1994 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4764 "util/configparser.c" /* yacc.c:1646 */ +#line 4784 "util/configparser.c" /* yacc.c:1646 */ break; - case 403: -#line 1993 "./util/configparser.y" /* yacc.c:1646 */ + case 405: +#line 2002 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4776,11 +4796,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4780 "util/configparser.c" /* yacc.c:1646 */ +#line 4800 "util/configparser.c" /* yacc.c:1646 */ break; - case 404: -#line 2006 "./util/configparser.y" /* yacc.c:1646 */ + case 406: +#line 2015 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4792,11 +4812,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4796 "util/configparser.c" /* yacc.c:1646 */ +#line 4816 "util/configparser.c" /* yacc.c:1646 */ break; - case 405: -#line 2019 "./util/configparser.y" /* yacc.c:1646 */ + case 407: +#line 2028 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4808,11 +4828,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 4812 "util/configparser.c" /* yacc.c:1646 */ +#line 4832 "util/configparser.c" /* yacc.c:1646 */ break; - case 406: -#line 2032 "./util/configparser.y" /* yacc.c:1646 */ + case 408: +#line 2041 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -4824,11 +4844,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 4828 "util/configparser.c" /* yacc.c:1646 */ +#line 4848 "util/configparser.c" /* yacc.c:1646 */ break; - case 407: -#line 2045 "./util/configparser.y" /* yacc.c:1646 */ + case 409: +#line 2054 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4836,11 +4856,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4840 "util/configparser.c" /* yacc.c:1646 */ +#line 4860 "util/configparser.c" /* yacc.c:1646 */ break; - case 408: -#line 2054 "./util/configparser.y" /* yacc.c:1646 */ + case 410: +#line 2063 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4848,20 +4868,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4852 "util/configparser.c" /* yacc.c:1646 */ +#line 4872 "util/configparser.c" /* yacc.c:1646 */ break; - case 409: -#line 2063 "./util/configparser.y" /* yacc.c:1646 */ + case 411: +#line 2072 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 4861 "util/configparser.c" /* yacc.c:1646 */ +#line 4881 "util/configparser.c" /* yacc.c:1646 */ break; - case 410: -#line 2069 "./util/configparser.y" /* yacc.c:1646 */ + case 412: +#line 2078 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -4869,11 +4889,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4873 "util/configparser.c" /* yacc.c:1646 */ +#line 4893 "util/configparser.c" /* yacc.c:1646 */ break; - case 411: -#line 2078 "./util/configparser.y" /* yacc.c:1646 */ + case 413: +#line 2087 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4881,11 +4901,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4885 "util/configparser.c" /* yacc.c:1646 */ +#line 4905 "util/configparser.c" /* yacc.c:1646 */ break; - case 412: -#line 2087 "./util/configparser.y" /* yacc.c:1646 */ + case 414: +#line 2096 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4894,11 +4914,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4898 "util/configparser.c" /* yacc.c:1646 */ +#line 4918 "util/configparser.c" /* yacc.c:1646 */ break; - case 413: -#line 2097 "./util/configparser.y" /* yacc.c:1646 */ + case 415: +#line 2106 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4907,11 +4927,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4911 "util/configparser.c" /* yacc.c:1646 */ +#line 4931 "util/configparser.c" /* yacc.c:1646 */ break; - case 414: -#line 2107 "./util/configparser.y" /* yacc.c:1646 */ + case 416: +#line 2116 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -4923,11 +4943,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4927 "util/configparser.c" /* yacc.c:1646 */ +#line 4947 "util/configparser.c" /* yacc.c:1646 */ break; - case 415: -#line 2120 "./util/configparser.y" /* yacc.c:1646 */ + case 417: +#line 2129 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -4939,11 +4959,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4943 "util/configparser.c" /* yacc.c:1646 */ +#line 4963 "util/configparser.c" /* yacc.c:1646 */ break; - case 416: -#line 2133 "./util/configparser.y" /* yacc.c:1646 */ + case 418: +#line 2142 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -4953,11 +4973,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4957 "util/configparser.c" /* yacc.c:1646 */ +#line 4977 "util/configparser.c" /* yacc.c:1646 */ break; - case 417: -#line 2144 "./util/configparser.y" /* yacc.c:1646 */ + case 419: +#line 2153 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -4969,11 +4989,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4973 "util/configparser.c" /* yacc.c:1646 */ +#line 4993 "util/configparser.c" /* yacc.c:1646 */ break; - case 418: -#line 2157 "./util/configparser.y" /* yacc.c:1646 */ + case 420: +#line 2166 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -4983,11 +5003,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 4987 "util/configparser.c" /* yacc.c:1646 */ +#line 5007 "util/configparser.c" /* yacc.c:1646 */ break; - case 419: -#line 2168 "./util/configparser.y" /* yacc.c:1646 */ + case 421: +#line 2177 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -4999,11 +5019,11 @@ yyreduce: OUTYY(("P(Compiled without IPsec module, ignoring)\n")); #endif } -#line 5003 "util/configparser.c" /* yacc.c:1646 */ +#line 5023 "util/configparser.c" /* yacc.c:1646 */ break; - case 420: -#line 2181 "./util/configparser.y" /* yacc.c:1646 */ + case 422: +#line 2190 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5012,31 +5032,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5016 "util/configparser.c" /* yacc.c:1646 */ +#line 5036 "util/configparser.c" /* yacc.c:1646 */ break; - case 421: -#line 2191 "./util/configparser.y" /* yacc.c:1646 */ + case 423: +#line 2200 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5026 "util/configparser.c" /* yacc.c:1646 */ +#line 5046 "util/configparser.c" /* yacc.c:1646 */ break; - case 422: -#line 2198 "./util/configparser.y" /* yacc.c:1646 */ + case 424: +#line 2207 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5036 "util/configparser.c" /* yacc.c:1646 */ +#line 5056 "util/configparser.c" /* yacc.c:1646 */ break; - case 423: -#line 2205 "./util/configparser.y" /* yacc.c:1646 */ + case 425: +#line 2214 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5044,11 +5064,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5048 "util/configparser.c" /* yacc.c:1646 */ +#line 5068 "util/configparser.c" /* yacc.c:1646 */ break; - case 424: -#line 2214 "./util/configparser.y" /* yacc.c:1646 */ + case 426: +#line 2223 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5056,11 +5076,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5060 "util/configparser.c" /* yacc.c:1646 */ +#line 5080 "util/configparser.c" /* yacc.c:1646 */ break; - case 425: -#line 2223 "./util/configparser.y" /* yacc.c:1646 */ + case 427: +#line 2232 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5069,11 +5089,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5073 "util/configparser.c" /* yacc.c:1646 */ +#line 5093 "util/configparser.c" /* yacc.c:1646 */ break; - case 426: -#line 2233 "./util/configparser.y" /* yacc.c:1646 */ + case 428: +#line 2242 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5082,11 +5102,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5086 "util/configparser.c" /* yacc.c:1646 */ +#line 5106 "util/configparser.c" /* yacc.c:1646 */ break; - case 427: -#line 2243 "./util/configparser.y" /* yacc.c:1646 */ + case 429: +#line 2252 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5095,31 +5115,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5099 "util/configparser.c" /* yacc.c:1646 */ +#line 5119 "util/configparser.c" /* yacc.c:1646 */ break; - case 428: -#line 2253 "./util/configparser.y" /* yacc.c:1646 */ + case 430: +#line 2262 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5109 "util/configparser.c" /* yacc.c:1646 */ +#line 5129 "util/configparser.c" /* yacc.c:1646 */ break; - case 429: -#line 2260 "./util/configparser.y" /* yacc.c:1646 */ + case 431: +#line 2269 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5119 "util/configparser.c" /* yacc.c:1646 */ +#line 5139 "util/configparser.c" /* yacc.c:1646 */ break; - case 430: -#line 2267 "./util/configparser.y" /* yacc.c:1646 */ + case 432: +#line 2276 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5127,11 +5147,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5131 "util/configparser.c" /* yacc.c:1646 */ +#line 5151 "util/configparser.c" /* yacc.c:1646 */ break; - case 431: -#line 2276 "./util/configparser.y" /* yacc.c:1646 */ + case 433: +#line 2285 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5139,11 +5159,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5143 "util/configparser.c" /* yacc.c:1646 */ +#line 5163 "util/configparser.c" /* yacc.c:1646 */ break; - case 432: -#line 2285 "./util/configparser.y" /* yacc.c:1646 */ + case 434: +#line 2294 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5152,11 +5172,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5156 "util/configparser.c" /* yacc.c:1646 */ +#line 5176 "util/configparser.c" /* yacc.c:1646 */ break; - case 433: -#line 2295 "./util/configparser.y" /* yacc.c:1646 */ + case 435: +#line 2304 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5165,52 +5185,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5169 "util/configparser.c" /* yacc.c:1646 */ +#line 5189 "util/configparser.c" /* yacc.c:1646 */ break; - case 434: -#line 2305 "./util/configparser.y" /* yacc.c:1646 */ + case 436: +#line 2314 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 5179 "util/configparser.c" /* yacc.c:1646 */ +#line 5199 "util/configparser.c" /* yacc.c:1646 */ break; - case 435: -#line 2312 "./util/configparser.y" /* yacc.c:1646 */ + case 437: +#line 2321 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5189 "util/configparser.c" /* yacc.c:1646 */ +#line 5209 "util/configparser.c" /* yacc.c:1646 */ break; - case 436: -#line 2319 "./util/configparser.y" /* yacc.c:1646 */ + case 438: +#line 2328 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5199 "util/configparser.c" /* yacc.c:1646 */ +#line 5219 "util/configparser.c" /* yacc.c:1646 */ break; - case 437: -#line 2326 "./util/configparser.y" /* yacc.c:1646 */ + case 439: +#line 2335 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5210 "util/configparser.c" /* yacc.c:1646 */ +#line 5230 "util/configparser.c" /* yacc.c:1646 */ break; - case 438: -#line 2334 "./util/configparser.y" /* yacc.c:1646 */ + case 440: +#line 2343 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5219,11 +5239,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5223 "util/configparser.c" /* yacc.c:1646 */ +#line 5243 "util/configparser.c" /* yacc.c:1646 */ break; - case 439: -#line 2344 "./util/configparser.y" /* yacc.c:1646 */ + case 441: +#line 2353 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5232,11 +5252,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5236 "util/configparser.c" /* yacc.c:1646 */ +#line 5256 "util/configparser.c" /* yacc.c:1646 */ break; - case 440: -#line 2354 "./util/configparser.y" /* yacc.c:1646 */ + case 442: +#line 2363 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5245,11 +5265,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5249 "util/configparser.c" /* yacc.c:1646 */ +#line 5269 "util/configparser.c" /* yacc.c:1646 */ break; - case 441: -#line 2364 "./util/configparser.y" /* yacc.c:1646 */ + case 443: +#line 2373 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5258,11 +5278,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5262 "util/configparser.c" /* yacc.c:1646 */ +#line 5282 "util/configparser.c" /* yacc.c:1646 */ break; - case 442: -#line 2374 "./util/configparser.y" /* yacc.c:1646 */ + case 444: +#line 2383 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -5291,11 +5311,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5295 "util/configparser.c" /* yacc.c:1646 */ +#line 5315 "util/configparser.c" /* yacc.c:1646 */ break; - case 443: -#line 2404 "./util/configparser.y" /* yacc.c:1646 */ + case 445: +#line 2413 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5304,22 +5324,22 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5308 "util/configparser.c" /* yacc.c:1646 */ +#line 5328 "util/configparser.c" /* yacc.c:1646 */ break; - case 444: -#line 2414 "./util/configparser.y" /* yacc.c:1646 */ + case 446: +#line 2423 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5319 "util/configparser.c" /* yacc.c:1646 */ +#line 5339 "util/configparser.c" /* yacc.c:1646 */ break; - case 445: -#line 2422 "./util/configparser.y" /* yacc.c:1646 */ + case 447: +#line 2431 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { @@ -5327,11 +5347,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5331 "util/configparser.c" /* yacc.c:1646 */ +#line 5351 "util/configparser.c" /* yacc.c:1646 */ break; - case 446: -#line 2431 "./util/configparser.y" /* yacc.c:1646 */ + case 448: +#line 2440 "./util/configparser.y" /* yacc.c:1646 */ { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5345,11 +5365,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5349 "util/configparser.c" /* yacc.c:1646 */ +#line 5369 "util/configparser.c" /* yacc.c:1646 */ break; - case 447: -#line 2446 "./util/configparser.y" /* yacc.c:1646 */ + case 449: +#line 2455 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5357,19 +5377,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5361 "util/configparser.c" /* yacc.c:1646 */ +#line 5381 "util/configparser.c" /* yacc.c:1646 */ break; - case 448: -#line 2455 "./util/configparser.y" /* yacc.c:1646 */ + case 450: +#line 2464 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(remote-control:)\n")); } -#line 5369 "util/configparser.c" /* yacc.c:1646 */ +#line 5389 "util/configparser.c" /* yacc.c:1646 */ break; - case 459: -#line 2466 "./util/configparser.y" /* yacc.c:1646 */ + case 461: +#line 2475 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5378,11 +5398,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5382 "util/configparser.c" /* yacc.c:1646 */ +#line 5402 "util/configparser.c" /* yacc.c:1646 */ break; - case 460: -#line 2476 "./util/configparser.y" /* yacc.c:1646 */ + case 462: +#line 2485 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5390,142 +5410,142 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5394 "util/configparser.c" /* yacc.c:1646 */ +#line 5414 "util/configparser.c" /* yacc.c:1646 */ break; - case 461: -#line 2485 "./util/configparser.y" /* yacc.c:1646 */ + case 463: +#line 2494 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5404 "util/configparser.c" /* yacc.c:1646 */ +#line 5424 "util/configparser.c" /* yacc.c:1646 */ break; - case 462: -#line 2492 "./util/configparser.y" /* yacc.c:1646 */ + case 464: +#line 2501 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5414 "util/configparser.c" /* yacc.c:1646 */ +#line 5434 "util/configparser.c" /* yacc.c:1646 */ break; - case 463: -#line 2499 "./util/configparser.y" /* yacc.c:1646 */ + case 465: +#line 2508 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 5424 "util/configparser.c" /* yacc.c:1646 */ +#line 5444 "util/configparser.c" /* yacc.c:1646 */ break; - case 464: -#line 2506 "./util/configparser.y" /* yacc.c:1646 */ + case 466: +#line 2515 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 5434 "util/configparser.c" /* yacc.c:1646 */ +#line 5454 "util/configparser.c" /* yacc.c:1646 */ break; - case 465: -#line 2513 "./util/configparser.y" /* yacc.c:1646 */ + case 467: +#line 2522 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 5444 "util/configparser.c" /* yacc.c:1646 */ +#line 5464 "util/configparser.c" /* yacc.c:1646 */ break; - case 466: -#line 2520 "./util/configparser.y" /* yacc.c:1646 */ + case 468: +#line 2529 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 5454 "util/configparser.c" /* yacc.c:1646 */ +#line 5474 "util/configparser.c" /* yacc.c:1646 */ break; - case 467: -#line 2527 "./util/configparser.y" /* yacc.c:1646 */ + case 469: +#line 2536 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnstap:)\n")); } -#line 5462 "util/configparser.c" /* yacc.c:1646 */ +#line 5482 "util/configparser.c" /* yacc.c:1646 */ break; - case 482: -#line 2544 "./util/configparser.y" /* yacc.c:1646 */ + case 484: +#line 2553 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5473 "util/configparser.c" /* yacc.c:1646 */ +#line 5493 "util/configparser.c" /* yacc.c:1646 */ break; - case 483: -#line 2552 "./util/configparser.y" /* yacc.c:1646 */ + case 485: +#line 2561 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 5483 "util/configparser.c" /* yacc.c:1646 */ +#line 5503 "util/configparser.c" /* yacc.c:1646 */ break; - case 484: -#line 2559 "./util/configparser.y" /* yacc.c:1646 */ + case 486: +#line 2568 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5494 "util/configparser.c" /* yacc.c:1646 */ +#line 5514 "util/configparser.c" /* yacc.c:1646 */ break; - case 485: -#line 2567 "./util/configparser.y" /* yacc.c:1646 */ + case 487: +#line 2576 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5505 "util/configparser.c" /* yacc.c:1646 */ +#line 5525 "util/configparser.c" /* yacc.c:1646 */ break; - case 486: -#line 2575 "./util/configparser.y" /* yacc.c:1646 */ + case 488: +#line 2584 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 5515 "util/configparser.c" /* yacc.c:1646 */ +#line 5535 "util/configparser.c" /* yacc.c:1646 */ break; - case 487: -#line 2582 "./util/configparser.y" /* yacc.c:1646 */ + case 489: +#line 2591 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 5525 "util/configparser.c" /* yacc.c:1646 */ +#line 5545 "util/configparser.c" /* yacc.c:1646 */ break; - case 488: -#line 2589 "./util/configparser.y" /* yacc.c:1646 */ + case 490: +#line 2598 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5533,11 +5553,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5537 "util/configparser.c" /* yacc.c:1646 */ +#line 5557 "util/configparser.c" /* yacc.c:1646 */ break; - case 489: -#line 2598 "./util/configparser.y" /* yacc.c:1646 */ + case 491: +#line 2607 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5545,11 +5565,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_resolver_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5549 "util/configparser.c" /* yacc.c:1646 */ +#line 5569 "util/configparser.c" /* yacc.c:1646 */ break; - case 490: -#line 2607 "./util/configparser.y" /* yacc.c:1646 */ + case 492: +#line 2616 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5557,11 +5577,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5561 "util/configparser.c" /* yacc.c:1646 */ +#line 5581 "util/configparser.c" /* yacc.c:1646 */ break; - case 491: -#line 2616 "./util/configparser.y" /* yacc.c:1646 */ + case 493: +#line 2625 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5569,11 +5589,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_client_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5573 "util/configparser.c" /* yacc.c:1646 */ +#line 5593 "util/configparser.c" /* yacc.c:1646 */ break; - case 492: -#line 2625 "./util/configparser.y" /* yacc.c:1646 */ + case 494: +#line 2634 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5581,11 +5601,11 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_query_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5585 "util/configparser.c" /* yacc.c:1646 */ +#line 5605 "util/configparser.c" /* yacc.c:1646 */ break; - case 493: -#line 2634 "./util/configparser.y" /* yacc.c:1646 */ + case 495: +#line 2643 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5593,29 +5613,29 @@ yyreduce: else cfg_parser->cfg->dnstap_log_forwarder_response_messages = (strcmp((yyvsp[0].str), "yes")==0); } -#line 5597 "util/configparser.c" /* yacc.c:1646 */ +#line 5617 "util/configparser.c" /* yacc.c:1646 */ break; - case 494: -#line 2643 "./util/configparser.y" /* yacc.c:1646 */ + case 496: +#line 2652 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(python:)\n")); } -#line 5605 "util/configparser.c" /* yacc.c:1646 */ +#line 5625 "util/configparser.c" /* yacc.c:1646 */ break; - case 498: -#line 2652 "./util/configparser.y" /* yacc.c:1646 */ + case 500: +#line 2661 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->python_script); cfg_parser->cfg->python_script = (yyvsp[0].str); } -#line 5615 "util/configparser.c" /* yacc.c:1646 */ +#line 5635 "util/configparser.c" /* yacc.c:1646 */ break; - case 499: -#line 2658 "./util/configparser.y" /* yacc.c:1646 */ + case 501: +#line 2667 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5624,21 +5644,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5628 "util/configparser.c" /* yacc.c:1646 */ +#line 5648 "util/configparser.c" /* yacc.c:1646 */ break; - case 500: -#line 2668 "./util/configparser.y" /* yacc.c:1646 */ + case 502: +#line 2677 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 5638 "util/configparser.c" /* yacc.c:1646 */ +#line 5658 "util/configparser.c" /* yacc.c:1646 */ break; - case 501: -#line 2675 "./util/configparser.y" /* yacc.c:1646 */ + case 503: +#line 2684 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5646,31 +5666,31 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 5650 "util/configparser.c" /* yacc.c:1646 */ +#line 5670 "util/configparser.c" /* yacc.c:1646 */ break; - case 502: -#line 2684 "./util/configparser.y" /* yacc.c:1646 */ + case 504: +#line 2693 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 5661 "util/configparser.c" /* yacc.c:1646 */ +#line 5681 "util/configparser.c" /* yacc.c:1646 */ break; - case 503: -#line 2692 "./util/configparser.y" /* yacc.c:1646 */ + case 505: +#line 2701 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(dnscrypt:)\n")); OUTYY(("\nP(dnscrypt:)\n")); } -#line 5670 "util/configparser.c" /* yacc.c:1646 */ +#line 5690 "util/configparser.c" /* yacc.c:1646 */ break; - case 516: -#line 2709 "./util/configparser.y" /* yacc.c:1646 */ + case 518: +#line 2718 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5678,11 +5698,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5682 "util/configparser.c" /* yacc.c:1646 */ +#line 5702 "util/configparser.c" /* yacc.c:1646 */ break; - case 517: -#line 2719 "./util/configparser.y" /* yacc.c:1646 */ + case 519: +#line 2728 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); @@ -5691,21 +5711,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5695 "util/configparser.c" /* yacc.c:1646 */ +#line 5715 "util/configparser.c" /* yacc.c:1646 */ break; - case 518: -#line 2729 "./util/configparser.y" /* yacc.c:1646 */ + case 520: +#line 2738 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 5705 "util/configparser.c" /* yacc.c:1646 */ +#line 5725 "util/configparser.c" /* yacc.c:1646 */ break; - case 519: -#line 2736 "./util/configparser.y" /* yacc.c:1646 */ + case 521: +#line 2745 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -5713,21 +5733,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 5717 "util/configparser.c" /* yacc.c:1646 */ +#line 5737 "util/configparser.c" /* yacc.c:1646 */ break; - case 520: -#line 2745 "./util/configparser.y" /* yacc.c:1646 */ + case 522: +#line 2754 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 5727 "util/configparser.c" /* yacc.c:1646 */ +#line 5747 "util/configparser.c" /* yacc.c:1646 */ break; - case 521: -#line 2752 "./util/configparser.y" /* yacc.c:1646 */ + case 523: +#line 2761 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -5735,22 +5755,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 5739 "util/configparser.c" /* yacc.c:1646 */ +#line 5759 "util/configparser.c" /* yacc.c:1646 */ break; - case 522: -#line 2761 "./util/configparser.y" /* yacc.c:1646 */ + case 524: +#line 2770 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5750 "util/configparser.c" /* yacc.c:1646 */ +#line 5770 "util/configparser.c" /* yacc.c:1646 */ break; - case 523: -#line 2769 "./util/configparser.y" /* yacc.c:1646 */ + case 525: +#line 2778 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5762,22 +5782,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5766 "util/configparser.c" /* yacc.c:1646 */ +#line 5786 "util/configparser.c" /* yacc.c:1646 */ break; - case 524: -#line 2782 "./util/configparser.y" /* yacc.c:1646 */ + case 526: +#line 2791 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5777 "util/configparser.c" /* yacc.c:1646 */ +#line 5797 "util/configparser.c" /* yacc.c:1646 */ break; - case 525: -#line 2790 "./util/configparser.y" /* yacc.c:1646 */ + case 527: +#line 2799 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5789,19 +5809,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5793 "util/configparser.c" /* yacc.c:1646 */ +#line 5813 "util/configparser.c" /* yacc.c:1646 */ break; - case 526: -#line 2803 "./util/configparser.y" /* yacc.c:1646 */ + case 528: +#line 2812 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("\nP(cachedb:)\n")); } -#line 5801 "util/configparser.c" /* yacc.c:1646 */ +#line 5821 "util/configparser.c" /* yacc.c:1646 */ break; - case 534: -#line 2813 "./util/configparser.y" /* yacc.c:1646 */ + case 536: +#line 2822 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -5814,11 +5834,11 @@ yyreduce: OUTYY(("P(Compiled without cachedb, ignoring)\n")); #endif } -#line 5818 "util/configparser.c" /* yacc.c:1646 */ +#line 5838 "util/configparser.c" /* yacc.c:1646 */ break; - case 535: -#line 2827 "./util/configparser.y" /* yacc.c:1646 */ + case 537: +#line 2836 "./util/configparser.y" /* yacc.c:1646 */ { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -5832,11 +5852,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5836 "util/configparser.c" /* yacc.c:1646 */ +#line 5856 "util/configparser.c" /* yacc.c:1646 */ break; - case 536: -#line 2842 "./util/configparser.y" /* yacc.c:1646 */ + case 538: +#line 2851 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -5847,11 +5867,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5851 "util/configparser.c" /* yacc.c:1646 */ +#line 5871 "util/configparser.c" /* yacc.c:1646 */ break; - case 537: -#line 2854 "./util/configparser.y" /* yacc.c:1646 */ + case 539: +#line 2863 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -5865,11 +5885,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5869 "util/configparser.c" /* yacc.c:1646 */ +#line 5889 "util/configparser.c" /* yacc.c:1646 */ break; - case 538: -#line 2869 "./util/configparser.y" /* yacc.c:1646 */ + case 540: +#line 2878 "./util/configparser.y" /* yacc.c:1646 */ { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -5881,11 +5901,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5885 "util/configparser.c" /* yacc.c:1646 */ +#line 5905 "util/configparser.c" /* yacc.c:1646 */ break; - case 539: -#line 2882 "./util/configparser.y" /* yacc.c:1646 */ + case 541: +#line 2891 "./util/configparser.y" /* yacc.c:1646 */ { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -5895,11 +5915,11 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 5899 "util/configparser.c" /* yacc.c:1646 */ +#line 5919 "util/configparser.c" /* yacc.c:1646 */ break; -#line 5903 "util/configparser.c" /* yacc.c:1646 */ +#line 5923 "util/configparser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -6127,7 +6147,7 @@ yyreturn: #endif return yyresult; } -#line 2892 "./util/configparser.y" /* yacc.c:1906 */ +#line 2901 "./util/configparser.y" /* yacc.c:1906 */ /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index a98423aca..b6585824a 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -303,7 +303,8 @@ extern int yydebug; VAR_STUB_NO_CACHE = 513, VAR_LOG_SERVFAIL = 514, VAR_DENY_ANY = 515, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 516 + VAR_UNKNOWN_SERVER_TIME_LIMIT = 516, + VAR_LOG_TAG_QUERYREPLY = 517 }; #endif /* Tokens. */ @@ -566,6 +567,7 @@ extern int yydebug; #define VAR_LOG_SERVFAIL 514 #define VAR_DENY_ANY 515 #define VAR_UNKNOWN_SERVER_TIME_LIMIT 516 +#define VAR_LOG_TAG_QUERYREPLY 517 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -576,7 +578,7 @@ union YYSTYPE char* str; -#line 580 "util/configparser.h" /* yacc.c:1909 */ +#line 582 "util/configparser.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 573f0cfa1..9b1261a41 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -164,7 +164,7 @@ extern struct config_parser_state* cfg_parser; %token VAR_FAST_SERVER_PERMIL VAR_FAST_SERVER_NUM %token VAR_ALLOW_NOTIFY VAR_TLS_WIN_CERT VAR_TCP_CONNECTION_LIMIT %token VAR_FORWARD_NO_CACHE VAR_STUB_NO_CACHE VAR_LOG_SERVFAIL VAR_DENY_ANY -%token VAR_UNKNOWN_SERVER_TIME_LIMIT +%token VAR_UNKNOWN_SERVER_TIME_LIMIT VAR_LOG_TAG_QUERYREPLY %% toplevelvars: /* empty */ | toplevelvars toplevelvar ; @@ -263,7 +263,7 @@ content_server: server_num_threads | server_verbosity | server_port | server_tls_cert_bundle | server_tls_additional_port | server_low_rtt | server_fast_server_permil | server_fast_server_num | server_tls_win_cert | server_tcp_connection_limit | server_log_servfail | server_deny_any | - server_unknown_server_time_limit + server_unknown_server_time_limit | server_log_tag_queryreply ; stubstart: VAR_STUB_ZONE { @@ -877,6 +877,15 @@ server_log_replies: VAR_LOG_REPLIES STRING_ARG free($2); } ; +server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG + { + OUTYY(("P(server_log_tag_queryreply:%s)\n", $2)); + if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->log_tag_queryreply = (strcmp($2, "yes")==0); + free($2); + } + ; server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG { OUTYY(("P(server_log_servfail:%s)\n", $2)); diff --git a/util/data/msgreply.c b/util/data/msgreply.c index 45d42a87f..6e5cd7c4d 100644 --- a/util/data/msgreply.c +++ b/util/data/msgreply.c @@ -853,7 +853,9 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf, addr_to_str(addr, addrlen, clientip_buf, sizeof(clientip_buf)); if(rcode == LDNS_RCODE_FORMERR) { - log_info("%s - - - %s - - - ", clientip_buf, rcode_buf); + if(LOG_TAG_QUERYREPLY) + log_reply("%s - - - %s - - - ", clientip_buf, rcode_buf); + else log_info("%s - - - %s - - - ", clientip_buf, rcode_buf); } else { if(qinf->qname) dname_str(qinf->qname, qname_buf); @@ -861,7 +863,11 @@ log_reply_info(enum verbosity_value v, struct query_info *qinf, pktlen = sldns_buffer_limit(rmsg); sldns_wire2str_type_buf(qinf->qtype, type_buf, sizeof(type_buf)); sldns_wire2str_class_buf(qinf->qclass, class_buf, sizeof(class_buf)); - log_info("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d", + if(LOG_TAG_QUERYREPLY) + log_reply("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d", + clientip_buf, qname_buf, type_buf, class_buf, + rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec, cached, (int)pktlen); + else log_info("%s %s %s %s %s " ARG_LL "d.%6.6d %d %d", clientip_buf, qname_buf, type_buf, class_buf, rcode_buf, (long long)dur.tv_sec, (int)dur.tv_usec, cached, (int)pktlen); } diff --git a/util/log.c b/util/log.c index 82e63a92c..318ff1d79 100644 --- a/util/log.c +++ b/util/log.c @@ -382,6 +382,24 @@ log_hex(const char* msg, void* data, size_t length) log_hex_f(verbosity, msg, data, length); } +void +log_query(const char *format, ...) +{ + va_list args; + va_start(args, format); + log_vmsg(LOG_INFO, "query", format, args); + va_end(args); +} + +void +log_reply(const char *format, ...) +{ + va_list args; + va_start(args, format); + log_vmsg(LOG_INFO, "reply", format, args); + va_end(args); +} + void log_buf(enum verbosity_value level, const char* msg, sldns_buffer* buf) { if(verbosity < level) diff --git a/util/log.h b/util/log.h index a9b90de1e..81d9d837d 100644 --- a/util/log.h +++ b/util/log.h @@ -153,6 +153,20 @@ void log_warn(const char* format, ...) ATTR_FORMAT(printf, 1, 2); */ void log_hex(const char* msg, void* data, size_t length); +/** + * Log query. + * Pass printf formatted arguments. No trailing newline is needed. + * @param format: printf-style format string. Arguments follow. + */ +void log_query(const char* format, ...) ATTR_FORMAT(printf, 1, 2); + +/** + * Log reply. + * Pass printf formatted arguments. No trailing newline is needed. + * @param format: printf-style format string. Arguments follow. + */ +void log_reply(const char* format, ...) ATTR_FORMAT(printf, 1, 2); + /** * Easy alternative for log_hex, takes a sldns_buffer. * @param level: verbosity level for this message, compared to global diff --git a/util/net_help.c b/util/net_help.c index 91368c847..0393ff9a1 100644 --- a/util/net_help.c +++ b/util/net_help.c @@ -67,6 +67,9 @@ int MINIMAL_RESPONSES = 0; /** rrset order roundrobin: default is no */ int RRSET_ROUNDROBIN = 0; +/** log tag queries with name instead of 'info' for filtering */ +int LOG_TAG_QUERYREPLY = 0; + /* returns true is string addr is an ip6 specced address */ int str_is_ip6(const char* str) @@ -361,6 +364,37 @@ log_nametypeclass(enum verbosity_value v, const char* str, uint8_t* name, log_info("%s %s %s %s", str, buf, ts, cs); } +void +log_query_in(const char* str, uint8_t* name, uint16_t type, uint16_t dclass) +{ + char buf[LDNS_MAX_DOMAINLEN+1]; + char t[12], c[12]; + const char *ts, *cs; + dname_str(name, buf); + if(type == LDNS_RR_TYPE_TSIG) ts = "TSIG"; + else if(type == LDNS_RR_TYPE_IXFR) ts = "IXFR"; + else if(type == LDNS_RR_TYPE_AXFR) ts = "AXFR"; + else if(type == LDNS_RR_TYPE_MAILB) ts = "MAILB"; + else if(type == LDNS_RR_TYPE_MAILA) ts = "MAILA"; + else if(type == LDNS_RR_TYPE_ANY) ts = "ANY"; + else if(sldns_rr_descript(type) && sldns_rr_descript(type)->_name) + ts = sldns_rr_descript(type)->_name; + else { + snprintf(t, sizeof(t), "TYPE%d", (int)type); + ts = t; + } + if(sldns_lookup_by_id(sldns_rr_classes, (int)dclass) && + sldns_lookup_by_id(sldns_rr_classes, (int)dclass)->name) + cs = sldns_lookup_by_id(sldns_rr_classes, (int)dclass)->name; + else { + snprintf(c, sizeof(c), "CLASS%d", (int)dclass); + cs = c; + } + if(LOG_TAG_QUERYREPLY) + log_query("%s %s %s %s", str, buf, ts, cs); + else log_info("%s %s %s %s", str, buf, ts, cs); +} + void log_name_addr(enum verbosity_value v, const char* str, uint8_t* zone, struct sockaddr_storage* addr, socklen_t addrlen) { diff --git a/util/net_help.h b/util/net_help.h index de2e1accf..0ca0f3f7d 100644 --- a/util/net_help.h +++ b/util/net_help.h @@ -99,6 +99,9 @@ extern int MINIMAL_RESPONSES; /** rrset order roundrobin */ extern int RRSET_ROUNDROBIN; +/** log tag queries with name instead of 'info' for filtering */ +extern int LOG_TAG_QUERYREPLY; + /** * See if string is ip4 or ip6. * @param str: IP specification. @@ -235,6 +238,12 @@ void sockaddr_store_port(struct sockaddr_storage* addr, socklen_t addrlen, void log_nametypeclass(enum verbosity_value v, const char* str, uint8_t* name, uint16_t type, uint16_t dclass); +/** + * Like log_nametypeclass, but logs with log_query for query logging + */ +void log_query_in(const char* str, uint8_t* name, uint16_t type, + uint16_t dclass); + /** * Compare two sockaddrs. Imposes an ordering on the addresses. * Compares address and port.